Как сослаться на диаграмму руля в том же репозитории

Я хочу сохранить несколько диаграмм Helm в одном репозитории, которые ссылаются друг на друга в своих соответствующих requirements.yaml файлах. Как эти диаграммы должны относиться к относительным путям друг друга?

Для локальной разработки я могу использовать протокол file://, как в

name: chart-name
repository: file://../chart-name

Однако, когда я перейду в размещенный репозиторий, мне нужно будет это изменить. Я бы предпочел, чтобы окончательное местоположение этого каталога диаграмм не запекалось в файлах repository.yaml. Это возможно?


person MRocklin    schedule 04.12.2017    source источник


Ответы (1)


Когда вы переходите в размещенный репозиторий, разве вам не придется публиковать каждую диаграмму? Если да, то если у вас нет циклических зависимостей, опубликуйте каждую диаграмму в зависимом порядке в размещенном репо, а затем обновите requirements.yaml.

т.е. если у вас есть 3 диаграммы A, B и C.

  1. A не зависит ни от B, ни от C
  2. B зависит от A
  3. C зависит от B

Опубликуйте A в размещенном репо, обновите требования B, чтобы они указывали на имя размещенного репо для A, затем опубликуйте B и повторите процесс обновления для C.

Я делаю нечто подобное, но не использую размещенное репо. У меня уже есть большая установка Ansible, поэтому я написал роль, которая устанавливает диаграммы прямо из каталогов. Есть единый репозиторий git со всеми моими диаграммами (в настоящее время их 7), и этот минус запуск сервера управления - это аналогичный процесс. Очевидным недостатком является ручное обновление требований, но я не уверен, что есть другой выбор.

ИЗМЕНИТЬ

Немного взломано, но может работать:

Чтобы избежать редактирования зависимостей, можно также запустить репозиторий диаграммы локально. Если ваше репо доступно по адресу charts.domain.com, добавьте к нему зависимость, как обычно.

dependencies:
  - name: my-chart
    repository: http://charts.domain.com
    version: 0.0.1

затем, когда вы разрабатываете локально, добавьте запись в файл hosts, которая указывает charts.domain.com на ваши localhost диаграммы.

Пример рабочего процесса может выглядеть примерно так:

mkdir my-charts
mv my-char-a-0.0.1.tgz my-charts/
helm repo index my-charts/ --url http://charts.domain.com

Теперь обслуживайте индекс / репо, созданный с localhost. Таким образом, ваша зависимость всегда от charts.domain.com

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

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

person zcourts    schedule 04.12.2017
comment
Очевидным недостатком является ручное обновление требований, но я не уверен, что есть другой выбор. - Да, чтобы было ясно, это суть моей проблемы. Я вполне могу опубликовать все. Я бы просто предпочел не запекать имя репозитория явно, если я могу этого избежать. Я бы хотел посоветовать заглянуть в репозиторий, откуда у вас эта диаграмма - person MRocklin; 05.12.2017