禁用自定义 helm 图表中的子图

ceb*_*bor 5 kubernetes elastic-stack kubernetes-helm kubeconfig

我创建了一个自定义舵图作为elastic-stack具有以下配置的子图。

# requirements.yaml
dependencies:
  - name: elastic-stack
    version: 1.5.0
    repository: '@stable'
Run Code Online (Sandbox Code Playgroud)
# 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
Run Code Online (Sandbox Code Playgroud)

我不明白的是为什么我必须enabled在外部定义标签elasatic-stack:并在内部定义所有其他配置?

这是正常的舵行为还是弹性堆栈图表中的某些配置错误?

Edu*_*llo 5

Helm 条件在顶级父级的值中进行评估:

\n\n
\n

条件 - 条件字段包含一个或多个 YAML 路径\n(以逗号分隔)。如果此路径存在于顶级父\xe2\x80\x99s 值\n 中并解析为布尔值,则将根据该布尔值启用或禁用图表\n

\n
\n\n

看一下来自 stable/elastic-stack的requirements.yaml中的条件:

\n\n
- name: elasticsearch\n  version: ^1.17.0\n  repository: https://kubernetes-charts.storage.googleapis.com/\n  condition: elasticsearch.enabled\n- name: kibana\n  version: ^1.1.0\n  repository: https://kubernetes-charts.storage.googleapis.com/\n  condition: kibana.enabled\n- name: logstash\n  version: ^1.2.1\n  repository: https://kubernetes-charts.storage.googleapis.com/\n  condition: logstash.enabled\n
Run Code Online (Sandbox Code Playgroud)\n\n

条件路径为elasticsearch.enabledkibana.enabledlogstash.enabled,因此您需要在父图表值中使用它们。

\n