| Status | Authors | Coach | DRIs | Owning Stage | Created | 
|---|---|---|---|---|---|
| ongoing | @pedropombeiro@tmaczukin | @ayufan | @erushton | devops verify | 2022-10-27 | 
次ページ GitLab Runnerトークンアーキテクチャ
要約
GitLab Runnerは、信頼性の高い並行環境でCI/CDジョブを実行するGitLab CI/CDのコアコンポーネントです。Rubyプログラムとしてサービスが始まって以来、Runnerは登録トークン(ランダムに生成された文字列)を使ってGitLabインスタンスに登録されます。登録トークンは、与えられたスコープ(インスタンス、グループ、プロジェクト)で一意です。登録トークンは、ランナーを登録した側が、そのランナーが登録されているインスタンス、グループ、プロジェクトに対する管理アクセス権を持っていることを証明します。
このアプローチは初期にはうまく機能しましたが、対象者が増えるにつれて、いくつかの既知の大きなイシューが明らかになり始めました:
| 問題 | 症状 | 
|---|---|
| スコープごとに単一のトークン | - 登録トークンは複数のランナーで共有: - 単一のトークンは監査の価値を下げ、トレーサビリティをほとんど不可能にします。 -Runnerの自己登録のために多くの場所でコピーされます。 - ユーザーがトークンを安全でない場所に保管しているというレポーターがいます。 - トークンのローテーションにコストがかかります。 - インスタンス全体に影響するセキュリティイベントが発生した場合、トークンをローテーションするには、ユーザーがプロジェクト/ネームスペースのテーブルを更新する必要があり、かなりの時間がかかります。 | 
| 自動期限切れの規定がない | トークンの変更には手動操作が必要。アドレスは#30942。 | 
| 権限モデルがありません。 | 保護されたブランチやタグのランナーを登録するために使用します。この場合、登録トークンはすべての権限を持ちます。事実上、登録トークンを手にした誰かがシークレットやソースコードを盗むことができます。 | 
| トレーサビリティなし | トークンはユーザーによって作成されたものではなく、すべての管理者がアクセストークンにアクセスできるため、漏洩したトークンの出所を知ることはできません。 | 
| 履歴が残らない | リセットされた場合、登録トークンの以前の値は保存されないため、より深い監査や検査を可能にするための履歴データがありません。 | 
| プロジェクト/名前空間モデルに保存されたトークン | トークンが不用意に開示される可能性があります。 | 
| 登録ランナーが多すぎる | 有名な登録トークンを使って新しいランナーを登録するのは、あまりにも簡単です。 | 
これらのイシューを考慮すると、ランナーを GitLab インスタンスに接続する方法を再設計し、トレーサビリティ、セキュリティ、パフォーマンスを保証できるようにすることが重要です。
私たちはこの新しい仕組みを “next GitLab Runner Token architecture “と呼んでいます。
提案
この提案では、登録トークンを不要にすることで、_スコープごとの単一のトーク_ンと_トークンの保管という_アドレスに対応します。ランナーの作成は GitLab Runners settings ページで、認証されたユーザーのコンテキストで、指定されたスコープに対して行われます。このページでは、既存のgitlab-runner register コマンドを使って、サポートされている環境で新しく作成した Runner を設定する手順を提供します。
登録トークンがなくなったことで、残りの懸念はイシューではなくなりました。
現在のランナー登録フローと新しいランナー登録フローの比較
登録トークンの代わりに認証トークンを使用
この提案では、GitLab UIで作成されたRunnerには、glrt- (GitLabRunnerToken)をプレフィックスとする認証トークンが割り当てられます。
この接頭辞により、既存のregister コマンドが現在の登録トークン (--registration-token) の_代わりに_認証トークンを使うことができるようになり、既存のワークフローに最小限の調整を加えるだけで済みます。認証トークンは、意図しない再利用を防ぐため、作成フローの完了後にユーザーに一度だけ表示されます。
ランナーは GitLab UI を通して事前に作成されるため、ランナー作成フォームで公開されている引数を指定すると、register コマンドは失敗します。例としては、--tag-list 、--run-untagged 、--locked、--access-level が挙げられます。これらは管理者やオーナーが作成時に決定すべきセンシティブなパラメータだからです。ランナー設定は、既存のregister 。このコマンドは、--registration-token の引数に登録トークンと認証トークンのどちらを指定するかによって、2つの異なる動作をします:
| トークンの種類 | 動作 | 
|---|---|
| 登録トークン | POST /api/v4/runnersRESTエンドポイントを利用して新しいランナーを作成し、config.tomlに新しいエントリーを作成します。 | 
| ランナー認証トークン | POST /api/v4/runners/verifyREST エンドポイントを利用して、認証トークンの有効性を確認します。config.tomlファイルにエントリーを作成し、サイドカーファイル (.runner_system_id) がない場合はsystem_idの値を作成します。 | 
移行期間
移行期間中、レガシートークン(”登録トークン”)はGitLab Runnerの設定ページに表示され続け、gitlab-runner register コマンドによって gitlab-runner register受け入れられます。gitlab-runner register とはいえ、従来のワークフローは UI では推奨されません。ユーザーは UI で Runner を作成し、その結果得られた認証トーク gitlab-runner registerンをコマンドでgitlab-runner register 使用するという新しいフローに誘導さ gitlab-runner registerれます。このアプローチにより、ランナーのデプロイを担当するユーザーの混乱を減らすことができます。
多くのマシンでランナー認証トークンを再利用
既存のオートスケーリングモデルでは、新しいジョブが実行されるたびに新しいRunnerが作成されます。このため、Runnerが取り残され、古くなる状況が多く発生します。
提案モデルでは、ci_runners テーブルエントリーは、ユーザーが複数のマシンで再利用できる設定を記述し、各マシンのランナー状態(例えば、IPアドレス、プラットフォーム、アーキテクチャ)は、別のテーブル(ci_runner_machines )に移動されます。ランナーアプリケーションの起動時や設定の保存時には、一意のシステム識別子が自動的に生成されます。こ れ に よ り 、ラ ン ナ ー が 使 用 さ れ て い る マ シ ン を 区 別 す る こ と が で き ま す 。
system_id の値は、コマンドライン出力、CI ジョブログ、GitLab UI でランナーを識別するために使用される短いランナートークンを補完します。
ランナーの作成にはユーザーの操作が必要であることを考えると、最終的にはスコープごとに登録できる CI ランナーのプランごとの上限を引き下げることができるはずです。
system_id 。
gitlab-runner インストールには、常に一意のシステム識別子が割り当てられるようにしています。この ID は、/etc/machine-id (Linux の場合) のような既存のマシン識別子から導き出され、プライバシーのためにハッシュ化されます。この場合、s_ が先頭に付きます。ID が利用できない場合、代わりにランダムな文字列が使用されます。この場合、r_ が先頭に付きます。
この一意なIDはgitlab-runner プロセスを識別し、config.toml ファイル内のすべてのランナーに対するPOST /api/v4/jobs リクエストで送られます。
このIDはgitlab-runner の起動時と設定がディスクに保存される時の両方で生成され、保存されます。しかし、config.toml のルートにIDを保存する代わりに、その隣にある新しいファイル -.runner_system_id- に保存します。この新しいファイルの目的は、config.toml ファイルの手動コピーによって ID が再利用される可能性を低くすることです。
s_cpwhDr7zFz4xBJujFeEMCI ジョブにおけるランナーの識別
ユーザーがジョブを実行したマシンを特定するために、CIジョブのコンテキストで一意の識別子を可視化する必要があります。最初の方法として、GitLab Runner はビルドログに一意なシステム識別子を含めます。
Runnerは異なる一意なシステム識別子で再利用される可能性があるため、一意なシステムIDをデータベースに保存する必要があります。これにより、一意のシステム ID がランナートークンを持つ GitLab Runner のsystem_id 値にマップされることが保証されます。新しいci_runner_machines テーブルは、それぞれのユニークな Runner Manager に関する情報を保持し、その Runner が最後にいつ接続したのか、どのような種類の Runner だったのかという情報を保持します。
長期的には、関連するフィールドはci_runners からci_runner_machines に移動される予定です。しかし、削除のマイルストーンまでは、ci_runner_machines に一致するレコードが存在しない場合の予備として、ci_runners に残しておく必要があります。想定されるシナリオは、テーブルが作成されてもランナーが GitLab インスタンスに ping していない場合です(ランナーがオフラインの場合など)。
さらに、ci_runners に以下のカラムを追加しましょう:
- 誰がランナーを作成したかを記録するためのcreator_id列;
- 
ci_runners、ランナーが従来のregisterメソッドで作成されたのか、新しいUIベースのメソッドで作成されたのかを示すregistration_type列挙型カラム。設定可能な値は:registration_tokenおよび:authenticated_userです。これにより、古いランナーのクリーンアップ・サービスがクリーンアップするランナーを決定することができ、将来的な用途が明らかにならない可能性があります。
CREATE TABLE ci_runners (
  ...
  creator_id bigint
  registration_type int8
)
新しいp_ci_runner_machine_builds テーブルは、ci_runner_machines とci_builds テーブルを結合し、これらのテーブルに負担がかからないようにします。既存のレコードを更新するよりも、contacted_at 。
CREATE TABLE p_ci_runner_machine_builds (
    partition_id bigint DEFAULT 100 NOT NULL,
    build_id bigint NOT NULL,
    runner_machine_id bigint NOT NULL
)
PARTITION BY LIST (partition_id);
CREATE TABLE ci_runner_machines (
    id bigint NOT NULL,
    system_xid character varying UNIQUE NOT NULL,
    contacted_at timestamp without time zone,
    version character varying,
    revision character varying,
    platform character varying,
    architecture character varying,
    ip_address character varying,
    executor_type smallint,
    config jsonb DEFAULT '{}'::jsonb NOT NULL
);
利点
- ユーザーが概念を理解しやすい:2種類のトークンの代わりに、1種類のトークン(Runnerごとの認証トークン)があります。2種類のトークンがあると、イシューについて議論するときに誤解が生じます;
- Runnerは、監査ログを使用して、常にそれを作成したユーザーまでトレースすることができます;
- CIランナーの主張は作成時に知られており、ランナーから変更することはできません(例えば、access_level/protectedフラグを変更するなど)。しかし、認証されたユーザーは GitLab UI からこれらの設定を編集することができます;
- 
ci_runnerテーブルに触れることなく、古いランナーのクリーンアップがより簡単になりました。
詳細
提案するアプローチでは、移行期間中に現在の登録トークン方式と並行して使用できる、ランナーを設定する明確な方法を作成します。このアイデアは、Runnerが新しいRunnerを登録するために単一の「神のような」トークンを活用するAPIコールを行うことを避けることです。
新しいワークフローは以下のようになります:
- ユーザーはRunner設定ページ(インスタンス、グループ、またはプロジェクトレベル)を開きます;
- ユーザーは新しいランナーに関する詳細(説明、タグ、保護、ロックなど)を入力します;
- 
ユーザーは Createをクリックします。その結果、以下のようになります:- 
ci_runnersテーブルに新しい Runner(および対応するglrt-接頭辞付き認証トークン)が作成されます;
- サポートされるさまざまなデプロイメントシナリオ(たとえば、Shell、docker-compose、Helmチャートなど)を使用して、マシン上でこの新しいランナーを設定する方法をユーザーに提示します。この情報には、ユーザーが一度だけ使用できるトークンが含まれており、同じランナーを複数回登録することは(不可能ではありませんが)推奨されないため、UIはユーザーに値を再度表示しないことを明確にします。
 
- 
- 
ユーザーは、意図したデプロイシナリオの指示( registerコマンド)をコピー&ペーストし、以下のアクションを実行します:- 命令の新しいgitlab-runner registerコマンドを実行すると、gitlab-runnerは、指定されたランナートークンでPOST /api/v4/runners/verifyへの呼び出しを実行します;
- 
POST /api/v4/runners/verifyGitLabエンドポイントがトークンを検証すると、config.tomlファイルに設定が入力されます;
- Runner がジョブのために ping するたびに、それぞれのci_runner_machinesレコードが Runner の最新情報で「upsert」されます(Runner heartbeats のために行うように、Redis キャッシュが前面に表示されます)。
 
- 命令の新しい
移行期間の一環として、管理者とトップレベルのグループオーナーにインスタンス/グループレベルの設定(allow_runner_registration_token )を提供し、従来の登録トークン機能を無効にし、新しいワークフローのみを使用するよう強制します。gitlab-runner register コマンドがPOST /api/v4/runners エンドポイントをヒットし、登録トークンで新しい Runner を登録しようとすると、HTTP 410 Gone ステータスコードが返されます。
インスタンス設定はグループに継承されます。つまり、インスタンスメソッドでレガシー登録メソッドが無効になっている場合、子孫のグループ/プロジェクトはレガシー登録メソッドを強制的に防ぐことができます。
登録トークンのワークフローは、コンセプトが安定し、顧客が新しいワークフローにマイグレーションした後、将来のメジャーリリースで非推奨となり(gitlab-runner register コマンドで非推奨の通知が出力されます)、削除される予定です。
レガシーランナーの取り扱い
レガシーバージョンの GitLab Runner はリクエストに一意なシステム ID を送信しませんし、一意なシステム ID を扱うために Workhorse のロジックを変更することもありません。これは、レガシーな登録システムが削除され、Runner が新しいバージョンにアップグレードされた後に改善される可能性があります。
そのようなレガシー Runner からのジョブ ping は<legacy> system_xid フィールド値を含むci_runner_machines レコードになります。
一意なシステム ID を使わないということは、同じトークンを持つすべての接続されたランナーに通知されるということです。理想的ではありませんが、それ自体はイシューではありません。
ci_runner_machines レコードの有効期限
新しいレコードは2つの状況で作成されます:
- ランナーがgitlab-runner registerコマンドの一部としてPOST /api/v4/runners/verifyエンドポイントを呼び出したとき、指定されたランナートークンの先頭にglrt-が付いている場合。これにより、フロントエンドはユーザーが正常に登録を完了したかどうかを判断し、適切なアクションを取ることができます;
- GitLab が新しいジョブに対して ping を行い、token+system_idにマッチするレコードがまだ存在しない場合。
ci_runner_machines のレコードは時間が経過すると消去されるため、それぞれの Runner からの最後のコンタクトから 7 日後に自動的に消去されます。
必要な適応
ci_runner_machines テーブルへのマイグレーション
ci_runner_machines の詳細が必要な場合、ci_runner_machines に一致するフィールドが見つからなければ、ci_runner の既存のフィールドにフォールバックする必要があります。
REST API
ランナートークンを受け取るAPIエンドポイントは、ランナートークンと一緒に送信されるオプションのsystem_id パラメータも受け取るように変更されるべきです(多くの場合、リクエストボディのJSONパラメータとして)。
GraphQLCiRunner タイプ
CiRunner 型 はci_runners モデルを忠実に反映しています。つまり、ipAddress 、architectureName、executorName などの機械情報は、提案されたアプローチでは特異値ではなくなります。当面はこの事実を受け入れ、カンマで区切られた一意な値のリストを返すようにしましょう。それぞれのCiRunner フィールドは、ci_runner_machines エントリーの値を返さなければなりません(存在しない場合は、ci_runner レコードにフォールバックします)。
古いランナーのクリーンアップ
古いランナーをクリーンアップする機能は、ci_runners レコードの代わりに、ci_runner_machines レコードをクリーンアップするように変更する必要があります。
登録トークンのサポートが廃止された後のある時点で、登録トークンで作成された古いランナーをクリーンアップするためのバックグラウンドマイグレーションを作成したいと思います(ci_runners テーブルに作成された enum カラムを活用します)。
APIによるランナー作成
自動化されたランナー作成は、新しい GraphQL 変異と既存のPOST /runners REST API エンドポイントを通じて可能です。REST APIエンドポイントの違いは、登録トークンの代わりにスコープ(インスタンス、グループ、プロジェクト)を持つ作成者からのリクエストを受け付けるように変更されている点です。これらのエンドポイントは、指定されたスコープでランナーの作成が許可されているユーザーのみが利用できます。
実装計画
ステージ1 - 非推奨
| コンポーネント | Milestone | 変更点 | 
|---|---|---|
| GitLab Rails アプリ | 15.6 | 17.0のPOST /api/v4/runnersエンドポイントを非推奨にしました。これは、セキュリティ上の理由からREST APIのエンドポイントを非推奨にするという提案にかかっています。 | 
| GitLab Runner | 15.6 | 17.0のregisterコマンドに非推奨のお知らせを追加しました。 | 
| GitLab Runner Helm チャート | 15.6 | 17.0のrunnerRegistrationTokenコマンドに非推奨のお知らせを追加しました。 | 
| GitLab Runner オペレーター | 15.6 | 17.0のrunner-registration-tokenコマンドに非推奨のお知らせを追加しました。 | 
| GitLab Runner / GitLab Rails アプリ | 15.7 | 17.0用の登録トークン・リセットの非推奨通知を追加。 | 
ステージ 2 -gitlab-runner を準備。system_id
| コンポーネント | Milestone | 変更点 | 
|---|---|---|
| GitLab Runner | 15.7 | system_id新しいシステム ID 値が割り当てられると、 INFOレベルでログを記録します。 | 
| GitLab Runner | 15.9 | ビルドログに一意のシステムIDを記録します。 | 
| GitLab Runner | 15.9 | Prometheus メトリクスに一意のシステム ID をラベル付けします。 | 
| GitLab Runner | 15.8 | runner サーバー側の設定オプションが新しい glrt-トークンと一緒に渡された場合に失敗するregisterコマンドを準備。 | 
ステージ 2a - GitLab Runner Helm チャートと GitLab Runner オペレータを準備します。
| コンポーネント | Milestone | イシュー | 変更点 | 
|---|---|---|---|
| GitLab Runner Helm チャート | %15.10 | Runner Helm Chart を更新し、認証トークンによる登録をサポートしました。 | |
| GitLab Runner オペレーター | %15.10 | 認証トークンによる登録をサポートするように Runner Operator を更新しました。 | 
ステージ3 - データベースの変更
| コンポーネント | Milestone | 変更点 | 
|---|---|---|
| GitLab Rails アプリ | %15.8 | ci_runnersテーブルにカラムを追加するためのデータベースマイグレーションを作成します。 | 
| GitLab Rails アプリ | %15.8 | ci_runner_machinesテーブルを追加するためのデータベースマイグレーションを作成します。 | 
| GitLab Rails アプリ | %15.9 | ci_builds_metadataテーブルにci_runner_machines.id外部キーを追加するためのデータベースマイグレーションを作成します。 | 
| GitLab Rails アプリ | %15.8 | application_settingsとnamespace_settingsテーブルにallow_runner_registration_tokenの設定を追加するためにデータベースのマイグレーションを作成します (デフォルト:true)。 | 
| GitLab Rails アプリ | %15.8 | ci_runner_machinesテーブルにconfigカラムを追加するためのデータベースマイグレーションを作成します。 | 
| GitLab Runner | %15.9 | POST /jobs/requestリクエストでsystem_id値の送信を開始し、ユニークなシステムを特定する必要のあるその他のフォローアップリクエストを送信します。 | 
| GitLab Rails アプリ | %15.9 | ci_runnersレコードの代わりにci_runner_machinesレコードをクリーンアップするStaleGroupRunnersPruneCronWorkerサービスに似たサービスを作成既存のサービスは存在し続けますが、レガシーランナーのみに焦点を当てます。 | 
| GitLab Rails アプリ | %15.9 | create_runner_machine機能フラグを実装します。 | 
| GitLab Rails アプリ | %15.9 | ランナートークンの先頭に glrt-がついている場合は、POST /runners/verifyリクエストでci_runner_machinesレコードを作成します。 | 
| GitLab Rails アプリ | %15.9 | POST /jobs/requestリクエストの Runner トークン +system_idJSON パラメータをハートビートリクエストで使用して、ci_runner_machinesキャッシュ/テーブルを更新します。 | 
| GitLab Rails アプリ | %15.9 | create_runner_workflow_for_admin機能フラグを実装します。 | 
| GitLab Rails アプリ | %15.9 | create_{instance|group|project}_runner権限を実装します。 | 
| GitLab Rails アプリ | %15.9 | API で渡される system_idと整合性をとるため、ci_runner_machines.machine_xidカラムの名前をsystem_xidに変更。 | 
| GitLab Rails アプリ | %15.10 | ci_runner_machines.machine_xidカラムの無視ルールを削除。 | 
| GitLab Rails アプリ | %15.10 | ci_builds_metadata.runner_machine_idを新しい結合テーブルで置き換えます。 | 
| GitLab Rails アプリ | %15.11 | ci_builds_metadata.runner_machine_idカラムを削除します。 | 
| GitLab Rails アプリ | %16.0 | ci_builds_metadata.runner_machine_idカラムの無視ルールを削除。 | 
ステージ4 - UIからのランナーの作成
| コンポーネント | Milestone | 変更点 | 
|---|---|---|
| GitLab Rails アプリ | %15.9 | 新しく生成された Runner 認証トークンにプレフィックスを追加します。 | 
| GitLab Rails アプリ | %15.9 | 登録に使うトークン用の新しいランナーフィールドを追加 | 
| GitLab Rails アプリ | %15.9 | 新しいランナーを作成するための新しい GraphQL ユーザー認証 API を実装しました。 | 
| GitLab Rails アプリ | %15.10 | /runners/verifyREST エンドポイントからトークンと Runner ID 情報を返します。 | 
| GitLab Runner | %15.10 | glrt接頭辞付き認証トークンを使った新しいフローを許可するようにregisterコマンドを修正しました。 | 
| GitLab Runner | %15.10 | gitlab-runner registerコマンドを一つのオペレーションで実行できるようにします。 | 
| GitLab Rails アプリ | %15.10 | グループとプロジェクトの “新規Runner作成ワークフロー “の機能フラグとポリシーを定義します。 | 
| GitLab Rails アプリ | %15.10 | ジョブのポーリング時に Runner contacted_atとstatusのみを更新。 | 
| GitLab Rails アプリ | %15.10 | CiRunnerでランナーマネージャーを表すために GraphQL タイプを追加。 | 
| GitLab Rails アプリ | %15.11 | 新しいインスタンス Runner を作成するための UI を実装します。 | 
| GitLab Rails アプリ | %15.11 | グループとプロジェクトを受け入れるためのサービスと変異を更新しました。 | 
| GitLab Rails アプリ | %15.11 | 新しいグループ/プロジェクト Runner を作成するための UI を実装します。 | 
| GitLab Rails アプリ | %15.11 | CiJob GraphQLタイプにrunner_machineフィールドを追加しました。 | 
| GitLab Rails アプリ | %15.11 | Runnerの詳細表示(プラットフォーム、アーキテクチャ、IPアドレスなどの一覧)のUI変更(?) | 
| GitLab Rails アプリ | %15.11 | POST /api/v4/runnersREST エンドポイントを適応して、登録トークンの代わりにスコープを持つ作成者からのリクエストを受け付けるようにします。 | 
| GitLab Runner | %15.11 | unregisterコマンドでglrt-Runner トークンを扱います。 | 
| GitLab Runner | %15.11 | --tokenでglrt-Runner トークンが渡されると、Runner は登録トークンを要求します。 | 
| GitLab Rails アプリ | %15.11 | Runner machine’から’Runner manager’へ。 | 
ステージ5 - 任意の登録トークン無効化
| コンポーネント | Milestone | 変更点 | 
|---|---|---|
| GitLab Rails アプリ | %16.0 | アプリケーションの設定を考慮し、 register_{group|project}_runnerの権限を適応します。 | 
| GitLab Rails アプリ | %16.1 | POST /api/v4/runnersエンドポイント のどちらかがallow_runner_registration_tokenの設定で登録トークンが無効になった場合、恒久的にHTTP 410 Goneを返すようにしましょう。API の将来の v5 バージョンでは HTTP 404 Not Foundを返すはずです。 | 
| GitLab Rails アプリ | %16.1 | ランナーグループのメタデータをランナーリストに追加します。 | 
| GitLab Rails アプリ | トップレベルのグループ設定で登録トークンの使用を無効にできるUIを追加。 | |
| GitLab Rails アプリ | トップレベルのグループ設定または管理者によって無効化されている場合、登録トークンによる登録を表示するレガシーUIを非表示にします。 | 
ステージ6 - エンフォースメント
| コンポーネント | Milestone | 変更点 | |
|---|---|---|---|
| GitLab Rails アプリ | %16.6 | データベースのマイグレーションを実行することで、すべてのグループの登録トークンを無効化(GitLab.comのみ) | |
| GitLab Rails アプリ | %16.6 | データベースのマイグレーションを実行してインスタンスレベルで登録トークンを無効化(GitLab.comを除く) | |
| GitLab Rails アプリ | %16.8 | GitLab.com のインスタンスレベルで登録トークンを無効化 | |
| GitLab Rails アプリ | %16.3 | 新しい :create_runnerPPGAT スコープを実装し、完全なapiスコープを必要としないようにしました。 | |
| GitLab Rails アプリ | 複数のマシンでRunner トークンを自動的にローテーションする際のゴチャを文書化。 | 
ステージ 7 - 撤去
| コンポーネント | Milestone | 変更点 | 
|---|---|---|
| GitLab Rails アプリ | 17.0 | グループとインスタンスレベルで登録トークンを有効にするUIを削除。 | 
| GitLab Rails アプリ | 17.0 | 登録トークンによる登録を表示するレガシーUIを削除しました。 | 
| GitLab Runner | 17.0 | registerコマンドから Runner モデル引数を削除 (例:--run-untagged,--tag-listなど) | 
| GitLab Rails アプリ | 17.0 | application_settingsとnamespace_settingsテーブルからallow_runner_registration_token設定カラムを削除するデータベースマイグレーションを作成。 | 
| GitLab Rails アプリ | 17.0 | - runners_registration_token/runners_registration_token_encryptedcolumns fromapplication_settings;- runners_token/runners_token_encryptedfromnamespacestable;- runners_token/runners_token_encryptedfromprojectstableを削除するためにデータベースのマイグレーションを作成します。 | 
FAQ
ユーザーマニュアルに従ってください。
ステータス
ステータスRFC.
誰
提案
| ロール | 誰 | 
|---|---|
| 作成者 | カミル・トルチンスキ、トマシュ・マチュキン、ペドロ・ポンベイロ | 
| アーキテクチャ進化コーチ | カミル・トルチンスキ | 
| エンジニアリングリーダー | ニコル・ウィリアムズ、シェリル・リー | 
| プロダクト・マネージャー | ダレン・イーストマン, ジャッキー・ポーター | 
| ドメインエキスパート/ランナー | トマシュ・マチュキン | 
DRI
| ロール | 誰 | 
|---|---|
| リーダーシップ | ニコール・ウィリアムズ | 
| 製品 | ダレン・イーストマン | 
| エンジニアリング | トマシュ・マチュキン、ペドロ・ポンベイロ | 
ドメインの専門家
| エリア | 誰 | 
|---|---|
| ドメインエキスパート/ランナー | トマシュ・マチュキン | 
