K8s controllers observe resources for changes, diff the actual vs. desired state, and act to reconcile any differences. Controllers watch relevant resources and minimize reaction time. The sample controller observes Foos by adding handlers, diffs by comparing Foos to Deployments, and acts by creating Deployments if not found or updating status. CustomResourceDefinitions allow extending the Kubernetes API. Operators implement Day 1 and 2 operations for applications through Kubernetes APIs and concepts. Kubebuilder is a framework for building operators.