【问题标题】:programmatically overriding values in sub-charts in helm以编程方式覆盖 helm 子图中的值
【发布时间】:2019-08-13 13:54:46
【问题描述】:

我搜索了几个小时,但找不到任何解决问题的方法。

短版:是否可以在模板时生成新的.Value 属性?

长版:我想使用 Logstash、Kibana、Elasticsearch 部署 ElasticStack,并且我想使用 Kibana 和 Elasticsearch 的官方 helm 模板。

我的想法是用 3 个子图表创建一个新图表(麋鹿)。

elk
    charts
        elasticsearch (official helm template)
            values.yaml
        kibana (official helm template)
            values.yaml
        logstash
            values.yaml
    templates
    values.yaml

我的问题是在顶层values.yaml中多次声明同一个属性

我的elk/values.yaml 如下所示

elasticsearch:
  clusterName: "elasticsearchtest"
  imageTag: "7.3.0"
  replicas: 3
  minimumMasterNodes: 2
  volumeClaimTemplate:
    storageClassName: gp2-resize

kibana:
  elasticsearchHosts: "http://elasticsearchtest-master:9200"
  imageTag: "7.3.0"


logstash:
  elasticsearchHosts: "http://elasticsearchtest-master:9200"
  imageTag: "7.3.0"

如果我想更改clustername 或指定imagetag,请注意重复。以这种方式覆盖子图的值感觉真的很糟糕。

可以像这样创建顶级values.yaml

clusterName: "elasticsearchtest"
imageTag: "7.3.0"

并在模板时覆盖子图表值?

【问题讨论】:

    标签: kubernetes kubernetes-helm


    【解决方案1】:

    如果您不打算使用外部工具(例如 Ytt),则无法对 values.yaml 进行模板化

    https://github.com/helm/helm/issues/2492

    但是,如果您可以更改子图表中的 values.yaml,则可以将其分配给全局变量,并在父 Helm 图表中定义一次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      • 2014-12-10
      • 2020-09-11
      相关资源
      最近更新 更多