Spike: Scope the minimum GitLab instance and identify its requirements
Summary
The minimum GitLab instance is the smallest possible deployment of GitLab. Defining it has two key criteria:
-
It only has the minimum core features and any component that is required to deliver those services. For example:
- Workhorse
- Puma
- Sidekiq
- Gitaly
GitLab Shell
-
Its major backend dependencies are provided by external services. It means that these dependencies are not managed by GitLab Operator. Including:
- PostgreSQL
- Redis
- Object store
- Ingress controller
With this criteria and based on GitLab architecture, we need to:
- Define a scope for features and components that can constitute a minimum GitLab instance and used for developing a proof of concept for GitLab Operator.
- Propose a deployment and configuration model for the minimum GitLab instance that does not depend on GitLab Chart.
Acceptance Criteria
-
Scope of minimum GitLab instance id defined. Which components and features are included and which are not. -
A deployment manifest draft for the defined scope above which shows the orchestration and configuration of components. This can be a Docker Compose file or a Kubernetes manifest.
Timebox
Limit the exploration to maximum of two days. This is not due date but the time to make a decision on the path forward and the feasibility of the solution.
References
Edited by Hossein Pursultani