在没有 运行 主图表的情况下在 helm 中使用全局参数
Using global parameter in helm without running master chart
我有这样的 helm 图表结构:
-chart A- \
-chart A1
-chart A2
-chart B- \
-chart B1
-chart B2
-chart C-\
-chart C1
-chart C3
我需要的是一个全局参数或环境变量,我可以将其应用于 所有 个图表,而无需在所有图表之上设置主图表。
所以当我 运行 helm install 时,我不必使用 --set 将此参数传递给所有 "main" 图表(A、B、C)。
这可能吗?
您可以为 helm install
提供多个 --set
和 -f
选项,因此最好的解决方案是将 "global" 设置写入文件并始终通过helm install
的 -f global-settings.yaml
选项(以及您拥有的任何其他图表特定设置和值文件)。
如果您要安装的所有内容都在一个命名空间中,根据设置的实际作用,将它们放入共享的 ConfigMap 中可能会奏效。这管理起来有点棘手(您可能需要手动执行 运行 kubectl
命令),并且您可以使用 Helm 值执行许多使用共享 ConfigMap 无法执行的操作。但是,按照您在问题中建议的方式 "automatic" ;您根本不需要任何 Helm 选项即可使用它。
您可能需要考虑使用 xxx.yaml
文件来覆盖您的图表默认属性,并使用该环境变量为该文件创建模板。我认为这种方法比使用 --set
cli 选项更易于维护。
另一种方法是使用 Landscaper, listed on the Helm documentation 之类的东西,以一种简单的方式为您的图表制作模板
我有这样的 helm 图表结构:
-chart A- \
-chart A1
-chart A2
-chart B- \
-chart B1
-chart B2
-chart C-\
-chart C1
-chart C3
我需要的是一个全局参数或环境变量,我可以将其应用于 所有 个图表,而无需在所有图表之上设置主图表。
所以当我 运行 helm install 时,我不必使用 --set 将此参数传递给所有 "main" 图表(A、B、C)。
这可能吗?
您可以为 helm install
提供多个 --set
和 -f
选项,因此最好的解决方案是将 "global" 设置写入文件并始终通过helm install
的 -f global-settings.yaml
选项(以及您拥有的任何其他图表特定设置和值文件)。
如果您要安装的所有内容都在一个命名空间中,根据设置的实际作用,将它们放入共享的 ConfigMap 中可能会奏效。这管理起来有点棘手(您可能需要手动执行 运行 kubectl
命令),并且您可以使用 Helm 值执行许多使用共享 ConfigMap 无法执行的操作。但是,按照您在问题中建议的方式 "automatic" ;您根本不需要任何 Helm 选项即可使用它。
您可能需要考虑使用 xxx.yaml
文件来覆盖您的图表默认属性,并使用该环境变量为该文件创建模板。我认为这种方法比使用 --set
cli 选项更易于维护。
另一种方法是使用 Landscaper, listed on the Helm documentation 之类的东西,以一种简单的方式为您的图表制作模板