More advanced use case, but if you ever wanted to write operators to manage lifecycle of multiple kube clusters, cluster-api is something you want to look into: https://cluster-api.sigs.k8s.io
Goals:
- To manage the lifecycle (create, scale, upgrade, destroy) of Kubernetes-conformant clusters using a declarative API.
- To work in different environments, both on-premises and in the cloud.
- To define common operations, provide a default implementation, and provide the ability to swap out implementations for alternative ones.
- To reuse and integrate existing ecosystem components rather than duplicating their functionality (e.g. node-problem-detector, cluster autoscaler, SIG-Multi-cluster).
- To provide a transition path for Kubernetes lifecycle products to adopt Cluster API incrementally. Specifically, existing cluster lifecycle management tools should be able to adopt Cluster API in a staged manner, over the course of multiple releases, or even adopting a subset of Cluster API.
OpenShift uses cluster-api in it’s Machine API Operator: https://github.com/openshift/machine-api-operator