Чтобы выполнять задачи непрерывной интеграции и настраиваемые задачи, необходимо настроить рабочую область конвейера Code Stream.

В рабочей области конвейера выберите Docker или Kubernetes для параметра Тип и укажите соответствующие конечные точки. Платформы Docker и Kubernetes обеспечивают управление всем жизненным циклом контейнера, развертываемого Code Stream для выполнения задачи непрерывной интеграции или настраиваемой задачи.

  • Для рабочей области Docker требуется конечная точка узла Docker, URL-адрес образа построителя, реестр образов, рабочий каталог, кэш, переменные среды, ограничение ЦП и ограничение памяти. Также можно создать клон репозитория Git.
  • Для рабочей области Kubernetes требуется конечная точка API-интерфейса Kubernetes, URL-адрес образа построителя, реестр образов, пространство имен, порт узла, запрос постоянного тома, рабочий каталог, переменные среды, ограничение ЦП и ограничение памяти. Также можно создать клон репозитория Git.

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

Табл. 1. Зоны рабочей области, сведения и доступность
Выбор Описание Сведения и доступность
Тип Тип рабочей области. Параметр, доступный в Docker и Kubernetes.
Конечная точка узла Конечная точка узла, где выполняется непрерывная интеграция и настраиваемые задачи.

Параметр доступен в рабочей области Docker при выборе конечной точки узла Docker.

Параметр доступен в рабочей области Kubernetes при выборе конечной точки API-интерфейса Kubernetes.

URL-адрес образа построителя Имя и расположение образа построителя. С помощью этого образа создается контейнер на узле Docker и кластере Kubernetes. Задачи непрерывной интеграции и настраиваемые задачи выполняются внутри этого контейнера.

Пример: fedora:latest

Образ построителя должен включать curl или wget.

Реестр образов Если образ построителя доступен в реестре и для реестра требуются учетные данные, необходимо создать конечную точку реестра образов, а затем выбрать ее здесь, чтобы образ можно было извлечь из реестра. Параметр доступен в рабочих областях Docker и Kubernetes.
Рабочий каталог Рабочий каталог — это расположение в контейнере, где выполняются действия задачи непрерывной интеграции, а также клонируется код, когда веб-перехватчик Git запускает выполнение конвейера. Параметр, доступный в Docker и Kubernetes.
Пространство имен Если не ввести пространство имен, Code Stream создаст уникальное имя в указанном кластере Kubernetes. Параметр рабочей области Kubernetes.
Прокси-сервер

Чтобы обеспечить связь с модулем рабочей области в кластере Kubernetes, Code Stream развертывает в пространстве имен codestream-proxy один экземпляр прокси-сервера для каждого кластера Kubernetes. Можно выбрать один из типов — Порт узла или Подсистема балансировки нагрузки — в зависимости от конфигурации кластера.

Выбранный параметр зависит от характера развернутых кластеров Kubernetes.

  • Обычно если URL-адрес сервера API Kubernetes, указанный в конечной точке, отображается в одном из главных узлов, рекомендуется выбрать Порт узла.
  • Если URL-адрес сервера API Kubernetes отображается в подсистеме балансировки нагрузки, как в случае с Amazon EKS (Elastic Kubernetes Service), выберите Подсистема балансировки нагрузки.
Порт узла

Code Stream использует порт узла для обмена данными с контейнером, выполняемым в кластере Kubernetes.

Если порт не выбран, Code Stream будет использовать временный порт, назначаемый Kubernetes. Необходимо убедиться, что правила брандмауэра настроены так, чтобы разрешать вхождение в диапазон временных портов (30000–32767).

При вводе порта необходимо убедиться, что он не используется другой службой в кластере, а также что этот порт разрешен правилами брандмауэра.

Параметр рабочей области Kubernetes.
Запрос постоянного тома

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

Дополнительные сведения о создании запроса постоянного тома см. в документации Kubernetes на странице https://kubernetes.io/docs/concepts/storage/persistent-volumes/.

Параметр рабочей области Kubernetes.
Переменные сред Пары «ключ-значение», которые здесь передаются, будут доступны для всех задач непрерывной интеграции и настраиваемых задач в конвейере при его выполнении.

Параметр, доступный в Docker и Kubernetes.

Здесь можно передать ссылки на переменные.

Переменные среды, указываемые в рабочей области, передаются во все задачи непрерывной интеграции и настраиваемые задачи в конвейере.

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

Ограничения ЦП Ограничения ресурсов ЦП для контейнера непрерывной интеграции или контейнера настраиваемых задач. Значение по умолчанию — 1.
Ограничения памяти Ограничения памяти для контейнера непрерывной интеграции или контейнера настраиваемых задач. Единицей является МБ.
Клон Git Когда вы выбираете клон Git и веб-перехватчик Git инициирует конвейер, код клонируется в рабочую область (контейнер). Если вы не включили параметр клон Git, необходимо настроить другую явную задачу непрерывной интеграции в конвейере, чтобы сначала клонировать код, а затем выполнять другие шаги, такие как сборка и тестирование.
Кэш

Рабочая область Code Stream позволяет кэшировать набор каталогов или файлов для ускорения последующих циклов выполнения конвейера. К примерам этих каталогов относятся .m2 и npm_modules. Если вам не нужно кэширование данных циклов выполнения конвейера, запрос постоянного тома не требуется.

Такие артефакты, как файлы или каталоги в контейнере, кэшируются для повторного использования в циклах выполнения конвейера. Например, можно кэшировать папку node_modules или .m2. Кэш принимает список путей.

Например:

workspace:
  type: K8S
  endpoint: K8S-Micro
  image: fedora:latest
  registry: Docker Registry
  path: ''
  cache:
    - /path/to/m2
    - /path/to/node_modules

Параметр, специфичный для типа рабочей области.

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

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

При использовании конечной точки API-интерфейса Kubernetes в рабочей области конвейера Code Stream создает необходимые для выполнения задачи непрерывной интеграции или настраиваемой задачи ресурсы Kubernetes, такие как ConfigMap, Secret и Pod. Code Stream обменивается данными с контейнером с помощью порта узла.

Чтобы предоставить общий доступ к данным для всех циклов выполнения конвейера, необходимо указать запрос постоянного тома. Code Stream подключит запрос постоянного тома к контейнеру, чтобы обеспечить хранение данных и его использование для последующих циклов выполнения конвейера.