2015-08-24 6 views
0

В настоящее время мы играем с кубернетами + докеры. На данный момент мне интересно, как интегрировать бамбук в наш процесс развертывания во время разработки и выпуска.Установка Bamboo + Docker + Kubernetes

Наш текущий процесс CI выглядит так:

  • Dev проверки в код изменений расшириться «разработать»
  • бамбука спусковые строить процесс:
    • код извлечен из мерзавца
    • run код сборки (java)
    • запуск модуля + интеграционные тесты
    • развертывание артефакт Artifactory
    • строить Docker изображение с артефакта
    • тег Docker изображение с артефактами версии
    • толчок изображение докер HUB

Это текущий рабочий процесс в данный момент. Теперь я хотел бы использовать функции развертывания bamboos для развертывания образа докера в наших кластерах кубернетов.

С технической точки это должно быть довольно просто:

  • SSH к главному узлу
  • начала прокатки обновление от контроллера репликации с новым изображением

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

Как-то это больше похоже на обходное решение ... другая идея заключалась бы в развертывании непосредственно в задаче сборки и не использовании функциональности развертывания на всех ...

Есть ли другой вариант? Есть ли у кого-нибудь другой вариант/лучшая идея? Мысли/Помощь были бы очень приятными :)

+0

Я предполагаю, что на «SSH к главному узлу» вы имеете в виду использовать клиент (kubectl roll-update) или отправить JSON/HTTP мастеру. К сожалению, я не знаю ответа на ваш главный вопрос. Возможно, это было бы целесообразно для списка рассылки бамбука? – DavidO

ответ

1

Я не знаком с Bamboo, но Kubernetes 1.2 поддержит API развертывания, который будет выполнять скользящее обновление от вашего имени, как только вы обновите спецификацию развертывания до нового изображения тег.

В качестве альтернативы, вы можете попробовать Openshift 3, который построен на Кубернете. Он поддерживает развертывание запускаемые изображения раздвигает: https://github.com/openshift/origin/blob/master/docs/deployments.md#triggers

0

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

Там, кажется, только быть ограниченным набором свойств, которые вы можете получить доступ из проекта развертывания: https://confluence.atlassian.com/bamboo/variables-for-deployment-environments-342754180.html

Сказав, что это довольно легко сделать экспорт:

В экспорте сборки проекта свойства, которые вы хотите добавить в файл, например project.properties, и пометить это как артефакт сборки.

Затем в проекте развертывания, используйте переменные задачи Вводят Бамбуковые и значения будут доступны для проекта развертывания, как

${bamboo.inject.<property name>} 
Смежные вопросы