I'm exploring the idea of building an application stack to handle dynamic deployments, where I can manage various applications composed of compute and storage. My goal is to create a management application that allows users to provision and manage their applications easily—without the need for any Git operations. This application would feature a web interface where users could authenticate and perform CRUD operations on their deployments, potentially spread across multiple clusters. While I've considered using something like ArgoCD, I prefer a solution that isn't tied to GitOps. I'm envisioning a system similar to cloud provider control planes, like AWS EC2, that can spin up VMs on demand. I'd love to hear if anyone has suggestions for existing solutions or insights into building something that meets these requirements.
7 Answers
I'm looking into KRO for defining the applications we deploy. It's also possible to leverage the operator pattern, though KRO might simplify things. I’d have my app interact with the KRO API and handle some light user data in a database as well.
Have you considered Fleet? It might offer what you're looking for in managing those deployments.
Why don't you just utilize Argo’s UI? It has extensive features, and with the right permissions set up, developers could create apps easily—just like you described.
Not all end users will be developers, though. An even simpler, more user-friendly interface would be ideal, something like a basic AWS console.
You can store manifests in an OCI registry or a storage bucket, and Flux can handle that. If you package it as a Helm chart, you'll be able to deploy a single manifest with values. Alternatively, you might build a custom controller for more flexibility in deployment.
You might want to check out Crossplane or consider building a Kubernetes controller. They allow you to choose between GitOps or API-based interactions based on your preference.
Could you expand on that? Sounds like you're on the right track, aiming for a control plane that wraps around Kubernetes.
Have you thought about abstracting the Git actions? ArgoCD does this pretty well, letting you manage deployments without directly interacting with Git.
I really want to avoid using Git entirely for management. I might deal with several clients on different clusters, and the management app will need to support that, including potentially air-gapped clusters.
What about using tools like Kustomize or Helm? They can certainly help define resources more effectively.
Sure, I can use those to template resources, but how do I deploy them? Is there a straightforward way to manage CRUD operations without running Helm each time a user wants to deploy?

KRO has great potential, but it's still unstable. Crossplane or Kubevela might be safer bets for reliable management.