如何覆盖 helm 值

How to override a helm value

我实际上正在使用 Gradle、Docker、Minikube 和 Helm 开发一个开发环境。

我正在使用一堆 bash 脚本来完成任务。

目前我取得的成绩是:

  1. Gradle 使用版本控制插件构建 jar。
  2. 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>