Kubernetes向けGitLabエージェントの設定
- プラン: 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: { "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.
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内およびその任意のサブグループで設定された任意のエージェントを使用できます。
リモート開発でユーザーアクセスを設定する
user_accessモジュールを設定して、接続されたKubernetesクラスターにGitLabの認証情報でアクセスできます。このモジュールは、remote_developmentモジュールとは独立して設定および実行されます。
同じエージェントでuser_accessとremote_developmentの両方を設定する際には注意してください。remote_developmentクラスターは、ユーザーの認証情報(パーソナルアクセストークンなど)をKubernetes Secretsとして管理します。user_accessでのいかなる設定ミスも、このプライベートデータがKubernetes APIを介してアクセス可能になる原因となる可能性があります。
user_accessの設定に関する詳細については、Kubernetesアクセスを設定するを参照してください。