Есть ли способ указать, какой файл значений использовать в диаграмме руля?

В одной из наших диаграмм руля у нас есть файл значений для каждой среды, например.

app-helm-chart:
  dev-values.yaml
  test-values.yaml
  Chart.yaml
  templates
    deployment.yaml
    service.yaml
    ingress.yaml
  Readme.md

Мы упаковали диаграмму helm с помощью пакета helm, а затем пытаемся установить ее из нашего репозитория helm.

Есть ли способ указать использовать файл dev-values ​​из пакета как часть команды установки?

Попытка упаковать и версионировать значения и шаблоны в одном месте, если это возможно.

Спасибо

Helm: используйте упакованные values.dev.yaml для установки задал аналогичный вопрос неделю назад. Я не думаю, что это вариант в Helm, но у меня нет авторитетного ответа или обходного пути.
David Maze 15.03.2022 23:26
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
1
70
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Да.

helm install -f dev-values.yaml ./mychart

https://helm.sh/docs/chart_template_guide/values_files/

Извините, я думаю, что недостаточно объяснил себя, мы упаковали содержимое, показанное выше, и опубликовали его в репозитории helm, затем мы добавили репозиторий helm, а затем пытаемся установить диаграмму из этого репозитория. Таким образом, файл значений не хранится локально, он хранится в пакете helm, который размещается в репозитории helm.

gdix0n 15.03.2022 23:09

Ах, верно. Я бы не стал упаковывать значения конкретных сред в диаграмму. Пакет диаграмм не должен изменяться при изменении конфигурации.

Gaël J 16.03.2022 07:32
Ответ принят как подходящий

На этот вопрос есть два ответа.

Во-первых, используя ваш текущий пакет и настройку репо, вам нужно будет загрузить и извлечь пакет, а затем вызвать файл значений из папки диаграммы.

helm repo add test-repo http://url/to/your repo
helm repo update
helm fetch test-repo/my-chart-name untar [--version x.x.x]  #This creates a directory called "my-chart-name" in the local directory
helm upgrade --install --atomic --wait ./my-chart-name/ -f ./mychart-name/dev-values.yaml

Второй, лучший способ, на который уже намекнул Гаэль Дж., — это не включать в диаграмму значения, специфичные для среды, потому что если вы это сделаете, каждый раз, когда вы изменяете значения или добавляете новые значения, вам нужно будет переупаковывать график и обновить репозиторий графиков.

Лучший способ, и способ, которым мы это делаем, - это иметь отдельную папку, что-то вроде этого

.
├── charts
│   └── my-chart
│       ├── Chart.lock
│       ├── charts
│       │   └── ingress-nginx-3.35.0.tgz
│       ├── Chart.yaml
│       ├── README.md
│       └── templates
│           ├── deployment.yaml
│           ├── _helpers.tpl
│           ├── ingress.yaml
│           ├── NOTES.txt
│           ├── serviceaccount.yaml
│           └── service.yaml
├── profiles
│   ├── values-preprod.yaml
│   └── values-prod.yaml

Таким образом, я могу свободно обновлять профили yaml, а затем использовать локальную (или удаленную) диаграмму — и содержимое или версия диаграммы не должны меняться всякий раз, когда я обновляю значения.

helm upgrade --install --atomic --wait ./charts/my-chart -f profiles/values-preprod.yaml

или

helm upgrade --install --atomic --wait test-repo/my-chart -f profiles/values-preprod.yaml

Другие вопросы по теме