- Restored pods no longer fail to connect because of retained OVN network annotations
-
Before this update, Velero restored pods with the k8s.ovn.org/pod-networks annotation preserved from the source cluster. As a consequence, OVN-Kubernetes skipped allocating new network configurations, resulting in stale IP assignments, subnet mismatches, and lost network connectivity for restored pods. With this release, the k8s.ovn.org/pod-networks annotation is automatically stripped during restore operations. As a result, OVN-Kubernetes successfully re-allocates fresh logical ports and IP addresses to restored pods, ensuring proper network connectivity.
- DPA reconciliation no longer fails when credentials are defined only in
CloudStorage
-
Before this update, the DataProtectionApplication (DPA) reconciliation required credentials to be explicitly specified in the DPA custom resource (CR) even when the credentials were provided in the CloudStorage CR. With this release, the DPA controller inherits credentials, configuration values, and region settings from the referenced CloudStorage CR when using backupLocations.bucket.cloudStorageRef. If both DPA-level and CloudStorage-level values are provided, DPA-level values take precedence. As a result, DPA reconciliation no longer fails due to missing credentials in DPA CR.
- Backup hooks are no longer skipped on dynamically injected pods when using
labelSelector
-
Before this update, Velero evaluated backup hooks by using the backup’s top-level label selector. As a consequence, pods dynamically added to a backup by plugins by using AdditionalItems were skipped during hook execution if they did not directly match labelSelector. This resulted in crash-consistent or potentially corrupt backups. With this release, plugin adjustments ensure that dynamic pod items properly call configured pre- and post-backup hooks regardless of whether the pod itself carries the primary backup label. As a result, dynamically included pods run backup hooks as expected.
- OADP workload pods use dedicated service accounts
-
Before this update, the oadp-cli-server workload pods in the openshift-adp namespace used the default service account instead of dedicated, workload-specific service accounts. As a consequence, access control validation checks failed during deployment verification. With this release, dedicated and valid service accounts are properly assigned to these workload pods. As a result, all OADP workload pods comply with access control verification and adhere to cluster security standards.
- OADP CLI server pod uses a dedicated service account with no cross-namespace
RoleBindings
-
Before this update, the oadp-cli-server pod was deployed with an empty or default serviceAccountName without properly scoped role bindings. As a consequence, role bindings used by a pod did not reside within the same workload namespace. With this release, the OADP Operator creates a dedicated openshift-adp-cli-server service account with automountServiceAccountToken: false and no cross-namespace RoleBindings. As a result, the OADP CLI server pod runs with a correctly scoped, least-privilege service account in the openshift-adp namespace.
NetworkAttachmentDefinitions are backed up as part of VM backups
-
Before this update, when backing up a virtual machine (VM) with an attached NetworkAttachmentDefinition (NAD), the NAD was not included in the backup. With this release, the Velero kubevirt plugin includes NADs in the resource graph (KVGraph) for VM backups. It also correctly updates the namespace references inside the NAD configuration during alternate-namespace restores. As a result, backing up a VM successfully backs up all attached NADs.
- OADP containers include liveness, readiness, and startup probes
-
Before this update, the OADP command-line interface (CLI) container did not have configured Kubernetes health probes (liveness, readiness, and startup probes). As a consequence, workloads could not automatically recover from common failures, such as pod, host, or network issues. With this release, the OADP Operator adds liveness, readiness, and startup probes to the deployed containers. As a result, workloads can use native Kubernetes health-checking mechanisms to self-recover from failures and ensure reliable application traffic routing.