Helm+Crossplane+LinkerD
March 7, 2023

Helm. Функции, пайплайны и условия

Используются для более тонкой настройки переменных в манифестах.

Пример функции с пайплайном.

{{ .Values.images | upper | quota }}

Примеры условного выражения.

{{- if .Values.deptLabel }}
  labels:
    dept: {{ .Values.deptLabel }}
{{- end }}
{{- if .Values.deptLabel }}
  labels:
    dept: {{ .Values.deptLabel }}
{{- else if eq.Values.deptLabel "ct" }}
  labels:
    dept: camTest
{{- end }}
   # Если тип сервисного порта указан как NodePort, то указываем его
    {{- if eq .Values.service.type "NodePort" }}
    nodePort: {{ .Values.service.nodePort }}
    {{- end }} 
{{- if eq .Values.environment "production" }}
    ROCKET_SIZE: big
 {{- else if eq .Values.environment "development" }}
    ROCKET_SIZE: small
 {{- else }}
    ROCKET_SIZE: average
  {{- end }}

Функции используются для того чтобы определить, создавать в чарте объекты нужного типа или нет.

Например, создавать или не создавать SA.

Пример.

В файле values.yaml:

serviceAccount:
  create: true
  name: cameda

В манифесте:

{{- if .Values.serviceAccount.create -}}

apiVersion: v1
kind: ServiceAccount
metadata:
  name: {{ .Values.serviceAccount.name }}

{{- end -}}

Объявление и использование переменной.

{{- $saName := .Values.serviceAccount.name }}

metadata:
  name: {{ $saName }}