// Module included in the following assemblies:
//
// * backup_and_restore/application_backup_and_restore/release-notes/oadp-upgrade-notes-1-6.adoc
:_mod-docs-content-type: CONCEPT

[id="changes-from-oadp-1-5-to-1-6_{context}"]
= Changes from {oadp-short} 1.5 to 1.6

[role="_abstract"]
The Velero server has been updated from version 1.16 to 1.18.

This brings the following changes:

Parallel backup processing::
{oadp-short} supports parallel backup processing. Before this update, {oadp-short} processed backups sequentially where each backup had to complete before the next one could begin. This created bottlenecks for environments with many backup schedules or large-scale data protection needs, increasing the overall time required to complete all backup operations. With this release, multiple backups can run in parallel if they do not share namespaces. As a result, you can now define more granular or frequent backup schedules without worrying about queuing delays.

File-level restore with VMFR from KubeVirt virtual machine backups::
{oadp-short} introduces the virtual machine file restore (VMFR) feature. Before this release, restoring even a single file from a KubeVirt VM backup required restoring the entire VM, which was time-consuming and resource-intensive. With this release, you can selectively recover individual files from KubeVirt VM backups directly within {product-title}. VMFR also includes `RestoreItemAction`, a plugin for collision prevention in multi-backup scenarios. This plugin renames PVCs during restore, ensuring unique names and avoiding conflicts, thereby improving the reliability and efficiency of VMFR backups and restores.

File-level backups with VMDP in OpenShift Virtualization environments::
{oadp-short} introduces the virtual machine data protection (VMDP) feature, a command-line tool that runs inside virtual machines (VMs). Before this update, {oadp-short} supported only snapshot-based backup of entire VMs, with no option for granular, user-driven file-level data protection from within a VM. Using VMDP, you can selectively back up and restore individual files and directories by using a Kopia-based client/server architecture without cluster administrator intervention.

{oadp-short} CLI plugin::
{oadp-short} includes a `kubectl` command-line interface (CLI) plugin that provides a `kubectl` native interface for managing backups and restores. Before this update, you aliased to the Velero CLI to perform backup operations. Non-cluster administrators had no way to independently manage their own backups, creating a dependency on cluster admins for routine data protection tasks. As a result, admins can run `kubectl oadp` commands to create, delete, and retrieve logs for backups and restores. Non-cluster admins can independently create, delete, and inspect non-admin backups within their permitted namespaces.

Configurable priority class for node agent and Velero pods::
With this update, you can configure the `priorityClassName` field for node agent and Velero pods in a `DataProtectionApplication` object, prioritizing these pods during resource contention. This is particularly useful after worker node outages, ensuring critical pods are scheduled first.


Wildcard support for namespace selection during backup operations::
You can use wildcard patterns when specifying namespaces in backup operations. Before this update, you had to explicitly list every namespace in the backup object and update it each time a new namespace was created. With this release, you can use patterns such as `*-helm` in the `--include-namespaces` flag to dynamically match multiple namespaces, simplifying backup management and reducing manual configuration overhead.

`VolumeSnapshotClass` no longer required for CSI backup and restore::
The Container Storage Interface (CSI) backup and restore process no longer includes or requires the `VolumeSnapshotClass` resource. Before this update, the `VolumeSnapshotClass` was included in CSI backups and needed to be present during restore, adding an unnecessary dependency. With this update, CSI snapshot-based backups and restores complete successfully without `VolumeSnapshotClass` in the cluster, simplifying the backup resource footprint and improving restore reliability in environments where the `VolumeSnapshotClass` might not be pre-configured.

Optimized Data Mover performance in containerized environments with new Go version::
With the migration to Go 1.25, the Data Mover defaults the `MaxParallelFileReads` value to the `cgroup` CPU bandwidth limit corresponding to the container CPU limit rather than the total number of CPU cores on the node. Before this update, `MaxParallelFileReads` used the full CPU count of the node unless `datamoverConfig.ParallelFilesUpload` was explicitly set in the node-agent-config map, which could lead to overuse of resources in constrained container environments. With this update, Data Mover operations automatically respect container CPU limits, improving resource efficiency and stability without requiring manual configuration changes.

Changing PVC selected-node is removed::
The Changing PVC selected-node feature, which allowed overriding the `volume.kubernetes.io/selected-node` annotation to change the node selected for a persistent volume claim (PVC) during restore, is removed and is no longer supported. You can ensure PVCs are scheduled to the correct node by using the native Kubernetes `WaitForFirstConsumer` volume binding mode instead.
