Brussels / 1 & 2 February 2020


From Go to Kubernetes CRDs and Back

Workflow for building strongly typed APIs

Kubernetes is built using Golang. CustomResourceDefinitions are the primary extension points for bringing custom data into a Kubernetes cluster. This hands-on talk is about the workflow of API definitions in Golang, generation of OpenAPI schemas as part of the CRD, client and informer generation and how to use these to process data in real-time using logic implemented in Golang controllers.

This hands-on talk is an introduction to the creation of CustomResource based API extensions for Kubernetes clusters. Following an example project we will

  • define API objects live on stage
  • turn that into CRD definitions with OpenAPI schema
  • install the CRD into a Kubernetes cluster
  • generate typed Golang clients and informers
  • build Golang based realtime logic reacting to changes to the CustomResource objects.

The talk does not require any knowledge about Kubernetes, just some Golang experience for unterstanding API type definitions.


Stefan Schimanski