Uninstall gitlab-managed apps
### Problem to solve When a Kubernetes application is no longer needed, there is no way to uninstall from the GitLab integration. ### Intended users developers, operators ### Further details Applications that currently do not offer an upgrade path will be upgradeable by uninstalling and re-installing. Knative will be handled in a separate issue since it follows a separate pattern https://gitlab.com/gitlab-org/gitlab-ce/issues/59369 ### Proposal Provide an uninstall button next to each application installed in the cluster (Operations>>Kubernetes>>ClusterName) 1. When any applications other than Helm are installed, Helm should not be un-installable. User should only be able uninstall Helm when it's the last remaining app in the cluster 1. Uninstall button only avail/visible when application is installed 1. Uninstall of GitLab runner must delete `ci:runner` associated with the project. Additionally, any pipelines currently running should be cancelled. 1. Uninstall of Ingress should delete the associated load balancer. If delete not possible advise user of this. It also must alert user that IP will be lost and cannot be regained. 1. Uninstall of prometheus will delete TSDB database. Users must be alerted all data will be lost. ### Permissions and Security owners or maintainers will be able to uninstall ### Documentation <!-- See the Feature Change Documentation Workflow https://docs.gitlab.com/ee/development/documentation/feature-change-workflow.html Add all known Documentation Requirements here, per https://docs.gitlab.com/ee/development/documentation/feature-change-workflow.html#documentation-requirements --> ### What does success look like, and how can we measure that? Tracking "uninstall" actions here https://gitlab.com/gitlab-org/gitlab-ee/issues/10763 ### Links / references #### Follow Up Issues to uninstall the rest of the applications - https://gitlab.com/gitlab-org/gitlab-ce/issues/60516 /label gitlab-ce~10230929
epic