#kubernetes-helm
#kubernetes-helm
Вопрос:
У меня есть простой values.yml
файл для моей диаграммы Helm:
DbMigration:
Resources:
requests:
memory: 256Mi
limits:
memory: 512Mi
В определении для моей задачи миграции базы данных у меня есть это:
spec:
activeDeadlineSeconds: 120
template:
spec:
restartPolicy: Never
containers:
- name: myMigrate
image: myRepo/myService:0.0.1
imagePullPolicy: Always
resources:
requests:
{{- range $key, $value := $.Values.DbMigration.Resources.requests }}
{{ $key }}: {{ $value }}
{{- end }}
limits:
{{- range $key, $value := $.Values.DbMigration.Resources.limits }}
{{ $key }}: {{ $value }}
{{- end }}
Есть ли какой-либо способ упростить resources
область, чтобы я мог просто включить все данные из $.Values.DbMigration.Resources
? То, что у меня есть, работает, но должен быть более краткий способ. Я попытался использовать toYaml
функцию аналогичным образом:
{{- toYaml $.Values.DbMigration.Resources }}
Однако это приводит к:
Ошибка: СБОЙ ОБНОВЛЕНИЯ: ошибка синтаксического анализа YAML в MyTemplate.yaml: ошибка преобразования YAML в JSON: yaml: строка 30: значения сопоставления в этом контексте недопустимы
Ответ №1:
Если вы хотите отобразить блок из значений.yaml «как есть», тогда toYaml — это практически все, что вам понадобится.
spec:
activeDeadlineSeconds: 120
template:
spec:
restartPolicy: Never
containers:
- name: myMigrate
image: myRepo/myService:0.0.1
imagePullPolicy: Always
resources:
{{- toYaml $.Values.DbMigration.Resources | nindent 12 }}
Если у вас все еще возникает ошибка преобразования в JSON, попробуйте немного поиграть с отступом, это все, что есть.
Ответ №2:
Для достижения этого существует несколько способов. Один из них заключается в том, что вместо использования range
вы можете просто изменить значения.yaml в
DbMigration: |
resources:
requests:
memory: 256Mi
limits:
memory: 512Mi
а затем внесите изменения в шаблон миграции как
resources:
{{- .Values.DbMigration | indent 12 }}
Пожалуйста, измените отступ соответствующим образом.
Другой метод заключается в использовании range
и toYaml
DbMigration:
Resources:
requests:
memory: 256Mi
limits:
memory: 512M
шаблон миграции
resources:
{{- range $key, $value := $.Values.DbMigration.Resources }}
{{ $key }}:
{{ toYaml $value }}
{{- end }}
Комментарии:
1. АХ ХА. Я вижу, чего мне не хватало. Это была ошибка синтаксиса шаблона Go, которая мешала мне делать то, что у вас там есть. Ваш ответ сделал это совершенно очевидным. Спасибо.