【发布时间】:2019-07-09 17:50:17
【问题描述】:
在我们的 CI 管道中,我们已改用基于约定的主机名(主要用于基于 PR 的动态开发环境)。这项新功能要求我们尊重在 Helm 图表中设置的旧主机名,因为其他服务指向这些旧主机名。
我们希望将基于约定的主机名附加或预先添加到现有主机名列表中,而不覆盖任何值。
我们现在已经找到了解决方法;但是,希望找到更清洁的解决方案。解决方法允许我们使用--set service.hostnames[10]="k8s-myapp-prod.website.com",其中 10 的索引足够高,不会与图表中的主机名发生冲突。
我们只希望这里有 2 或 3 个主机名,因此该解决方案有效,它忽略了不超过一个其他主机名。我更关心未来的更新,它会检查列表中是否只有一个主机名并引发索引越界错误。
我们的命令如下所示:
helm upgrade --install \
--namespace "myapp" \
--values "./values-prod.yaml" \
--set service.hostnames[10]="k8s-myapp-prod.website.com" \
"myapp-prod" ./
对制作这种清洁剂或我们可以使用的其他某种魔法有什么想法吗?
这是我们的 values.yaml 文件的副本:
image:
repository: dockerhub.com/myorg
stack:
environment: prod
service:
ingress:
class: nginx
hostnames:
- legacy-url-myapp-prod.website.com
port: 80
healthcheck: /heartbeat
resources:
memory:
request: "512Mi"
limit: "512Mi"
cpu:
request: "500m"
limit: "500m"
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 6
cpu: 50
environment:
DEPLOY_ENV: prod
spec:
strategy:
type: RollingUpdate
【问题讨论】:
-
您能提供您的“价值观”文件吗?这个主题可以更清晰,对社区很有帮助。
标签: kubernetes kubernetes-helm