Как получить значения из values.yaml в _helpers.tpl в хит-парадах - PullRequest
1 голос
/ 20 июня 2019

Это файл values.yaml. Он содержит следующее, и когда я пытаюсь получить его в _helper.tpl я получаю Helm template failed. Error: render error in "windows/templates/ingresses/windows.yaml": template: windows/templates/_helpers.tpl:38:18: executing "windows.certificate" at <.Values.ingress.enab...>: can't evaluate field ingress in type interface {} : exit status 1

values.yaml

ingress:
    enabled: true
    tls: true
    certificate: ''
    issuer:
        name: letsencrypt-staging
    hosts:
        windows:
            - name: ''
            path: /

_helpers.tpl

 {{/*
 Calculate certificate
 */}}
 {{- define "windows.certificate" }}
 {{- printf .Values.ingress.enabled }}  // error line is this. line no 38
 {{- end }}

в windows.yaml

    - secretName: {{ template "windows.certificate" . }} // calling the helper method.

Ответы [ 2 ]

1 голос
/ 20 июня 2019

Проблема заключается в отступе, попробуйте это

values.yaml

ingress:
  enabled: true
  tls: true
  certificate: ''
  issuer:
    name: letsencrypt-staging
  hosts:
    windows:
      - name: ''
        path: /

Также внесены некоторые изменения в помощники для управления выходом блока определения

_helpers.tpl

 {{/*
 Calculate certificate
 */}}
 {{- define "windows.certificate" }}
 {{- if .Values.ingress.enabled }}
 {{- printf .Values.ingress.certificate }} 
 {{- end }}     
 {{- end }}
0 голосов
/ 20 июня 2019

Возможно, что когда вы вызываете помощника, контекст не является корнем, как того требует определение.

Например, если вы используете его в шаблоне, подобном следующему:

{{- range .Values.deployments }}
  {{ $certificate := include "windows.certificate" . }}
{{- end }}

Контекст при вызове помощника будет .Values.deployments .Таким образом, .Values.ingress.certificate будет указывать на .Values.deployments.Values.ingress.certificate , который, конечно, не существует.

Вначало раздела переменных руководства по шаблону helm , у вас есть пример того, как блоки with влияют на то, что означает ..Прочтение этого может помочь вам понять, как знать, что вы передаете шаблону помощника.

...