Наш текущий этап развертывания CI работает следующим образом:
- Постройте контейнеры.
- Пометьте изображения как
"latest"
и< commit hash >
. - Вставить изображения в репозиторий.
- Вызвать обновление на соответствующих RC (ы).
Это отлично работает для развертываний на базе RC, но теперь, когда объект Deployment
становится более стабильным и базовой функцией, мы хотим воспользоваться этой абстракцией над нашими текущими схемами развертывания и этапами разработки.
У меня возникают проблемы с поиском разумного способа автоматизации обновления Deployment
с помощью рабочего процесса CI. То, что я экспериментировал, - это разделение репо git и выполнение чего-то вроде:
- [App Build] Создайте контейнеры.
- [App Build] Отметьте изображения как
"latest"
и< commit hash >
. - [App Build] Нажмите изображения в репозиторий.
- [App Build] Вызывает сборку приложения
Deployment
repo, проходящего через текущий хеш фиксации. - [Развертывание сборки] Интерполируйте токены манифеста манифеста (в настоящее время только переданный хэш хеширования, например
image: app-%%COMMIT_HASH%%
) - [Deployment Build] Применить обновленный манифест к соответствующим ресурсам
Deployment
.
Конечно, хотя есть лучший способ справиться с этим. Было бы здорово, если бы Deployment
отслеживал хэш-изменения изображения "последнего" тега... может быть, он уже делает? Я не имел успеха в этом. Любые мысли или идеи о том, как лучше обрабатывать развертывание Deployment
, будут оценены:)