Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengembalikan palsu lalai jika harta tidak wujud dalam fail values.yaml?

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

WBOY
WBOYke hadapan
2024-02-09 08:51:11423semak imbas

如果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

Saya juga mempunyai fungsi tambahan

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

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 }}

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 -}}

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 -}}

Atau gunakan gali untuk memilih kunci daripada senarai nilai. p>

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

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam