naiのアウトプット

システムエンジニアの学習記録場所

Gitlabの17.0バージョンアップに伴う破壊的変更のまとめ

概要

内容

セルフマネージドデプロイメント

Postgres 13の非推奨

  • 全てのセルフマネージドの顧客に影響します。Postgres 14へのアップグレードを行わない場合、デプロイメントが機能しなくなります。
  • Postgres 14は既にGitLab 16.2.0からサポートされています。

omniauth-azure-oauth2 gemの非推奨

  • omniauth-azure-oauth2プロバイダを認証に使用しているセルフマネージドの顧客に影響します。
  • omniauth_openid_connectへの移行を行わない場合、ユーザーはAzureのログインボタンを使用してサインインできなくなります。

Sidekiqオプションの最小並列数と最大並列数

  • gitlab.rbでsidekiq['min_concurrency']およびsidekiq['max_concurrency']が設定されているGitLabデプロイメントに影響します。
  • 移行を行わない場合、デプロイメントが機能しなくなります。

CI

POST /api/v4/runnersエンドポイントでの登録トークンとサーバーサイドランナー引数

  • ランナーをプロビジョニングするカスタム自動化に影響します。
  • ランナープロビジョニングが無効になることにより、CIパイプラインが機能しなくなる可能性があります。

下流パイプラインでのファイルタイプ変数展開の修正

  • ファイルタイプの変数を下流パイプラインに渡すパイプラインに影響します。
  • 変数内容の変更により、下流パイプラインが機能しなくなる可能性があります。

キャンセルされたジョブでもafter_scriptキーワードが実行される

  • after_scriptキーワードを使用するパイプラインに影響します。
  • 変更された動作により、パイプラインが正常に機能しなくなるか、予期せぬ結果を引き起こす可能性があります。

古いバージョンのJSON Webトークンが非推奨に、HashiCorp Vault統合ではデフォルトでCI_JOB_JWTを使用しなくなり、JWT /-/jwksインスタンスエンドポイントが非推奨に

  • CI_JOB_JWTまたはCI_JOB_JWT_V2 CI変数に依存するパイプラインに影響します。
  • 変数の削除により、Vault統合が機能しなくなるか、パイプラインが失敗する可能性があります。

CD

Kubernetes用GitLabエージェントのプルベースデプロイメント機能が非推奨に

  • Kubernetes用GitLabエージェントをデプロイメントに使用しているプロジェクトに影響します。
  • この変更により、Kubernetes用GitLabエージェントに依存するCDワークフローが機能しなくなる可能性があります。
  • エージェント自体は非推奨にはなっておらず、クラスターとの通信、APIエンドポイントの利用、クラスター内のイベント情報をGitLabにプッシュする機能など、いくつかの機能に引き続き使用されます。

Kubernetesエージェントのオプションca-cert-fileが改名

  • 自己署名証明書Kubernetesエージェントをインストールしている顧客に影響します。
  • この変更は、エージェントを介してKubernetesクラスターをGitLabに接続するCDワークフローに影響を与える可能性があります。

パッケージ

npmパッケージのアップロードが非同期で行われるように変更

  • npmまたはYarnパッケージをGitLabレジストリに公開しているプロジェクトに影響します。
  • 非同期アップロードにより、公開直後にパッケージが利用可能であると期待するパイプラインが機能しなくなる可能性があります。

Dependency Proxy:アクセストークンに追加のスコープチェックが適用

  • 不十分なスコープを持つグループアクセストークンや個人アクセストークンを使用してDependency Proxyを利用しているプロジェクトに影響します。
  • 必要なスコープがないトークンは失敗するため、docker loginやdocker pullのリクエストが拒否され、パイプラインが機能しなくなる可能性があります。

Mavenリポジトリのグループ権限

  • グループレベルでMavenリポジトリを使用しているが、ユーザー権限が正しく設定されていないプロジェクトに影響します。
  • 正しい権限を持たないユーザーは要求されたパッケージにアクセスできなくなるため、これらのユーザーのパイプラインが機能しなくなる可能性があります。

GitLab.com

LinuxのGitLab SaaSランナーのOSバージョンアップグレード

  • 古いDocker-in-DockerまたはKanikoバージョンを使用しているsaas-linux-*-amd64タグが付けられた共有ランナーを使用するパイプラインに影響します。
  • 古いバージョンはコンテナランタイムを検出できずに失敗し、パイプラインが中断されます。

Windows Server 2019の非推奨化と2022への移行

  • shared-windowsおよびwindows-1809タグが付けられた共有ランナーを使用するパイプラインに影響します。
  • 影響を受けるジョブはランナーによって処理されず、パイプラインがブロックされます。
  • .ymlファイルで非推奨のタグを検索することで、影響を受けるジョブを特定できます。

小規模なSaaSランナーのLinuxからのタグ削除

  • docker, east-c, gce, git-annex, linux, mongo, mysql, ruby, sharedなどのタグが付けられた共有ランナーを使用するパイプラインに影響します。
  • 影響を受けるジョブはランナーによって処理されず、パイプラインがブロックされます。
  • .ymlファイルで非推奨のタグを検索することで、影響を受けるジョブを特定できます。

Ultimateプラン

セキュリティポリシーのフィールド「newly_detected」と「match_on_inclusion」が非推奨に

  • マージリクエスト承認ポリシー(以前のスキャン結果ポリシー)を有効にしていて、非推奨のキーワードを使用しているグループやプロジェクトに影響します。
  • 移行を行わない場合、ポリシーによるルールの強制が機能しなくなり、コンプライアンス違反の可能性があります。

必須のパイプライン設定が非推奨に

  • 必須のパイプライン設定を使用しているUltimateのセルフマネージド顧客に影響します。
  • 移行を行わない場合、必要な設定はプロジェクトで使用されなくなり、インスタンス上で実行されるすべてのパイプラインに影響します。

プロキシベースのDASTが非推奨に

  • 変数DAST_BROWSER_SCANをfalseに設定してDASTを使用しているプロジェクトに影響します。
  • 移行を行わない場合、既存のパイプラインでのDASTスキャンが失敗します。

Ubuntu22.04でプロンプトにテキストをペーストすると選択された状態になる

現象

  • コピペしたら下記みたいな表示になる

原因

  • Bashの設定によるもの
  • Bashのバージョン(bash 5.1~)によってブラケットペーストモードというものがデフォルトで有効になっており、これが前述のペースト時のハイライトの設定になっている。
    • これがオンになっている理由は、悪意のあるスクリプトを誤って実行しないようにコピペを確認させるため

対処

  • 暫定対策:以下を実行する
    • bind 'set enable-bracketed-paste off’
  • 恒久対策:以下を~/.inputrcまたは/etc/inputrcに追加する
    • set enable-bracketed-paste off

参考

調査メモ

  • この現象を調べるのにすごい難航した
    • 環境としては、VSCodeのターミナルでWSLのUbuntuを動かしていた。テキストがハイライト表示されていると勘違いしていて、ハイライト表示に関する検索を行っていた。
      • 引っかかるのはVSCodeの書式設定のものやlsの色分けのものだらけで求めているのと違うものばかり引っかかった
      • ChatGptに聞いても同じような回答しか返ってこなかった
    • 途中でVSCodeではなくてBashの設定の問題なのではと気付き、linux bash paste config colorで検索したらそれっぽい回答がひっかかりようやく原因と対策がわかった
  • ちなみにChatGPTにどう聞けば回答が出たかを確認したら以下のプロンプトを使えと言われた
    • プロンプト
      • Ubuntu 22.04でBashを使用している際、プロンプトにテキストを貼り付けると、そのテキストが選択された状態になります。これは何が原因で、どうすれば通常の貼り付けに戻せますか?」