В чате я спросил о возможности определить такой объект с помощью --set
и с грустью узнал правду:
env:
- name: ROUTER
value: cake
- name: PASSWORD
value: derp
Мне нравится использовать такие строфы в моем values.yaml
для определения всех потребностей переменной env для конкретной спецификации контейнера, так что в спецификации мне нужно только:
env:
{{ toYaml .Values.env | indent 10 }}
Это полезно по множеству причин:
deployment
только потому, что я хочу передать несколько других переменных в основной процесс.К сожалению, передача этих типов объектов в настоящее время не поддерживается. На данный момент лучше всего использовать операторы if прямо в моих шаблонах, но было бы здорово определить большие фрагменты потенциально динамической информации о моем приложении прямо в values.yaml
На самом деле я просто нашел другой способ сделать это, наблюдая за kube-lego
:
{{- range $key, $value := .Values.config }}
- name: "{{ $key }}"
value: "{{ $value }}"
{{- end }}
Моя проблема похожа.
Мы хотим использовать Chart aws-cluster-autoscaler по адресу:
https://github.com/kubernetes/charts/tree/master/stable/aws-cluster-autoscaler
Мы хотели бы передать имя autoscalingGroups []. Через командную строку, используя --set
, а другую информацию - через файл params.yaml:
autoscalingGroups:
- minSize: 2
maxSize: 8
awsRegion: eu-west-1
Когда мы пытаемся установить имя группы автомасштабирования с помощью:
$ helm upgrade cluster-autoscaler stable/aws-cluster-autoscaler -f params.yaml --set "autoscalingGroups[].name"="nodes.k8s.test.eu-west-1.aws.redacted.net"
Но это не работает.
Читая документацию , это известно, но было бы неплохо иметь возможность это сделать.
Теперь это возможно с использованием следующего синтаксиса:
helm install foo --set env[0].name="ROUTER",env[0].value="cake"
Это задокументировано здесь .
Самый полезный комментарий
Теперь это возможно с использованием следующего синтаксиса:
Это задокументировано здесь .