переменные руля в .Values - PullRequest
       20

переменные руля в .Values

0 голосов
/ 14 сентября 2018

Я хочу динамически сгенерировать свой файл шаблона, вот мой случай:

{{- $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-deploy-nginx.yaml"), как это (также генерируется динамически).Поэтому при создании шаблона я хочу сопоставить изображение и тег в файле значений.

файл значений выглядит так:

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

values-deploy-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

1 Ответ

0 голосов
/ 16 сентября 2018

На языке Go текст / шаблон Я считаю, что функция index сделает это.(.Values обычно является картой, и карты и списки YAML преобразуются в карты и фрагменты Go.) (Также помните, что почти все в библиотеке sprig доступно.)

image: {{ index .Values (printf "%s-image" $value.name) }}:{{ index .Values (printf "%s-tag" $value.name) }}
...