|
| 1 | +# Advanced Configuration for the Data Movement |
| 2 | + |
| 3 | +This guide provides instructions for configuring intermediate PVC behavior used during backup and restore workflows in OADP via the Data Protection Application (DPA) Custom Resource Definition (CRD). |
| 4 | + |
| 5 | +The settings introduced here provide control over how NodeAgent handles intermediate persistent volumes used in data movement operations. |
| 6 | + |
| 7 | +The following sections describe how to configure: |
| 8 | + |
| 9 | +- `backupPVC` |
| 10 | +- `restorePVC` |
| 11 | + |
| 12 | +These settings are defined under the `.spec.configuration.nodeAgent` section of the DPA CRD. |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +## 1. Configuring backupPVC for Snapshot Data Movement |
| 17 | + |
| 18 | +The `backupPVC` field allows you to define behavior for intermediate PVCs used during snapshot-to-object-store data movement. You can configure multiple storage classes, each with specific parameters. |
| 19 | + |
| 20 | +Each storage class block within backupPVC supports the following fields: |
| 21 | + |
| 22 | +- `storageClass` – the name of the storage class to use for the intermediate PVC. |
| 23 | +- `readOnly` – indicates if the PVC should be mounted as read-only. In some storage providers this can significantly reduce the performance when creating the backup from the snapshot. Setting this option to true requires `spcNoRelabeling` to be set to true as well. |
| 24 | +- `spcNoRelabeling` – disables automatic relabeling of the SecurityContextConstraints if set to true. It must be set to true when `readOnly` is set to true. |
| 25 | + |
| 26 | +Please refer to the Velero documentation for more details on the `backupPVC` feature. In the OADP project, this feature is controlled via the `nodeAgent.backupPVC` field in the DPA CRD, not through a ConfigMap. The latter is automatically created and managed by the OADP controller for you: [BackupPVC Configuration for Data Movement Backup](https://velero.io/docs/main/data-movement-backup-pvc-configuration/). |
| 27 | + |
| 28 | + |
| 29 | +Example Configuration |
| 30 | + |
| 31 | +The following example configures two storage classes: `gp3-csi` and `another-storage-class`. The gp3-csi PVC is mounted read-write, while `another-storage-class` is mounted read-only. |
| 32 | + |
| 33 | +```yaml |
| 34 | +spec: |
| 35 | + configuration: |
| 36 | + nodeAgent: |
| 37 | + enable: true |
| 38 | + backupPVC: |
| 39 | + another-storage-class: |
| 40 | + readOnly: true |
| 41 | + spcNoRelabeling: true # required when readOnly is true |
| 42 | + storageClass: gp3-csi |
| 43 | + gp3-csi: |
| 44 | + readOnly: false |
| 45 | + spcNoRelabeling: false |
| 46 | + storageClass: gp3-csi |
| 47 | +``` |
| 48 | +
|
| 49 | +
|
| 50 | +
|
| 51 | +## 2. Configuring restorePVC for Snapshot Data Movement |
| 52 | +
|
| 53 | +The `restorePVC` field sets the behavior of intermediate PVCs used during restore operations. Currently, it supports a single option: |
| 54 | + |
| 55 | +- `ignoreDelayBinding` – when set to true, the data movement restore will bypass waiting for storage with WaitForFirstConsumer binding mode and proceed with restore PVC scheduling. |
| 56 | + |
| 57 | +This can help avoid delays in cluster environments with custom scheduler configurations or in cases where prompt restore is preferred. |
| 58 | + |
| 59 | +Example Configuration |
| 60 | + |
| 61 | +```yaml |
| 62 | +spec: |
| 63 | + configuration: |
| 64 | + nodeAgent: |
| 65 | + enable: true |
| 66 | + restorePVC: |
| 67 | + ignoreDelayBinding: true |
| 68 | +``` |
| 69 | + |
| 70 | +Please refer to the Velero documentation for more details on the `restorePVC` feature. In the OADP project, this feature is controlled via the `nodeAgent.restorePVC` field in the DPA CRD, not through a ConfigMap. The latter is automatically created and managed by the OADP controller for you: [RestorePVC Configuration for Data Movement Restore](https://velero.io/docs/v1.16/data-movement-restore-pvc-configuration/). |
0 commit comments