Helm: Bisakah mengganti string dalam file?

Dibuat pada 15 Mei 2018  ·  3Komentar  ·  Sumber: helm/helm

Hai,
Saya mengalami masalah saat mencoba menerapkan peta konfigurasi menggunakan helm. Masalah dijelaskan sebagai berikut.
Mari kita asumsikan saya memiliki bagan helm yang memiliki struktur map sebagai berikut.

├── grafik
├── Bagan.yaml
├── conf
│ └── tee.xml
├── template
│ └── ConfigMap.yaml
└── nilai.yaml

tee.xml ditampilkan di bawah.

<note>
<to>Tove</to>
<from>${name}</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

ConfigMap.yaml ditampilkan di bawah ini.

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

bagian dari values.yaml ditampilkan di bawah ini.
from: Shashi

Ketika saya menjalankan perintah helm install, saya ingin mengganti nilai ${name} yang terletak di file tee.xml ( <from>${name}</from> ) dari nilai yang ditetapkan di values.yaml. Apakah ini mungkin menggunakan helm dan jika memungkinkan dapatkah Anda membantu saya untuk melakukan perubahan yang relevan?

questiosupport

Komentar yang paling membantu

Hai,

Saya dapat menemukan solusi untuk masalah di atas dengan menggunakan "ganti". Saya telah melampirkan file helm yang relevan di bawah ini.

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>

Bagian dari values.yaml
from: Cigra

Dengan menjalankan instalasi helm kita dapat membuat config map yang menggantikan kunci "John "dari kata" Cigra "

Tolong beritahu saya ini cara yang benar?

Semua 3 komentar

Hai,

Saya dapat menemukan solusi untuk masalah di atas dengan menggunakan "ganti". Saya telah melampirkan file helm yang relevan di bawah ini.

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>

Bagian dari values.yaml
from: Cigra

Dengan menjalankan instalasi helm kita dapat membuat config map yang menggantikan kunci "John "dari kata" Cigra "

Tolong beritahu saya ini cara yang benar?

Jika berhasil, itu berhasil. Menggunakan replace untuk mengganti setiap substring dalam string yang diberikan terdengar masuk akal bagi saya.

Saya setuju - menggunakan replace terdengar seperti opsi yang cukup bagus dalam kasus ini.

@KavinduZoysa mengingat solusi ini berhasil, izinkan saya melanjutkan dan menutup masalah ini. Jangan ragu untuk membuka kembali jika ini tidak berfungsi seperti yang diharapkan atau jika Anda memiliki pertanyaan terkait lainnya. Terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat