Support disabling certain components
Based on the values that are provided, there should be a validation if a resource should be created.
As an example, the self-signed certs job is only reconciled if certain values are configured.
Conversely, most of the other resources in the reconcile loop are reconciled always. This could cause problems if a user disabled a component, such as Registry. The reconcile loop would expect to find Registry-related objects in the Helm template, but they won't exist due to the values provided.
Details
| Chart | Should | Can |
|---|---|---|
| Self-signed certs | y | y |
| Migrations | y | n |
| NGINX | y | y |
| Gitaly | y | y |
| MinIO | y | y |
| Redis | y | y |
| PostgreSQL | y | y |
| Pages | y | y |
| GitLab shell | y | n |
| Task-Runner | y | n |
| Exporter | n | n |
| Webservice | y | n |
| Sidekiq | y | n |
| Registry | y | n |
Acceptance criteria
-
The GitLab controller checks the Helm values first to confirm that a component should be included before reconciling it -
(Testing the above) Disabling a component such as Registry a.) does not crash the GitLab Operator with a nilerror, and b.) does not attempt to reconcile Registry-related objects (can also test with other components) -
All components except for Webservice, Sidekikq, and Migrations can be disabled (!238 (merged)) -
Webservice, Sidekiq and Migrations can be disabled (!287 (merged))
Edited by Mitchell Nielsen