Helm 动态设置 Docker 镜像标签

sem*_*ral 5 jenkins kubernetes kubernetes-helm

我使用以下命令通过 Jenkins 将 Docker 镜像推送到我们的私有注册表:

def dockerImage = docker.build("repo/myapp:${env.BUILD_NUMBER}")
Run Code Online (Sandbox Code Playgroud)

BUILD_NUMBER每次构建后都会增加。)

因为我是 Helm 的新手,所以我无法决定如何为values.yaml.

我想将我的应用程序部署到多个环境,例如:

  • dev
  • test
  • prod

假设我能够通过 Helm 将应用程序部署到dev,最新的BUILD_NUMBER是:

  • 100 为dev
  • 101 为test
  • 102 为prod

那么标签值应该是多少呢?

 image:
  repository: registryt/myrepo/image
  tag: 
Run Code Online (Sandbox Code Playgroud)

Raf*_*zko 8

您应该将“some”标签放入您的标签中,values.yaml该标签将作为默认标签tag每个 Helm Chart 都有它,您可以在此处查看官方 Helm Charts 。

现在,您有两种选择来应对不同的环境。

选项 1:命令行参数

安装 Helm Chart 时,您可以使用 动态指定标签名称--set。例如:

$ helm install --set image.tag=12345 <your-chart-name>
Run Code Online (Sandbox Code Playgroud)

选项 2:单独的 value.yaml 文件

您可以单独存储values.yaml在存储库中,例如:

values.dev.yaml
values.prod.yaml
Run Code Online (Sandbox Code Playgroud)

然后,更新 Jenkins 管道中的正确值。