mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-01-11 15:30:34 +00:00
Compare commits
15 Commits
release-1.
...
v1.8.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a818c97dde | ||
|
|
106f8a0376 | ||
|
|
3c636760af | ||
|
|
de1722b001 | ||
|
|
0ceb3850e7 | ||
|
|
ae4cfa9e0e | ||
|
|
796913c3cc | ||
|
|
4a8d2b00fb | ||
|
|
ccf699171d | ||
|
|
c11b682ec4 | ||
|
|
1d656a0aec | ||
|
|
764143da8d | ||
|
|
dbce8a2e90 | ||
|
|
1a8e660ea3 | ||
|
|
3607bf0f72 |
@@ -11,7 +11,7 @@
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
FROM --platform=$BUILDPLATFORM golang:1.17 as builder-env
|
||||
FROM --platform=$BUILDPLATFORM golang:1.17.6 as builder-env
|
||||
|
||||
ARG GOPROXY
|
||||
ARG PKG
|
||||
@@ -50,7 +50,8 @@ RUN mkdir -p /output/usr/bin && \
|
||||
go build -o /output/${BIN} \
|
||||
-ldflags "${LDFLAGS}" ${PKG}/cmd/${BIN}
|
||||
|
||||
FROM gcr.io/distroless/base-debian10:nonroot
|
||||
# The digest for tag 'nonroot' at the time of the release
|
||||
FROM gcr.io/distroless/base-debian10@sha256:6dc8ca7c3bbdb1a00fd8f1229b1b8c88986a5818b830e3a42d4946982dbbf18b
|
||||
|
||||
LABEL maintainer="Nolan Brubaker <brubakern@vmware.com>"
|
||||
|
||||
|
||||
@@ -31,6 +31,8 @@ Starting v1.8 velero will only support v1 CRD, therefore, it will only run on Ku
|
||||
|
||||
### All changes
|
||||
|
||||
* E2E SSR test add retry mechanism and logs (#4594, @mqiu)
|
||||
* Update doc for v1.8 (#4517, @reasonerjt)
|
||||
* E2E test on ssr object with controller namespace mix-ups (#4521, @mqiu)
|
||||
* Check whether the volume is provisioned by CSI driver or not by the annotation as well (#4513, @ywk253100)
|
||||
* Initialize the labels field of `velero backup-location create` option to avoid #4484 (#4491, @ywk253100)
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
Update doc for v1.8
|
||||
@@ -12,7 +12,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM golang:1.17
|
||||
FROM golang:1.17.6
|
||||
|
||||
ARG GOPROXY
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -103,8 +99,7 @@ data:
|
||||
# add your configuration data here as key-value pairs
|
||||
```
|
||||
|
||||
Then, in your plugin's implementation, you can read this ConfigMap to fetch the necessary configuration. See the [restic restore action][3]
|
||||
for an example of this -- in particular, the `getPluginConfig(...)` function.
|
||||
Then, in your plugin's implementation, you can read this ConfigMap to fetch the necessary configuration.
|
||||
|
||||
## Feature Flags
|
||||
|
||||
@@ -118,4 +113,3 @@ Velero adds the `LD_LIBRARY_PATH` into the list of environment variables to prov
|
||||
|
||||
[1]: https://github.com/vmware-tanzu/velero-plugin-example
|
||||
[2]: https://github.com/vmware-tanzu/velero/blob/main/pkg/plugin/logger.go
|
||||
[3]: https://github.com/vmware-tanzu/velero/blob/main/pkg/restore/restic_restore_action.go
|
||||
|
||||
@@ -73,16 +73,30 @@ func SSRTest() {
|
||||
fmt.Sprintf("Failed to create an ssr object in %s namespace", VeleroCfg.VeleroNamespace))
|
||||
|
||||
ssrListResp := new(v1.ServerStatusRequestList)
|
||||
|
||||
By(fmt.Sprintf("Check ssr object in %s namespace", VeleroCfg.VeleroNamespace))
|
||||
Expect(client.Kubebuilder.List(ctx, ssrListResp, &kbclient.ListOptions{Namespace: VeleroCfg.VeleroNamespace})).To(Succeed(),
|
||||
fmt.Sprintf("Failed to list ssr object in %s namespace", VeleroCfg.VeleroNamespace))
|
||||
Expect(len(ssrListResp.Items)).To(BeNumerically("==", 1),
|
||||
fmt.Sprintf("Count of ssr object in %s namespace is not 1", VeleroCfg.VeleroNamespace))
|
||||
Expect(ssrListResp.Items[0].Status.ServerVersion).NotTo(BeEmpty(),
|
||||
fmt.Sprintf("ServerVersion of ssr object in %s namespace should not empty", VeleroCfg.VeleroNamespace))
|
||||
Expect(ssrListResp.Items[0].Status.Phase == "Processed").To(BeTrue(),
|
||||
fmt.Sprintf("Phase of ssr object in %s namespace should be Processed", VeleroCfg.VeleroNamespace))
|
||||
err = waitutil.PollImmediate(5*time.Second, time.Minute,
|
||||
func() (bool, error) {
|
||||
if err = client.Kubebuilder.List(ctx, ssrListResp, &kbclient.ListOptions{Namespace: VeleroCfg.VeleroNamespace}); err != nil {
|
||||
return false, fmt.Errorf("failed to list ssr object in %s namespace with err %v", VeleroCfg.VeleroNamespace, err)
|
||||
}
|
||||
if len(ssrListResp.Items) != 1 {
|
||||
return false, fmt.Errorf("count of ssr object in %s namespace is not 1", VeleroCfg.VeleroNamespace)
|
||||
}
|
||||
|
||||
if ssrListResp.Items[0].Status.ServerVersion == "" {
|
||||
fmt.Printf("ServerVersion of ssr object in %s namespace should not empty, current response result %v\n", VeleroCfg.VeleroNamespace, ssrListResp)
|
||||
return false, nil
|
||||
}
|
||||
|
||||
if ssrListResp.Items[0].Status.Phase != "Processed" {
|
||||
return false, fmt.Errorf("phase of ssr object in %s namespace should be Processed but got phase %s", VeleroCfg.VeleroNamespace, ssrListResp.Items[0].Status.Phase)
|
||||
}
|
||||
return true, nil
|
||||
})
|
||||
if err == waitutil.ErrWaitTimeout {
|
||||
fmt.Printf("exceed test case deadline and failed to check ssr object in %s namespace", VeleroCfg.VeleroNamespace)
|
||||
}
|
||||
Expect(err).To(Succeed(), fmt.Sprintf("Failed to check ssr object in %s namespace", VeleroCfg.VeleroNamespace))
|
||||
|
||||
By(fmt.Sprintf("Check ssr object in %s namespace", testNS))
|
||||
Expect(client.Kubebuilder.List(ctx, ssrListResp, &kbclient.ListOptions{Namespace: testNS})).To(Succeed(),
|
||||
|
||||
@@ -70,10 +70,16 @@ var pluginsMatrix = map[string]map[string][]string{
|
||||
"vsphere": {"velero/velero-plugin-for-aws:v1.3.0", "vsphereveleroplugin/velero-plugin-for-vsphere:v1.3.0"},
|
||||
"gcp": {"velero/velero-plugin-for-gcp:v1.3.0"},
|
||||
},
|
||||
"v1.8": {
|
||||
"aws": {"velero/velero-plugin-for-aws:v1.4.0"},
|
||||
"azure": {"velero/velero-plugin-for-microsoft-azure:v1.4.0"},
|
||||
"vsphere": {"velero/velero-plugin-for-aws:v1.4.0", "vsphereveleroplugin/velero-plugin-for-vsphere:v1.3.1"},
|
||||
"gcp": {"velero/velero-plugin-for-gcp:v1.4.0"},
|
||||
},
|
||||
"main": {
|
||||
"aws": {"velero/velero-plugin-for-aws:main"},
|
||||
"azure": {"velero/velero-plugin-for-microsoft-azure:main"},
|
||||
"vsphere": {"velero/velero-plugin-for-aws:main", "vsphereveleroplugin/velero-plugin-for-vsphere:v1.3.0"},
|
||||
"vsphere": {"velero/velero-plugin-for-aws:main", "vsphereveleroplugin/velero-plugin-for-vsphere:v1.3.1"},
|
||||
"gcp": {"velero/velero-plugin-for-gcp:main"},
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user