konstructio / kubefirst

The Kubefirst Open Source Platform
https://kubefirst.konstruct.io/docs
MIT License
1.81k stars 142 forks source link

Deploy Kubefirst as a Kubernetes Operator to Enable Broad Distribution Support #2181

Open codespearhead opened 6 months ago

codespearhead commented 6 months ago

What is your feature idea?

I've noticed that many of the reported issues in this repository are related to the provision of new Kubernetes (k8s) clusters during the installation process of Kubefirst, rather than to the Kubefirst Platform itself.

This is primarily because you currently need to provision the final cluster through the Kubefirst installer [1]. Additionally, the sidebar at [1] states that you already need to have a k8s cluster to deploy the Kubefirst installer on, so you can then create the final k8s cluster.

I wonder how viable it would be to streamline the process by creating a k8s Operator instead. This change would not only simplify the deployment and upgrade processes of Kubefirst, but also standardize its installation, which is an approach similar projects like Kubero and Rainbond have adopted.

Using a Kubernetes Operator would enable Kubefirst to support any conformant k8s distribution, meaning that as long as you already have an existing conformant cluster, you can deploy Kubefirst on it. This makes Kubefirst both cloud-agnostic and distribution-agnostic, allowing deployment on any local or cloud-based conformant k8s distribution.


[1] https://github.com/kubefirst/docs/blob/027e90cb320b2fa0dce4033233decf438918f7a9/docs/common/faq.mdx#can-i-install-kubefirst-on-an-existing-cluster

Why is it needed?

Is this missing feature preventing you from using kubefirst?

Code of Conduct

fharper commented 6 months ago

Thanks for the idea @codespearhead. I'll let @johndietz or @jarededwards comment on this one.

johndietz commented 6 months ago

I think we agree philosophically with everything said here. Thanks for your careful considerations @codespearhead. Our next breaking generation of our installer will implement a more composable gitops model so that ci systems, secrets systems, iac systems, etc can be implemented with a stronger contract so that kubefirst can offer more optionality for core platform technologies. When we implement that v3 ecosystem, we will heavily consider the operator framework with a bias in favor of the pattern. This is not likely until the end of 24Q3 or so for your planning.