GitLab Agent for Kubernetesの設定
- プラン: Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
ワークスペースインフラストラクチャをセットアップする際に、ワークスペースをサポートするようにKubernetes向けGitLabエージェントを設定する必要があります。このガイドでは、KubernetesクラスタにGitLabエージェントが既にインストールされていることを前提としています。
前提要件:
チュートリアルで設定手順を完了する必要があります: Kubernetes向けGitLabエージェントをセットアップする。
エージェントの設定で
remote_developmentモジュールが有効になっている必要があり、このモジュールの必要なフィールドが正しく設定されている必要があります。アクティブなワークスペースを持つエージェントで
remote_developmentモジュールを無効にすると、それらのワークスペースは使用できなくなります。詳細については、ワークスペースの設定を参照してください。ワークスペースを作成する目的で、エージェントがグループ内で許可されている必要があります。ワークスペースの作成中に、ユーザーはワークスペースプロジェクトの親グループに関連付けられている許可されたエージェントを選択できます。
ワークスペースの作成者は、エージェントのプロジェクトに対するデベロッパーロールを持っている必要があります。
ワークスペース作成のためのグループ内のエージェント認可
新しい認可戦略は、レガシー認可戦略を置き換えます。グループのオーナーと管理者は、どのクラスタエージェントが自分のグループでワークスペースをホストするかを制御できます。
たとえば、ワークスペースプロジェクトへのパスがtop-level-group/subgroup-1/subgroup-2/workspace-projectの場合、top-level-group、subgroup-1、またはsubgroup-2グループのいずれかに設定されたエージェントを使用できます。
%%{init: { "theme": "neutral", "fontFamily": "GitLab Sans" }}%%
graph TD
accTitle: Agent authorization hierarchy for workspaces
accDescr: Workspace projects inherit access to agents from all parent groups in the hierarchy.
classDef active fill:lightgreen, stroke:#green, color:green, stroke-width:1px;
topGroup[Top-Level Group, allowed Agent 1]
subgroup1[Subgroup 1, allowed Agent 2]
subgroup2[Subgroup 2, allowed Agent 3]
wp(Workspace Project, Agent 1, 2 & 3 all available)
topGroup --> subgroup1
subgroup1 --> subgroup2
subgroup2 --> wp
class wp active;
特定のグループ(たとえば、subgroup-1)に対してクラスタエージェントを許可すると、そのグループ内のすべてのプロジェクトでワークスペースを作成できるようになります。許可されたグループのスコープを慎重に検討してください。クラスタエージェントがワークスペースをホストできる場所が決定されるためです。
グループ内のワークスペースに対するクラスタエージェントの許可
前提要件:
- ワークスペースのインフラストラクチャをセットアップする必要があります。
- インスタンスまたはグループのオーナーロールに対する管理者アクセス権が必要です。
グループ内のワークスペースに対してクラスタエージェントを許可するには:
- 左側のサイドバーで、検索または移動先を選択して、グループを見つけます。
- 左側のサイドバーで、設定 > ワークスペースを選択します。
- グループエージェントセクションで、すべてのエージェントタブを選択します。
- 利用可能なエージェントのリストから、ステータスがブロック済みのエージェントを見つけ、許可を選択します。
- 確認ダイアログで、エージェントを許可するを選択します。
GitLabは、選択したエージェントのステータスを許可に更新し、許可済みのエージェントタブにエージェントを表示します。
グループ内のワークスペースに対する許可されたクラスタエージェントを削除する
前提要件:
- ワークスペースのインフラストラクチャをセットアップする必要があります。
- インスタンスまたはグループのオーナーロールに対する管理者アクセス権が必要です。
グループから許可されたクラスタエージェントを削除するには:
- 左側のサイドバーで、検索または移動先を選択して、グループを見つけます。
- 左側のサイドバーで、設定 > ワークスペースを選択します。
- グループエージェントセクションで、許可済みのエージェントタブを選択します。
- 許可されたエージェントのリストから、削除するエージェントを見つけ、ブロックを選択します。
- 確認ダイアログで、エージェントをブロックするを選択します。
GitLabは、選択したエージェントのステータスをブロック済みに更新し、許可済みのエージェントタブからエージェントを削除します。
許可されたクラスタエージェントをグループから削除しても、エージェントを使用するワークスペースの実行はすぐに停止しません。ワークスペースの実行は、自動的に終了するか、手動で停止すると停止します。
インスタンス上のワークスペースに対するクラスタエージェントの許可
前提要件:
- ワークスペースのインフラストラクチャをセットアップする必要があります。
- リモート開発が有効になっているエージェントが必要です。
- インスタンスへの管理者アクセス権が必要です。
インスタンス上のワークスペースに対するクラスタエージェントを許可するには:
- 左側のサイドバーの下部で、管理者を選択します。
- 左側のサイドバーで、設定 > 一般を選択します。
- ワークスペースの利用可能なエージェントを展開する。
- ワークスペースが有効になっているエージェントのリストから、許可するエージェントを見つけ、可用性の切替を選択します。
インスタンス上のワークスペースに対する許可されたクラスタエージェントを削除する
前提要件:
- インスタンスへの管理者アクセス権が必要です。
インスタンスから許可されたクラスタエージェントを削除するには:
- 左側のサイドバーの下部で、管理者を選択します。
- 左側のサイドバーで、設定 > 一般を選択します。
- ワークスペースの利用可能なエージェントを展開する。
- 許可されたエージェントのリストから、削除するエージェントを見つけ、可用性の切替をクリアします。
インスタンスから許可されたクラスタエージェントを削除しても、エージェントを使用するワークスペースの実行はすぐに停止しません。ワークスペースの実行は、自動的に終了するか、手動で停止すると停止します。
レガシーエージェント認可戦略
GitLab 17.1以前では、グループ内のエージェントの可用性は、ワークスペースを作成するための前提条件ではありませんでした。次の両方が当てはまる場合、ワークスペースプロジェクトのトップレベルグループ内のエージェントを使用してワークスペースを作成できます:
- リモート開発モジュールが有効になっています。
- トップレベルグループのデベロッパーロールが少なくとも必要です。
たとえば、ワークスペースプロジェクトへのパスがtop-level-group/subgroup-1/subgroup-2/workspace-projectの場合、top-level-groupおよびそのサブグループのいずれかで設定されたエージェントを使用できます。
リモート開発でのユーザーアクセス設定
GitLabの認証情報を使用して接続されたKubernetesクラスタにアクセスするように、user_accessモジュールを設定できます。このモジュールは、remote_developmentモジュールとは独立して設定および実行されます。
同じエージェントでuser_accessとremote_developmentの両方を設定する場合は注意してください。remote_developmentクラスタは、パーソナルアクセストークンなどのユーザー認証情報をKubernetes Secretsとして管理します。user_accessの設定ミスにより、このプライベートデータがKubernetes API経由でアクセス可能になる可能性があります。
user_accessの設定の詳細については、Kubernetesアクセスを設定するを参照してください。