kubernetes - 以编程方式覆盖 Helm 子图中的值

标签 kubernetes kubernetes-helm

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

简短版:可以在模板制作时添加新的.Value属性吗?

加长版:我想将ElasticStack与Logstash,Kibana,Elasticsearch一起部署,并且我想对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"

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

最佳答案

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

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

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

关于kubernetes - 以编程方式覆盖 Helm 子图中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57457785/

相关文章:

升级后 Kubernetes 停止工作

image - 无法使用Helm将长数字字符串解析为值

kubernetes-helm - helm lint : INFO Chart. yaml:推荐使用图标

kubernetes - 如何负载平衡在 2 个 Pod 上运行的有状态应用程序

kubernetes - Kubernetes Minikube 需要多少磁盘空间

kubernetes - 如何识别持久卷声明中剩余的存储空间?

Kubernetes Helm 图表 requirements.yaml 文件依赖项错误条件

docker - 使用 https 访问 Docker 私有(private)注册表

带有 agic 的 Azure AKS - 如何使用 Terraform 创建它?

mongodb - Helm:无法通过值设置mongodb根密码