如何覆盖 helm 值
How to override a helm value
我实际上正在使用 Gradle、Docker、Minikube 和 Helm 开发一个开发环境。
我正在使用一堆 bash 脚本来完成任务。
目前我取得的成绩是:
- Gradle 使用版本控制插件构建 jar。
- Gradle 使用在 jar 作业上计算的相同版本构建一个 docker 图像。
现在我需要能够将 Gradle 计算的版本传播到 Helm,以便它可以选择正确的 docker 图像。
我已经想到的方法是定义一个环境变量,以便 Helm 使用它。
问题是之后我需要重新定义它。
有更好的方法吗?
大多数 Helm 图表在其 values.yaml
文件中至少包含以下内容,它设置了默认的 docker 图像标签,还允许用户 installing/upgrading 图表指定不同的图像而无需修改图表本身。
# 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>
。
我实际上正在使用 Gradle、Docker、Minikube 和 Helm 开发一个开发环境。
我正在使用一堆 bash 脚本来完成任务。
目前我取得的成绩是:
- Gradle 使用版本控制插件构建 jar。
- Gradle 使用在 jar 作业上计算的相同版本构建一个 docker 图像。
现在我需要能够将 Gradle 计算的版本传播到 Helm,以便它可以选择正确的 docker 图像。
我已经想到的方法是定义一个环境变量,以便 Helm 使用它。
问题是之后我需要重新定义它。
有更好的方法吗?
大多数 Helm 图表在其 values.yaml
文件中至少包含以下内容,它设置了默认的 docker 图像标签,还允许用户 installing/upgrading 图表指定不同的图像而无需修改图表本身。
# 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>
。