我实际上正在使用 Gradle、Docker、Minikube 和 Helm 开发一个开发环境。
我正在使用一堆 bash 脚本来完成任务。
到目前为止我取得的成就是:
- Gradle 使用版本控制插件构建 jar。
- Gradle 使用在 jar 作业上计算的相同版本构建 docker 镜像。
现在我需要能够将 Gradle 计算的版本传播到 Helm,以便它可以选择正确的 docker 镜像。
我已经想到的方法是定义一个环境变量,以便 Helm 使用它。
问题是之后我需要重新定义它。
有更好的方法吗?
最佳答案
大多数 Helm 图表在其 values.yaml
中至少包含以下内容文件,它设置默认的 docker 镜像标签,还允许用户安装/升级图表以指定不同的图像,而无需修改图表本身。
# values.yaml
image:
repository: <docker-repo-url-here>
tag: <docker-image-tag-here>
然后在部署 yaml 中,从 values.yaml 中获取值
# deployment.yaml
kind: Deployment
spec:
template:
spec:
containers:
- name: container-name
image: "{{ .Values.image.repository }}:{{ .Values.image.tag}}"
从那里,您可以做一个简单的 helm upgrade <release-name> <chart-path> --set image.tag=<new-image-tag>
当您想使用新图像时。
关于bash - 如何覆盖 helm 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49223125/