She*_*idu 4 kubernetes kubernetes-helm
我正在使用 Kubernetes Helm requirements.yaml 文件来添加依赖项。根据 values.yaml 条件,它将创建依赖项 pod。
这里我想在 apache.enabled == false 时执行所需的依赖项
values.yaml
external_apache:
enabled: false
Run Code Online (Sandbox Code Playgroud)
dependencies:
- name:
version:
repository:
condition: external_apache.enabled
Run Code Online (Sandbox Code Playgroud)
如何添加错误条件?
我已经尝试了以下条件,但它不起作用:
condition: external_apache.enabled == false
Run Code Online (Sandbox Code Playgroud)
您使用的是哪个版本的 Helm?
GitHub 上的 Kubernetes 存储库中也存在类似问题:
无法在“requirements.yaml”中使用条件 #2111
解决方案是将 Helm 升级到 v2.2.0+。在那个版本中,添加了条件支持。
由于以下规范更改,图表 apiVersion 上升到“v2”:
- 动态链接的图表依赖项移至Chart.yaml(删除了requirements.yaml 和需求 --> 依赖项)
- 现在可以将库图表(帮助程序/通用图表)添加为动态链接的图表依赖项
- 图表有一个类型元数据字段来定义图表属于应用程序或库图表。默认情况下它是应用程序,这意味着它是可渲染和可安装的
- Helm 2 charts (apiVersion=v1) 仍然可以安装
在Helm 文档或存储库中,有关于条件如何工作的解释:(我添加了一些注释以使阅读更容易)
条件- 条件字段包含一个或多个 YAML 路径(以逗号分隔)。
标签- 标签字段是与此图表关联的标签的 YAML 列表。
# parentchart/requirements.yaml
dependencies:
- name: subchart1
repository: http://localhost:10191
version: 0.1.0
condition: subchart1.enabled, global.subchart1.enabled
tags:
- front-end #(chart should be disabled because the tags.front-end is “false” in values.yaml file , but ...)
- subchart1 #(subchart1.enabled condition path is present in values.yaml file and it has "true" value...)
#(this condition, so it overrides tag front-end and this chart will be enabled)
- name: subchart2
repository: http://localhost:10191
version: 0.1.0
condition: subchart2.enabled,global.subchart2.enabled
#(as soon as no one from these paths is exists in values.yaml this condition has ho effect)
tags:
- back-end #(chart should be enabled because the tags.back-end is “true” in values.yaml file)
- subchart2 #(and there is no condition path found in values.yaml to override it)
Run Code Online (Sandbox Code Playgroud)
如果此条件路径存在于顶级父级中values并解析为布尔值,则图表将根据该布尔值启用或禁用。仅评估列表中找到的第一个有效路径,如果不存在路径,则条件无效。
在顶部父级的值中,可以通过指定标签和布尔值来启用或禁用所有带有标签的图表。
# parentchart/values.yaml
subchart1:
enabled: true #(this could be found from requirements as subchart1.enabled and override tags in this case)
tags:
front-end: false #(this disables charts with tag front-end)
back-end: true #(this enables charts with tag back-end)
Run Code Online (Sandbox Code Playgroud)
条件和标签的逻辑和顺序在标签和条件解析中描述:
您还可以在命令行中设置标签和条件:
helm install --set tags.front-end=true --set subchart2.enabled=false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10405 次 |
| 最近记录: |