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.