message: only a single instance of Non-Admin Controller can be installed across the entire cluster. Non-Admin controller is already configured and installed in openshift-adp namespace.
Configure and manage OADP Self-Service by enabling the feature, reviewing backup storage location requests, and enforcing policy templates. This helps you provide Self-Service backup capabilities while maintaining administrative control.
Enable or disable the OADP Self-Service feature to allow namespace administrators to manage their own backup and restore operations without cluster admin privileges. This helps you delegate backup responsibilities while maintaining administrative control.
|
You can install only one instance of the
|
You are logged in to the cluster with the cluster-admin role.
You have installed the OADP Operator.
You have configured the DPA.
To enable OADP Self-Service, edit the DPA CR to configure the nonAdmin.enable section. See the following example configuration:
DataProtectionApplication CRapiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: oadp-backup
namespace: openshift-adp
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- aws
- openshift
- csi
defaultSnapshotMoveData: true
nonAdmin:
enable: true
backupLocations:
- velero:
config:
profile: "default"
region: noobaa
s3Url: https://s3.openshift-storage.svc
s3ForcePathStyle: "true"
insecureSkipTLSVerify: "true"
provider: aws
default: true
credential:
key: cloud
name: <cloud_credentials>
objectStorage:
bucket: <bucket_name>
prefix: oadp
where:
nonAdminSpecifies the section in the spec section of the DPA to enable or disable the Self-Service feature.
enableSpecifies whether to enable the Self-Service feature. Set to true to enable the feature. Set to false to disable the feature.
To verify that the NonAdminController (NAC) pod is running in the OADP namespace, run the following command:
$ oc get pod -n openshift-adp -l control-plane=non-admin-controller
NAME READY STATUS RESTARTS AGE
non-admin-controller-5d....f5-p..9p 1/1 Running 0 99m
Enable the administrator approval workflow for NonAdminBackupStorageLocation custom resource to review backup storage location requests from namespace administrators before they are applied. This helps you maintain control over backup storage configurations.
You are logged in to the cluster with the cluster-admin role.
You have installed the OADP Operator.
You have enabled OADP Self-Service in the DataProtectionApplication CR.
To enable the NABSL administrator approval workflow, edit the DPA CR by using the following example configuration:
DataProtectionApplication CRapiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: oadp-backup
namespace: openshift-adp
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- aws
- openshift
- csi
noDefaultBackupLocation: true
nonAdmin:
enable: true
requireApprovalForBSL: true
where:
noDefaultBackupLocationSpecifies that there is no default backup storage location configured in the DPA CR. Set to true to enable the namespace admin user to create a NABSL CR and send the CR request for approval.
requireApprovalForBSLSpecifies whether the NABSL administrator approval workflow is enabled. Set to true to enable the approval workflow.
Approve NonAdminBackupStorageLocation (NABSL) custom resource requests from namespace administrators to grant access to their specified backup storage locations. This enables self-service backup and restore operations for namespace resources.
You are logged in to the cluster with the cluster-admin role.
You have installed the OADP Operator.
You have enabled OADP Self-Service in the DataProtectionApplication (DPA) CR.
You have enabled the NABSL CR approval workflow in the DPA.
To see the NABSL CR requests that are in queue for administrator approval, run the following command:
$ oc -n openshift-adp get NonAdminBackupStorageLocationRequests
NAME REQUEST-PHASE REQUEST-NAMESPACE REQUEST-NAME AGE
non-admin-bsl-test-.....175 Approved non-admin-bsl-test incorrect-bucket-nabsl 4m57s
non-admin-bsl-test-.....196 Approved non-admin-bsl-test perfect-nabsl 5m26s
non-admin-bsl-test-s....e1a Rejected non-admin-bsl-test suspicious-sample 2m56s
non-admin-bsl-test-.....5e0 Pending non-admin-bsl-test waitingapproval-nabsl 4m20s
To approve the NABSL CR request, set the approvalDecision field to approve by running the following command:
$ oc patch nabslrequest <nabsl_name> -n openshift-adp --type=merge -p '{"spec": {"approvalDecision": "approve"}}'
Replace <nabsl_name> with the name of the NonAdminBackupStorageLocationRequest CR.
Verify that the Velero backup storage location is created and the phase is Available by running the following command:
$ oc get velero.io.backupstoragelocation
NAME PHASE LAST VALIDATED AGE DEFAULT
test-nac-test-bsl-cd...930 Available 62s 62s
Reject NonAdminBackupStorageLocation (NABSL) custom resource (CR) requests from namespace administrators to deny access to backup storage locations that do not meet requirements. This helps you maintain security and compliance standards.
You are logged in to the cluster with the cluster-admin role.
You have installed the OADP Operator.
You have enabled OADP Self-Service in the DataProtectionApplication (DPA) CR.
You have enabled the NABSL CR approval workflow in the DPA.
To see the NABSL CR requests that are in queue for administrator approval, run the following command:
$ oc -n openshift-adp get NonAdminBackupStorageLocationRequests
$ oc get nabslrequest
NAME REQUEST-PHASE REQUEST-NAMESPACE REQUEST-NAME AGE
non-admin-bsl-test-.....175 Approved non-admin-bsl-test incorrect-bucket-nabsl 4m57s
non-admin-bsl-test-.....196 Approved non-admin-bsl-test perfect-nabsl 5m26s
non-admin-bsl-test-s....e1a Rejected non-admin-bsl-test suspicious-sample 2m56s
non-admin-bsl-test-.....5e0 Pending non-admin-bsl-test waitingapproval-nabsl 4m20s
To reject the NABSL CR request, set the approvalDecision field to reject by running the following command:
$ oc patch nabslrequest <nabsl_name> -n openshift-adp --type=merge -p '{"spec": {"approvalDecision": "reject"}}'
Replace <nabsl_name> with the name of the NonAdminBackupStorageLocationRequest CR.
Enforce policy templates in the DataProtectionApplication (DPA) custom resource (CR) to control NonAdminBackup, NonAdminRestore, and NonAdminBackupStorageLocation custom resources created by namespace administrators. This helps you maintain compliance standards.
The cluster administrator can enforce a company, or a compliance policy by using the following fields in the DataProtectionApplication (DPA) CR:
enforceBSLSpecTo enforce a policy on the NonAdminBackupStorageLocation CR.
enforceBackupSpecTo enforce a policy on the NonAdminBackup CR.
enforceRestoreSpecTo enforce a policy on the NonAdminRestore CR.
By using the enforceable fields, administrators can ensure that the NABSL, NAB, and NAR CRs created by a namespace admin user, comply with the administrator defined policy.
Enforce specific fields in NonAdminBackupStorageLocation (NABSL) custom resource (CR) to control storage bucket, credentials, configuration, access mode, and validation settings used by namespace administrators. This helps you maintain organizational policies.
You can enforce the following fields for a NABSL:
objectStorage
credential
config
accessMode
validationFrequency
For example, if you want to enforce a namespace admin user to use a specific storage bucket, you can set up the DataProtectionApplication (DPA) CR as following:
DataProtectionApplication CRapiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
...
spec:
nonAdmin:
enable: true
enforceBSLSpec:
config:
checksumAlgorithm: ""
profile: default
region: us-west-2
objectStorage:
bucket: my-company-bucket
prefix: velero
provider: aws
where:
enforceBSLSpecSpecifies the section to enforce policies for the NonAdminBackupStorageLocation CR.
configSpecifies the configuration to enforce for the NABSL. In this example, it enforces the use of an AWS S3 bucket in the us-west-2 region.
objectStorageSpecifies the object storage settings to use a company bucket named my-company-bucket.
When a namespace admin user creates a NABSL, they must follow the template set up in the DPA. Otherwise, the status.phase field on the NABSL CR is set to BackingOff and the NABSL fails to create.
Enforce specific fields in NonAdminBackup (NAB) custom resource (CR) to control timeout settings, resource policies, label selectors, snapshot configurations, and time-to-live values used by namespace administrators. This helps you maintain backup standards.
You can enforce the following fields for a NAB CR:
csiSnapshotTimeout
itemOperationTimeout
resourcePolicy
includedResources
excludedResources
orderedResources
includeClusterResources
excludedClusterScopedResources
excludedNamespaceScopedResources
includedNamespaceScopedResources
labelSelector
orLabelSelectors
snapshotVolumes
ttl
snapshotMoveData
uploaderConfig.parallelFilesUpload
If you want to enforce a ttl value and a Data Mover backup for a namespace admin user, you can set up the DataProtectionApplication (DPA) CR as shown in the following example:
DataProtectionApplication CRapiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
...
spec:
nonAdmin:
enable: true
enforceBackupSpec:
snapshotMoveData: true
ttl: 158h0m0s
where:
enforceBackupSpecSpecifies the section to enforce policies for the NonAdminBackup CR.
snapshotMoveDataSpecifies whether to enforce Data Mover. Set to true to enforce Data Mover backups.
ttlSpecifies the time-to-live value to enforce for backups. In this example, it is set to 158h0m0s.
When a namespace admin user creates a NAB CR, they must follow the template set up in the DPA. Otherwise, the status.phase field on the NAB CR is set to BackingOff and the NAB CR fails to create.
Enforce specific fields in NonAdminRestore (NAR) custom resource (CR) to control timeout settings, resource policies, label selectors, persistent volume restoration, and node port configurations used by namespace administrators. This helps you maintain restore standards.
You can enforce the following fields for a NAR CR:
itemOperationTimeout
uploaderConfig
includedResources
excludedResources
restoreStatus
includeClusterResources
labelSelector
orLabelSelectors
restorePVs
preserveNodePorts