【问题标题】:Helm - Override list values with override fileHelm - 使用覆盖文件覆盖列表值
【发布时间】:2020-12-29 04:46:21
【问题描述】:

我想覆盖 prod 和 dev 部署之间的值。

默认值如下:

apps:
  myapp:
    replicaCount: 2
    containers:
      - name: foo
        env:
          MODE: "dev"

我可以在命令行中覆盖它:

--set apps.myapp.containers[0].env.mode="prod"

但是,我想将所有覆盖保存在一个文件中,并运行 helm upgrade 传递一个覆盖文件。在文件中添加覆盖,如:

apps:
  myapp:
    containers[0]:
      env:
        MODE: "prod"

不起作用。如何覆盖列表中的值?

【问题讨论】:

    标签: kubernetes-helm templating go-templates helmfile


    【解决方案1】:

    至少可以说很奇怪。

    这行得通:

    apps:
      myapp:
        containers[1]:
          env:
            MODE: "prod"
    

    所以containers 的索引在文件中被覆盖时为1,但在使用命令行完成时为0

    --set apps.myapp.containers[0].env.mode="prod"
    

    【讨论】:

    • 当使用 helm 时,最好尝试在 deployment.yaml 中使用模板来实现这一点,并在 values.yaml 中定义这些覆盖
    • 是的,这些在 values.yaml 中。但是,我们希望为不同的环境覆盖 values.yaml 中的值。我们不想为每个 env 复制 values.yaml,所以我们有一个基础 values.yaml + dev.yaml 或 prod.yaml,其覆盖仅更改相关字段。
    猜你喜欢
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    相关资源
    最近更新 更多