helm-installer 插件

helm-installer 插件实现了比 helm 更加简单和容易上手的方式来快速部署提供了 Helm Chart 的应用。

1、快速开始

只需要一个最小化配置,你就可以快速使用默认配置部署一个 Helm Chart。你可以将如下配置内容保存到本地 config.yaml 文件中:

YAML

  1. config:
  2. state:
  3. backend: local
  4. options:
  5. stateFile: devstream.state
  6. tools:
  7. - name: helm-installer
  8. instanceID: argocd-001

在这个配置文件里,和插件相关的配置 name 和 instanceID,前者表示你将使用 helm-installer 插件,后者表示插件实例名。 请注意这个 instanceID 使用了 “argocd” 前缀,DevStream 会识别这个前缀,尝试寻找 Argo CD 应用对应的 Chart,并设置一系列默认值,然后开始部署。

你可以在 Install Argo CD with DevStream 中查看 DevStream 为你设置了哪些默认值。

接着执行如下命令开始部署:

Bash

  1. ./dtm init -f config.yaml
  2. ./dtm apply -f config.yaml -y

2、插件介绍

helm-installer 插件的完整配置格式如下:

YAML

  1. tools:
  2. - name: helm-installer
  3. instanceID: argocd-001
  4. dependsOn: [ ]
  5. options:
  6. repo:
  7. name: ""
  8. url: ""
  9. chart:
  10. chartPath: ""
  11. chartName: ""
  12. version: ""
  13. namespace: ""
  14. releaseName: ""
  15. wait: true
  16. timeout: 10m
  17. upgradeCRDs: true
  18. valuesYaml: ""

这里有一些细节需要注意,下述几个小节将详细为你介绍。

2.1、instanceID 使用技巧

instanceID 的前缀如果能够匹配到某个已经被支持的工具(详见文末列表),那么 DevStream 会为你设置一系列的默认值。 比如 “argocd-001” 的前缀 “argocd-“ 能够匹配到 “argocd”,因此 Argo CD 的默认 Chart 配置会被应用,于是如下最小化配置:

YAML

  1. tools:
  2. - name: helm-installer
  3. instanceID: argocd-001

将会被 DevStream 直接补全成:

YAML

  1. - name: helm-installer
  2. instanceID: argocd-001
  3. dependsOn: [ ]
  4. options:
  5. repo:
  6. name: "argo"
  7. url: "https://argoproj.github.io/argo-helm"
  8. chart:
  9. chartPath: ""
  10. chartName: "argo/argo-cd"
  11. version: ""
  12. namespace: "argocd"
  13. releaseName: "argocd"
  14. wait: true
  15. timeout: 10m
  16. upgradeCRDs: true
  17. valuesYaml: ""

2.2、自定义 Chart 配置

如果你想使用自定义 Chart 的 values.yaml 配置,只需要将 values.yaml 的文件路径或者内容直接加到 helm-installer 插件配置 options 部分的 chart.valuesYaml 里。 两种配置方式分别如下:

  • 使用本地 values.yaml 文件

YAML

  1. - name: helm-installer
  2. instanceID: argocd-001
  3. dependsOn: [ ]
  4. options:
  5. valuesYaml: "./values.yaml"
  • 直接使用 values.yaml 文件内容

YAML

  1. - name: helm-installer
  2. instanceID: argocd-001
  3. dependsOn: [ ]
  4. options:
  5. valuesYaml: |
  6. foo: bar

3、当前支持的工具列表

当前 DevStream 支持使用”极简配置”部署如下应用(也就是能够根据 instanceID 配置识别到 Chart 地址等信息,并设置一系列默认值,直接开始部署流程):