У меня есть репо, включающее Dockerfile и триггер github, который срабатывает каждый раз, когда фиксация помещается в ветку. Всякий раз, когда я фиксирую какое-либо изменение, он создает новый образ докера с тегами: имя ветки и хэш git (да, оба) и отправляет его в реестр. В моих рабочих нагрузках изображение описывается как image:branch_name. Если я вручную переустанавливаю, он загружает последний образ, и все работает нормально. Но проблема возникает, когда я делаю это с Дженкинсом. Потому что в файле deployment.yml изображение имеет имя_изображения:имя_ветви, которое все время статично.
Теперь я настроил задание jenkins для выполнения kubectl apply -f deployment.yml
. Однако это не извлекает последнее изображение каждый раз, поскольку в файле yml нет изменений (имя изображения и ветки совпадают). Как я могу заставить Kubernetes каждый раз извлекать последнее изображение?
Одна идея, которую я имею, состоит в том, чтобы передать gitash в deployment.yml, чтобы в файл было добавлено изменение, запускающее развертывание. Как я могу этого добиться?
PS: я уже знаю kubectl rolling-restart
и kubectl apply
. Я хочу использовать вышеупомянутый метод. Там в любом случае?