Работа с данными Actions Runner Controller (ARC)
В этой статье приведены пошаговые инструкции по настройке ARC в кластере Kubernetes и настройке Dependabot для запуска на локальных запусках действий. В этой статье
- Содержит обзор интеграции ARC и Dependabot.
- Предоставляет подробные инструкции по установке и настройке с помощью скриптов helm.
Что такое ARC?
Actions Runner Controller — это контроллер Kubernetes, который управляет локально размещенными GitHub Actions как модули pod Kubernetes. Он позволяет динамически масштабировать и оркестрировать запуски на основе рабочих процессов, обеспечивая более эффективное использование ресурсов и интеграцию с средами Kubernetes. См . раздел AUTOTITLE.
Dependabot в ARC
Вы можете запускать Dependabot на локально размещенных GitHub Actions runners, управляемых в кластере Kubernetes с помощью ARC. Это обеспечивает автоматическое масштабирование, изоляцию рабочих нагрузок и более эффективное управление ресурсами для заданий Dependabot, обеспечивая эффективное выполнение обновлений зависимостей в управляемой инфраструктуре организации при интеграции с GitHub Actions.
Настройка ARC для Dependabot в локальной среде
Предпосылки
- Кластер Kubernetes.
- Для управляемой облачной среды можно использовать Служба Azure Kubernetes (AKS).
- Для локальной настройки можно использовать minikube.
- Штурвал
- Диспетчер пакетов для Kubernetes.
Настройка ARC
-
Установите ARC. Дополнительные сведения см. в разделе Краткое руководство по контроллеру запуска действий.
-
Создайте рабочий каталог для установки ARC и создайте файл скрипта оболочки (например,
helm_install_arc.sh), чтобы установить последнюю версию ARC.Bash mkdir ARC touch helm_install_arc.sh chmod 755 helm_install_arc.shmkdir ARC touch helm_install_arc.sh chmod 755 helm_install_arc.sh -
Измените
helm_install_arc.shэтот скрипт Bash для установки ARC.Text NAMESPACE="arc-systems" helm install arc \ --namespace "${NAMESPACE}" \ --create-namespace \ oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set-controllerNAMESPACE="arc-systems" helm install arc \ --namespace "${NAMESPACE}" \ --create-namespace \ oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set-controller -
Выполните файл скрипта
helm_install_arc.sh../helm_install_arc.sh -
Теперь необходимо настроить масштабируемый набор runner. Для этого давайте начнем с создания и редактирования файла со следующим скриптом bash.
Bash touch arc-runner-set.sh chmod 755 arc-runner-set.sh
touch arc-runner-set.sh chmod 755 arc-runner-set.shText INSTALLATION_NAME="dependabot" NAMESPACE="arc-runners" GITHUB_CONFIG_URL=REPO_URL GITHUB_PAT=PAT helm install "${INSTALLATION_NAME}" \ --namespace "${NAMESPACE}" \ --create-namespace \ --set githubConfigUrl="${GITHUB_CONFIG_URL}" \ --set githubConfigSecret.github_token="${GITHUB_PAT}" \ --set containerMode.type="dind" \ oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-setINSTALLATION_NAME="dependabot" NAMESPACE="arc-runners" GITHUB_CONFIG_URL=REPO_URL GITHUB_PAT=PAT helm install "${INSTALLATION_NAME}" \ --namespace "${NAMESPACE}" \ --create-namespace \ --set githubConfigUrl="${GITHUB_CONFIG_URL}" \ --set githubConfigSecret.github_token="${GITHUB_PAT}" \ --set containerMode.type="dind" \ oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set -
Выполните файл скрипта
arc-runner-set.sh.Bash ./arc-runner-set.sh
./arc-runner-set.sh
Примечание.
- Имя установки масштабируемого набора runner должно быть
dependabotдля того, чтобы нацелить задание зависимостей на средство выполнения. - Конфигурация
containerMode.type="dind"необходима, чтобы разрешить средству выполнения подключиться к управляющей программе Docker. - Если создается средство запуска уровня организации или корпоративного уровня, соответствующие области должны быть предоставлены Personal Access Token (PAT).
- Можно создать personal access token (classic) (PAT). Маркер должен иметь следующие области в зависимости от того, создаете ли вы репозиторий, организацию или масштабируемый набор на уровне предприятия.
- Уровень репозитория: репозиторий
- Уровень организации: admin:org
- Корпоративный уровень: admin:enterprise
Сведения о создании personal access token (classic)см. в разделе Управление личными маркерами доступа.
Добавление групп runner
Группы runner используются для управления доступом организаций или репозиториев к масштабируемым наборам runner. Чтобы добавить масштабируемый набор runner в группу runner, необходимо создать группу runner.
Сведения о создании групп runner см. в разделе Управление доступом к самостоятельно размещенным средствам выполнения с помощью групп.
Не забудьте добавить следующий параметр в конфигурацию масштабируемого набора runner в диаграмме helm.
--set runnerGroup="<Runner group name>" \
--set runnerGroup="<Runner group name>" \
Проверка установки
-
Проверьте установку.
Bash helm list -A
helm list -AВыходные данные:
➜ ARC git:(master) ✗ helm list -A NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION arc arc-systems 1 2025-04-11 14:41:53.70893 -0500 CDT deployed gha-runner-scale-set-controller-0.11.0 0.11.0 arc-runner-set arc-runners 1 2025-04-11 15:08:12.58119 -0500 CDT deployed gha-runner-scale-set-0.11.0 0.11.0 dependabot arc-runners 1 2025-04-16 21:53:40.080772 -0500 CDT deployed gha-runner-scale-set-0.11.0 -
Проверьте модуль pod диспетчера с помощью этой команды.
Bash kubectl get pods -n arc-systems
kubectl get pods -n arc-systemsВыходные данные:
➜ ARC git:(master) ✗ kubectl get pods -n arc-systems NAME READY STATUS RESTARTS AGE arc-gha-rs-controller-57c67d4c7-zjmw2 1/1 Running 8 (36h ago) 6d9h arc-runner-set-754b578d-listener 1/1 Running 0 11h dependabot-754b578d-listener 1/1 Running 0 14h
Настройка Dependabot
-
На GitHubперейдите на главную страницу репозитория.
-
Под именем репозитория щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".

-
В разделе "Безопасность" боковой панели щелкните Advanced Security.
-
В разделе "Dependabot" прокрутите страницу до "Dependabot в средства выполнения действий" и выберите " Dependabot для локального запуска".
Запуск Dependabot
Теперь, когда вы настроили ARC, можно запустить запуск Dependabot .
-
На GitHubперейдите на главную страницу репозитория.
-
В поле имени репозитория щелкните вкладку "Граф" aria-hidden="true" aria-label="graph" %} Insights .
-
На левой боковой панели щелкните Граф зависимостей.

-
В разделе "Граф зависимостей" щелкните Dependabot.
-
Справа от имени интересующего вас файла манифеста щелкните "Последние задания обновления".
-
Если для файла манифеста нет последних заданий обновления, нажмите кнопку "Проверить наличие обновлений", чтобы повторно запустить задание обновления версий Dependabot и проверить наличие новых обновлений для этой экосистемы.
Просмотр созданных модулей выполнения ARC
Вы можете просмотреть средства выполнения ARC, созданные для задания Dependabot.
-
На GitHubперейдите на главную страницу репозитория.
-
Под именем репозитория щелкните Actions.

-
На левой боковой панели нажмите кнопку "Runners".
-
В разделе "Runners" щелкните "Локальные модули выполнения ", чтобы просмотреть список всех модулей выполнения, доступных в репозитории. Вы можете увидеть эфемерный модуль запуска зависимостей, созданный.
Вы также можете просмотреть тот же модуль pod runner зависимостей, созданный в кластере Kubernetes из терминала, выполнив следующую команду.
Text ➜ ARC git:(master) ✗ kubectl get pods -n arc-runners NAME READY STATUS RESTARTS AGE dependabot-sw8zn-runner-4mbc7 2/2 Running 0 46s➜ ARC git:(master) ✗ kubectl get pods -n arc-runners NAME READY STATUS RESTARTS AGE dependabot-sw8zn-runner-4mbc7 2/2 Running 0 46s
Кроме того, можно проверить следующее:
-
Журналы, проверяя имя средства выполнения и компьютера. См . раздел AUTOTITLE.

-
Запросы на обновление версии, созданные заданием зависимостей на вкладке "Запросы на вытягивание" репозитория.