GitLab Helmチャート8.0アップグレードノート
GitLab 17.0のリリースに伴い、GitLab Helmチャートのバージョン8.0をリリースしました。
主な変更点の概要
- 従来のRunner登録ワークフローは、デフォルトで無効になりました。新しい登録ワークフローに移行するには、手動での操作が必要です。
- PostgreSQL 13のサポートが削除されました。アップグレードの前に、PostgreSQL 14以降を実行していることを確認してください。
アップグレードに関連するすべての変更については、GitLab 17の変更点を参照してください。
7.xからのアップグレードパス
チャートの8.0バージョンにアップグレードするには、まずチャートの最新リリースである7.11.xにアップグレードする必要があります。最新のパッチについては、バージョンマッピングの詳細を確認してください。
8.8.0にアップグレードする
shared-secretsジョブを無効にしている場合、3つの新しいシークレットを手動で作成する必要があります。有効(デフォルトの動作)にしている場合、以下の新しいシークレットが自動的に生成されるため、手動での作成は不要です。
active_record_encryption_primary_keyactive_record_encryption_deterministic_keyactive_record_encryption_key_derivation_salt
シークレットの形式については、GitLab Railsシークレットセクションを参照してください。
3つのシークレットを設定する手順は、次のとおりです:
シークレットをバックアップします。
次のコマンドを使用して、3つの異なる32文字のランダム文字列(新しいシークレットごとに1つ)を生成します。
LC_ALL=C < /dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32生成したシークレットを
gitlab-secrets.yamlの末尾に追加します。各シークレットは、必ずproductionキーの下にインデントして記述します:production: active_record_encryption_primary_key: - "<first 32-chars random string>" active_record_encryption_deterministic_key: - "<second 32-chars random string>" active_record_encryption_key_derivation_salt: "<third 32-chars random string>"新しい
secretリソースを作成します(<name>をリリース名に置き換えます):kubectl create secret generic <name>-rails-secret-v2 --from-file=gitlab-secrets.yamlvalues.yamlファイル内のglobal.railsSecrets.secretを更新し、新しい<name>-rails-secret-v2シークレットリソースを参照するようにします。この新しい値を使用してGitLabチャートのリリースをアップグレードします。ただし、他の既存の値が引き続き適用されるように注意してください(たとえば、
--reuse-valuesフラグを使用しないでください)。GitLabが期待どおりに動作していることを確認します。問題がなければ、古い
<name>-rails-secretシークレットリソースを安全に削除できます。
8.6.0にアップグレードする
レジストリのメタデータデータベースに対してデータベース移行を実行するジョブのappラベルが、registryからregistry-migrationsに変更されました。これは、コンテナレジストリのDeploymentおよびPodDisruptionBudgetのセレクターに関する問題に対処するためです。
レジストリのメタデータデータベースを有効にしていない場合、または監視やログ記録ソリューションなどの外部ツールで使用していない場合は、何もする必要はありません。このラベルを使用している場合は、必要に応じて更新してください。
8.6.x、8.5.1、8.4.3、8.3.6にアップグレードする
この変更は、GitLab NGINXチャートを使用していて、独自のNGINX RBACルールを設定している場合にのみ影響します。
独自の外部NGINXチャートを使用している場合、またはNGINX RBACルールを変更せずにGitLab NGINXチャートを使用している場合、このセクションをスキップできます。
Helmチャートバージョン8.6.0、8.5.1、8.4.3、8.3.6では、Ingress NGINXコントローラーイメージがv1.11.2に更新されましたが、Ingress NGINXコントローラーチャートのバージョンは依然として4.0.6のままです。古いv1.3.1コントローラーイメージは非推奨となり、GitLabチャート9.0で削除される予定です。
前述のチャートバージョンにアップグレードすると、デフォルトではv1.11.2が設定されます。nginx-ingress.rbac.createをfalseに設定している場合、チャートは自動的にv1.3.1にフォールバックします(これはGeo nginx-ingress-geo.rbac.createにも適用されます)。これは、v1.11.2で新しいRBACルールが必要になったためであり、そのルールはNGINXチャートに追加されています。
独自のNGINX RBACルールを管理しており、GitLab 18.0(Helmチャート9.0)で適用される前に新しいv1.11.2を使用する場合は、次の手順に従います。
新しいRBACルールをクラスターに適用します(例):
- apiGroups: - discovery.k8s.io resources: - endpointslices verbs: - list - watch - getコントローラーイメージ
v1.11.2を有効にします:nginx-ingress: rbac: create: false controller: image: disableFallback: true
Runnerワークフローの変更
従来のRunner登録ワークフローは、デフォルトで無効になりました。新しい登録ワークフローに移行するか、従来のワークフローを再度有効にする必要があります。
移行手順については、Runnerサブチャートのドキュメントを参照してください。