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",
}