Advanced setting to delete all GitLab k8s resources on cluster removal
Problem to solve
Grooming (21:20s): https://drive.google.com/file/d/1aBwuqOekkmBon-oUp8a8d7Gne4lLQnZo/view?usp=sharing
Currently, removing a cluster from a GitLab project/group/instance does not clear out any of the resources created by GitLab. If user wants to re-use the cluster, they will receive errors related to attempting to create resources that already exist.
Target audience
-
Sasha, Software Developer, https://design.gitlab.com/research/personas#persona-sasha
-
Devon, DevOps Engineer, https://design.gitlab.com/research/personas#persona-devon
Further details
-
When developers are experimenting/learning how the GitLab Kubernetes integration works, they may re-use the same cluster in different projects to run experiments.
-
I want to remove resources installed by GitLab but I want to keep using my cluster for other purposes (and not have to delete the cluster)
Use case:
- As a DevOps engineer, I might have added my existing cluster with other deployments / data in the cluster.
- I then added my existing cluster to GitLab as a trial
- I then want to keep my existing cluster but remove GitLab installed resources
- Maybe I can then re-use the cluster in another GitLab project / group.
See also gl-retrospectives/configure#6 (comment 139636658)
Proposal
Add a split button in the Advanced section of the cluster page that includes an option to remove the integration and all resources or simply remove the integration. Removing the integration and resources is the default option.
Removing resources removes:
- all installed applications (from GitLab DB and on the cluster itself)
- remove
gitlab-managed-apps
namespace - remove project namespace(s)
- remove
clusterroles
created by GitLab - remove
clusterrolebindings
created by GitLab - if Knative present, remove all Knative-related resources
Clicking this option brings up a confirmation modal:
To remove the integration and resources, a user must enter the name of the cluster in the input.
Because removing the resources can take a while, we will redirect the user to the cluster overview page and show a loading indicator with a tooltip. The cluster detail view is no longer available (see follow up issue https://gitlab.com/gitlab-org/gitlab-ce/issues/66728)
Once the cluster has been removed/resources deleted, we show a toast notifying the user: