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

クラスターアプリケーションを管理する

  • プラン: 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とクラスターを接続していない場合:

  1. クラスタ管理プロジェクトテンプレートからプロジェクトを作成
  2. エージェントのプロジェクトを設定
  3. プロジェクトの設定で、環境変数 $KUBE_CONTEXTを作成し、値をpath/to/agent-configuration-project:your-agent-nameに設定します。
  4. 必要に応じてファイルを構成します。

エージェントとマニフェストに個別のプロジェクトを使用する

エージェントをすでに設定し、クラスターをGitLabに接続している場合:

  1. クラスタ管理プロジェクトテンプレートからプロジェクトを作成
  2. エージェントを設定したプロジェクトで、新しいプロジェクトへのエージェントアクセスを許可します。
  3. 新しいプロジェクトで、環境変数 $KUBE_CONTEXTを作成し、値をpath/to/agent-configuration-project:your-agent-nameに設定します。
  4. 新しいプロジェクトで、必要に応じてファイルを構成します。

クラスター管理プロジェクトテンプレートに基づいてプロジェクトを作成する

クラスター管理プロジェクトテンプレートからプロジェクトを作成するには:

  1. 左側のサイドバーの上部で、新規作成 plus )を選択し、新規プロジェクト/リポジトリを選択します。新しいナビゲーションをオンにしている場合、このボタンは右上隅にあります。
  2. テンプレートから作成を選択します。
  3. テンプレートのリストから、GitLabクラスターの管理の横にあるテンプレートを使用を選択します。
  4. プロジェクトの詳細を入力してください。
  5. プロジェクトを作成を選択します。
  6. 新しいプロジェクトで、必要に応じてファイルを構成します。

プロジェクトを設定する

クラスター管理テンプレートを使用してプロジェクトを作成した後、以下を設定できます:

.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チャートのデフォルト値を定義できます。一部のアプリには、デフォルトがすでに定義されています。