Как использовать «развертывания диспетчера развертывания gcloud» в «сборках gcloud» с полным конвейером CI/CD на GCP?

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

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

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

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

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




Ответы (1)


Каковы лучшие практики 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, начиная с пользовательские шаблоны.

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

person vdenotaris    schedule 04.06.2019