logo

From Tweet to BadIdea: Creating an Embeddable Kubernetes Style API Server

Authors:   Jason DeTiberus


Summary

The presentation discusses the process of building a minimal and embeddable Kubernetes style API Server with CRD support to remove the Kubernetes cluster dependency and avoid difficult bootstrapping issues when building infrastructure management tooling.
  • CRDs provide a lot of value for building out applications quickly, but they come with a dependency on Kubernetes which can be problematic for certain types of applications
  • The goal is to build a minimal API server capable of supporting CRDs that can be embedded into the application itself and avoid exposing unnecessary ports and command line arguments
  • Existing tooling in the space falls into several categories, but none of them fully meet the requirements for this project
  • The presenter attempted to prototype the idea and it seems possible to achieve
  • The project aims to support standalone and bootstrapping use cases and leverage the actual community code wherever possible
The presenter started down this rabbit hole after putting out a call on Twitter asking if it would be possible to build a minimal Kubernetes style API server that supports CRDs without the dependency on an existing Kubernetes cluster. The presenter wanted to avoid difficult bootstrapping issues when building infrastructure management tooling and solve the chicken and egg scenario of managing infrastructure before it exists. The presenter also wanted to avoid exposing unnecessary ports and command line arguments and reinventing any new unnecessary wheels.

Abstract

Kubernetes Custom Resource Definitions (CRDs) have made building Kubernetes-style declarative APIs easy. However they depend on an existing Kubernetes cluster, which can lead to difficult bootstrapping issues when building infrastructure management tooling. Would it be possible to remove the Kubernetes cluster dependency by piecing together the components that Kubernetes itself uses to implement the features needed to support CRDs? This talk explores the process of attempting to do just that through the process of building a minimal and embeddable Kubernetes style API Server with CRD support.

Materials:

Tags:

Post a comment

Related work


Authors: Amine Hilaly, Scott Rigby, Niki Manoledaki, Somtochi Onyekwere, Soulé Ba
2022-10-26


Authors: Jason DeTiberus, Marcel Müller

Authors: Stephen Kitt, Rob Scott, Laura Lorenz, Mike Morris
2023-04-21

Authors: Hasan Türken, Muvaffak Onus
2022-05-20