gpt4 book ai didi

kubernetes-helm - 在 helm 中使用变量包含(或模板)作为名称

转载 作者:行者123 更新时间:2023-12-04 07:09:36 58 4
gpt4 key购买 nike

我为我的 Helm 图做了一个设计,它使用模板来设置我的 kubernetes 部署的某些部分。模板是每个云提供商:

GCE 的模板,AWS 的模板等。

然后将该模板包含在 Helm 图表的部署部分中。

现在有一种很好的方法可以做到这一点:
根据其适用的云提供商命名每个模板,并使用 values.yaml 中的变量来指导它。

还有一种不那么漂亮的方式,有一堆 if 语句。

我想使用漂亮的方式,因为它需要更少的维护和下游代码,但无法使以下工作正常工作:

{{- include {{.Values.resources.cloudProvider}} .}}

在此声明中 {{.Values.resources.cloudProvider}}包含我的云提供商名称(aws、gce 等)

我得到的错误是:
Error: parse error in "testModel/templates/deployment.yaml": 
template: testModel/templates/deployment.yaml:28:
unexpected "{" in operand

我测试的另一种方法是:
{{- include (.Values.resources.cloudProvider) .}}

这使:
Error: render error in "testModel/templates/deployment.yaml": template:
testModel/templates/deployment.yaml:29:23:
executing "testModel/templates/deployment.yaml"
at <.Values.resources.c...>: invalid value; expected string

在包含模板时,有没有办法将变量用于模板名称?

最佳答案

我正在使用 Helm 2.4.2。这项工作通过改变线

{{- include {{.Values.resources.cloudProvider}} .}}



到:

{{- include .Values.resources.cloudProvider .}}



您还可以使用变量:

{{- $provider := .Values.resources.cloudProvider -}}
{{ - include $provider . }}

关于kubernetes-helm - 在 helm 中使用变量包含(或模板)作为名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43903596/

58 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com