クラスター・マネジメント・プロジェクト(α)
GitLab 12.5で導入されました
プロジェクトはクラスターの管理プロジェクトとして指定できます。管理プロジェクトは、Kubernetescluster-admin
権限でデプロイジョブを実行するために使用できます。
これは次のような場合に役立ちます:
- クラスター全体のアプリケーションをクラスターにインストールするパイプラインを作成します。詳細はGitLab CI/CD を使ったインストール (alpha)を参照してください。
-
cluster-admin
権限を必要とするジョブ。
権限
管理プロジェクトだけがcluster-admin
権限を受け取ります。他のすべてのプロジェクトは、名前空間スコープのedit
レベル権限を引き続き受け取ります。
経営プロジェクトは以下のものに限定されます:
- プロジェクト・レベルのクラスターの場合、管理プロジェクトはクラスターのプロジェクトと同じネームスペース(またはその子孫)にある必要があります。
- グループ・レベルのクラスターの場合、管理プロジェクトはクラスターのグループと同じグループ(またはその子孫)に属している必要があります。
- インスタンスレベルのクラスターでは、そのような制限はありません。
使用方法
クラスターにクラスター管理プロジェクトを使用するには、以下の手順に従います:
- プロジェクトを選択します。
- パイプラインを設定します。
- 環境スコープを設定します。
クラスター管理プロジェクトの選択
使用するクラスター管理プロジェクトを選択します:
- 適切な設定ページに移動します:
- プロジェクトレベルのクラスターは、プロジェクトのオペレーション>Kubernetesページに移動します。
- グループレベルのクラスターは、グループのKubernetesページに移動します。
- インスタンスレベルのクラスターは、Admin AreaのKubernetesページに移動します。
- 詳細設定]セクションの[クラスター管理プロジェクト]フィールドを使用してプロジェクトを選択します。
パイプラインの設定
プロジェクトをクラスターの管理プロジェクトに指定したら、そのプロジェクトに.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