DevOps Glossary

Kubernetes Custom Resource Definition (CRD)

Kubernetes CRD extends the Kubernetes API with custom resource types, letting teams manage cluster or app state declaratively.

Kubernetes Custom Resource Definition (CRD) is a Kubernetes API extension that lets you define your own resource types and manage them with the same declarative workflow used for built-in objects like Pods, Services, Deployments, and ConfigMaps. In practice, a CRD teaches Kubernetes about a new kind of object, such as Database, BackupPolicy, or Certificate, so teams can create, update, and delete those objects through YAML, kubectl, GitOps, or infrastructure as code. A CRD stores the object schema and API details, while a controller or operator usually watches those custom resources and takes action, such as provisioning a database, rotating a certificate, or configuring cloud infrastructure. CRDs are common in platform engineering because they let teams expose higher-level APIs on top of Kubernetes, but they also add operational responsibility: you need versioning, validation, RBAC, controller reliability, and upgrade planning. They are often used in mature AWS and Kubernetes infrastructure management workflows where teams want consistent, declarative control over application and platform state.