Шлем Интерполяция - PullRequest
       23

Шлем Интерполяция

0 голосов
/ 09 июля 2020

Я устанавливаю следующую переменную среды в Helm Deployment следующим образом.

name: SERVER_ENDPOINT
value: {{ .Values.server.dev_proxy_endpoint }}

Но я хотел бы интерполировать часть среды (dev) переменной значения, например,

name: SERVER_ENDPOINT
value: {{ .Values.server. {{ .Values.environment | lower }} _proxy_endpoint }}

Возможно ли это?

Ответ на первый комментарий

Я попробовал это, создав новое определение в верхней части файла, например:

{{- $value_path_to_endpoint := print ".Values.server." .Values.environment  "_proxy_endpoint" -}}

Но который затем представляет буквальное значение, а не контекстный указатель на файл значений.

name: SERVER_ENDPOINT
value: {{ $value_path_to_endpoint}}

Другими словами, $ value_path_to_endpoint возвращает:

".Values.server.dev_proxy_endpoint"

вместо

.Values.server.dev_proxy_endpoint

Ответы [ 2 ]

3 голосов
/ 09 июля 2020

Вы можете использовать функцию index из Go text / template и Helm's printf

env:
- name: SERVER_ENDPOINT
  value: {{ (index .Values.server (printf "%s_proxy_endpoint" ( .Values.environment | lower ))) }}
0 голосов
/ 09 июля 2020

Я быстро осмотрелся, и похоже, что это возможно. В этой статье объясняется, как несколько других людей достигли того же:)

Kubernetes Helm, объедините две переменные со строкой посередине

...