# Начните с Actions Runner Controller

В этом руководстве описаны Actions Runner Controllerосновы.

## Необходимые условия

Чтобы использовать ARC, убедитесь, что у вас есть следующее.

* Кластер Kubernetes.
  * Для управляемой облачной среды можно использовать AKS. Для получения дополнительной информации см. [Служба Azure Kubernetes](https://azure.microsoft.com/en-us/products/kubernetes-service) в документации Azure.
  * Для локальной настройки можно использовать миникуб или тип. Дополнительные сведения см. в документации [minikube по миникубе](https://minikube.sigs.k8s.io/docs/start/) и [в документации](https://kind.sigs.k8s.io/) по типу.

* Helm 3
  * Дополнительные сведения см. в разделе ["Установка Helm" в документации Helm](https://helm.sh/docs/intro/install/) .

* Хотя развертывание ARC не требуется, рекомендуется реализовать способ сбора и хранения журналов с контроллера, прослушивателей и временных запусков перед развертыванием ARC в рабочих рабочих процессах.

## Установка контроллера запуска действий

1. Чтобы установить оператор и пользовательские определения ресурсов (CRD) в кластере, выполните указанные ниже действия.

   1. В диаграмме Helm обновите `NAMESPACE` значение до нужного расположения модулей pod оператора. Это пространство имен должно разрешить доступ к серверу API Kubernetes.
   2. Установите диаграмму Helm.

   В следующем примере устанавливается последняя версия диаграммы. Чтобы установить определенную версию, можно передать `--version` аргумент вместе с версией диаграммы, которую вы хотите установить. Список релизов можно найти в [GitHub Container Registry](https://github.com/actions/actions-runner-controller/pkgs/container/actions-runner-controller-charts%2Fgha-runner-scale-set-controller).

   ```bash copy
   NAMESPACE="arc-systems"
   helm install arc \
       --namespace "${NAMESPACE}" \
       --create-namespace \
       oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set-controller
   ```

   Дополнительные параметры конфигурации Helm см [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set-controller/values.yaml) . в документации по ARC.

2. Чтобы включить проверку подлинности GitHubARC, создайте personal access token (classic). Дополнительные сведения см. в разделе [Аутентификация ARC в API GitHub](/ru/enterprise-server@3.22/actions/how-tos/manage-runners/use-actions-runner-controller/authenticate-to-the-api#authenticating-arc-with-a-personal-access-token-classic).

## Настройка масштабируемого набора runner

1. Чтобы настроить масштабируемый набор runner, выполните следующую команду в терминале, используя значения из конфигурации ARC.

   При выполнении команды помните следующее.

   * `INSTALLATION_NAME` Тщательно обновите значение. Имя установки будет использоваться в качестве значения `runs-on` в рабочих процессах. Дополнительные сведения см. в разделе [Синтаксис рабочего процесса для GitHub Actions](/ru/enterprise-server@3.22/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idruns-on).

   * `NAMESPACE` Обновите значение до расположения, в которое нужно создать модули pod runner.

   * Задайте `GITHUB_CONFIG_URL` URL-адрес репозитория, организации или предприятия. Это сущность, к которой будут принадлежать средства выполнения.

   * Задайте значение `GITHUB_PAT`GitHubpersonal access token с `repo` областями и `manage_runners:org` областями выполнения репозитория и организации, а также `manage_runners:enterprise` область для корпоративных runners.

   * В этом примере команда устанавливает последнюю версию диаграммы Helm. Чтобы установить определенную версию, можно передать `--version` аргумент с версией диаграммы, которую вы хотите установить. Список релизов можно найти в [GitHub Container Registry](https://github.com/actions/actions-runner-controller/pkgs/container/actions-runner-controller-charts%2Fgha-runner-scale-set).

     > \[!NOTE]
     >
     > * Рекомендуется создать модули pod runner в другом пространстве имен, отличном от пространства имен, содержащего модули pod оператора.
     > *

В качестве рекомендации по обеспечению безопасности создайте секреты Kubernetes и передайте ссылки на секреты. Передача секретов в виде обычного текста через CLI может представлять угрозу безопасности. Для получения дополнительной информации см. [Развертывание масштабируемых наборов runner с помощью контроллера runner Actions](/ru/enterprise-server@3.22/actions/how-tos/manage-runners/use-actions-runner-controller/deploy-runner-scale-sets).

````
    ```bash copy
    INSTALLATION_NAME="arc-runner-set"
    NAMESPACE="arc-runners"
    GITHUB_CONFIG_URL="https://github.com/<your_enterprise/org/repo>"
    GITHUB_PAT="<PAT>"
    helm install "${INSTALLATION_NAME}" \
        --namespace "${NAMESPACE}" \
        --create-namespace \
        --set githubConfigUrl="${GITHUB_CONFIG_URL}" \
        --set githubConfigSecret.github_token="${GITHUB_PAT}" \
        oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set
    ```

    Дополнительные параметры конфигурации Helm см [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml) . в документации по ARC.
````

1. В терминале выполните следующую команду, чтобы проверить установку.

   ```bash copy
   helm list -A
   ```

   Должен отобразиться похожий результат:

   ```bash
   NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                                       APP VERSION
   arc             arc-systems     1               2023-04-12 11:45:59.152090536 +0000 UTC deployed        gha-runner-scale-set-controller-0.4.0       0.4.0
   arc-runner-set  arc-runners     1               2023-04-12 11:46:13.451041354 +0000 UTC deployed        gha-runner-scale-set-0.4.0                  0.4.0
   ```

2. Чтобы проверить модуль pod диспетчера, выполните следующую команду в терминале.

   ```bash copy
   kubectl get pods -n arc-systems
   ```

   Если все было установлено успешно, состояние модулей pod отображается как **"Запущено**".

   ```bash
   NAME                                                   READY   STATUS    RESTARTS   AGE
   arc-gha-runner-scale-set-controller-594cdc976f-m7cjs   1/1     Running   0          64s
   arc-runner-set-754b578d-listener                       1/1     Running   0          12s
   ```

Если установка не прошла успешно, см [. сведения об устранении неполадок в AUTOTITLE](/ru/enterprise-server@3.22/actions/tutorials/use-actions-runner-controller/troubleshoot) .

## Использование масштабируемых наборов runner

Теперь вы создадите и запустите простой тестовый рабочий процесс, использующий средство выполнения масштабируемого набора runner.

1. В репозитории создайте рабочий процесс, аналогичный следующему примеру. Значение `runs-on` должно совпадать с именем установки Helm, используемым при установке набора запуска автомасштабирования.

   Дополнительные сведения о добавлении рабочих процессов в репозиторий см. в разделе [Быстрый старт для GitHub Actions](/ru/enterprise-server@3.22/actions/get-started/quickstart#creating-your-first-workflow).

   ```yaml copy
   name: Actions Runner Controller Demo
   on:
     workflow_dispatch:

   jobs:
     Explore-GitHub-Actions:
       # You need to use the INSTALLATION_NAME from the previous step
       runs-on: arc-runner-set
       steps:
       - run: echo "🎉 This job uses runner scale set runners!"
   ```

2. После добавления рабочего процесса в репозиторий вручную активируйте рабочий процесс. Дополнительные сведения см. в разделе [Запуск рабочего процесса вручную](/ru/enterprise-server@3.22/actions/how-tos/manage-workflow-runs/manually-run-a-workflow).

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

   ```bash copy
   kubectl get pods -n arc-runners -w
   ```

   Успешные выходные данные будут выглядеть следующим образом.

   ```bash
   NAMESPACE     NAME                                                  READY   STATUS    RESTARTS      AGE
   arc-runners   arc-runner-set-rmrgw-runner-p9p5n                     1/1     Running   0             21s
   ```

## Дальнейшие действия

Actions Runner Controller может помочь вам эффективно управлять GitHub Actions бегунами. Готовы приступить к работе? Ниже приведены некоторые полезные ресурсы для выполнения следующих действий с помощью ARC:

* Подробные сведения о проверке подлинности см. в разделе [Аутентификация ARC в API GitHub](/ru/enterprise-server@3.22/actions/how-tos/manage-runners/use-actions-runner-controller/authenticate-to-the-api).
* Сведения об использовании средств выполнения ARC в рабочих процессах см. в разделе [Использование модулей runner контроллера runner в рабочем процессе](/ru/enterprise-server@3.22/actions/how-tos/manage-runners/use-actions-runner-controller/use-arc-in-a-workflow).
* Сведения о развертывании см. в разделе [Развертывание масштабируемых наборов runner с помощью контроллера runner Actions](/ru/enterprise-server@3.22/actions/how-tos/manage-runners/use-actions-runner-controller/deploy-runner-scale-sets).

## Юридическая информация

Части были адаптированы в соответствии с <https://github.com/actions/actions-runner-controller/> лицензией Apache-2.0:

```text
Copyright 2019 Moto Ishizawa

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```