クラスターアプリケーションを管理する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLabは、プロジェクトの作成に使用するクラスター管理プロジェクトテンプレートを提供します。このプロジェクトには、GitLabと統合し、GitLabの機能を拡張するクラスターアプリケーションが含まれています。プロジェクトに示されているパターンを使用して、カスタムクラスターアプリケーションを拡張できます。
プロジェクトテンプレートは、変更なしでGitLab.comで動作します。GitLab Self-Managedインスタンスを使用している場合は、.gitlab-ci.ymlファイルを変更する必要があります。
エージェントとマニフェストに1つのプロジェクトを使用する
have not yet(まだ)エージェントを使用して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ユーティリティスクリプトのセットが含まれています。
GitLab Self-Managedインスタンスを使用している場合は、.gitlab-ci.ymlファイルを変更する必要があります。具体的には、Automatic package upgradesというコメントで始まるセクションは、GitLab Self-Managedインスタンスでは機能しません。includeはGitLab.comプロジェクトを参照しているためです。このコメントより下のすべてを削除すると、パイプラインは成功します。
メインhelmfile.ymlファイル
このテンプレートには、Helmfileが含まれており、Helm v3でクラスターアプリケーションを管理するために使用できます。
このファイルには、各アプリケーションの他のHelmファイルへのパスのリストがあります。これらはすべてデフォルトでコメントアウトされているため、クラスターで使用するアプリケーションのパスをコメント解除する必要があります。
デフォルトでは、これらのサブパスの各helmfile.yamlには、属性installed: trueがあります。つまり、クラスターとHelmリリースの状態に応じて、Helmfileはパイプラインが実行されるたびにアプリケーションをインストールまたは更新しようとします。この属性をinstalled: falseに変更すると、Helmfileはこのアプリケーションをクラスターからアンインストールしようとします。Helmfileの動作方法については、こちらをご覧ください。
組み込みアプリケーション
このテンプレートには、applicationsディレクトリがあり、helmfile.yamlがテンプレート内の各アプリケーション用に構成されています。
組み込みのサポート対象アプリケーションは次のとおりです:
各アプリケーションには、applications/{app}/values.yamlファイルがあります。GitLab Runnerの場合、ファイルはapplications/{app}/values.yaml.gotmplです。
このファイルでは、アプリのHelmチャートのデフォルト値を定義できます。一部のアプリには、デフォルトがすでに定義されています。