こんにちは、
helmを使用してconfigmapをデプロイしようとすると、問題が発生します。 問題は次のように説明されます。
次のようなフォルダ構造のヘルムチャートがあるとしましょう。
├──チャート
├──Chart.yaml
├──conf
│└──tee.xml
├──テンプレート
│└──ConfigMap.yaml
└──values.yaml
tee.xmlを以下に示します。
<note>
<to>Tove</to>
<from>${name}</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
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 $file.Lines $path }}
{{ . }}
{{- end }}
{{- end }}
values.yamlの一部を以下に示します。
from: Shashi
helm installコマンドを実行するときに、tee.xmlファイル( <from>${name}</from>
)にある値${name}
をvalues.yamlに設定されている値から置き換えたいと思います。 これはヘルムを使用して可能ですか?可能であれば、関連する変更を行うのを手伝っていただけますか?
こんにちは、
「replace」を使用して、上記の問題の解決策を見つけることができました。 以下に関連するヘルムファイルを添付しました。
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>
values.yamlの一部
from: Cigra
helm installを実行することにより、キー "を置き換える構成マップを作成できます。
これが正しい方法だと教えてください。
それが機能する場合、それは機能します。 replace
を使用して、特定の文字列内の部分文字列のすべてのインスタンスを置き換えることは、私には理にかなっているように思えます。
私は同意します-この場合、 replace
を使用することはかなり良いオプションのように思えます。
@KavinduZoysaは、このソリューションが機能することを
最も参考になるコメント
こんにちは、
「replace」を使用して、上記の問題の解決策を見つけることができました。 以下に関連するヘルムファイルを添付しました。
ConfigMap.yaml
tee.xml
values.yamlの一部
from: Cigra
helm installを実行することにより、キー "を置き換える構成マップを作成できます。ジョン 「「シグラ」という言葉から
これが正しい方法だと教えてください。