CRD reference

Field-level reference for the tenantplane custom resources.

All three resources live in the tenantplane.io/v1alpha1 API group. The authoritative definitions are the CRDs in config/crd; this page summarizes the fields.

TenantCluster

FieldTypeNotes
spec.modestringshared | dedicated | private. Only shared implemented.
spec.kubernetesVersionstringRequested tenant version (not yet image-selecting).
spec.isolationProfileRef.namestringReferenced IsolationProfile.
spec.syncPolicyRef.namestringReferenced SyncPolicy.
spec.controlPlane.replicasintControl-plane replicas (single supported).
spec.controlPlane.datastore.typestringsqlite only.
spec.controlPlane.storage.classNamestringStorageClass for the control-plane volume (e.g. gp3 on EKS, managed-csi on AKS, standard-rwo on GKE). Empty = cluster default.
spec.controlPlane.storage.sizestringControl-plane volume size (default 1Gi).
spec.controlPlane.expose.loadBalancerboolPublish the tenant API server via a LoadBalancer Service.
spec.controlPlane.expose.annotationsmapAnnotations for the LoadBalancer Service (cloud-specific behavior).
spec.controlPlane.extraTLSSANs[]stringExtra TLS SANs for the tenant API certificate (e.g. the LB address).
spec.networking.podCIDR / serviceCIDRstringOptional tenant CIDRs.
spec.networking.egressPolicystringEgress posture, e.g. deny-by-default.
spec.migration.allowModeChangeboolWhether mode migration is permitted.
spec.resources.cpu / memorystringControl-plane and quota sizing.
status.phasestringPending/Provisioning/Ready/Degraded.
status.endpointstringIn-cluster tenant API server address once Ready.
status.externalEndpointstringLoad-balancer address once expose.loadBalancer has provisioned.
status.conditions[]listReady, Synced, ModeSupported.

IsolationProfile

FieldTypeNotes
spec.levelstringbaseline | restricted | sandboxed.
spec.controls.podSecuritystringPSA level applied to the namespace.
spec.controls.defaultDenyNetworkPolicyboolCreate a default-deny NetworkPolicy.
spec.controls.requireResourceRequestsboolCreate ResourceQuota + LimitRange.
spec.controls.runtimeClassNamestringOptional runtime class for tenant pods.
spec.controls.blockHostPathVolumesboolPolicy intent (enforcement expanding).
spec.controls.blockPrivilegedContainersboolPolicy intent (enforcement expanding).
spec.controls.apiFairnessstringAPI fairness posture.

SyncPolicy

FieldTypeNotes
spec.conflictPolicystringmanual | tenant-wins | host-wins.
spec.driftDetection.enabledboolWhether drift detection is on.
spec.driftDetection.intervalstringDrift check cadence, e.g. 30s.
spec.explain.recordDecisionsboolRecord a decision per sync action.
spec.explain.retainintHow many decisions to retain.
spec.resources[].apiVersionstringe.g. v1.
spec.resources[].kindstringe.g. Pod, ConfigMap.
spec.resources[].directionstringtoHost (implemented) | fromHost | bidirectional.

Reverse-mapping metadata

Host objects created by the sync engine carry these labels and annotations:

KeyKindMeaning
app.kubernetes.io/managed-by=tenantplanelabelOwnership marker.
tenantplane.io/tenantlabelTenant name.
tenantplane.io/virtual-namespacelabelVirtual namespace (sanitized).
tenantplane.io/kindlabelResource kind.
tenantplane.io/virtual-namespaceannotationVerbatim virtual namespace.
tenantplane.io/virtual-nameannotationVerbatim virtual name.

Found a gap? Open an issue or PR.