Helm, создайте env var со значением тега изображения - PullRequest
0 голосов
/ 28 мая 2020

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

image:
    tag: 0.2.6
extraEnv:
  - name: REACT_APP_APP_VERSION
    value: {image.tag}

спасибо

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

Из Документация

Функция tpl позволяет разработчикам оценивать строки как шаблоны внутри шаблона. Это полезно для передачи строки шаблона в качестве значения на диаграмму или визуализации внешних файлов конфигурации. Синтаксис: {{ tpl TEMPLATE_STRING VALUES }}

У вас будет что-то похожее на

values.yaml

image:
  repository: k8s.gcr.io/busybox
  tag: "latest"

extraEnv: "{{ .Values.image.tag }}"

pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: test
spec:
  containers:
  - name: test
    image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
    env:
    - name: REACT_APP_APP_VERSION
      value: {{ tpl .Values.extraEnv. }}
0 голосов
/ 28 мая 2020

Я предполагаю, что отправленный вами код - это ваш values.yaml. Тогда первая часть верна.

image:
    tag: 0.2.6

Теперь вы указываете переменные, передаваемые в pod, не в values.yaml, а в ваших templates/* файлах. Например, чтобы передать переменную в модуль, вы можете использовать следующий код:

env:
  - name: REACT_APP_APP_VERSION
    value: "{{ .Values.image.tag }}"

Проверьте this , чтобы получить полный пример.

Обратите внимание, что вы не можете используйте значения из values.yaml внутри values.yaml. Таким образом, отправленный вами код не будет работать. Это потому, что сам файл values.yaml не оценивается.

...