navigation

Sugarkube – Ephemeral Kubernetes Clusters

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.

Benefits of Sugarkube

  • Fully reproducible cluster builds and deployments. 100% automated Kubernetes cluster deployments
  • The type of cluster is an implementation detail, making it easy to move between e.g Minikube, Kops, EKS, etc.
  • Developers can create temporary dev environments or replicas of other clusters
  • Promote code through multiple environments from local Minikube clusters to cloud environments
  • Version your applications and dependent infrastructure code together
  • Simplify upgrades by launching a brand new cluster, migrating traffic and tearing the old one down
  • Test in-place upgrades by launching a replica of an existing cluster to test the upgrade before repeating it in production
  • Increase agility by making it easier to rearchitect your systems
  • Frequently test your disaster recovery processes as a by-product for no extra effort
  • Gradually adopt Sugarkube – you don’t need to invest months to start using it

Why?

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:

Dependencies

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.

Get started

The quickest way to see what Sugarkube can do is to follow a tutorial. Alternatively you can learn what kapps are and then browse our ready-made kapps and sample project.

Get in touch

For any questions or comments, please use this form to contact us. Please report bugs on Github.