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

GitLab Helmチャート8.0アップグレードノート

GitLab 17.0のリリースに伴い、GitLab Helmチャートのバージョン8.0をリリースしました。

主な変更点の概要

アップグレードに関連するすべての変更については、GitLab 17の変更点を参照してください。

7.xからのアップグレードパス

チャートの8.0バージョンにアップグレードするには、まずチャートの最新リリースである7.11.xにアップグレードする必要があります。最新のパッチについては、バージョンマッピングの詳細を確認してください。

8.8.0にアップグレードする

shared-secretsジョブを無効にしている場合、3つの新しいシークレットを手動で作成する必要があります。有効(デフォルトの動作)にしている場合、以下の新しいシークレットが自動的に生成されるため、手動での作成は不要です。

  • active_record_encryption_primary_key
  • active_record_encryption_deterministic_key
  • active_record_encryption_key_derivation_salt

シークレットの形式については、GitLab Railsシークレットセクションを参照してください。

3つのシークレットを設定する手順は、次のとおりです:

  1. シークレットをバックアップします。

  2. 次のコマンドを使用して、3つの異なる32文字のランダム文字列(新しいシークレットごとに1つ)を生成します。LC_ALL=C < /dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32

  3. 生成したシークレットを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>"
  4. 新しいsecretリソースを作成します(<name>をリリース名に置き換えます):

    kubectl create secret generic <name>-rails-secret-v2 --from-file=gitlab-secrets.yaml
  5. values.yamlファイル内のglobal.railsSecrets.secretを更新し、新しい<name>-rails-secret-v2シークレットリソースを参照するようにします。

  6. この新しい値を使用してGitLabチャートのリリースをアップグレードします。ただし、他の既存の値が引き続き適用されるように注意してください(たとえば、--reuse-valuesフラグを使用しないでください)。

  7. 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.createfalseに設定している場合、チャートは自動的に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を使用する場合は、次の手順に従います。

  1. 新しいRBACルールをクラスターに適用します():

    - apiGroups:
       - discovery.k8s.io
     resources:
       - endpointslices
     verbs:
       - list
       - watch
       - get
  2. コントローラーイメージv1.11.2を有効にします:

    nginx-ingress:
      rbac:
        create: false
      controller:
        image:
          disableFallback: true

Runnerワークフローの変更

従来のRunner登録ワークフローは、デフォルトで無効になりました。新しい登録ワークフローに移行するか、従来のワークフローを再度有効にする必要があります。

移行手順については、Runnerサブチャートのドキュメントを参照してください。