ahs*_*stn 14 templating kubernetes kubernetes-helm
我正在尝试将 values.yaml 中地图中的变量模板化到我最终的 Kubernetes ConfigMap YAML 中。
我已经通读了https://github.com/helm/helm/issues/2492和https://helm.sh/docs/chart_template_guide/但似乎找不到答案。
在某些情况下,这大致是我想要做的:
值.yaml
config:
key1: value
key2: value-{{ .Release.Name }}
Run Code Online (Sandbox Code Playgroud)
配置映射文件
kind: ConfigMap
data:
config-file: |
{{- range $key, $value := .Values.config }}
{{ $key }} = {{ $value }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)
所需的输出是:
掌舵模板 --name v1 mychart/
kind: ConfigMap
data:
config-file: |
key1 = value
key2 = value-v1
Run Code Online (Sandbox Code Playgroud)
我使用模板函数和流水线尝试了一些变体,但无济于事:
{{ $key }} = {{ tpl $value . }}
{{ $key }} = {{ $value | tpl . }}
{{ $key }} = {{ tpl $value $ }}
Run Code Online (Sandbox Code Playgroud)
Rtm*_*tmY 31
我将参考有关 helm 中模板变量的问题标题,并建议使用values.yamlYAML 锚点的另一个选项。
正如这里所写:
YAML 规范提供了一种存储对值的引用,并稍后通过引用引用该值的方法。YAML 将此称为“锚定”:
coffee: "yes, please"
favorite: &favoriteCoffee "Cappucino"
coffees:
- Latte
- *favoriteCoffee
- Espresso
Run Code Online (Sandbox Code Playgroud)
在上面,设置了对Cappuccino 的&favoriteCoffee引用。
后来,该引用被用作*favoriteCoffee。
所以咖啡就变成了拿铁、卡布奇诺、浓缩咖啡。
指的是通用图像设置(Registry和PullPolicy)的全部values.yaml。
Global.Image请注意如何在以 开头的参考定义旁边设置默认值&:
Global:
Image:
Registry: &global-docker-registry "12345678910.dkr.ecr.us-west-2.amazonaws.com" # <--- Default value
PullPolicy: &global-pull-policy "IfNotPresent" # <--- Default value
Nginx:
Image:
Registry: *global-docker-registry
PullPolicy: *global-pull-policy
Version: 1.21.4
Port: 80
MySql:
Image:
Registry: *global-docker-registry
PullPolicy: *global-pull-policy
Name: mysql
Version: 8.0.27
Port: 3306
Run Code Online (Sandbox Code Playgroud)
以上也可以这样工作
值.yaml
config:
key1: "value"
key2: "value-{{ .Release.Name }}"
Run Code Online (Sandbox Code Playgroud)
配置映射文件
kind: ConfigMap
data:
config-file: |
{{- range $key, $value := .Values.config }}
{{ $key }} = {{ tpl $value $ }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)
我改变的是:我将值放在引号中value.yaml并tpl在配置图中使用模板。
设法使用以下语法解决了这个问题:
配置映射文件
kind: ConfigMap
data:
config-file: |
{{- range $key, $value := .Values.config }}
{{ $key }} = {{ tpl ($value | toString) $ }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15826 次 |
| 最近记录: |