Skip to content

Organization - Iteration plan and considerations

Problem

There are several possible paths to reach the end goal of having an Organization established on both GitLab.com and for self-managed users. We need to identify the best possible approach moving forward.

Possible approaches

Approach 1: Top-level groups turn into Organizations

In this scenario, we would convert the currently existing top-level groups into Organizations.

Advantages

  • A lot of functionality currently tied to existing top level groups already equates to a Organization level feature

Disadvantages

Impact on self-managed users

Self-managed users have the Admin panel available to them at the moment. What would their transition into an Organization world look like?

  • We could introduce a feature flag to allow self-managed users to keep the old functionality until everything is migrated to the Organization level on GitLab.com.
  • Once that is done, we could switch on the feature flag and expose them to the new experience, which will basically be the old experience just in a new place.
  • For self-managed users wanting to explore the new experience while we are working on it, we could already enable the feature flag.

Impact on GitLab.com users

  • GitLab.com users would go from having no admin experience to the MVC.
  • We would build out the functionality in top-level groups iteratively.

Possible migration scenario

  • No migration necessary.
  • Additional functionality becomes available in top-level groups over time until it is on par with the admin panel experience for self-managed users.

Approach 2: Organization is built on top of top-level groups

In this scenario, top-level groups become groups. You would lose your billing functionality on the level, and it would move into Organization.

Advantages

Disadvantages

  • Adding a higher level creates the problem of migrating that functionality higher up.

Impact on self-managed users

Self-managed users have the Admin panel available to them at the moment. What would their transition into a Organization world look like?

Impact on GitLab.com users

Possible migration scenario

  • Originally a default Organization is created that hosts all top-level groups

    • More Organization can be generated after the introduction and top-level groups can be migrated to their respective Organization
  • Default Organization has a URL /default/xxxxxx, but can be reached without /default as well

    • Similar to how it works today when a project is migrated
    • User gets message to change to /default when accessing from the other version
    • Stats could be collected about how many requests are running on the default Organization without a real namespace
    • These users could be pinged specifically to change
    • Over time, everything would be migrated
    • Then you can change to a new Organization

Open Questions

  • Are URLs changing with the introduction of a Organization?
    • Some part of the infrastructure refers to the URLs
  • Are URLs changing when top-level groups move from one Organization to another?
  • How will inheritance and aggregation work within the Organization?
Edited by Doug Stull