.Values中的helm变量

问题描述 投票:0回答:1

我想动态生成我的模板文件,这是我的情况:

{{- $v := (.Files.Get "values-deployment-nginx.yaml") | fromYaml }}
spec:
  {{- range $key, $value := $v.containers }}
  containers:
  - name: {{ $value.name }}
    image: {{ .Values.{{ $value.name }}-image }}:{{ .Values.{{ $value.name }}--tag }}

我想首先得到{{$ value.name}},它可能是一个像“nginx”的字符串,然后我想使用{{.Values.nginx-image}}在值文件中获取正确的图像值。 有办法可以做到吗?非常感谢你!


我有很多动态生成的部署模板,但只想将图像和标记暴露给值文件,这样我们就可以在安装图表时传递不同的图像信息。其他变量在(.Files.Get“values-deployment-nginx.yaml”)中,就像这样(也是动态生成的)。因此,在生成模板时,我想匹配值文件中的图像和标记。

值文件如下:

deployment-nginx-imagerepo: nginx
deployment-nginx-imagetag: latest

像这样的values-deployment-nginx.yaml(由其他项目生成):

autoscale: []
containers:
- envs: []
  imagerepository: nginx
  imagetag: latest
  itemid: n79fecd51_6716_fa65_5e64_aeed8ed6ab7e
  name: nginx
  resource:
    maxcpu: ""
    maxmemory: ""
    mincpu: "0.5"
    minmemory: 512m
  volumemounts: []
name: details
replicas: 1
schedulpolicy: []
storages: []
type: deployment
kubernetes-helm go-templates
1个回答
1
投票

Go text/template language我相信index功能将这样做。 (.Values通常是一个地图,YAML地图和列表转换为Go地图和切片。)(还记得几乎sprig库中的所有内容都可用。)

image: {{ index .Values (printf "%s-image" $value.name) }}:{{ index .Values (printf "%s-tag" $value.name) }}
© www.soinside.com 2019 - 2024. All rights reserved.