Terraform framework for platform engineering teams
Kubestack is an open-source Terraform framework designed to help practitioners building internal platforms get the most out of Kubernetes. Your custom platform stack integrates one or more managed Kubernetes clusters (AKS, EKS and GKE) with the platform services your users need, codified in one unified Terraform code base. Kubestack’s GitOps driven workflow validates every change against an environment not running application workloads before the change is promoted. This gives platform engineers the foundation to move fast with confidence.
Modern cloud native platforms are complex solutions consisting of many different components that require seamless integration. Platform engineering teams need a way to reliably maintain and continuously evolve their product.
To build the best product possible, like any product team, platform engineering teams need full control over all aspects of their solution. And given the inherent complexity, this is only possible when leveraging infrastructure as code and automation.
Because platform teams face all the same challenges that all teams building software products and providing them as a service face, it makes sense to adapt proven solutions from the more mature software engineering ecosystems. Frameworks are a well established pattern in the application development field because they provide tested, reusable implementations of common components, foster a unified approach across a jointly owned code base, speed up time to value and reduce long term maintenance effort.
Kubestack exists to bring these same framework benefits to the platform engineering world.
Kubestack is focused on allowing platform engineering teams to define and evolve the foundation of their platform. It strongly encourages a clear boundary between the platform layer and the application layer.
You would use Kubestack to codify the infrastructure and services that make up your platform and define its features. You would not use Kubestack to deploy application workloads.
As an example, the platform team would use Kubestack to provision ArgoCD or Flux on all clusters of your platform and integrate it with your Github or Gitlab. Then application teams can use ArgoCD or Flux to deploy their applications.
Kubestack is based on over a decade of hands-on experience building and operating cloud native platforms ranging from public PaaS to enterprise Kubernetes in senior positions at cloud providers, enterprise software vendors and professional services companies.
It is actively used by companies from start-ups to Fortune 500 enterprises in diverse industries from fintech to traditional banking and fast moving consumer goods to car manufacturing to build self-service developer platforms that power mission critical applications.
The open-source Apache 2.0 licensed Kubestack framework has been actively developed and maintained since Dec 2018 by its creator with contributions from the framework's users.
Kubestack maintains reusable Terraform modules for platform infrastructure and services that define your platform’s components in a single, native Terraform code base that is easy to extend.
All modules are purpose-built to support Kubestack’s GitOps driven automation workflow for teams that leverages inheritance based configuration to avoid drift between environments and validates changes before they are promoted to the environment that runs application workloads.
The Kubestack framework and tooling is actively used by its maintainers and contributors to build their internal Kubernetes platforms and is constantly improved to be easy and enjoyable to work with.