Воркеры CI/CD SourceCraft
Воркер — это виртуальная машина, физический сервер или serverless-контейнер, на которых выполняются CI/CD-процессы.
Все кубики одного задания запускаются на одном и том же воркере.
Поддерживаются следующие типы воркеров:
Облачные воркеры
Облачные воркеры — виртуальные машины в облаке, предоставляемые SourceCraft. Являются ресурсом для выполнения CI/CD-процессов по умолчанию.
Конфигурация вычислительных ресурсов облачных воркеров: 4 vCPU, 8 ГБ RAM.
Serverless-воркеры
Serverless-воркеры — бессерверные контейнеры в облаке, предоставляемые SourceCraft. По сравнению с облачными воркерами, serverless-воркеры запускаются практически мгновенно, поскольку не тратят время на загрузку виртуальной машины.
Ограничения:
- Для Docker-кубиков поддерживается только реестр Yandex Container Registry.
- Внутри кубика нельзя запускать
dockerиdocker-compose. - В одном задании может быть не более 9 уникальных пользовательских Docker-образов.
Чтобы запустить CI/CD-процесс на serverless-воркере, в параметрах рабочего процесса (workflow) или задания (task) укажите runs_on: serverless.
Если в task не указан параметр runs_on, по умолчанию будет выставлен параметр из workflow:runs_on.
Пример запуска всего рабочего процесса на serverless-воркере
workflows:
workflow-in-serverless-mode:
runs_on: serverless
tasks:
- name: task1-in-serverless-mode
cubes:
- name: hello
script:
- echo "hello from serverless"
- name: task2-in-serverless-mode
cubes:
- name: hello
script:
- echo "hello from serverless again"
Пример запуска отдельного задания на serverless-воркере
workflows:
workflow1:
tasks:
- name: task1-in-compute-mode
cubes:
- name: hello
script:
- echo "hello from compute"
- name: task2-in-serverless-mode
runs_on: serverless
cubes:
- name: hello
script:
- echo "hello from serverless"
Пользовательские (self-hosted) воркеры
Пользовательские (self-hosted) воркеры — личные серверы пользователей, как виртуальные, так и физические, на которых выполняются CI/CD-процессы. В этом случае для процессов будет доступно окружение пользовательского сервера.
На пользовательские воркеры не действуют ограничения на объем вычислительных ресурсов, а также не расходуется квота на суммарное время работы CI/CD-процессов.
Пользовательские воркеры могут запускать задания напрямую на сервере или в кластере Kubernetes. В режиме Kubernetes каждое задание выполняется в отдельном поде из заранее подготовленного пула.
Подробнее на страницах:
- Настроить пользовательский (self-hosted) воркер для SourceCraft
- Настроить выполнение заданий CI/CD SourceCraft в кластере Kubernetes
- Развертывание пользовательского (self-hosted) воркера SourceCraft на виртуальной машине Yandex Compute Cloud
Чтобы запустить CI/CD-процесс на пользовательском воркере, в параметрах рабочего процесса (workflow) или задания (task) укажите runs_on: self-hosted.
Если в task не указан параметр runs_on, по умолчанию будет выставлен параметр из workflow:runs_on.
Пример запуска всего рабочего процесса на пользовательском воркере
workflows:
my-awesome-workflow:
runs_on: self-hosted
tasks:
- name: self-hosted-task
cubes:
- name: hello
script:
- echo "hello from self-hosted"
- name: self-hosted-go-builder-task
runs_on: [self-hosted, go-builder]
cubes:
- name: hello
script:
- echo "hello from self-hosted go builder"
В этом случае задания из рабочего процесса my-awesome-workflow, если у них не переопределен параметр runs_on, по умолчанию будут выполняться на любом из ваших пользовательских воркеров. А задание self-hosted-go-builder-task будет выполнено только на пользовательском воркере, которому при инициализации была присвоена метка go-builder.