如何覆盖舵值

Mar*_*hel 4 bash gradle docker kubernetes kubernetes-helm

我实际上正在使用Gradle,Docker,Minikube和Helm的开发环境中工作。

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

到目前为止,我取得了以下成就:

  1. Gradle使用插件进行版本控制来构建jar。
  2. Gradle使用在jar作业上计算出的相同版本构建docker映像。

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

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

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

有更好的方法吗?

Gra*_*man 10

大多数Helm图表在其values.yaml文件中至少包含以下内容,该文件设置了默认的docker image标记,还允许用户安装/升级图表以指定其他图像,而无需修改图表本身。

# values.yaml
image:
  repository: <docker-repo-url-here>
  tag: <docker-image-tag-here>
Run Code Online (Sandbox Code Playgroud)

在部署yaml中,从values.yaml中获取值

# deployment.yaml
kind: Deployment
spec:
  template:
    spec:
      containers:
      - name: container-name
        image: "{{ .Values.image.repository }}:{{ .Values.image.tag}}"
Run Code Online (Sandbox Code Playgroud)

从那里,helm upgrade <release-name> <chart-path> --set image.tag=<new-image-tag>当您要使用新图像时,可以做一个简单的事情。