changelogs/CHANGELOG-1.3.md
https://github.com/vmware-tanzu/velero/releases/tag/v1.3.2
velero/velero:v1.3.2
https://velero.io/docs/v1.3.2/
https://velero.io/docs/v1.3.2/upgrade-to-1.3/
plugins/ as a valid top-level directory within backup storage locations. This directory is a place for plugin authors to store arbitrary data as needed. It is recommended to create an additional subdirectory under plugins/ specifically for your plugin, e.g. plugins/my-plugin-data/. (#2350, @skriss)velero restic repo get when last maintenance time is nil (#2315, @skriss)https://github.com/vmware-tanzu/velero/releases/tag/v1.3.1
velero/velero:v1.3.1
https://velero.io/docs/v1.3.1/
https://velero.io/docs/v1.3.1/upgrade-to-1.3/
Fixed a bug that caused failures when backing up CustomResourceDefinitions with whole numbers in numeric fields.
https://github.com/vmware-tanzu/velero/releases/tag/v1.3.0
velero/velero:v1.3.0
https://velero.io/docs/v1.3.0/
https://velero.io/docs/v1.3.0/upgrade-to-1.3/
This release includes a number of related bug fixes and improvements to how Velero backs up and restores custom resource definitions (CRDs) and instances of those CRDs.
We found and fixed three issues around restoring CRDs that were originally created via the v1beta1 CRD API. The first issue affected CRDs that had the PreserveUnknownFields field set to true. These CRDs could not be restored into 1.16+ Kubernetes clusters, because the v1 CRD API does not allow this field to be set to true. We added code to the restore process to check for this scenario, to set the PreserveUnknownFields field to false, and to instead set x-kubernetes-preserve-unknown-fields to true in the OpenAPIv3 structural schema, per Kubernetes guidance. For more information on this, see the Kubernetes documentation. The second issue affected CRDs without structural schemas. These CRDs need to be backed up/restored through the v1beta1 API, since all CRDs created through the v1 API must have structural schemas. We added code to detect these CRDs and always back them up/restore them through the v1beta1 API. Finally, related to the previous issue, we found that our restore code was unable to handle backups with multiple API versions for a given resource type, and we’ve remediated this as well.
We also improved the CRD restore process to enable users to properly restore CRDs and instances of those CRDs in a single restore operation. Previously, users found that they needed to run two separate restores: one to restore the CRD(s), and another to restore instances of the CRD(s). This was due to two deficiencies in the Velero code. First, Velero did not wait for a CRD to be fully accepted by the Kubernetes API server and ready for serving before moving on; and second, Velero did not refresh its cached list of available APIs in the target cluster after restoring CRDs, so it was not aware that it could restore instances of those CRDs.
We fixed both of these issues by (1) adding code to wait for CRDs to be “ready” after restore before moving on, and (2) refreshing the cached list of APIs after restoring CRDs, so any instances of newly-restored CRDs could subsequently be restored.
With all of these fixes and improvements in place, we hope that the CRD backup and restore experience is now seamless across all supported versions of Kubernetes.
Thanks to community members @Prajyot-Parab and @shaneutt, Velero now provides multi-arch container images by using Docker manifest lists. We are currently publishing images for linux/amd64, linux/arm64, linux/arm, and linux/ppc64le in our Docker repository.
Users don’t need to change anything other than updating their version tag - the v1.3 image is velero/velero:v1.3.0, and Docker will automatically pull the proper architecture for the host.
For more information on manifest lists, see Docker’s documentation.
We fixed a large number of bugs and made some smaller usability improvements in this release. Here are a few highlights:
v1beta1 version (#2230, @skriss)replicasets.apps, not replicasets.extensions (#2157, @skriss)replicasets.apps and replicasets.extensions before deployments (#2120, @skriss)AWS_PROFILE) if multiple s3-compatible backupLocations are present (#2096, @dinesh)fsfreeze-pause image being published from this repo; replace it with ubuntu:bionic in the nginx example app (#2068, @skriss)--kubeconfig, $KUBECONFIG, or in-cluster config (#2057, @skriss)