Comment puis-je passer la chaîne JSON entière à une valeur de graphique Helm?
J'ai values.yml
où la valeur de configuration doit contenir JSON entier avec une configuration d'une application
...
config: some JSON here
...
et je dois transmettre cette valeur à un modèle secret, puis la monter en tant que volume sur un module Kubernetes.
{{- $env := default "integration" .Values.env}}
apiVersion: v1
kind: Secret
metadata:
name: {{ .Release.Name }}-{{ $env }}
type: Opaque
data:
config.json: {{ .Values.config | b64enc | quote }}
Cependant, l'approche évidente consistant à passer une chaîne entre guillemets simple comme '{"redis": "localhost:6379"}'
échoue parce que Helm pour une raison quelconque supprime tous les guillemets doubles dans la chaîne (même si je leur échappe), donc je me retrouve avec {redis: localhost:6379}
qui n'est pas un JSON valide.
Existe-t-il une autre possibilité pour passer la configuration au pod à la fois sans charger les fichiers de modèle avec la fonction tpl
et rendre tous les champs nécessaires accessibles via values.yml
séparément?
Voici une autre suggestion si vous souhaitez éviter l'encodage:
env:
- name: MYCONFIG
value: {{ .Files.Get "config.json" | toPrettyJson }}
Selon les helm docs , helm utilise des fonctions de modèle telles que toPrettyJson
qui sont fournies par le package texte/modèle Go intégré et la bibliothèque de fonctions de modèle Sprig =.