Как испечь веб-приложение, используя Spinnaker?
У меня есть пример веб-приложения, которое я использую, чтобы поэкспериментировать со Spinnaker, в частности перенести его из исходного кода (github) в рабочий (GCE).
Вообще, это что-то (включая применимые зависимости), которое должно быть запечено как изображение? Если так, то как? Поскольку документация и доступная опция пользовательского интерфейса покрывают только пакеты deb.
Если это не нужно запекать, как бы я развернул это и зависимости, скажем, на виртуальной машине QA? Должен ли я использовать сценарии для извлечения и установки их из своих источников?
1 ответ
Типичным сценарием может быть создание исходного кода и создание / публикация deb с использованием системы CI, такой как jenkins, и чтобы этот deb объявлял свои зависимости.
Существует довольно много вариантов создания deb, в зависимости от того, какую систему сборки вы используете. Многие люди используют gradle и плагин Netflix OSS, называемый туманностью ( https://nebula-plugins.github.io/).
Здесь вы найдете подробное руководство ( http://www.spinnaker.io/docs/from-source-to-prod), в котором показано, как: - начать с исходного кода в git-репозитории и создать / опубликовать deb с jenkins (для local aptly repo) - запустить конвейер Spinnaker, запечь новый образ и развернуть его в тестовом кластере - выполнить некоторые ручные оценки - найти только что проверенный образ в тестовом кластере и перенести его в кластер prod
Несмотря на то, что концепции в этой кодовой метке в основном носят общий характер, он использует готовый образ GCE для запуска и запуска без конфигурации. Это должно сработать для вас, так как вы упомянули, что работаете на GCE.
Обратите внимание, что вы, конечно, можете использовать другие стратегии выпечки / развертывания (некоторые люди полагаются на системы управления конфигурациями во время запуска), но сборка deb и запекание его в образ кажется наиболее подходящим для описанного вами сценария.
Если вам действительно нужно просто клонировать ваше веб-приложение в только что запеченное изображение, вы можете сделать это, создав специальный шаблон упаковщика. Все шаблоны упаковщиков находятся в этом каталоге ( https://github.com/spinnaker/rosco/tree/master/rosco-web/config/packer) и их можно использовать ( https://github.com/spinnaker/rosco/blob/master/rosco-web/config/packer/gce.json) в качестве отправной точки.
Затем измените эту строку ( https://github.com/spinnaker/rosco/blob/master/rosco-web/config/packer/gce.json#L33), чтобы вызвать собственный сценарий оболочки. Ваш сценарий оболочки может клонировать все необходимые репозитории и создавать / тестировать, как вам нравится. Поскольку мы полагаемся на упаковщика, вы также можете использовать любого другого поддерживаемого поставщика упаковщика здесь.
Последний шаг - указать ваш новый пользовательский шаблон упаковщика в пользовательском интерфейсе конфигурации Bake Stage вместе с любыми параметрами (если они есть), которые ему требуются: