G/co/crd/setup 🔥
kubectl apply -f my-backup.yaml List your custom resources:
Use kubectl replace --force if needed, but prefer apply for declarative management. Conclusion Setting up a CRD — following the g/co/crd/setup approach — is straightforward once you understand the steps: define, apply, verify, and use. CRDs unlock the true extensibility of Kubernetes, letting you model your infrastructure exactly how your team needs it.
Double-check the schema section in your CRD — the structure must match exactly. g/co/crd/setup
Now go ahead, create your first custom resource, and extend your cluster’s API with confidence.
kubectl get crd | grep databasebackups kubectl explain databasebackup You should see your new resource type available. Now that the CRD exists, create an instance of your custom resource ( my-backup.yaml ): kubectl apply -f my-backup
apiVersion: stable.example.com/v1 kind: DatabaseBackup metadata: name: nightly-backup spec: backupSchedule: "0 2 * * *" retentionDays: 7 Apply it:
kubectl apply -f my-resource-crd.yaml To follow the g/co/crd/setup pattern, you could wrap this in a script or Makefile: Double-check the schema section in your CRD —
apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: databasebackups.stable.example.com spec: group: stable.example.com versions: - name: v1 served: true storage: true schema: openAPIV3Schema: type: object properties: spec: type: object properties: backupSchedule: type: string retentionDays: type: integer scope: Namespaced names: plural: databasebackups singular: databasebackup kind: DatabaseBackup shortNames: - dbb Use kubectl to apply your CRD: