我正在为 Kubernetes 部署创建Helm Chart (v3)。在deployment.yaml中我定义了一些环境变量
spec:
...
env:
- name: GRAPHITE_ENABLED
value: {{ .Values.env.graphiteEnabled }}
- name: GRAPHITE_HOSTNAME
value: {{ .Values.env.graphiteHostname }}
Run Code Online (Sandbox Code Playgroud)
并在values.yaml中指定这些环境变量的值
env:
graphiteEnabled: "false"
graphiteHostname: "localhost"
Run Code Online (Sandbox Code Playgroud)
使用此命令运行图表时
helm install --debug api-test ./rest-api
Run Code Online (Sandbox Code Playgroud)
导致以下错误:
错误:版本“v1beta1”中的部署无法作为部署处理:v1beta1.Deployment.Spec:v1beta1.DeploymentSpec.Template:v1.PodTemplateSpec.Spec:v1.PodSpec.Containers:[] v1.Container:v1.Container.Env :[]v1.EnvVar:v1.EnvVar.Value:ReadString:需要“或n,但找到f
原来问题是由 value 引起的"false"
。
之后--dry-run
我看到生成值的输出是
- name: GRAPHITE_ENABLED
value: false
Run Code Online (Sandbox Code Playgroud)
但环境变量必须用引号定义。
使用value.yaml 中的值的quote
函数解决了该问题
- name: GRAPHITE_ENABLED
value: {{ .Values.env.graphiteEnabled | quote }}
Run Code Online (Sandbox Code Playgroud)
生成以下输出
- name: GRAPHITE_ENABLED
value: "false"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4360 次 |
最近记录: |