Skip to content

Releases: vmware-tanzu/velero

v1.12.0-rc.2

19 Sep 10:21
7112c62
Compare
Choose a tag to compare
v1.12.0-rc.2 Pre-release
Pre-release

v1.12

2023-09-19

Download

https://github.com/vmware-tanzu/velero/releases/tag/v1.12.0-rc.2

Container Image

velero/velero:v1.12.0-rc.2

Documentation

https://velero.io/docs/v1.12/

Upgrading

https://velero.io/docs/v1.12/upgrade-to-1.12/

Highlights

CSI Snapshot Data Movement

CSI Snapshot Data Movement refers to back up CSI snapshot data from the volatile and limited production environment into durable, heterogeneous, and scalable backup storage in a consistent manner; and restore the data to volumes in the original or alternative environment.

CSI Snapshot Data Movement is useful in below scenarios:

  • For on-premises users, the storage usually doesn't support durable snapshots, so it is impossible/less efficient/cost ineffective to keep volume snapshots by the storage This feature helps to move the snapshot data to a storage with lower cost and larger scale for long time preservation.
  • For public cloud users, this feature helps users to fulfill the multiple cloud strategy. It allows users to back up volume snapshots from one cloud provider and preserve or restore the data to another cloud provider. Then users will be free to flow their business data across cloud providers based on Velero backup and restore

CSI Snapshot Data Movement is built according to the Volume Snapshot Data Movement design (Volume Snapshot Data Movement). More details can be found in the design.

Resource Modifiers

In many use cases, customers often need to substitute specific values in Kubernetes resources during the restoration process like changing the namespace, changing the storage class, etc.

To address this need, Resource Modifiers (also known as JSON Substitutions) offer a generic solution in the restore workflow. It allows the user to define filters for specific resources and then specify a JSON patch (operator, path, value) to apply to the resource. This feature simplifies the process of making substitutions without requiring the implementation of a new RestoreItemAction plugin. More details can be found in Volume Snapshot Resource Modifiers design (Resource Modifiers).

Multiple VolumeSnapshotClasses

Prior to version 1.12, the Velero CSI plugin would choose the VolumeSnapshotClass in the cluster based on matching driver names and the presence of the "velero.io/csi-volumesnapshot-class" label. However, this approach proved inadequate for many user scenarios.

With the introduction of version 1.12, Velero now offers support for multiple VolumeSnapshotClasses in the CSI Plugin, enabling users to select a specific class for a particular backup. More details can be found in Multiple VolumeSnapshotClasses design (Multiple VolumeSnapshotClasses).

Restore Finalizer

Before v1.12, the restore controller would only delete restore resources but wouldn’t delete restore data from the backup storage location when the command velero restore delete was executed. The only chance Velero deletes restores data from the backup storage location is when the associated backup is deleted.

In this version, Velero introduces a finalizer that ensures the cleanup of all associated data for restores when running the command velero restore delete.

Runtime and dependencies

To fix CVEs and keep pace with Golang, Velero made changes as follows:

  • Bump Golang runtime to v1.20.7.
  • Bump several dependent libraries to new versions.
  • Bump Kopia to v0.13.

Breaking changes

  • Prior to v1.12, the parameter uploader-type for Velero installation had a default value of "restic". However, starting from this version, the default value has been changed to "kopia". This means that Velero will now use Kopia as the default path for file system backup.
  • The ways of setting CSI snapshot time have changed in v1.12. First, the sync waiting time for creating a snapshot handle in the CSI plugin is changed from the fixed 10 minutes into backup.Spec.CSISnapshotTimeout. The second, the async waiting time for VolumeSnapshot and VolumeSnapshotContent's status turning into ReadyToUse in operation uses the operation's timeout. The default value is 4 hours.
  • As from Velero helm chart v4.0.0, it supports multiple BSL and VSL, and the BSL and VSL have changed from the map into a slice, and this breaking change is not backward compatible. So it would be best to change the BSL and VSL configuration into slices before the Upgrade.
  • Prior to v1.12, deleting the Velero namespace would easily remove all the resources within it. However, with the introduction of finalizers attached to the Velero CR including restore, dataupload, and datadownload in this version, directly deleting Velero namespace may get stuck indefinitely because the pods responsible for handling the finalizers might be deleted before the resources attached to the finalizers. To avoid this issue, please use the command velero uninstall to delete all the Velero resources or ensure that you handle the finalizer appropriately before deleting the Velero namespace.

Limitations/Known issues

  • The Azure plugin supports Azure AD Workload identity way, but it only works for Velero native snapshots. It cannot support filesystem backup and snapshot data mover scenarios.

All Changes

  • Fixes #6498. Get resource client again after restore actions in case resource's gv is changed. This is an improvement of pr #6499, to support group changes. A group change usually happens in a restore plugin which is used for resource conversion: convert a resource from a not supported gv to a supported gv (#6634, @27149chen)
  • Add API support for volMode block, only error for now. (#6608, @shawn-hurley)
  • Fix how the AWS credentials are obtained from configuration (#6598, @aws_creds)
  • Add performance E2E test (#6569, @qiuming-best)
  • Non default s3 credential profiles work on Unified Repository Provider (kopia) (#6558, @kaovilai)
  • Fix issue #6571, fix the problem for restore item operation to set the errors correctly so that they can be recorded by Velero restore and then reflect the correct status for Velero restore. (#6594, @Lyndon-Li)
  • Fix issue 6575, flush the repo after delete the snapshot, otherwise, the changes(deleting repo snapshot) cannot be committed to the repo. (#6587, @Lyndon-Li)
  • Delete moved snapshots when the backup is deleted (#6547, @reasonerjt)
  • check if restore crd exist before operating restores (#6544, @allenxu404)
  • Remove PVC's selector in backup's PVC action. (#6481, @blackpiglet)
  • Delete the expired deletebackuprequests that are stuck in "InProgress" (#6476, @reasonerjt)
  • Fix issue #6534, reset PVB CR's StorageLocation to the latest one during backup sync as same as the backup CR. Also fix similar problem with DataUploadResult for data mover restore. (#6533, @Lyndon-Li)
  • Fix issue #6519. Restrict the client manager of node-agent server to include only Velero resources from the server's namespace, otherwise, the controllers will try to reconcile CRs from all the installed Velero namespaces. (#6523, @Lyndon-Li)
  • Track the skipped PVC and print the summary in backup log (#6496, @reasonerjt)
  • Add restore finalizer to clean up external resources (#6479, @allenxu404)
  • fix: Typos and add more spell checking rules to CI (#6415, @mateusoliveira43)
  • Add missing CompletionTimestamp and metrics when restore moved into terminal phase in restoreOperationsReconciler (#6397, @Nutrymaco)
  • Add support for resource Modifications in the restore flow. Also known as JSON Substitutions. (#6452, @anshulahuja98)
  • Remove dependency of the legacy client code from pkg/cmd directory part 2 (#6497, @blackpiglet)
  • Add data upload and download metrics (#6493, @allenxu404)
  • Fix issue 6490, If a backup/restore has multiple async operations and one operation fails while others are still in-progress, when all the operations finish, the backup/restore will be set as Completed falsely (#6491, @Lyndon-Li)
  • Velero Plugins no longer need kopia indirect dependency in their go.mod (#6484, @kaovilai)
  • Remove dependency of the legacy client code from pkg/cmd directory (#6469, @blackpiglet)
  • Add support for OpenStack CSI drivers topology keys (#6464, @openstack-csi-topology-keys)
  • Add exit code log and possible memory shortage warning log for Restic command failure. (#6459, @blackpiglet)
  • Modify DownloadRequest controller logic (#6433, @blackpiglet)
  • Add data download controller for data mover (#6436, @qiuming-best)
  • Fix hook filter display issue for backup describer (#6434, @allenxu404)
  • Retrieve DataUpload into backup result ConfigMap during volume snapshot restore. (#6410, @blackpiglet)
  • Design to add support for Multiple VolumeSnapshotClasses in CSI Plugin. (#5774, @anshulahuja98)
  • Clarify the deletion frequency for gc controller (#6414, @allenxu404)
  • Add unit tests for pkg/archive (#6396, @allenxu404)
  • Add UT for pkg/discovery (#6394, @qiuming-best)
  • Add UT for pkg/util (#6368, @Lyndon-Li)
  • Add the code for data mover restore expose (#6357, @Lyndon-Li)
  • Restore Endpoints before Services (#6315, @ywk253100)
  • Add warning message for volume snapshotter in data mover case. (#6377, @blackpiglet)
  • Add unit test for pkg/uploader (#6374, @qiuming-best)
  • Change kopia as the default path of PVB (#6370, @Lyndon-Li)
  • Do not persist VolumeSnapshot and VolumeSnapshotContent for snapshot DataMover case. (#6366, @blackpiglet)
  • Add data mover related options in CLI (#6...
Read more

v1.12.0-rc.1

18 Aug 12:25
0c0ccf9
Compare
Choose a tag to compare
v1.12.0-rc.1 Pre-release
Pre-release

v1.12

2023-08-18

Download

https://github.com/vmware-tanzu/velero/releases/tag/v1.12.0-rc.1

Container Image

velero/velero:v1.12.0-rc.1

Documentation

https://velero.io/docs/v1.12/

Upgrading

https://velero.io/docs/v1.12/upgrade-to-1.12/

Highlights

CSI Snapshot Data Movement

CSI Snapshot Data Movement refers to back up CSI snapshot data from the volatile and limited production environment into durable, heterogeneous, and scalable backup storage in a consistent manner; and restore the data to volumes in the original or alternative environment.

CSI Snapshot Data Movement is useful in below scenarios:

  • For on-premises users, the storage usually doesn't support durable snapshots, so it is impossible/less efficient/cost ineffective to keep volume snapshots by the storage This feature helps to move the snapshot data to a storage with lower cost and larger scale for long time preservation.
  • For public cloud users, this feature helps users to fulfill the multiple cloud strategy. It allows users to back up volume snapshots from one cloud provider and preserve or restore the data to another cloud provider. Then users will be free to flow their business data across cloud providers based on Velero backup and restore

CSI Snapshot Data Movement is built according to the Volume Snapshot Data Movement design (Volume Snapshot Data Movement). More details can be found in the design.

Resource Modifiers

In many use cases, customers often need to substitute specific values in Kubernetes resources during the restoration process like changing the namespace, changing the storage class, etc.

To address this need, Resource Modifiers (also known as JSON Substitutions) offer a generic solution in the restore workflow. It allows the user to define filters for specific resources and then specify a JSON patch (operator, path, value) to apply to the resource. This feature simplifies the process of making substitutions without requiring the implementation of a new RestoreItemAction plugin. More details can be found in Volume Snapshot Resource Modifiers design (Resource Modifiers).

Multiple VolumeSnapshotClasses

Prior to version 1.12, the Velero CSI plugin would choose the VolumeSnapshotClass in the cluster based on matching driver names and the presence of the "velero.io/csi-volumesnapshot-class" label. However, this approach proved inadequate for many user scenarios.

With the introduction of version 1.12, Velero now offers support for multiple VolumeSnapshotClasses in the CSI Plugin, enabling users to select a specific class for a particular backup. More details can be found in Multiple VolumeSnapshotClasses design (Multiple VolumeSnapshotClasses).

Restore Finalizer

Before v1.12, the restore controller would only delete restore resources but wouldn’t delete restore data from the backup storage location when the command velero restore delete was executed. The only chance Velero deletes restores data from the backup storage location is when the associated backup is deleted.

In this version, Velero introduces a finalizer that ensures the cleanup of all associated data for restores when running the command velero restore delete.

Runtime and dependencies

To fix CVEs and keep pace with Golang, Velero made changes as follows:

  • Bump Golang runtime to v1.20.7.
  • Bump several dependent libraries to new versions.
  • Bump Kopia to v0.13.

Breaking changes

  • Prior to v1.12, the parameter uploader-type for Velero installation had a default value of "restic". However, starting from this version, the default value has been changed to "kopia". This means that Velero will now use Kopia as the default path for file system backup.
  • The ways of setting CSI snapshot time have changed in v1.12. First, the sync waiting time for creating a snapshot handle in the CSI plugin is changed from the fixed 10 minutes into backup.Spec.CSISnapshotTimeout. The second, the async waiting time for VolumeSnapshot and VolumeSnapshotContent's status turning into ReadyToUse in operation uses the operation's timeout. The default value is 4 hours.
  • As from Velero helm chart v4.0.0, it supports multiple BSL and VSL, and the BSL and VSL have changed from the map into a slice, and this breaking change is not backward compatible. So it would be best to change the BSL and VSL configuration into slices before the Upgrade.

Limitations/Known issues

  • The Azure plugin supports Azure AD Workload identity way, but it only works for Velero native snapshots. It cannot support filesystem backup and snapshot data mover scenarios.

All Changes

  • Fixes #6498. Get resource client again after restore actions in case resource's gv is changed. This is an improvement of pr #6499, to support group changes. A group change usually happens in a restore plugin which is used for resource conversion: convert a resource from a not supported gv to a supported gv (#6634, @27149chen)
  • Add API support for volMode block, only error for now. (#6608, @shawn-hurley)
  • Fix how the AWS credentials are obtained from configuration (#6598, @aws_creds)
  • Add performance E2E test (#6569, @qiuming-best)
  • Non default s3 credential profiles work on Unified Repository Provider (kopia) (#6558, @kaovilai)
  • Fix issue #6571, fix the problem for restore item operation to set the errors correctly so that they can be recorded by Velero restore and then reflect the correct status for Velero restore. (#6594, @Lyndon-Li)
  • Fix issue 6575, flush the repo after delete the snapshot, otherwise, the changes(deleting repo snapshot) cannot be committed to the repo. (#6587, @Lyndon-Li)
  • Delete moved snapshots when the backup is deleted (#6547, @reasonerjt)
  • check if restore crd exist before operating restores (#6544, @allenxu404)
  • Remove PVC's selector in backup's PVC action. (#6481, @blackpiglet)
  • Delete the expired deletebackuprequests that are stuck in "InProgress" (#6476, @reasonerjt)
  • Fix issue #6534, reset PVB CR's StorageLocation to the latest one during backup sync as same as the backup CR. Also fix similar problem with DataUploadResult for data mover restore. (#6533, @Lyndon-Li)
  • Fix issue #6519. Restrict the client manager of node-agent server to include only Velero resources from the server's namespace, otherwise, the controllers will try to reconcile CRs from all the installed Velero namespaces. (#6523, @Lyndon-Li)
  • Track the skipped PVC and print the summary in backup log (#6496, @reasonerjt)
  • Add restore finalizer to clean up external resources (#6479, @allenxu404)
  • fix: Typos and add more spell checking rules to CI (#6415, @mateusoliveira43)
  • Add missing CompletionTimestamp and metrics when restore moved into terminal phase in restoreOperationsReconciler (#6397, @Nutrymaco)
  • Add support for resource Modifications in the restore flow. Also known as JSON Substitutions. (#6452, @anshulahuja98)
  • Remove dependency of the legacy client code from pkg/cmd directory part 2 (#6497, @blackpiglet)
  • Add data upload and download metrics (#6493, @allenxu404)
  • Fix issue 6490, If a backup/restore has multiple async operations and one operation fails while others are still in-progress, when all the operations finish, the backup/restore will be set as Completed falsely (#6491, @Lyndon-Li)
  • Velero Plugins no longer need kopia indirect dependency in their go.mod (#6484, @kaovilai)
  • Remove dependency of the legacy client code from pkg/cmd directory (#6469, @blackpiglet)
  • Add support for OpenStack CSI drivers topology keys (#6464, @openstack-csi-topology-keys)
  • Add exit code log and possible memory shortage warning log for Restic command failure. (#6459, @blackpiglet)
  • Modify DownloadRequest controller logic (#6433, @blackpiglet)
  • Add data download controller for data mover (#6436, @qiuming-best)
  • Fix hook filter display issue for backup describer (#6434, @allenxu404)
  • Retrieve DataUpload into backup result ConfigMap during volume snapshot restore. (#6410, @blackpiglet)
  • Design to add support for Multiple VolumeSnapshotClasses in CSI Plugin. (#5774, @anshulahuja98)
  • Clarify the deletion frequency for gc controller (#6414, @allenxu404)
  • Add unit tests for pkg/archive (#6396, @allenxu404)
  • Add UT for pkg/discovery (#6394, @qiuming-best)
  • Add UT for pkg/util (#6368, @Lyndon-Li)
  • Add the code for data mover restore expose (#6357, @Lyndon-Li)
  • Restore Endpoints before Services (#6315, @ywk253100)
  • Add warning message for volume snapshotter in data mover case. (#6377, @blackpiglet)
  • Add unit test for pkg/uploader (#6374, @qiuming-best)
  • Change kopia as the default path of PVB (#6370, @Lyndon-Li)
  • Do not persist VolumeSnapshot and VolumeSnapshotContent for snapshot DataMover case. (#6366, @blackpiglet)
  • Add data mover related options in CLI (#6365, @ywk253100)
  • Add dataupload controller (#6337, @qiuming-best)
  • Add UT cases for pkg/podvolume (#6336, @Lyndon-Li)
  • Remove Wait VolumeSnapshot to ReadyToUse logic. (#6327, @blackpiglet)
  • Enhance the code because of #6297, the return value of GetBucketRegion is not recorded, as a result, when it fails, we have no way to get the cause (#6326, @Lyndon-Li)
  • Skip updating status when CRDs are restored (#6325, @reasonerjt)
  • Include namespaces needed by namespaced-scope resources in backup. (#6320, @blackpiglet)
  • Update metrics when backup failed with validation error (#6318, @ywk253100)
  • Add th...
Read more

v1.11.1

25 Jul 08:59
bdbe7eb
Compare
Choose a tag to compare

v1.11.1

2023-07-25

Download

https://github.com/vmware-tanzu/velero/releases/tag/v1.11.1

Container Image

velero/velero:v1.11.1

Documentation

https://velero.io/docs/v1.11/

Upgrading

https://velero.io/docs/v1.11/upgrade-to-1.11/

All changes

  • Add support for OpenStack CSI drivers topology keys (#6488, @kayrus)
  • Enhance the code because of #6297, the return value of GetBucketRegion is not recorded, as a result, when it fails, we have no way to get the cause (#6477, @Lyndon-Li)
  • Fixed a bug where status.progress is not getting updated for backups. (#6324, @blackpiglet)
  • Restore Endpoints before Services (#6316, @ywk253100)
  • Fix issue #6182. If pod is not running, don't treat it as an error, let it go and leave a warning. (#6189, @Lyndon-Li)

v1.11.1-rc.1

25 Jul 08:21
bdbe7eb
Compare
Choose a tag to compare
v1.11.1-rc.1 Pre-release
Pre-release

v1.11.1

2023-07-19

Download

https://github.com/vmware-tanzu/velero/releases/tag/v1.11.1-rc.1

Container Image

velero/velero:v1.11.1-rc.1

Documentation

https://velero.io/docs/v1.11/

Upgrading

https://velero.io/docs/v1.11/upgrade-to-1.11/

All changes

  • Add support for OpenStack CSI drivers topology keys (#6488, @kayrus)
  • Enhance the code because of #6297, the return value of GetBucketRegion is not recorded, as a result, when it fails, we have no way to get the cause (#6477, @Lyndon-Li)
  • Fixed a bug where status.progress is not getting updated for backups. (#6324, @blackpiglet)
  • Restore Endpoints before Services (#6316, @ywk253100)
  • Fix issue #6182. If pod is not running, don't treat it as an error, let it go and leave a warning. (#6189, @Lyndon-Li)

v1.10.3

08 May 03:14
80cc81b
Compare
Choose a tag to compare

v1.10.3

2023-05-08

Download

https://github.com/vmware-tanzu/velero/releases/tag/v1.10.3

Container Image

velero/velero:v1.10.3

Documentation

https://velero.io/docs/v1.10/

Upgrading

https://velero.io/docs/v1.10/upgrade-to-1.10/

All changes

v1.10.3-rc.1

02 May 12:18
80cc81b
Compare
Choose a tag to compare
v1.10.3-rc.1 Pre-release
Pre-release

v1.10.3-rc.1

2023-04-28

Download

https://github.com/vmware-tanzu/velero/releases/tag/v1.10.3-rc.1

Container Image

velero/velero:v1.10.3-rc.1

Documentation

https://velero.io/docs/v1.10/

Upgrading

https://velero.io/docs/v1.10/upgrade-to-1.10/

All changes

v1.9.7

17 Apr 03:49
9ace4ec
Compare
Choose a tag to compare

v1.9.7

2023-04-17

Download

https://github.com/vmware-tanzu/velero/releases/tag/v1.9.7

Container Image

velero/velero:v1.9.7

Documentation

https://velero.io/docs/v1.9/

Upgrading

https://velero.io/docs/v1.9/upgrade-to-1.9/

All changes

v1.9.7-rc.1

14 Apr 11:16
9ace4ec
Compare
Choose a tag to compare
v1.9.7-rc.1 Pre-release
Pre-release

v1.9.7

2023-04-14

Download

https://github.com/vmware-tanzu/velero/releases/tag/v1.9.7-rc.1

Container Image

velero/velero:v1.9.7-rc.1

Documentation

https://velero.io/docs/v1.9/

Upgrading

https://velero.io/docs/v1.9/upgrade-to-1.9/

All changes

v1.11.0

20 Apr 10:12
0da2baa
Compare
Choose a tag to compare

v1.11

2023-04-20

Download

https://github.com/vmware-tanzu/velero/releases/tag/v1.11.0

Container Image

velero/velero:v1.11.0

Documentation

https://velero.io/docs/v1.11/

Upgrading

https://velero.io/docs/v1.11/upgrade-to-1.11/

Highlights

BackupItemAction v2

This feature implements the BackupItemAction v2. BIA v2 has two new methods: Progress() and Cancel() and modifies the Execute() return value.

The API change is needed to facilitate long-running BackupItemAction plugin actions that may not be complete when the Execute() method returns. This will allow long-running BackupItemAction plugin actions to continue in the background while the Velero moves to the following plugin or the next item.

RestoreItemAction v2

This feature implemented the RestoreItemAction v2. RIA v2 has three new methods: Progress(), Cancel(), and AreAdditionalItemsReady(), and it modifies RestoreItemActionExecuteOutput() structure in the RIA return value.

The Progress() and Cancel() methods are needed to facilitate long-running RestoreItemAction plugin actions that may not be complete when the Execute() method returns. This will allow long-running RestoreItemAction plugin actions to continue in the background while the Velero moves to the following plugin or the next item. The AreAdditionalItemsReady() method is needed to allow plugins to tell Velero to wait until the returned additional items have been restored and are ready for use in the cluster before restoring the current item.

Plugin Progress Monitoring

This is intended as a replacement for the previously-approved Upload Progress Monitoring design (Upload Progress Monitoring) to expand the supported use cases beyond snapshot upload to include what was previously called Async Backup/Restore Item Actions.

Flexible resource policy that can filter volumes to skip in the backup

This feature provides a flexible policy to filter volumes in the backup without requiring patching any labels or annotations to the pods or volumes. This policy is configured as k8s ConfigMap and maintained by the users themselves, and it can be extended to more scenarios in the future. By now, the policy rules out volumes from backup depending on the CSI driver, NFS setting, volume size, and StorageClass setting. Please refer to Resource policies rules for the policy's ConifgMap format. It is not guaranteed to work on unofficial third-party plugins as it may not follow the existing backup workflow code logic of Velero.

Resource Filters that can distinguish cluster scope and namespace scope resources

This feature adds four new resource filters for backup. The new filters are separated into cluster scope and namespace scope. Before this feature, Velero could not filter cluster scope resources precisely. This feature provides the ability and refactors existing resource filter parameters.

New parameter in installation to customize the serviceaccount name

The velero install sub-command now includes a new parameter,--service-account-name, which allows users to specify the ServiceAccountName for the Velero and node-agent pods. This feature may be particularly useful for users who utilize IRSA (IAM Roles for Service Accounts) in Amazon EKS (Elastic Kubernetes Service)."

Add a parameter for setting the Velero server connection with the k8s API server's timeout

In Velero, some code pieces need to communicate with the k8s API server. Before v1.11, these code pieces used hard-code timeout settings. This feature adds a resource-timeout parameter in the velero server binary to make it configurable.

Add resource list in the output of the restore describe command

Before this feature, Velero restore didn't have a restored resources list as the Velero backup. It's not convenient for users to learn what is restored. This feature adds the resources list and the handling result of the resources (including created, updated, failed, and skipped).

Support JSON format output of backup describe command

Before the Velero v1.11 release, users could not choose Velero's backup describe command's output format. The command output format is friendly for human reading, but it's not a structured output, and it's not easy for other programs to get information from it. Velero v1.11 adds a JSON format output for the backup describe command.

Refactor controllers with controller-runtime

In v1.11, Backup Controller and Restore controller are refactored with controller-runtime. Till v1.11, all Velero controllers use the controller-runtime framework.

Runtime and dependencies

To fix CVEs and keep pace with Golang, Velero made changes as follows:

  • Bump Golang runtime to v1.19.8.
  • Bump several dependent libraries to new versions.
  • Compile Restic (v0.15.0) with Golang v1.19.8 instead of packaging the official binary.

Breaking changes

  • The Velero CSI plugin now determines whether to restore Volume's data from snapshots on the restore's restorePVs setting. Before v1.11, the CSI plugin doesn't check the restorePVs parameter setting.

Limitations/Known issues

  • The Flexible resource policy that can filter volumes to skip in the backup is not guaranteed to work on unofficial third-party plugins because the plugins may not follow the existing backup workflow code logic of Velero. The ConfigMap used as the policy is supposed to be maintained by users.

All Changes

  • Ignore not found error during patching managedFields (#6110, @ywk253100)
  • Modify new scope resource filters name. (#6089, @blackpiglet)
  • Make Velero not exits when EnableCSI is on and CSI snapshot not installed (#6062, @blackpiglet)
  • Restore Services before Clusters (#6057, @ywk253100)
  • Fixed backup deletion bug related to async operations (#6041, @sseago)
  • Update Golang version to v1.19 for branch main. (#6039, @blackpiglet)
  • Fix issue #5972, don't assume errorField as error type when dealing with logger.WithError (#6028, @Lyndon-Li)
  • distinguish between New and InProgress operations (#6012, @sseago)
  • Modify golangci.yaml file. Resolve found lint issues. (#6008, @blackpiglet)
  • Remove Reference of itemsnapshotter (#5997, @reasonerjt)
  • minor fixes for backup_operations_controller (#5996, @sseago)
  • RIAv2 async operations controller work (#5993, @sseago)
  • Follow-on fixes for BIAv2 controller work (#5971, @sseago)
  • Refactor backup controller based on the controller-runtime framework. (#5969, @qiuming-best)
  • Fix client wait problem after async operation change, velero backup/restore --wait should check a full list of the terminal status (#5964, @Lyndon-Li)
  • Fix issue #5935, refactor the logics for backup/restore persistent log, so as to remove the contest to gzip writer (#5956, @Lyndon-Li)
  • Switch the base image to distroless/base-nossl-debian11 to reduce the CVE triage efforts (#5939, @ywk253100)
  • Wait for additional items to be ready before restoring current item (#5933, @sseago)
  • Add configurable server setting for default timeouts (#5926, @eemcmullan)
  • Add warning/error result to cmd velero backup describe (#5916, @allenxu404)
  • Fix Dependabot alerts. Use 1.18 and 1.19 golang instead of patch image in dockerfile. Add release-1.10 and release-1.9 in Trivy daily scan. (#5911, @blackpiglet)
  • Update client-go to v0.25.6 (#5907, @kaovilai)
  • Limit the concurrent number for backup's VolumeSnapshot operation. (#5900, @blackpiglet)
  • Fix goreleaser issue for resolving tags and updated it's version. (#5899, @anshulahuja98)
  • This is to fix issue 5881, enhance the PVB tracker in two modes, Track and Taken (#5894, @Lyndon-Li)
  • Add labels for velero installed namespace to support PSA. (#5873, @blackpiglet)
  • Add restored resource list in the restore describe command (#5867, @ywk253100)
  • Add a json output to cmd velero backup describe (#5865, @allenxu404)
  • Make restore controller adopting the controller-runtime framework. (#5864, @blackpiglet)
  • Replace k8s.io/apimachinery/pkg/util/clock with k8s.io/utils/clock (#5859, @hezhizhen)
  • Restore finalizer and managedFields of metadata during the restoration (#5853, @ywk253100)
  • BIAv2 async operations controller work (#5849, @sseago)
  • Add secret restore item action to handle service account token secret (#5843, @ywk253100)
  • Add new resource filters can separate cluster and namespace scope resources. (#5838, @blackpiglet)
  • Correct PVB/PVR Failed Phase patching during startup (#5828, @kaovilai)
  • bump up golang net to fix CVE-2022-41721 (#5812, @Lyndon-Li)
  • Update CRD descriptions for SnapshotVolumes and restorePVs (#5807, @shubham-pampattiwar)
  • Add mapped selected-node existence check (#5806, @blackpiglet)
  • Add option "--service-account-name" to install cmd (#5802, @reasonerjt)
  • Enable staticcheck linter. (#5788, @blackpiglet)
  • Set Kopia IgnoreUnknownTypes in ErrorHandlingPolicy to True for ignoring backup unknown file type (#5786, @qiuming-best)
  • Bump up Restic version to 0.15.0 (#5784, @qiuming-best)
  • Add File system backup related matrics to Grafana dashboard
    • Add metrics backup_warning_total for record of total warnings
    • Add metrics backup_last_status for record of last status of the backup (#5779, @allenxu404)
  • Design for Handling backup of volumes by resources filters (#5773, @qiuming-best)
  • Add PR container build action, which will not push image. Add GOARM parameter. (#5771, @blackpiglet)
  • Fix issue 5458, track pod volume backup until the CR is submitted in case it is skipped half way (#5769, @Lyndon-Li)
  • Fix issue 5226, invalidate the related backup repositories whenever the backup storage info change in BSL (#5768, @Lyndon-Li)
  • Add Restic builder in Dockerfile, and keep the used built Golang image version in accordance with upstrea...
Read more

v1.11.0-rc.2

19 Apr 12:31
0da2baa
Compare
Choose a tag to compare
v1.11.0-rc.2 Pre-release
Pre-release

v1.11.0-rc.2

2023-04-19

Download

https://github.com/vmware-tanzu/velero/releases/tag/v1.11.0-rc.2

Container Image

velero/velero:v1.11.0-rc.2

Documentation

https://velero.io/docs/v1.11/

Upgrading

https://velero.io/docs/v1.11/upgrade-to-1.11/

Highlights

BackupItemAction v2

This feature implements the BackupItemAction v2. BIA v2 has two new methods: Progress() and Cancel() and modifies the Execute() return value.

The API change is needed to facilitate long-running BackupItemAction plugin actions that may not be complete when the Execute() method returns. This will allow long-running BackupItemAction plugin actions to continue in the background while the Velero moves to the following plugin or the next item.

RestoreItemAction v2

This feature implemented the RestoreItemAction v2. RIA v2 has three new methods: Progress(), Cancel(), and AreAdditionalItemsReady(), and it modifies RestoreItemActionExecuteOutput() structure in the RIA return value.

The Progress() and Cancel() methods are needed to facilitate long-running RestoreItemAction plugin actions that may not be complete when the Execute() method returns. This will allow long-running RestoreItemAction plugin actions to continue in the background while the Velero moves to the following plugin or the next item. The AreAdditionalItemsReady() method is needed to allow plugins to tell Velero to wait until the returned additional items have been restored and are ready for use in the cluster before restoring the current item.

Plugin Progress Monitoring

This is intended as a replacement for the previously-approved Upload Progress Monitoring design (Upload Progress Monitoring) to expand the supported use cases beyond snapshot upload to include what was previously called Async Backup/Restore Item Actions.

Flexible resource policy that can filter volumes to skip in the backup

This feature provides a flexible policy to filter volumes in the backup without requiring patching any labels or annotations to the pods or volumes. This policy is configured as k8s ConfigMap and maintained by the users themselves, and it can be extended to more scenarios in the future. By now, the policy rules out volumes from backup depending on the CSI driver, NFS setting, volume size, and StorageClass setting. Please refer to Resource policies rules for the policy's ConifgMap format. It is not guaranteed to work on unofficial third-party plugins as it may not follow the existing backup workflow code logic of Velero.

Resource Filters that can distinguish cluster scope and namespace scope resources

This feature adds four new resource filters for backup. The new filters are separated into cluster scope and namespace scope. Before this feature, Velero could not filter cluster scope resources precisely. This feature provides the ability and refactors existing resource filter parameters.

New parameter in installation to customize the serviceaccount name

The velero install sub-command now includes a new parameter,--service-account-name, which allows users to specify the ServiceAccountName for the Velero and node-agent pods. This feature may be particularly useful for users who utilize IRSA (IAM Roles for Service Accounts) in Amazon EKS (Elastic Kubernetes Service)."

Add a parameter for setting the Velero server connection with the k8s API server's timeout

In Velero, some code pieces need to communicate with the k8s API server. Before v1.11, these code pieces used hard-code timeout settings. This feature adds a resource-timeout parameter in the velero server binary to make it configurable.

Add resource list in the output of the restore describe command

Before this feature, Velero restore didn't have a restored resources list as the Velero backup. It's not convenient for users to learn what is restored. This feature adds the resources list and the handling result of the resources (including created, updated, failed, and skipped).

Support JSON format output of backup describe command

Before the Velero v1.11 release, users could not choose Velero's backup describe command's output format. The command output format is friendly for human reading, but it's not a structured output, and it's not easy for other programs to get information from it. Velero v1.11 adds a JSON format output for the backup describe command.

Refactor controllers with controller-runtime

In v1.11, Backup Controller and Restore controller are refactored with controller-runtime. Till v1.11, all Velero controllers use the controller-runtime framework.

Runtime and dependencies

To fix CVEs and keep pace with Golang, Velero made changes as follows:

  • Bump Golang runtime to v1.19.8.
  • Bump several dependent libraries to new versions.
  • Compile Restic (v0.15.0) with Golang v1.19.8 instead of packaging the official binary.

Breaking changes

  • The Velero CSI plugin now determines whether to restore Volume's data from snapshots on the restore's restorePVs setting. Before v1.11, the CSI plugin doesn't check the restorePVs parameter setting.

Limitations/Known issues

  • The Flexible resource policy that can filter volumes to skip in the backup is not guaranteed to work on unofficial third-party plugins because the plugins may not follow the existing backup workflow code logic of Velero. The ConfigMap used as the policy is supposed to be maintained by users.

All Changes

  • Ignore not found error during patching managedFields (#6110, @ywk253100)
  • Modify new scope resource filters name. (#6089, @blackpiglet)
  • Make Velero not exits when EnableCSI is on and CSI snapshot not installed (#6062, @blackpiglet)
  • Restore Services before Clusters (#6057, @ywk253100)
  • Fixed backup deletion bug related to async operations (#6041, @sseago)
  • Update Golang version to v1.19 for branch main. (#6039, @blackpiglet)
  • Fix issue #5972, don't assume errorField as error type when dealing with logger.WithError (#6028, @Lyndon-Li)
  • distinguish between New and InProgress operations (#6012, @sseago)
  • Modify golangci.yaml file. Resolve found lint issues. (#6008, @blackpiglet)
  • Remove Reference of itemsnapshotter (#5997, @reasonerjt)
  • minor fixes for backup_operations_controller (#5996, @sseago)
  • RIAv2 async operations controller work (#5993, @sseago)
  • Follow-on fixes for BIAv2 controller work (#5971, @sseago)
  • Refactor backup controller based on the controller-runtime framework. (#5969, @qiuming-best)
  • Fix client wait problem after async operation change, velero backup/restore --wait should check a full list of the terminal status (#5964, @Lyndon-Li)
  • Fix issue #5935, refactor the logics for backup/restore persistent log, so as to remove the contest to gzip writer (#5956, @Lyndon-Li)
  • Switch the base image to distroless/base-nossl-debian11 to reduce the CVE triage efforts (#5939, @ywk253100)
  • Wait for additional items to be ready before restoring current item (#5933, @sseago)
  • Add configurable server setting for default timeouts (#5926, @eemcmullan)
  • Add warning/error result to cmd velero backup describe (#5916, @allenxu404)
  • Fix Dependabot alerts. Use 1.18 and 1.19 golang instead of patch image in dockerfile. Add release-1.10 and release-1.9 in Trivy daily scan. (#5911, @blackpiglet)
  • Update client-go to v0.25.6 (#5907, @kaovilai)
  • Limit the concurrent number for backup's VolumeSnapshot operation. (#5900, @blackpiglet)
  • Fix goreleaser issue for resolving tags and updated it's version. (#5899, @anshulahuja98)
  • This is to fix issue 5881, enhance the PVB tracker in two modes, Track and Taken (#5894, @Lyndon-Li)
  • Add labels for velero installed namespace to support PSA. (#5873, @blackpiglet)
  • Add restored resource list in the restore describe command (#5867, @ywk253100)
  • Add a json output to cmd velero backup describe (#5865, @allenxu404)
  • Make restore controller adopting the controller-runtime framework. (#5864, @blackpiglet)
  • Replace k8s.io/apimachinery/pkg/util/clock with k8s.io/utils/clock (#5859, @hezhizhen)
  • Restore finalizer and managedFields of metadata during the restoration (#5853, @ywk253100)
  • BIAv2 async operations controller work (#5849, @sseago)
  • Add secret restore item action to handle service account token secret (#5843, @ywk253100)
  • Add new resource filters can separate cluster and namespace scope resources. (#5838, @blackpiglet)
  • Correct PVB/PVR Failed Phase patching during startup (#5828, @kaovilai)
  • bump up golang net to fix CVE-2022-41721 (#5812, @Lyndon-Li)
  • Update CRD descriptions for SnapshotVolumes and restorePVs (#5807, @shubham-pampattiwar)
  • Add mapped selected-node existence check (#5806, @blackpiglet)
  • Add option "--service-account-name" to install cmd (#5802, @reasonerjt)
  • Enable staticcheck linter. (#5788, @blackpiglet)
  • Set Kopia IgnoreUnknownTypes in ErrorHandlingPolicy to True for ignoring backup unknown file type (#5786, @qiuming-best)
  • Bump up Restic version to 0.15.0 (#5784, @qiuming-best)
  • Add File system backup related matrics to Grafana dashboard
    • Add metrics backup_warning_total for record of total warnings
    • Add metrics backup_last_status for record of last status of the backup (#5779, @allenxu404)
  • Design for Handling backup of volumes by resources filters (#5773, @qiuming-best)
  • Add PR container build action, which will not push image. Add GOARM parameter. (#5771, @blackpiglet)
  • Fix issue 5458, track pod volume backup until the CR is submitted in case it is skipped half way (#5769, @Lyndon-Li)
  • Fix issue 5226, invalidate the related backup repositories whenever the backup storage info change in BSL (#5768, @Lyndon-Li)
  • Add Restic builder in Dockerfile, and keep the used built Golang image version in accord...
Read more