2025年5月16日(米国時間5月15日)発表された、メジャーバージョンGitLab 18.0 での変更点を以下サイトにて確認いただけます。
詳細は、以下GitLabアナウンスブログご参照ください。
本記事内容は、GitLab社サイトから引用しております。
最新情報は引用元サイトをご確認ください。
https://about.gitlab.com/ja-jp/topics/devops/what-is-developer-experience/
////////////////////////////////////////////////////////////
今後のメジャーリリースで削除される機能に備え、今すぐご準備ください。影響を評価し、ドキュメントに記載されている緩和策をご確認の上、GitLab 18.0へのスムーズな移行を実現してください。
次期メジャーリリースとなるGitLab 18.0には、DevSecOpsイノベーションの限界を押し広げる新機能が満載です。同時に、GitLabから一部の非推奨機能を削除します。これらの変更点について知っておくべきこと、そしてその影響を軽減する方法についてご紹介します。
展開ウィンドウ
GitLab.com
GitLab.com の重大な変更は、これら 3 つのウィンドウに限定されます。
- 2025年4月21日~23日
- 2025年4月28日~30日
- 2025年5月5日~7日
今月を通して、他にも多くの変更が展開されます。各期間で発生する影響の大きい変更の詳細については、こちらの重大な変更に関するドキュメントをご覧ください。
注意:例外的な状況では、重大な変更がこれらの期間からわずかに外れる場合があります。
GitLabセルフマネージド
GitLab 18.0 は 5 月 15 日から利用可能になります。リリース スケジュールの詳細については、こちらをご覧ください。
GitLab専用
GitLab 18.0 へのアップグレードは、2025 年 6 月 24 日から 29 日までのメンテナンス ウィンドウ中に行われます。詳細と割り当てられたメンテナンス ウィンドウについては、こちらをご覧ください。
また、これらの変更がお客様の環境に与える影響を評価し、18.0へのアップグレード前に必要な対策を計画するためのカスタムツールとリソースも開発しました。これらの緩和ツールとリソースに関する情報は、こちらをご覧ください。
18.0 で削除予定の項目の全リストについては、「廃止予定」ページをご覧ください。今後の予定と、お客様の環境に応じて今年のリリースに向けて準備する方法については、以下をお読みください。
重大な変更
大きな影響
1. CI/CDジョブトークン – 「プロジェクトからのアクセスを制限する」設定の削除
GitLab.com | セルフマネージド | 専用
GitLab 14.4では、セキュリティ強化のため、プロジェクトのCI/CDジョブトークン(CI_JOB_TOKEN)からのアクセスを制限する設定を導入しました。この設定は「Limit CI_JOB_TOKEN access(CI_JOB_TOKENアクセスを制限する)」と呼ばれていました。GitLab 16.3では、分かりやすさを考慮して「 Limit access from this project(このプロジェクトからのアクセスを制限する)」に名称を変更しました。
GitLab 15.9では、 「承認済みグループとプロジェクト」という代替設定を導入しました。この設定は、許可リストを使用して、プロジェクトへのジョブトークンのアクセスを制御します。この新しい設定は、以前の設定から大幅に改善されています。最初のイテレーションはGitLab 16.0で非推奨となり、GitLab 18.0で削除される予定です。
「このプロジェクトからのアクセスを制限する」設定は、すべての新規プロジェクトでデフォルトで無効になっています。GitLab 16.0以降では、この設定を一度無効にすると、どのプロジェクトでも再度有効にすることはできません。代わりに、「承認済みグループとプロジェクト」設定を使用して、プロジェクトへのジョブトークンアクセスを制御してください。
2. CI/CDジョブトークン – 承認されたグループとプロジェクトの許可リストの適用
GitLab.com | セルフマネージド | 専用
GitLab 15.9で導入された「承認済みグループとプロジェクト」 (GitLab 16.3で「このプロジェクトへのアクセスを制限する」から名称変更)設定を使用すると、プロジェクトへのCI/CDジョブトークンアクセスを管理できます。 「このプロジェクトと許可リスト内のグループとプロジェクトのみ」に設定すると、許可リストに追加されたグループまたはプロジェクトのみがジョブトークンを使用してプロジェクトにアクセスできます。
- GitLab 15.9 より前では、許可リストはデフォルトで無効になっており (すべてのグループとプロジェクトのアクセス設定が選択されています)、どのプロジェクトからでもジョブ トークン アクセスが許可されていました。
- GitLab 17.6以降、GitLabセルフマネージドインスタンスと専用インスタンスの管理者は、すべてのプロジェクトに対してより安全な設定を適用するオプションを利用できるようになりました。これにより、プロジェクトメンテナーが「すべてのグループとプロジェクト」を選択できなくなります。この変更により、プロジェクト間のセキュリティレベルが向上します。
- GitLab 18.0では、この設定がデフォルトで有効になります。GitLab.comでは、プロジェクトの認証ログに基づいてプロジェクトの許可リストが自動的に作成されます。
- GitLab.comにおけるこの変更への準備として、プロジェクト間認証にジョブトークンを使用しているプロジェクトメンテナーは、プロジェクトの承認済みグループとプロジェクトの許可リストに情報を追加する必要があります。その後、設定を「このプロジェクトと許可リスト内のグループとプロジェクトのみ」に 変更してください。GitLab 18.0 より前のプロジェクトの認証ログに基づいて許可リストを自動作成する、利用可能な移行ツールのご利用を推奨します。
- セルフマネージド ユーザーは、 18.0 アップグレードを完了する前に許可リストを入力する必要があります。
- 専用ユーザーは、GitLab アカウント チームと協力して、特定のインスタンスに適切な戦略を策定する必要があります。
3. 依存性プロキシトークンスコープの強制
GitLab.com | セルフマネージド | 専用
コンテナーの Dependency Proxy は、スコープを検証せずに、個人、プロジェクト、またはグループのアクセス トークンを使用して受け入れdocker login
および要求を行います。docker pull
GitLab 18.0 では、Dependency Proxy の認証に とread_registry
の両方のスコープが必要になります。この変更後、これらのスコープを持たないトークンを使用した認証試行は拒否されます。write_registry
アップグレードする前に、必要なスコープを持つ新しいアクセス トークンを作成し、これらの新しいトークンを使用してワークフロー変数とスクリプトを更新します。
また、トークンを表示し、自動的にローテーションできるコミュニティ開発のスクリプトであるDependency Token Checker を使用するオプションもあります。
中程度の影響
1. GitLab.comの脆弱性に関する新しいデータ保持制限
GitLab.com – Ultimate レベルのお客様のみ
GitLab 18.1では、システムパフォーマンスと信頼性の向上を目的として、 GitLab.com Ultimateのお客様向けに新たなデータ保持期間制限を6ヶ月ごとに段階的に導入します。データ保持期間制限は、脆弱性データの保存期間に影響します。
12ヶ月以上更新されていない脆弱性は、自動的にコールドストレージアーカイブに移動されます。これらのアーカイブは以下のとおりです。
- GitLab UI からアクセスおよびダウンロード可能
- 3年間保存されます
- 3年後には完全に削除されます
2. コンテナイメージのプルポリシーを拒否するallowed_pull_policies
GitLab.com | セルフマネージド | 専用
設定されているすべてのプルポリシーは、ランナーのファイルで指定されたallowed_pull_policies 設定config.toml
に含まれている必要があります。含まれていない場合、ジョブはincompatible pull policy
エラーで失敗します。
allowed-pull-policies
現在の実装では、複数のプル ポリシーが定義されている場合、他のポリシーが含まれていなくても、少なくとも 1 つのプル ポリシーが のポリシーと一致するとジョブは成功します。
GitLab 18.0 では、 のプル ポリシーのいずれも と一致しない場合にのみジョブが失敗しますallowed-pull-policies
。ただし、これまでの動作とは異なり、ジョブは にリストされているプル ポリシーのみを使用しますallowed-pull-policies
。この区別により、現在は成功しているジョブが GitLab 18.0 では失敗する可能性があります。
3. PostgreSQL 14および15はサポート終了
自己管理型
GitLab はPostgreSQL の年次アップグレードサイクルに従います。
PostgreSQL 14および15のサポートは、GitLab 18.0で削除される予定です。GitLab 18.0では、PostgreSQLの最小要件はPostgreSQL 16となります。
PostgreSQL 14 および 15 は、GitLab 17 のリリースサイクル全体にわたってサポートされます。また、GitLab 18.0 より前にアップグレードするインスタンスでは、PostgreSQL 16 もサポートされます。
PostgreSQL Clusterを使用していないインスタンス(例えば、Omnibus Linuxパッケージでインストールした単一のPostgreSQLインスタンスを実行している場合など)では、この変更に対応するため、GitLab 17.11へのアップグレード時にPostgreSQLをバージョン16に自動的にアップグレードしようとします。PostgreSQL Clusterを使用している場合、またはこの自動アップグレードをオプトアウトしている場合は、 GitLab 18.0にアップグレードするために、PostgreSQL 16に手動でアップグレードする必要があります。アップグレードに必要なディスク容量が十分にあることを確認してください。
4. Terraform CI/CD テンプレートを廃止する
自己管理型
Terraform CI/CD テンプレートは非推奨となり、GitLab 18.0 で削除されます。これは以下のテンプレートに影響します。
Terraform.gitlab-ci.yml
Terraform.latest.gitlab-ci.yml
Terraform/Base.gitlab-ci.yml
Terraform/Base.latest.gitlab-ci.yml
terraform
GitLab は、ジョブ イメージ内のバイナリを BSL ライセンスのバージョンに更新できません。
Terraform を引き続き使用するには、テンプレートとTerraform イメージをクローンし、必要に応じてメンテナンスしてください。GitLab では、カスタムビルドイメージへの移行に関する詳細な手順を提供しています。
代替案として、GitLab.com の新しい OpenTofu CI/CD コンポーネント、または GitLab Self-Managed の新しい OpenTofu CI/CD テンプレートのご利用をお勧めします。CI /CD コンポーネントは GitLab Self-Managed ではまだご利用いただけませんが、Issue #415638でこの機能の追加が提案されています。CI/CD コンポーネントが GitLab Self-Managed で利用可能になった場合、OpenTofu CI/CD テンプレートは削除されます。
新しいOpenTofu CI/CD コンポーネントの詳細をご覧ください。
5. プロメテウスサブチャートのメジャーアップデート
自己管理型
GitLab 18.0 および GitLab チャート 9.0 では、Prometheus サブチャートが 15.3 から 27.3 に更新されます。
このアップデートとともに、Prometheus 3 がデフォルトで出荷されます。
アップグレードには手動の手順が必要です。Alertmanager、Node Exporter、またはPushgatewayが有効になっている場合は、Helmの値も更新する必要があります。
詳細については、移行ガイドを参照してください。
低影響
1. SUSE Linux Enterprise Server 15 SP2パッケージのビルドは終了しました
自己管理型
SUSE Linux Enterprise Server (SLES) 15 SP2 の長期サービスおよびサポート (LTSS) は 2024 年 12 月に終了しました。
そのため、LinuxパッケージのインストールにおけるSLES SP2ディストリビューションのサポートは終了となります。引き続きサポートを受けるには、SLES 15 SP6にアップグレードしてください。
2. Gitalyレートリミッターを削除する
自己管理型
Gitaly は以前、RPC ベースのレート制限をサポートしていました。この機能は期待通りの結果が得られないため、廃止されます。詳細は廃止に関する問題をご覧ください。
顧客がレート リミッターを設定している場合 (これは非推奨です)、エラーは返されず、設定は単に無視されます。
代わりに同時実行リミッターを利用する必要があります。
3. NGINX コントローラー イメージ 1.3.1 のサポートを廃止
自己管理型
デフォルトのNGINXコントローラーイメージを1.11.2にアップグレードします。この新しいバージョンでは新しいRBACルールが必要となり、一部のユーザーはnginx-ingress.rbac.create: falseを設定して独自のRBACルールを管理しています。
これらのユーザーは、1.11.2以降に移行する前にRBACルールを追加する必要があります。このHelm値が上記のように設定されている場合にのみ1.3.1をデプロイするフォールバックメカニズムを追加しました。また、nginx-ingress.controller.image.disableFallback(デフォルトはfalse)も追加しました。独自のRBACを管理しているユーザーは、新しいRBACルールが適用されていることを確認した上で、これをtrueに設定することで、デプロイメントで1.11.2も使用できるようになります。
17.5 の一部として、1.3.1 イメージ サポートとフォールバック メカニズムを廃止する予定です。これにより、このサポートを完全に削除し、多くのセキュリティ上の利点がある 1.11.2 のみを使用できるようになります。
4. アプリケーションセキュリティテストアナライザーのメジャーバージョンアップデート
GitLab.com | セルフマネージド | 専用
アプリケーション セキュリティ テスト ステージでは、GitLab 18.0 リリースに合わせてアナライザーのメジャー バージョンがアップグレードされます。
デフォルトで含まれるテンプレートを使用していない場合、またはアナライザーのバージョンを固定している場合は、CI/CD ジョブ定義を更新して、固定されたバージョンを削除するか、最新のメジャー バージョンを更新する必要があります。
GitLab 17.0~17.11をご利用のお客様は、GitLab 18.0のリリースまで、引き続き通常通りアナライザーのアップデートをご利用いただけます。GitLab 18.0以降は、新たに修正されたバグや機能は、アナライザーの新しいメジャーバージョンでのみリリースされます。
メンテナンスポリシーに基づき、バグや機能を非推奨バージョンにバックポートすることはありません。セキュリティパッチは必要に応じて、最新の3つのマイナーリリースにバックポートされます。
5. API検出はデフォルトでブランチパイプラインを使用する
GitLab.com | セルフマネージド | 専用
GitLab 18.0 では、API Discovery ( API-Discovery.gitlab-ci.yml )の CI/CD テンプレートのデフォルトの動作が更新されます。
GitLab 18.0 より前のバージョンでは、このテンプレートは、MR が開いているときに、デフォルトでマージ リクエスト パイプラインでジョブが実行されるように構成します。
GitLab 18.0 以降では、このテンプレートの動作を他の AST スキャナーの安定テンプレート エディションの動作に合わせます。
- デフォルトでは、テンプレートはブランチ パイプラインでスキャン ジョブを実行します。
- CI/CD変数AST_ENABLE_MR_PIPELINES: trueを設定することで、MRが開いているときにMRパイプラインを使用するようにできます。この新しい変数の実装は、Issue #410880で追跡されています。
6. DAST DAST_DEVTOOLS_API_TIMEOUTのデフォルト値が低くなります
GitLab.com | セルフマネージド | 専用
DAST_DEVTOOLS_API_TIMEOUT環境変数は、DASTスキャンがブラウザからの応答を待機する時間を決定します。GitLab 18.0より前のバージョンでは、この変数の値は45秒に固定されていました。GitLab 18.0以降では、DAST_DEVTOOLS_API_TIMEOUT環境変数の値は動的になり、他のタイムアウト設定に基づいて計算されます。
多くの場合、45秒という値は多くのスキャナ関数のタイムアウト値よりも高かったのですが、動的に計算される値により、 DAST_DEVTOOLS_API_TIMEOUT変数が適用されるケースが増え、より有用性が高まります。
影響を管理するためのツールとリソース
お客様がこれらの計画されている変更がGitLabインスタンスにどのような影響を与えるかを理解していただくために、専用のツールを開発しました。影響を評価した後は、GitLab 18.0へのスムーズな移行を確実にするために、ドキュメントに記載されている緩和策の手順を確認することをお勧めします。
- 高度な検索による非推奨機能:このツールは、GitLabの高度な検索APIを使用して、GitLabのグループとプロジェクト全体にわたって非推奨機能に関連する文字列を検索します。また、手動で確認する必要があるファイルも報告します。注:誤検出が含まれる場合があります。
- 依存関係スキャンビルドサポート検出ヘルパー:このツールは、3つの依存関係スキャンの廃止(1、2、3。いずれも19.0に延期)の影響を受けるプロジェクトを特定します。APIを使用して、関連ファイルとCIジョブ名をスキャンします。
- GitLab Detective(セルフマネージドのみ):この試験運用ツールは、GitLabインストールの既知の問題を自動チェックします。設定ファイルやデータベースの値を参照することで、複雑なチェックを実行します。注: GitLabノード上で直接実行する必要があります。
また、GitLab Universityでは、これらの変更のいくつかに対する緩和策の計画と実行を支援するためのマイクロコース(15分以内!)シリーズも開始しました。こちらから学習を始めましょう。
有料プランをご利用で、今回の変更に関してご質問やサポートが必要な場合は、GitLab サポート ポータルでサポート チケットを開いてください。
無料の Gitlab.com ユーザーの場合は、 GitLab ドキュメント、GitLab コミュニティ フォーラム、Stack Overflowなどのコミュニティ ソースを通じて追加のサポートにアクセスできます。
弊社パートナー様はNetworld Dev Portal アカウント(無料)登録いただくと、GitLabパートナー制度や DevSecOps関連提案資料などのパートナー限定コンテンツがご覧いただけます。
DevSecOps全般、GitLab製品または本サイトについては以下よりお問い合わせ下さい。