【问题标题】:How to override a helm value如何覆盖 helm 值
【发布时间】:2018-08-19 18:12:25
【问题描述】:

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

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

我目前取得的成就是:

  1. Gradle 使用版本控制插件构建 jar。
  2. Gradle 构建一个与 jar 作业计算的版本相同的 docker 映像。

现在我需要能够将 Gradle 计算的版本传播到 Helm,以便它可以选择正确的 docker 映像。

我已经想到的方法是定义一个环境变量,以便 Helm 可以使用它。

问题是我以后需要重新定义它。

有更好的方法吗?

【问题讨论】:

    标签: bash docker gradle kubernetes kubernetes-helm


    【解决方案1】:

    大多数 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 &lt;release-name&gt; &lt;chart-path&gt; --set image.tag=&lt;new-image-tag&gt;

    【讨论】:

    • 太棒了,就是这样!
    • 有没有办法覆盖内置变量?像 {{ .Release.Namespace }} ?我想覆盖单元测试。
    猜你喜欢
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 2021-09-15
    • 2021-12-13
    相关资源
    最近更新 更多