Skip to main content

Feature maturity registry

Levels used by Zorvia (also exposed at GET /api/v1/features when the API is running):

LevelMeaning
GAReal backend, persistence, RBAC, tests, upgrade path
BetaOperational with documented limitations
ExperimentalBehind ZORVIA_EXPERIMENTAL=1; no production promise
Model onlyInternal types / demos — not marketed as working

Current matrix (0.3.3+)​

IDFeatureLevelNotes
vm-lifecycleVM create/start/stop/deleteGAKubeVirt + server RBAC
snapshots-restoreSnapshots & restoreGAEmpty-disk caveat in docs
live-migrationLive migrationGANeeds shared storage
web-consoleWeb console + authGAJWT + tokens; OIDC opt-in
audit-trailAudit trailGASQLite (or PostgreSQL) + GET /api/audit/export JSONL; optional ZORVIA_AUDIT_JSONL sidecar (per replica)
pod-opsPods: logs, exec, events, YAML, restart/deleteBetacluster.admin only; pods delete + pods/log + pods/exec RBAC; exec, restart and delete audited — PODS.md
rescue-modeRescue mode: hostname/SSH-key/enable-SSH via a Job-mounted diskBetacluster.admin only; 3 of 5 UI operations wired (reset-password, install-packages, inspect deferred); needs on-cluster verification of the mounted PVC's disk-image path before trusting it against a production VM — RESCUE.md
schedulersBackup/power/alert/warm-poolBetaLease election; in-process
rook-storageRook-Ceph managementBetaBootstrap SA optional
atlas-storageAtlas storage integration: inventory, backend/RBD/object-store lifecycle, AI insights, observability, governance, DataBridgeBetaOptional, gated on ATLAS_URL; storage.admin; disaster recovery is scaffolding on Atlas's own side — unverified without a 2nd real Ceph cluster — see ATLAS_INTEGRATION.md
postgres-storePostgreSQL store and two active replicasBetaUsers/tokens, operations, audit and JSON documents in PostgreSQL; values-ha.yaml runs two replicas. Live-verified on a single-node lab; DB failover, leader failover under load and node-loss RTO not measured; commercial records and the JSONL sidecar stay per replica — POSTGRES.md, HA.md
guest-agent-integrationZyvor guest agent: install, guest views, snapshot hooks, drill probeBetaDebian-family guests; read-only method set; freeze needs the drop-in Zorvia writes; Windows/RPM and real DB-flush hooks not verified — GUEST_AGENT.md
helm-chartHelm chartBetaLab + hardened production values
oidcOIDC / SSOBetaZORVIA_OIDC_ENABLED=1 + PKCE/JWKS; lab bake-off OIDC_LAB.md
ai-troubleshootAI troubleshootingModel onlyRules demo, not ML RCA
dr-replicationDR replication pairsModel onlyIn-memory; needs experimental
incremental-backupIncremental backup fieldsModel onlyExecutions still full snapshots
s3-immutable-backupOff-cluster S3 backups, restore, recovery drills, key checkBetaVerified live end to end on two CSI drivers (Rook-Ceph RBD with Filesystem and Block volumes; the Kubernetes hostpath driver) on KubeVirt 1.9 / CDI 1.66 with an Atlas-provisioned RGW bucket: encrypted upload with read-back, restore with identical SHA-256, recovery drill with serial-console boot proof, encryption-key check. Limits: single-node lab, one Kubernetes/KubeVirt/CDI version, Object Lock not yet run on RGW (earlier on SeaweedFS), drills do no application-level checks — see SUPPORT_MATRIX.md and docs/OFFCLUSTER_BACKUP.md
cross-cluster-drCross-cluster DRExperimentalPlan API only
transiva-migrationTransiva migrationExperimentalPlan API only; superseded by vm-import-h2kvm
vm-import-h2kvmVMware → KubeVirt import via h2kvm JobsExperimentalAdmin console, fail-closed preflight, explicit target NIC mapping, guarded cutover, boot policy, data-preserving cancellation; needs ZORVIA_H2KVM_IMAGE; not yet exercised against a real vCenter
golden-image-pipelineGolden-image pipelineExperimentalPlan + POST …/golden-pipeline/run (CDI apply); scan/sign deferred
gpu-sriov-numaGPU/SR-IOV/NUMAExperimentalGPU/host-device passthrough and SR-IOV interfaces at VM create with a scheduling preflight, device and SR-IOV pool inventory, permit/remove of devices in the KubeVirt CR (cluster.admin; Helm devices.managePermitted), NUMA/dedicated-CPU/hugepage placement with node checks (DEVICES.md); unit-tested and checked against a real KubeVirt API on a lab with no GPU or SR-IOV hardware, so not run on real devices. Placement-advisor planning stays a plan API
fleet-multiclusterFleet multi-clusterExperimentalLive read-only nodes/VM inventory and admin console; explicit enrollment, partial results and freshness; real multi-cluster validation pending; see docs/FLEET.md

Set ZORVIA_EXPERIMENTAL=1 only in non-production environments to exercise model-only / experimental surfaces. See PHASE5_ENTERPRISE.md for env flags and endpoints.