掌舵-覆盖values.yaml

时间:2019-09-18 17:16:13

标签: kubernetes-helm

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

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

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

注释是controller的子元素,values.yamlcontroller: ... podAnnotations: ... 的根元素

values.yaml

现在,我感觉到必须将整个custom-values.yaml文件复制到我的$> heml install -f ./custom-values.yaml stable/nginx-ingress 中,并在其中添加注释。

stable/nginx-ingress

但是如果我复制整个值文件,我会感到如果values.yaml随时间更改main:{ first:{ sub{} }, second:{ } } 中的值会遇到麻烦

1 个答案:

答案 0 :(得分:3)

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

  

values.yaml文件对模板也很重要。该文件包含图表的默认值。用户在头盔安装或头盔升级期间可能会覆盖这些值

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

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

helm install -f ./custom-values.yaml stable/nginx-ingress

以下是我的custom-values.yaml

的示例
controller:
  service:
    annotations: 
       field.cattle.io/projectId: c-xxxxx:p-xxxxx

以及结果的重要部分:

...
# Source: nginx-ingress/templates/controller-service.yaml

apiVersion: v1
kind: Service
metadata:
  annotations:
    field.cattle.io/projectId: "c-xxxxx:p-xxxxx"
  labels:
    app: nginx-ingress
    chart: nginx-ingress-1.20.0
    component: "controller"
    heritage: Tiller
    release: release-name
  name: release-name-nginx-ingress-controller
...