Переопределить values.yaml в рулевой диаграмме, используя нексус - PullRequest
0 голосов
/ 17 февраля 2020

Структура рулевого управления

web-service
  |_ _ _ templates
  |_ _ _ Chart.yaml
  |_ _ _ values.yaml

У меня есть настройка рулевого управления, в которой мои каски для моего приложения упакованы .tgz и отправлены в репозиторий Nexus с учетом https://localhost:50714/#browse/browse:helm

добавлено к штурвалу repositories.yaml с использованием

helm repo add nexus https://localhost:50714/

После добавления Repo я вижу диаграмму

helm search
NAME                                    CHART VERSION   APP VERSION     DESCRIPTION
nexus/web-service                   1.0.0-k8s                       Custom microservice Helm chart

Для установки I Запустите приведенную ниже команду

helm install nexus/ioc-web-service --version 1.0.0-k8s 

и приложение будет развернуто. Итак, приложение разворачивается с использованием значений по умолчанию. Yaml. Мне нужно сделать это настраиваемым, чтобы мой файл values.yaml по умолчанию был переопределен другим файлом. Допустим, значения-override.yaml

web-service
  |_ _ _ templates
  |_ _ _ Chart.yaml
  |_ _ _ values.yaml
  |_ _ _ values-override.yaml

Я использовал обеспечение передачи helm дополнительный файл с помощью команды -f, но он дает values-override.yaml файл не найден

helm install nexus/web-service -f values-override.yaml --version 1.0.0-k8s 

Необходим некоторый вклад в то, как получить значения переопределения в формате файла. В качестве значений переопределения могут быть Dynami c. В одной среде это может быть 1 переменная, в другой - 10 переменных, которые необходимо переопределить

Ответы [ 2 ]

0 голосов
/ 17 февраля 2020

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

  • --values (или -f): укажите файл YAML с переопределениями. Это может быть указано несколько раз, и самый правый файл будет иметь приоритет
  • --set: укажите переопределения в командной строке.

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

Если вы все еще видите Error: open values-override.yaml: no such file or directory, это означает, что Helm, вероятно, установлен как контейнер docker. Это происходит, если вы используете Kubespray для установки Helm, в этом случае может проверить, какая папка монтируется в docker с помощью: $ cat /usr/local/bin/helm Вы можете увидеть что-то вроде этого:

cat /usr/local/bin/helm

#!/bin/bash
/usr/bin/docker run --rm \
  --net=host \
  --name=helm \
  -v /etc/ssl:/etc/ssl:ro \
  -v /root/.helm:/root/.helm:rw \
  -v /usr/share/ca-certificates:/usr/share/ca-certificates:ro \
  lachlanevenson/k8s-helm:2.7.0 \
  "$@"

Это означает, что вам нужно скопировать values-override.yaml в /root/.helm директорию. Вы также можете проверить каталог по $ helm init:

$ helm init
$HELM_HOME has been configured at /root/.helm.
Warning: Tiller is already installed in the cluster.
(Use --client-only to suppress this message, or --upgrade to upgrade Tiller to the current version.)
Happy Helming!
0 голосов
/ 17 февраля 2020

Вы не добавляете values-overwrite.yaml в график. Это локальный файл, в котором вы запускаете команду. Обычно создается с помощью движка шаблонизатора задач типа Ansible или аналогичного на лету.

...