owned this note
owned this note
Published
Linked with GitHub
# OADP 1.4 self-service tests
### OADP-633 [OADP-633](https://polarion.engineering.redhat.com/polarion/#/project/OADP/workitem?id=OADP-633)
```
INFO[0029] Found ClusterServiceVersion "openshift-adp/oadp-operator.v1.4.6" phase: Pending
INFO[0034] Found ClusterServiceVersion "openshift-adp/oadp-operator.v1.4.6" phase: InstallReady
INFO[0035] Found ClusterServiceVersion "openshift-adp/oadp-operator.v1.4.6" phase: Installing
INFO[0056] Found ClusterServiceVersion "openshift-adp/oadp-operator.v1.4.6" phase: Succeeded
INFO[0056] OLM has successfully installed "oadp-operator.v1.4.6"
whayutin@fedora:~/OPENSHIFT/git/OADP/oadp-operator$ git branch
foo
oadp-dev
* wes-oadp-1.4-onboard-nac
```
```
apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
creationTimestamp: "2025-09-26T16:05:26Z"
generation: 1
name: dpa-sample
namespace: openshift-adp
resourceVersion: "6427680"
uid: bda6d98c-b20d-4384-b690-4fd4c6421e92
spec:
backupLocations:
- velero:
config:
profile: default
region: us-west-2
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: cvpbucket3uswest2
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- kubevirt
- csi
- openshift
- aws
- hypershift
logFormat: text
nonAdmin:
enable: true
snapshotLocations:
- velero:
config:
profile: default
region: us-west-2
provider: aws
status:
conditions:
- lastTransitionTime: "2025-09-26T16:05:26Z"
message: Reconcile complete
reason: Complete
status: "True"
type: Reconciled
```
```
oc logs -f pod/non-admin-controller-7545f8bc99-9bh99
2025-09-26T16:05:36.093Z INFO setup LogLevel: info
2025-09-26T16:05:36.140Z INFO setup starting manager
2025-09-26T16:05:36.140Z INFO controller-runtime.metrics Starting metrics server
2025-09-26T16:05:36.140Z INFO starting server {"kind": "health probe", "addr": "[::]:8081"}
2025-09-26T16:05:36.140Z INFO controller-runtime.metrics Serving metrics server {"bindAddress": ":8080", "secure": false}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadminbackup", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackup", "source": "kind source: *v1alpha1.NonAdminBackup"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadminbackupsynchronizer", "source": "&{2m0s}"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadminbackupstoragelocation", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackupStorageLocation", "source": "kind source: *v1alpha1.NonAdminBackupStorageLocation"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadminbackup", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackup", "source": "kind source: *v1.Backup"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadmindownloadrequest", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminDownloadRequest", "source": "kind source: *v1alpha1.NonAdminDownloadRequest"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadminbackup", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackup", "source": "kind source: *v1.Backup"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadminbackup", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackup", "source": "kind source: *v1.PodVolumeBackup"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadminbackup", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackup", "source": "kind source: *v2alpha1.DataUpload"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadmindownloadrequest", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminDownloadRequest", "source": "kind source: *v1.DownloadRequest"}
2025-09-26T16:05:36.141Z INFO Starting Controller {"controller": "nonadmindownloadrequest", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminDownloadRequest"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadminrestore", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminRestore", "source": "kind source: *v1alpha1.NonAdminRestore"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadminrestore", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminRestore", "source": "kind source: *v1.Restore"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadminrestore", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminRestore", "source": "kind source: *v1.PodVolumeRestore"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadminrestore", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminRestore", "source": "kind source: *v2alpha1.DataDownload"}
2025-09-26T16:05:36.141Z INFO Starting Controller {"controller": "nonadminrestore", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminRestore"}
2025-09-26T16:05:36.141Z INFO Starting Controller {"controller": "nonadminbackupsynchronizer"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadminbackupstoragelocation", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackupStorageLocation", "source": "kind source: *v1.BackupStorageLocation"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadminbackupstoragelocation", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackupStorageLocation", "source": "kind source: *v1alpha1.NonAdminBackupStorageLocationRequest"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadminbackupstoragelocation", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackupStorageLocation", "source": "kind source: *v1.Secret"}
2025-09-26T16:05:36.141Z INFO Starting Controller {"controller": "nonadminbackupstoragelocation", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackupStorageLocation"}
2025-09-26T16:05:36.141Z INFO Starting EventSource {"controller": "nonadmingarbagecollector", "source": "&{24h0m0s}"}
2025-09-26T16:05:36.141Z INFO Starting Controller {"controller": "nonadminbackup", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackup"}
2025-09-26T16:05:36.141Z INFO Starting Controller {"controller": "nonadmingarbagecollector"}
2025-09-26T16:05:36.141Z INFO Starting workers {"controller": "nonadminbackupsynchronizer", "worker count": 1}
2025-09-26T16:05:36.141Z INFO Starting workers {"controller": "nonadmingarbagecollector", "worker count": 1}
2025-09-26T16:05:36.246Z INFO Starting workers {"controller": "nonadminbackup", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackup", "worker count": 1}
2025-09-26T16:05:36.252Z INFO Starting workers {"controller": "nonadminbackupstoragelocation", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackupStorageLocation", "worker count": 1}
2025-09-26T16:05:36.252Z INFO Starting workers {"controller": "nonadmindownloadrequest", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminDownloadRequest", "worker count": 1}
2025-09-26T16:05:36.252Z INFO Starting workers {"controller": "nonadminrestore", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminRestore", "worker count": 1}
```
* can successfully toggle nonadmin on/off
### OADP-635 [OADP-635](https://polarion.engineering.redhat.com/polarion/#/project/OADP/workitem?id=OADP-635)
```
root@fedora:/home/whayutin/OADP/NAC/TEST# cat nabsl.yaml
apiVersion: oadp.openshift.io/v1alpha1
kind: NonAdminBackupStorageLocation
metadata:
name: nacuser1
namespace: nacuser1
spec:
backupStorageLocationSpec:
config:
# checksumAlgorithm: ""
# profile: default
region: us-west-2
credential:
key: cloud
name: cloud-credentials
objectStorage:
bucket: wesoadpnacuser1
prefix: velero
provider: aws
root@fedora:/home/whayutin/OADP/NAC/TEST# oc create -f nabsl.yaml
nonadminbackupstoragelocation.oadp.openshift.io/nacuser1 created
root@fedora:/home/whayutin/OADP/NAC/TEST# oc get nonadminbackupstoragelocation
NAME REQUEST-APPROVED REQUEST-PHASE VELERO-PHASE AGE
nacuser1 True Created Available 10s
root@fedora:/home/whayutin/OADP/NAC/TEST# ls
3blockcsi default_sc.yaml mysql.yaml nonadminbackup_mysql.yaml
backup_nacuser1-1.yaml deploy3csi_nacuser1.yaml nabsl.yaml nonadminrestore_mysql.yaml
backup_nacuser1.yaml mysql-template.yaml negative_test NOTES
root@fedora:/home/whayutin/OADP/NAC/TEST# vi backup_nacuser1.yaml
root@fedora:/home/whayutin/OADP/NAC/TEST# cat backup_nacuser1.yaml
apiVersion: oadp.openshift.io/v1alpha1
kind: NonAdminBackup
metadata:
name: nacuser1-backup-shouldwork
namespace: nacuser1
spec:
backupSpec:
includedNamespaces:
- nacuser1
storageLocation: nacuser1
ttl: 720h0m0s
root@fedora:/home/whayutin/OADP/NAC/TEST# oc create -f backup_nacuser1.yaml
nonadminbackup.oadp.openshift.io/nacuser1-backup-shouldwork created
root@fedora:/home/whayutin/OADP/NAC/TEST# oc get nonadminbackups
NAME REQUEST-PHASE VELERO-PHASE AGE
nacuser1-backup-shouldwork Created Completed 102s
root@fedora:/home/whayutin/OADP/NAC/TEST# cp backup_nacuser1.yaml backup_nacuser1_fail.yaml
root@fedora:/home/whayutin/OADP/NAC/TEST# vi backup_nacuser1_fail.yaml
root@fedora:/home/whayutin/OADP/NAC/TEST# oc create -f backup_nacuser1_fail.yaml
nonadminbackup.oadp.openshift.io/nacuser1-backup-shouldfail1 created
root@fedora:/home/whayutin/OADP/NAC/TEST# oc get nonadminbackups
NAME REQUEST-PHASE VELERO-PHASE AGE
nacuser1-backup-shouldfail1 BackingOff 24s
nacuser1-backup-shouldwork Created Completed 3m10s
root@fedora:/home/whayutin/OADP/NAC/TEST# cat backup_nacuser1_fail.yaml
apiVersion: oadp.openshift.io/v1alpha1
kind: NonAdminBackup
metadata:
name: nacuser1-backup-shouldfail1
namespace: nacuser1
spec:
backupSpec:
includedNamespaces:
- "*"
storageLocation: nacuser1
ttl: 720h0m0s
```
```
025-09-26T17:02:28.745Z INFO VeleroBackup successfully created {"controller": "nonadminbackup", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackup", "NonAdminBackup": {"name":"nacuser1-backup-shouldwork","namespace":"nacuser1"}, "namespace": "nacuser1", "name": "nacuser1-backup-shouldwork", "reconcileID": "53c8e1bb-1409-4bd1-8516-54afad002c2d"}
2025-09-26T17:05:14.425Z ERROR Reconciler error {"controller": "nonadminbackup", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackup", "NonAdminBackup": {"name":"nacuser1-backup-shouldfail1","namespace":"nacuser1"}, "namespace": "nacuser1", "name": "nacuser1-backup-shouldfail1", "reconcileID": "43533632-b0b4-471c-8e9e-51f2e027f786", "error": "terminal error: NonAdminBackup spec.backupSpec.includedNamespaces is restricted, can not contain namespaces other than: nacuser1"}
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:329
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:266
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:227
```
```
apiVersion: oadp.openshift.io/v1alpha1
kind: NonAdminBackup
metadata:
creationTimestamp: "2025-09-26T17:05:14Z"
generation: 2
name: nacuser1-backup-shouldfail1
namespace: nacuser1
resourceVersion: "6443676"
uid: 44e82f90-ad4e-4492-ac9d-2ce41829a18f
spec:
backupSpec:
includedNamespaces:
- testnac1
- foo
storageLocation: nacuser1
ttl: 720h0m0s
status:
conditions:
- lastTransitionTime: "2025-09-26T17:05:14Z"
message: 'NonAdminBackup spec.backupSpec.includedNamespaces is restricted, can
not contain namespaces other than: nacuser1'
reason: InvalidBackupSpec
status: "False"
type: Accepted
phase: BackingOff
```
* now edit to a real namespace - nacuser1 and it should work
```
apiVersion: oadp.openshift.io/v1alpha1
kind: NonAdminBackup
metadata:
creationTimestamp: "2025-09-26T17:05:14Z"
finalizers:
- nonadminbackup.oadp.openshift.io/finalizer
generation: 3
name: nacuser1-backup-shouldfail1
namespace: nacuser1
resourceVersion: "6444203"
uid: 44e82f90-ad4e-4492-ac9d-2ce41829a18f
spec:
backupSpec:
includedNamespaces:
- nacuser1
storageLocation: nacuser1
ttl: 720h0m0s
status:
conditions:
- lastTransitionTime: "2025-09-26T17:10:00Z"
message: backup accepted
reason: BackupAccepted
status: "True"
type: Accepted
- lastTransitionTime: "2025-09-26T17:10:00Z"
message: Created Velero Backup object
reason: BackupScheduled
status: "True"
type: Queued
dataMoverDataUploads: {}
fileSystemPodVolumeBackups: {}
phase: Created
queueInfo:
estimatedQueuePosition: 1
veleroBackup:
nacuuid: nacuser1-nacuser1-backup-s-6ca9ba9d-5716-45ba-a756-8e90ce8c0a37
name: nacuser1-nacuser1-backup-s-6ca9ba9d-5716-45ba-a756-8e90ce8c0a37
namespace: openshift-adp
spec:
csiSnapshotTimeout: 10m0s
defaultVolumesToFsBackup: false
excludedResources:
- nonadminbackups
- nonadminrestores
- nonadminbackupstoragelocations
- securitycontextconstraints
- clusterroles
- clusterrolebindings
- priorityclasses
- customresourcedefinitions
- virtualmachineclusterinstancetypes
- virtualmachineclusterpreferences
hooks: {}
includedNamespaces:
- nacuser1
itemOperationTimeout: 4h0m0s
metadata: {}
snapshotMoveData: false
storageLocation: nacuser1-nacuser1-643c3fb2-c95e-4fbf-9c92-6a485bae1669
ttl: 720h0m0s
volumeSnapshotLocations:
- dpa-sample-1
status:
backupItemOperationsAttempted: 1
csiVolumeSnapshotsAttempted: 1
expiration: "2025-10-26T17:10:00Z"
formatVersion: 1.1.0
hookStatus: {}
phase: WaitingForPluginOperations
progress:
itemsBackedUp: 42
totalItems: 42
startTimestamp: "2025-09-26T17:10:00Z"
version: 1
```
```
cat backup_nacuser2_fail.yaml
apiVersion: oadp.openshift.io/v1alpha1
kind: NonAdminBackup
metadata:
name: nacuser1-backup-shouldfail2
namespace: nacuser1
spec:
backupSpec:
includedNamespaces:
- nacuser1
- foo
storageLocation: nacuser1
ttl: 720h0m0s
```
```
2025-09-26T17:10:00.924Z INFO VeleroBackup successfully created {"controller": "nonadminbackup", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackup", "NonAdminBackup": {"name":"nacuser1-backup-shouldfail1","namespace":"nacuser1"}, "namespace": "nacuser1", "name": "nacuser1-backup-shouldfail1", "reconcileID": "8f51c7b7-7858-4e9c-b7e8-b479677a4cd6"}
2025-09-26T17:11:36.680Z ERROR Reconciler error {"controller": "nonadminbackup", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminBackup", "NonAdminBackup": {"name":"nacuser1-backup-shouldfail2","namespace":"nacuser1"}, "namespace": "nacuser1", "name": "nacuser1-backup-shouldfail2", "reconcileID": "7b521439-a993-4dc9-9dec-23a17e44e622", "error": "terminal error: NonAdminBackup spec.backupSpec.includedNamespaces is restricted, can not contain namespaces other than: nacuser1"}
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:329
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:266
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:227
```
### [OADP-636](https://polarion.engineering.redhat.com/polarion/#/project/OADP/workitem?id=OADP-636)
```
cat nonadminrestore_mysql_fail.yaml
kind: NonAdminRestore
apiVersion: oadp.openshift.io/v1alpha1
metadata:
labels:
name: mysql-nonadmin-restore-fail
namespace: nacuser1
spec:
restoreSpec:
backupName: should-fail
root@fedora:/home/whayutin/OADP/NAC/TEST# oc create -f nonadminrestore_mysql_fail.yaml
nonadminrestore.oadp.openshift.io/mysql-nonadmin-restore-fail created
root@fedora:/home/whayutin/OADP/NAC/TEST#
```
```
2025-09-26T17:14:34.631Z ERROR Reconciler error {"controller": "nonadminrestore", "controllerGroup": "oadp.openshift.io", "controllerKind": "NonAdminRestore", "NonAdminRestore": {"name":"mysql-nonadmin-restore-fail","namespace":"nacuser1"}, "namespace": "nacuser1", "name": "mysql-nonadmin-restore-fail", "reconcileID": "d7cf4df5-3450-4d64-95f4-2329362aead6", "error": "terminal error: NonAdminRestore spec.restoreSpec.backupName is invalid: NonAdminBackup.oadp.openshift.io \"should-fail\" not found"}
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:329
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:266
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:227
```
```
oc get nonadminrestores.oadp.openshift.io
NAME REQUEST-PHASE VELERO-PHASE AGE
mysql-nonadmin-restore-fail BackingOff 36s
root@fedora:/home/whayutin/OADP/NAC/TEST#
```
### [OADP-637](https://polarion.engineering.redhat.com/polarion/#/project/OADP/workitem?id=OADP-637)
```
oc get nonadminbackups nacuser1-backup-shouldwork -o yaml
apiVersion: oadp.openshift.io/v1alpha1
kind: NonAdminBackup
metadata:
creationTimestamp: "2025-09-26T17:02:28Z"
finalizers:
- nonadminbackup.oadp.openshift.io/finalizer
generation: 1
name: nacuser1-backup-shouldwork
namespace: nacuser1
resourceVersion: "6442584"
uid: b5816f8b-5d39-4c2f-a70d-21eececa0cbc
spec:
backupSpec:
includedNamespaces:
- nacuser1
storageLocation: nacuser1
ttl: 720h0m0s
status:
conditions:
- lastTransitionTime: "2025-09-26T17:02:28Z"
message: backup accepted
reason: BackupAccepted
status: "True"
type: Accepted
- lastTransitionTime: "2025-09-26T17:02:28Z"
message: Created Velero Backup object
reason: BackupScheduled
status: "True"
type: Queued
dataMoverDataUploads: {}
fileSystemPodVolumeBackups: {}
phase: Created
queueInfo:
estimatedQueuePosition: 0
veleroBackup:
nacuuid: nacuser1-nacuser1-backup-s-23e179a3-1173-4c59-8baa-f44c6b38e53c
name: nacuser1-nacuser1-backup-s-23e179a3-1173-4c59-8baa-f44c6b38e53c
namespace: openshift-adp
spec:
csiSnapshotTimeout: 10m0s
defaultVolumesToFsBackup: false
excludedResources:
- nonadminbackups
- nonadminrestores
- nonadminbackupstoragelocations
- securitycontextconstraints
- clusterroles
- clusterrolebindings
- priorityclasses
- customresourcedefinitions
- virtualmachineclusterinstancetypes
- virtualmachineclusterpreferences
hooks: {}
includedNamespaces:
- nacuser1
itemOperationTimeout: 4h0m0s
metadata: {}
snapshotMoveData: false
storageLocation: nacuser1-nacuser1-643c3fb2-c95e-4fbf-9c92-6a485bae1669
ttl: 720h0m0s
volumeSnapshotLocations:
- dpa-sample-1
status:
backupItemOperationsAttempted: 1
backupItemOperationsCompleted: 1
completionTimestamp: "2025-09-26T17:03:39Z"
csiVolumeSnapshotsAttempted: 1
csiVolumeSnapshotsCompleted: 1
expiration: "2025-10-26T17:02:28Z"
formatVersion: 1.1.0
hookStatus: {}
phase: Completed
progress:
itemsBackedUp: 39
totalItems: 39
startTimestamp: "2025-09-26T17:02:28Z"
version: 1
```

```
oc delete -f mysql.yaml
serviceaccount "nacuser1-sa" deleted
persistentvolumeclaim "mysql" deleted
service "mysql" deleted
deployment.apps "mysql" deleted
service "todolist" deleted
Warning: apps.openshift.io/v1 DeploymentConfig is deprecated in v4.14+, unavailable in v4.10000+
deploymentconfig.apps.openshift.io "todolist" deleted
route.route.openshift.io "todolist-route" deleted
root@fedora:/home/whayutin/OADP/NAC/TEST# oc get all
Warning: apps.openshift.io/v1 DeploymentConfig is deprecated in v4.14+, unavailable in v4.10000+
No resources found in nacuser1 namespace.
root@fedora:/home/whayutin/OADP/NAC/TEST#
```
```
oot@fedora:/home/whayutin/OADP/NAC/TEST# cat nonadminrestore_mysql.yaml
kind: NonAdminRestore
apiVersion: oadp.openshift.io/v1alpha1
metadata:
labels:
name: mysql-nonadmin-restore
namespace: nacuser1
spec:
restoreSpec:
backupName: nacuser1-backup-shouldwork
root@fedora:/home/whayutin/OADP/NAC/TEST# oc create -f nonadminrestore_mysql
error: the path "nonadminrestore_mysql" does not exist
root@fedora:/home/whayutin/OADP/NAC/TEST# oc create -f nonadminrestore_mysql.yaml
nonadminrestore.oadp.openshift.io/mysql-nonadmin-restore created
root@fedora:/home/whayutin/OADP/NAC/TEST#
```
```
oc get nonadminrestores.oadp.openshift.io
NAME REQUEST-PHASE VELERO-PHASE AGE
mysql-nonadmin-restore Created Completed 24s
mysql-nonadmin-restore-fail BackingOff 7m17s
root@fedora:/home/whayutin/OADP/NAC/TEST#
root@fedora:/home/whayutin/OADP/NAC/TEST#
root@fedora:/home/whayutin/OADP/NAC/TEST# oc get all
Warning: apps.openshift.io/v1 DeploymentConfig is deprecated in v4.14+, unavailable in v4.10000+
NAME READY STATUS RESTARTS AGE
pod/mysql-65584f86fc-lhrz2 1/2 Running 0 41s
pod/todolist-1-deploy 1/1 Running 0 40s
pod/todolist-1-rqgzp 0/1 Init:0/1 0 40s
NAME DESIRED CURRENT READY AGE
replicationcontroller/todolist-1 1 1 0 41s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/mysql ClusterIP 172.30.249.216 <none> 3306/TCP 42s
service/todolist ClusterIP 172.30.163.41 <none> 8000/TCP 42s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/mysql 0/1 1 0 42s
NAME DESIRED CURRENT READY AGE
replicaset.apps/mysql-65584f86fc 1 1 0 42s
NAME REVISION DESIRED CURRENT TRIGGERED BY
deploymentconfig.apps.openshift.io/todolist 1 1 1 config
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
route.route.openshift.io/todolist-route todolist-route-nacuser1.apps.wdh418arm.migration.redhat.com / todolist <all> None
```

### [OADP-639](https://polarion.engineering.redhat.com/polarion/#/project/OADP/workitem?id=OADP-639)
```
apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
creationTimestamp: "2025-09-26T16:05:26Z"
generation: 4
name: dpa-sample
namespace: openshift-adp
resourceVersion: "6448497"
uid: bda6d98c-b20d-4384-b690-4fd4c6421e92
spec:
backupLocations:
- velero:
config:
profile: default
region: us-west-2
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: cvpbucket3uswest2
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- kubevirt
- csi
- openshift
- aws
- hypershift
logFormat: text
nonAdmin:
enable: true
enforceBackupSpec:
snapshotMoveData: true
snapshotLocations:
- velero:
config:
profile: default
region: us-west-2
provider: aws
status:
conditions:
- lastTransitionTime: "2025-09-26T16:05:26Z"
message: Reconcile complete
reason: Complete
status: "True"
type: Reconciled
```
```
cat backup_nacuser1.yaml
apiVersion: oadp.openshift.io/v1alpha1
kind: NonAdminBackup
metadata:
name: nacuser1-backup-dm-shouldwork
namespace: nacuser1
spec:
backupSpec:
includedNamespaces:
- nacuser1
storageLocation: nacuser1
ttl: 720h0m0s
root@fedora:/home/whayutin/OADP/NAC/TEST# oc create -f backup_nacuser1.yaml
nonadminbackup.oadp.openshift.io/nacuser1-backup-dm-shouldwork created
```
```
oc get datauploads.velero.io
NAME STATUS STARTED BYTES DONE TOTAL BYTES STORAGE LOCATION AGE NODE
nacuser1-nacuser1-backup-d-c56c839d-0c93-4a46-81c5-9617d9cnnvmr Accepted nacuser1-nacuser1-643c3fb2-c95e-4fbf-9c92-6a485bae1669 9s
```
```
oc get nonadminbackups nacuser1-backup-dm-shouldwork -o yaml
apiVersion: oadp.openshift.io/v1alpha1
kind: NonAdminBackup
metadata:
creationTimestamp: "2025-09-26T17:26:34Z"
finalizers:
- nonadminbackup.oadp.openshift.io/finalizer
generation: 1
name: nacuser1-backup-dm-shouldwork
namespace: nacuser1
resourceVersion: "6449552"
uid: dca8a796-219d-487d-854e-5c45f2d4e0fe
spec:
backupSpec:
includedNamespaces:
- nacuser1
storageLocation: nacuser1
ttl: 720h0m0s
status:
conditions:
- lastTransitionTime: "2025-09-26T17:26:34Z"
message: backup accepted
reason: BackupAccepted
status: "True"
type: Accepted
- lastTransitionTime: "2025-09-26T17:26:34Z"
message: Created Velero Backup object
reason: BackupScheduled
status: "True"
type: Queued
dataMoverDataUploads:
completed: 1
total: 1
fileSystemPodVolumeBackups: {}
phase: Created
queueInfo:
estimatedQueuePosition: 0
veleroBackup:
nacuuid: nacuser1-nacuser1-backup-d-c56c839d-0c93-4a46-81c5-9617d9c1858a
name: nacuser1-nacuser1-backup-d-c56c839d-0c93-4a46-81c5-9617d9c1858a
namespace: openshift-adp
spec:
csiSnapshotTimeout: 10m0s
defaultVolumesToFsBackup: false
excludedResources:
- nonadminbackups
- nonadminrestores
- nonadminbackupstoragelocations
- securitycontextconstraints
- clusterroles
- clusterrolebindings
- priorityclasses
- customresourcedefinitions
- virtualmachineclusterinstancetypes
- virtualmachineclusterpreferences
hooks: {}
includedNamespaces:
- nacuser1
itemOperationTimeout: 4h0m0s
metadata: {}
snapshotMoveData: true
storageLocation: nacuser1-nacuser1-643c3fb2-c95e-4fbf-9c92-6a485bae1669
ttl: 720h0m0s
volumeSnapshotLocations:
- dpa-sample-1
status:
backupItemOperationsAttempted: 1
backupItemOperationsCompleted: 1
completionTimestamp: "2025-09-26T17:28:08Z"
expiration: "2025-10-26T17:26:34Z"
formatVersion: 1.1.0
hookStatus: {}
phase: Completed
progress:
itemsBackedUp: 81
totalItems: 81
startTimestamp: "2025-09-26T17:26:34Z"
version: 1
```
### [OADP-640](https://polarion.engineering.redhat.com/polarion/#/project/OADP/workitem?id=OADP-640)

set deleteBackup: true in spec

associated velero backup deleted
```
oc get backup nacuser1-nacuser1-backup-d-c56c839d-0c93-4a46-81c5-9617d9c1858a
Error from server (NotFound): backups.velero.io "nacuser1-nacuser1-backup-d-c56c839d-0c93-4a46-81c5-9617d9c1858a" not found
```