Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
devops:helm [2020/04/30 10:54] – [Определение значений переменных через другие переменные] admindevops:helm [2021/03/23 11:32] (current) admin
Line 2: Line 2:
 https://helm.sh/docs/topics/charts/ \\ https://helm.sh/docs/topics/charts/ \\
 https://helm.sh/docs/chart_template_guide/getting_started/ \\ https://helm.sh/docs/chart_template_guide/getting_started/ \\
 +
 +====== Ошибка parse error at ...: bad character U+002D '-' ======
 +Такое происходит, если в имени параметра в **values.yaml** есть символ "-". \\
 +Если переименовать параметр невозможно, то подставлять его следует с помощью конструкции **index**:
 +  {{ index .Values "mysub-chart" "servicename" }}
  
  
Line 66: Line 71:
  
 То есть строки, указанные в **values** интерпретируются с помощью функции **tpl**. То есть строки, указанные в **values** интерпретируются с помощью функции **tpl**.
 +
 +===== templating in values hack =====
 +Например, у меня есть набор **volumes**, которые я хотел бы добавить к **deployment**, в именах которых присутствует название релиза - {{ .Release.Name }}. Стандартными средствами **helm** не позволяет темплейтинг в **values.yaml**, поэтому можно применить такой хак: \\
 +В темплейте **deployment**'а пишем такое:
 +<code>{{- if .Values.volumes }}
 +{{- with .Values.volumes }}
 +{{/*      volumes: {{ toYaml .Values.volumes | nindent 8 }}*/}}
 +      volumes:
 +      {{- tpl . $ | nindent 8 }}
 +{{- end }}
 +{{- end }}</code>
 +
 +а в **values** пишем такое:
 +<code>  volumes: |
 +    - name: volume1
 +      configMap:
 +        name: {{ .Release.Name }}-config1
 +    - name: volume2
 +      configMap:
 +        name: {{ .Release.Name }}-config2
 +    - name: volume3
 +      configMap:
 +        name: {{ .Release.Name }}-config3</code>
 +В итоге - в **deployment** попадут 
  • devops/helm.txt
  • Last modified: 2021/03/23 11:32
  • by admin