Architecture - Project Namespacing

Project namespacing is implemented in several of the tools across the platform where it makes sense to subdivide to prevent collisions and also to support multi-tenancy.

Namespacing involves the following two concepts:

  • Workspaces
    • Contain one or more projects
  • Projects
    • Contain one or more loaded cartridges

The following tools support namespacing:

Jenkins

Namespacing in Jenkins is achieved using:

Gerrit

Namespacing in Gerrit is achieved by:

  • Creating repositories within directories that are aligned with the namespacing in Jenkins
  • Creating a project-specific permissions repository that restricts access to all repositories within that project