OpenShift Operator: GitLab performance testing
Set up test environment and run GPT against it to validate GitLab performance on OpenShift.
High-level architecture overview
Outlining my understanding on what should be done to build hybrid OpenShift operator environment:
- Building stateless Kubernetes components using OpenShift Operator - webservice, sidekiq and supporting services (ngnix, toolbox)
- Building stateful components in GCP - Gitaly, DB, Redis and other listed in RA
- Connect components from OpenShift cluster to be able to reach GCP VMs and vice versa
Plan
- Start building hybrid env using smaller specs than 25k to speed up building and debugging
- Verify that GitLab instance is working as expected
- Once the MVC is working build 25k cloud native hybrid following the https://docs.gitlab.com/ee/administration/reference_architectures/25k_users.html#cloud-native-hybrid-reference-architecture-with-helm-charts-alternative specs
- Run GPT against it
- Analyse results ->
✅ #749 (comment 1264792790) - Debug functional issue =>
✅ #749 (comment 1291991916)
Step 1 - MVC Implementation
Planning to follow 2k hybrid recommendations for MVC and initial debugging:
- stateless - OpenShift Operator: webservice, sidekiq and supporting nodes
- stateful - GCP: PostgreSQL, Redis, Gitaly VMs
To build an MVC env planning to do the following:
- Create stateful components using GET and Terraform
- Configure GitLab on stateful components in the following order - common tasks, postgres, redis, gitaly
- Create OpenShift cluster - following https://gitlab.com/gitlab-org/cloud-native/gitlab-operator/-/blob/master/doc/developer/openshift_cluster_setup.md
- 3 node groups: webservice, sidekiq and support
- Create secrets in cluster - using GitLab Rails secrets generated in stateful components in
gitlab-secrets.json
file- Perhaps existing
ansible/roles/gitlab_charts
can be tweaked to avoid manually configuring secrets?
- Perhaps existing
- Install GitLab Operator - following https://gitlab.com/gitlab-org/cloud-native/gitlab-operator/-/blob/master/doc/developer/installation.md
- Need to prepare custom chart values to only deploy stateless services - webservice, sidekiq and support
- Need to compile chart values using stateful components data and secrets (like PG leader IP)
- Perform post configure tasks - install license
Step 2 - Building 25k Cloud Native Hybrid with OpenShift
Using MVC knowledge, build and test 25k CNH - #749 (comment 1263759936)
Edited by Nailia Iskhakova