Как использовать «развертывания менеджера развертывания gcloud» в «сборках gcloud», на GCP есть полный конвейер CI / CD? - PullRequest
1 голос
/ 04 июня 2019

Я пытаюсь настроить конвейер CI / CD на GCP. Я хотел бы следующее:

  • новая модификация в Github используется в качестве триггера
  • используйте gcloud builds submit --config=cloud_build.yaml для создания нового образа докера, который содержит модификацию из git (в основном это новые пакеты python и код python) и помещает изображение в ContainerRegistry
  • использовать gcloud deployment-manager deployments создать xxx - шаблон pipe.jinja --properties xxx` для развертывания и запуска моего контейнера (это блокнот jupyter)

У меня есть два последних шага настройки и работы (gcloud и gcloud deployment-manager).

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

Каковы лучшие практики на GCP? Я думал, что мог бы использовать gcloud deployment-manager внутри gcloud builds, но на самом деле не нашел документацию, чтобы знать, как это сделать. Для развертывания у меня есть много переменных, которые нужно передать для настройки сети, типа машины и других параметров, и я могу сделать это только с помощью скрипта jinja.

1 Ответ

2 голосов
/ 04 июня 2019

Каковы лучшие практики на GCP? Я думал, что я мог бы использовать gcloud менеджер развертывания в сборках gcloud, но не нашел документация, чтобы знать, как это сделать

Cloud Build предоставляет и поддерживает предварительно созданные образы сборщиков, на которые вы можете ссылаться на этапах сборки для выполнения своих задач.

Вы можете запустить диспетчер развертывания, используя gcr.io/cloud-builders/gcloud ( doc ):

# Build images
[...]

# Load/Generate your Jinja templates
[...]

# Deploy
- name: 'gcr.io/cloud-builders/gcloud'
  id: Deploy your application
  args: ['deployment-manager', 'deployments', 'create', 'your-template']

Однако есть и другие традиционные способы развертывания контейнерного приложения в кластере GKE:

  • через gcr.io/cloud-builders/kubectl для прямого развертывания приложения через четко определенные манифесты Kubernetes;
  • через Построитель инструментов Helm для упаковки и развертывания приложений Kubernetes, начиная с пользовательских шаблонов.

Отказ от ответственности: Комментарии и мнения являются моими собственными, а не мнением моего работодателя.

...