【问题标题】:Can Helm conditionally install main chart based on parameter in values.yamlHelm 能否根据 values.yaml 中的参数有条件地安装主图表
【发布时间】:2020-04-16 12:32:29
【问题描述】:

我不清楚 Helm3 中的 dependencies 是否仅用于子图。

我有 license: false 在 values.yaml 中 只有当license 设置为true 时,我才需要安装我的图表。

我经历过 https://helm.sh/docs/topics/charts/#tags-and-condition-fields-in-dependencies

但我无法阻止主图表安装。

【问题讨论】:

    标签: kubernetes-helm


    【解决方案1】:

    没错,dependencies 被用于主图表的子图表。如果您需要在某些条件下部署主图表,我建议您遵循默认图表模板的相同步骤。例如,您会发现一个名为serviceaccount.yaml 的文件具有以下条件:

    {{- if .Values.serviceAccount.create -}}
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    ...
    {{- end -}}
    

    这意味着除非满足指定的条件,否则不会评估整个块。在您的情况下,您需要在所有图表的模板中设置一个条件,而不管kind

    {{- if .Values.license -}}
    ...
    {{- end -}}
    

    【讨论】:

      【解决方案2】:

      这个答案对我有帮助。 How to fail a helm release based on inputs in values.yaml 我只需要在一个模板文件中添加这个条件,舵图就不会被渲染。

      {{- if .Values.license -}} 条件的问题是,helm release 仍然会在 K8 资源为空的情况下进行配置。此外,它应该添加到所有模板文件中。

      【讨论】:

        猜你喜欢
        • 2019-05-30
        • 1970-01-01
        • 2020-09-21
        • 2021-12-18
        • 2021-06-17
        • 1970-01-01
        • 2020-06-04
        • 1970-01-01
        • 2019-08-24
        相关资源
        最近更新 更多