Backup config for GitLab Managed Clusters
Problem to solve
In Kubernetes, containers and nodes are intended to be templated pluggable objects. If one dies, you simply spin up a new one from the previous config. What about the same concept for Clusters?
As a user if my cluster dies or becomes unusable I want to be able to recreate it from that last known working config.
For self-managed clusters this seems doable, for GitLab managed clusters (e.g. GKE integration installed or with GitLab managed apps) The permissions may not be accessible to the user in order to create the cluster config.
Internal use case: Demos
Today any long-running demo needs to either keep a cluster attached running (costing money) or needs to completely re-create and re-install apps (costing time) when a cluster is needed to give a demo after previously shutting down the cluster.
As a GitLab Demo-giver I want to be able to keep a demo project ready without needing a live cluster attached. I want to be able to quickly add a cluster with all the necessary config shortly before needing to give the demo. I then want to destroy the cluster to save cost and IP space when my demo isn't specifically in use.
Intended users
- Sasha (Software Developer)
- Devon (DevOps Engineer)
- Sidney (Systems Administrator)
- GitLab Internal Users: Product, Customer Success, and Technical Marketing
Further details
Goals
- Increased Kubernetes integration utilization. Assumption: People not well-versed in Kubernetes who use the GitLab Managed features give up if their cluster dies or breaks because of the barrier to recreating. By making it easy to backup and restore most people will use Kubernetes clusters with GitLab.
- Easier maintenance and cost savings for GitLab demos.
Proposal
Create a backup and restore mechanism for Kubernetes clusters.
Permissions and Security
Same as existing create cluster permissions.