Определите значения для каждого пространства имен - PullRequest
1 голос
/ 28 мая 2019

values.yaml

replicas: {
  test: 1,
  stage: 2,
  prod: 3
}

Здесь я пытаюсь использовать шаблоны Helm для определения количества реплик на пространство имен, но не уверен в правильном синтаксисе и шаблоне:

deployment.yaml

replicas: {{ .Values.replicas.{{ .Release.Namespace }} }}

Так что если бы это было развернуто на --namespace=prod, я бы ожидал, что шаблон вернет:

# .Values.replicas.prod
replicas: 3

Ответы [ 2 ]

1 голос
/ 29 мая 2019

Доступны все функции шаблонов, предоставляемые стандартной библиотекой Go text / template .В частности, это включает в себя функцию index, которая может выполнять динамический поиск в массиве или объекте карты.

replicas: {{ index .Values.replicas .Release.Namespace }}
0 голосов
/ 29 мая 2019

Я не думаю, что Helm поддерживает оценку переменной в переменной.Для этого ваше выражение необходимо будет оценить дважды.

Что вы можете сделать, это написать следующий код:

{{ if eq .Release.Namespace "test" }}{{ .Values.replicas.test }}{{ end }}

Затем вы также можете извлечь этот код в свой _helpers.tpl.Тогда использование должно быть ясным и красивым.

...