Hallo,
Ich habe ein Problem, wenn ich versuche, eine Konfigurationskarte mit helm bereitzustellen. Das Problem wird wie folgt erklärt.
Nehmen wir an, ich habe ein Helmdiagramm mit der folgenden Ordnerstruktur.
├── Diagramme
├── Chart.yaml
├── conf
│ └ tee.xml
├── Vorlagen
│ └ ConfigMap.yaml
└── values.yaml
tee.xml wird unten angezeigt.
<note>
<to>Tove</to>
<from>${name}</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
ConfigMap.yaml wird unten angezeigt.
apiVersion: v1
kind: ConfigMap
metadata:
name: mytest-var
xml:
{{ .Values.from }}
data:
{{- $file := .Files }}
{{- $var := .Values.from }}
{{- range $path, $byte := .Files.Glob "conf/*" }}
{{- $list := $path | splitList "/"}}
{{- $length := len $list }}
{{- $last := add $length -1 }}
{{ index $list $last }}: |-
{{- range $file.Lines $path }}
{{ . }}
{{- end }}
{{- end }}
Ein Teil der Werte.yaml ist unten dargestellt.
from: Shashi
Wenn ich den Befehl helm install ausführe, möchte ich den Wert ${name}
der sich in der Datei tee.xml befindet ( <from>${name}</from>
), durch einen Wert ersetzen, der in values.yaml festgelegt ist. Ist dies mit Helm möglich und wenn es möglich ist, können Sie mir bitte helfen, die relevanten Änderungen vorzunehmen?
Hallo,
Ich konnte die Lösung für das oben genannte Problem mithilfe von "Ersetzen" finden. Ich habe die entsprechenden Helmdateien unten angehängt.
ConfigMap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: mytest-var
xml:
{{ .Values.from }}
data:
{{- $file := .Files }}
{{- $var := .Values.from }}
{{- range $path, $byte := .Files.Glob "conf/*" }}
{{- $list := $path | splitList "/"}}
{{- $length := len $list }}
{{- $last := add $length -1 }}
{{ index $list $last }}: |-
{{- range $line := $file.Lines $path }}
{{ $line | replace "John" $var }}
{{- end }}
{{- end }}
tee.xml
<note>
<to>Tove</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Teil von values.yaml
from: Cigra
Durch Ausführen von helm install können wir die Konfigurationszuordnung erstellen, die den Schlüssel ersetzt. "
Bitte sagen Sie mir, dass dies der richtige Weg ist.
Wenn es funktioniert, funktioniert es. Die Verwendung von replace
zum Ersetzen jeder Instanz eines Teilstrings innerhalb eines bestimmten Strings klingt für mich sinnvoll.
Ich stimme zu - die Verwendung von replace
klingt in diesem Fall nach einer ziemlich guten Option.
@KavinduZoysa Wenn diese Lösung funktioniert, lassen Sie mich
Hilfreichster Kommentar
Hallo,
Ich konnte die Lösung für das oben genannte Problem mithilfe von "Ersetzen" finden. Ich habe die entsprechenden Helmdateien unten angehängt.
ConfigMap.yaml
tee.xml
Teil von values.yaml
from: Cigra
Durch Ausführen von helm install können wir die Konfigurationszuordnung erstellen, die den Schlüssel ersetzt. "John "aus dem Wort" Cigra "
Bitte sagen Sie mir, dass dies der richtige Weg ist.