我已经用elastic-stack创建了一个自定义舵图,作为一个子图表,具有以下配置。
# 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我不明白的是,为什么我必须在elasatic-stack:外部定义enabled标记,并在内部定义所有其他配置?
这是正常的舵机行为还是弹性堆叠图中的一些错误配置?
发布于 2019-03-25 23:30:12
Helm conditions在顶层父级的值中求值:
YAML条件-条件字段包含一个或多个
路径(以逗号分隔)。如果此路径存在于顶级父级的值中并解析为布尔值,则将根据该布尔值启用或禁用图表
看看来自稳定/弹性堆栈的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,因此您需要在父图表值中使用它们。
发布于 2019-03-26 01:51:26
父values.yaml中的这些属性充当子图表的开关。
您应该在requirements.yaml中使用condition来控制依赖子图表的安装或执行。如果未提供,则helm将继续部署子图,而不会出现and问题。
此外,这些值在父图表的values.yaml中,因为它们正在父图表本身中使用,而且不能在子图表中使用,除非作为全局名称或在子图表的名称属性键中提供(在您的示例中是弹性堆栈)。
https://stackoverflow.com/questions/55338147
复制相似问题