Kubernetes Helm Chart If 条件检查
Kubernetes Helm Chart If Condition Check
我正在尝试在 Helm 图表中添加 if great than condition。它正在抛出错误。
我在 values.yaml 中定义了值,并在 deployment.yaml 中使用该值作为条件。
values.yaml
replicaCount: 2
deployment.yaml
rollingUpdate:
maxSurge: 1
{{ if gt .Values.replicaCount 2}}
maxUnavailable: 0
{{ else }}
maxUnavailable: 1
{{ end }}
我正在使用 helm dry 运行 选项来检查结果。出现错误
Error: render error in "hello-world/templates/deployment.yaml": template: hello-world/templates/deployment.yaml:16:12: executing "hello-world/templates/deployment.yaml" at <gt .Values.replicaCo...>: error calling gt: incompatible types for comparison
如何解决这个问题?
尝试使用浮点数进行比较:
deployment.yaml
rollingUpdate:
maxSurge: 1
{{ if gt .Values.replicaCount 2.0}}
maxUnavailable: 0
{{ else }}
maxUnavailable: 1
{{ end }}
Helm(连同底层的 Golang 模板和 Yaml)有时会很奇怪。
此外,请注意,有时您需要在 yaml 配置中对值进行类型转换(例如端口号)。
示例:
...
ports:
- containerPort: !!int {{ .Values.containers.app.port }}
...
有关 Yaml 类型转换的更多信息:https://github.com/yaml/YAML2/wiki/Type-casting
我正在尝试在 Helm 图表中添加 if great than condition。它正在抛出错误。
我在 values.yaml 中定义了值,并在 deployment.yaml 中使用该值作为条件。
values.yaml
replicaCount: 2
deployment.yaml
rollingUpdate:
maxSurge: 1
{{ if gt .Values.replicaCount 2}}
maxUnavailable: 0
{{ else }}
maxUnavailable: 1
{{ end }}
我正在使用 helm dry 运行 选项来检查结果。出现错误
Error: render error in "hello-world/templates/deployment.yaml": template: hello-world/templates/deployment.yaml:16:12: executing "hello-world/templates/deployment.yaml" at <gt .Values.replicaCo...>: error calling gt: incompatible types for comparison
如何解决这个问题?
尝试使用浮点数进行比较:
deployment.yaml
rollingUpdate:
maxSurge: 1
{{ if gt .Values.replicaCount 2.0}}
maxUnavailable: 0
{{ else }}
maxUnavailable: 1
{{ end }}
Helm(连同底层的 Golang 模板和 Yaml)有时会很奇怪。
此外,请注意,有时您需要在 yaml 配置中对值进行类型转换(例如端口号)。
示例:
...
ports:
- containerPort: !!int {{ .Values.containers.app.port }}
...
有关 Yaml 类型转换的更多信息:https://github.com/yaml/YAML2/wiki/Type-casting