APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

GitLab 16.8のアップデート内容を整理する

こんにちは、クラウド事業部 CI/CDサービスメニューチームの山路です。

今回は今年の1月18日にリリースされたGitLab 16.8 の内容について簡単に紹介します。本記事ではすべてのアップデート情報を詳細に記載してはいませんので、興味ある内容があれば各ドキュメントを参照ください。

about.gitlab.com

GCP Secret Managerのサポート

Google Cloudの提供するSecret Managerとの連携が強化され、GILab CI/CDから簡単に呼び出せるようになりました。本サービスはPremiumプラン以上でサポートされます。

.gitlab-ci.yml でSecret Managerを呼び出す際は以下のように定義すれば利用可能です。

job_using_gcp_sm:
  id_tokens:
    GCP_ID_TOKEN:
      # `aud` must match the audience defined in the WIF Identity Pool.
      aud: https://iam.googleapis.com/projects/1234/locations/global/workloadIdentityPools/gitlab-pool/providers/gitlab-provider
  secrets:
    DATABASE_PASSWORD:
      gcp_secret_manager:
        name: my-project-secret  # This is the name of the secret defined in GCP Secret Manager
        version: 1               # optional: default to `latest`.
      token: $GCP_ID_TOKEN

GitLabドキュメントより

なお補足ですが、昨年GitLabとGoogle Cloudとのパートナーシップが発表されており、本機能もその一環として捉えられそうです。

about.gitlab.com

Workspaces機能のGA

WorkspacesはGitLab Project向けに仮想のサンドボックス環境を提供する機能であり、他のProjectからも隔離したセキュアなリモート開発環境を利用できます。似た機能としてはGitHub Codespacesが近いかなと思います。

Workspacesは16.0から利用できる機能でしたが、本リリースでGAとなりました。GAに向けて、エラーハンドリングやベータ版での課題を解消したようです。

なお、Workspacesは利用者が提供するKubernetesクラスター上に環境を用意するため、事前にKubernetesクラスターを用意する必要があります。また本機能はPremiumプラン以上のみサポートされています。

またWorkspaceごとのCPU/メモリの設定も可能となりました。これまではdevfileにWorkspaceで利用するCPU/メモリなどを定義していましたが、これに加えてGitLab agent configurationからWorkspaceごとのCPU/メモリを設定できるようになりました。

GitLab管理者の2要素認証の強制

これまでAmin権限を持つユーザー以外には2要素認証を有効化できましたが、本リリースからSelf-managedインスタンスのAdmin管理者向けに2要素認証を強制できるようになりました。これにより、Admin権限を持つユーザーのログインを強化し、セキュリティの強化につながります。

Maven dependency proxyによるビルド時間の高速化

Mavenパッケージ向けのDependency proxyがGAとなりました。この機能は頻繁に取得するパッケージを主な対象としたローカルProxyで、これを利用すると外部から取得したパッケージをGitLabのパッケージレジストリで管理し、外部パッケージレジストリへのアクセスを削減できます。

また外部レジストリでパッケージが更新された場合(例えばユーザーがバージョンを削除して新しいファイルを含むものを公開した場合など)はGitLabがそれを検知し、新しいものを取得します。これにより正しいパッケージを取得でき、セキュリティ脆弱性などのリスクを軽減できます。

なお本機能はPremiumプラン以上のみサポートします。

patch-idサポートによる承認リセット

Merge Requestに新しいコミットを追加した場合、すべてのレビュアーに変更を確認してもらいたいので、それまでのApproveをすべてリセットすることが多いでしょう。一方でこれまでは、rebaseによる変更を伴わない変更であっても、不必要にApproveがリセットされていました。

今回のアップデートでは、Merge Request Approvalが git-patch-id と一致するように改善されました。 git-patch-id とはパッチに関連するファイル差分のSHA-1の合計であり、patch idが一致する2つのファイルはほぼ同一のものとなります。rebaseの前後の patch-id を比較することで、Approveのリセットをより効率よく実現できるようになりました。

なお、本機能に対するフィードバックはこちらから可能です

その他

GitLab CI/CD関連

  • ファイルページでGit blame情報を確認: Git blameの情報を、ファイルページから直接閲覧できるようになりました。 ドキュメント / Epic

  • 組織内部で管理するCI/CD Catalog componentを見つけやすく: CI/CD Catalogのリストが増えるにつれて、目的のカタログを見つけにくくなります。今回のアップデートにより、組織内部で扱うCI/CD Catalog componentを見つけやすくするため、 Your groups タブが導入されました (Premium以上のプランのみ)。 ドキュメント / Issue

  • CI_MERGE_REQUEST_DESCRIPTION の変更: 16.7で追加されたCI_MERGE_REQUEST_DESCRIPTION に長文が設定されるとRunnerがエラーを起こす可能性があるため、2700文字で切り捨てるよう動作を変更しました。なお記述を切り捨てるかどうかは CI_MERGE_REQUEST_DESCRIPTION_IS_TRUNCATED というpredefined variableで確認できます。 ドキュメント / Issue

  • Runner Fleet Dashboardでのレポート出力: Projectで使用したCI/CD計算時間をCSV形式のレポートで出力できるようになりました (Self-managed, Ultimateプランのみ)。 ドキュメント / Issue

  • ブランチの削除や非保護を避けるためのポリシー: Sacn result policyで Prevent branch modification を有効にし、ポリシー内で定義したブランチの削除や保護解除を無効にできます (Ultimateプランのみ)。 ドキュメント / Epic

Value Stream Dashboard関連

  • Issue Analytics Reportで表示する情報の追加: Issue Analytics Reportに、月当りのクローズしたIssue数が追加されました。この情報はValue Stream Dashboardのドリルダウンから確認できます。この情報によりProjectの状況をより詳細に評価し、顧客へ提供する価値を向上することができます (Ultimateプランのみ)。 ドキュメント / Issue

  • Value Stream DashboardへのDORAベースのスコアパネルを追加: Value Stream DashboardでDORA (DevOps Research and Assessment) ベースのグラフを表示できるようになりました。この機能では異なるProjectにまたがってDevOpsの進行状況をチェックできるようになり、各組織の責任者が自組織でどの程度DevOpsを実践できているか確認できます (Ultimateプランのみ)。 ドキュメント / Issue / GitLabブログ

  • Group-level Analytis Dashboardに新しいlanding pageを導入: この改修では、従来あったメニュー項目がページ名と一致しないという課題を解消しています。これにより、より一貫性のあるユーザーフレンドリーな体験を保証するものとなりました (Ultimateプランのみ)。 ドキュメント / Issue

Audit log streaming関連

  • S3へのインスタンスレベルでのaudit log streamサポート: Audit event streamingの宛先にAmazon S3を利用する際に、インスタンスレベルのストリーミングもサポートするようになりました (Ultimateプランのみ)。 ドキュメント / Epic

  • Audit eventのフィルターの追加: Audit event streamingで利用できるフィルターが追加され、GroupレベルでのSUb-groupまたはProjectによるフィルターがサポートされました (Ultimateプランのみ)。 ドキュメント / Epic

SAML SSO関連

  • SAML SSOへのカスタムロールサポート: SAML SSOをプロビジョニングするときに割り当てられるロールを、ユーザーの用意したカスタムロールを使用できるようになりました (Ultimateプランのみ)。 ドキュメント / Issue

  • SAML Group Syncによるカスタムロールのマッピング: SAML Group Syncを利用し、カスタムロールをユーザーグループにマッピングできるようになりました (Ultimateプランのみ)。 ドキュメント / Issue

  • MR承認用のSAML SSO認証: SAML SSOとSCIMを利用する場合、Merge request approvalの承認要求の際、パスワードベースでなくSSOを使用できるようになりました (Premium以上のプランのみ)。 ドキュメント / Epic

その他の変更

  • タスク・OKRの階層全体の系統の表示: これまではタスクやOKRでは直接の親にあたるものしか確認できなかったですが、今回のアップデートで階層全体の系統を表示できるようになりました。 ドキュメント / Epic

  • コンプライアンスフレームワーク管理の改善: Frameworkの管理をコンプライアンスセンターに含むよう修正し、Frameworkに関するいくつかの機能を追加しました (Premium以上のプランのみ)。 ドキュメント / Epic

  • カスタマイズ可能な権限の追加: カスタムロール作成時に利用できる5つの権限 (Manage project access tokens Manage group access tokens Manage group members Ability to archive a project Ability to delete a project) が追加されました (Ultimateプランのみ) ドキュメント / Issue

  • Omnibusの改善: 3つのサービス (GitLab Kubernetes Agent Server GitLab Workhorse GitLab Exporter) において、設定情報を生成するコマンドを gitlab.rb に設定し、平文のパスワードを gitlab.rb に記載しなくてもよくなりました (Self-managed版のみ)。 ドキュメント / Epic

  • Gitlab runner 16.8: ドキュメント

  • SaaS runner on WindowsのWindows 2022サポート: ドキュメント / Issue

  • Kubernetes 1.28サポート: ドキュメント / Issue

さいごに

弊社はGitLabオープンパートナー認定を受けております。 また以下のようにCI/CDの導入を支援するサービスも行っているので、何かご相談したいことがあればお気軽にご連絡ください。

www.ap-com.co.jp