正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

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-groupsubgroup-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)に対してクラスタエージェントを許可すると、そのグループ内のすべてのプロジェクトでワークスペースを作成できるようになります。許可されたグループのスコープを慎重に検討してください。クラスタエージェントがワークスペースをホストできる場所が決定されるためです。

グループ内のワークスペースに対するクラスタエージェントの許可

前提要件:

グループ内のワークスペースに対してクラスタエージェントを許可するには:

  1. 左側のサイドバーで、検索または移動先を選択して、グループを見つけます。
  2. 左側のサイドバーで、設定 > ワークスペースを選択します。
  3. グループエージェントセクションで、すべてのエージェントタブを選択します。
  4. 利用可能なエージェントのリストから、ステータスがブロック済みのエージェントを見つけ、許可を選択します。
  5. 確認ダイアログで、エージェントを許可するを選択します。

GitLabは、選択したエージェントのステータスを許可に更新し、許可済みのエージェントタブにエージェントを表示します。

グループ内のワークスペースに対する許可されたクラスタエージェントを削除する

前提要件:

グループから許可されたクラスタエージェントを削除するには:

  1. 左側のサイドバーで、検索または移動先を選択して、グループを見つけます。
  2. 左側のサイドバーで、設定 > ワークスペースを選択します。
  3. グループエージェントセクションで、許可済みのエージェントタブを選択します。
  4. 許可されたエージェントのリストから、削除するエージェントを見つけ、ブロックを選択します。
  5. 確認ダイアログで、エージェントをブロックするを選択します。

GitLabは、選択したエージェントのステータスをブロック済みに更新し、許可済みのエージェントタブからエージェントを削除します。

許可されたクラスタエージェントをグループから削除しても、エージェントを使用するワークスペースの実行はすぐに停止しません。ワークスペースの実行は、自動的に終了するか、手動で停止すると停止します。

インスタンス上のワークスペースに対するクラスタエージェントの許可

前提要件:

インスタンス上のワークスペースに対するクラスタエージェントを許可するには:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 左側のサイドバーで、設定 > 一般を選択します。
  3. ワークスペースの利用可能なエージェントを展開する。
  4. ワークスペースが有効になっているエージェントのリストから、許可するエージェントを見つけ、可用性の切替を選択します。

インスタンス上のワークスペースに対する許可されたクラスタエージェントを削除する

前提要件:

  • インスタンスへの管理者アクセス権が必要です。

インスタンスから許可されたクラスタエージェントを削除するには:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 左側のサイドバーで、設定 > 一般を選択します。
  3. ワークスペースの利用可能なエージェントを展開する。
  4. 許可されたエージェントのリストから、削除するエージェントを見つけ、可用性の切替をクリアします。

インスタンスから許可されたクラスタエージェントを削除しても、エージェントを使用するワークスペースの実行はすぐに停止しません。ワークスペースの実行は、自動的に終了するか、手動で停止すると停止します。

レガシーエージェント認可戦略

GitLab 17.1以前では、グループ内のエージェントの可用性は、ワークスペースを作成するための前提条件ではありませんでした。次の両方が当てはまる場合、ワークスペースプロジェクトのトップレベルグループ内のエージェントを使用してワークスペースを作成できます:

  • リモート開発モジュールが有効になっています。
  • トップレベルグループのデベロッパーロールが少なくとも必要です。

たとえば、ワークスペースプロジェクトへのパスがtop-level-group/subgroup-1/subgroup-2/workspace-projectの場合、top-level-groupおよびそのサブグループのいずれかで設定されたエージェントを使用できます。

リモート開発でのユーザーアクセス設定

GitLabの認証情報を使用して接続されたKubernetesクラスタにアクセスするように、user_accessモジュールを設定できます。このモジュールは、remote_developmentモジュールとは独立して設定および実行されます。

同じエージェントでuser_accessremote_developmentの両方を設定する場合は注意してください。remote_developmentクラスタは、パーソナルアクセストークンなどのユーザー認証情報をKubernetes Secretsとして管理します。user_accessの設定ミスにより、このプライベートデータがKubernetes API経由でアクセス可能になる可能性があります。

user_accessの設定の詳細については、Kubernetesアクセスを設定するを参照してください。