DevOps Glossary

Custom Resource Definition (CRD)

A Kubernetes API extension that lets you define new resource types so you can manage your own custom components like built-in Kubernetes objects.

Custom Resource Definition (CRD) is a Kubernetes API extension that lets you add your own resource types to a cluster so they can be created, updated, and queried like built-in objects such as Pods or Services. A CRD registers a new “kind” with the API server and defines its schema, which enables Kubernetes-native behaviors like field validation, versioning, and storage in etcd; a controller or operator then watches these custom resources and reconciles them, meaning it continuously applies the underlying changes needed to match the desired state you declared.

With a CRD, teams can express platform or application intent as first-class Kubernetes objects and automate lifecycle workflows consistently across environments, while without it they often fall back to scripts or external systems that are harder to standardize, audit, and keep in sync with cluster state. This gap exists because Kubernetes can only manage resources it understands through its API, and CRDs are how you teach it new primitives.