CRD Design Best Practices

Custom resources: design for evolution.

Schema

CRD design is the discipline of producing well-formed Custom Resource Definitions. Good CRDs validate inputs, separate desired from observed state, and evolve cleanly. Poor CRDs produce confusion, breakage, and operational burden.

What schema design provides:

Schema design is the foundation. Good schemas produce good APIs; poor schemas produce confused users.

Status

The Kubernetes pattern separates spec from status. Spec is what the user requested (desired state); status is what is observed (actual state). The separation is fundamental to Kubernetes' reconciliation model.

Spec/status separation is the Kubernetes-native pattern. Following it produces resources that feel native.

Evolve

CRDs evolve over time. Versioning conventions and conversion webhooks support evolution; the discipline is planning for change before launch.

CRD design is one of those Kubernetes platform engineering disciplines that pays off across the CRD's lifetime. Nova AI Ops integrates with custom resources, surfaces usage patterns, and supports teams operating CRD-driven platforms.