在 helm values.yaml 中取消设置/删除默认值

Ank*_*rma 6 kubernetes kubernetes-helm

我通过 helm 检查下载了一个名为 sftp.yaml 的文件

我在那个 sftp.yaml 文件中有一个参数:-

sftp:
    allowedMACs: "hmac-sha2-512"
    allowedCiphers: aes256-ctr
Run Code Online (Sandbox Code Playgroud)

现在,如果我在从自定义值文件(即“sftp.yaml”)中注释掉整行“allowedMACs”后安装相应的 helm chart,那么 K8s 将获取 sftp.yaml 的增量和实际 values.yaml,然后使用 values.yaml “允许的MAC”。

但是,我想要的是,如果在“sftp.yaml”自定义值文件中注释了“allowedMACs”行,则它根本不应设置 env 变量,或将其设置为 null。

目前我的部署文件的 env 部分看起来像

  - name: MACs
    value: {{ default "" .Values.sftp.allowedMACs | quote }}
Run Code Online (Sandbox Code Playgroud)

Fil*_*lov 10

您需要覆盖(使用新值)或取消设置值,如果您只注释掉您没有执行上述任何操作的部分并且将使用默认值。

基本上,您希望取消设置默认值。根据banzaicloud 示例,可以这样做:

helm install stable/chart-name --set sftp.allowedMACs=null
Run Code Online (Sandbox Code Playgroud)

您还可以以类似的方式使用覆盖值文件:

sftp:
    allowedMACs: null
    allowedCiphers: aes256-ctr
Run Code Online (Sandbox Code Playgroud)

从 2.6 版开始,这在 Helm 中可用。如果您喜欢深入的信息,您可以查看该问题以及引入该功能的后续PR

  • @Matteo提到的bug已移至https://github.com/helm/helm/issues/9136 (7认同)
  • 如果它是子图中的值,由于 helm 代码中的错误,它将无法工作:https://github.com/helm/helm/issues/5184 (5认同)
  • 不适合我 (3认同)
  • @Matteo 提到的 bug 似乎[又回来了](https://github.com/helm/helm/issues/12637) 作为 Helm v3 中的回归 (2认同)