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

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

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

GitLabは、プロジェクト作成に使用するクラスター管理プロジェクトテンプレートを提供しています。このプロジェクトには、GitLabと統合し、GitLabの機能を拡張するクラスターアプリケーションが含まれています。プロジェクトに示されているパターンを使用して、カスタムクラスターアプリケーションを拡張できます。

プロジェクトテンプレートは、変更なしでGitLab.comで機能します。Self-ManagedインスタンスのGitLabをご利用の場合、.gitlab-ci.ymlファイルを変更する必要があります。

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

エージェントを使用してクラスターを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ユーティリティスクリプトのセットが含まれています。

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