vars

    Vars 用于从一个 resource 字段中获取值,并将该值插入指定位置 - 反射功能。

    例如,假设需要在容器的 command 中指定了 Service 对象的名称,并在容器的 env 中指定了 Secret 对象的名称来确保以下内容可以正常工作:

    1. apiVersion: kustomize.config.k8s.io/v1beta1
    2. kind: Kustomization
    3. vars:
    4. - name: SOME_SECRET_NAME
    5. objref:
    6. kind: Secret
    7. apiVersion: v1
    8. - name: MY_SERVICE_NAME
    9. objref:
    10. kind: Service
    11. name: my-service
    12. apiVersion: v1
    13. fieldref:
    14. - name: ANOTHER_DEPLOYMENTS_POD_RESTART_POLICY
    15. objref:
    16. kind: Deployment
    17. name: my-deployment
    18. apiVersion: apps/v1
    19. fieldref:
    20. fieldpath: spec.template.spec.restartPolicy

    var 是包含该对象的变量名、对象引用和字段引用的元组。

    字段引用是可选的,默认为 ,这是正常的默认值,因为 kustomize 用于生成或修改 resources 的名称。

    变量引用,即字符串 ‘$(FOO)’ ,只能放在 kustomize 配置指定的特定对象的特定字段中。

    关于 vars 的默认配置数据可以查看: /api/konfig/builtinpluginconsts/varreference.go

    Vars 不应该 被用于 kustomize 已经处理过的配置中插入 names 。 例如, Deployment 可以通过 name 引用 ConfigMap ,如果 kustomize 更改 ConfigMap 的名称,则知道更改 Deployment 中的引用的 name 。