我用 elastic-stack
创建了一个自定义 Helm chart 作为具有以下配置的子图。
# requirements.yaml
dependencies:
- name: elastic-stack
version: 1.5.0
repository: '@stable'
# values.yaml
elastic-stack:
kibana:
# at this level enabled is not recognized (does not work)
# enabled: true
# configs like env, only work at this level
env:
ELASTICSEARCH_URL: http://foo-elasticsearch-client.default.svc.cluster.local:9200
service:
externalPort: 80
# enabled only works at root level
elasticsearch:
enabled: true
kibana:
enabled: true
logstash:
enabled: false
我不明白的是为什么我必须定义
enabled
elasatic-stack:
之外的标签以及里面的所有其他配置?这是正常的 Helm 行为还是弹性堆栈图中的一些错误配置?
最佳答案
Helm conditions在顶级父级的值中进行评估:
Condition - The condition field holds one or more YAML paths (delimited by commas). If this path exists in the top parent’s values and resolves to a boolean value, the chart will be enabled or disabled based on that boolean value
查看requirements.yaml中的条件从稳定/弹性堆栈:
- name: elasticsearch
version: ^1.17.0
repository: https://kubernetes-charts.storage.googleapis.com/
condition: elasticsearch.enabled
- name: kibana
version: ^1.1.0
repository: https://kubernetes-charts.storage.googleapis.com/
condition: kibana.enabled
- name: logstash
version: ^1.2.1
repository: https://kubernetes-charts.storage.googleapis.com/
condition: logstash.enabled
条件路径为
elasticsearch.enabled
, kibana.enabled
和 logstash.enabled
,因此您需要在父图表值中使用它们。
关于kubernetes - 在自定义 Helm chart 中禁用子图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55338147/