L'éditeur PHP Youzi est là pour répondre à une question courante : "Si l'attribut n'existe pas dans le fichier values.yaml, comment renvoyer la valeur false par défaut ?" fichier yaml pour définir les paramètres de configuration. Lorsque nous voulons obtenir la valeur d'un certain attribut, si l'attribut n'existe pas dans le fichier values.yaml, nous pouvons utiliser certaines méthodes pour renvoyer la valeur par défaut. Voici quelques solutions courantes.
fichier yaml. J'ai une valeur définie sous global comme indiqué ci-dessous
global: logging: log4j: enabled: true
J'ai aussi une fonction auxiliaire
{{- define "helm-basic-template.logging-enabled" -}} {{ .Values.global.logging.log4j.enabled | default "false" }} {{- end -}}
La propriété global.logging.log4j.enabled peut ne pas exister, auquel cas je souhaite que la fonction d'assistance renvoie false, sinon renvoie la valeur de la propriété. Mais cela ne fonctionne pas comme je l'espérais. Une idée de ce qui ne va pas avec ma fonction ? Ou existe-t-il une autre meilleure façon de le réécrire ? Merci
Pour éviter que les variables ne soient indéfinies, des vérifications supplémentaires sont requises ici.
Selon la documentation Helm, lorsque l'objet est vide, l'instruction if renvoie false.
Le tuyau sera évalué à faux si la valeur est :
Utilisez directement le chèque ci-dessous.
{{- 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 }}
Ou utilisez la méthode du modèle nommé.
{{- 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 -}}
Ou utilisez default pour définir une simple valeur par défaut.
{{- define "helm-basic-template.logging-enabled" -}} {{- .Values.global.logging.log4j.enabled | default false .Values.global.logging.log4j.enabled -}} {{- end -}}
Ou utilisez dig pour sélectionner une clé dans une liste de valeurs. p>
{{- define "helm-basic-template.logging-enabled" -}} {{- dig "logging" "log4j" "enabled" false .Values.global -}} {{- end -}}
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!