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/runners RESTエンドポイントを利用して新しいランナーを作成し、config.toml に新しいエントリーを作成します。 |
ランナー認証トークン |
POST /api/v4/runners/verify REST エンドポイントを利用して、認証トークンの有効性を確認します。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_cpwhDr7zFz4xBJujFeEM
CI ジョブにおけるランナーの識別
ユーザーがジョブを実行したマシンを特定するために、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/verify
GitLabエンドポイントがトークンを検証すると、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_id JSON パラメータをハートビートリクエストで使用して、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/verify REST エンドポイントからトークンと Runner ID 情報を返します。 |
GitLab Runner | %15.10 | glrt接頭辞付き認証トークンを使った新しいフローを許可するようにregisterコマンドを修正しました。 |
GitLab Runner | %15.10 |
gitlab-runner register コマンドを一つのオペレーションで実行できるようにします。 |
GitLab Rails アプリ | %15.10 | グループとプロジェクトの “新規Runner作成ワークフロー “の機能フラグとポリシーを定義します。 |
GitLab Rails アプリ | %15.10 | ジョブのポーリング時に Runnercontacted_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/runners REST エンドポイントを適応して、登録トークンの代わりにスコープを持つ作成者からのリクエストを受け付けるようにします。 |
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_runner PPGAT スコープを実装し、完全な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_encrypted columns fromapplication_settings ;- runners_token /runners_token_encrypted fromnamespaces table;- runners_token /runners_token_encrypted fromprojects tableを削除するためにデータベースのマイグレーションを作成します。 |
FAQ
ユーザーマニュアルに従ってください。
ステータス
ステータスRFC.
誰
提案
ロール | 誰 |
---|---|
作成者 | カミル・トルチンスキ、トマシュ・マチュキン、ペドロ・ポンベイロ |
アーキテクチャ進化コーチ | カミル・トルチンスキ |
エンジニアリングリーダー | ニコル・ウィリアムズ、シェリル・リー |
プロダクト・マネージャー | ダレン・イーストマン, ジャッキー・ポーター |
ドメインエキスパート/ランナー | トマシュ・マチュキン |
DRI
ロール | 誰 |
---|---|
リーダーシップ | ニコール・ウィリアムズ |
製品 | ダレン・イーストマン |
エンジニアリング | トマシュ・マチュキン、ペドロ・ポンベイロ |
ドメインの専門家
エリア | 誰 |
---|---|
ドメインエキスパート/ランナー | トマシュ・マチュキン |