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

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

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

前提条件:

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

  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内およびその任意のサブグループで設定された任意のエージェントを使用できます。

リモート開発でユーザーアクセスを設定する

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

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

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