Home

CustomResourceDefinition

A CustomResourceDefinition, or CRD, is a Kubernetes API extension that enables users to introduce new custom resource types to the cluster. By defining a CRD, you register a new resource kind that behaves like built‑in Kubernetes objects, allowing clients to create, read, update, and delete instances of that type. CRDs are stored as objects in the Kubernetes API server under the apiextensions.k8s.io API group.

A CRD specifies the shape and behavior of the custom resource. Its spec includes the resource group,

The lifecycle of a CRD is integral to its use. A CRD must be established by the

CRDs support versioning and validation, and, in newer configurations, can include schema validation and subresources. They

one
or
more
versions
with
details
such
as
served
and
storage
flags,
and
an
OpenAPI
v3
schema
for
validation.
It
also
defines
the
resource’s
scope
(Namespaced
or
Cluster),
and
the
names
used
to
refer
to
the
resource
(plural,
singular,
kind,
and
shortNames).
Optional
features
include
subresources
like
status
and
scale,
additionalPrinterColumns
for
kubectl
output,
and
conversion
settings
for
multiple
versions.
API
server
before
any
custom
resources
of
that
type
can
be
created.
Once
established,
users
can
create
Custom
Resources
that
conform
to
the
CRD’s
schema.
Typically,
a
controller
or
operator
watches
those
resources
and
acts
to
reconcile
the
current
state
with
the
desired
state
described
by
the
custom
resources.
are
primarily
a
mechanism
to
extend
Kubernetes
with
domain‑specific
resources
without
modifying
the
core
API.