mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-01-10 23:11:03 +00:00
Merge branch '1.8-release-note' into 1.8-release-note
This commit is contained in:
@@ -6,7 +6,6 @@
|
||||
|
||||
| Maintainer | GitHub ID | Affiliation |
|
||||
| --------------- | --------- | ----------- |
|
||||
| Bridget McErlean | [zubron](https://github.com/zubron) | [VMware](https://www.github.com/vmware/) |
|
||||
| Dave Smith-Uchida | [dsu-igeek](https://github.com/dsu-igeek) | [Kasten](https://github.com/kastenhq/) |
|
||||
| JenTing Hsiao | [jenting](https://github.com/jenting) | [SUSE](https://github.com/SUSE/)
|
||||
| Scott Seago | [sseago](https://github.com/sseago) | [OpenShift](https://github.com/openshift)
|
||||
@@ -23,6 +22,7 @@
|
||||
* Nolan Brubaker ([nrb](https://github.com/nrb))
|
||||
* Ashish Amarnath ([ashish-amarnath](https://github.com/ashish-amarnath))
|
||||
* Carlisia Thompson ([carlisia](https://github.com/carlisia))
|
||||
* Bridget McErlean ([zubron](https://github.com/zubron))
|
||||
|
||||
## Velero Contributors & Stakeholders
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ https://velero.io/docs/v1.8/upgrade-to-1.8/
|
||||
|
||||
### Highlights
|
||||
|
||||
#### The plugins to support handling volumes created by the AWS CSI driver
|
||||
#### The plugins to support handling volumes created by the CSI drivers of cloud providers
|
||||
The new versions of plugins for AWS, Azure and GCP will be released with the support of snapshotting and restoring the persistent volumes provisioned by CSI driver via the APIs of the cloud providers. With this enhancement, users can backup and restore the persistent volumes on these could providers without using the CSI plugin, which will remain beta and the feature flag `EnableCSI` will be disabled by default.
|
||||
|
||||
For the version of the plugins and the CSI drivers they support respectively please see the table:
|
||||
@@ -26,11 +26,19 @@ For the version of the plugins and the CSI drivers they support respectively ple
|
||||
| velero-plugin-for-microsoft-azure | v1.4.0 | disk.csi.azure.com |
|
||||
| velero-plugin-for-gcp | v1.4.0 | pd.csi.storage.gke.io |
|
||||
|
||||
#### IPv6 dual stack support
|
||||
By successfully running the E2E test on IPv6 dual stack environment, we've verfied the functionality of velero on IPv6 dual stack.
|
||||
#### Refactor the controllers using Kubebuilder v3
|
||||
Continuing the code modernization work. Some controllers have been reworked using Kubebuilder v3. We'll continue the work to using Kubebuilder to rewrite the controllers in future releases.
|
||||
#### Enhancements to E2E test cases
|
||||
More test cases have been added to the E2E test suite to improve the release health.
|
||||
|
||||
#### Deleting BSLs also cleans up related resources
|
||||
|
||||
When a Backup Storage Location (BSL) is deleted, backup and Restic repository resources will also be deleted.
|
||||
|
||||
#### Breaking changes
|
||||
|
||||
Starting v1.8 velero will only support v1 CRD, therefore, it will only run on Kubernetes v1.16+
|
||||
|
||||
### All changes
|
||||
|
||||
1
changelogs/unreleased/4634-qiuming-best
Normal file
1
changelogs/unreleased/4634-qiuming-best
Normal file
@@ -0,0 +1 @@
|
||||
Fix E2E backup namespaces test
|
||||
1
changelogs/unreleased/4639-jxun
Normal file
1
changelogs/unreleased/4639-jxun
Normal file
@@ -0,0 +1 @@
|
||||
Update image used by E2E test to gcr.io
|
||||
@@ -38,6 +38,9 @@
|
||||
# This script is meant to be a combination of documentation and executable.
|
||||
# If you have questions at any point, please stop and ask!
|
||||
|
||||
# Fail on any error.
|
||||
set -eo pipefail
|
||||
|
||||
# Directory in which the script itself resides, so we can use it for calling programs that are in the same directory.
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
---
|
||||
first_name: Bridget
|
||||
last_name: McErlean
|
||||
image: /img/contributors/bridget-mcerlean.png
|
||||
github_handle: zubron
|
||||
---
|
||||
Engineer
|
||||
@@ -54,14 +54,10 @@ You will need to give your plugin(s) the full name when registering them by call
|
||||
Velero supports the following kinds of plugins:
|
||||
|
||||
- **Object Store** - persists and retrieves backups, backup logs and restore logs
|
||||
- **Item Snapshotter** - creates snapshots for Kubernetes objects during backup and restores the object from snapshots during restore. ItemSnapshotters
|
||||
are typically used with the [Astrolabe](https://github.com/vmware-tanzu/astrolabe) framework.
|
||||
- **Volume Snapshotter** - creates volume snapshots (during backup) and restores volumes from snapshots (during restore)
|
||||
- **Backup Item Action** - executes arbitrary logic for individual items prior to storing them in a backup file
|
||||
- **Restore Item Action** - executes arbitrary logic for individual items prior to restoring them into a cluster
|
||||
- **Delete Item Action** - executes arbitrary logic based on individual items within a backup prior to deleting the backup
|
||||
## Deprecated plugin kinds
|
||||
- **Volume Snapshotter** - creates volume snapshots (during backup) and restores volumes from snapshots (during restore) VolumeSnapshotters
|
||||
are deprecated and will be replaced with ItemSnapshotter/Astrolabe plugins.
|
||||
|
||||
## Plugin Logging
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 216 KiB |
@@ -48,17 +48,6 @@ func (m *MultiNSBackup) Init() error {
|
||||
m.Client = TestClientInstance
|
||||
m.NSExcluded = &[]string{}
|
||||
|
||||
// Currently it's hard to build a large list of namespaces to include and wildcards do not work so instead
|
||||
// we will exclude all of the namespaces that existed prior to the test from the backup
|
||||
namespaces, err := m.Client.ClientGo.CoreV1().Namespaces().List(context.Background(), v1.ListOptions{})
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "Could not retrieve namespaces")
|
||||
}
|
||||
|
||||
for _, excludeNamespace := range namespaces.Items {
|
||||
*m.NSExcluded = append(*m.NSExcluded, excludeNamespace.Name)
|
||||
}
|
||||
|
||||
if m.IsScalTest {
|
||||
m.NamespacesTotal = 2500
|
||||
m.TimeoutDuration = time.Hour * 2
|
||||
@@ -74,6 +63,20 @@ func (m *MultiNSBackup) Init() error {
|
||||
FailedMSG: "Failed to successfully backup and restore multiple namespaces",
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *MultiNSBackup) StartRun() error {
|
||||
// Currently it's hard to build a large list of namespaces to include and wildcards do not work so instead
|
||||
// we will exclude all of the namespaces that existed prior to the test from the backup
|
||||
namespaces, err := m.Client.ClientGo.CoreV1().Namespaces().List(context.Background(), v1.ListOptions{})
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "Could not retrieve namespaces")
|
||||
}
|
||||
|
||||
for _, excludeNamespace := range namespaces.Items {
|
||||
*m.NSExcluded = append(*m.NSExcluded, excludeNamespace.Name)
|
||||
}
|
||||
|
||||
m.BackupArgs = []string{
|
||||
"create", "--namespace", VeleroCfg.VeleroNamespace, "backup", m.BackupName,
|
||||
@@ -85,7 +88,6 @@ func (m *MultiNSBackup) Init() error {
|
||||
"create", "--namespace", VeleroCfg.VeleroNamespace, "restore", m.RestoreName,
|
||||
"--from-backup", m.BackupName, "--wait",
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ depends on your test patterns.
|
||||
*/
|
||||
type VeleroBackupRestoreTest interface {
|
||||
Init() error
|
||||
StartRun() error
|
||||
CreateResources() error
|
||||
Backup() error
|
||||
Destroy() error
|
||||
@@ -137,6 +138,10 @@ func (t *TestCase) CreateResources() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t *TestCase) StartRun() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t *TestCase) Backup() error {
|
||||
if err := VeleroCmdExec(t.Ctx, VeleroCfg.VeleroCLI, t.BackupArgs); err != nil {
|
||||
RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, t.BackupName, "")
|
||||
@@ -180,8 +185,11 @@ func RunTestCase(test VeleroBackupRestoreTest) error {
|
||||
}
|
||||
|
||||
defer test.Clean()
|
||||
|
||||
err := test.CreateResources()
|
||||
err := test.StartRun()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = test.CreateResources()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ func NewDeployment(name, ns string, replicas int32, labels map[string]string) *a
|
||||
Containers: []v1.Container{
|
||||
{
|
||||
Name: name,
|
||||
Image: "busybox:latest",
|
||||
Image: "gcr.io/velero-gcp/busybox:latest",
|
||||
Command: []string{"sleep", "1000000"},
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user