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:
- CloudBees Folders plugin
- To allow folders to be created that namespace the jobs
- Role Strategy plugin
- To restrict which groups have access to the different namespaces
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