Organizations リリースプロセス
このドキュメントでは、どのフィーチャーフラグをどのように有効にするかなど、Organization の機能をリリースするために必要な手順を説明します。各リリースステージの意味、対象者、機能がステージ間を移行する方法については、リリースステージのページを参照してください。
ベータ
Artifact Registry(Central)のリリースプロセス
前提条件 - フィーチャーフラグを有効にする
担当: ~group::organizations
Organization のフラグを以下の状態に移行する必要があります。 この状態は Artifact Registry のベータにのみ適用されます。その後は、これらのフラグを他のステージへ移行できます。
| フラグ | ステージ | 説明 |
|---|---|---|
org_creation | Experimental | グローバルページまたは公開 API から組織を作成します。 |
org_switcher | Experimental | 組織切り替え用のドロップダウンコンポーネント。 |
create_org_from_group_settings | Experimental | グループ設定からトップレベルグループの組織を作成します。 |
org_admin_area | Experimental | 組織オーナー向けの組織管理エリア。 |
org_pages | LA (100%) | Organizations::ApplicationController を継承する組織ページ。 |
your_work_sidebar_org_menu_item | LA (100%) | Your work サイドバーに Organizations メニュー項目を表示します。 |
org_pages と your_work_sidebar_org_menu_item は、組織のコンテキスト外にあるページを制御し、organization アクターでは機能せず、代わりに user アクターを使用するため、LA (100%) に移行する必要があります。
org_pages は組織ページを制御します。このページは、ユーザーがアクティブな組織を持つまで表示されません。つまり、手順 3 と 4 の後まで、ユーザーには UI の変更は見えません。
your_work_sidebar_org_menu_item には、active 状態の Organization を持つユーザーにのみ Your work サイドバーの Organizations メニュー項目を表示するチェックも適用されます。つまり、手順 3 と 4 の後まで、ユーザーには UI の変更は見えません。
ui_for_organizations フィーチャーフラグ - このフラグで制御している箇所がまだいくつか残っています。特に、Organization の唯一のオーナーを削除できるかどうかに関するロジックです。このフィーチャーフラグは組織のコンテキスト外にあるページを制御し、organization アクターでは機能しないため、すべてのユーザーに対してグローバルに有効にする必要があります。
/chatops gitlab run feature set ui_for_organizations true
Artifact Registry(デザインパートナー)
私たちは、少数のデザインパートナーを手動で Organizations にオンボーディングし、Artifact Registry の使用を開始できるようにします。これは、スタンドアロンの Organizations ベータが利用可能になるまでの暫定的なリリースプロセスです。
手順 1 - デザインパートナーのトップレベルグループ(TLG)を特定する
担当: ~devops::package
Organizations にオンボーディングするデザインパートナーを特定し、TLG のフルパスのリストを提供します。
手順 2 - 新しい Organization で TLG をバックフィルする
担当: ~group::organizations
group アクターを使用して、TLG に対して root_group_organization_backfill フィーチャーフラグを有効にします。
/chatops gitlab run feature set --group=a-customer-group root_group_organization_backfill true
これにより、次が実行されます。
- TLG と同じ名前およびパスの Organization を作成する
- TLG をこの Organization に移管する
手順 3 - Organization を確定し、TLG メンバーを同期する
担当: ~group::organizations
group アクターを使用して、TLG に対して root_group_organization_confirm フィーチャーフラグを有効にします。
/chatops gitlab run feature set --organization=a-customer-group root_group_organization_confirm true
これにより、次が実行されます。
- Organization を確定する
- TLG メンバーを Organization に追加する。Owners は Organization Administrators になり、その他すべての Members は Organization Regular Users になります。
手順 4 - Artifact Registry UI のフィーチャーフラグを有効にする
担当: ~group::organizations
作成して確定したばかりの組織に対して、artifact_registry_ui フィーチャーフラグを有効にします。
/chatops gitlab run feature set --organization=a-customer-group artifact_registry_ui true
これにより、Organization に Artifact Registry UI が表示されます。
手順 5 - デザインパートナーに通知する
担当: ~devops::package
Artifact Registry を有効化して使い始める方法を説明するドキュメントへのリンクをデザインパートナーに通知します。
手順 6 - Artifact Registry を有効にする
担当: ~devops::package
お客様には Your work サイドバーに Organizations メニュー項目が表示されるようになります。お客様は Organization の Artifacts メニュー項目の下で有効化できます。有効化すると、Artifact Registry の使用を開始できます。
ロールバック
/chatops gitlab run feature set ui_for_organizations false
/chatops gitlab run feature set --group=a-customer-group root_group_organization_backfill false
/chatops gitlab run feature set --organization=a-customer-group root_group_organization_confirm false
/chatops gitlab run feature set --organization=a-customer-group artifact_registry_ui false
セルフサービスのオンボーディングを備えたスタンドアロンの組織
手順 1 - フィーチャーフラグを有効にする
担当: ~group::organizations
前提条件のフラグに加えて、Organization のフラグを以下の状態に移行する必要があります。
| フラグ | ステージ | 説明 |
|---|---|---|
create_org_from_group_settings | Beta | グループ設定からトップレベルグループの組織を作成します。 |
org_admin_area | LA (100%) | 組織オーナー向けの組織管理エリア。 |
create_org_from_group_settings は --group アクターで使用できるため、Beta のままとします。org_admin_area は、お客様が Organization を作成した後にこれを利用可能にするためのアクターがないため、LA (100%) に移行する必要があります。これらのフラグは Organization を持つユーザーのみが利用できる機能を制御し、Organization の作成自体は引き続きグループアクターで制御されるため、安全に LA (100%) にできます。
手順 2 - ベータのお客様のトップレベルグループ(TLG)を特定する
担当: ~group::organizations
Organizations にオンボーディングするベータのお客様を特定し、TLG のフルパスのリストを提供します。
手順 3 - TLG から Organization を作成する機能を有効にする
担当: ~group::organizations
デザインパートナーの TLG に対して org_stage_beta フィーチャーフラグを有効にします
/chatops gitlab run feature set --group=a-customer-group org_stage_beta true
手順 4 - お客様が TLG から Organization を作成する
担当: ~group::organizations
お客様は自分の TLG に移動 -> 設定 > 一般 > 詳細 を選択し、Create an Organization
UI を使用します。これにより Organization が作成され、TLG(および選択した他の所有 TLG)がその Organization に移動し、Organization の状態が active に設定されます。
その後、Your work サイドバーに Organizations メニュー項目が表示され、Organizations を使用できます。
ロールバック
問題の重大度に応じて、次の選択肢を使用できます。
選択肢 1 - バグ修正
重大度が低く、すぐに修正できる問題であれば、修正をプッシュします。
選択肢 2 - フィーチャーフラグを無効にする
重大度が高く、すべてのお客様に影響し、修正に時間がかかる問題であれば、org_stage_la_100 フィーチャーフラグを無効にできます。これにより、すべてのお客様に対して Organizations が無効になることに注意してください。
/chatops gitlab run feature set org_stage_la_100 false
選択肢 3 - TLG を Default Organization に戻す
重大度が高く、上記の選択肢では解決できない問題であれば、TLG を Default Organization に戻す必要があります。SRE に連絡し、Rails コンソールで次のコマンドを実行してもらってください。
organization = Organizations::Organization.find_by_path("<organization-path>") # replace with the actual organization path
default_organization = Organizations::Organization.default_organization
current_user = ::Users::Internal.in_organization(organization).admin_bot
organization.groups.top_level.find_each do |group|
Organizations::Transfer::GroupsService.new(
group: group,
new_organization: default_organization,
current_user: current_user
).execute
end
5d840611)