Helm: Kann Zeichenfolge in einer Datei ersetzen?

Erstellt am 15. Mai 2018  ·  3Kommentare  ·  Quelle: helm/helm

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?

questiosupport

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

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. "John "aus dem Wort" Cigra "

Bitte sagen Sie mir, dass dies der richtige Weg ist.

Alle 3 Kommentare

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. "John "aus dem Wort" Cigra "

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

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen