Привет,
У меня возникает проблема, когда я пытаюсь развернуть карту конфигурации с помощью helm. Проблема объясняется следующим образом.
Предположим, у меня есть диаграмма управления, структура папок которой выглядит следующим образом.
├── графики
├── 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, я хочу заменить значение ${name}
которое находится в файле tee.xml ( <from>${name}</from>
), на значение, установленное в values.yaml. Возможно ли это с помощью Helm, и если это возможно, не могли бы вы помочь мне внести соответствующие изменения?
Привет,
Мне удалось найти решение вышеуказанной проблемы, используя «заменить». Ниже я прикрепил соответствующие файлы helm.
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, учитывая, что это решение работает, позвольте мне продолжить и закрыть эту проблему. Не стесняйтесь повторно открыть, если это не сработало так, как ожидалось, или если у вас есть другие связанные вопросы. Спасибо!
Самый полезный комментарий
Привет,
Мне удалось найти решение вышеуказанной проблемы, используя «заменить». Ниже я прикрепил соответствующие файлы helm.
ConfigMap.yaml
tee.xml
Часть values.yaml
from: Cigra
Запустив helm install, мы можем создать карту конфигурации, которая заменяет ключ "Джон "от слова" Cigra "
Скажите, пожалуйста, это правильный способ?