A Kubernetes Custom Resource Definition adds a new resource type to the Kubernetes API.
CRDs let teams model application-specific or platform-specific concepts as Kubernetes resources.
Why use it
CRDs are useful when the built-in Kubernetes resource types are not enough.
For example, an operator may define a resource such as PostgresCluster, Certificate, or Backup.
The CRD defines the API shape. A Kubernetes Controller or Kubernetes Operator usually provides the behavior.