GitLab 17.0 の影響度の大きい破壊的変更点
本記事は、2024年4月10日に公開された GitLab ブログ記事 "A guide to the high-impact breaking changes in GitLab 17.0" を日本語で要約および補足したものです。
はじめに
GitLab のメジャーバージョン 17.0 がまもなくリリースされます。GitLab のメジャーバージョンでは、後方互換性のない「破壊的変更」(breaking changes) が複数行われるのが通例です。17.0 も例外ではなく、多数の破壊的変更が予定されています。本記事では、その中でも影響度が大きいものを紹介します。アップグレードに備えた準備の参考にしてください。
スケジュール
GitLab SaaS (gitlab.com)
Self-managed のリリースに先んじて、下記日時の期間内のいずれかで破壊的変更点が順次デプロイされています。
- 2024-04-22 09:00 UTC から 22:00 UTC (日本時間 同日 18:00 から 翌日 07:00) 実施済
- 2024-04-29 09:00 UTC から 22:00 UTC (日本時間 同日 18:00 から 翌日 07:00) 実施済
- 2024-05-06 09:00 UTC から 22:00 UTC (日本時間 同日 18:00 から 翌日 07:00)
GitLab Self-managed
2024年5月16日にリリースされます。
破壊的変更点
Self-managed 版の構成
- PostgreSQL 13 のサポート終了
- Linux パッケージ (Omnibus パッケージ) は、GitLab 16.7 へのアップグレード時に自動的に PostgreSQL 14 にアップグレードします。17.0 へのアップグレード前に PostgreSQL のバージョンを確認してください。
- 外部の PostgreSQL インスタンスまたはサービスを利用している場合は、個別に 14 にアップグレードが必要です。
- GitLab 16.2 以降で PostgreSQL 14 に対応済なので、GitLab 17.0 へアップグレードする前に PostgreSQL を 14 へアップグレードしてください。
- omniauth-azure-oauth2 の提供終了
- Azure Active Directory v1.0/v2.0 を OAuth2.0 認証プロバイダーとして利用できなくなります。
- OpenID Connect (OIDC) による Microsoft identity platform へ移行してください。
- Sidekiq の min concurrency、max concurrency 設定の変更
gitlab.rb
にsidekiq['min_concurrency']
、sidekiq['max_concurrency']
を設定している場合は、単一のsidekiq['concurrency']
に書き換えてください。
CI
- Registration tokens を使う古い Runner 登録方法および API の提供終了
- 古い登録方法の API を使っている自動化スクリプトは動作しなくなります。
- Authentication tokens を使う新しい登録方法に移行してください。
- 登録済の Runner は、登録方法に依らず、引き続き利用できます。
- 下流パイプラインの変数内でファイル型変数を展開する際の挙動修正
- ファイルの内容ではなくファイルパスを展開するように修正されます。
- after_script の挙動修正
- after_script のスクリプトがキャンセルされたジョブでも動作するように修正されます。
- 旧形式の JSON web tokens (JWT) の提供終了
HashiCorp Vault 連携の CI_JOB_JWT による認証の提供終了
JWT /-/jwks エンドポイントの提供終了- 定義済 CI 変数
CI_JOB_JWT
、CI_JOB_JWT_V1
、CI_JOB_JWT_V2
が利用できなくなります。 id_tokens
キーワードによる OpenID Connect (OIDC) の ID Token に移行してください。/-/jwks
エンドポイントは/oauth/discovery/keys
に置き換えてください。
- 定義済 CI 変数
ヒント: パイプライン内では、定義済 CI/CD 変数 CI_SERVER_VERSION
または CI_SERVER_VERSION_MAJOR
で GitLab のバージョンを判定できます。
CD
- GitLab agent for Kubernetes による pull-based deployment の提供終了
- Flux に移行してください。
- Agent for Kubernetes の Pull-based deployment 以外の機能は引き続き提供されます。
- Agent for Kubernetes ca-cert-file オプションの名称変更
- コマンドラインオプション
--ca-cert-file
と Helm chart の valueconfig.caCert
が、それぞれ、--kas-ca-cert-file
とconfig.kasCaCert
に変更されます。
- コマンドラインオプション
Package
- npm package アップロードの非同期化
publish
の直後にパッケージを利用する場合は、Packages API でパッケージの存在を確認してください。
- Dependency Proxy: アクセストークンのスコープチェック追加
- グループアクセストークンまたはパーソナルアクセストークンで Dependency Proxy にアクセスする場合、これまではトークンのスコープの指定が不十分でもアクセスできましたが、17.0 以降はアクセスが拒否されます。
- ドキュメントに従って、必要なスコープをトークンに指定してください。
- Maven リポジトリのパッケージ選択および認可ロジックの修正
- グループの Maven リポジトリ内の異なるプロジェクトに同じパッケージがあった場合、これまではアクセス権があるパッケージのうち最新のものが選択されましたが、17.0 以降はアクセス権の有無に関わらず最新のものが選択されるように修正されます。そのパッケージにアクセス権がない場合はアクセスが拒否されます 。
GitLab.com
- Linux 版 SaaS Runner の OS バージョンアップグレード
saas-linux-*-amd64
タグが付いた SaaS Runner の "COS (Container-optimized OS)" のバージョンがアップグレードされます。これに伴って Docker エンジンも 19.03.15 から 23.0.5 にアップグレードされます。- Docker-in-Docker の 20.10 および Kaniko の 1.9.0 よりも古いバージョンは、コンテナライタイムを検出できずジョブが失敗します。
- Windows Server 2019 版 SaaS Runner の提供終了
shared-windows
およびwindows-1809
タグが廃止されます。- 提供済の Windows Server 2022版 (
saas-windows-medium-amd64
タグ) に移行してください。 - 詳細はこちらのブログ記事を参考にしてください。
- Linux 版 SaaS Runner のマシンタイプ
small
の 追加タグの廃止- Linux 版 SaaS Runner の
small
タイプに付けられていた下記の追加タグが廃止されます。docker
,east-c
,gce
,git-annex
,linux
,mongo
,mysql
,ruby
,shared
saas-linux-small-amd64
タグを使用してください。
- Linux 版 SaaS Runner の
Ultimate 限定
- マージリクエスト承認ポリシーの
newly_detected
とmatch_on_inclusion
の廃止scan_finding
タイプのvulnerability_states
の値からnewly_detected
が廃止されます。代わりにnew_needs_triage
とnew_dismissed
を使用してください。license_finding
タイプのフィールドmatch_on_inclusion
が廃止されmatch_on_inclusion_license
に変わります。
- Required Pipeline Configuration の提供終了
- Proxy ベースの DAST の提供終了
- ブラウザベースのDASTに移行してください。
GitLab 17.0 で廃止/提供終了される全機能の一覧
詳細および全ての廃止/提供終了機能は Deprecations ページをご参照ください。
旧バージョンのサポート終了
GitLab 17.0 のリリースに伴い、Statement of Support に基づき 14.0 ~ 14.10 のサポートが終了します。