我刚开始使用库伯内特斯和海姆,虽然我已经开发了一些头盔。在其中一项要求中,我正在创建一个舵手。基本上,可安装的舵机有一些附属舵。为了安装它,我有以下形式的安装脚本:
${HELM_BIN} install final_helm helms/final-helm \
--set old-service.fullnameOverride=old-service \
--set old-service.image.registry=${DOCKER_REGISTRY} \
--set old-service.ingress.enabled=true \
--set old-service.ingress.hosts[0].host=${LOAD_BALANCER} \
--set old-service.ingress.hosts[0].paths[0]="/old-service-api-${NAMESPACE}(/|$)(.*)" \
--set old-service.ingress.tls[0].hosts[0]=${LOAD_BALANCER} \
--set old-service.ingress.tls[0].secretName=ssl-certificate \
--set old-service.jvm.options="-Xmx${OLD_HEAPSIZEMB}M -Xms${OLD_HEAPSIZEMB}M" \
--set old-service.metrics.serviceMonitor.enabled=true \
--set old-service.metrics.serviceMonitor.namespace=${NAMESPACE} \
--set old-service.replicaCount=${OLD_REPLICAS} \
--set old-service.resources.requests.cpu=100m \
--set old-service.resources.requests.memory=${OLD_HEAPSIZEMB}Mi \
--set new-service.fullnameOverride=new-service \
--set new-service.image.registry=${DOCKER_REGISTRY} \
--set new-service.ingress.enabled=true \
--set new-service.ingress.hosts[0].host=${LOAD_BALANCER} \
--set new-service.ingress.hosts[0].paths[0]="/new-service-api-${NAMESPACE}(/|$)(.*)" \
--set new-service.ingress.tls[0].hosts[0]=${LOAD_BALANCER} \
--set new-service.ingress.tls[0].secretName=ssl-certificate \
--set new-service.jvm.options="-Xmx${NEW_HEAPSIZEMB}M -Xms${NEW_HEAPSIZEMB}M" \
--set new-service.metrics.serviceMonitor.enabled=true \
--set new-service.metrics.serviceMonitor.namespace=${NAMESPACE} \
--set new-service.replicaCount=${OLD_REPLICAS} \
--set new-service.resources.requests.cpu=100m \
--set new-service.resources.requests.memory=${NEW_HEAPSIZEMB}Mi \
--namespace ${NAMESPACE} \
--version ${FINAL_HELM_VERSION}我有一个Spring服务(旧服务)的版本,它通过将一些适配器设计模式移除到新服务中进行了优化。但是,考虑到项目所处的阶段,不能使用新服务来替代旧服务来执行集成测试。
因此,我需要根据通过env.sh脚本设置的一些环境属性(其中包含所有的环境变量),只从新服务和旧服务中提取一个服务。
env.sh
export USE_NEW_SERVICE=trueChart.yaml for helms/final-helm
dependencies:
- name: old-service
repository: "file://../old-service"
- name: new-service
repository: "file://../new-service"我不知道如何使用环境属性USE_NEW_SERVICE,这样如果是真的,我就会将新服务抛出旧服务,如果是假的,就会将旧服务抛出新服务。简单地说,在安装脚本中使用if else无助于final-helm同时依赖于新服务和旧服务,如果不是从安装脚本获得的值,它们将得到指定的默认值。
任何帮助都是非常感谢的。谢谢。
发布于 2021-06-16 06:42:16
SOF还有另一个链接:
Helm conditionally install subchart
但是,它使用带有子图的条件。任何子图表的条件的值都可以由任何shell脚本设置为true或false。然后,子图表将不作为主图表的子图表。
但是,我的要求是根据某些条件来旋转new_service或old_service,但是要把它作为主图表的子图。
因此,我只是根据条件为真将new_service.replicaCount或old_service.replicaCount设置为1。这样,我的两个图表都包含在子图表中,但是只有一个会根据我在shell脚本中设置的条件旋转。
https://stackoverflow.com/questions/67967673
复制相似问题