runner group とは?runner の整理と保護
runner group とは、どのリポジトリとワークフローがそれらを使うことを許可されるかを制御するアクセスポリシーを備えた、名前付きの runner のバケットです。
組織が多くの runner を持つようになると、誰が何を使えるかを制御する必要があります。runner group はアクセス制御の層です。特定のリポジトリのために runner のセットを予約し、機密性の高い runner を他から手の届かないところに保つことができます。
group が行うこと
runner group は self-hosted runner のセットをまとめ、ポリシーを付与します。組織内のどのリポジトリ(およびオプションでどのワークフロー)がそれらの runner に job を送ることを許可されるか、です。どのカスタム group にも属さない runner はデフォルトの group に入ります。
なぜ group が重要なのか
- 隔離: 本番ネットワークの runner を信頼できない repo から遠ざける。
- コスト制御: 高価な GPU や大型の runner を、それを必要とするチームのために予約する。
- コンプライアンス: 規制対象のワークロードを承認されたハードウェアに制限する。
group vs label
label は job がどの runner に一致するかを決め、group はそもそも repo がどの runner に到達を許可されるかを決めます。両者は連携します - repo は group へのアクセスを持ち、job はその中の label に一致しなければなりません。
よくある落とし穴
対象の runner を持つ group へのアクセスを欠く repo は、一致する runner が存在しても job がキューで止まって見えます。label だけでなくアクセスポリシーが、止まった job の原因になり得ます。
マネージドフリートの group
マネージドプラットフォームでは、プロバイダーが基盤となるキャパシティを扱う一方で、どの repo がそれを使えるかは依然としてあなたが制御します。中にある runner を運用することなく、group スタイルのアクセス境界が得られます。
重要なポイント
- runner group とは、repo アクセスポリシーを備えた名前付きの runner のセットです。
- どのリポジトリがどの runner を使えるかを制御します。
- group はアクセスを、label はマッチングを扱います - 両者は組み合わさります。
- group アクセスの欠如は、一致する runner が存在しても job をキューさせることがあります。