Dalam obrolan, saya bertanya tentang kemampuan untuk mendefinisikan objek seperti ini melalui --set
dan sayangnya dihadapkan dengan kebenaran:
env:
- name: ROUTER
value: cake
- name: PASSWORD
value: derp
Saya suka menggunakan bait seperti ini di values.yaml
untuk mendefinisikan seluruh kebutuhan variabel env untuk spesifikasi wadah tertentu, sehingga dalam spesifikasi saya hanya perlu:
env:
{{ toYaml .Values.env | indent 10 }}
Ada banyak alasan mengapa ini berguna:
deployment
hanya karena saya ingin meneruskan beberapa variabel lain ke proses utama.Sayangnya, meneruskan jenis objek ini saat ini tidak didukung. Menggunakan pernyataan if tepat di template saya dengan cara terbaik untuk menyiasatinya untuk saat ini, tetapi akan luar biasa untuk menentukan kumpulan besar informasi yang berpotensi dinamis tentang aplikasi saya langsung di values.yaml
Saya sebenarnya baru saja menemukan cara lain untuk melakukan ini dengan mengamati kube-lego
:
{{- range $key, $value := .Values.config }}
- name: "{{ $key }}"
value: "{{ $value }}"
{{- end }}
Masalah saya serupa.
Kami ingin menggunakan Chart aws-cluster-autoscaler di:
https://github.com/kubernetes/charts/tree/master/stable/aws-cluster-autoscaler
Kami ingin meneruskan autoscalingGroups[].name melalui baris perintah, menggunakan --set
, dan info lainnya melalui file params.yaml:
autoscalingGroups:
- minSize: 2
maxSize: 8
awsRegion: eu-west-1
Saat kami mencoba mengatur nama grup penskalaan otomatis dengan:
$ helm upgrade cluster-autoscaler stable/aws-cluster-autoscaler -f params.yaml --set "autoscalingGroups[].name"="nodes.k8s.test.eu-west-1.aws.redacted.net"
Tapi itu tidak berhasil.
Membaca dokumentasi , ini diketahui, tetapi akan tetap menyenangkan untuk dapat melakukan ini.
Ini sekarang dimungkinkan menggunakan sintaks berikut:
helm install foo --set env[0].name="ROUTER",env[0].value="cake"
Ini didokumentasikan di sini .
Komentar yang paling membantu
Ini sekarang dimungkinkan menggunakan sintaks berikut:
Ini didokumentasikan di sini .