Skip to main content

Actions Runner Controller を使ってセルフホステッド アクション ランナー上で動作するように Dependabot を設定する

セルフホステッド ランナーでActions Runner Controllerを実行するようにDependabotを構成できます。

この機能を使用できるユーザーについて

書き込み アクセスを持つユーザー

Actions Runner Controller を使用する (ARC)

この記事では、Kubernetes クラスターで ARC を設定し、セルフホステッド アクション ランナーで実行するように Dependabot を構成する手順について説明します。 記事の内容は次のとおりです。

  • ARC と Dependabot 統合の概要が含まれています。
  • Helm スクリプトを使ったインストールと構成の詳細な手順を示します。

ARC とは

Actions Runner Controllerは、Kubernetes ポッドとしてセルフホステッド GitHub Actionsを管理する Kubernetes コントローラーです。 これにより、ワークフローに基づいてランナーのスケーリングと調整を動的に行い、リソースの使用率を高め、Kubernetes 環境と統合することができます。 「アクション ランナー コントローラー」を参照してください。

ARC における Dependabot

ARC によって Kubernetes クラスター内で管理されるセルフホスト型の Dependabot ランナー上で、GitHub Actions を実行できます。 これにより、 Dependabot ジョブの自動スケーリング、ワークロードの分離、リソース管理の向上が可能になり、依存関係の更新を組織の制御されたインフラストラクチャ内で効率的に実行しながら、 GitHub Actionsとシームレスに統合できます。

ローカル環境で arc for Dependabot を設定する

[前提条件]

  • Kubernetes クラスター
    • マネージド クラウド環境の場合は、Azure Kubernetes Service (AKS) を使用できます。
    • ローカル セットアップの場合は、minikube を使用できます。
  • Helm
    • Kubernetes 用のパッケージ マネージャー。

ARC の設定

  1. ARC をインストールします。 詳しくは、「Actions Runner Controller の開始方法」をご覧ください。

  2. ARC セットアップ用の作業ディレクトリを作成し、最新の ARC バージョンをインストールするシェル スクリプト ファイル (たとえば、helm_install_arc.sh) を作成します。

    Bash
        mkdir ARC
        touch helm_install_arc.sh
        chmod 755 helm_install_arc.sh
    
  3. 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-controller
    
  4. helm_install_arc.sh スクリプト ファイルを実行します。

    ./helm_install_arc.sh
    
  5. 次に、ランナー スケール セットを構成する必要があります。 そのためには、まず次の bash スクリプトを使ってファイルを作成し、編集します。

    Bash
    touch arc-runner-set.sh
    chmod 755 arc-runner-set.sh
    
    Text
    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-set
    
  6. arc-runner-set.sh スクリプト ファイルを実行します。

    Bash
    ./arc-runner-set.sh
    

メモ

  • dependabot ジョブの対象をランナーに設定するには、ランナー スケール セットのインストール名を dependabot にする必要があります。

containerMode.type="dind" 構成は、ランナーが Docker デーモンに接続できるようにするために必要です。

  • 組織レベルまたはエンタープライズ レベルのランナーが作成された場合は、適切なスコープを Personal Access Token (PAT) に提供する必要があります。

personal access token (classic) (PAT) を作成できます。 リポジトリ、organization、または Enterprise のいずれのレベルでランナー スケール セットを作成しているかに応じて、トークンには、次のスコープを指定する必要があります。

ランナー グループの追加

ランナー グループは、どの organization またはリポジトリがランナー スケール セットにアクセスできるかを制御するために使われます。 ランナー スケール セットをランナー グループに追加するには、ランナー グループが既に作成されている必要があります。

ランナー グループの作成については、「グループを使用してセルフホストランナーへのアクセスを管理する」を参照してください。

Helm chart のランナー スケール セット構成には、必ず次の設定を追加してください。

Text
--set runnerGroup="<Runner group name>" \

インストールのチェック

  1. インストールをチェックします。

    Bash
    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
    
  2. このコマンドを使ってマネージャー ポッドをチェックします。

    Bash
    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

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [Security] セクションで、[ Advanced Security] をクリックします。

  4. 「Dependabot」で、「アクション ランナーの Dependabot」までスクロールし、「セルフホステッド ランナーの Dependabot」で 有効化 を選択します。

Dependabotを実行するトリガー

ARC を設定したので、 Dependabot 実行を開始できます。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [Insights] タブをクリックします。

  3. 左側のサイドバーで、 [Dependency graph] (依存関係グラフ) をクリックします。 [依存関係グラフ] タブのスクリーンショット。タブはオレンジ色の枠線で強調されています。

  4. [依存関係グラフ] で、 [Dependabot] をクリックします。

  5. 関心のあるマニフェスト ファイル名の右側にある [Recent update jobs] をクリックします。

  6. マニフェスト ファイルの最近の更新ジョブがない場合は、[Check for updates] をクリックして、Dependabot のバージョン更新ジョブを再実行し、そのエコシステムの依存関係に対する新しい更新プログラムをチェックします。

生成された ARC ランナーの表示

Dependabot ジョブ用に作成された ARC ランナーを表示できます。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [ Actions] をクリックします。

    "github/docs" リポジトリのタブのスクリーンショット。 [アクション] タブがオレンジ色の枠線で強調表示されています。

  3. 左側のサイドバーにある [Runners] をクリックします。

  4. [ランナー] で、[セルフホステッド ランナー] をクリックし、リポジトリにあるすべてのランナーの一覧を表示します。 生成されたエフェメラル dependabot ランナーを表示できます。

使用できるランナーの一覧にある 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

さらに、次のことを確認できます。

  • ログは、ランナーおよびマシン名を確認することで参照できます。 「Dependabot ジョブ ログの表示」を参照してください。

    dependabot セルフホステッド ランナーのログの例。

  • リポジトリの [プル リクエスト] タブで dependabot ジョブが作成したプル リクエストのバージョン アップデート。