You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Track work to expose per-VirtualMachine backup outcome (succeeded / failed / skipped + reason) after namespace-scoped OADP/Velero backups, especially when Backup.status.phase is PartiallyFailed.
Velero reports failures at the raw Kubernetes object level (Backup.status.errors is a count only; detail is unstructured strings in results.gz). Operators cannot tell which VMs succeeded vs failed without manually correlating PVC/DataVolume/VM plugin errors.
Validated on cluster with a 5-VM namespace backup (3 succeeded, 2 failed stale-config VMs). At hundreds/thousands of VMs this is not operable.
Approach
Phased delivery in oadp-cli (no Velero core changes required for v1):
Generic backup resource rollup engine: parse Velero metadata + walk ownerReferences to group per-item outcomes
kubectl oadp backup resource-status with --group-by=owner:VirtualMachine
kubectl oadp backup vm-status as a convenience alias for OADP-8697
VM support is a preset on a workload-agnostic engine, not bespoke KubeVirt parsing.
Summary
Track work to expose per-VirtualMachine backup outcome (succeeded / failed / skipped + reason) after namespace-scoped OADP/Velero backups, especially when
Backup.status.phaseisPartiallyFailed.Jira: OADP-8697
Design docs: Detailed design is written in the
oadp-operatorrepo (not yet published upstream):docs/design/vm_backup_status-design.md— VM case study + cluster evidencedocs/design/backup_resource_rollup-design.md— generalized approach (preferred)Problem
Velero reports failures at the raw Kubernetes object level (
Backup.status.errorsis a count only; detail is unstructured strings inresults.gz). Operators cannot tell which VMs succeeded vs failed without manually correlating PVC/DataVolume/VM plugin errors.Validated on cluster with a 5-VM namespace backup (
3 succeeded,2 failedstale-config VMs). At hundreds/thousands of VMs this is not operable.Approach
Phased delivery in oadp-cli (no Velero core changes required for v1):
ownerReferencesto group per-item outcomeskubectl oadp backup resource-statuswith--group-by=owner:VirtualMachinekubectl oadp backup vm-statusas a convenience alias for OADP-8697VM support is a preset on a workload-agnostic engine, not bespoke KubeVirt parsing.
Acceptance criteria (OADP-8697)
succeeded/failed/skipped) for a completed/partially-failed backup-o json/-o yaml) for downstream automationownerReferencesfallback)Implementation issues
pkg/backuprollup)backup resource-status+vm-status(depends on Implement backup resource rollup library (Velero metadata + ownerReference graph) #270)Out of scope (v1)
Example target UX