OADP stands for OpenShift API for Data Protection. In OpenShift, it is Red Hat’s supported way to back up and restore applications and their data. OADP uses Velero underneath, but packages it into an OpenShift Operator with supported plugins and OpenShift-specific integration. (Red Hat Documentation)
A simple way to remember it is:
OADP = Operator + Velero + Storage plugins + OpenShift integration
What OADP protects
OADP can protect application-related Kubernetes/OpenShift resources such as:
DeploymentServiceConfigMapSecretRoutePVCPV dataCustom ResourcesInternal images
It can back up an entire application namespace or select resources using namespaces, resource types, or labels. Persistent-volume data can be protected using storage snapshots, CSI snapshots, or filesystem backup depending on your storage and OADP configuration. (Red Hat Documentation)
For example:
Namespace: banking-appDeployment |Service |Route |ConfigMap / Secret |PVC |Application Data
OADP can capture these application components so that the application can later be restored.
OADP architecture
A typical deployment looks like:
OpenShift Cluster
┌─────────────────────────┐
│ │
│ OADP Operator │
│ │ │
│ ▼ │
│ Velero │
│ Controller │
│ │ │
│ ┌──────┴──────┐ │
│ │ │ │
│ ▼ ▼ │
│ Kubernetes PV Data │
│ Resources │ │
│ │ │ │
└──────┼─────────────┼────┘
│ │
▼ ▼
Object Storage Snapshot/
S3 / Blob CSI
The Kubernetes resource metadata is normally stored in object storage. Depending on the architecture, persistent data might be stored through CSI/native snapshots or copied into backup storage.
Supported object-storage options include AWS S3, Azure storage, Google Cloud storage, OpenShift Data Foundation/MCG, and S3-compatible storage. (Red Hat Documentation)
The important OADP components
The first component to understand is the OADP Operator.
You install it through OperatorHub. It normally operates in:
openshift-adp
Check it with:
oc get pods -n openshift-adp
The Operator manages the OADP/Velero configuration.
The second major component is the DataProtectionApplication, or DPA. This is the primary OADP configuration object.
oc get dpa -n openshift-adp
You configure things like:
Cloud providerStorage locationCredentialsVelero pluginsCSI supportNode agentData mover
Conceptually:
DPA | +-- AWS/Azure/GCP plugin | +-- Backup storage location | +-- CSI | +-- Node Agent | +-- Velero
Backup Storage Location — BSL
The BackupStorageLocation tells Velero where backup metadata and data should be stored.
Check it with:
oc get bsl -n openshift-adp
Example:
NAME PHASEdefault Available
For AWS this could point to:
S3 bucket | └── openshift-backups/ ├── backup01 ├── backup02 └── backup03
For Azure it might be an Azure Blob Storage container.
Volume Snapshot Location
If you use cloud-native volume snapshots, OADP can configure a VolumeSnapshotLocation:
oc get vsl -n openshift-adp
For example:
Application PVC | ▼Cloud Disk | ▼EBS Snapshot
On AWS:
PVC → EBS → EBS Snapshot
On Azure:
PVC → Managed Disk → Snapshot
With CSI:
PVC | ▼CSI Driver | ▼VolumeSnapshot
Red Hat documents native cloud snapshots and CSI snapshots as supported ways to protect persistent volumes where the storage provider supports them. (Red Hat Documentation)
How a backup works
Suppose you have:
Namespace: payment-app
containing:
DeploymentServiceRouteSecretConfigMapPVC
You create an OADP/Velero Backup resource:
apiVersion: velero.io/v1kind: Backupmetadata: name: payment-backup namespace: openshift-adpspec: includedNamespaces: - payment-app
Apply it:
oc apply -f backup.yaml
Then:
Backup CR | ▼Velero | +------ Kubernetes API | | | ▼ | Resources | +------ Persistent Volume | ▼ Snapshot / FSB
Check progress:
oc get backup -n openshift-adp
Expected:
NAME STATUSpayment-backup Completed
How restore works
Suppose somebody accidentally deletes:
payment-app
You can create:
apiVersion: velero.io/v1kind: Restoremetadata: name: payment-restore namespace: openshift-adpspec: backupName: payment-backup
Apply:
oc apply -f restore.yaml
The flow becomes:
Object Storage | ▼ Velero | ▼ Kubernetes API | ▼NamespaceDeploymentServiceRouteSecretPVC | ▼Persistent Data
Check:
oc get restore -n openshift-adp
You can also restore an application into a different namespace, which is useful for DR testing. Red Hat explicitly documents namespace-mapped restores as a supported use case. (Red Hat Documentation)
Scheduled backups
You normally don’t create production backups manually every day.
OADP supports Velero schedules:
apiVersion: velero.io/v1kind: Schedulemetadata: name: daily-backup namespace: openshift-adpspec: schedule: "0 2 * * *" template: includedNamespaces: - payment-app
This runs every day at:
02:00
Check:
oc get schedule -n openshift-adp
A production strategy might look like:
Daily backup | ├── Monday ├── Tuesday ├── Wednesday ├── Thursday ├── Friday ├── Saturday └── SundayRetention: 30 days
Backup hooks
OADP also supports hooks.
This is important for applications such as databases.
Imagine:
PostgreSQL |write transactions |OADP starts backup
Taking a raw filesystem backup while the database is actively writing can result in an application-inconsistent backup.
You can use a hook to perform something like:
Pre-backup | ▼Quiesce application | ▼Take backup | ▼Post-backup | ▼Resume application
Red Hat documents backup and restore hooks as part of OADP functionality. (Red Hat Documentation)
OADP vs Velero
A common interview question is:
What’s the difference between OADP and Velero?
Think:
Velero =Upstream Kubernetes backup projectOADP =Red Hat supported data-protection solutionbuilt around Velero+OpenShift Operator+Cloud/storage plugins+OpenShift integration
So in OpenShift production environments, you generally talk about OADP, even though Velero is doing much of the underlying backup/restore work.
Very important: OADP is NOT etcd backup
This distinction is crucial.
OpenShift DR
|
┌─────────┴─────────┐
│ │
▼ ▼
OADP etcd backup
│ │
Application backup Control-plane
and application data recovery
OADP
Used for:
ApplicationsNamespacesPVCsApplication objectsVM workloads (supported configurations)
etcd backup
Used for:
OpenShift control-plane recoveryCluster stateAPI objectsCatastrophic cluster recovery
Red Hat specifically states that OADP is not a disaster-recovery solution for etcd or OpenShift Operators, and full-cluster backup/restore through OADP is not supported. (Red Hat Documentation)
So for serious DR you generally want both:
OpenShift DR Strategy1. etcd snapshots +2. OADP application backups +3. Persistent data protection +4. Infrastructure-as-Code +5. Off-cluster/object storage
OADP and OpenShift Virtualization
OADP can also protect supported OpenShift Virtualization workloads.
Conceptually:
OpenShift VM | +--- VM definition | +--- DataVolume | +--- PVC | ▼ CSI Snapshot | ▼ Object Storage
Current Red Hat documentation supports OADP backup/restore for OpenShift Virtualization using supported CSI-based approaches and compatible OADP versions. (Red Hat Documentation)
Commands I would memorize for an interview
oc get pods -n openshift-adp
oc get dpa -n openshift-adp
oc get bsl -n openshift-adp
oc get vsl -n openshift-adp
oc get backup -n openshift-adp
oc get restore -n openshift-adp
oc get schedule -n openshift-adp
oc describe backup <backup> -n openshift-adp
oc describe restore <restore> -n openshift-adp
And for troubleshooting:
oc logs deployment/velero \ -n openshift-adp
Interview answer
A strong 60-second answer would be:
OADP, or OpenShift API for Data Protection, is Red Hat’s supported application backup and restore solution for OpenShift. It is based on Velero and is deployed using the OADP Operator. OADP protects Kubernetes and OpenShift application resources as well as persistent-volume data. Kubernetes metadata is normally stored in object storage such as AWS S3 or Azure Blob, while persistent volumes can be protected through CSI or native storage snapshots, or filesystem-based backup depending on the storage configuration. The main configuration resource is the DataProtectionApplication, and backups and restores are managed using Velero Backup, Restore and Schedule custom resources. An important distinction is that OADP protects application workloads; it does not replace etcd backup for OpenShift control-plane disaster recovery.
For an OCP Architect interview, the key sentence to remember is:
“etcd protects the cluster state; OADP protects the applications.” (Red Hat Documentation)