クラスター・マネジメント・プロジェクト(α)

警告:これは_アルファ版の_機能であり、予告なしに変更される場合があります。

GitLab 12.5で導入されました

プロジェクトはクラスターの管理プロジェクトとして指定できます。管理プロジェクトは、Kubernetescluster-admin権限でデプロイジョブを実行するために使用できます。

これは次のような場合に役立ちます:

  • クラスター全体のアプリケーションをクラスターにインストールするパイプラインを作成します。詳細はGitLab CI/CD を使ったインストール (alpha)を参照してください。
  • cluster-admin 権限を必要とするジョブ。

権限

管理プロジェクトだけがcluster-admin 権限を受け取ります。他のすべてのプロジェクトは、名前空間スコープのedit レベル権限を引き続き受け取ります。

経営プロジェクトは以下のものに限定されます:

  • プロジェクト・レベルのクラスターの場合、管理プロジェクトはクラスターのプロジェクトと同じネームスペース(またはその子孫)にある必要があります。
  • グループ・レベルのクラスターの場合、管理プロジェクトはクラスターのグループと同じグループ(またはその子孫)に属している必要があります。
  • インスタンスレベルのクラスターでは、そのような制限はありません。

使用方法

クラスターにクラスター管理プロジェクトを使用するには、以下の手順に従います:

  1. プロジェクトを選択します。
  2. パイプラインを設定します。
  3. 環境スコープを設定します。

クラスター管理プロジェクトの選択

使用するクラスター管理プロジェクトを選択します:

  1. 適切な設定ページに移動します:
    • プロジェクトレベルのクラスターは、プロジェクトのオペレーション>Kubernetesページに移動します。
    • グループレベルのクラスターは、グループのKubernetesページに移動します。
    • インスタンスレベルのクラスターは、Admin AreaのKubernetesページに移動します。
  2. 詳細設定]セクションの[クラスター管理プロジェクト]フィールドを使用してプロジェクトを選択します。

Selecting a cluster management project under Advanced settings

パイプラインの設定

プロジェクトをクラスターの管理プロジェクトに指定したら、そのプロジェクトに.gitlab-ci.yml を記述します:

configure cluster:
  stage: deploy
  script: kubectl get namespaces
  environment:
    name: production

環境スコープの設定

環境スコープは、複数のクラスターを同じ管理プロジェクトに関連付ける場合に使用できます。

それぞれのスコープは、1つのクラスターが1つの管理プロジェクトにのみ使用できます。

例えば、以下のKubernetesクラスターが管理プロジェクトに関連付けられているとします:

クラスター 環境範囲
開発者 *
ステージ staging
製造 production

.gitlab-ci.yml で設定された以下の環境は、それぞれDevelopment、Staging、Productionクラスターにデプロイされます。

stages:
  - deploy

configure development cluster:
  stage: deploy
  script: kubectl get namespaces
  environment:
    name: development

configure staging cluster:
  stage: deploy
  script: kubectl get namespaces
  environment:
    name: staging

configure production cluster:
  stage: deploy
  script: kubectl get namespaces
  environment:
    name: production