Мы настраиваем инфраструктуру CI / CD для развертывания наших приложений на openshift / kubernetes.
Мы развертываем приложения с использованием jenkins
, fabric8
и helm
.
Тем не менее, мы создаем артефакты другого типа: образы init
и sidecar
. Итак, нашим приложениям необходимо, чтобы эти образы были доступны в реестре kubernetes / openshift до запуска основных контейнеров.
В настоящее время мы используем building
, tagging
и pushing
их в реестре openshift / kubernetes вручную.
$ docker build .
$ docker tag image <registry>/image
$ docker push <registry>/image
Мы хотим автоматизировать этот процесс, я имею в виду, мы действительно хотели бы избежать выполнения этих трех шагов, и мы не хотим настраивать докер-клиент на подчиненном устройстве jenkins, чтобы подтолкнуть их.
Не знаю, так ли хорошо объяснил.
Я также не вижу, что именно отличает боковые изображения и изображения инициализации от других ваших изображений. Я использую Jenkins-X, поэтому это может предвзято относиться к моему мнению. Вы используете плагин OpenShift Jenkins или ваш Jenkins не общается с OpenShift?
Что ж, вам понадобится отдельная машина с установленным докером, который используется только для создания и отправки вашего образа докера, с программным обеспечением, которое запускается Дженкинсом для выполнения этой задачи. Но я не знаю ни одного программного обеспечения, которое это делает.
Нашим решением было установить докер на узле jenkins. Сама сборка написана как конвейер и передается в наш scm как Jenkinsfile со следующими шагами:
Если вы не хотите использовать докер на jenkins и используете java, то вроде кливер может помочь. Но я не уверен, что что-то подобное существует для других языков.
Обновлять:
Благодаря предложению Грэхэма вы также можете оформить заказ:
Вам не обязательно нужен докер, что может быть проблемой из-за необходимости запуска демона. Вы можете использовать buildah и skopeo и вообще не нуждаться в докере. Этим инструментам не нужен демон, как docker.
«Начиная с версии 2.5 и выше, Pipeline имеет встроенную поддержку взаимодействия с Docker из файла Jenkins». jenkins.io/doc/book/pipeline/docker Или вам нужно настроить учетные данные, чтобы протолкнуть, о чем вы беспокоитесь? Прошу прощения, если я не понял вашего беспокойства.