diff --git a/backup_and_restore/application_backup_and_restore/installing/installing-oadp-aws.adoc b/backup_and_restore/application_backup_and_restore/installing/installing-oadp-aws.adoc index d3b2250563..89a8a058ff 100644 --- a/backup_and_restore/application_backup_and_restore/installing/installing-oadp-aws.adoc +++ b/backup_and_restore/application_backup_and_restore/installing/installing-oadp-aws.adoc @@ -54,8 +54,12 @@ include::modules/oadp-installing-dpa-1-3.adoc[leveloffset=+1] include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2] include::modules/oadp-configuring-aws-md5sum.adoc[leveloffset=+1] include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1] +include::modules/oadp-configuring-node-agent-load-affinity.adoc[leveloffset=+1] +include::modules/oadp-node-agent-load-affinity-guidelines.adoc[leveloffset=+1] include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1] include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1] +include::modules/oadp-configuring-repository-maintenance.adoc[leveloffset=+1] +include::modules/oadp-configuring-velero-load-affinity.adoc[leveloffset=+1] include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1] include::modules/oadp-configuring-dpa-multiple-bsl.adoc[leveloffset=+1] include::modules/oadp-enabling-csi-dpa.adoc[leveloffset=+2] diff --git a/backup_and_restore/application_backup_and_restore/installing/installing-oadp-azure.adoc b/backup_and_restore/application_backup_and_restore/installing/installing-oadp-azure.adoc index 5e342c9d16..0d435bf933 100644 --- a/backup_and_restore/application_backup_and_restore/installing/installing-oadp-azure.adoc +++ b/backup_and_restore/application_backup_and_restore/installing/installing-oadp-azure.adoc @@ -39,10 +39,14 @@ include::modules/oadp-using-ca-certificates-with-velero-command.adoc[leveloffset // include::modules/oadp-installing-dpa-1-2-and-earlier.adoc[leveloffset=+1] include::modules/oadp-installing-dpa-1-3.adoc[leveloffset=+1] include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1] +include::modules/oadp-configuring-node-agents.adoc[leveloffset=+1] +include::modules/oadp-configuring-node-agent-load-affinity.adoc[leveloffset=+1] +include::modules/oadp-node-agent-load-affinity-guidelines.adoc[leveloffset=+1] include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1] include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1] +include::modules/oadp-configuring-repository-maintenance.adoc[leveloffset=+1] +include::modules/oadp-configuring-velero-load-affinity.adoc[leveloffset=+1] include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1] -include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2] include::modules/oadp-enabling-csi-dpa.adoc[leveloffset=+2] include::modules/oadp-about-disable-node-agent-dpa.adoc[leveloffset=+2] diff --git a/backup_and_restore/application_backup_and_restore/installing/installing-oadp-gcp.adoc b/backup_and_restore/application_backup_and_restore/installing/installing-oadp-gcp.adoc index 1e8a760dd2..e4d090139b 100644 --- a/backup_and_restore/application_backup_and_restore/installing/installing-oadp-gcp.adoc +++ b/backup_and_restore/application_backup_and_restore/installing/installing-oadp-gcp.adoc @@ -42,10 +42,14 @@ include::modules/oadp-using-ca-certificates-with-velero-command.adoc[leveloffset include::modules/oadp-gcp-wif-cloud-authentication.adoc[leveloffset=+1] include::modules/oadp-installing-dpa-1-3.adoc[leveloffset=+1] include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1] +include::modules/oadp-configuring-node-agents.adoc[leveloffset=+1] +include::modules/oadp-configuring-node-agent-load-affinity.adoc[leveloffset=+1] +include::modules/oadp-node-agent-load-affinity-guidelines.adoc[leveloffset=+1] include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1] include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1] +include::modules/oadp-configuring-repository-maintenance.adoc[leveloffset=+1] +include::modules/oadp-configuring-velero-load-affinity.adoc[leveloffset=+1] include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1] -include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2] include::modules/oadp-enabling-csi-dpa.adoc[leveloffset=+2] include::modules/oadp-about-disable-node-agent-dpa.adoc[leveloffset=+2] diff --git a/backup_and_restore/application_backup_and_restore/installing/installing-oadp-ibm-cloud.adoc b/backup_and_restore/application_backup_and_restore/installing/installing-oadp-ibm-cloud.adoc index fb2b7c140d..fcd6ac6bef 100644 --- a/backup_and_restore/application_backup_and_restore/installing/installing-oadp-ibm-cloud.adoc +++ b/backup_and_restore/application_backup_and_restore/installing/installing-oadp-ibm-cloud.adoc @@ -26,8 +26,16 @@ include::modules/oadp-setting-resource-limits-and-requests.adoc[leveloffset=+1] include::modules/oadp-configuring-node-agents.adoc[leveloffset=+1] // include the module for client burst and qps config include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1] +// include module for load affinity setting +include::modules/oadp-configuring-node-agent-load-affinity.adoc[leveloffset=+1] +// include module for load affinity guidelines +include::modules/oadp-node-agent-load-affinity-guidelines.adoc[leveloffset=+1] // include module for loadConcurrency setting include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1] +// include module for repo maintenance setting +include::modules/oadp-configuring-repository-maintenance.adoc[leveloffset=+1] +// include module for velero load affinity setting +include::modules/oadp-configuring-velero-load-affinity.adoc[leveloffset=+1] // include module for image pull policy setting include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1] // include the module for configuring multiple BSL diff --git a/backup_and_restore/application_backup_and_restore/installing/installing-oadp-kubevirt.adoc b/backup_and_restore/application_backup_and_restore/installing/installing-oadp-kubevirt.adoc index bcd4c0821f..48c3072336 100644 --- a/backup_and_restore/application_backup_and_restore/installing/installing-oadp-kubevirt.adoc +++ b/backup_and_restore/application_backup_and_restore/installing/installing-oadp-kubevirt.adoc @@ -49,10 +49,14 @@ include::modules/oadp-backup-single-vm.adoc[leveloffset=+1] include::modules/oadp-restore-single-vm.adoc[leveloffset=+1] include::modules/oadp-restore-single-vm-from-multiple-vm-backup.adoc[leveloffset=+1] include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1] -include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1] include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1] +include::modules/oadp-configuring-node-agents.adoc[leveloffset=+1] +include::modules/oadp-configuring-node-agent-load-affinity.adoc[leveloffset=+1] +include::modules/oadp-node-agent-load-affinity-guidelines.adoc[leveloffset=+1] +include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1] +include::modules/oadp-configuring-repository-maintenance.adoc[leveloffset=+1] +include::modules/oadp-configuring-velero-load-affinity.adoc[leveloffset=+1] include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1] -include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2] include::modules/oadp-incremental-backup-support.adoc[leveloffset=+1] [IMPORTANT] diff --git a/backup_and_restore/application_backup_and_restore/installing/installing-oadp-mcg.adoc b/backup_and_restore/application_backup_and_restore/installing/installing-oadp-mcg.adoc index c1ddcff67a..cb8bd6ba38 100644 --- a/backup_and_restore/application_backup_and_restore/installing/installing-oadp-mcg.adoc +++ b/backup_and_restore/application_backup_and_restore/installing/installing-oadp-mcg.adoc @@ -43,10 +43,14 @@ include::modules/oadp-using-ca-certificates-with-velero-command.adoc[leveloffset // include::modules/oadp-installing-dpa-1-2-and-earlier.adoc[leveloffset=+1] include::modules/oadp-installing-dpa-1-3.adoc[leveloffset=+1] include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1] +include::modules/oadp-configuring-node-agents.adoc[leveloffset=+1] +include::modules/oadp-configuring-node-agent-load-affinity.adoc[leveloffset=+1] +include::modules/oadp-node-agent-load-affinity-guidelines.adoc[leveloffset=+1] include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1] include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1] +include::modules/oadp-configuring-repository-maintenance.adoc[leveloffset=+1] +include::modules/oadp-configuring-velero-load-affinity.adoc[leveloffset=+1] include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1] -include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2] include::modules/oadp-enabling-csi-dpa.adoc[leveloffset=+2] include::modules/oadp-about-disable-node-agent-dpa.adoc[leveloffset=+2] diff --git a/backup_and_restore/application_backup_and_restore/installing/installing-oadp-ocs.adoc b/backup_and_restore/application_backup_and_restore/installing/installing-oadp-ocs.adoc index af89ee126e..3b1e7dafe0 100644 --- a/backup_and_restore/application_backup_and_restore/installing/installing-oadp-ocs.adoc +++ b/backup_and_restore/application_backup_and_restore/installing/installing-oadp-ocs.adoc @@ -48,10 +48,14 @@ include::modules/oadp-using-ca-certificates-with-velero-command.adoc[leveloffset // include::modules/oadp-installing-dpa-1-2-and-earlier.adoc[leveloffset=+1] include::modules/oadp-installing-dpa-1-3.adoc[leveloffset=+1] include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1] +include::modules/oadp-configuring-node-agents.adoc[leveloffset=+1] +include::modules/oadp-configuring-node-agent-load-affinity.adoc[leveloffset=+1] +include::modules/oadp-node-agent-load-affinity-guidelines.adoc[leveloffset=+1] include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1] include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1] +include::modules/oadp-configuring-repository-maintenance.adoc[leveloffset=+1] +include::modules/oadp-configuring-velero-load-affinity.adoc[leveloffset=+1] include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1] -include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2] include::modules/oadp-creating-object-bucket-claim.adoc[leveloffset=+2] include::modules/oadp-enabling-csi-dpa.adoc[leveloffset=+2] include::modules/oadp-about-disable-node-agent-dpa.adoc[leveloffset=+2] diff --git a/modules/oadp-configuring-node-agent-load-affinity.adoc b/modules/oadp-configuring-node-agent-load-affinity.adoc new file mode 100644 index 0000000000..49130f96ac --- /dev/null +++ b/modules/oadp-configuring-node-agent-load-affinity.adoc @@ -0,0 +1,63 @@ +// Module included in the following assemblies: +// +// * backup_and_restore/application_backup_and_restore/installing/installing-oadp-aws.adoc + +:_mod-docs-content-type: PROCEDURE +[id="oadp-configuring-node-agent-load-affinity_{context}"] += Configuring node agent load affinity + +[role="_abstract"] +You can schedule the node agent pods on specific nodes by using the `spec.podConfig.nodeSelector` object of the `DataProtectionApplication` (DPA) custom resource (CR). + +See the following example in which you can schedule the node agent pods on nodes with the label `label.io/role: cpu-1` and `other-label.io/other-role: cpu-2`. + +[source,yaml] +---- +... +spec: + configuration: + nodeAgent: + enable: true + uploaderType: kopia + podConfig: + nodeSelector: + label.io/role: cpu-1 + other-label.io/other-role: cpu-2 + ... +---- + +You can add more restrictions on the node agent pods scheduling by using the `nodeagent.loadAffinity` object in the DPA spec. + +.Prerequisites + +* You must be logged in as a user with `cluster-admin` privileges. +* You have installed the {oadp-short} Operator. +* You have configured the DPA CR. + +.Procedure + +* Configure the DPA spec `nodegent.loadAffinity` object as shown in the following example. ++ +In the example, you ensure that the node agent pods are scheduled only on nodes with the label `label.io/role: cpu-1` and the label `label.io/hostname` matching with either `node1` or `node2`. ++ +[source,yaml] +---- +... +spec: + configuration: + nodeAgent: + enable: true + loadAffinity: # <1> + - nodeSelector: + matchLabels: + label.io/role: cpu-1 + matchExpressions: # <2> + - key: label.io/hostname + operator: In + values: + - node1 + - node2 + ... +---- +<1> Configure the `loadAffinity` object by adding the `matchLabels` and `matchExpressions` objects. +<2> Configure the `matchExpressions` object to add restrictions on the node agent pods scheduling. \ No newline at end of file diff --git a/modules/oadp-configuring-node-agent-load-concurrency.adoc b/modules/oadp-configuring-node-agent-load-concurrency.adoc index 8ff8752fe1..3ab0cbe79f 100644 --- a/modules/oadp-configuring-node-agent-load-concurrency.adoc +++ b/modules/oadp-configuring-node-agent-load-concurrency.adoc @@ -36,6 +36,7 @@ $ oc label node/ label.io/instance-type='large' configuration: nodeAgent: enable: true + uploaderType: kopia loadConcurrency: globalConfig: 1 # <1> perNodeConfig: diff --git a/modules/oadp-configuring-repository-maintenance.adoc b/modules/oadp-configuring-repository-maintenance.adoc new file mode 100644 index 0000000000..1f01eee13f --- /dev/null +++ b/modules/oadp-configuring-repository-maintenance.adoc @@ -0,0 +1,68 @@ +// Module included in the following assemblies: +// +// * backup_and_restore/application_backup_and_restore/installing/installing-oadp-aws.adoc + +:_mod-docs-content-type: PROCEDURE +[id="oadp-configuring-repository-maintenance_{context}"] += Configuring repository maintenance + +[role="_abstract"] +{oadp-short} repository maintenance is a background job, you can configure it independently of the node agent pods. This means that you can schedule the repository maintenance pod on a node where the node agent is or is not running. + +You can use the repository maintenance job affinity configurations in the `DataProtectionApplication` (DPA) custom resource (CR) only if you use Kopia as the backup repository. + +You have the option to configure the load affinity at the global level affecting all repositories. Or you can configure the load affinity for each repository. You can also use a combination of global and per-repository configuration. + + +.Prerequisites + +* You must be logged in as a user with `cluster-admin` privileges. +* You have installed the {oadp-short} Operator. +* You have configured the DPA CR. + +.Procedure + +* Configure the `loadAffinity` object in the DPA spec by using either one or both of the following methods: +** Global configuration: Configure load affinity for all repositories as shown in the following example: ++ +[source,yaml] +---- +... +spec: + configuration: + repositoryMaintenance: # <1> + global: # <2> + podResources: + cpuRequest: "100m" + cpuLimit: "200m" + memoryRequest: "100Mi" + memoryLimit: "200Mi" + loadAffinity: + - nodeSelector: + matchLabels: + label.io/gpu: 'no' + matchExpressions: + - key: label.io/location + operator: In + values: + - US + - EU +---- +<1> Configure the `repositoryMaintenance` object as shown in the example. +<2> Use the `global` object to configure load affinity for all repositories. + +** Per-repository configuration: Configure load affinity per repository as shown in the following example: ++ +[source,yaml] +---- +... +spec: + configuration: + repositoryMaintenance: + myrepositoryname: # <1> + loadAffinity: + - nodeSelector: + matchLabels: + label.io/cpu: 'yes' +---- +<1> Configure the `repositoryMaintenance` object for each repository. \ No newline at end of file diff --git a/modules/oadp-configuring-velero-load-affinity.adoc b/modules/oadp-configuring-velero-load-affinity.adoc new file mode 100644 index 0000000000..e584e76cc6 --- /dev/null +++ b/modules/oadp-configuring-velero-load-affinity.adoc @@ -0,0 +1,57 @@ +// Module included in the following assemblies: +// +// * backup_and_restore/application_backup_and_restore/installing/installing-oadp-aws.adoc + +:_mod-docs-content-type: PROCEDURE +[id="oadp-configuring-velero-load-affinity_{context}"] += Configuring Velero load affinity + +[role="_abstract"] +With each {oadp-short} deployment, there is one Velero pod and its main purpose is to schedule Velero workloads. To schedule the Velero pod, you can use the `velero.podConfig.nodeSelector` and the `velero.loadAffinity` objects in the `DataProtectionApplication` (DPA) custom resource (CR) spec. + +Use the `podConfig.nodeSelector` object to assign the Velero pod to specific nodes. You can also configure the `velero.loadAffinity` object for pod-level affinity and anti-affinity. + +The OpenShift scheduler applies the rules and performs the scheduling of the Velero pod deployment. + + +.Prerequisites + +* You must be logged in as a user with `cluster-admin` privileges. +* You have installed the {oadp-short} Operator. +* You have configured the DPA CR. + +.Procedure + +* Configure the `velero.podConfig.nodeSelector` and the `velero.loadAffinity` objects in the DPA spec as shown in the following examples: +** `velero.podConfig.nodeSelector` object configuration: ++ +[source,yaml] +---- +... +spec: + configuration: + velero: + podConfig: + nodeSelector: + some-label.io/custom-node-role: backup-core +---- + +** `velero.loadAffinity` object configuration: ++ +[source,yaml] +---- +... +spec: + configuration: + velero: + loadAffinity: + - nodeSelector: + matchLabels: + label.io/gpu: 'no' + matchExpressions: + - key: label.io/location + operator: In + values: + - US + - EU +---- diff --git a/modules/oadp-node-agent-load-affinity-guidelines.adoc b/modules/oadp-node-agent-load-affinity-guidelines.adoc new file mode 100644 index 0000000000..fa88e7a418 --- /dev/null +++ b/modules/oadp-node-agent-load-affinity-guidelines.adoc @@ -0,0 +1,34 @@ +// Module included in the following assemblies: +// +// * backup_and_restore/application_backup_and_restore/installing/installing-oadp-aws.adoc + +:_mod-docs-content-type: CONCEPT +[id="oadp-node-agent-load-affinity-guidelines_{context}"] += Node agent load affinity guidelines + +[role="_abstract"] +Use the following guidelines to configure the node agent `loadAffinity` object in the `DataProtectionApplication` (DPA) custom resource (CR). + +* Use the `spec.nodeagent.podConfig.nodeSelector` object for simple node matching. +* Use the `loadAffinity.nodeSelector` object without the `podConfig.nodeSelector` object for more complex scenarios. +* You can use both `podConfig.nodeSelector` and `loadAffinity.nodeSelector` objects, but the `loadAffinity` object must be equal or more restrictive as compared to the `podConfig` object. In this scenario, the `podConfig.nodeSelector` labels must be a subset of the labels used in the `loadAffinity.nodeSelector` object. +* You cannot use the `matchExpressions` and `matchLabels` fields if you have configured both `podConfig.nodeSelector` and `loadAffinity.nodeSelector` objects in the DPA. +* See the following example to configure both `podConfig.nodeSelector` and `loadAffinity.nodeSelector` objects in the DPA. ++ +[source,yaml] +---- +... +spec: + configuration: + nodeAgent: + enable: true + uploaderType: kopia + loadAffinity: + - nodeSelector: + matchLabels: + label.io/location: 'US' + label.io/gpu: 'no' + podConfig: + nodeSelector: + label.io/gpu: 'no' +---- \ No newline at end of file