Understanding Custom Resource Definitions and custom controllers
Understanding the concept of Custom Resource Definitions (CRDs) and custom controllers in Kubernetes is vital to know how Crossplane works. Before getting into the Crossplane architecture, we will take a quick look at CRDs and custom controllers.
Terminology
The term resources in Kubernetes represents a collection of objects of a similar kind. Pods, Services, Deployments, namespaces, and many more are the in-built object kinds. Each resource has the respective API endpoints at kube-apiserver.
CRDs are the way to extend the in-built resources list. It adds a new resource kind, including a set of API endpoints at kube-apiserver, to operate over the new resource. The term CRD precisely indicates what it does. The new resource added to Kubernetes using a CRD is called a Custom Resource (CR). Storing and retrieving a structured object defined with a CRD is not helpful unless backed by a custom controller. Custom controllers...