是否有一种声明性的方式在 kubernetes 集群中安装 helm 图表

Is there a declarative way to install helm charts in a kuberenetes cluster

我只是想知道是否有人找到了一种声明性的方法来将 helm 图表 installed/configured 作为集群启动的一部分,并且可以将其签入源代码管理。使用 Kuberenetes 我已经非常习惯 "everything as code" 类型的工作流,我意识到安装和配置 helm 主要基于通过 CLI 的命令式工作流。

我问的原因是因为目前我们的集群正在开发中,并将在生产中重新创建它。我们的大部分配置都是通过 deployment.yaml 文件以声明方式完成的。然而,我们花费了大量时间安装和配置某些 helm 图表(例如 prometheus、grafana 等)

有一个像 helmfile or helmsman 这样的工具可以让你声明安装 Helm 版本作为代码。

这是一个 helmfile.yaml 这样做的例子:

releases:
  # Published chart example
  - name: promnorbacxubuntu         # name of this release
    namespace: prometheus              # target namespace
    chart: stable/prometheus             # the chart being installed to create this release, referenced by `repository/chart` syntax
    set:                                   # values (--set)
      - name: rbac.create
        value: false

运行 helmfile charts 将确保安装所有列出的版本

我的团队遇到了类似的问题,我们使用 Operators 解决了它。 Operator 最好的部分是有 3 种,其中一种是基于 Helm 的。

所以您可以使用 Helm Based Operator ,创建关联的 CRD,然后在那里声明您的配置。然后,这些配置将直接移植到 Helm chart,而您作为用户无需执行任何操作。