- エージェントとマニフェストには1つのプロジェクトを使用してください。
- エージェントとマニフェストには別々のプロジェクトを使用してください。
- クラスター管理プロジェクトのテンプレートに基づいてプロジェクトを作成します。
- プロジェクトの設定
クラスター・アプリケーションの管理
GitLabはクラスター管理プロジェクトテンプレートを提供します。プロジェクトにはGitLabとインテグレーションし、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
に設定します。 - 新しいプロジェクトで、必要に応じてファイルを設定します。
クラスター管理プロジェクトのテンプレートに基づいてプロジェクトを作成します。
クラスター管理プロジェクト・テンプレートからプロジェクトを作成するには、以下の手順に従います:
- 左サイドバーの上部にある「新規作成({plus})」と「新規プロジェクト/リポジトリ」を選択します。
- テンプレートから作成」を選択します。
- テンプレートのリストから、GitLab Cluster Managementの隣にあるUse templateを選択します。
- プロジェクトの詳細を入力します。
- Create projectを選択します。
- 新しいプロジェクトで、必要に応じてファイルを設定します。
プロジェクトの設定
クラスター管理テンプレートを使用してプロジェクトを作成したら、設定を行います:
.gitlab-ci.yml
ファイル
.gitlab-ci.yml
ファイル:
- Helmバージョン3であることを確認します。
- 有効化されたアプリケーションをプロジェクトからデプロイします。
パイプライン定義を編集および拡張できます。
パイプラインで使用されるベースイメージはcluster-applicationsプロジェクトによってビルドされます。このイメージには、Helm v3リリースをサポートするBashユーティリティスクリプトのセットが含まれています。
GitLab のセルフマネージドインスタンスを使用している場合は、.gitlab-ci.yml
ファイルを修正する必要があります。具体的には、Automatic package upgrades
というコメントで始まるセクションはセルフマネージドインスタンスでは動作しません。include
は GitLab.com プロジェクトを参照しているからです。このコメント以下をすべて削除すると、パイプラインは成功します。
メインのhelmfile.yml
ファイル
テンプレートには、Helm v3でクラスター・アプリケーションを管理するためのHelmfileが含まれています。
このファイルには各アプリの他の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チャートのデフォルト値を定義できます。すでにデフォルト値が定義されているアプリもあります。