Воркеры 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 каждое задание выполняется в отдельном поде из заранее подготовленного пула.

Подробнее на страницах:

Чтобы запустить 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.

Подробнее о метках воркера

Предыдущая