Authors: Amine Hilaly, Scott Rigby, Niki Manoledaki, Somtochi Onyekwere, Soulé Ba
Kubernetes controllers are responsible for making the current state of your cluster continue to become closer to your desired state. Have you ever wondered how these built-in controllers work? Or have you ever wanted to write your own controller to manage Custom Resources? In this 90 minute tutorial, we'll walk you through building your own controller using controller runtime, the set of common libraries on which core controllers are built. We'll use Kubebuilder, a framework for building APIs using custom resource definitions (CRDs). We'll also explain lesser-documented best practices and conventions for writing controllers that the community has developed through trial and error learning, through projects such as Flux and Cluster API. Attendees will gain an understanding of what Kubernetes conditions are, how to set and respond to them, and why they matter. We’ll review common pitfalls and additional helper libraries to make writing these easier, more reliable, and enjoyable!