Как лучше сказать, что значение требуется в таблице управления? - PullRequest
0 голосов
/ 20 декабря 2018

Я делаю это сейчас:

value: {{ required "A valid .Values.foo entry required!" .Values.foo }}

Но выдавать это же сообщение для всех необходимых значений в шаблонах громоздко и, на мой взгляд, загромождает шаблоны.

Есть лилучший способ, где мы могли бы определить это вне шаблона \ или более чистый способ сделать это внутри самого шаблона?

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Вы могли бы что-то сделать, воспользовавшись range и тем фактом, что null не пройдет необходимую проверку.Таким образом, в вашем values.yaml у вас может быть этот раздел для необходимых переменных env:

reqEnv:
 - name: "VAR1"
   value: null
 - name: "VAR2"
   value: null

А в разделе env в Deployment вы получите:

{{- range .Values.reqEnv }}
          {{ .name }}: {{ required "A value must be entered for all reqEnv entries" .value }}
{{- end }}

Тогда пользователь получитошибка, если они не установили все необходимые значения раздела reqEnv в файле своих значений или в качестве параметров.К сожалению, то, что вы теряете, это то, чего нет в var.Возможно, именно поэтому официальные карты руля предпочитают использовать required так, как вы уже.

0 голосов
/ 20 декабря 2018

Вы можете использовать helm lint с - строгим флагом для проверки неопределенных значений

$ helm lint --strict . 
==> Linting .
[INFO] Chart.yaml: icon is recommended
[ERROR] templates/: render error in "mychart/templates/service.yaml": template: mychart/templates/service.yaml:10:19: executing "mychart/templates/service.yaml" at <.Values.foo>: map has no entry for key "foo"

Error: 1 chart(s) linted, 1 chart(s) failed
...