# ============================================================================= # CDI CR — Tells the CDI operator to install CDI components into the cluster. # ============================================================================= # After cdi-operator.yaml is applied, the operator watches for THIS resource # (CDI named "cdi"). When found, it deploys cdi-apiserver, cdi-deployment, # cdi-uploadproxy, cdi-cronjob, and the importer/uploadserver/cloner pods. # # Configuration: # - HonorWaitForFirstConsumer: PVCs created by DataVolumes wait for first # pod to schedule before binding (lets storage class pick best node). # - WebhookPvcRendering: validates PVC creation against CDI policies. # - imagePullPolicy IfNotPresent: re-pull only on tag rotation. # - nodeSelector linux: pin to Linux nodes (no Windows worker support). # # Andrew may want to add a `uploadProxyURLOverride` later to expose the # uploadproxy via Traefik IngressRoute for `virtctl image-upload` from # BLUEJAY-WS without `kubectl port-forward`. Phase 2 enhancement. # ============================================================================= apiVersion: cdi.kubevirt.io/v1beta1 kind: CDI metadata: name: cdi annotations: bluejay.iamworkin.lan/source: "kubevirt/containerized-data-importer v1.65.0" spec: config: featureGates: - HonorWaitForFirstConsumer - WebhookPvcRendering imagePullPolicy: IfNotPresent infra: nodeSelector: kubernetes.io/os: linux workload: nodeSelector: kubernetes.io/os: linux