是否有一种声明性的方式在 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,而您作为用户无需执行任何操作。
我只是想知道是否有人找到了一种声明性的方法来将 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,而您作为用户无需执行任何操作。