Helm - 覆盖 value.yaml 中的特定值

Jea*_*eri 3 kubernetes-helm

我正在使用 Helm,因为nginx-ingress我需要添加一些注释。

在图表values.yaml文件中,podAnnotations为空 ( {})。

我的问题是:添加这些注释的正确方法是什么?

注释是controller其根元素的子元素values.yaml

controller:
  ...
  podAnnotations:
    ...
Run Code Online (Sandbox Code Playgroud)

现在,我感觉我必须将整个values.yaml文件复制到我custom-values.yaml添加注释的文件中。

$> heml install -f ./custom-values.yaml stable/nginx-ingress
Run Code Online (Sandbox Code Playgroud)

但是,如果我复制整个值文件,我会感觉如果随着时间的stable/nginx-ingress推移更改内部值,我可能会遇到麻烦values.yaml

pap*_*ito 5

您不必复制所有值,因为您可以使用自己的值并仅覆盖您需要的值

\n\n
\n

\xc2\xa0values.yaml\xc2\xa0 文件对于模板也很重要。此文件包含图表的\xc2\xa0默认值\xc2\xa0。这些值可能会在\xc2\xa0helm install\xc2\xa0or\xc2\xa0helm 升级过程中被用户覆盖

\n
\n\n

请参阅https://helm.sh/docs/chart_template_guide/

\n\n

因此,只需添加注释custom-values.yaml- 加上您想要更改的其他默认值 - 然后运行

\n\n
helm install -f ./custom-values.yaml stable/nginx-ingress\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的一个例子custom-values.yaml

\n\n
controller:\n  service:\n    annotations: \n       field.cattle.io/projectId: c-xxxxx:p-xxxxx\n
Run Code Online (Sandbox Code Playgroud)\n\n

以及结果的重要部分:

\n\n
...\n# Source: nginx-ingress/templates/controller-service.yaml\n\napiVersion: v1\nkind: Service\nmetadata:\n  annotations:\n    field.cattle.io/projectId: "c-xxxxx:p-xxxxx"\n  labels:\n    app: nginx-ingress\n    chart: nginx-ingress-1.20.0\n    component: "controller"\n    heritage: Tiller\n    release: release-name\n  name: release-name-nginx-ingress-controller\n...\n
Run Code Online (Sandbox Code Playgroud)\n