Helm: Dukungan untuk objek kompleks dalam set

Dibuat pada 3 Mar 2017  ·  3Komentar  ·  Sumber: helm/helm

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:

  1. Saya tidak perlu khawatir melewatkan variabel kosong ke aplikasi saya.
  2. Semua variabel didefinisikan dalam satu lokasi, jadi jika nama variabel berubah, saya dapat dengan cepat mengatur dan melanjutkan perjalanan.
  3. Saya tidak perlu khawatir untuk sepenuhnya memindahkan sesuatu seperti objek 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

feature

Komentar yang paling membantu

Ini sekarang dimungkinkan menggunakan sintaks berikut:

helm install foo --set env[0].name="ROUTER",env[0].value="cake"

Ini didokumentasikan di sini .

Semua 3 komentar

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 .

Apakah halaman ini membantu?
0 / 5 - 0 peringkat