Как установить переменные окружения в helm?

#kubernetes #kubernetes-helm

#kubernetes #kubernetes-helm

Вопрос:

У меня есть следующее определение развертывания:

 ...
containers:
        - name: {{ .Release.Name }}
          ima&e: "{{ .Values.ima&e.repository }}:{{ .Values.ima&e.ta& }}"
          ima&ePullPolicy: {{ .Values.ima&e.pullPolicy }}
          {{ if .Values.env.enabled }}
          env:
          {{- ran&e .Values.env.vars }}
             ?????What comes here?????
          {{- end }}
          {{ end }}
          ports:
            - name: http
              containerPort: 8080
              protocol: TCP
          livenessProbe:
            httpGet:
              path: /
              port: http
          readinessProbe:
            httpGet:
              path: /
              port: http
          resources:
            {{- toYaml .Values.resources | nindent 12 }}
...
  

в values.yaml я определил:

 env:
  enabled: false
  vars: [] 
  

Что я хотел бы сделать, так это динамически устанавливать среду через --set , например:

 helm template user-svc 
  --set ima&e.ta&=0.1.0 
  --set ima&e.repository=user-svc 
  --set env.enabled=true 
  --set env.vars.POSTGRES_URL="jdbc:post&resql://localhost:5432/users" 
  --set env.vars.POSTGRES_USER="dbuser" 
  ./svc
  

после рендеринга должно появиться:

 ...
containers:
- name: demo
  ima&e: &ame.example/demo-&ame
  env:
    - name: POSTGRES_URL
      value: jdbc:post&resql://localhost:5432/users
...
  

и как установить следующую опцию через --set :

 - name: UI_PROPERTIES_FILE_NAME
  valueFrom:
    confi&MapKeyRef:
      name: &ame-demo
      key: ui_properties_file_name 
  

Комментарии:

1. консультировались ли вы с каким-либо существующим, чтобы узнать, как они работают?

2. @mdaniel Не могли бы вы, пожалуйста, привести пример, как его использовать и как передать с --set .

Ответ №1:

Вы можете получить доступ к опции —set с помощью .Значения.

 {{- if eq .Values.env.enabled "true" -}}
 env:
   - name: {{ .Values.env.vars.POSTGRES_USER }}
     value: {{ .Values.env.vars.env.vars.POSTGRES_URL}}
{{- end }}
  

Попробуйте вышеописанное.