#kubernetes-helm #templating #go-templates #helmfile
#kubernetes-helm #шаблоны go
Вопрос:
Я хочу переопределить значения между развертываниями prod и dev.
Значения по умолчанию выглядят следующим образом:
apps:
myapp:
replicaCount: 2
containers:
- name: foo
env:
MODE: "dev"
Я могу переопределить это в командной строке с помощью:
--set apps.myapp.containers[0].env.mode="prod"
Однако я хочу сохранить все переопределения в файле и запустить обновление helm, передавая также файл переопределения. Добавление переопределения в файл, подобный:
apps:
myapp:
containers[0]:
env:
MODE: "prod"
не работает. Как мне переопределить значения внутри списка?
Ответ №1:
Это, мягко говоря, странно.
Это сработало:
apps:
myapp:
containers[1]:
env:
MODE: "prod"
Таким образом, индекс для containers
является 1
переопределенным в файле, однако 0
при выполнении с помощью командной строки:
--set apps.myapp.containers[0].env.mode="prod"
Комментарии:
1. При использовании helm лучше попытаться достичь этого при использовании шаблона в развертывании. yaml и определите эти переопределения в values.yaml
2. Да, они входят в values.yaml. Однако мы хотим переопределить значения в значениях. yaml для разных сред. Мы не хотим дублировать значения. yaml для каждого env, поэтому у нас есть базовые значения. yaml dev.yaml или prod. yaml с переопределениями, которые изменяют только соответствующие поля.