Kubernetes CI / CD: автоматизация задач сборки, тегов и отправки докеров в инфраструктуре CI / CD

Мы настраиваем инфраструктуру 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, чтобы подтолкнуть их.

Не знаю, так ли хорошо объяснил.

«Начиная с версии 2.5 и выше, Pipeline имеет встроенную поддержку взаимодействия с Docker из файла Jenkins». jenkins.io/doc/book/pipeline/docker Или вам нужно настроить учетные данные, чтобы протолкнуть, о чем вы беспокоитесь? Прошу прощения, если я не понял вашего беспокойства.

Ryan Dawson 10.08.2018 09:30

Я также не вижу, что именно отличает боковые изображения и изображения инициализации от других ваших изображений. Я использую Jenkins-X, поэтому это может предвзято относиться к моему мнению. Вы используете плагин OpenShift Jenkins или ваш Jenkins не общается с OpenShift?

Ryan Dawson 10.08.2018 09:56
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
0
2
219
1

Ответы 1

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

Нашим решением было установить докер на узле jenkins. Сама сборка написана как конвейер и передается в наш scm как Jenkinsfile со следующими шагами:

  • сборка / тестирование приложения
  • создать образ докера
  • нажмите изображение докера
  • удалить изображение на узле Дженкинса
  • развертывать

Если вы не хотите использовать докер на jenkins и используете java, то вроде кливер может помочь. Но я не уверен, что что-то подобное существует для других языков.

Обновлять:

Благодаря предложению Грэхэма вы также можете оформить заказ:

Вам не обязательно нужен докер, что может быть проблемой из-за необходимости запуска демона. Вы можете использовать buildah и skopeo и вообще не нуждаться в докере. Этим инструментам не нужен демон, как docker.

Graham Dumpleton 10.08.2018 09:44

Другие вопросы по теме