bash - 如何覆盖 helm 值

标签 bash docker gradle kubernetes kubernetes-helm

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

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

到目前为止我取得的成就是:

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

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

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

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

有更好的方法吗?

最佳答案

大多数 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 <release-name> <chart-path> --set image.tag=<new-image-tag>当您想使用新图像时。

关于bash - 如何覆盖 helm 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49223125/

相关文章:

bash - 获取两个字符之间的字符串和以逗号作为分隔符的输出字段

linux - 如何将 git 命令的输出存储在变量中?

docker - 在 Jenkins 容器中运行 docker 容器,如何设置主机的音量?

docker - Docker Desktop 上的 Kubernetes 无法识别本地镜像

android - Android使用不同的Facebook SDK版本创建.aar文件

java - 在 docker 镜像/容器中安装和使用 Gradle

Python - 通过 SSH 运行时字符串变形

mysql - Bash 脚本不在 CRON 中执行(可能与 Sudo 命令有关?)

ubuntu - 如何通过 docker 从 git 存储库安装应用程序?

java - 使用 Spring Boot 应用程序作为 gradle 的依赖项