Yaml 有条件地管理舵图依赖关系,而不将子图保留在';图表';目录

Yaml 有条件地管理舵图依赖关系,而不将子图保留在';图表';目录,yaml,kubernetes-helm,Yaml,Kubernetes Helm,我目前有3个具有以下结构的头盔存储库: repoA/ ├── templates/ ├── Chart.yaml ├── values.yaml repoB/ ├── templates/ ├── Chart.yaml ├── values.yaml masterRepo/ ├── templates/ ├── Chart.yaml ├── values.yaml ├── requirements.yaml masterRepo中的requirements.yaml文件如下所示: dep

我目前有3个具有以下结构的头盔存储库:

repoA/
├── templates/
├── Chart.yaml
├── values.yaml

repoB/
├── templates/
├── Chart.yaml
├── values.yaml

masterRepo/
├── templates/
├── Chart.yaml
├── values.yaml
├── requirements.yaml

masterRepo中的requirements.yaml文件如下所示:

dependencies:
- name: repoA
  version: "1.0"
  repository: "file://../repoA"
  condition: repoA.enabled
- name: repoB
  version: "1.0"
  repository: "file://../repoB"
  condition: repoB.enabled
我只想使用masterRepo来部署从属舵图

我知道我可以手动将所有子存储库放在
masterRepo/charts
中,它会起作用,但我想保持这些存储库的独立性,以便其他主存储库可以使用其中任何一个


如何使父舵图检测所有必需的舵图并有条件地安装它们(基于启用的repoX.variable变量),而不将从属存储库保留在主舵图的目录中?

如果系统中不同位置有多个舵图,您可以创建依赖项而不更改其位置

使用问题中指定的结构,我们可以在requirements.yaml(对于Helm版本:
2.x.x
)或Chart.yaml(对于Helm版本:
3.x.x
)中添加依赖项。我目前正在使用头盔v2.16.1

现在只需从
masterRepo
目录中运行
helm dependency update
helm dep up
,即可创建一个charts目录。现在,masterRepo的更新结构如下所示:

masterRepo/
├── charts/
       └── chartA-1.tgz
       └── chartB-1.tgz
├── templates/
├── Chart.yaml
├── requirements.lock
├── requirements.yaml
├── values.yaml
添加的新文件/目录包括:

  • ChartA-1.tgzChartB-1.tgz都是压缩的ChartAChartB图表
  • 要求。锁定:用于重建图表/目录。请在中阅读有关此文件的详细信息
  • 要有条件地安装子图表,您可以使用masterRepo的values.yaml文件中的以下内容:

    现在,一个简单的
    helm install
    命令将从masterRepo内部部署masterRepo及其依赖项(chartAchartB

    希望这有帮助。驾驶愉快

    repoA:
      enabled: True
    repoB:
      enabled: True