Bagaimana untuk mengembalikan palsu lalai jika harta tidak wujud dalam fail values.yaml?

WBOY
Lepaskan: 2024-02-09 08:51:11
ke hadapan
439 orang telah melayarinya

如果values.yaml 文件中不存在属性,如何返回默认 false?

Editor PHP Youzi di sini untuk menjawab soalan biasa: "Jika atribut tidak wujud dalam fail values.yaml, bagaimana untuk mengembalikan palsu lalai dalam Carta Helm Kubernetes, kami sering menggunakan nilai. yaml untuk Menentukan parameter konfigurasi. Apabila kita ingin mendapatkan nilai atribut tertentu, jika atribut tidak wujud dalam fail values.yaml, kita boleh menggunakan beberapa kaedah untuk mengembalikan nilai lalai. Berikut adalah beberapa penyelesaian biasa.

Kandungan soalan

fail yaml. Saya mempunyai nilai yang ditakrifkan di bawah global seperti yang ditunjukkan di bawah

global:
  logging:
    log4j:
     enabled: true
Salin selepas log masuk

Saya juga mempunyai fungsi tambahan

{{- define "helm-basic-template.logging-enabled" -}}
{{ .Values.global.logging.log4j.enabled | default "false" }}
{{- end -}}
Salin selepas log masuk

Properti global.logging.log4j.enabled mungkin tidak wujud, dalam hal ini saya mahu fungsi pembantu mengembalikan palsu, jika tidak mengembalikan nilai harta itu. Tetapi ia tidak berfungsi seperti yang saya jangkakan. Ada idea apa yang salah dengan fungsi saya? Atau adakah cara lain yang lebih baik untuk menulis semula? Terima kasih

Penyelesaian

Untuk mengelakkan pembolehubah tidak ditentukan, semakan tambahan diperlukan di sini.

Mengikut dokumentasi helm, apabila objek kosong, pernyataan if kembali palsu.

Paip akan dinilai palsu jika nilainya ialah:

  • Nilai Boolean palsu
  • Nombor Sifar
  • tali kosong
  • tiada (kosong atau batal)
  • Koleksi kosong (peta, kepingan, tuple, kamus, tatasusunan)

Gunakan cek di bawah terus.

{{- if .Values.global }}
{{- if .Values.global.logging }}
{{- if .Values.global.logging.log4j }}
{{- if .Values.global.logging.log4j.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
  name: logging-cm
data:
  conf.json: |
    xxxxx
...
{{- end }}
{{- end }}
{{- end }}
{{- end }}
Salin selepas log masuk

Atau gunakan kaedah templat yang dinamakan.

{{- define "helm-basic-template.logging-enabled" -}}
{{- $val := false }}
{{- if .Values.global -}}
{{- if .Values.global.logging -}}
{{- if .Values.global.logging.log4j -}}
{{- if .Values.global.logging.log4j.enabled -}}
{{- $val = true }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{ $val }}
{{- end -}}
Salin selepas log masuk

Atau gunakan lalai untuk menetapkan nilai lalai yang mudah.

{{- define "helm-basic-template.logging-enabled" -}}
{{- .Values.global.logging.log4j.enabled | default false .Values.global.logging.log4j.enabled -}}
{{- end -}}
Salin selepas log masuk

Atau gunakan gali untuk memilih kunci daripada senarai nilai.

{{- define "helm-basic-template.logging-enabled" -}}
{{- dig "logging" "log4j" "enabled" false .Values.global -}}
{{- end -}}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mengembalikan palsu lalai jika harta tidak wujud dalam fail values.yaml?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan