* Migrate VolumeGroupSnapshot API from v1beta2 to v1 Signed-off-by: Prasad Joshi <prajoshi@redhat.com> * Add changelog Signed-off-by: Prasad Joshi <prajoshi@redhat.com> * Detect VolumeGroupSnapshot API version at runtime Velero hardcoded the VolumeGroupSnapshot (VGS) API version, so VGS backup and restore failed on clusters that serve a different version than Velero expects. For example OCP 5.0 serves only groupsnapshot.storage.k8s.io/v1 and OCP 4.22 serves only v1beta1, while Velero targeted a single version and failed with "no matches for kind" on the others. Detect the served VGS API version at runtime via the discovery client (preferring v1 > v1beta2 > v1beta1) and perform all VGS, VGSClass and VGSContent I/O through the dynamic client, converting to and from the canonical v1 typed structs. The controller-runtime typed client cannot negotiate versions because it sends the GVK of the Go type, so the dynamic client is used at the I/O boundary instead. Owner-reference matching is now version-independent (Kind and UID), since the CSI controller stamps refs with whatever version the cluster serves. This builds on the v1 migration and external-snapshotter client bump from the previous commits. Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com> * Add changelog for VGS runtime version detection Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com> * docs: VGS supports v1/v1beta2/v1beta1 via runtime detection Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com> * Remove superseded changelog for #10600 (covered by #10601) Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com> * Use crClient + unstructured for VGS access instead of a dynamic client Address review feedback: rather than a dedicated VGSClient wrapping dynamic.Interface + discovery.DiscoveryInterface, perform all VolumeGroupSnapshot I/O through the existing controller-runtime client with *unstructured.Unstructured. The object's GVK is stamped to the served version and controller-runtime routes it via its RESTMapper, giving the same multi-version behavior (v1/v1beta2/v1beta1) that the typed client cannot. This removes the extra client plumbing: no constructor signature changes to NewRestoreFinalizerReconciler or server.go, no Factory DynamicClient/DiscoveryClient mock churn, and no separate fake client package. The version is resolved from the client's RESTMapper (preferring v1 > v1beta2 > v1beta1), and the helpers convert to and from the canonical v1 typed structs. Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com> --------- Signed-off-by: Prasad Joshi <prajoshi@redhat.com> Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com> Co-authored-by: Prasad Joshi <prajoshi@redhat.com>
Overview
Velero (formerly Heptio Ark) gives you tools to back up and restore your Kubernetes cluster resources and persistent volumes. You can run Velero with a public cloud platform or on-premises.
Velero lets you:
- Take backups of your cluster and restore in case of loss.
- Migrate cluster resources to other clusters.
- Replicate your production cluster to development and testing clusters.
Velero consists of:
- A server that runs on your cluster
- A command-line client that runs locally
Documentation
The documentation provides a getting started guide and information about building from source, architecture, extending Velero and more.
Please use the version selector at the top of the site to ensure you are using the appropriate documentation for your version of Velero.
Troubleshooting
If you encounter issues, review the troubleshooting docs, file an issue, or talk to us on the #velero-users and #velero-dev channel on the Kubernetes Slack server.
Community
Velero is an open community and we welcome your participation. The best way to get involved is to join our bi-weekly community meetings:
- Join the Velero community meetings, held bi-weekly, alternating between Beijing-friendly and US/Europe-friendly time zones.
- Subscribe to the project meeting calendar.
- Chat with us on the Kubernetes Slack
#velero-userschannel and join the mailing list.
See the community page for the full schedule and details.
Contributing
If you are ready to jump in and test, add code, or help with documentation, follow the instructions on our Start contributing documentation for guidance on how to setup Velero for development.
Governance
Velero's governance describes how the project is run, including the decision-making process, the roles and responsibilities of maintainers, and how to become a maintainer. Governance applies across the Velero org and is maintained at velero-io/.github.
Changelog
See the list of releases to find out about feature changes.
Velero compatibility matrix
The following is a list of the supported Kubernetes versions for each Velero version.
| Velero version | Expected Kubernetes version compatibility | Tested on Kubernetes version |
|---|---|---|
| 1.18 | 1.18-latest | 1.33.7, 1.34.1, and 1.35.0 |
| 1.17 | 1.18-latest | 1.31.7, 1.32.3, 1.33.1, and 1.34.0 |
| 1.16 | 1.18-latest | 1.31.4, 1.32.3, and 1.33.0 |
| 1.15 | 1.18-latest | 1.28.8, 1.29.8, 1.30.4 and 1.31.1 |
| 1.14 | 1.18-latest | 1.27.9, 1.28.9, and 1.29.4 |
Velero supports IPv4, IPv6, and dual stack environments. Support for this was tested against Velero v1.8.
The Velero maintainers are continuously working to expand testing coverage, but are not able to test every combination of Velero and supported Kubernetes versions for each Velero release. The table above is meant to track the current testing coverage and the expected supported Kubernetes versions for each Velero version.
If you are interested in using a different version of Kubernetes with a given Velero version, we'd recommend that you perform testing before installing or upgrading your environment. For full information around capabilities within a release, also see the Velero release notes or Kubernetes release notes. See the Velero support page for information about supported versions of Velero.
For each release, Velero maintainers run the test to ensure the upgrade path from n-2 minor release. For example, before the release of v1.10.x, the test will verify that the backup created by v1.9.x and v1.8.x can be restored using the build to be tagged as v1.10.x.
Cloud Native Computing Foundation
Velero is a Cloud Native Computing Foundation sandbox project.
Copyright Contributors to Velero, established as Velero a Series of LF Projects, LLC. For website terms of use, trademark policy and other project policies please see https://lfprojects.org/policies/.
