Sugarkube is an orchestrator that lets you create ephemeral Kubernetes clusters. With only a few commands you can launch and configure a Kubernetes cluster, install all your applications into it and create any required infrastructure. This lets you spin up and tear down clusters on-demand which is incredibly powerful. Sugarkube lets you automate the creation of Kubernetes clusters 100%. That includes setting up your cloud accounts (e.g. creating S3 buckets, encryption keys, DNS, etc.) and tearing it all down when you’re done.
A core design goal was ensuring that Sugarkube is flexible. You can use existing Kubernetes clusters and use Sugarkube to deploy your applications and infrastructure, keeping them in lock-step. It orchestrates other tools (commonly Helm, Terraform, Kops, etc.) but doesn’t tie you in to any of them. It also supports multiple accounts, regions and cloud providers.
Sugarkube is open source (Apache 2.0 licenced) and is ready for use by early adopters. Installation is easy because it’s a single golang binary. It’s easy for devs to use and to embed in CI/CD pipelines.
Sugarkube’s most ambitious usecase is to be able to launch and configure a Kubernetes cluster then install all your applications into it after creating any required infrastructure to do this. The deliverable unit becomes the entire cluster itself rather than individual applications. Clusters become cattle not pets.
Software development is complicated. Typically developers are under pressure to ship products, and release pipelines are often bolted on afterwards or contain limiting assumptions. Sometimes a proof-of-concept becomes the first production version, along with any hacks it contains. Decisions that made sense at the start of a project don’t make sense as the project evolves, and practices that worked for a team of 2 devs at the start of a project can destroy velocity – either when the team scales up or key developers leave.
Even recreating a new cluster can be difficult – things need installing in the correct order, infrastructure may need creating and its requirements may change as applications evolve. Solving the dependency ordering issue can be challenging. For example if you actually drew out the dependencies for even a simple cluster it might look like this:
All this to just install 2 applications with some monitoring! As you can see, it’s not a trivial task and things need installing or deleting in a specific order.
This is actually one of our example clusters, and Sugarkube can create it from scratch and tear it down again in minutes. You can try it yourself by following our tutorial.
Automating 100% of your cluster deployment and easily allowing replicas to be created gives teams the freedom and flexibilty to experiment as the project evolves. Frequently creating and tearing down clusters automatically tests disaster recovery processes and gives total assurance that no manual changes have crept into clusters. The result is often increased agility and a more robust codebase. And your dev team will probably thank you for it too.