クラスターアプリケーションを管理する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLabは、プロジェクト作成に使用するクラスター管理プロジェクトテンプレートを提供しています。このプロジェクトには、GitLabと統合し、GitLabの機能を拡張するクラスターアプリケーションが含まれています。プロジェクトに示されているパターンを使用して、カスタムクラスターアプリケーションを拡張できます。
プロジェクトテンプレートは、変更なしでGitLab.comで機能します。Self-ManagedインスタンスのGitLabをご利用の場合、.gitlab-ci.ymlファイルを変更する必要があります。
エージェントとマニフェストに1つのプロジェクトを使用する
エージェントを使用してクラスターをGitLabに接続したことがない場合:
- クラスター管理プロジェクトテンプレートからプロジェクトを作成します。
- エージェント用にプロジェクトを構成します。
- プロジェクトの設定で、環境変数という名前の
$KUBE_CONTEXTを作成し、値をpath/to/agent-configuration-project:your-agent-nameに設定します。 - 必要に応じてファイルを構成します。
エージェントとマニフェストに個別のプロジェクトを使用する
すでにエージェントを構成し、クラスターをGitLabに接続している場合:
- クラスター管理プロジェクトテンプレートからプロジェクトを作成します。
- エージェントを構成したプロジェクトで、新規プロジェクトへのエージェントアクセスを許可します。
- 新しいプロジェクトで、環境変数という名前の
$KUBE_CONTEXTを作成し、値をpath/to/agent-configuration-project:your-agent-nameに設定します。 - 新しいプロジェクトで、必要に応じてファイルを構成します。
クラスター管理プロジェクトテンプレートに基づいてプロジェクトを作成する
クラスター管理プロジェクトテンプレートからプロジェクトを作成するには:
- 右上隅で、新規作成( )と新規プロジェクト/リポジトリを選択します。
- テンプレートから作成を選択します。
- テンプレートのリストから、GitLabクラスターの管理の横にあるテンプレートを使用を選択します。
- プロジェクトの詳細を入力します。
- プロジェクトを作成を選択します。
- 新しいプロジェクトで、必要に応じてファイルを構成します。
プロジェクトを設定する
クラスター管理テンプレートを使用してプロジェクトを作成した後、以下を構成できます:
.gitlab-ci.ymlファイル
.gitlab-ci.ymlファイル:
- Helmバージョン3を使用していることを確認します。
- プロジェクトから有効化されたアプリケーションをデプロイします。
パイプライン定義を編集および拡張できます。
パイプラインで使用されるベースイメージは、cluster-applicationsプロジェクトによって構築されます。このイメージには、Helm v3リリースをサポートするためのBashユーティリティスクリプトのセットが含まれています。
Self-ManagedインスタンスのGitLabをご利用の場合、.gitlab-ci.ymlファイルを変更する必要があります。特に、コメントAutomatic package upgradesで始まるセクションは、includeがGitLab.comプロジェクトを参照しているため、Self-ManagedインスタンスのGitLabでは機能しません。このコメントの下にあるすべてを削除すると、パイプラインは成功します。
メインのhelmfile.ymlファイル
テンプレートには、Helmfileが含まれており、これを使用してHelm v3でクラスターアプリケーションを管理できます。
このファイルには、各アプリの他のHelmファイルへのパスのリストが含まれています。それらはすべてデフォルトでコメントアウトされているため、クラスターで使用したいアプリのパスのコメントを解除する必要があります。
これらサブパス内の各helmfile.yamlには、属性installed: trueがデフォルトで設定されています。これは、クラスターおよびHelmリリースの状態に応じて、パイプラインが実行されるたびにHelmfileがアプリをインストールまたは更新しようとすることを意味します。この属性をinstalled: falseに変更すると、Helmfileはこのアプリをクラスターからアンインストールしようとします。Helmfileの動作について読み取ります。
組み込みアプリケーション
テンプレートには、テンプレート内の各アプリケーション用に構成されたhelmfile.yamlを含むapplicationsディレクトリが含まれています。
組み込みでサポートされているアプリケーションは以下のとおりです:
各アプリケーションにはapplications/{app}/values.yamlファイルがあります。GitLab Runnerの場合、ファイルはapplications/{app}/values.yaml.gotmplです。
このファイルでは、アプリのHelmチャートのデフォルト値を定義できます。一部のアプリにはすでにデフォルトが定義されています。