This velero/OADP plugin is designed to perform backup and restore of HostedControlPlanes in Openshift
- Deploy an OCP Management cluster with Hypershift running
 - Deploy OADP using the sample subscription (sample in 
examplesfolder) - Create the Cloud credentials for you storage provider to store the backups (In this case AWS)
 
kubectl create secret generic cloud-credentials \
    --namespace openshift-adp \
    --from-file cloud=<AWS_CREDS_FILE>
- Create the DataProtectionApplication (sample in 
examplesfolder) - Fill and create the backup manifest (sample in 
examplesfolder) - Check the Backup status.
 
For detailed technical documentation and implementation guides, please refer to the following resources:
- DataMover Multi-Provider Integration - Comprehensive guide covering the multi-platform DataMover implementation, including flow diagrams, platform-specific logic, and troubleshooting information.
 
- AWS Examples - Complete examples for AWS platform including backup, restore, and configuration files
 - BareMetal Examples - Examples for bare metal deployments
 - KubeVirt Examples - Examples for KubeVirt platform
 - OpenStack Examples - Examples for OpenStack platform
 
This project includes automated dependency validation to ensure compatibility with upstream dependencies. The validation is performed through integration tests located in tests/integration/dependencies/.
The dependency validation test (dependencies_test.go) automatically checks that watched dependencies are up-to-date with their respective upstream main branches. This helps prevent:
- Schema-related compatibility issues
 - API version mismatches
 - Runtime errors due to outdated dependencies
 
Currently watched dependencies:
github.com/openshift/hypershift/api- Core HyperShift API definitions
If the dependency validation test fails, you can update all watched dependencies automatically using:
make update-depsThis command will:
- Parse the watched dependencies from the test file
 - Update each dependency to the latest commit from the main branch
 - Run 
go mod tidyandgo mod vendorto clean up the dependency tree - Provide detailed output about which dependencies were updated
 
For manual dependency updates, you can also run:
# Update a specific dependency
go get github.com/openshift/hypershift/api@main
# Clean up and vendor dependencies
go mod tidy && go mod vendorTo add a new dependency to the validation process:
- Add the dependency to the 
watchedDependenciesmap intests/integration/dependencies/dependencies_test.go - The format is: 
"module-path": "upstream-repo-url" - The update script will automatically discover and update the new dependency
 
Example:
var watchedDependencies = map[string]string{
    "github.com/openshift/hypershift/api": "https://github.com/openshift/hypershift",
    "github.com/example/new-module": "https://github.com/example/repo",
}