Actions Runner Controller (ARC) の使用
この記事では、Kubernetes クラスター上で ARC を設定し、セルフホステッド アクション ランナー上で動作するように Dependabot を構成する詳細な手順について説明します。 記事の内容は次のとおりです。
- ARC と Dependabot の統合の概要が含まれています。
- Helm スクリプトを使ったインストールと構成の詳細な手順を示します。
ARC とは
Actions Runner Controller は、セルフホステッド GitHub Actions を Kubernetes ポッドとして管理する Kubernetes コントローラーです。 これにより、ワークフローに基づいてランナーのスケーリングと調整を動的に行い、リソースの使用率を高め、Kubernetes 環境と統合することができます。 「Actions Runner Controller」を参照してください。
ARC 上の Dependabot
ARC を介して Kubernetes クラスター内で管理されるセルフホステッド GitHub Actions ランナー上で Dependabot を実行できます。 これにより、Dependabot ジョブの自動スケーリング、ワークロードの分離、適切なリソース管理を実現し、GitHub Actions とシームレスに統合しながら、organization の管理下にあるインフラストラクチャ内で依存関係の更新を効率的に実行できるようになります。
ローカル環境上で Dependabot 用に ARC を設定する
前提条件
- Kubernetes クラスター
- マネージド クラウド環境の場合は、Azure Kubernetes Service (AKS) を使用できます。
- ローカル セットアップの場合は、minikube を使用できます。
- Helm
- Kubernetes 用のパッケージ マネージャー。
ARC の設定
-
ARC をインストールします。 詳しくは、「アクション ランナー コントローラーのクイック スタート」をご覧ください。
-
ARC セットアップ用の作業ディレクトリを作成し、最新の ARC バージョンをインストールするシェル スクリプト ファイル (たとえば、
helm_install_arc.sh) を作成します。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 -
ARC をインストールするために、この bash スクリプトを使って
helm_install_arc.shを編集します。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 -
次に、ランナー スケール セットを構成する必要があります。 そのためには、まず次の 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
メモ
- dependabot ジョブの対象をランナーに設定するには、ランナー スケール セットのインストール名を
dependabotにする必要があります。 containerMode.type="dind"構成は、ランナーが Docker デーモンに接続できるようにするために必要です。- Organization レベルまたは Enterprise レベルのランナーが作成された場合は、Personal Access Token (PAT) に対して適切なスコープを指定する必要があります。
- personal access token (classic) (PAT) を作成できます。 リポジトリ、organization、または Enterprise のいずれのレベルでランナー スケール セットを作成しているかに応じて、トークンには、次のスコープを指定する必要があります。
- リポジトリ レベル: repo
- Organization レベル: admin:org
- Enterprise レベル: admin:enterprise
personal access token (classic) の作成の詳細については、「個人用アクセス トークンを管理する」を参照してください。
ランナー グループの追加
ランナー グループは、どの organization またはリポジトリがランナー スケール セットにアクセスできるかを制御するために使われます。 ランナー スケール セットをランナー グループに追加するには、ランナー グループが既に作成されている必要があります。
ランナー グループの作成については、「グループを使用してセルフホストランナーへのアクセスを管理する」を参照してください。
Helm chart のランナー スケール セット構成には、必ず次の設定を追加してください。
--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 -
このコマンドを使ってマネージャー ポッドをチェックします。
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 Enterprise Server 上に organization を作成します。 詳しくは、「新しい Organization をゼロから作成」をご覧ください。
- ランナー グループを作成します。 「ランナー グループの追加」を参照してください。
- [Management Console] から依存関係グラフを有効にします。 「企業の依存関係グラフの有効化」を参照してください。
- Enterprise に対して GitHub Connect を有効にします。 「GitHub.com での GitHub Connect の有効化」を参照してください。
- Enterprise に対して Dependabot alerts を有効にします。 「エンタープライズ向けの Dependabot の有効化」を参照してください。
Dependabot の実行のトリガー
ARC の設定を完了したので、Dependabot の実行を開始できます。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [Insights] タブをクリックします。
-
左側のサイドバーで、 [Dependency graph] (依存関係グラフ) をクリックします。
![[依存関係グラフ] タブのスクリーンショット。タブはオレンジ色の枠線で強調されています。](/assets/cb-3959/images/help/graphs/graphs-sidebar-dependency-graph.png)
-
[依存関係グラフ] で、 [Dependabot] をクリックします。
-
関心のあるマニフェスト ファイル名の右側にある [Recent update jobs] をクリックします。
-
マニフェスト ファイルの最近の更新ジョブがない場合は、[Check for updates] をクリックして、Dependabot のバージョン更新ジョブを再実行し、そのエコシステムの依存関係に対する新しい更新プログラムをチェックします。
生成された ARC ランナーの表示
Dependabot ジョブ用に作成された ARC ランナーを表示できます。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [ Actions] をクリックします。
!["github/docs" リポジトリのタブのスクリーンショット。 [アクション] タブがオレンジ色の枠線で強調表示されています。](/assets/cb-12958/images/help/repository/actions-tab-global-nav-update.png)
-
左側のサイドバーにある [Runners] をクリックします。
-
[Runners] の下にある [Self-hosted runners] をクリックして、リポジトリで使用できるすべてのランナーの一覧を表示します。 作成されたエフェメラル dependabot ランナーが表示されます。

ターミナルからこのコマンドを実行して、kubernetes クラスターに作成された同じ dependabot ランナー ポッドを表示することもできます。
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
さらに、次のことを確認できます。
-
ログ。ランナーとマシン名をチェックします。 「Dependabot ジョブ ログの表示」を参照してください。

-
リポジトリの [Pull requests] タブの dependabot ジョブによって作成されたバージョン更新 pull request。