From 8d714d38ea2b3640dc085f3c21ef1416ba9acae9 Mon Sep 17 00:00:00 2001 From: Scott Seago Date: Mon, 9 Aug 2021 16:27:32 -0400 Subject: [PATCH 001/136] Distinguish between different unnamed node ports when preserving Signed-off-by: Scott Seago --- changelogs/unreleased/4026-sseago | 1 + pkg/restore/service_action.go | 13 ++++++++++--- pkg/restore/service_action_test.go | 4 ++++ 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 changelogs/unreleased/4026-sseago diff --git a/changelogs/unreleased/4026-sseago b/changelogs/unreleased/4026-sseago new file mode 100644 index 000000000..951ced8a7 --- /dev/null +++ b/changelogs/unreleased/4026-sseago @@ -0,0 +1 @@ +Distinguish between different unnamed node ports when preserving diff --git a/pkg/restore/service_action.go b/pkg/restore/service_action.go index e8b58f062..01082c7a1 100644 --- a/pkg/restore/service_action.go +++ b/pkg/restore/service_action.go @@ -83,6 +83,7 @@ func deleteNodePorts(service *corev1api.Service) error { // to the last-applied-config annotation. We'll retain these values, and // clear out any other (presumably auto-assigned) NodePort values. explicitNodePorts := sets.NewString() + unnamedPortInts := sets.NewInt() lastAppliedConfig, ok := service.Annotations[annotationLastAppliedConfig] if ok { appliedServiceUnstructured := new(map[string]interface{}) @@ -123,7 +124,7 @@ func deleteNodePorts(service *corev1api.Service) error { portName, ok := p["name"] if !ok { // unnamed port - explicitNodePorts.Insert("") + unnamedPortInts.Insert(nodePortInt) } else { explicitNodePorts.Insert(portName.(string)) } @@ -135,8 +136,14 @@ func deleteNodePorts(service *corev1api.Service) error { } for i, port := range service.Spec.Ports { - if !explicitNodePorts.Has(port.Name) { - service.Spec.Ports[i].NodePort = 0 + if port.Name != "" { + if !explicitNodePorts.Has(port.Name) { + service.Spec.Ports[i].NodePort = 0 + } + } else { + if !unnamedPortInts.Has(int(port.NodePort)) { + service.Spec.Ports[i].NodePort = 0 + } } } diff --git a/pkg/restore/service_action_test.go b/pkg/restore/service_action_test.go index e6b0b1530..54e616a9a 100644 --- a/pkg/restore/service_action_test.go +++ b/pkg/restore/service_action_test.go @@ -196,6 +196,9 @@ func TestServiceActionExecute(t *testing.T) { { NodePort: 8080, }, + { + NodePort: 9090, + }, }, }, }, @@ -212,6 +215,7 @@ func TestServiceActionExecute(t *testing.T) { { NodePort: 8080, }, + {}, }, }, }, From 70a8a5d54db097cff01b77f941fb49328dd243a2 Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Tue, 31 Aug 2021 21:01:21 +0800 Subject: [PATCH 002/136] Enhance e2e test 1. Check the error when waiting for restice daemonset to be ready, so the timeout will be reported 2. Add support for gcp provider and fail early if the provider is unknown Signed-off-by: Daniel Jiang --- test/e2e/install.go | 5 ++++- test/e2e/velero_utils.go | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/test/e2e/install.go b/test/e2e/install.go index 0d31f8d82..667720274 100644 --- a/test/e2e/install.go +++ b/test/e2e/install.go @@ -280,7 +280,7 @@ func waitVeleroReady(ctx context.Context, namespace string, useRestic bool) erro if useRestic { fmt.Println("Waiting for Velero restic daemonset to be ready.") - wait.PollImmediate(5*time.Second, 1*time.Minute, func() (bool, error) { + err := wait.PollImmediate(5*time.Second, 1*time.Minute, func() (bool, error) { stdout, stderr, err := velerexec.RunCommand(exec.CommandContext(ctx, "kubectl", "get", "daemonset/restic", "-o", "json", "-n", namespace)) if err != nil { @@ -295,6 +295,9 @@ func waitVeleroReady(ctx context.Context, namespace string, useRestic bool) erro } return false, nil }) + if err != nil { + return errors.Wrap(err, "fail to wait for the velero restic ready") + } } fmt.Printf("Velero is installed and ready to be tested in the %s namespace! ⛵ \n", namespace) diff --git a/test/e2e/velero_utils.go b/test/e2e/velero_utils.go index fcdfec0b5..f19841643 100644 --- a/test/e2e/velero_utils.go +++ b/test/e2e/velero_utils.go @@ -46,8 +46,10 @@ func getProviderPlugins(providerName string) []string { return []string{"velero/velero-plugin-for-microsoft-azure:v1.2.0"} case "vsphere": return []string{"velero/velero-plugin-for-aws:v1.2.1", "vsphereveleroplugin/velero-plugin-for-vsphere:v1.1.1"} + case "gcp": + return []string{"velero/velero-plugin-for-gcp:v1.2.1"} default: - return []string{""} + panic(fmt.Errorf("unknown provider name: %s", providerName)) } } From 8d57215ded1aa91cdea2cf091d60e072ce3f340f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Wed, 1 Sep 2021 00:50:38 +0800 Subject: [PATCH 003/136] Several fixes to improve the stability of E2E testing (#4056) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Support to customize the restic restore helper image 2. Use a seperated context when doing the clean up works 3. Wait a while before doing the the restore for aws to avoid #1799 Signed-off-by: Wenkai Yin(尹文开) --- pkg/install/install.go | 1 + test/e2e/Makefile | 2 ++ test/e2e/backup_test.go | 2 +- test/e2e/e2e_suite_test.go | 3 +- test/e2e/enable_api_group_versions_test.go | 1 + test/e2e/install.go | 40 +++++++++++++++++++--- test/e2e/kibishii_tests.go | 14 ++++++-- test/e2e/multiple_namespaces_test.go | 6 ++-- 8 files changed, 56 insertions(+), 13 deletions(-) diff --git a/pkg/install/install.go b/pkg/install/install.go index 85257f4ad..ebe4c3751 100644 --- a/pkg/install/install.go +++ b/pkg/install/install.go @@ -50,6 +50,7 @@ var kindToResource = map[string]string{ "Deployment": "deployments", "DaemonSet": "daemonsets", "Secret": "secrets", + "ConfigMap": "configmaps", "BackupStorageLocation": "backupstoragelocations", "VolumeSnapshotLocation": "volumesnapshotlocations", } diff --git a/test/e2e/Makefile b/test/e2e/Makefile index ed47614b2..6f7140463 100644 --- a/test/e2e/Makefile +++ b/test/e2e/Makefile @@ -48,6 +48,7 @@ OUTPUT_DIR := _output/$(GOOS)/$(GOARCH)/bin GINKGO_FOCUS ?= VELERO_CLI ?=$$(pwd)/../../_output/bin/$(GOOS)/$(GOARCH)/velero VELERO_IMAGE ?= velero/velero:main +RESTIC_HELPER_IMAGE ?= CRDS_VERSION ?= v1 VELERO_NAMESPACE ?= velero CREDS_FILE ?= @@ -81,6 +82,7 @@ run: ginkgo (echo "Cloud provider for target cloud/plug-in provider is required, please rerun with CLOUD_PROVIDER="; exit 1) @$(GINKGO) -v -focus="$(GINKGO_FOCUS)" . -- -velerocli=$(VELERO_CLI) \ -velero-image=$(VELERO_IMAGE) \ + -restic-helper-image=$(RESTIC_HELPER_IMAGE) \ -velero-namespace=$(VELERO_NAMESPACE) \ -crds-version=$(CRDS_VERSION) \ -credentials-file=$(CREDS_FILE) \ diff --git a/test/e2e/backup_test.go b/test/e2e/backup_test.go index b906759b3..6e53abc17 100644 --- a/test/e2e/backup_test.go +++ b/test/e2e/backup_test.go @@ -59,7 +59,7 @@ func backup_restore_test(useVolumeSnapshots bool) { uuidgen, err = uuid.NewRandom() Expect(err).To(Succeed()) if installVelero { - Expect(veleroInstall(context.Background(), veleroCLI, veleroImage, veleroNamespace, cloudProvider, objectStoreProvider, useVolumeSnapshots, + Expect(veleroInstall(context.Background(), veleroCLI, veleroImage, resticHelperImage, veleroNamespace, cloudProvider, objectStoreProvider, useVolumeSnapshots, cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, crdsVersion, "", registryCredentialFile)).To(Succeed()) } }) diff --git a/test/e2e/e2e_suite_test.go b/test/e2e/e2e_suite_test.go index 7f0712e31..8cc3dfe96 100644 --- a/test/e2e/e2e_suite_test.go +++ b/test/e2e/e2e_suite_test.go @@ -27,7 +27,7 @@ import ( var ( veleroCLI, veleroImage, cloudCredentialsFile, bslConfig, bslBucket, bslPrefix, vslConfig, cloudProvider, objectStoreProvider, veleroNamespace, crdsVersion string - additionalBSLProvider, additionalBSLBucket, additionalBSLPrefix, additionalBSLConfig, additionalBSLCredentials, registryCredentialFile string + additionalBSLProvider, additionalBSLBucket, additionalBSLPrefix, additionalBSLConfig, additionalBSLCredentials, registryCredentialFile, resticHelperImage string installVelero bool ) @@ -38,6 +38,7 @@ func init() { flag.StringVar(&cloudCredentialsFile, "credentials-file", "", "file containing credentials for backup and volume provider. Required.") flag.StringVar(&veleroCLI, "velerocli", "velero", "path to the velero application to use.") flag.StringVar(&veleroImage, "velero-image", "velero/velero:main", "image for the velero server to be tested.") + flag.StringVar(&resticHelperImage, "restic-helper-image", "", "image for the velero restic restore helper to be tested.") flag.StringVar(&bslConfig, "bsl-config", "", "configuration to use for the backup storage location. Format is key1=value1,key2=value2") flag.StringVar(&bslPrefix, "prefix", "", "prefix under which all Velero data should be stored within the bucket. Optional.") flag.StringVar(&vslConfig, "vsl-config", "", "configuration to use for the volume snapshot location. Format is key1=value1,key2=value2") diff --git a/test/e2e/enable_api_group_versions_test.go b/test/e2e/enable_api_group_versions_test.go index 42f9bf23f..9a1eebcf2 100644 --- a/test/e2e/enable_api_group_versions_test.go +++ b/test/e2e/enable_api_group_versions_test.go @@ -60,6 +60,7 @@ var _ = Describe("[APIGroup] Velero tests with various CRD API group versions", context.Background(), veleroCLI, veleroImage, + resticHelperImage, veleroNamespace, cloudProvider, objectStoreProvider, diff --git a/test/e2e/install.go b/test/e2e/install.go index 0d31f8d82..7a57acf24 100644 --- a/test/e2e/install.go +++ b/test/e2e/install.go @@ -41,10 +41,11 @@ import ( type installOptions struct { *install.InstallOptions RegistryCredentialFile string + ResticHelperImage string } // TODO too many parameters for this function, better to make it a structure, we can introduces a structure `config` for the E2E to hold all configuration items -func veleroInstall(ctx context.Context, cli, veleroImage string, veleroNamespace string, cloudProvider string, objectStoreProvider string, useVolumeSnapshots bool, +func veleroInstall(ctx context.Context, cli, veleroImage string, resticHelperImage string, veleroNamespace string, cloudProvider string, objectStoreProvider string, useVolumeSnapshots bool, cloudCredentialsFile string, bslBucket string, bslPrefix string, bslConfig string, vslConfig string, crdsVersion string, features string, registryCredentialFile string) error { @@ -88,6 +89,7 @@ func veleroInstall(ctx context.Context, cli, veleroImage string, veleroNamespace err = installVeleroServer(ctx, cli, &installOptions{ InstallOptions: veleroInstallOptions, RegistryCredentialFile: registryCredentialFile, + ResticHelperImage: resticHelperImage, }) if err != nil { return errors.WithMessagef(err, "Failed to install Velero in the cluster") @@ -140,14 +142,14 @@ func installVeleroServer(ctx context.Context, cli string, options *installOption args = append(args, "--features", options.Features) } - if err := createVelereResources(ctx, cli, namespace, args, options.RegistryCredentialFile); err != nil { + if err := createVelereResources(ctx, cli, namespace, args, options.RegistryCredentialFile, options.ResticHelperImage); err != nil { return err } return waitVeleroReady(ctx, namespace, options.UseRestic) } -func createVelereResources(ctx context.Context, cli, namespace string, args []string, registryCredentialFile string) error { +func createVelereResources(ctx context.Context, cli, namespace string, args []string, registryCredentialFile, resticHelperImage string) error { args = append(args, "--dry-run", "--output", "json", "--crds-only") // get the CRD definitions @@ -192,7 +194,7 @@ func createVelereResources(ctx context.Context, cli, namespace string, args []st return errors.Wrapf(err, "failed to unmarshal the resources: %s", string(stdout)) } - if err = patchResources(ctx, resources, namespace, registryCredentialFile); err != nil { + if err = patchResources(ctx, resources, namespace, registryCredentialFile, resticHelperImage); err != nil { return errors.Wrapf(err, "failed to patch resources") } @@ -214,7 +216,7 @@ func createVelereResources(ctx context.Context, cli, namespace string, args []st } // patch the velero resources -func patchResources(ctx context.Context, resources *unstructured.UnstructuredList, namespace, registryCredentialFile string) error { +func patchResources(ctx context.Context, resources *unstructured.UnstructuredList, namespace, registryCredentialFile, resticHelperImage string) error { // apply the image pull secret to avoid the image pull limit of Docker Hub if len(registryCredentialFile) > 0 { credential, err := ioutil.ReadFile(registryCredentialFile) @@ -257,6 +259,34 @@ func patchResources(ctx context.Context, resources *unstructured.UnstructuredLis resources.Items = append(resources.Items, un) } + // customize the restic restore helper image + if len(resticHelperImage) > 0 { + restoreActionConfig := corev1.ConfigMap{ + TypeMeta: metav1.TypeMeta{ + Kind: "ConfigMap", + APIVersion: corev1.SchemeGroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "restic-restore-action-config", + Namespace: namespace, + Labels: map[string]string{ + "velero.io/plugin-config": "", + "velero.io/restic": "RestoreItemAction", + }, + }, + Data: map[string]string{ + "image": resticHelperImage, + }, + } + + un, err := toUnstructured(restoreActionConfig) + if err != nil { + return errors.Wrapf(err, "failed to convert restore action config to unstructure") + } + resources.Items = append(resources.Items, un) + fmt.Printf("the restic restore helper image is set by the configmap %q \n", "restic-restore-action-config") + } + return nil } diff --git a/test/e2e/kibishii_tests.go b/test/e2e/kibishii_tests.go index 27c32b8e9..d15893d72 100644 --- a/test/e2e/kibishii_tests.go +++ b/test/e2e/kibishii_tests.go @@ -81,9 +81,9 @@ func verifyData(ctx context.Context, namespace string, levels int, filesPerLevel strconv.Itoa(blockSize), strconv.Itoa(passNum), strconv.Itoa(expectedNodes)) fmt.Printf("kibishiiVerifyCmd cmd =%v\n", kibishiiVerifyCmd) - _, stderr, err := veleroexec.RunCommand(kibishiiVerifyCmd) + stdout, stderr, err := veleroexec.RunCommand(kibishiiVerifyCmd) if err != nil { - return errors.Wrapf(err, "failed to verify, stderr=%s", stderr) + return errors.Wrapf(err, "failed to verify, stderr=%s, stdout=%s", stderr, stdout) } return nil } @@ -97,7 +97,8 @@ func runKibishiiTests(client testClient, providerName, veleroCLI, veleroNamespac return errors.Wrapf(err, "Failed to create namespace %s to install Kibishii workload", kibishiiNamespace) } defer func() { - if err := deleteNamespace(oneHourTimeout, client, kibishiiNamespace, true); err != nil { + // if other functions runs timeout, the defer has no change to run, so use a separated context rather than the "oneHourTimeout" to avoid this + if err := deleteNamespace(context.Background(), client, kibishiiNamespace, true); err != nil { fmt.Println(errors.Wrapf(err, "failed to delete the namespace %q", kibishiiNamespace)) } }() @@ -144,6 +145,13 @@ func runKibishiiTests(client testClient, providerName, veleroCLI, veleroNamespac return errors.Wrapf(err, "failed to delete namespace %s", kibishiiNamespace) } + // the snapshots of AWS may be still in pending status when do the restore, wait for a while + // to avoid this https://github.com/vmware-tanzu/velero/issues/1799 + // TODO remove this after https://github.com/vmware-tanzu/velero/issues/3533 is fixed + if providerName == "aws" && useVolumeSnapshots { + fmt.Println("Waiting 5 minutes to make sure the snapshots are ready...") + time.Sleep(5 * time.Minute) + } if err := veleroRestore(oneHourTimeout, veleroCLI, veleroNamespace, restoreName, backupName); err != nil { veleroRestoreLogs(oneHourTimeout, veleroCLI, veleroNamespace, restoreName) return errors.Wrapf(err, "Restore %s failed from backup %s", restoreName, backupName) diff --git a/test/e2e/multiple_namespaces_test.go b/test/e2e/multiple_namespaces_test.go index 8a1673b80..b9a73a9ba 100644 --- a/test/e2e/multiple_namespaces_test.go +++ b/test/e2e/multiple_namespaces_test.go @@ -27,7 +27,7 @@ var _ = Describe("[Basic] Backup/restore of 2 namespaces", func() { uuidgen, err = uuid.NewRandom() Expect(err).To(Succeed()) if installVelero { - Expect(veleroInstall(context.Background(), veleroCLI, veleroImage, veleroNamespace, cloudProvider, objectStoreProvider, false, + Expect(veleroInstall(context.Background(), veleroCLI, veleroImage, resticHelperImage, veleroNamespace, cloudProvider, objectStoreProvider, false, cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, crdsVersion, "", registryCredentialFile)).To(Succeed()) } }) @@ -62,7 +62,7 @@ var _ = Describe("[Scale] Backup/restore of 2500 namespaces", func() { uuidgen, err = uuid.NewRandom() Expect(err).To(Succeed()) if installVelero { - Expect(veleroInstall(context.Background(), veleroCLI, veleroImage, veleroNamespace, cloudProvider, objectStoreProvider, false, + Expect(veleroInstall(context.Background(), veleroCLI, veleroImage, resticHelperImage, veleroNamespace, cloudProvider, objectStoreProvider, false, cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, crdsVersion, "", registryCredentialFile)).To(Succeed()) } }) @@ -87,7 +87,7 @@ var _ = Describe("[Scale] Backup/restore of 2500 namespaces", func() { }) func RunMultipleNamespaceTest(ctx context.Context, client testClient, nsBaseName string, numberOfNamespaces int, backupName string, restoreName string) error { - defer cleanupNamespaces(ctx, client, nsBaseName) // Run at exit for final cleanup + defer cleanupNamespaces(context.Background(), client, nsBaseName) // Run at exit for final cleanup var excludeNamespaces []string // Currently it's hard to build a large list of namespaces to include and wildcards do not work so instead From 746cd616fdf2b8564e30f335788abb7ec8094826 Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Wed, 1 Sep 2021 13:38:17 +0800 Subject: [PATCH 004/136] remove IsUnstructuredCRDReady (#4085) This commit removes `IsUnstructuredCRDReady` since kubernetes/kubernetes#87675 is fixed. Is uses `Is1CRDReady` to check the readiness of CRD. After v1.7 we may consider merge the funcx `IsV1Beta1CRDReady` and `IsV1CRDReady` Signed-off-by: Daniel Jiang --- pkg/restore/restore.go | 7 +- pkg/util/kube/utils.go | 69 +++++------------- pkg/util/kube/utils_test.go | 138 ++++++++++++++++++++++-------------- 3 files changed, 103 insertions(+), 111 deletions(-) diff --git a/pkg/restore/restore.go b/pkg/restore/restore.go index bde767773..c874dd7c7 100644 --- a/pkg/restore/restore.go +++ b/pkg/restore/restore.go @@ -842,12 +842,7 @@ func (ctx *restoreContext) crdAvailable(name string, crdClient client.Dynamic) ( if err != nil { return true, err } - - // TODO: Due to upstream conversion issues in runtime.FromUnstructured, - // we use the unstructured object here. Once the upstream conversion - // functions are fixed, we should convert to the CRD types and use - // IsCRDReady. - available, err = kube.IsUnstructuredCRDReady(unstructuredCRD) + available, err = kube.IsCRDReady(unstructuredCRD) if err != nil { return true, err } diff --git a/pkg/util/kube/utils.go b/pkg/util/kube/utils.go index a80f864de..0dc096566 100644 --- a/pkg/util/kube/utils.go +++ b/pkg/util/kube/utils.go @@ -28,6 +28,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/wait" corev1client "k8s.io/client-go/kubernetes/typed/core/v1" corev1listers "k8s.io/client-go/listers/core/v1" @@ -176,61 +177,25 @@ func IsV1Beta1CRDReady(crd *apiextv1beta1.CustomResourceDefinition) bool { return (isEstablished && namesAccepted) } -// IsUnstructuredCRDReady checks an unstructured CRD to see if it's ready, with both the Established and NamesAccepted conditions. -// TODO: Delete this function and use IsV1CRDReady/IsV1Beta1CRDReady when the upstream runtime.FromUnstructured function properly handles int64 field conversions. -// Duplicated function because the velero install package uses IsV1CRDReady/IsV1Beta1CRDReady with instances of v1/v1beta1 types. -// See https://github.com/kubernetes/kubernetes/issues/87675 -// This is different from the fix for https://github.com/vmware-tanzu/velero/issues/2319 because here, -// we need to account for *both* v1beta1 and v1 CRDs, so doing marshalling into JSON to convert to a Go type may not be as useful here, unless we do -// type switching. -func IsUnstructuredCRDReady(crd *unstructured.Unstructured) (bool, error) { - var isEstablished, namesAccepted bool - - conditions, ok, err := unstructured.NestedSlice(crd.UnstructuredContent(), "status", "conditions") - if !ok { - return false, nil - } - if err != nil { - return false, errors.Wrap(err, "unable to access CRD's conditions") - } - - for _, c := range conditions { - // Unlike the typed version of this function, we need to cast the Condition since it's an interface{} here, - // then we fetch the type and status of the Condition before inspecting them for relevant values - cond, ok := c.(map[string]interface{}) - if !ok { - return false, errors.New("unable to convert condition to map[string]interface{}") - } - conditionType, ok, err := unstructured.NestedString(cond, "type") - if !ok { - // This should never happen unless someone manually edits the serialized data. - return false, errors.New("condition missing a type") - } - +// IsCRDReady triggers IsV1Beta1CRDReady/IsV1CRDReady according to the version of the input param +func IsCRDReady(crd *unstructured.Unstructured) (bool, error) { + ver := crd.GroupVersionKind().Version + switch ver { + case "v1beta1": + v1beta1crd := &apiextv1beta1.CustomResourceDefinition{} + err := runtime.DefaultUnstructuredConverter.FromUnstructured(crd.Object, v1beta1crd) if err != nil { - return false, errors.Wrap(err, "unable to access condition's type") + return false, err } - - status, ok, err := unstructured.NestedString(cond, "status") - if !ok { - // This should never happen unless someone manually edits the serialized data. - return false, errors.New("condition missing a status") - } - + return IsV1Beta1CRDReady(v1beta1crd), nil + case "v1": + v1crd := &apiextv1.CustomResourceDefinition{} + err := runtime.DefaultUnstructuredConverter.FromUnstructured(crd.Object, v1crd) if err != nil { - return false, errors.Wrap(err, "unable to access condition's status") - } - - // Here is the actual logic of the function - // Cast the API's types into strings since we're pulling strings out of the unstructured data. - // We are using the v1beta1 constants here but they are the same as the v1 constants. - if conditionType == string(apiextv1beta1.Established) && status == string(apiextv1beta1.ConditionTrue) { - isEstablished = true - } - if conditionType == string(apiextv1beta1.NamesAccepted) && status == string(apiextv1beta1.ConditionTrue) { - namesAccepted = true + return false, err } + return IsV1CRDReady(v1crd), nil + default: + return false, fmt.Errorf("unable to handle CRD with version %s", ver) } - - return (isEstablished && namesAccepted), nil } diff --git a/pkg/util/kube/utils_test.go b/pkg/util/kube/utils_test.go index d5966256d..115e09fea 100644 --- a/pkg/util/kube/utils_test.go +++ b/pkg/util/kube/utils_test.go @@ -17,6 +17,7 @@ limitations under the License. package kube import ( + "encoding/json" "testing" "time" @@ -288,31 +289,31 @@ func TestIsV1CRDReady(t *testing.T) { } } -func TestIsUnstructuredCRDReady(t *testing.T) { - tests := []struct { +func TestIsCRDReady(t *testing.T) { + v1beta1tests := []struct { name string crd *apiextv1beta1.CustomResourceDefinition want bool }{ { - name: "CRD is not established & not accepting names - not ready", + name: "v1beta1CRD is not established & not accepting names - not ready", crd: builder.ForCustomResourceDefinitionV1Beta1("MyCRD").Result(), want: false, }, { - name: "CRD is established & not accepting names - not ready", + name: "v1beta1CRD is established & not accepting names - not ready", crd: builder.ForCustomResourceDefinitionV1Beta1("MyCRD"). Condition(builder.ForCustomResourceDefinitionV1Beta1Condition().Type(apiextv1beta1.Established).Status(apiextv1beta1.ConditionTrue).Result()).Result(), want: false, }, { - name: "CRD is not established & accepting names - not ready", + name: "v1beta1CRD is not established & accepting names - not ready", crd: builder.ForCustomResourceDefinitionV1Beta1("MyCRD"). Condition(builder.ForCustomResourceDefinitionV1Beta1Condition().Type(apiextv1beta1.NamesAccepted).Status(apiextv1beta1.ConditionTrue).Result()).Result(), want: false, }, { - name: "CRD is established & accepting names - ready", + name: "v1beta1CRD is established & accepting names - ready", crd: builder.ForCustomResourceDefinitionV1Beta1("MyCRD"). Condition(builder.ForCustomResourceDefinitionV1Beta1Condition().Type(apiextv1beta1.Established).Status(apiextv1beta1.ConditionTrue).Result()). Condition(builder.ForCustomResourceDefinitionV1Beta1Condition().Type(apiextv1beta1.NamesAccepted).Status(apiextv1beta1.ConditionTrue).Result()). @@ -321,66 +322,97 @@ func TestIsUnstructuredCRDReady(t *testing.T) { }, } - for _, tc := range tests { + for _, tc := range v1beta1tests { m, err := runtime.DefaultUnstructuredConverter.ToUnstructured(tc.crd) require.NoError(t, err) - result, err := IsUnstructuredCRDReady(&unstructured.Unstructured{Object: m}) + result, err := IsCRDReady(&unstructured.Unstructured{Object: m}) require.NoError(t, err) assert.Equal(t, tc.want, result) } -} -// TestFromUnstructuredIntToFloatBug tests for a bug where runtime.DefaultUnstructuredConverter.FromUnstructured can't take a whole number into a float. -// This test should fail when https://github.com/kubernetes/kubernetes/issues/87675 is fixed upstream, letting us know we can remove the IsUnstructuredCRDReady function. -/* -func TestFromUnstructuredIntToFloatBug(t *testing.T) { - b := []byte(` + v1tests := []struct { + name string + crd *apiextv1.CustomResourceDefinition + want bool + }{ + { + name: "v1CRD is not established & not accepting names - not ready", + crd: builder.ForV1CustomResourceDefinition("MyCRD").Result(), + want: false, + }, + { + name: "v1CRD is established & not accepting names - not ready", + crd: builder.ForV1CustomResourceDefinition("MyCRD"). + Condition(builder.ForV1CustomResourceDefinitionCondition().Type(apiextv1.Established).Status(apiextv1.ConditionTrue).Result()).Result(), + want: false, + }, + { + name: "v1CRD is not established & accepting names - not ready", + crd: builder.ForV1CustomResourceDefinition("MyCRD"). + Condition(builder.ForV1CustomResourceDefinitionCondition().Type(apiextv1.NamesAccepted).Status(apiextv1.ConditionTrue).Result()).Result(), + want: false, + }, + { + name: "v1CRD is established & accepting names - ready", + crd: builder.ForV1CustomResourceDefinition("MyCRD"). + Condition(builder.ForV1CustomResourceDefinitionCondition().Type(apiextv1.Established).Status(apiextv1.ConditionTrue).Result()). + Condition(builder.ForV1CustomResourceDefinitionCondition().Type(apiextv1.NamesAccepted).Status(apiextv1.ConditionTrue).Result()). + Result(), + want: true, + }, + } + + for _, tc := range v1tests { + m, err := runtime.DefaultUnstructuredConverter.ToUnstructured(tc.crd) + require.NoError(t, err) + result, err := IsCRDReady(&unstructured.Unstructured{Object: m}) + require.NoError(t, err) + assert.Equal(t, tc.want, result) + } + + // input param is unrecognized + resBytes := []byte(` { - "apiVersion": "apiextensions.k8s.io/v1beta1", + "apiVersion": "apiextensions.k8s.io/v9", "kind": "CustomResourceDefinition", "metadata": { - "name": "foos.example.foo.com" + "name": "foos.example.foo.com" }, "spec": { - "group": "example.foo.com", - "version": "v1alpha1", - "scope": "Namespaced", - "names": { - "plural": "foos", - "singular": "foo", - "kind": "Foo" - }, - "validation": { - "openAPIV3Schema": { - "required": [ - "spec" - ], - "properties": { - "spec": { - "required": [ - "bar" - ], - "properties": { - "bar": { - "type": "integer", - "minimum": 1 + "group": "example.foo.com", + "version": "v1alpha1", + "scope": "Namespaced", + "names": { + "plural": "foos", + "singular": "foo", + "kind": "Foo" + }, + "validation": { + "openAPIV3Schema": { + "required": [ + "spec" + ], + "properties": { + "spec": { + "required": [ + "bar" + ], + "properties": { + "bar": { + "type": "integer", + "minimum": 1 + } + } + } } - } } - } } - } } - } -`) - - var obj unstructured.Unstructured - err := json.Unmarshal(b, &obj) - require.NoError(t, err) - - var newCRD apiextv1beta1.CustomResourceDefinition - err = runtime.DefaultUnstructuredConverter.FromUnstructured(obj.UnstructuredContent(), &newCRD) - // If there's no error, then the upstream issue is fixed, and we need to remove our workarounds. - require.Error(t, err) } -*/ +`) + obj := &unstructured.Unstructured{} + err := json.Unmarshal(resBytes, obj) + require.NoError(t, err) + _, err = IsCRDReady(obj) + assert.NotNil(t, err) +} From edeec848d3600bfd8320f9399081d34fa0e5b12f Mon Sep 17 00:00:00 2001 From: Bridget McErlean Date: Wed, 1 Sep 2021 01:51:44 -0400 Subject: [PATCH 005/136] Skip restic backup/restore of DownwardAPI volumes (#4076) Velero was including DownwardAPI volumes when backing up with restic. When restoring these volumes, it triggered a known issue with restic (as seen in #3863). Like projected volumes, these volumes should be skipped as their contents are populated by the Kubernetes API server. With this change, we are now skipping the restic backup of volumes with a DownwardAPI source. We are also skipping the restore of any volume that had a DownwardAPI source as there will exist backups that were taken prior to this fix being introduced. This will allow these backups to be restored succesfully. Signed-off-by: Bridget McErlean --- changelogs/unreleased/4076-zubron | 1 + pkg/restic/common.go | 27 ++++--- pkg/restic/common_test.go | 114 ++++++++++++++++++++++++++++-- 3 files changed, 125 insertions(+), 17 deletions(-) create mode 100644 changelogs/unreleased/4076-zubron diff --git a/changelogs/unreleased/4076-zubron b/changelogs/unreleased/4076-zubron new file mode 100644 index 000000000..386675f4e --- /dev/null +++ b/changelogs/unreleased/4076-zubron @@ -0,0 +1 @@ +Skip the backup and restore of DownwardAPI volumes when using restic. \ No newline at end of file diff --git a/pkg/restic/common.go b/pkg/restic/common.go index e122ff4bb..e8648cd6c 100644 --- a/pkg/restic/common.go +++ b/pkg/restic/common.go @@ -100,15 +100,18 @@ func isPVBMatchPod(pvb *velerov1api.PodVolumeBackup, podName string, namespace s return podName == pvb.Spec.Pod.Name && namespace == pvb.Spec.Pod.Namespace } -// volumeIsProjected checks if the given volume exists in the list of podVolumes -// and returns true if the volume has a projected source -func volumeIsProjected(volumeName string, podVolumes []corev1api.Volume) bool { - for _, volume := range podVolumes { - if volume.Name == volumeName && volume.Projected != nil { - return true +// volumeHasNonRestorableSource checks if the given volume exists in the list of podVolumes +// and returns true if the volume's source is not restorable. This is true for volumes with +// a Projected or DownwardAPI source. +func volumeHasNonRestorableSource(volumeName string, podVolumes []corev1api.Volume) bool { + var volume corev1api.Volume + for _, v := range podVolumes { + if v.Name == volumeName { + volume = v + break } } - return false + return volume.Projected != nil || volume.DownwardAPI != nil } // GetVolumeBackupsForPod returns a map, of volume name -> snapshot id, @@ -127,10 +130,10 @@ func GetVolumeBackupsForPod(podVolumeBackups []*velerov1api.PodVolumeBackup, pod continue } - // If the volume came from a projected source, skip its restore. + // If the volume came from a projected or DownwardAPI source, skip its restore. // This allows backups affected by https://github.com/vmware-tanzu/velero/issues/3863 - // to be restored successfully. - if volumeIsProjected(pvb.Spec.Volume, pod.Spec.Volumes) { + // or https://github.com/vmware-tanzu/velero/issues/4053 to be restored successfully. + if volumeHasNonRestorableSource(pvb.Spec.Volume, pod.Spec.Volumes) { continue } @@ -205,6 +208,10 @@ func GetPodVolumesUsingRestic(pod *corev1api.Pod, defaultVolumesToRestic bool) [ if pv.Projected != nil { continue } + // don't backup DownwardAPI volumes, all data in those come from kube state. + if pv.DownwardAPI != nil { + continue + } // don't backup volumes that are included in the exclude list. if contains(volsToExclude, pv.Name) { continue diff --git a/pkg/restic/common_test.go b/pkg/restic/common_test.go index 7e102ca97..954defee0 100644 --- a/pkg/restic/common_test.go +++ b/pkg/restic/common_test.go @@ -152,6 +152,30 @@ func TestGetVolumeBackupsForPod(t *testing.T) { sourcePodNs: "TestNS", expected: map[string]string{"pvb-non-projected": "snapshot1"}, }, + { + name: "volumes from PVBs that correspond to a pod volume from a DownwardAPI source are not returned", + podVolumeBackups: []*velerov1api.PodVolumeBackup{ + builder.ForPodVolumeBackup("velero", "pvb-1").PodName("TestPod").PodNamespace("TestNS").SnapshotID("snapshot1").Volume("pvb-non-downwardapi").Result(), + builder.ForPodVolumeBackup("velero", "pvb-1").PodName("TestPod").PodNamespace("TestNS").SnapshotID("snapshot2").Volume("pvb-downwardapi").Result(), + }, + podVolumes: []corev1api.Volume{ + { + Name: "pvb-non-downwardapi", + VolumeSource: corev1api.VolumeSource{ + PersistentVolumeClaim: &corev1api.PersistentVolumeClaimVolumeSource{}, + }, + }, + { + Name: "pvb-downwardapi", + VolumeSource: corev1api.VolumeSource{ + DownwardAPI: &corev1api.DownwardAPIVolumeSource{}, + }, + }, + }, + podName: "TestPod", + sourcePodNs: "TestNS", + expected: map[string]string{"pvb-non-downwardapi": "snapshot1"}, + }, } for _, test := range tests { @@ -568,6 +592,39 @@ func TestGetPodVolumesUsingRestic(t *testing.T) { }, expected: []string{"resticPV1", "resticPV2", "resticPV3"}, }, + { + name: "should exclude DownwardAPI volumes", + defaultVolumesToRestic: true, + pod: &corev1api.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Annotations: map[string]string{ + VolumesToExcludeAnnotation: "nonResticPV1,nonResticPV2,nonResticPV3", + }, + }, + Spec: corev1api.PodSpec{ + Volumes: []corev1api.Volume{ + {Name: "resticPV1"}, {Name: "resticPV2"}, {Name: "resticPV3"}, + { + Name: "downwardAPI", + VolumeSource: corev1api.VolumeSource{ + DownwardAPI: &corev1api.DownwardAPIVolumeSource{ + Items: []corev1api.DownwardAPIVolumeFile{ + { + Path: "labels", + FieldRef: &corev1api.ObjectFieldSelector{ + APIVersion: "v1", + FieldPath: "metadata.labels", + }, + }, + }, + }, + }, + }, + }, + }, + }, + expected: []string{"resticPV1", "resticPV2", "resticPV3"}, + }, } for _, tc := range testCases { @@ -656,7 +713,7 @@ func TestIsPVBMatchPod(t *testing.T) { } } -func TestVolumeIsProjected(t *testing.T) { +func TestVolumeHasNonRestorableSource(t *testing.T) { testCases := []struct { name string volumeName string @@ -668,7 +725,7 @@ func TestVolumeIsProjected(t *testing.T) { volumeName: "missing-volume", podVolumes: []corev1api.Volume{ { - Name: "non-projected", + Name: "restorable", VolumeSource: corev1api.VolumeSource{ PersistentVolumeClaim: &corev1api.PersistentVolumeClaimVolumeSource{}, }, @@ -679,15 +736,21 @@ func TestVolumeIsProjected(t *testing.T) { Projected: &corev1api.ProjectedVolumeSource{}, }, }, + { + Name: "downwardapi", + VolumeSource: corev1api.VolumeSource{ + DownwardAPI: &corev1api.DownwardAPIVolumeSource{}, + }, + }, }, expected: false, }, { - name: "volume name in list of volumes but not projected", - volumeName: "non-projected", + name: "volume name in list of volumes but not projected or DownwardAPI", + volumeName: "restorable", podVolumes: []corev1api.Volume{ { - Name: "non-projected", + Name: "restorable", VolumeSource: corev1api.VolumeSource{ PersistentVolumeClaim: &corev1api.PersistentVolumeClaimVolumeSource{}, }, @@ -698,6 +761,12 @@ func TestVolumeIsProjected(t *testing.T) { Projected: &corev1api.ProjectedVolumeSource{}, }, }, + { + Name: "downwardapi", + VolumeSource: corev1api.VolumeSource{ + DownwardAPI: &corev1api.DownwardAPIVolumeSource{}, + }, + }, }, expected: false, }, @@ -706,7 +775,7 @@ func TestVolumeIsProjected(t *testing.T) { volumeName: "projected", podVolumes: []corev1api.Volume{ { - Name: "non-projected", + Name: "restorable", VolumeSource: corev1api.VolumeSource{ PersistentVolumeClaim: &corev1api.PersistentVolumeClaimVolumeSource{}, }, @@ -717,6 +786,37 @@ func TestVolumeIsProjected(t *testing.T) { Projected: &corev1api.ProjectedVolumeSource{}, }, }, + { + Name: "downwardapi", + VolumeSource: corev1api.VolumeSource{ + DownwardAPI: &corev1api.DownwardAPIVolumeSource{}, + }, + }, + }, + expected: true, + }, + { + name: "volume name in list of volumes and is a DownwardAPI volume", + volumeName: "downwardapi", + podVolumes: []corev1api.Volume{ + { + Name: "restorable", + VolumeSource: corev1api.VolumeSource{ + PersistentVolumeClaim: &corev1api.PersistentVolumeClaimVolumeSource{}, + }, + }, + { + Name: "projected", + VolumeSource: corev1api.VolumeSource{ + Projected: &corev1api.ProjectedVolumeSource{}, + }, + }, + { + Name: "downwardapi", + VolumeSource: corev1api.VolumeSource{ + DownwardAPI: &corev1api.DownwardAPIVolumeSource{}, + }, + }, }, expected: true, }, @@ -724,7 +824,7 @@ func TestVolumeIsProjected(t *testing.T) { for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - actual := volumeIsProjected(tc.volumeName, tc.podVolumes) + actual := volumeHasNonRestorableSource(tc.volumeName, tc.podVolumes) assert.Equal(t, tc.expected, actual) }) From 9d76ea835c27da01d81f5f06800efdbb14eecb3d Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Thu, 2 Sep 2021 20:02:33 +0800 Subject: [PATCH 006/136] pass velero cli executable to crashd This commit fixes the issue when velero CLI is not in `PATH` or compiled to other file names. Signed-off-by: Daniel Jiang --- pkg/cmd/cli/debug/cshd-scripts/velero.cshd | 15 ++++++++------- pkg/cmd/cli/debug/debug.go | 7 +++++++ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/pkg/cmd/cli/debug/cshd-scripts/velero.cshd b/pkg/cmd/cli/debug/cshd-scripts/velero.cshd index c871b27de..3985bb275 100644 --- a/pkg/cmd/cli/debug/cshd-scripts/velero.cshd +++ b/pkg/cmd/cli/debug/cshd-scripts/velero.cshd @@ -1,26 +1,27 @@ -def capture_backup_logs(namespace): +def capture_backup_logs(cmd, namespace): if args.backup: log("Collecting log for backup: {}".format(args.backup)) - backupLogsCmd = "velero --namespace={} backup logs {}".format(namespace, args.backup) + backupLogsCmd = "{} --namespace={} backup logs {}".format(cmd, namespace, args.backup) capture_local(cmd=backupLogsCmd, file_name="backup_{}.log".format(args.backup)) -def capture_restore_logs(namespace): +def capture_restore_logs(cmd, namespace): if args.restore: log("Collecting log for restore: {}".format(args.restore)) - restoreLogsCmd = "velero --namespace={} restore logs {}".format(namespace, args.restore) + restoreLogsCmd = "{} --namespace={} restore logs {}".format(cmd, namespace, args.restore) capture_local(cmd=restoreLogsCmd, file_name="restore_{}.log".format(args.restore)) ns = args.namespace if args.namespace else "velero" output = args.output if args.output else "bundle.tar.gz" +cmd = args.cmd if args.cmd else "velero" # Working dir for writing during script execution crshd = crashd_config(workdir="./velero-bundle") set_defaults(kube_config(path=args.kubeconfig, cluster_context=args.kubecontext)) log("Collecting velero resources in namespace: {}". format(ns)) kube_capture(what="objects", namespaces=[ns], groups=['velero.io']) -capture_local(cmd="velero version -n {}".format(ns), file_name="version.txt") +capture_local(cmd="{} version -n {}".format(cmd, ns), file_name="version.txt") log("Collecting velero deployment logs in namespace: {}". format(ns)) kube_capture(what="logs", namespaces=[ns]) -capture_backup_logs(ns) -capture_restore_logs(ns) +capture_backup_logs(cmd, ns) +capture_restore_logs(cmd, ns) archive(output_file=output, source_paths=[crshd.workdir]) log("Generated debug information bundle: {}".format(output)) diff --git a/pkg/cmd/cli/debug/debug.go b/pkg/cmd/cli/debug/debug.go index 913b0dfa7..e324f2631 100644 --- a/pkg/cmd/cli/debug/debug.go +++ b/pkg/cmd/cli/debug/debug.go @@ -42,6 +42,8 @@ import ( var scriptBytes []byte type option struct { + // currCmd the velero command + currCmd string // workdir for crashd will be $baseDir/velero-debug baseDir string // the namespace where velero server is installed @@ -74,6 +76,7 @@ func (o *option) asCrashdArgs() string { func (o *option) asCrashdArgMap() exec.ArgMap { return exec.ArgMap{ + "cmd": o.currCmd, "output": o.outputPath, "namespace": o.namespace, "basedir": o.baseDir, @@ -100,6 +103,10 @@ func (o *option) complete(f client.Factory, fs *pflag.FlagSet) error { o.baseDir = tmpDir o.namespace = f.Namespace() kp, kc := kubeconfigAndContext(fs) + o.currCmd, err = os.Executable() + if err != nil { + return err + } o.kubeconfigPath, err = filepath.Abs(kp) if err != nil { return fmt.Errorf("invalid kubeconfig path: %s, %v", kp, err) From 305dfa0d3c95decca14a133f01b6f9d27ae30c10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Fri, 3 Sep 2021 22:33:50 +0800 Subject: [PATCH 007/136] Empty the "ClusterIPs" along with "ClusterIP" when "ClusterIP" isn't "None" (#4101) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit More details please refer to #4098 Fixes #4098 Signed-off-by: Wenkai Yin(尹文开) --- changelogs/unreleased/4101-ywk253100 | 1 + pkg/restore/service_action.go | 1 + pkg/restore/service_action_test.go | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/4101-ywk253100 diff --git a/changelogs/unreleased/4101-ywk253100 b/changelogs/unreleased/4101-ywk253100 new file mode 100644 index 000000000..747db01ca --- /dev/null +++ b/changelogs/unreleased/4101-ywk253100 @@ -0,0 +1 @@ +Empty the "ClusterIPs" along with "ClusterIP" when "ClusterIP" isn't "None" \ No newline at end of file diff --git a/pkg/restore/service_action.go b/pkg/restore/service_action.go index 01082c7a1..0b22cf095 100644 --- a/pkg/restore/service_action.go +++ b/pkg/restore/service_action.go @@ -55,6 +55,7 @@ func (a *ServiceAction) Execute(input *velero.RestoreItemActionExecuteInput) (*v if service.Spec.ClusterIP != "None" { service.Spec.ClusterIP = "" + service.Spec.ClusterIPs = nil } /* Do not delete NodePorts if restore triggered with "--preserve-nodeports" flag */ diff --git a/pkg/restore/service_action_test.go b/pkg/restore/service_action_test.go index 54e616a9a..59fef00a1 100644 --- a/pkg/restore/service_action_test.go +++ b/pkg/restore/service_action_test.go @@ -73,13 +73,14 @@ func TestServiceActionExecute(t *testing.T) { expectedRes corev1api.Service }{ { - name: "clusterIP (only) should be deleted from spec", + name: "clusterIP/clusterIPs should be deleted from spec", obj: corev1api.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "svc-1", }, Spec: corev1api.ServiceSpec{ ClusterIP: "should-be-removed", + ClusterIPs: []string{"should-be-removed"}, LoadBalancerIP: "should-be-kept", }, }, From fbd6bcf5047800cf3d889e757d8dc4254bd68b27 Mon Sep 17 00:00:00 2001 From: codegold79 <17328443+codegold79@users.noreply.github.com> Date: Fri, 3 Sep 2021 08:03:35 -0700 Subject: [PATCH 008/136] Validate namespace in velero backup create command (#4057) * Add namespace validation in the client Signed-off-by: F. Gold * Add namespace validation in the backup controller Signed-off-by: F. Gold * Add changelog for PR 4057 Signed-off-by: F. Gold * Update Copyright notice Signed-off-by: F. Gold * Update include_excludes_test.go to follow Go standards and be easier to read Signed-off-by: F. Gold * Add unit tests for namespace validation functions Signed-off-by: F. Gold * Make changes per review comments - use one set of namespace validation logic instead of writing two - remove duplicate namespace validation functions and tests - add namespace validation tests in includes_excludes_test.go Signed-off-by: F. Gold * Return all ns validation err msgs as error list Signed-off-by: F. Gold * Make error message more clear Signed-off-by: F. Gold --- changelogs/unreleased/4057-codegold79 | 1 + pkg/cmd/cli/backup/create.go | 9 +- pkg/cmd/cli/backup/create_test.go | 2 +- pkg/controller/backup_controller.go | 4 +- .../backup_deletion_controller_test.go | 2 +- pkg/util/collections/includes_excludes.go | 45 +++- .../collections/includes_excludes_test.go | 227 ++++++++++++------ 7 files changed, 213 insertions(+), 77 deletions(-) create mode 100644 changelogs/unreleased/4057-codegold79 diff --git a/changelogs/unreleased/4057-codegold79 b/changelogs/unreleased/4057-codegold79 new file mode 100644 index 000000000..321868bb5 --- /dev/null +++ b/changelogs/unreleased/4057-codegold79 @@ -0,0 +1 @@ +Validate namespace in Velero backup create command diff --git a/pkg/cmd/cli/backup/create.go b/pkg/cmd/cli/backup/create.go index b4e391314..9c1d4ffe1 100644 --- a/pkg/cmd/cli/backup/create.go +++ b/pkg/cmd/cli/backup/create.go @@ -1,5 +1,5 @@ /* -Copyright 2020 the Velero contributors. +Copyright The Velero Contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -27,6 +27,7 @@ import ( "github.com/spf13/cobra" "github.com/spf13/pflag" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kubeerrs "k8s.io/apimachinery/pkg/util/errors" "k8s.io/client-go/tools/cache" velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" @@ -37,6 +38,7 @@ import ( "github.com/vmware-tanzu/velero/pkg/cmd/util/output" veleroclient "github.com/vmware-tanzu/velero/pkg/generated/clientset/versioned" v1 "github.com/vmware-tanzu/velero/pkg/generated/informers/externalversions/velero/v1" + "github.com/vmware-tanzu/velero/pkg/util/collections" ) const DefaultBackupTTL time.Duration = 30 * 24 * time.Hour @@ -162,6 +164,11 @@ func (o *CreateOptions) Validate(c *cobra.Command, args []string, f client.Facto return fmt.Errorf("A backup name is required, unless you are creating based on a schedule.") } + errs := collections.ValidateNamespaceIncludesExcludes(o.IncludeNamespaces, o.ExcludeNamespaces) + if len(errs) > 0 { + return kubeerrs.NewAggregate(errs) + } + if o.StorageLocation != "" { location := &velerov1api.BackupStorageLocation{} if err := client.Get(context.Background(), kbclient.ObjectKey{ diff --git a/pkg/cmd/cli/backup/create_test.go b/pkg/cmd/cli/backup/create_test.go index 09bffd81e..ec6236994 100644 --- a/pkg/cmd/cli/backup/create_test.go +++ b/pkg/cmd/cli/backup/create_test.go @@ -1,5 +1,5 @@ /* -Copyright 2020 the Velero contributors. +Copyright The Velero Contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/controller/backup_controller.go b/pkg/controller/backup_controller.go index 8fdcb332e..034f56d43 100644 --- a/pkg/controller/backup_controller.go +++ b/pkg/controller/backup_controller.go @@ -1,5 +1,5 @@ /* -Copyright the Velero contributors. +Copyright The Velero Contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -424,7 +424,7 @@ func (c *backupController) prepareBackupRequest(backup *velerov1api.Backup) *pkg } // validate the included/excluded namespaces - for _, err := range collections.ValidateIncludesExcludes(request.Spec.IncludedNamespaces, request.Spec.ExcludedNamespaces) { + for _, err := range collections.ValidateNamespaceIncludesExcludes(request.Spec.IncludedNamespaces, request.Spec.ExcludedNamespaces) { request.Status.ValidationErrors = append(request.Status.ValidationErrors, fmt.Sprintf("Invalid included/excluded namespace lists: %v", err)) } diff --git a/pkg/controller/backup_deletion_controller_test.go b/pkg/controller/backup_deletion_controller_test.go index 388df8ae3..98109d7fe 100644 --- a/pkg/controller/backup_deletion_controller_test.go +++ b/pkg/controller/backup_deletion_controller_test.go @@ -1,5 +1,5 @@ /* -Copyright the Velero contributors. +Copyright The Velero Contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/util/collections/includes_excludes.go b/pkg/util/collections/includes_excludes.go index c113f0d95..898d1a260 100644 --- a/pkg/util/collections/includes_excludes.go +++ b/pkg/util/collections/includes_excludes.go @@ -1,5 +1,5 @@ /* -Copyright 2020 the Velero contributors. +Copyright The Velero Contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ import ( "github.com/gobwas/glob" "github.com/pkg/errors" + "k8s.io/apimachinery/pkg/api/validation" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" @@ -154,6 +155,48 @@ func ValidateIncludesExcludes(includesList, excludesList []string) []error { return errs } +// ValidateNamespaceIncludesExcludes checks provided lists of included and +// excluded namespaces to ensure they are a valid set of IncludesExcludes data. +func ValidateNamespaceIncludesExcludes(includesList, excludesList []string) []error { + errs := ValidateIncludesExcludes(includesList, excludesList) + + includes := sets.NewString(includesList...) + excludes := sets.NewString(excludesList...) + + for _, itm := range includes.List() { + // Although asterisks is not a valid Kubernetes namespace name, it is + // allowed here. + if itm != "*" { + if nsErrs := validateNamespaceName(itm); nsErrs != nil { + errs = append(errs, nsErrs...) + } + } + } + + for _, itm := range excludes.List() { + // Asterisks in excludes list have been checked previously. + if itm != "*" { + if nsErrs := validateNamespaceName(itm); nsErrs != nil { + errs = append(errs, nsErrs...) + } + } + } + + return errs +} + +func validateNamespaceName(ns string) []error { + var errs []error + + if errMsgs := validation.ValidateNamespaceName(ns, false); errMsgs != nil { + for _, msg := range errMsgs { + errs = append(errs, errors.Errorf("invalid namespace %q: %s", ns, msg)) + } + } + + return errs +} + // GenerateIncludesExcludes constructs an IncludesExcludes struct by taking the provided // include/exclude slices, applying the specified mapping function to each item in them, // and adding the output of the function to the new struct. If the mapping function returns diff --git a/pkg/util/collections/includes_excludes_test.go b/pkg/util/collections/includes_excludes_test.go index 9f08a7012..a9841c25a 100644 --- a/pkg/util/collections/includes_excludes_test.go +++ b/pkg/util/collections/includes_excludes_test.go @@ -1,5 +1,5 @@ /* -Copyright 2017 the Velero contributors. +Copyright The Velero Contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -29,86 +29,87 @@ func TestShouldInclude(t *testing.T) { name string includes []string excludes []string - check string - should bool + item string + want bool }{ { - name: "empty - include everything", - check: "foo", - should: true, + name: "empty string should include every item", + item: "foo", + want: true, }, { - name: "include *", + name: "include * should include every item", includes: []string{"*"}, - check: "foo", - should: true, + item: "foo", + want: true, }, { - name: "include specific - found", + name: "item in includes list should include item", includes: []string{"foo", "bar", "baz"}, - check: "foo", - should: true, + item: "foo", + want: true, }, { - name: "include specific - not found", + name: "item not in includes list should not include item", includes: []string{"foo", "baz"}, - check: "bar", - should: false, + item: "bar", + want: false, }, { - name: "include *, exclude foo", + name: "include *, excluded item should not include item", includes: []string{"*"}, excludes: []string{"foo"}, - check: "foo", - should: false, + item: "foo", + want: false, }, { - name: "include *, exclude foo, check bar", + name: "include *, exclude foo, bar should be included", includes: []string{"*"}, excludes: []string{"foo"}, - check: "bar", - should: true, + item: "bar", + want: true, }, { - name: "both include and exclude foo", + name: "an item both included and excluded should not be included", includes: []string{"foo"}, excludes: []string{"foo"}, - check: "foo", - should: false, + item: "foo", + want: false, }, { - name: "wildcard include", + name: "wildcard should include item", includes: []string{"*.bar"}, - check: "foo.bar", - should: true, + item: "foo.bar", + want: true, }, { - name: "wildcard include fail", + name: "wildcard mismatch should not include item", includes: []string{"*.bar"}, - check: "bar.foo", - should: false, + item: "bar.foo", + want: false, }, { - name: "wildcard exclude", + name: "wildcard exclude should not include item", includes: []string{"*"}, excludes: []string{"*.bar"}, - check: "foo.bar", - should: false, + item: "foo.bar", + want: false, }, { - name: "wildcard exclude fail", + name: "wildcard mismatch should include item", includes: []string{"*"}, excludes: []string{"*.bar"}, - check: "bar.foo", - should: true, + item: "bar.foo", + want: true, }, } - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - i := NewIncludesExcludes().Includes(test.includes...).Excludes(test.excludes...) - if e, a := test.should, i.ShouldInclude(test.check); e != a { - t.Errorf("expected %t, got %t", e, a) + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + includesExcludes := NewIncludesExcludes().Includes(tc.includes...).Excludes(tc.excludes...) + + if got := includesExcludes.ShouldInclude((tc.item)); got != tc.want { + t.Errorf("want %t, got %t", tc.want, got) } }) } @@ -119,7 +120,7 @@ func TestValidateIncludesExcludes(t *testing.T) { name string includes []string excludes []string - expected []error + want []error }{ { name: "empty includes (everything) is allowed", @@ -132,30 +133,30 @@ func TestValidateIncludesExcludes(t *testing.T) { { name: "include everything not allowed with other includes", includes: []string{"*", "foo"}, - expected: []error{errors.New("includes list must either contain '*' only, or a non-empty list of items")}, + want: []error{errors.New("includes list must either contain '*' only, or a non-empty list of items")}, }, { name: "exclude everything not allowed", includes: []string{"foo"}, excludes: []string{"*"}, - expected: []error{errors.New("excludes list cannot contain '*'")}, + want: []error{errors.New("excludes list cannot contain '*'")}, }, { name: "excludes cannot contain items in includes", includes: []string{"foo", "bar"}, excludes: []string{"bar"}, - expected: []error{errors.New("excludes list cannot contain an item in the includes list: bar")}, + want: []error{errors.New("excludes list cannot contain an item in the includes list: bar")}, }, } - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - res := ValidateIncludesExcludes(test.includes, test.excludes) + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + errs := ValidateIncludesExcludes(tc.includes, tc.excludes) - require.Equal(t, len(test.expected), len(res)) + require.Equal(t, len(tc.want), len(errs)) - for i := 0; i < len(test.expected); i++ { - assert.Equal(t, test.expected[i].Error(), res[i].Error()) + for i := 0; i < len(tc.want); i++ { + assert.Equal(t, tc.want[i].Error(), errs[i].Error()) } }) } @@ -163,33 +164,117 @@ func TestValidateIncludesExcludes(t *testing.T) { func TestIncludeExcludeString(t *testing.T) { tests := []struct { - name string - includes []string - excludes []string - expectedIncludes string - expectedExcludes string + name string + includes []string + excludes []string + wantIncludes string + wantExcludes string }{ { - name: "unspecified includes/excludes should return '*'/''", - includes: nil, - excludes: nil, - expectedIncludes: "*", - expectedExcludes: "", + name: "unspecified includes/excludes should return '*'/''", + includes: nil, + excludes: nil, + wantIncludes: "*", + wantExcludes: "", }, { - name: "specific resources should result in sorted joined string", - includes: []string{"foo", "bar"}, - excludes: []string{"baz", "xyz"}, - expectedIncludes: "bar, foo", - expectedExcludes: "baz, xyz", + name: "specific resources should result in sorted joined string", + includes: []string{"foo", "bar"}, + excludes: []string{"baz", "xyz"}, + wantIncludes: "bar, foo", + wantExcludes: "baz, xyz", }, } - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - ie := NewIncludesExcludes().Includes(test.includes...).Excludes(test.excludes...) - assert.Equal(t, test.expectedIncludes, ie.IncludesString()) - assert.Equal(t, test.expectedExcludes, ie.ExcludesString()) + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + includesExcludes := NewIncludesExcludes().Includes(tc.includes...).Excludes(tc.excludes...) + assert.Equal(t, tc.wantIncludes, includesExcludes.IncludesString()) + assert.Equal(t, tc.wantExcludes, includesExcludes.ExcludesString()) + }) + } +} + +func TestValidateNamespaceIncludesExcludes(t *testing.T) { + tests := []struct { + name string + includes []string + excludes []string + wantErr bool + }{ + { + name: "empty slice doesn't return error", + includes: []string{}, + wantErr: false, + }, + { + name: "empty string is invalid", + includes: []string{""}, + wantErr: true, + }, + { + name: "asterisk by itself is valid", + includes: []string{"*"}, + wantErr: false, + }, + { + name: "alphanumeric names with optional dash inside are valid", + includes: []string{"foobar", "bar-321", "foo123bar"}, + excludes: []string{"123bar", "barfoo", "foo-321", "bar123foo"}, + wantErr: false, + }, + { + name: "not starting or ending with an alphanumeric character is invalid", + includes: []string{"-123foo"}, + excludes: []string{"foo321-", "foo321-"}, + wantErr: true, + }, + { + name: "special characters in name is invalid", + includes: []string{"foo?", "foo.bar", "bar_321"}, + excludes: []string{"$foo", "foo*bar", "bar=321"}, + wantErr: true, + }, + { + name: "empty includes (everything) is valid", + includes: []string{}, + wantErr: false, + }, + { + name: "include everything using asterisk is valid", + includes: []string{"*"}, + wantErr: false, + }, + { + name: "include everything not allowed with other includes", + includes: []string{"*", "foo"}, + wantErr: true, + }, + { + name: "exclude everything not allowed", + includes: []string{"foo"}, + excludes: []string{"*"}, + wantErr: true, + }, + { + name: "excludes cannot contain items in includes", + includes: []string{"foo", "bar"}, + excludes: []string{"bar"}, + wantErr: true, + }, + } + + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + errs := ValidateNamespaceIncludesExcludes(tc.includes, tc.excludes) + + if tc.wantErr && len(errs) == 0 { + t.Errorf("%s: wanted errors but got none", tc.name) + } + + if !tc.wantErr && len(errs) != 0 { + t.Errorf("%s: wanted no errors but got: %v", tc.name, errs) + } }) } } From 2205f9d0ffa2de9669e99eb2dcbac9f59bc7eae6 Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Thu, 2 Sep 2021 10:57:46 +0800 Subject: [PATCH 009/136] Add `velero debug` to documentation This commits updates the `troubleshooting` section in the doc to ask users to collect log via `velero debug`. Signed-off-by: Daniel Jiang --- site/content/docs/main/troubleshooting.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/site/content/docs/main/troubleshooting.md b/site/content/docs/main/troubleshooting.md index 7b035006f..cdfd25305 100644 --- a/site/content/docs/main/troubleshooting.md +++ b/site/content/docs/main/troubleshooting.md @@ -17,13 +17,14 @@ These tips can help you troubleshoot known issues. If they don't help, you can [ You can use the `velero bug` command to open a [Github issue][4] by launching a browser window with some prepopulated values. Values included are OS, CPU architecture, `kubectl` client and server versions (if available) and the `velero` client version. This information isn't submitted to Github until you click the `Submit new issue` button in the Github UI, so feel free to add, remove or update whatever information you like. -Some general commands for troubleshooting that may be helpful: +You can use the `velero debug` command to generate a debug bundle, which is a tarball +that contains: +* Version information +* Logs of velero server and plugins +* Resources managed by velero server such as backup, restore, podvolumebackup, podvolumerestore, etc. +* Logs of the backup and restore, if specified in the parameters -* `velero backup describe ` - describe the details of a backup -* `velero backup logs ` - fetch the logs for this specific backup. Useful for viewing failures and warnings, including resources that could not be backed up. -* `velero restore describe ` - describe the details of a restore -* `velero restore logs ` - fetch the logs for this specific restore. Useful for viewing failures and warnings, including resources that could not be restored. -* `kubectl logs deployment/velero -n velero` - fetch the logs of the Velero server pod. This provides the output of the Velero server processes. +Please use command `velero debug --help` to see more usage details. ### Getting velero debug logs From 5e50a50e84978d899eeda741d6c04a3135acd7a8 Mon Sep 17 00:00:00 2001 From: Bridget McErlean Date: Tue, 7 Sep 2021 18:56:56 -0400 Subject: [PATCH 010/136] Generate 1.7 changelog Signed-off-by: Bridget McErlean --- CHANGELOG.md | 4 +- changelogs/CHANGELOG-1.7.md | 80 ++++++++++++++++++++++ changelogs/unreleased/3614-jenting | 1 - changelogs/unreleased/3641-arush-sal | 1 - changelogs/unreleased/3711-ashish-amarnath | 1 - changelogs/unreleased/3734-ashish-amarnath | 4 -- changelogs/unreleased/3789-alaypatel07 | 1 - changelogs/unreleased/3792-sseago | 1 - changelogs/unreleased/3803-2uasimojo | 1 - changelogs/unreleased/3805-dsmithuchida | 16 ----- changelogs/unreleased/3823-dharmab | 1 - changelogs/unreleased/3845-sseago | 1 - changelogs/unreleased/3857-zubron | 1 - changelogs/unreleased/3866-alaypatel07 | 1 - changelogs/unreleased/3877-zubron | 1 - changelogs/unreleased/3912-ywk253100 | 1 - changelogs/unreleased/3919-jaidevmane | 1 - changelogs/unreleased/3926-jenting | 1 - changelogs/unreleased/3941-sseago | 1 - changelogs/unreleased/3983-jaidevmane | 1 - changelogs/unreleased/3990-reasonerjt | 1 - changelogs/unreleased/3993-mahaupt | 1 - changelogs/unreleased/3996-ywk253100 | 1 - changelogs/unreleased/4007-ywk253100 | 1 - changelogs/unreleased/4015-zubron | 1 - changelogs/unreleased/4022-reasonerjt | 1 - changelogs/unreleased/4026-sseago | 1 - changelogs/unreleased/4028-zubron | 1 - changelogs/unreleased/4055-ywk253100 | 1 - changelogs/unreleased/4057-codegold79 | 1 - changelogs/unreleased/4064-kahirokunn | 1 - changelogs/unreleased/4076-zubron | 1 - changelogs/unreleased/4101-ywk253100 | 1 - 33 files changed, 83 insertions(+), 50 deletions(-) create mode 100644 changelogs/CHANGELOG-1.7.md delete mode 100644 changelogs/unreleased/3614-jenting delete mode 100644 changelogs/unreleased/3641-arush-sal delete mode 100644 changelogs/unreleased/3711-ashish-amarnath delete mode 100644 changelogs/unreleased/3734-ashish-amarnath delete mode 100644 changelogs/unreleased/3789-alaypatel07 delete mode 100644 changelogs/unreleased/3792-sseago delete mode 100644 changelogs/unreleased/3803-2uasimojo delete mode 100644 changelogs/unreleased/3805-dsmithuchida delete mode 100644 changelogs/unreleased/3823-dharmab delete mode 100644 changelogs/unreleased/3845-sseago delete mode 100644 changelogs/unreleased/3857-zubron delete mode 100644 changelogs/unreleased/3866-alaypatel07 delete mode 100644 changelogs/unreleased/3877-zubron delete mode 100644 changelogs/unreleased/3912-ywk253100 delete mode 100644 changelogs/unreleased/3919-jaidevmane delete mode 100644 changelogs/unreleased/3926-jenting delete mode 100644 changelogs/unreleased/3941-sseago delete mode 100644 changelogs/unreleased/3983-jaidevmane delete mode 100644 changelogs/unreleased/3990-reasonerjt delete mode 100644 changelogs/unreleased/3993-mahaupt delete mode 100644 changelogs/unreleased/3996-ywk253100 delete mode 100644 changelogs/unreleased/4007-ywk253100 delete mode 100644 changelogs/unreleased/4015-zubron delete mode 100644 changelogs/unreleased/4022-reasonerjt delete mode 100644 changelogs/unreleased/4026-sseago delete mode 100644 changelogs/unreleased/4028-zubron delete mode 100644 changelogs/unreleased/4055-ywk253100 delete mode 100644 changelogs/unreleased/4057-codegold79 delete mode 100644 changelogs/unreleased/4064-kahirokunn delete mode 100644 changelogs/unreleased/4076-zubron delete mode 100644 changelogs/unreleased/4101-ywk253100 diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c749bf2b..1dbfe3e1a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,8 @@ ## Current release: - * [CHANGELOG-1.6.md][16] + * [CHANGELOG-1.7.md][17] ## Older releases: + * [CHANGELOG-1.6.md][16] * [CHANGELOG-1.5.md][15] * [CHANGELOG-1.4.md][14] * [CHANGELOG-1.3.md][13] @@ -19,6 +20,7 @@ * [CHANGELOG-0.3.md][1] +[17]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.7.md [16]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.6.md [15]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.5.md [14]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.4.md diff --git a/changelogs/CHANGELOG-1.7.md b/changelogs/CHANGELOG-1.7.md new file mode 100644 index 000000000..fdff3c2b0 --- /dev/null +++ b/changelogs/CHANGELOG-1.7.md @@ -0,0 +1,80 @@ +## v1.7.0 +### 2021-09-07 + +### Download +https://github.com/vmware-tanzu/velero/releases/tag/v1.7.0 + +### Container Image +`velero/velero:v1.7.0` + +### Documentation +https://velero.io/docs/v1.7/ + +### Upgrading +https://velero.io/docs/v1.7/upgrade-to-1.7/ + +### Highlights + +#### Distroless images + +The Velero container images now use [distroless base images](https://github.com/GoogleContainerTools/distroless). +Using distroless images as the base ensures that only the packages and programs necessary for running Velero are included. +Unrelated libraries and OS packages, that often contain security vulnerabilities, are now excluded. +This change reduces the size of both the server and restic restore helper image by approximately 62MB. + +As the [distroless](https://github.com/GoogleContainerTools/distroless) images do not contain a shell, it will no longer be possible to exec into Velero containers using these images. + +#### New "debug" command + +This release introduces the new `velero debug` command. +This command collects information about a Velero installation, such as pod logs and resources managed by Velero, in a tarball which can be provided to the Velero maintainer team to help diagnose issues. + +### All changes + + * Distinguish between different unnamed node ports when preserving (#4026, @sseago) + * Validate namespace in Velero backup create command (#4057, @codegold79) + * Empty the "ClusterIPs" along with "ClusterIP" when "ClusterIP" isn't "None" (#4101, @ywk253100) + * Add a RestoreItemAction plugin (`velero.io/apiservice`) which skips the restore of any `APIService` which is managed by Kubernetes. These are identified using the `kube-aggregator.kubernetes.io/automanaged` label. (#4028, @zubron) + * Change the base image to distroless (#4055, @ywk253100) + * Updated the version of velero/velero-plugin-for-aws version from v1.2.0 to v1.2.1 (#4064, @kahirokunn) + * Skip the backup and restore of DownwardAPI volumes when using restic. (#4076, @zubron) + * Bump up Go to 1.16 (#3990, @reasonerjt) + * Fix restic error when volume is emptyDir and Pod not running (#3993, @mahaupt) + * Select the velero deployment with both label and container name (#3996, @ywk253100) + * Wait for the namespace to be deleted before removing the CRDs during uninstall. This deprecates the `--wait` flag of the `uninstall` command (#4007, @ywk253100) + * Use the cluster preferred CRD API version when polling for Velero CRD readiness. (#4015, @zubron) + * Implement velero debug (#4022, @reasonerjt) + * Skip the restore of volumes that originally came from a projected volume when using restic. (#3877, @zubron) + * Run the E2E test with kind(provision various versions of k8s cluster) and MinIO on Github Action (#3912, @ywk253100) + * Fix -install-velero flag for e2e tests (#3919, @jaidevmane) + * Upgrade Velero ClusterRoleBinding to use v1 API (#3926, @jenting) + * enable e2e tests to choose crd apiVersion (#3941, @sseago) + * Fixing multipleNamespaceTest bug - Missing expect statement in test (#3983, @jaidevmane) + * Add --client-page-size flag to server to allow chunking Kubernetes API LIST calls across multiple requests on large clusters (#3823, @dharmab) + * Fix CR restore regression introduced in 1.6 restore progress. (#3845, @sseago) + * Use region specified in the BackupStorageLocation spec when getting restic repo identifier. Originally fixed by @jala-dx in #3617. (#3857, @zubron) + * skip backuping projected volume when using restic (#3866, @alaypatel07) + * Install Kubernetes preferred CRDs API version (v1beta1/v1). (#3614, @jenting) + * Add Label to BackupSpec so that labels can explicitly be provided to Schedule.Spec.Template.Metadata.Labels which will be reflected on the backups created. (#3641, @arush-sal) + * Add PVC UID label to PodVolumeRestore (#3792, @sseago) + * Support pulling plugin images by digest (#3803, @2uasimojo) + * Added BackupPhaseUploading and BackupPhaseUploadingPartialFailure backup phases as part of Upload Progress Monitoring. (#3805, @dsmithuchida) + + Uploading (new) + The "Uploading" phase signifies that the main part of the backup, including + snapshotting has completed successfully and uploading is continuing. In + the event of an error during uploading, the phase will change to + UploadingPartialFailure. On success, the phase changes to Completed. The + backup cannot be restored from when it is in the Uploading state. + + UploadingPartialFailure (new) + The "UploadingPartialFailure" phase signifies that the main part of the backup, + including snapshotting has completed, but there were partial failures either + during the main part or during the uploading. The backup cannot be restored + from when it is in the UploadingPartialFailure state. + * 🐛 Fix plugin name derivation from image name (#3711, @ashish-amarnath) + * ✨ ⚠️ Remove CSI volumesnapshot artifact deletion + +This change requires https://github.com/vmware-tanzu/velero-plugin-for-csi/pull/86 for Velero to continue +deleting of CSI volumesnapshots when the corresponding backups are deleted. (#3734, @ashish-amarnath) + * use unstructured to marshal selective fields for service restore action (#3789, @alaypatel07) diff --git a/changelogs/unreleased/3614-jenting b/changelogs/unreleased/3614-jenting deleted file mode 100644 index b0965c019..000000000 --- a/changelogs/unreleased/3614-jenting +++ /dev/null @@ -1 +0,0 @@ -Install Kubernetes preferred CRDs API version (v1beta1/v1). diff --git a/changelogs/unreleased/3641-arush-sal b/changelogs/unreleased/3641-arush-sal deleted file mode 100644 index 61681fa66..000000000 --- a/changelogs/unreleased/3641-arush-sal +++ /dev/null @@ -1 +0,0 @@ -Add Label to BackupSpec so that labels can explicitly be provided to Schedule.Spec.Template.Metadata.Labels which will be reflected on the backups created. diff --git a/changelogs/unreleased/3711-ashish-amarnath b/changelogs/unreleased/3711-ashish-amarnath deleted file mode 100644 index 298a775b5..000000000 --- a/changelogs/unreleased/3711-ashish-amarnath +++ /dev/null @@ -1 +0,0 @@ -🐛 Fix plugin name derivation from image name diff --git a/changelogs/unreleased/3734-ashish-amarnath b/changelogs/unreleased/3734-ashish-amarnath deleted file mode 100644 index b48e60b71..000000000 --- a/changelogs/unreleased/3734-ashish-amarnath +++ /dev/null @@ -1,4 +0,0 @@ -✨ ⚠️ Remove CSI volumesnapshot artifact deletion - -This change requires https://github.com/vmware-tanzu/velero-plugin-for-csi/pull/86 for Velero to continue -deleting of CSI volumesnapshots when the corresponding backups are deleted. \ No newline at end of file diff --git a/changelogs/unreleased/3789-alaypatel07 b/changelogs/unreleased/3789-alaypatel07 deleted file mode 100644 index d22f47c72..000000000 --- a/changelogs/unreleased/3789-alaypatel07 +++ /dev/null @@ -1 +0,0 @@ -use unstructured to marshal selective fields for service restore action \ No newline at end of file diff --git a/changelogs/unreleased/3792-sseago b/changelogs/unreleased/3792-sseago deleted file mode 100644 index e684e787c..000000000 --- a/changelogs/unreleased/3792-sseago +++ /dev/null @@ -1 +0,0 @@ -Add PVC UID label to PodVolumeRestore diff --git a/changelogs/unreleased/3803-2uasimojo b/changelogs/unreleased/3803-2uasimojo deleted file mode 100644 index 0c9ea2b1c..000000000 --- a/changelogs/unreleased/3803-2uasimojo +++ /dev/null @@ -1 +0,0 @@ -Support pulling plugin images by digest diff --git a/changelogs/unreleased/3805-dsmithuchida b/changelogs/unreleased/3805-dsmithuchida deleted file mode 100644 index e94787c80..000000000 --- a/changelogs/unreleased/3805-dsmithuchida +++ /dev/null @@ -1,16 +0,0 @@ -Added BackupPhaseUploading and BackupPhaseUploadingPartialFailure backup phases as part of Upload Progress Monitoring - -Uploading (new) -The "Uploading" phase signifies that the main part of the backup, including -snapshotting has completed successfully and uploading is continuing. In -the event of an error during uploading, the phase will change to -UploadingPartialFailure. On success, the phase changes to Completed. The -backup cannot be restored from when it is in the Uploading state. - -UploadingPartialFailure (new) -The "UploadingPartialFailure" phase signifies that the main part of the backup, -including snapshotting has completed, but there were partial failures either -during the main part or during the uploading. The backup cannot be restored -from when it is in the UploadingPartialFailure state. - - diff --git a/changelogs/unreleased/3823-dharmab b/changelogs/unreleased/3823-dharmab deleted file mode 100644 index d441a228c..000000000 --- a/changelogs/unreleased/3823-dharmab +++ /dev/null @@ -1 +0,0 @@ -Add --client-page-size flag to server to allow chunking Kubernetes API LIST calls across multiple requests on large clusters diff --git a/changelogs/unreleased/3845-sseago b/changelogs/unreleased/3845-sseago deleted file mode 100644 index 0abe890fe..000000000 --- a/changelogs/unreleased/3845-sseago +++ /dev/null @@ -1 +0,0 @@ -Fix CR restore regression introduced in 1.6 restore progress. diff --git a/changelogs/unreleased/3857-zubron b/changelogs/unreleased/3857-zubron deleted file mode 100644 index 9037a0bf5..000000000 --- a/changelogs/unreleased/3857-zubron +++ /dev/null @@ -1 +0,0 @@ -Use region specified in the BackupStorageLocation spec when getting restic repo identifier. Originally fixed by @jala-dx in #3617. diff --git a/changelogs/unreleased/3866-alaypatel07 b/changelogs/unreleased/3866-alaypatel07 deleted file mode 100644 index 7480bc062..000000000 --- a/changelogs/unreleased/3866-alaypatel07 +++ /dev/null @@ -1 +0,0 @@ -skip backuping projected volume when using restic \ No newline at end of file diff --git a/changelogs/unreleased/3877-zubron b/changelogs/unreleased/3877-zubron deleted file mode 100644 index c4020a4bc..000000000 --- a/changelogs/unreleased/3877-zubron +++ /dev/null @@ -1 +0,0 @@ -Skip the restore of volumes that originally came from a projected volume when using restic. \ No newline at end of file diff --git a/changelogs/unreleased/3912-ywk253100 b/changelogs/unreleased/3912-ywk253100 deleted file mode 100644 index 81352675c..000000000 --- a/changelogs/unreleased/3912-ywk253100 +++ /dev/null @@ -1 +0,0 @@ -Run the E2E test with kind(provision various versions of k8s cluster) and MinIO on Github Action \ No newline at end of file diff --git a/changelogs/unreleased/3919-jaidevmane b/changelogs/unreleased/3919-jaidevmane deleted file mode 100644 index 61925a651..000000000 --- a/changelogs/unreleased/3919-jaidevmane +++ /dev/null @@ -1 +0,0 @@ -Fix -install-velero flag for e2e tests \ No newline at end of file diff --git a/changelogs/unreleased/3926-jenting b/changelogs/unreleased/3926-jenting deleted file mode 100644 index ffb8f178c..000000000 --- a/changelogs/unreleased/3926-jenting +++ /dev/null @@ -1 +0,0 @@ -Upgrade Velero ClusterRoleBinding to use v1 API diff --git a/changelogs/unreleased/3941-sseago b/changelogs/unreleased/3941-sseago deleted file mode 100644 index 17751a5ff..000000000 --- a/changelogs/unreleased/3941-sseago +++ /dev/null @@ -1 +0,0 @@ -enable e2e tests to choose crd apiVersion diff --git a/changelogs/unreleased/3983-jaidevmane b/changelogs/unreleased/3983-jaidevmane deleted file mode 100644 index 967d4b6b3..000000000 --- a/changelogs/unreleased/3983-jaidevmane +++ /dev/null @@ -1 +0,0 @@ -Fixing multipleNamespaceTest bug - Missing expect statement in test \ No newline at end of file diff --git a/changelogs/unreleased/3990-reasonerjt b/changelogs/unreleased/3990-reasonerjt deleted file mode 100644 index 44a82e2c6..000000000 --- a/changelogs/unreleased/3990-reasonerjt +++ /dev/null @@ -1 +0,0 @@ -Bump up Go to 1.16 \ No newline at end of file diff --git a/changelogs/unreleased/3993-mahaupt b/changelogs/unreleased/3993-mahaupt deleted file mode 100644 index 9e0312c2b..000000000 --- a/changelogs/unreleased/3993-mahaupt +++ /dev/null @@ -1 +0,0 @@ -Fix restic error when volume is emptyDir and Pod not running diff --git a/changelogs/unreleased/3996-ywk253100 b/changelogs/unreleased/3996-ywk253100 deleted file mode 100644 index 2e9534315..000000000 --- a/changelogs/unreleased/3996-ywk253100 +++ /dev/null @@ -1 +0,0 @@ -Select the velero deployment with both label and container name \ No newline at end of file diff --git a/changelogs/unreleased/4007-ywk253100 b/changelogs/unreleased/4007-ywk253100 deleted file mode 100644 index 4e052ce95..000000000 --- a/changelogs/unreleased/4007-ywk253100 +++ /dev/null @@ -1 +0,0 @@ -Wait for the namespace to be deleted before removing the CRDs during uninstall. This deprecates the `--wait` flag of the `uninstall` command \ No newline at end of file diff --git a/changelogs/unreleased/4015-zubron b/changelogs/unreleased/4015-zubron deleted file mode 100644 index 937ba33da..000000000 --- a/changelogs/unreleased/4015-zubron +++ /dev/null @@ -1 +0,0 @@ -Use the cluster preferred CRD API version when polling for Velero CRD readiness. \ No newline at end of file diff --git a/changelogs/unreleased/4022-reasonerjt b/changelogs/unreleased/4022-reasonerjt deleted file mode 100644 index 5457fd7e2..000000000 --- a/changelogs/unreleased/4022-reasonerjt +++ /dev/null @@ -1 +0,0 @@ -Implement velero debug \ No newline at end of file diff --git a/changelogs/unreleased/4026-sseago b/changelogs/unreleased/4026-sseago deleted file mode 100644 index 951ced8a7..000000000 --- a/changelogs/unreleased/4026-sseago +++ /dev/null @@ -1 +0,0 @@ -Distinguish between different unnamed node ports when preserving diff --git a/changelogs/unreleased/4028-zubron b/changelogs/unreleased/4028-zubron deleted file mode 100644 index 79a32656d..000000000 --- a/changelogs/unreleased/4028-zubron +++ /dev/null @@ -1 +0,0 @@ -Add a RestoreItemAction plugin (`velero.io/apiservice`) which skips the restore of any `APIService` which is managed by Kubernetes. These are identified using the `kube-aggregator.kubernetes.io/automanaged` label. \ No newline at end of file diff --git a/changelogs/unreleased/4055-ywk253100 b/changelogs/unreleased/4055-ywk253100 deleted file mode 100644 index 4dd9a9c85..000000000 --- a/changelogs/unreleased/4055-ywk253100 +++ /dev/null @@ -1 +0,0 @@ -Change the base image to distroless \ No newline at end of file diff --git a/changelogs/unreleased/4057-codegold79 b/changelogs/unreleased/4057-codegold79 deleted file mode 100644 index 321868bb5..000000000 --- a/changelogs/unreleased/4057-codegold79 +++ /dev/null @@ -1 +0,0 @@ -Validate namespace in Velero backup create command diff --git a/changelogs/unreleased/4064-kahirokunn b/changelogs/unreleased/4064-kahirokunn deleted file mode 100644 index 877a6e864..000000000 --- a/changelogs/unreleased/4064-kahirokunn +++ /dev/null @@ -1 +0,0 @@ -Updated the version of velero/velero-plugin-for-aws version from v1.2.0 to v1.2.1 diff --git a/changelogs/unreleased/4076-zubron b/changelogs/unreleased/4076-zubron deleted file mode 100644 index 386675f4e..000000000 --- a/changelogs/unreleased/4076-zubron +++ /dev/null @@ -1 +0,0 @@ -Skip the backup and restore of DownwardAPI volumes when using restic. \ No newline at end of file diff --git a/changelogs/unreleased/4101-ywk253100 b/changelogs/unreleased/4101-ywk253100 deleted file mode 100644 index 747db01ca..000000000 --- a/changelogs/unreleased/4101-ywk253100 +++ /dev/null @@ -1 +0,0 @@ -Empty the "ClusterIPs" along with "ClusterIP" when "ClusterIP" isn't "None" \ No newline at end of file From 194a9a5f6612a4ba5104a0181d85abcba5735b40 Mon Sep 17 00:00:00 2001 From: Bridget McErlean Date: Tue, 7 Sep 2021 23:26:52 -0400 Subject: [PATCH 011/136] Generate v1.7 docs Signed-off-by: Bridget McErlean --- site/config.yaml | 1 + site/content/docs/v1.7/_index.md | 58 ++ site/content/docs/v1.7/api-types/README.md | 21 + site/content/docs/v1.7/api-types/_index.md | 19 + site/content/docs/v1.7/api-types/backup.md | 148 +++++ .../v1.7/api-types/backupstoragelocation.md | 54 ++ site/content/docs/v1.7/api-types/restore.md | 168 ++++++ site/content/docs/v1.7/api-types/schedule.md | 140 +++++ .../v1.7/api-types/volumesnapshotlocation.md | 40 ++ site/content/docs/v1.7/backup-hooks.md | 92 +++ site/content/docs/v1.7/backup-reference.md | 70 +++ site/content/docs/v1.7/basic-install.md | 73 +++ site/content/docs/v1.7/build-from-source.md | 200 +++++++ site/content/docs/v1.7/code-standards.md | 151 +++++ .../docs/v1.7/contributions/ibm-config.md | 101 ++++ .../15ccaacf00640a04ae29ceed4c86195b.png | Bin 0 -> 132711 bytes .../1d53b0115644d43657c2a5ece805c9b4.png | Bin 0 -> 74478 bytes .../69194157ccd5e377d1e7d914fd8c0336.png | Bin 0 -> 32817 bytes .../9015313121ed7987558c88081b052574.png | Bin 0 -> 417063 bytes .../ceaca9ce6bc92bdce987c63d2fe71561.png | Bin 0 -> 292269 bytes .../e8c2ab4e5e31d1370c62fad25059a8a8.png | Bin 0 -> 65320 bytes .../e932223585c0b19891cc085ad7f438e1.png | Bin 0 -> 284090 bytes .../eb2bbabae48b188748f5278bedf177f1.png | Bin 0 -> 126032 bytes .../effe8a0a7ce3aa8e422db00bfdddc375.png | Bin 0 -> 85131 bytes .../f0fff5228527edc72d6e71a50d5dc966.png | Bin 0 -> 49558 bytes site/content/docs/v1.7/contributions/minio.md | 292 ++++++++++ .../docs/v1.7/contributions/oracle-config.md | 248 ++++++++ .../docs/v1.7/contributions/tencent-config.md | 168 ++++++ site/content/docs/v1.7/csi.md | 77 +++ site/content/docs/v1.7/custom-plugins.md | 117 ++++ .../docs/v1.7/customize-installation.md | 368 ++++++++++++ site/content/docs/v1.7/debugging-install.md | 74 +++ site/content/docs/v1.7/debugging-restores.md | 105 ++++ site/content/docs/v1.7/development.md | 56 ++ site/content/docs/v1.7/disaster-case.md | 44 ++ .../v1.7/enable-api-group-versions-feature.md | 115 ++++ site/content/docs/v1.7/examples.md | 70 +++ site/content/docs/v1.7/how-velero-works.md | 87 +++ site/content/docs/v1.7/image-tagging.md | 24 + site/content/docs/v1.7/img/README.md | 1 + site/content/docs/v1.7/img/backup-process.png | Bin 0 -> 33630 bytes .../docs/v1.7/img/gv_priority1-caseA.png | Bin 0 -> 57254 bytes .../docs/v1.7/img/gv_priority1-caseB.png | Bin 0 -> 87058 bytes .../docs/v1.7/img/gv_priority2-caseC.png | Bin 0 -> 42106 bytes .../docs/v1.7/img/gv_priority3-caseD.png | Bin 0 -> 69760 bytes site/content/docs/v1.7/img/velero.png | Bin 0 -> 45564 bytes site/content/docs/v1.7/locations.md | 260 +++++++++ site/content/docs/v1.7/maintainers.md | 37 ++ site/content/docs/v1.7/manual-testing.md | 92 +++ site/content/docs/v1.7/migration-case.md | 58 ++ site/content/docs/v1.7/namespace.md | 22 + site/content/docs/v1.7/on-premises.md | 95 ++++ site/content/docs/v1.7/output-file-format.md | 224 ++++++++ site/content/docs/v1.7/overview-plugins.md | 29 + .../docs/v1.7/plugin-release-instructions.md | 30 + site/content/docs/v1.7/rbac.md | 50 ++ .../content/docs/v1.7/release-instructions.md | 161 ++++++ site/content/docs/v1.7/release-schedule.md | 15 + site/content/docs/v1.7/resource-filtering.md | 132 +++++ site/content/docs/v1.7/restic.md | 529 ++++++++++++++++++ site/content/docs/v1.7/restore-hooks.md | 261 +++++++++ site/content/docs/v1.7/restore-reference.md | 144 +++++ site/content/docs/v1.7/run-locally.md | 53 ++ .../docs/v1.7/self-signed-certificates.md | 48 ++ site/content/docs/v1.7/start-contributing.md | 34 ++ site/content/docs/v1.7/style-guide.md | 344 ++++++++++++ site/content/docs/v1.7/support-process.md | 44 ++ site/content/docs/v1.7/supported-providers.md | 70 +++ site/content/docs/v1.7/tilt.md | 210 +++++++ site/content/docs/v1.7/troubleshooting.md | 219 ++++++++ site/content/docs/v1.7/uninstalling.md | 11 + site/content/docs/v1.7/upgrade-to-1.6.md | 91 +++ site/content/docs/v1.7/velero-install.md | 49 ++ .../docs/v1.7/vendoring-dependencies.md | 21 + site/content/docs/v1.7/website-guidelines.md | 45 ++ site/data/docs/toc-mapping.yml | 1 + site/data/docs/v1-7-toc.yml | 97 ++++ 77 files changed, 6658 insertions(+) create mode 100644 site/content/docs/v1.7/_index.md create mode 100644 site/content/docs/v1.7/api-types/README.md create mode 100644 site/content/docs/v1.7/api-types/_index.md create mode 100644 site/content/docs/v1.7/api-types/backup.md create mode 100644 site/content/docs/v1.7/api-types/backupstoragelocation.md create mode 100644 site/content/docs/v1.7/api-types/restore.md create mode 100644 site/content/docs/v1.7/api-types/schedule.md create mode 100644 site/content/docs/v1.7/api-types/volumesnapshotlocation.md create mode 100644 site/content/docs/v1.7/backup-hooks.md create mode 100644 site/content/docs/v1.7/backup-reference.md create mode 100644 site/content/docs/v1.7/basic-install.md create mode 100644 site/content/docs/v1.7/build-from-source.md create mode 100644 site/content/docs/v1.7/code-standards.md create mode 100644 site/content/docs/v1.7/contributions/ibm-config.md create mode 100644 site/content/docs/v1.7/contributions/img-for-tencent/15ccaacf00640a04ae29ceed4c86195b.png create mode 100644 site/content/docs/v1.7/contributions/img-for-tencent/1d53b0115644d43657c2a5ece805c9b4.png create mode 100644 site/content/docs/v1.7/contributions/img-for-tencent/69194157ccd5e377d1e7d914fd8c0336.png create mode 100644 site/content/docs/v1.7/contributions/img-for-tencent/9015313121ed7987558c88081b052574.png create mode 100644 site/content/docs/v1.7/contributions/img-for-tencent/ceaca9ce6bc92bdce987c63d2fe71561.png create mode 100644 site/content/docs/v1.7/contributions/img-for-tencent/e8c2ab4e5e31d1370c62fad25059a8a8.png create mode 100644 site/content/docs/v1.7/contributions/img-for-tencent/e932223585c0b19891cc085ad7f438e1.png create mode 100644 site/content/docs/v1.7/contributions/img-for-tencent/eb2bbabae48b188748f5278bedf177f1.png create mode 100644 site/content/docs/v1.7/contributions/img-for-tencent/effe8a0a7ce3aa8e422db00bfdddc375.png create mode 100644 site/content/docs/v1.7/contributions/img-for-tencent/f0fff5228527edc72d6e71a50d5dc966.png create mode 100644 site/content/docs/v1.7/contributions/minio.md create mode 100644 site/content/docs/v1.7/contributions/oracle-config.md create mode 100644 site/content/docs/v1.7/contributions/tencent-config.md create mode 100644 site/content/docs/v1.7/csi.md create mode 100644 site/content/docs/v1.7/custom-plugins.md create mode 100644 site/content/docs/v1.7/customize-installation.md create mode 100644 site/content/docs/v1.7/debugging-install.md create mode 100644 site/content/docs/v1.7/debugging-restores.md create mode 100644 site/content/docs/v1.7/development.md create mode 100644 site/content/docs/v1.7/disaster-case.md create mode 100644 site/content/docs/v1.7/enable-api-group-versions-feature.md create mode 100644 site/content/docs/v1.7/examples.md create mode 100644 site/content/docs/v1.7/how-velero-works.md create mode 100644 site/content/docs/v1.7/image-tagging.md create mode 100644 site/content/docs/v1.7/img/README.md create mode 100644 site/content/docs/v1.7/img/backup-process.png create mode 100644 site/content/docs/v1.7/img/gv_priority1-caseA.png create mode 100644 site/content/docs/v1.7/img/gv_priority1-caseB.png create mode 100644 site/content/docs/v1.7/img/gv_priority2-caseC.png create mode 100644 site/content/docs/v1.7/img/gv_priority3-caseD.png create mode 100644 site/content/docs/v1.7/img/velero.png create mode 100644 site/content/docs/v1.7/locations.md create mode 100644 site/content/docs/v1.7/maintainers.md create mode 100644 site/content/docs/v1.7/manual-testing.md create mode 100644 site/content/docs/v1.7/migration-case.md create mode 100644 site/content/docs/v1.7/namespace.md create mode 100644 site/content/docs/v1.7/on-premises.md create mode 100644 site/content/docs/v1.7/output-file-format.md create mode 100644 site/content/docs/v1.7/overview-plugins.md create mode 100644 site/content/docs/v1.7/plugin-release-instructions.md create mode 100644 site/content/docs/v1.7/rbac.md create mode 100644 site/content/docs/v1.7/release-instructions.md create mode 100644 site/content/docs/v1.7/release-schedule.md create mode 100644 site/content/docs/v1.7/resource-filtering.md create mode 100644 site/content/docs/v1.7/restic.md create mode 100644 site/content/docs/v1.7/restore-hooks.md create mode 100644 site/content/docs/v1.7/restore-reference.md create mode 100644 site/content/docs/v1.7/run-locally.md create mode 100644 site/content/docs/v1.7/self-signed-certificates.md create mode 100644 site/content/docs/v1.7/start-contributing.md create mode 100644 site/content/docs/v1.7/style-guide.md create mode 100644 site/content/docs/v1.7/support-process.md create mode 100644 site/content/docs/v1.7/supported-providers.md create mode 100644 site/content/docs/v1.7/tilt.md create mode 100644 site/content/docs/v1.7/troubleshooting.md create mode 100644 site/content/docs/v1.7/uninstalling.md create mode 100644 site/content/docs/v1.7/upgrade-to-1.6.md create mode 100644 site/content/docs/v1.7/velero-install.md create mode 100644 site/content/docs/v1.7/vendoring-dependencies.md create mode 100644 site/content/docs/v1.7/website-guidelines.md create mode 100644 site/data/docs/v1-7-toc.yml diff --git a/site/config.yaml b/site/config.yaml index 0697054ad..303b94ebc 100644 --- a/site/config.yaml +++ b/site/config.yaml @@ -15,6 +15,7 @@ params: latest: v1.6 versions: - main + - v1.7 - v1.6 - v1.5 - v1.4 diff --git a/site/content/docs/v1.7/_index.md b/site/content/docs/v1.7/_index.md new file mode 100644 index 000000000..2fdbc8f9a --- /dev/null +++ b/site/content/docs/v1.7/_index.md @@ -0,0 +1,58 @@ +--- +toc: "false" +cascade: + version: v1.7 + toc: "true" +--- +![100] + +[![Build Status][1]][2] + +## 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 cloud provider 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 + +This site is our documentation home with installation instructions, plus information about customizing Velero for your needs, architecture, extending Velero, contributing to 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][30], [file an issue][4], or talk to us on the [#velero channel][25] on the Kubernetes Slack server. + +## Contributing + +If you are ready to jump in and test, add code, or help with documentation, follow the instructions on our [Start contributing](https://velero.io/docs/v1.7/start-contributing/) documentation for guidance on how to setup Velero for development. + +## Changelog + +See [the list of releases][6] to find out about feature changes. + +[1]: https://github.com/vmware-tanzu/velero/workflows/Main%20CI/badge.svg +[2]: https://github.com/vmware-tanzu/velero/actions?query=workflow%3A"Main+CI" + +[4]: https://github.com/vmware-tanzu/velero/issues +[6]: https://github.com/vmware-tanzu/velero/releases + +[9]: https://kubernetes.io/docs/setup/ +[10]: https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-with-homebrew-on-macos +[11]: https://kubernetes.io/docs/tasks/tools/install-kubectl/#tabset-1 +[12]: https://github.com/kubernetes/kubernetes/blob/main/cluster/addons/dns/README.md +[14]: https://github.com/kubernetes/kubernetes +[24]: https://groups.google.com/forum/#!forum/projectvelero +[25]: https://kubernetes.slack.com/messages/velero + +[30]: troubleshooting.md + +[100]: img/velero.png diff --git a/site/content/docs/v1.7/api-types/README.md b/site/content/docs/v1.7/api-types/README.md new file mode 100644 index 000000000..54c23544d --- /dev/null +++ b/site/content/docs/v1.7/api-types/README.md @@ -0,0 +1,21 @@ +--- +title: "Table of Contents" +layout: docs +--- + +## API types + +Here we list the API types that have some functionality that you can only configure via json/yaml vs the `velero` cli +(hooks) + +* [Backup][1] +* [Restore][2] +* [Schedule][3] +* [BackupStorageLocation][4] +* [VolumeSnapshotLocation][5] + +[1]: backup.md +[2]: restore.md +[3]: schedule.md +[4]: backupstoragelocation.md +[5]: volumesnapshotlocation.md diff --git a/site/content/docs/v1.7/api-types/_index.md b/site/content/docs/v1.7/api-types/_index.md new file mode 100644 index 000000000..e60832500 --- /dev/null +++ b/site/content/docs/v1.7/api-types/_index.md @@ -0,0 +1,19 @@ +--- +layout: docs +title: API types +--- + +Here's a list the API types that have some functionality that you can only configure via json/yaml vs the `velero` cli +(hooks) + +* [Backup][1] +* [Restore][2] +* [Schedule][3] +* [BackupStorageLocation][4] +* [VolumeSnapshotLocation][5] + +[1]: backup.md +[2]: restore.md +[3]: schedule.md +[4]: backupstoragelocation.md +[5]: volumesnapshotlocation.md diff --git a/site/content/docs/v1.7/api-types/backup.md b/site/content/docs/v1.7/api-types/backup.md new file mode 100644 index 000000000..5620c9ff6 --- /dev/null +++ b/site/content/docs/v1.7/api-types/backup.md @@ -0,0 +1,148 @@ +--- +title: "Backup API Type" +layout: docs +--- + +## Use + +Use the `Backup` API type to request the Velero server to perform a backup. Once created, the +Velero Server immediately starts the backup process. + +## API GroupVersion + +Backup belongs to the API group version `velero.io/v1`. + +## Definition + +Here is a sample `Backup` object with each of the fields documented: + +```yaml +# Standard Kubernetes API Version declaration. Required. +apiVersion: velero.io/v1 +# Standard Kubernetes Kind declaration. Required. +kind: Backup +# Standard Kubernetes metadata. Required. +metadata: + # Backup name. May be any valid Kubernetes object name. Required. + name: a + # Backup namespace. Must be the namespace of the Velero server. Required. + namespace: velero +# Parameters about the backup. Required. +spec: + # Array of namespaces to include in the backup. If unspecified, all namespaces are included. + # Optional. + includedNamespaces: + - '*' + # Array of namespaces to exclude from the backup. Optional. + excludedNamespaces: + - some-namespace + # Array of resources to include in the backup. Resources may be shortcuts (for example 'po' for 'pods') + # or fully-qualified. If unspecified, all resources are included. Optional. + includedResources: + - '*' + # Array of resources to exclude from the backup. Resources may be shortcuts (for example 'po' for 'pods') + # or fully-qualified. Optional. + excludedResources: + - storageclasses.storage.k8s.io + # Whether or not to include cluster-scoped resources. Valid values are true, false, and + # null/unset. If true, all cluster-scoped resources are included (subject to included/excluded + # resources and the label selector). If false, no cluster-scoped resources are included. If unset, + # all cluster-scoped resources are included if and only if all namespaces are included and there are + # no excluded namespaces. Otherwise, if there is at least one namespace specified in either + # includedNamespaces or excludedNamespaces, then the only cluster-scoped resources that are backed + # up are those associated with namespace-scoped resources included in the backup. For example, if a + # PersistentVolumeClaim is included in the backup, its associated PersistentVolume (which is + # cluster-scoped) would also be backed up. + includeClusterResources: null + # Individual objects must match this label selector to be included in the backup. Optional. + labelSelector: + matchLabels: + app: velero + component: server + # Whether or not to snapshot volumes. This only applies to PersistentVolumes for Azure, GCE, and + # AWS. Valid values are true, false, and null/unset. If unset, Velero performs snapshots as long as + # a persistent volume provider is configured for Velero. + snapshotVolumes: null + # Where to store the tarball and logs. + storageLocation: aws-primary + # The list of locations in which to store volume snapshots created for this backup. + volumeSnapshotLocations: + - aws-primary + - gcp-primary + # The amount of time before this backup is eligible for garbage collection. If not specified, + # a default value of 30 days will be used. The default can be configured on the velero server + # by passing the flag --default-backup-ttl. + ttl: 24h0m0s + # Whether restic should be used to take a backup of all pod volumes by default. + defaultVolumesToRestic: true + # Actions to perform at different times during a backup. The only hook supported is + # executing a command in a container in a pod using the pod exec API. Optional. + hooks: + # Array of hooks that are applicable to specific resources. Optional. + resources: + - + # Name of the hook. Will be displayed in backup log. + name: my-hook + # Array of namespaces to which this hook applies. If unspecified, the hook applies to all + # namespaces. Optional. + includedNamespaces: + - '*' + # Array of namespaces to which this hook does not apply. Optional. + excludedNamespaces: + - some-namespace + # Array of resources to which this hook applies. The only resource supported at this time is + # pods. + includedResources: + - pods + # Array of resources to which this hook does not apply. Optional. + excludedResources: [] + # This hook only applies to objects matching this label selector. Optional. + labelSelector: + matchLabels: + app: velero + component: server + # An array of hooks to run before executing custom actions. Only "exec" hooks are supported. + pre: + - + # The type of hook. This must be "exec". + exec: + # The name of the container where the command will be executed. If unspecified, the + # first container in the pod will be used. Optional. + container: my-container + # The command to execute, specified as an array. Required. + command: + - /bin/uname + - -a + # How to handle an error executing the command. Valid values are Fail and Continue. + # Defaults to Fail. Optional. + onError: Fail + # How long to wait for the command to finish executing. Defaults to 30 seconds. Optional. + timeout: 10s + # An array of hooks to run after all custom actions and additional items have been + # processed. Only "exec" hooks are supported. + post: + # Same content as pre above. +# Status about the Backup. Users should not set any data here. +status: + # The version of this Backup. The only version supported is 1. + version: 1 + # The date and time when the Backup is eligible for garbage collection. + expiration: null + # The current phase. Valid values are New, FailedValidation, InProgress, Completed, PartiallyFailed, Failed. + phase: "" + # An array of any validation errors encountered. + validationErrors: null + # Date/time when the backup started being processed. + startTimestamp: 2019-04-29T15:58:43Z + # Date/time when the backup finished being processed. + completionTimestamp: 2019-04-29T15:58:56Z + # Number of volume snapshots that Velero tried to create for this backup. + volumeSnapshotsAttempted: 2 + # Number of volume snapshots that Velero successfully created for this backup. + volumeSnapshotsCompleted: 1 + # Number of warnings that were logged by the backup. + warnings: 2 + # Number of errors that were logged by the backup. + errors: 0 + +``` diff --git a/site/content/docs/v1.7/api-types/backupstoragelocation.md b/site/content/docs/v1.7/api-types/backupstoragelocation.md new file mode 100644 index 000000000..b6c58ece7 --- /dev/null +++ b/site/content/docs/v1.7/api-types/backupstoragelocation.md @@ -0,0 +1,54 @@ +--- +title: "Velero Backup Storage Locations" +layout: docs +--- + +## Backup Storage Location + +Velero can store backups in a number of locations. These are represented in the cluster via the `BackupStorageLocation` CRD. + +Velero must have at least one `BackupStorageLocation`. By default, this is expected to be named `default`, however the name can be changed by specifying `--default-backup-storage-location` on `velero server`. Backups that do not explicitly specify a storage location will be saved to this `BackupStorageLocation`. + +A sample YAML `BackupStorageLocation` looks like the following: + +```yaml +apiVersion: velero.io/v1 +kind: BackupStorageLocation +metadata: + name: default + namespace: velero +spec: + backupSyncPeriod: 2m0s + provider: aws + objectStorage: + bucket: myBucket + credential: + name: secret-name + key: key-in-secret + config: + region: us-west-2 + profile: "default" +``` + +### Parameter Reference + +The configurable parameters are as follows: + +#### Main config parameters + +{{< table caption="Main config parameters" >}} +| Key | Type | Default | Meaning | +| --- | --- | --- | --- | +| `provider` | String | Required Field | The name for whichever object storage provider will be used to store the backups. See [your object storage provider's plugin documentation](../supported-providers) for the appropriate value to use. | +| `objectStorage` | ObjectStorageLocation | Required Field | Specification of the object storage for the given provider. | +| `objectStorage/bucket` | String | Required Field | The storage bucket where backups are to be uploaded. | +| `objectStorage/prefix` | String | Optional Field | The directory inside a storage bucket where backups are to be uploaded. | +| `objectStorage/caCert` | String | Optional Field | A base64 encoded CA bundle to be used when verifying TLS connections | +| `config` | map[string]string | None (Optional) | Provider-specific configuration keys/values to be passed to the object store plugin. See [your object storage provider's plugin documentation](../supported-providers) for details. | +| `accessMode` | String | `ReadWrite` | How Velero can access the backup storage location. Valid values are `ReadWrite`, `ReadOnly`. | +| `backupSyncPeriod` | metav1.Duration | Optional Field | How frequently Velero should synchronize backups in object storage. Default is Velero's server backup sync period. Set this to `0s` to disable sync. | +| `validationFrequency` | metav1.Duration | Optional Field | How frequently Velero should validate the object storage . Default is Velero's server validation frequency. Set this to `0s` to disable validation. Default 1 minute. | +| `credential` | [corev1.SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#secretkeyselector-v1-core) | Optional Field | The credential information to be used with this location. | +| `credential/name` | String | Optional Field | The name of the secret within the Velero namespace which contains the credential information. | +| `credential/key` | String | Optional Field | The key to use within the secret. | +{{< /table >}} diff --git a/site/content/docs/v1.7/api-types/restore.md b/site/content/docs/v1.7/api-types/restore.md new file mode 100644 index 000000000..817e549bc --- /dev/null +++ b/site/content/docs/v1.7/api-types/restore.md @@ -0,0 +1,168 @@ +--- +title: "Restore API Type" +layout: docs +--- + +## Use + +The `Restore` API type is used as a request for the Velero server to perform a Restore. Once created, the +Velero Server immediately starts the Restore process. + +## API GroupVersion + +Restore belongs to the API group version `velero.io/v1`. + +## Definition + +Here is a sample `Restore` object with each of the fields documented: + +```yaml +# Standard Kubernetes API Version declaration. Required. +apiVersion: velero.io/v1 +# Standard Kubernetes Kind declaration. Required. +kind: Restore +# Standard Kubernetes metadata. Required. +metadata: + # Restore name. May be any valid Kubernetes object name. Required. + name: a-very-special-backup-0000111122223333 + # Restore namespace. Must be the namespace of the Velero server. Required. + namespace: velero +# Parameters about the restore. Required. +spec: + # BackupName is the unique name of the Velero backup to restore from. + backupName: a-very-special-backup + # Array of namespaces to include in the restore. If unspecified, all namespaces are included. + # Optional. + includedNamespaces: + - '*' + # Array of namespaces to exclude from the restore. Optional. + excludedNamespaces: + - some-namespace + # Array of resources to include in the restore. Resources may be shortcuts (for example 'po' for 'pods') + # or fully-qualified. If unspecified, all resources are included. Optional. + includedResources: + - '*' + # Array of resources to exclude from the restore. Resources may be shortcuts (for example 'po' for 'pods') + # or fully-qualified. Optional. + excludedResources: + - storageclasses.storage.k8s.io + # Whether or not to include cluster-scoped resources. Valid values are true, false, and + # null/unset. If true, all cluster-scoped resources are included (subject to included/excluded + # resources and the label selector). If false, no cluster-scoped resources are included. If unset, + # all cluster-scoped resources are included if and only if all namespaces are included and there are + # no excluded namespaces. Otherwise, if there is at least one namespace specified in either + # includedNamespaces or excludedNamespaces, then the only cluster-scoped resources that are backed + # up are those associated with namespace-scoped resources included in the restore. For example, if a + # PersistentVolumeClaim is included in the restore, its associated PersistentVolume (which is + # cluster-scoped) would also be backed up. + includeClusterResources: null + # Individual objects must match this label selector to be included in the restore. Optional. + labelSelector: + matchLabels: + app: velero + component: server + # NamespaceMapping is a map of source namespace names to + # target namespace names to restore into. Any source namespaces not + # included in the map will be restored into namespaces of the same name. + namespaceMapping: + namespace-backup-from: namespace-to-restore-to + # RestorePVs specifies whether to restore all included PVs + # from snapshot (via the cloudprovider). + restorePVs: true + # ScheduleName is the unique name of the Velero schedule + # to restore from. If specified, and BackupName is empty, Velero will + # restore from the most recent successful backup created from this schedule. + scheduleName: my-scheduled-backup-name + # Actions to perform during or post restore. The only hooks currently supported are + # adding an init container to a pod before it can be restored and executing a command in a + # restored pod's container. Optional. + hooks: + # Array of hooks that are applicable to specific resources. Optional. + resources: + # Name is the name of this hook. + - name: restore-hook-1 + # Array of namespaces to which this hook applies. If unspecified, the hook applies to all + # namespaces. Optional. + includedNamespaces: + - ns1 + # Array of namespaces to which this hook does not apply. Optional. + excludedNamespaces: + - ns3 + # Array of resources to which this hook applies. The only resource supported at this time is + # pods. + includedResources: + - pods + # Array of resources to which this hook does not apply. Optional. + excludedResources: [] + # This hook only applies to objects matching this label selector. Optional. + labelSelector: + matchLabels: + app: velero + component: server + # An array of hooks to run during or after restores. Currently only "init" and "exec" hooks + # are supported. + postHooks: + # The type of the hook. This must be "init" or "exec". + - init: + # An array of container specs to be added as init containers to pods to which this hook applies to. + initContainers: + - name: restore-hook-init1 + image: alpine:latest + # Mounting volumes from the podSpec to which this hooks applies to. + volumeMounts: + - mountPath: /restores/pvc1-vm + # Volume name from the podSpec + name: pvc1-vm + command: + - /bin/ash + - -c + - echo -n "FOOBARBAZ" >> /restores/pvc1-vm/foobarbaz + - name: restore-hook-init2 + image: alpine:latest + # Mounting volumes from the podSpec to which this hooks applies to. + volumeMounts: + - mountPath: /restores/pvc2-vm + # Volume name from the podSpec + name: pvc2-vm + command: + - /bin/ash + - -c + - echo -n "DEADFEED" >> /restores/pvc2-vm/deadfeed + - exec: + # The container name where the hook will be executed. Defaults to the first container. + # Optional. + container: foo + # The command that will be executed in the container. Required. + command: + - /bin/bash + - -c + - "psql < /backup/backup.sql" + # How long to wait for a container to become ready. This should be long enough for the + # container to start plus any preceding hooks in the same container to complete. The wait + # timeout begins when the container is restored and may require time for the image to pull + # and volumes to mount. If not set the restore will wait indefinitely. Optional. + waitTimeout: 5m + # How long to wait once execution begins. Defaults to 30 seconds. Optional. + execTimeout: 1m + # How to handle execution failures. Valid values are `Fail` and `Continue`. Defaults to + # `Continue`. With `Continue` mode, execution failures are logged only. With `Fail` mode, + # no more restore hooks will be executed in any container in any pod and the status of the + # Restore will be `PartiallyFailed`. Optional. + onError: Continue +# RestoreStatus captures the current status of a Velero restore. Users should not set any data here. +status: + # The current phase. Valid values are New, FailedValidation, InProgress, Completed, PartiallyFailed, Failed. + phase: "" + # An array of any validation errors encountered. + validationErrors: null + # Number of warnings that were logged by the restore. + warnings: 2 + # Errors is a count of all error messages that were generated + # during execution of the restore. The actual errors are stored in object + # storage. + errors: 0 + # FailureReason is an error that caused the entire restore + # to fail. + failureReason: + +``` diff --git a/site/content/docs/v1.7/api-types/schedule.md b/site/content/docs/v1.7/api-types/schedule.md new file mode 100644 index 000000000..3c98bef16 --- /dev/null +++ b/site/content/docs/v1.7/api-types/schedule.md @@ -0,0 +1,140 @@ +--- +title: "Schedule API Type" +layout: docs +--- + +## Use + +The `Schedule` API type is used as a repeatable request for the Velero server to perform a backup for a given cron notation. Once created, the +Velero Server will start the backup process. It will then wait for the next valid point of the given cron expression and execute the backup +process on a repeating basis. + +## API GroupVersion + +Schedule belongs to the API group version `velero.io/v1`. + +## Definition + +Here is a sample `Schedule` object with each of the fields documented: + +```yaml +# Standard Kubernetes API Version declaration. Required. +apiVersion: velero.io/v1 +# Standard Kubernetes Kind declaration. Required. +kind: Schedule +# Standard Kubernetes metadata. Required. +metadata: + # Schedule name. May be any valid Kubernetes object name. Required. + name: a + # Schedule namespace. Must be the namespace of the Velero server. Required. + namespace: velero +# Parameters about the scheduled backup. Required. +spec: + # Schedule is a Cron expression defining when to run the Backup + schedule: 0 7 * * * + # Template is the spec that should be used for each backup triggered by this schedule. + template: + # Array of namespaces to include in the scheduled backup. If unspecified, all namespaces are included. + # Optional. + includedNamespaces: + - '*' + # Array of namespaces to exclude from the scheduled backup. Optional. + excludedNamespaces: + - some-namespace + # Array of resources to include in the scheduled backup. Resources may be shortcuts (for example 'po' for 'pods') + # or fully-qualified. If unspecified, all resources are included. Optional. + includedResources: + - '*' + # Array of resources to exclude from the scheduled backup. Resources may be shortcuts (for example 'po' for 'pods') + # or fully-qualified. Optional. + excludedResources: + - storageclasses.storage.k8s.io + # Whether or not to include cluster-scoped resources. Valid values are true, false, and + # null/unset. If true, all cluster-scoped resources are included (subject to included/excluded + # resources and the label selector). If false, no cluster-scoped resources are included. If unset, + # all cluster-scoped resources are included if and only if all namespaces are included and there are + # no excluded namespaces. Otherwise, if there is at least one namespace specified in either + # includedNamespaces or excludedNamespaces, then the only cluster-scoped resources that are backed + # up are those associated with namespace-scoped resources included in the scheduled backup. For example, if a + # PersistentVolumeClaim is included in the backup, its associated PersistentVolume (which is + # cluster-scoped) would also be backed up. + includeClusterResources: null + # Individual objects must match this label selector to be included in the scheduled backup. Optional. + labelSelector: + matchLabels: + app: velero + component: server + # Whether or not to snapshot volumes. This only applies to PersistentVolumes for Azure, GCE, and + # AWS. Valid values are true, false, and null/unset. If unset, Velero performs snapshots as long as + # a persistent volume provider is configured for Velero. + snapshotVolumes: null + # Where to store the tarball and logs. + storageLocation: aws-primary + # The list of locations in which to store volume snapshots created for backups under this schedule. + volumeSnapshotLocations: + - aws-primary + - gcp-primary + # The amount of time before backups created on this schedule are eligible for garbage collection. If not specified, + # a default value of 30 days will be used. The default can be configured on the velero server + # by passing the flag --default-backup-ttl. + ttl: 24h0m0s + # The labels you want on backup objects, created from this schedule (instead of copying the labels you have on schedule object itself). + # When this field is set, the labels from the Schedule resource are not copied to the Backup resource. + metadata: + labels: + labelname: somelabelvalue + # Actions to perform at different times during a backup. The only hook supported is + # executing a command in a container in a pod using the pod exec API. Optional. + hooks: + # Array of hooks that are applicable to specific resources. Optional. + resources: + - + # Name of the hook. Will be displayed in backup log. + name: my-hook + # Array of namespaces to which this hook applies. If unspecified, the hook applies to all + # namespaces. Optional. + includedNamespaces: + - '*' + # Array of namespaces to which this hook does not apply. Optional. + excludedNamespaces: + - some-namespace + # Array of resources to which this hook applies. The only resource supported at this time is + # pods. + includedResources: + - pods + # Array of resources to which this hook does not apply. Optional. + excludedResources: [] + # This hook only applies to objects matching this label selector. Optional. + labelSelector: + matchLabels: + app: velero + component: server + # An array of hooks to run before executing custom actions. Only "exec" hooks are supported. + pre: + - + # The type of hook. This must be "exec". + exec: + # The name of the container where the command will be executed. If unspecified, the + # first container in the pod will be used. Optional. + container: my-container + # The command to execute, specified as an array. Required. + command: + - /bin/uname + - -a + # How to handle an error executing the command. Valid values are Fail and Continue. + # Defaults to Fail. Optional. + onError: Fail + # How long to wait for the command to finish executing. Defaults to 30 seconds. Optional. + timeout: 10s + # An array of hooks to run after all custom actions and additional items have been + # processed. Only "exec" hooks are supported. + post: + # Same content as pre above. +status: + # The current phase of the latest scheduled backup. Valid values are New, FailedValidation, InProgress, Completed, PartiallyFailed, Failed. + phase: "" + # Date/time of the last backup for a given schedule + lastBackup: + # An array of any validation errors encountered. + validationErrors: +``` diff --git a/site/content/docs/v1.7/api-types/volumesnapshotlocation.md b/site/content/docs/v1.7/api-types/volumesnapshotlocation.md new file mode 100644 index 000000000..28ac33222 --- /dev/null +++ b/site/content/docs/v1.7/api-types/volumesnapshotlocation.md @@ -0,0 +1,40 @@ +--- +title: "Velero Volume Snapshot Location" +layout: docs +--- + +## Volume Snapshot Location + +A volume snapshot location is the location in which to store the volume snapshots created for a backup. + +Velero can be configured to take snapshots of volumes from multiple providers. Velero also allows you to configure multiple possible `VolumeSnapshotLocation` per provider, although you can only select one location per provider at backup time. + +Each VolumeSnapshotLocation describes a provider + location. These are represented in the cluster via the `VolumeSnapshotLocation` CRD. Velero must have at least one `VolumeSnapshotLocation` per cloud provider. + +A sample YAML `VolumeSnapshotLocation` looks like the following: + +```yaml +apiVersion: velero.io/v1 +kind: VolumeSnapshotLocation +metadata: + name: aws-default + namespace: velero +spec: + provider: aws + config: + region: us-west-2 + profile: "default" +``` + +### Parameter Reference + +The configurable parameters are as follows: + +#### Main config parameters + +{{< table caption="Main config parameters" >}} +| Key | Type | Default | Meaning | +| --- | --- | --- | --- | +| `provider` | String | Required Field | The name for whichever storage provider will be used to create/store the volume snapshots. See [your volume snapshot provider's plugin documentation](../supported-providers) for the appropriate value to use. | +| `config` | map string string | None (Optional) | Provider-specific configuration keys/values to be passed to the volume snapshotter plugin. See [your volume snapshot provider's plugin documentation](../supported-providers) for details. | +{{< /table >}} diff --git a/site/content/docs/v1.7/backup-hooks.md b/site/content/docs/v1.7/backup-hooks.md new file mode 100644 index 000000000..57176fa74 --- /dev/null +++ b/site/content/docs/v1.7/backup-hooks.md @@ -0,0 +1,92 @@ +--- +title: "Backup Hooks" +layout: docs +--- + +Velero supports executing commands in containers in pods during a backup. + +## Backup Hooks + +When performing a backup, you can specify one or more commands to execute in a container in a pod +when that pod is being backed up. The commands can be configured to run *before* any custom action +processing ("pre" hooks), or after all custom actions have been completed and any additional items +specified by custom action have been backed up ("post" hooks). Note that hooks are _not_ executed within a shell +on the containers. + +There are two ways to specify hooks: annotations on the pod itself, and in the Backup spec. + +### Specifying Hooks As Pod Annotations + +You can use the following annotations on a pod to make Velero execute a hook when backing up the pod: + +#### Pre hooks + +* `pre.hook.backup.velero.io/container` + * The container where the command should be executed. Defaults to the first container in the pod. Optional. +* `pre.hook.backup.velero.io/command` + * The command to execute. If you need multiple arguments, specify the command as a JSON array, such as `["/usr/bin/uname", "-a"]` +* `pre.hook.backup.velero.io/on-error` + * What to do if the command returns a non-zero exit code. Defaults to Fail. Valid values are Fail and Continue. Optional. +* `pre.hook.backup.velero.io/timeout` + * How long to wait for the command to execute. The hook is considered in error if the command exceeds the timeout. Defaults to 30s. Optional. + + +#### Post hooks + +* `post.hook.backup.velero.io/container` + * The container where the command should be executed. Defaults to the first container in the pod. Optional. +* `post.hook.backup.velero.io/command` + * The command to execute. If you need multiple arguments, specify the command as a JSON array, such as `["/usr/bin/uname", "-a"]` +* `post.hook.backup.velero.io/on-error` + * What to do if the command returns a non-zero exit code. Defaults to Fail. Valid values are Fail and Continue. Optional. +* `post.hook.backup.velero.io/timeout` + * How long to wait for the command to execute. The hook is considered in error if the command exceeds the timeout. Defaults to 30s. Optional. + +### Specifying Hooks in the Backup Spec + +Please see the documentation on the [Backup API Type][1] for how to specify hooks in the Backup +spec. + +## Hook Example with fsfreeze + +This examples walks you through using both pre and post hooks for freezing a file system. Freezing the +file system is useful to ensure that all pending disk I/O operations have completed prior to taking a snapshot. + +This example uses [examples/nginx-app/with-pv.yaml][2]. Follow the [steps for your provider][3] to +setup this example. + +### Annotations + +The Velero [example/nginx-app/with-pv.yaml][2] serves as an example of adding the pre and post hook annotations directly +to your declarative deployment. Below is an example of what updating an object in place might look like. + +```shell +kubectl annotate pod -n nginx-example -l app=nginx \ + pre.hook.backup.velero.io/command='["/sbin/fsfreeze", "--freeze", "/var/log/nginx"]' \ + pre.hook.backup.velero.io/container=fsfreeze \ + post.hook.backup.velero.io/command='["/sbin/fsfreeze", "--unfreeze", "/var/log/nginx"]' \ + post.hook.backup.velero.io/container=fsfreeze +``` + +Now test the pre and post hooks by creating a backup. You can use the Velero logs to verify that the pre and post +hooks are running and exiting without error. + +```shell +velero backup create nginx-hook-test + +velero backup get nginx-hook-test +velero backup logs nginx-hook-test | grep hookCommand +``` + +## Using Multiple Commands + +To use multiple commands, wrap your target command in a shell and separate them with `;`, `&&`, or other shell conditional constructs. + +```shell + pre.hook.backup.velero.io/command='["/bin/bash", "-c", "echo hello > hello.txt && echo goodbye > goodbye.txt"]' +``` + + +[1]: api-types/backup.md +[2]: https://github.com/vmware-tanzu/velero/blob/v1.7.0/examples/nginx-app/with-pv.yaml +[3]: cloud-common.md diff --git a/site/content/docs/v1.7/backup-reference.md b/site/content/docs/v1.7/backup-reference.md new file mode 100644 index 000000000..60e019188 --- /dev/null +++ b/site/content/docs/v1.7/backup-reference.md @@ -0,0 +1,70 @@ +--- +title: "Backup Reference" +layout: docs +--- + +## Exclude Specific Items from Backup + +It is possible to exclude individual items from being backed up, even if they match the resource/namespace/label selectors defined in the backup spec. To do this, label the item as follows: + +```bash +kubectl label -n / velero.io/exclude-from-backup=true +``` + +## Specify Backup Orders of Resources of Specific Kind + +To backup resources of specific Kind in a specific order, use option --ordered-resources to specify a mapping Kinds to an ordered list of specific resources of that Kind. Resource names are separated by commas and their names are in format 'namespace/resourcename'. For cluster scope resource, simply use resource name. Key-value pairs in the mapping are separated by semi-colon. Kind name is in plural form. + +```bash +velero backup create backupName --include-cluster-resources=true --ordered-resources 'pods=ns1/pod1,ns1/pod2;persistentvolumes=pv4,pv8' --include-namespaces=ns1 +velero backup create backupName --ordered-resources 'statefulsets=ns1/sts1,ns1/sts0' --include-namespaces=ns1 +``` +## Schedule a Backup + +The **schedule** operation allows you to create a backup of your data at a specified time, defined by a [Cron expression](https://en.wikipedia.org/wiki/Cron). + +``` +velero schedule create NAME --schedule="* * * * *" [flags] +``` + +Cron schedules use the following format. + +``` +# ┌───────────── minute (0 - 59) +# │ ┌───────────── hour (0 - 23) +# │ │ ┌───────────── day of the month (1 - 31) +# │ │ │ ┌───────────── month (1 - 12) +# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday; +# │ │ │ │ │ 7 is also Sunday on some systems) +# │ │ │ │ │ +# │ │ │ │ │ +# * * * * * +``` + +For example, the command below creates a backup that runs every day at 3am. + +``` +velero schedule create example-schedule --schedule="0 3 * * *" +``` + +This command will create the backup, `example-schedule`, within Velero, but the backup will not be taken until the next scheduled time, 3am. Backups created by a schedule are saved with the name `-`, where `` is formatted as *YYYYMMDDhhmmss*. For a full list of available configuration flags use the Velero CLI help command. + +``` +velero schedule create --help +``` + +Once you create the scheduled backup, you can then trigger it manually using the `velero backup` command. + +``` +velero backup create --from-schedule example-schedule +``` + +This command will immediately trigger a new backup based on your template for `example-schedule`. This will not affect the backup schedule, and another backup will trigger at the scheduled time. + +## Kubernetes API Pagination + +By default, Velero will paginate the LIST API call for each resource type in the Kubernetes API when collecting items into a backup. The `--client-page-size` flag for the Velero server configures the size of each page. + +Depending on the cluster's scale, tuning the page size can improve backup performance. You can experiment with higher values, noting their impact on the relevant `apiserver_request_duration_seconds_*` metrics from the Kubernetes apiserver. + +Pagination can be entirely disabled by setting `--client-page-size` to `0`. This will request all items in a single unpaginated LIST call. diff --git a/site/content/docs/v1.7/basic-install.md b/site/content/docs/v1.7/basic-install.md new file mode 100644 index 000000000..8e3bcd48b --- /dev/null +++ b/site/content/docs/v1.7/basic-install.md @@ -0,0 +1,73 @@ +--- +title: "Basic Install" +layout: docs +--- + +Use this doc to get a basic installation of Velero. +Refer [this document](customize-installation.md) to customize your installation. + +## Prerequisites + +- Access to a Kubernetes cluster, v1.12 or later, with DNS and container networking enabled. +- `kubectl` installed locally + +Velero uses object storage to store backups and associated artifacts. It also optionally integrates with supported block storage systems to snapshot your persistent volumes. Before beginning the installation process, you should identify the object storage provider and optional block storage provider(s) you'll be using from the list of [compatible providers][0]. + +Velero supports storage providers for both cloud-provider environments and on-premises environments. For more details on on-premises scenarios, see the [on-premises documentation][2]. + +### Velero on Windows + +Velero does not officially support Windows. In testing, the Velero team was able to backup stateless Windows applications only. The restic integration and backups of stateful applications or PersistentVolumes were not supported. + +If you want to perform your own testing of Velero on Windows, you must deploy Velero as a Windows container. Velero does not provide official Windows images, but its possible for you to build your own Velero Windows container image to use. Note that you must build this image on a Windows node. + +## Install the CLI + +### Option 1: macOS - Homebrew + +On macOS, you can use [Homebrew](https://brew.sh) to install the `velero` client: + +```bash +brew install velero +``` + +### Option 2: GitHub release + +1. Download the [latest release][1]'s tarball for your client platform. +1. Extract the tarball: + + ```bash + tar -xvf .tar.gz + ``` + +1. Move the extracted `velero` binary to somewhere in your `$PATH` (`/usr/local/bin` for most users). + +### Option 3: Windows - Chocolatey + +On Windows, you can use [Chocolatey](https://chocolatey.org/install) to install the [velero](https://chocolatey.org/packages/velero) client: + +```powershell +choco install velero +``` + +## Install and configure the server components + +There are two supported methods for installing the Velero server components: + +- the `velero install` CLI command +- the [Helm chart](https://vmware-tanzu.github.io/helm-charts/) + +Velero uses storage provider plugins to integrate with a variety of storage systems to support backup and snapshot operations. The steps to install and configure the Velero server components along with the appropriate plugins are specific to your chosen storage provider. To find installation instructions for your chosen storage provider, follow the documentation link for your provider at our [supported storage providers][0] page + +_Note: if your object storage provider is different than your volume snapshot provider, follow the installation instructions for your object storage provider first, then return here and follow the instructions to [add your volume snapshot provider][4]._ + +## Command line Autocompletion + +Please refer to [this part of the documentation][5]. + +[0]: supported-providers.md +[1]: https://github.com/vmware-tanzu/velero/releases/latest +[2]: on-premises.md +[3]: overview-plugins.md +[4]: customize-installation.md#install-an-additional-volume-snapshot-provider +[5]: customize-installation.md#optional-velero-cli-configurations \ No newline at end of file diff --git a/site/content/docs/v1.7/build-from-source.md b/site/content/docs/v1.7/build-from-source.md new file mode 100644 index 000000000..df9f738cf --- /dev/null +++ b/site/content/docs/v1.7/build-from-source.md @@ -0,0 +1,200 @@ +--- +title: "Build from source" +layout: docs +--- + +## Prerequisites + +* Access to a Kubernetes cluster, version 1.7 or later. +* A DNS server on the cluster +* `kubectl` installed +* [Go][5] installed (minimum version 1.8) + +## Get the source + +### Option 1) Get latest (recommended) + +```bash +mkdir $HOME/go +export GOPATH=$HOME/go +go get github.com/vmware-tanzu/velero +``` + +Where `go` is your [import path][4] for Go. + +For Go development, it is recommended to add the Go import path (`$HOME/go` in this example) to your path. + +### Option 2) Release archive + +Download the archive named `Source code` from the [release page][22] and extract it in your Go import path as `src/github.com/vmware-tanzu/velero`. + +Note that the Makefile targets assume building from a git repository. When building from an archive, you will be limited to the `go build` commands described below. + +## Build + +There are a number of different ways to build `velero` depending on your needs. This section outlines the main possibilities. + +When building by using `make`, it will place the binaries under `_output/bin/$GOOS/$GOARCH`. For example, you will find the binary for darwin here: `_output/bin/darwin/amd64/velero`, and the binary for linux here: `_output/bin/linux/amd64/velero`. `make` will also splice version and git commit information in so that `velero version` displays proper output. + +Note: `velero install` will also use the version information to determine which tagged image to deploy. If you would like to overwrite what image gets deployed, use the `image` flag (see below for instructions on how to build images). + +### Build the binary + +To build the `velero` binary on your local machine, compiled for your OS and architecture, run one of these two commands: + +```bash +go build ./cmd/velero +``` + +```bash +make local +``` + +### Cross compiling + +To build the velero binary targeting linux/amd64 within a build container on your local machine, run: + +```bash +make build +``` + +For any specific platform, run `make build--`. + +For example, to build for the Mac, run `make build-darwin-amd64`. + +Velero's `Makefile` has a convenience target, `all-build`, that builds the following platforms: + +* linux-amd64 +* linux-arm +* linux-arm64 +* linux-ppc64le +* darwin-amd64 +* windows-amd64 + +## Making images and updating Velero + +If after installing Velero you would like to change the image used by its deployment to one that contains your code changes, you may do so by updating the image: + +```bash +kubectl -n velero set image deploy/velero velero=myimagerepo/velero:$VERSION +``` + +To build a Velero container image, you need to configure `buildx` first. + +### Buildx + +Docker Buildx is a CLI plugin that extends the docker command with the full support of the features provided by Moby BuildKit builder toolkit. It provides the same user experience as docker build with many new features like creating scoped builder instances and building against multiple nodes concurrently. + +More information in the [docker docs][23] and in the [buildx github][24] repo. + +### Image building + +Set the `$REGISTRY` environment variable. For example, if you want to build the `gcr.io/my-registry/velero:main` image, set `$REGISTRY` to `gcr.io/my-registry`. If this variable is not set, the default is `velero`. + +Optionally, set the `$VERSION` environment variable to change the image tag or `$BIN` to change which binary to build a container image for. Then, run: + +```bash +make container +``` +_Note: To build build container images for both `velero` and `velero-restic-restore-helper`, run: `make all-containers`_ + +### Publishing container images to a registry + +To publish container images to a registry, the following one time setup is necessary: + +1. If you are building cross platform container images + ```bash + $ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + ``` +1. Create and bootstrap a new docker buildx builder + ```bash + $ docker buildx create --use --name builder + builder + $ docker buildx inspect --bootstrap + [+] Building 2.6s (1/1) FINISHED + => [internal] booting buildkit 2.6s + => => pulling image moby/buildkit:buildx-stable-1 1.9s + => => creating container buildx_buildkit_builder0 0.7s + Name: builder + Driver: docker-container + + Nodes: + Name: builder0 + Endpoint: unix:///var/run/docker.sock + Status: running + Platforms: linux/amd64, linux/arm64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6 + ``` + NOTE: Without the above setup, the output of `docker buildx inspect --bootstrap` will be: + ```bash + $ docker buildx inspect --bootstrap + Name: default + Driver: docker + + Nodes: + Name: default + Endpoint: default + Status: running + Platforms: linux/amd64, linux/arm64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6 + ``` + And the `REGISTRY=myrepo BUILDX_OUTPUT_TYPE=registry make container` will fail with the below error: + ```bash + $ REGISTRY=ashishamarnath BUILDX_PLATFORMS=linux/arm64 BUILDX_OUTPUT_TYPE=registry make container + auto-push is currently not implemented for docker driver + make: *** [container] Error 1 + ``` + +Having completed the above one time setup, now the output of `docker buildx inspect --bootstrap` should be like + +```bash +$ docker buildx inspect --bootstrap +Name: builder +Driver: docker-container + +Nodes: +Name: builder0 +Endpoint: unix:///var/run/docker.sock +Status: running +Platforms: linux/amd64, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v +``` + +Now build and push the container image by running the `make container` command with `$BUILDX_OUTPUT_TYPE` set to `registry` +```bash +$ REGISTRY=myrepo BUILDX_OUTPUT_TYPE=registry make container +``` + +### Cross platform building + +Docker `buildx` platforms supported: +* `linux/amd64` +* `linux/arm64` +* `linux/arm/v7` +* `linux/ppc64le` + +For any specific platform, run `BUILDX_PLATFORMS=/ make container` + +For example, to build an image for arm64, run: + +```bash +BUILDX_PLATFORMS=linux/arm64 make container +``` +_Note: By default, `$BUILDX_PLATFORMS` is set to `linux/amd64`_ + +With `buildx`, you can also build all supported platforms at the same time and push a multi-arch image to the registry. For example: + +```bash +REGISTRY=myrepo VERSION=foo BUILDX_PLATFORMS=linux/amd64,linux/arm64,linux/arm/v7,linux/ppc64le BUILDX_OUTPUT_TYPE=registry make all-containers +``` +_Note: when building for more than 1 platform at the same time, you need to set `BUILDX_OUTPUT_TYPE` to `registry` as local multi-arch images are not supported [yet][25]._ + +Note: if you want to update the image but not change its name, you will have to trigger Kubernetes to pick up the new image. One way of doing so is by deleting the Velero deployment pod: + +```bash +kubectl -n velero delete pods -l deploy=velero +``` + +[4]: https://blog.golang.org/organizing-go-code +[5]: https://golang.org/doc/install +[22]: https://github.com/vmware-tanzu/velero/releases +[23]: https://docs.docker.com/buildx/working-with-buildx/ +[24]: https://github.com/docker/buildx +[25]: https://github.com/moby/moby/pull/38738 diff --git a/site/content/docs/v1.7/code-standards.md b/site/content/docs/v1.7/code-standards.md new file mode 100644 index 000000000..80dbbe813 --- /dev/null +++ b/site/content/docs/v1.7/code-standards.md @@ -0,0 +1,151 @@ +--- +title: "Code Standards" +layout: docs +toc: "true" +--- + +## Opening PRs + +When opening a pull request, please fill out the checklist supplied the template. This will help others properly categorize and review your pull request. + +## Adding a changelog + +Authors are expected to include a changelog file with their pull requests. The changelog file +should be a new file created in the `changelogs/unreleased` folder. The file should follow the +naming convention of `pr-username` and the contents of the file should be your text for the +changelog. + + velero/changelogs/unreleased <- folder + 000-username <- file + +Add that to the PR. + +If a PR does not warrant a changelog, the CI check for a changelog can be skipped by applying a `changelog-not-required` label on the PR. + +## Copyright header + +Whenever a source code file is being modified, the copyright notice should be updated to our standard copyright notice. That is, it should read “Copyright the Velero contributors.” + +For new files, the entire copyright and license header must be added. + +Please note that doc files do not need a copyright header. + +## Code + +- Log messages are capitalized. + +- Error messages are kept lower-cased. + +- Wrap/add a stack only to errors that are being directly returned from non-velero code, such as an API call to the Kubernetes server. + + ```bash + errors.WithStack(err) + ``` + +- Prefer to use the utilities in the Kubernetes package [`sets`](https://godoc.org/github.com/kubernetes/apimachinery/pkg/util/sets). + + ```bash + k8s.io/apimachinery/pkg/util/sets + ``` + +## Imports + +For imports, we use the following convention: + +`` + +Example: + + import ( + corev1api "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1client "k8s.io/client-go/kubernetes/typed/core/v1" + corev1listers "k8s.io/client-go/listers/core/v1" + + velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" + velerov1client "github.com/vmware-tanzu/velero/pkg/generated/clientset/versioned/typed/velero/v1" + ) + +## Mocks + +We use a package to generate mocks for our interfaces. + +Example: if you want to change this mock: https://github.com/vmware-tanzu/velero/blob/v1.7.0/pkg/restic/mocks/restorer.go + +Run: + +```bash +go get github.com/vektra/mockery/.../ +cd pkg/restic +mockery -name=Restorer +``` + +Might need to run `make update` to update the imports. + +## Kubernetes Labels + +When generating label values, be sure to pass them through the `label.GetValidName()` helper function. + +This will help ensure that the values are the proper length and format to be stored and queried. + +In general, UIDs are safe to persist as label values. + +This function is not relevant to annotation values, which do not have restrictions. + +## DCO Sign off + +All authors to the project retain copyright to their work. However, to ensure +that they are only submitting work that they have rights to, we are requiring +everyone to acknowledge this by signing their work. + +Any copyright notices in this repo should specify the authors as "the Velero contributors". + +To sign your work, just add a line like this at the end of your commit message: + +``` +Signed-off-by: Joe Beda +``` + +This can easily be done with the `--signoff` option to `git commit`. + +By doing this you state that you can certify the following (from https://developercertificate.org/): + +``` +Developer Certificate of Origin +Version 1.1 + +Copyright (C) 2004, 2006 The Linux Foundation and its contributors. +1 Letterman Drive +Suite D4700 +San Francisco, CA, 94129 + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +(b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +(c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +(d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. +``` diff --git a/site/content/docs/v1.7/contributions/ibm-config.md b/site/content/docs/v1.7/contributions/ibm-config.md new file mode 100644 index 000000000..4aaf823a2 --- /dev/null +++ b/site/content/docs/v1.7/contributions/ibm-config.md @@ -0,0 +1,101 @@ +--- +title: "Use IBM Cloud Object Storage as Velero's storage destination." +layout: docs +--- +You can deploy Velero on IBM [Public][5] or [Private][4] clouds, or even on any other Kubernetes cluster, but anyway you can use IBM Cloud Object Store as a destination for Velero's backups. + +To set up IBM Cloud Object Storage (COS) as Velero's destination, you: + +* Download an official release of Velero +* Create your COS instance +* Create an S3 bucket +* Define a service that can store data in the bucket +* Configure and start the Velero server + +## Download Velero + +1. Download the [latest official release's](https://github.com/vmware-tanzu/velero/releases) tarball for your client platform. + + _We strongly recommend that you use an [official release](https://github.com/vmware-tanzu/velero/releases) of +Velero. The tarballs for each release contain the `velero` command-line client. The code in the main branch +of the Velero repository is under active development and is not guaranteed to be stable!_ + +1. Extract the tarball: + + ```bash + tar -xvf .tar.gz -C /dir/to/extract/to + ``` + + The directory you extracted is called the "Velero directory" in subsequent steps. + +1. Move the `velero` binary from the Velero directory to somewhere in your PATH. + +## Create COS instance +If you don’t have a COS instance, you can create a new one, according to the detailed instructions in [Creating a new resource instance][1]. + +## Create an S3 bucket +Velero requires an object storage bucket to store backups in. See instructions in [Create some buckets to store your data][2]. + +## Define a service that can store data in the bucket. +The process of creating service credentials is described in [Service credentials][3]. +Several comments: + +1. The Velero service will write its backup into the bucket, so it requires the “Writer” access role. + +2. Velero uses an AWS S3 compatible API. Which means it authenticates using a signature created from a pair of access and secret keys — a set of HMAC credentials. You can create these HMAC credentials by specifying `{“HMAC”:true}` as an optional inline parameter. See [HMAC credentials][31] guide. + +3. After successfully creating a Service credential, you can view the JSON definition of the credential. Under the `cos_hmac_keys` entry there are `access_key_id` and `secret_access_key`. Use them in the next step. + +4. Create a Velero-specific credentials file (`credentials-velero`) in your local directory: + + ``` + [default] + aws_access_key_id= + aws_secret_access_key= + ``` + + Where the access key id and secret are the values that you got above. + +## Install and start Velero + +Install Velero, including all prerequisites, into the cluster and start the deployment. This will create a namespace called `velero`, and place a deployment named `velero` in it. + +```bash +velero install \ + --provider aws \ + --bucket \ + --secret-file ./credentials-velero \ + --use-volume-snapshots=false \ + --backup-location-config region=,s3ForcePathStyle="true",s3Url= +``` + +Velero does not have a volume snapshot plugin for IBM Cloud, so creating volume snapshots is disabled. + +Additionally, you can specify `--use-restic` to enable [restic support][16], and `--wait` to wait for the deployment to be ready. + +(Optional) Specify [CPU and memory resource requests and limits][15] for the Velero/restic pods. + +Once the installation is complete, remove the default `VolumeSnapshotLocation` that was created by `velero install`, since it's specific to AWS and won't work for IBM Cloud: + +```bash +kubectl -n velero delete volumesnapshotlocation.velero.io default +``` + +For more complex installation needs, use either the Helm chart, or add `--dry-run -o yaml` options for generating the YAML representation for the installation. + +## Installing the nginx example (optional) + +If you run the nginx example, in file `examples/nginx-app/with-pv.yaml`: + +Uncomment `storageClassName: ` and replace with your `StorageClass` name. + +[0]: namespace.md +[1]: https://cloud.ibm.com/docs/cloud-object-storage/getting-started.html +[2]: https://cloud.ibm.com/docs/cloud-object-storage/getting-started.html#create-buckets +[3]: https://cloud.ibm.com/docs/cloud-object-storage/iam?topic=cloud-object-storage-service-credentials +[31]: https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-uhc-hmac-credentials-main +[4]: https://www.ibm.com/docs/en/cloud-private +[5]: https://cloud.ibm.com/docs/containers/container_index.html#container_index +[14]: http://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html +[15]: customize-installation.md#customize-resource-requests-and-limits +[16]: restic.md diff --git a/site/content/docs/v1.7/contributions/img-for-tencent/15ccaacf00640a04ae29ceed4c86195b.png b/site/content/docs/v1.7/contributions/img-for-tencent/15ccaacf00640a04ae29ceed4c86195b.png new file mode 100644 index 0000000000000000000000000000000000000000..61859ca50e9fbafb2948628d79b7e0bf69bd85de GIT binary patch literal 132711 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

IZ`LFqwfbe$eQ6t@&18)&3r z4}J6)9|(=VD4Wc`W!sI){d&;k@H)n)@OfYUW#&rR*{Fysm<50Vc;l=YuEHJ$x`aH#~q*2nh7VuSP-d@$O z0-@T&?kt_`%q%2^T%2GlxC{wxn;`WG*qGuWP>6$x*X4{B9$Gsi_P{2M>p^LD;yCa~dhK@vDx<>ZD5t&#GUq zdvBb)pV7y<1jrqW>G7FBBy~Duo0Z%%Rz-DmbYT#weaUpjRqxP1UOafAcWZo=4b{Kv z>q?Kk`5aPT>LgEn- zOVXd}eiE@0BlgAgPqqxysP@WBx_Xbucyagjnk06=Vr@EiTKQ0vk4evziD86pepE-{>A$% zNpBH`zWymZCF8K%QM!!zjh&C8klF6l^%}a2zq9J6=c*dB>ElM0 z2)0Z#`tppnuofr9ub7*>vPG2vfkk@CE*>=#(b6r#{ceTU9<$&$R>FP;qqM1J*?VRW z>0Nq2eZ=~3?P6JJjK}eNaU&a>MC_e$6+=U2^xgRokz+E|PtqpQU(k`^mPFHzbZ!Op{9 zF{!@J*YM3=?LpG!=1Xp zx>TG=FCm6^gZzjg@lANluhnQgCe&wK6jLlZfkLZq&P#^m21 ztyNCJ{&R6L<8{y1dSTpq*UpBxYJc#{c(j}@2?}I#=0*cv-He%31irlHC8x0SYA=O?=qVe!9NI)4MO5gll&)!Kbuvb=K2)rjGVhdO zB7DI6)@Lq1sgaCnB+$^vhoGjPdOy4-k+{`9n6E6}u!<~S?ITKgc7Qk64j1bFyww-l zBU|fwxg*HrBYVJrdg)2Vpmk}lq^bW0Mg|wXB+^dl3(0Z6+$WjC;K-6{<&_ZQ#S_pS~f~YZ0@rLl$@Aut74jmc|1Kw1SJnsQKNPeRV@_i=W%- zXzaJ4fTHzj)$+9;I%up3MxJwC<8UUn7U4#W4tLoCeE|{9uTEPNiD(T!Sh17G+N~P= zL@oWA?{g|?QB<8GVg~)zq?ONrkL?Cv+qf^4j`n0@SwbuYXuT*$+KYc4`7sS_EM<(^ zxxW|c95Q_#NYfv1?lJA()*^mMcul5lMfhz2$|gTaUof(~s^=2Q{ykn!;BO;MpkX|S zJmb#@1dh4;bmd?&P~s)r8h6Ll^?OBujX>wiQjbU_*TF9a;+r`=1di zpSH(<%Qt=c z)8wl`+S4WA#m5#ZuoB!E$Gb`tXu(XwG^h<$kK%*}!J^1l0|7US`jh_vop;2}!i`qe zB|aTPm-H!)$k*6I(^u_V7}H2$lp;b3mce0!Bdhsl++#kPkm91}O&)JLJ-d<^Lz@Sd4 zHsbY;Sm@mn(9IEiN#um};E_bt!^@m9u04vWzpg?3<Rzs=z+b= zQ{YlQTtO#7;)N>Ef*#Zd32^%>JUC_z6fLM)0I6>PO|L7oL{IkPj%ox(Nu1(H&#p4# zsK>Q#{`a!+_UosoUo&!ms-dVF3=OA2Ln`h;Cy#|gBmG$~t$_#b2m}a@FQKwL{LL}g z+wB5u5zDH9K64s)Yz@!5QbgBcq_O?sQ;?zTU==h3hIV>)Io)v^(XoK1aVPHrC)n{6 zS72n|-jqM3V0iozbVaJ6l_|3&@mMW(Y2hsLQt)$CU$c@Yn6kY9;~(a74O6?6?7`1% zn1pG#{+IxJ&Zj^%1g!Ib_H#;hcul=(t4uKe(B8j@0@zk0YJ1hN7=w=s2M+})#ka0l z;31DjtpU%DkZLe&orcyGEbQ0FL|{4q9y6PAT61$N3{sefRYkgbt+>s)X5_8GmQw$< zq{AoqTt`X1=>$QEVj0TY1I16|NI7}6gz<$$dWMoWFs=0-u;8AQO1o@Uk=~i>b&(5p z1!mvmhUcCLnovX2pdT)!XwCT~e{b5=5Mtx^zpp}@Hc;4+^2_r?V9}FGIO@)$^pjTx zJd*g>bZE`n#}5iI?w!>#*YJ`!9+gNv%Bwla-9_0~JCR6C{nHCzUF;UHpk#@=z?3h4 zpO3<~Dv-fT-{8*RxIb=R6BB5TRTv08oEgboIs$kHl_UzlJt@!ZzAVjq9RVe|@F5== z4Wj@>ua-6ld6DVPC-^utBT6}{z)Lj5NuPWpB z@8=ov-%~ca0O7PNw6q$v#A>GVs)aV{Y}-PB0A3eXKsc)I`<<1NQUNHAm=Tdh?{g}> zW(&LB=mnOUt@{L+Lj6{RC4OwpzG$e^nDLhiAiu4KmLpT%-&62x^tpzL5u5>%=*3Q@ zgn|1y-~`x}gT+Q-4BCq^BFu)Un41wZs1%TgUYcOmyp}BF-Si_U>?hE7{ABn+k@3?j zOGLiv`;F|JNbCBddOXtW>mNZp{(JwbvG1s}GW2-C0r=YM~+b4}Yd(fV1B7`k_;N z971upm7~rHDJQGg!tV~?0RCN`B2q3_#{+t0df_#~)G+2|BPs%?ncWOk`{ltQXRnpJ zCBNUA-+^1uLdTkD%HlEg?%X5leqWk zh1VxuIBwGElo?-yBO$)IwfI1;Tw~W6j#ge`UG)pD<1E^VC`3(G?RwS(GiJ+$JAg(( zC0N%tWa#i^sVVhr)MOC{FD;{hs>o0sVDeGd`ql_}EuXomv1jAi^C{kP+fBNQrsaZ`aj7Wf7~f9ECcKp zi^!GA`p^4GJ(pNm-A05KzDGfI<6)q?i36yk#KjYd3{(Vv$Vnaiz~2XpTd{(tC!67j z>$5j@1vsRITenG)EPchDx z;iTfv(mE&E6A%Us@r3XJQ=WA@@VAtMe@~ic_Jt z+|i#gae@@HV{5Riw0{Sphj>EkYgH2jJBqTk+_0_Bx6EQ)xSY}Snd3JuH)Uvi!0Mmd zB6_}J%i_L#HNW$oMU&w)Op`tru_C;*!nn-zi6`we_^gus(4>5X`8c?4{pzzvBP@Xs^j;c z#m>xBSn`0h13~PRbe5FPrHjQ*)I-P%24a2E!iBt}!usb%#WB3VkcK=f2Q*^IkKhtF zDITlCem}$Xh<4icIXiy|a=jD$^w8pZGV%e9b?UC}cXBNN;f;CB`=YBPcyjZajn|GZH`}_>0jF@aNY5nb0 z$epW~GwHX#OZ8P%!)FOcVXuf=naN^{$>RnJootC8?Ace$5=#7p<`vgNUXjDHuLyvx ziFO{DO1R+m@U8cp_uIUXxIIT86p2K&G4rnTPrQ33y&EMS6FatVB+k4}NroqcI&ZF# z4BCf^xOq4j=}AsQTe4GUN$&K%&RBN!vyi}fZs&@FWk6mm6`}$Il-%3i#2B}qyMC5j zy#GwH`l4jU>dZ|Dqqy(4ucFGV==%)#2l$D0le%{@bqFlG{z(F>bP4Qnxy5TS90RFGJt^=9be*D5>`L}uW2_) z{D-`}BA#Gx!C{?j)oI@b_$dwJi(Il-GNs;2QHz=ER2Ob`JbOaxm4v3AL5UT(T0c3?PCQ9{gGUI%nB6BMA5iB-?huE;F(0;$`cE%^H7U( zWp)WG!@WJz3IjZshJz3=Z8D?^Bai32Iv0?v$txL)N&u?9WB&DzeXl!uxQlJIfH0E9@C*9KYLKS>e08=r+F^Oll8t*isx3~{^Gj;` z${Wq{^2OAvTVkvN8xfjz5-Y$+x0>B)ZA%W^G3K%|2&eKe|k!7;+ zPE#qxfTwC$R|qK*qJogQi+sRt^KPL7t2f$dkA^d;B@ZcsOzz5IU(CWvCkPg+ z3?rI8La!iYMtI`9S!;0dMno8>gLfqHqMV*Yw1qM)F%)Qn?#nSNe#~WS_SvdvP@->U ziNIXJY7nQI>yNKZ1`8^$*&~h;%YQYE`RX8{>`Zz-$R6ZXq-yIIIeHi^KK9R7FdJD0 zLHmbXN})YiK45c7KBgC><}c(?8AHge?564{A zM891gg9hp356eqZF2pL_%y&7FSwOlBBWvb--=4rbS#dzls`5FD_M{M$E%yi>7~%P7 zq5{m{$KQF7WUi^B+W{7lZkq0aW|=O!|0no-hX4Kf^i02OB3C?hS^b*j0-VcTc(v|N z)+(Kr(dt@o(+iJlHm3ckh$8y%+Fuq1^w*KK|tF#`kl%lY5(v$IcUlv&4DFt!?! ztfps#=3BZqqP&5&e_7&ORR=!l*m6w*8LQOP8?YDZK+@K1SVZSk_%N=+?!a@i{p-X+F4+MoYMGk%kaj?xzQN`a|AX{1rd&AP`@) zR)PWf!#G&lyb=_`jnLq_oh*S;>Y(1Zk3nf1(*cZ6k{|SLmqdL0B!j$O0M;8<085`r zXd@)FA`3W*gu#-9$npkywRz7)&v1+=S|EbBGhagOsMD``F3QZiy&byGCD74NII?QN z?kmOHWWI#FHKYSn+bqgisW>0mD~m^cAz{0+f`U!U!XVFx5wt7!P1H9mkA95)hgFx4 z9mg-=_z17H7(*rj22*L*-ZU>?N5WSM;FbBzQ8u=(#HTS|a(^g&QMi%=@?qs zgitY>aN5J#pGP3qg^!NjNcR4hF9PU4CZ}yy0Ba+haE3{0jmvk)IO5Z-TF^`gVjs&a z79YpF7-Z)f=jVJBFtZ3ov#ww(j8!<#G=TSn<1Xgvo^I`skxihS22~_GQt_|#b)Wn8 zJ3YqMK{}MT-lN+8Dw_&%`!)LylBJ5GP?JUOQcgHas!l)6x`5%+YU zzH`Q4FvJ0?p83pq-&frt?FaW|14=bn9^HYC^4W)J4fRr5v8(Y$k^5hvaKP$M>My(U zpgCTXud$W-dHFGHIr9R_>M5T?xsWvKGeVg&zd&aMlK%z6b~LX<0=UafRV)^ zkou|i(kB%@U2iqGNndLQf)|Mb<~k=R*bQ0fM-pk4m__us`S?BUkK(+NOF<5-5|iG# zHSl4q0-IAGT~4qfNO!I7uEp{&PD4XWl>V_R!y#g-ui#0TIuO6B_@g%Tg6`1EBGzW^ zNH8pO{x3`pe0L{Vdw!nyIgj?i`7&S`6>z~WagpO}kJ*|_pRB&f7_^gI5+Giz~7@=fT+QYghk)~ zHmo_fxSO5JRysJLd$~m#hu`I|wp0TLF95j;JPyCOs@LvZ$**?Q{#dZ)=<&fo`_v~i zox8^wahe}6A6ZHf*-W|FD*4za0UyLV6f^`uz%%tL11ni=(+*mf-nT+V-0_niVTFVB zP4C0BK11?8)kqcd%3c*KI=B7qv4&d5;>ZR7ouyDTtWXvHe0@q^$>OL3Nz&GP!Xh+8GjWLB!P)+TezJep`s=FE*2#Taf?vK z8z9!qL29e6a{+A7$5kUCQy@T*Ux^Q7b_&5N_DJxq9ta^x;6au zru2j03Cv|){RGhYM;{NO5sItHlLroet-1WOsn|?$?+k{l|xj=36~I?#~JzpgWG1 zNxo}fS<{%GFjvYp?OZmn@%t&l-BI`I4$+47SL*H9>P>q8Js^kBn?~Sm|4v6>3HerU z%2W(*S$pcd@HC#C*B&`Ec*r54S0P!(9*6D7?VFEiyupR3A1@m&D^POHDvjkKq$_5r z=`E*~@_Jird);(-sd?U%W%`ZvA4Z~q1ZKXgI*00&{w8DCz`^zarflXc+C#Y?w@RB4 zY0n<9!|G$d4#jSO!XQNhZx;~lUT&?Tiv1<+hk{_N0)(v%c#qmQl_qbOh*mMFk-^l^AJpM{t|yqK z+;f1ZbFpoI^@gKN+=B|pM$w>#idTij$cE!$~(H2*^QpqAd}*yVfKS0z?-VT^Mm#9MM_b(ra)L z_60nF=-mY zs_Z{CiKI;0$hM_r@Sq;&ci}8=YL24q5*3G#I?1-pY4pABcl#Zf)K&{|OR~29tD~i( zSrrxUU!O1lt04)iOyIYXQs0INHE4z{4swGD zkd?V{wa~CbNG%I_6C+nV$iXx{OcTcxV&mSnj6q#MI(pKf3$>BepjYkRw1!~Bf(k7V1~>zvco)}t zAa-LYZA$BEO*kp#dQ>!sbUj4_+#rkns_zB>?6f<^22KJ`e-wK=i-Pg;*I$0i`SjGj=HpXCcI ztO<(&d?;T}m9A~Lq5)-X8$(@=Z@7C7O?9p#nEWVuO(x_MYbAO6dv;FOZ`jlPVDY7# zLlfccUMd6Ne;1CHk#a?q#6^$aSqAlyH+VcqZny+cau1we64Y zx(ZgxHyfb-t4H8f#vk~j9rs>uuC~8G^gH6&AAnXCR&18*H7r&m?4i*l)NHuQB;Lj|Z#hDt)N! z-q?iqO-?4a_6&)xTo%krcnGR{&M-(nmkRo` zG?_`$o_Bi$9Yj8Pbpr_uAe6J_G~tAyfN$6GSDTkc?+*-%!h8|kYkMRzmj-U9$(xNY z#bfwZ;0`wN!OhzYL~~KK&KTQ7rs{XZ341FaHdkIsM|-=i0-iKl0p4E)>f~sY<8AH; zgxjK%W5#9R>66$uOYNslwIGQNU$3+Qex;>Fpr@+O*pHbH_9nEY$4fs>RXd*V5QSrja)oD?1V3y5wsQ7 z>RQ_sh_U`M>l2S3n>Pnu0D9~%DmqQj7n)FC?MUGm>$&`v z!?0zu)sE7E?+7utp0#Wm+x4@dJcN+Jyr>oHYFSH*1DpJ(Gm7j_ar8%H2)wn5i!kNan)53s&jcEK4~feb(I@+bo0BM^PpLn%%}=T9+drV^X1M zCDWb>iVcLM3zW$KYUr z&p%k??I<8WIp|!g{5P$}U+?UH`YtVx?T8|IK%1VX{P&gn=jHvcKe|VNr*y}!sDje;oz?`*$>Q3ADe@jsN|Z z|9&7_6ODF~uV*;`wk9J|A4(ab*Y^e%+K`4CWSu(k3qAZ@~8v0@6eO=F^7s&am zOX1|0W7#xcpSc=*ky6GR)~sq}5}M_+XW-MChLXjHwg-w&e_rP~t|O!7F7Gut$c*9x zwU_7_$Cw<8-r03X4zY`+KQTve_gR1LMcA=e@vn9oj*oh_`*3ag?_)@q7x2{m(kh#e z|EX&79_WOC9q?yn>g(~J>zAg=UPZgJ6Rz#qBh$r4z6Wi4rJJE$QI$pe@cH;{NT&U# z3RX}$?!N-G+6)M**#a)5r_jbJ#1wXkE7ASnCg(Csvg7b_1xUdhMXv9F+8i34cedoQ zRU|*Gp`rpOny{(a#-$!2dz8Nzqk@>H=Cdk(Rwgyew4Q(U4XnKJ7OFIi&!&kM7bj@$ zFTExf=k^m_AdDnK!|w~$+J0y;=y3Bk!J2QM zix(oYA;uTq$qt~_`}`PTvFpHFm0b}0Im#XZnmR737pwR@H{5p#3aRsZwsCK~nD#fB z&f~}}^b_96=8TQK11+YkL$(_FbKTGgjqS7qzyB$0&YGaII==A|>`*VWl93)c_3}VOTx-ASI?s5!&ThWOjJ*gP`&V}cckwji zEf63~{nk)jbfFz&MA62_2Aq1IJtOP+Qff=&83 zh?zV&LBgVi>^x!{TT;#PB82XcJAVX^BErEwqd(5}k--QFg z6TG} zmeF)x(e}W^#jj2gDOZXS!ZpNsuA&#LcX&0^QyJD`GsRSSk%J%M(gq?=Gh&$;zsK;` z2Fsq&E}p(eJ7aFI>JE~p> z(LrA9s7W=^+4=B3?&CUYYHs7v5Ibehv{xVtceT(jpnp4+d#KB4E+$~Zj@k}^rdyzb*As&`yQA% zyYJ9Iag=k8;vBU!|Eg}7aS&o?UasGF^G7;;^{RQUN%@QqGyxH^dz@Q)EUEQB#1bxGep_6#5 zmuKS*)lm5AA_Bkk@|GCyOSh z@?i@O!?t`}tUL(V#6_LPpf`Zz;M=9eEFg0AzW<@`$P9;z;0;>TAhGn556sY*dPWI! zBT76YWwkUKmzg(Sm}KjL;~h_xE>>`GDPN^B#=Wvvu%~h>D(Cmx?*rp15_@-=;@2n| zP6CBrExM2?q+eIs@?_-KB@v$7ZS7%q8Q&NlWLk$C;QEKAPYfpl^IszU*Dn%%`X;obREFJ@ zu@QDdUh<;4TV6vKYaE90_x0Ffz>Jcv-Ex03WzWJhjj}5WU84jZrB3p7;dV(d%S7(% zn^4s<81-YdmIGu@{`jcp`AxNf&eaW+NvX5QV(3sZNeNM3%?N8ui>z)d?sg-2MsMi$ zG${V!9TJ4xzmE{c4Ie_DbTVHqYITNd4BjeY8U*Vj>5CntlL~pd__0s9+)vDpU@gs` z;K1O#W4PRPV+xdGTkmVYEsWB$*MD%W0Pad8r#u({ZGuM0j7Jkkt8+ltFOnX!3Bjc;5HSy^j)|r!4B8k`mJQ_I4y;Brii5A&~_8 z0AYTA>!*j%-K13J(!J)JH9#fSM=d_+)*g@6#?GImc6*H3aVHhDL&3uz3h&M&W<@RH z?j#V$z%7<;g`I=?P;1ck2}$9O&;h7`nc6wFG9Nb9{pf;lLAeMjlbR>m;g2+bu_?vl zI|A0AQgBSO<*GOLvp8BT8i7co2j8OC(h7Rqk``28umqRH65Rv;s72mVVR!e0fdg~05r@q-UsS)zG%?HB5_P2PZ;k&1V1u-rR zZ`_X6Y^EI?0ZxI8{~#ys;Z0&{*NIMeKb_j0Y#o4lHK?tM+5)$M!;5I{0VKqSM6|e; zuiwtb2)w)c6v>;bbaOLjhs| zvbxt|e{0(%;0=tdQL|$ipAWP8|Tuts#Tc)V$ z)B#hJ+-6ROJT~jYiL&A?ZvPY4Z)vG#kk|QY6jWALe^*v{k=tNf+Gec~2Y$WCtej$| za>>>Mun!99jtNpov_GA|9ysp&z(^ggaY0CWncjhO#1HDruc%Qw@p~c+KC5IbCQf0a zv)&zPv9{_jPhxot!f-U#a5^bwm!Vj#xao6f=0mKPH6>~l%CU}f0Q1s~N&;La0Y9=j z-vJefHK07AR^j+DUf5ZLZ2Dz6?SgF_A+^v)SjUB#E_AsEaJDK4j@&yzOBsE{s-)~K zmsFa+A8dN6McF+n752=T`dorNDJprMdOovy+R2#{?TxlPisOf>P(Pga5j`=ZcM9VU zhY{~u-)U@s5x3J?pizVTah+U6#AQ;so&ZTQ#sB2{{!o(^^`}p+@q+?1? ziL5}Pu}u)A>7!rKgt)5W!4p%JT~VYrcu$E_?Ty%s#yfd26QND9K>*JNxj}^osiGC? zV;0z_X1*1ZJ$eFxl^>tUF!R10QNrABvaSfg6fzL$jXU=l!pHppDLX(HAaGH|5Uz16 z8t~=qeqH1k30@jlt-kghtMLPC@zvM!kBDUU`?h7Y33SUNZB~~rkj+ikOsWf%R0Jx zw0jgr2ESvd<=Gv<7Y#Q3f-kmkCEwW-#AoHHo9CC1PCI&Q zPoU+al9PfKiq#!wM?$n3q-q$ub3KqUn3v6G70?e^e7Yhz+NQAX7%M$@f<{{6O4q!P z#o|OjEtH$?qqTHhykxEN08dldd(7%$(eEZ#r_~ZDJbe#0=tUoF5C!#vCeXIBJU)41 z_ldG@>pBAY^~F7-DW|;Qt$_xOZ{B@~E@hF2so@=GxvNykNOsb8d>I{qC7(;!ZoRFTpa?b&ZvP%aox|Ap#e|^ zAwL<(KM2sBo}?AZtXU;+JmC=Yf9FcQ7?p5gVhr*>j@vn03DQeU{XfJ6-hU=4YZ1~# zNZ|tHE3sE=gOw&M1g8mNT9Ti8hu0tTa{b@c}Hp zqeNBbV+Gz5QBUf%ilfYydAGUkDxaJF$1JX0Kw#@+HJ;$HyXe0a+#$mQ+>EH6MOAZ%htKcpO=MYmfD5 zx5sihb{xI5OkkZI=8TyO5X2&ZIVEj@HZ!;I%&Z~v(fQZ>i|>0@>isI?4d0QUne{i; zgw+=(bLTaGpEZXNC-2ynb2QWImo5@EgX6LEQK5k|Uk5;V%dd#0K+(I(9F z>JAfJwG!^W=9$Ar5gUxld@LDY!8Rj|v-kNHr8hQfjeXXd-|!M)-;@MHa&IT&ma@p(f{sY3m@e+!8FtXh2w)BG$Deh$-rO%nbkWGC_L2k#$Y_}+ zn7qAuzZ9;@YttD|p=4dW%+xVr}o_4P=Na zY|54K-9|pN6`z1iT*pd^HqjX-tHBXsIheAr3AK%K(cbT~+)V2?);%5Lv77o`3{-TQ zF~j$>7-xG;QnQ-Kd$bNe`V2k$+FE!B8CmoQs3hPDKNVdu*UfLgiklS+qo9gkrd*q- zvRX7;9a`vr$rrf#pri#GKXbTawh)r_lV_L@L!CXOd>3NgBBcV(*(3LF7BiLno_f-c%yI1 z->Fo4gkpC6V)&GB)Dx2};Z4Mc>$=kB(|f_bA}G0M2S+Ta#i&SAlfKsjSpx+h^>oCO zK9!6darfnHT|!{Pc?4Xn`RNUlF9a!hXAuTcw+J~F^$ASyb96Spuk@(#YI^L6co>A}2c72?^qM8qW4&~n*q3&D+KCb7fy(gseq|u)=bSM4l z>!(iAX_rqGRAZuk-VC14EOvM1h_dFLNLLL@q4j@8+Md(AFDjOw2Lb&EjT@vcBY~4v z&Y}smYs8056KfGz zE%-F$m(^6s$QoGQ;#FZezO%?3>5|RmrRfjlMdn}Fgc@qEQV!tecA!8xa8RPbvUi^_ z(4*0lg*)bEEaoa6ow$fg-x?2oGpr-6R1l|XswgY=B|GI-j*K6%5{H53eNsG+;bKs3 zFa=xTWG_q0HHwm60L?mu$>+sddkhK}&B^94Gdgldk@paBoeV})B)oC5(RU17qXa$wiPc4@pr%yzq>jjQ>H{;Tlc68ClG`SowIlNuHkKeaZCxoE1Q@C=)Cm zX#J6cf#Qr8{bd=}k8l65#+6fhzh7qwgBQQUK#hezTVo7bdgDwY>QL)H z&fv5;sg-_PKsP-c+!?j>W z)X+>^tp0SIUNUc3zKHj+G>diJpw>72hJP2F(x@2=#;o+j4FG@_;b9r8IRi?ofy^Sb z=A_}mLX*a%4FIOpCX^JITA+JFH}}$hoD>-71%&7C zXYDufv1#Gs5A)vx8Wz&H9Js%qSfyHL+{#m;@GpBeo;-xK00l(GV^g4LS~L4$hi63M z8qh92mfo)vXExq1|D>tR3@6#ERyV#0x8zbkh?V95ChGV#6~_+DQ4%WbQ&j3W6ZS2P zrgqOR{$X0KH8!lb7_OXRiRtl`@ts7+v5G!@)FabQQ;QCp^^>AwE;JRk9JrKHRKi~} zc0hW)V;KA{p_w(C_#(x5WqjRBdaUf$y|JW~FSb5+sCOe^9wT09kMGm}26Jl>J!#}s zLC&8^r+2Y?{Osc{eH11%%8knN7#lQGOu8r6&&=L-+pPO*HGH6)baiIqC=%zSpXvm= zC_-U9YFO1oi>8*HY&!?Q4q9ejd2==GJarLZ4`r>ps+mV|QSy||Z)xQWn9R{`3$xHb z5?9@MlaB6!qM95YFkPuqY477sT(Z5tcx9!oM&at!8xdjGo(s4(in zTARzxI?ge6J1o-kr%zu=D#{F3H%4v`{sQO;M*<6b0Ua5%c8D!1>JY?#}JLJnEmIGOSUWb?^lcF@JvCyTGuiIfcq= z3zM_)1z1|5?9^-bG~Fe}_bToz+Wp3| zTn}pJXzhsZh8Uhtt&4(zbo6ToKK>i00CWE6I#}e;e;n++eRY4THyq513X&4Ue`Z=MLzH^%+w4yniG6<2k7^Og`Xo;g z?y;4U5#LEdr46vdDb2O%r}x?T5+u;QYoDjZ<49;2XXO~7lCIf2Bo_VZ_;AE<^JPv{ zu+xNS)w)BoXY9zg*Nx3^_8F=Q_lg9D$MFr#e*=Vrq0%3Y^*=dVie5SY9^cST;8ObO zB`sQ)abBm@4?L^g`(_WQXJg+QoZc|CUp*3ptJIVip&|>#OSj`qG#+kra>tq_*gIEW z-ZF@DB8V1T6SlXuu*J|?HKPq%v9MTtlJ%nDgO{McN=(HIDZ%HXE`L_0EVMFb+S_lA zbl&8jmY{jAlp1&0=O|fp#1Q-Epf}6St!M4a=#(TaQO+%}JeMtpi#hi4cAPxp1yir? zAry|2jn}sTzRuheOQBHG@356PHR-*oJLIiOT^JzRu$QRJttieiX0i^fAW4BT5;Bx1 zR*PbE5lo>{PR*ULgGL;Q8`V7Ms{H8zr=NzPy_Cl`@SMvxw|4+ z)bq^+!?6b$9~)`;F7X@DeF@wi^)elbY{9`6Eho-RP0cIAqb^sQbXsX`JVxHwg4L+q zMJPcSnlu(`bWe6y13cYW)I=aP02L4AeqpeW~UIB2?MO%HeUkU zO6UA!+nra@;fd%rAg>(|3_y388qK=gRs99Khp=eOcFe(Fg96=%bhxbap4{pjIvNdC z8(?Z5$ISKaHGaivA)yi%c-x7l%GF!Rr&0Q4R@rJ>_E)xUP1ZPYd(EmJ2Xd2CyvboEQL9-j_@iGR!dXN4w-MSYyC1}DTlHPS7?2w z9p>ndbv2D51mDIUUj(0W{Nvc`!zQyP9Q$cw?c$ZZgC$@zy;Whuz6!#ickvr2zsh+X zm!#g(4K1A%Y`*|Xts&0SGJmt2O+7rNUlXVnYO6^vBi$4eH-Nr=q==SV%NfQ}K|V_` z=?=hR+WNEmX?V%b*IfGfdl&8dF(qOqtQjelOobpU*N}tW^!%pbw8z>bHNd~A2~KX4 zw#+E47xN?6m?v-|=)Su%-R7)y-|LWoh^zq%0P^h$qQ$Bl&6ha3FJ3e7neh-T@(h>% z4l8WkkmB@q)CUY*!g!VE)%m>38b%BAuvOPBF)8%|Vh?(tWH}e|g`>2_c*DPLe6*qV z#xCF}m!LnFz&+$5?LVXY$$P1mjpuAL>73j)a(vYhH%ycGvw{80xIKhNGd;O?;$uY3 zVqG*dW&@Ofz#9v*4O_Q-hoZ|GG0?+=Ydv>VMt`V(n`Dh0E%wqKtv!M|?iH1iX?*h? zfVAo3M%kG@-?A#;ndMt7WPq_(HVgC)2FZ#0_X;#xC+qZ=Fw5`R8AcHHmkElrFsC;= zmNXkwYdV?X&^^YU*_Lj40973S`8UM4wTtX#;6GUacfS;-P66HT9wICvB`dBKHDQej7iKRr}+3sYw|O3^&VYbl5Bl8CKwK_Ng1t$<8)mvhDD)wG^PTlT zhgZ}CXOk(j^*c-qV$23t=aji3~G7peBGOswsT`tt)tMPquN!d3aE8b00A*smT!Bq1iGP6DU9x zin}?U7+_<(4NKO_ts^%5s9!s5m5ps>oz^^D$eCiJ?CV2JjE|A)c*yih*cB*SlwV;6 zV{)%oF6I)8uDFr7&nnbVmy5JVd-n6T+&R|)I(+?$ll`s(t;*-EgX}SGzY|zz9yiy< zk!u+fHw;XDhVm8;w8d^L8`uvkuxjy4LShXC5!ynR$FU65HZozMPS-%d%h`h`TW?kR zJzU5XAF=+GDpMLEJ$bA@A(y2F*kuDRxY*Qpl$Kyax$kBU&S71-P#u2$aeLO-&~Dni z$((T|=G0q@z&sso+EcBUi{%iUp8Jx%`Ap*rV1;@<$kQd1CftkMKL+46UCPG*k7(9F zwkca>TpILduMMClem|+Y?dVB4LGT^9!O0 z*MhM0=e(V;*9&viY(tOcPt}Lw9&_IUPgM^>87hIGvk+mzL(HM1AD*^)ll5oTK-uM+ zl1s-IDAvD%x?d8ep8L6!2kE+*cySZw?@cpMmygq;traXA)EQnMMU}$5JBOc) z-@7CNyHWw~tmKkd6h$^X1Qi)*@u`bDJnk0Puu6Yuj!_%7CW_ya?;L>i_EDYL(>wbz z8`r8$9OtvIOet0B&BA}|ZR2;e!M}SVCn{_|pkn8O<}+2+CPz*!|M*bP7=1&|mt>u$ z1q1PO;bCesB-8SR;lA>-<6R^SzZpzGWQJn63Y>oIfFCW^PK#vh8@`z%6!J#iW-B~p zo@smqDrDtm=e{oA=htp(MmsXzFzrpbuV%A=%Z0dYwBP(k-yt;XIMUm&M`!S<$F1^} z4Kv#{FGME&>4^DgVYy)}52FPL7Ce+1V(2gwQC+Yo1~8^J&*aBd;8op3Ryk7^FqvZ- zFM#e=CI1`*slFj8_o*Y)-N>p8M6q2dTwaxV5?fFV|s9#RK34! zBJ?6+84<9;v;kR$Mtqe&;SWU4b1QBo_jP~!W9QLNBY6i%$#QK2n%^A@_pIC1w+Gly z@kh_6wyM{|1fK1U%n2(D43{q@Pe2Q;FY0~+YVzYZt(B<00s>I{Yh_6W92J;faT|Z~ zvKc;Ktg7pZ*7`E0Zu8R?ujeyCFzPwkF(Akd>=kp)lU^L$-1Qhja#2uGbNi0^N?Uop zTcJ#%$0X0*HQ0N{9Q~kc1R1azgOjPjD}%9dw>kyBSYbC9+C`&vCKT3_#)--M?udK4 zLd6DRh*N1-xJSINfaW)`b^7&>yhQSQ1y_-}xP+?dgB?O>v4hvR#5M_RDJpefbh5hXtI*)D(h#2GKmlooA{y2+^9I=uDh3N88ES&D0_PkruwWK=tC!@5CcuD3sq_kGDI8Ed?7ZQ> zZadMNFp;kVJ$AQZ#whQrq@*pdvM*_yB%LmS7{eJdkfLUcEYZ|H_b9sr^kdM)_a@s# zJ)*?2qP6>FST-O{6y$a>DRwVBsCeEq?FsV9wF#?Fd*Xqz(z`l9GdbvXXVVtVzq6zCs z`}W@>>#lW8{I%S&=Mn25yyQ}^x9+PytEbenjEW86r*bK$Amk<^Jyo%xQcJ1~fPvtw zMb@o(2n*@1*;JFQ7|b%bZbZ4nf|6MjY( zakemz{@q5%rcGm~F_!OR#S&%ISygkj)4R&wfiZ&Afb~yddMh4eNp4#%aFzzqDJR}j zb`{3!=cXf)a;a9NcqNFg-(_u27pRdC?V4A6(5-NuDC#Te+Ql4)$RTExcr*1YZs?}V z%K;mc(Z2{8eqYIk0HPfy8H$?4KEpl1&-l%~#HNbsA0{qTB#xfD014-L5F6y#|KHZ^8k;JH;EJ+4QbG}kSP$#BOb>Y-zrDsdx`74U^2P38=OX)n%_HNR@h3+@`4cV>2G((#QPLbka9 z%GF>e$x@L4r5``vj0FK{`cYjIZZiHHac@diOB28KVy>g6FkKe&18{)d(m)vG6K3*; zcZXtQ`oT`^tN~GDbIPk$1D31@lgz3skXj(%yyZ9X3BG~RCUx@0v@jk(Lelb7yrh_t z{Ub4&$^#M__KgYTQ>)sEgZ5?lX@jbj*h9}K9z9D&hj6c-K*d9T`RXpsvwlTNXCC_; zH_#nB5oHa0XII@69`*+NHIvNQH+a%eZt81K2cx0?i(Ai$geWD?tM8wPpDKeby9=nx z%=Tk-oV5yeK}44Y?xu&KR>rvqkbum95d5|CFo@(yRg z-h&gMIzaHJXt{Y=Yo-lkVX0R}EbU9a`f?=+W@Z#D2&}!_ zpaBjg4t+A}1oV!YLPhgM6BhuaF+6-x%Z;LHp}V&UWqNtEg@E4pP#u~(N~_ny@R(VRS5vieD*c<>vUSoM8{#j4H-5OWGc|xVzswNd^A^2|` zUkHiGH-MU#j8!dLC98o0?BqaB^7-LKf=T|}US=WPc)0|-czXXP18qO&0MrK-Bzeo6 z&6>uFj*+W`+p3-T><$|hcd}`TtLyvR?h>neVmeph@`*C;^Zk}(*5m~nhann)#i({u z)F{v{iBe=(=GZTvmA>f`lXAzPThY3=9 zH^OdP@)_$^y`+so(P>p%aDg=0f%2kx-mp{^sXE)$qP!_U;XFN2x?!>jlFrZdcB{m; zO5!C?0j^>DUG;a3Ds_-8r*~^fIr_YQ{Y{vsU^Jimq9|f3hB@p>3EzhBA7@tqI!j_2 zQ8<>C6=5VXXI$FpGDTDT@nRE9p?WZi!nG%Y(@Yg1rMWhXxgSN*l9; zdkAKMoR&+Xhk=$}mR61~w@!&MwVyx#NnhUUvx~W@9AEz)*>1)7AUN9MHks+-0*Pme z+wc7y9m-B9T!02&AOzc(SRa#R=hKtDb!umgV$c2&tmR9FQ#v^Gfd)3uiR;HJ-lKHf zf%pqH;eE}I!7D{!YaYe?!&CSF}9Kxp0QFMV)m_^l(HP7Bjy3(Rt z9A#k%Uoeb_=I~)B3qOOr1a%+tE;rq@Q2*>mRdil-rYbHty?hT7Mkx)y^U5q7f}P3k zM)wo@&VgKsE5mMWa7sthzX3uylfzBNntZEM%;8hS)rm}MctuUdJogk@DdXDa-nJ1u zvOe>1t_@ZT;JU@SGX(x@Rs|#=15~fhfxY5?^4=^HJ)$mL{yg>~7-TCdOTEF^#Rf`l zr$q&B9VcS;@PGePX#rn_3?pDT{7XXc|Mva)?Z(~{pqrbuF79HPa}E5m>|1$5O%@7u z`PY}Pq%v@_c%J!6D!8n|7I*ID^6Ho&cQ479)-om^6A5V*icY{x#5{A^$ zxcj$B=D$23j}P`+5OZh)rHfjf`@IEOusa~W+681eIYN1`H)Yi+|K))C%VPAJg=YwO zO)fPY5*1bc@sIs~b|K-C##inoh(7uM{fAT1;B&F|`OfqoFXw;tJ%y6Se>wSXu8=?`SGA+}5m_*|(YE##pWQvIRv9Wmn!@KVgHl>$X&M>2?N#P0wGiU0DE{nzWU z@M;{`E`asJCOg6Ob)~%CX}1Q|aoLCzjYS!MC2;%!kP1&n;BLni0f~H{K9TI8?FSt zxh@m6hy6(o&hw(RJzO=FV5agM6wAE>X~m{*>Ww?h9{U~JV}7r=@__f|hk&NW;faR(#cm2Lr}giTQ!`C+is`4+#h)kGoU?$9~4 zb?Jw5ka4ZC-T~&K-acEf zhdP6EuO>=~k~l^61lXBncfb&Y(&g9Fv7WjB50VUCeE70b&je2sN}8&HB1u>e!T)#r zFyogtUV_he2N;-zynhd-%gnZt#%UMzVTLFyfXj{;V8-Nu;t4V%kF!}RQX&exj(&LA z6_H}Xog~IFY_wA)v!*w#Cy`oPeeXPVp?<6+-xXN3AIr~=&t86Raso8F6G%&q$jt2o zfl%5mpyxcXo0AGZFh2*(3Jrk~KIs%A$hQqsZHWw=F5ZpNRZhTIu4I}yU=*G?*2-G#KxT<-)$ zfOEQ!aGrj!WqUEL#fy~a)ie0NHl}~=Q2+Xe?;Pvk5hfh37LuLUseaEUd3%^N@7O`( z5U#onG@edS)ZJnX zB#XXuYgm2)2#=nrN~|DHI~LAEIr8K2^qHhai6#I)he~@JKMG_-+p!=C(*&5Kd^V-6P5wqS0xfwto+q>R7$8;}KOUYmrx3$+tY_sd3Y2|L04Ue;c|~I`_ZD z-SlO}G~N0oi0+R=dQ7K2|vQzyG-ZRpKWwW z`qBgCEPgu-))GJdA&8V?Cl~a;Al!7N9Twd59v~{yyqzsu7N)1gpC7;QP2O*jUI9kO znwABu0&bW)51YRRjwYXj*emt5xQ2@?{-sZ#i)r!DcH3{G@Vv)cYT#p*U=q9Ejsbc- z+n*V79o`^qf=b*W7sM1iL2mmKO4@-Dl=0lbv4o-Zw4d&9fm=cH61==5_@s{kWpjzx z`!D&c)eZd5>QGl=H0QOg?VH=H-$#&jz<9Ib(Ml{Yg7>5wcRO5$P(t9eed$Bw%Fs!> z(TU%iRv^+JW1RfHO)(`-D1lIma=d3Z?}-$oDH!&$cx2w(4}x7vTJ`UtlD0>(C*O3? zk}iP(C6MLpxE0!HgDdV#DMLuF@Isj@Fl*-6`cHYei-GxftZq5eibdPG6Xz*hN&h(v z;6IM7YJXs|tzME`j=h20h86Ij!J0^M+9`m8Fp(OhU?F4pz@c!D>;xcSSuIBR4MsD- zAfz4pOCgLCqxDU=+%P5_n220u$nX@W7~pQk_W$yP{Bm0Tmm}m*#AvnMYTkX5v*9l{ zh-UrW7;tp-4&;MjRb3LBvgBH=5(k}(mt>Jmu%@pjAUxzT9xiP8tc}}i5ntnkcKmex zK4m0Q(7@t{ottmH`sJmXE++N|5STG#>qcOG4==o*>CStWH1{MHKAvN(;jHN0O&iaC z&>gdQx9mUaK%N5+r3#*Lk_3+H6JE5RV7D*W0X8XX5fnImRlNwkzfO6jOUO^>y=yJk z8@53CBk8hfolQufOeh+-CqIE<1vrvJz(ynp?mg-+bXqal*HSunJ?n^c9aR% z^Q6fvl&i=? zd?4tu)$1bx9v9WChiR-S$0Whic*KiFzH&t%wzZ&BZG`T(h}&ESc9%!vWS4kpg#qtz z&LM}d+5IWkMSXoNNo=$Su%Dw0uocahF-_qbkCG?{TvK=_L2A`37(Q(!{JQ5ho)Wq- z&Oj%v%go}KrV;)XzwV1(pEf+4lj|+%QBs$c3?X3u7vj}#@&q`br|$RPJ-tq`Ulng6 zF$U1J4x&>pTBTY>DNVzd_5+!1_Ff+XW8H`j04;VP_=5NdKym3&9TMsF*%(G}@k@QY zhskmvEf8(@6Bc6zXvQlfcF7fEQPChT_sd!1O45^7uGEjn1lcNG>vA zlVwyda=-p;dj8Th*ux~u%r65ui`(g83z=3+P8#+jY(;8&_fo1s`$s(|@9fn}&V3!e z+g8j2TWca*ss}s!c*C>(2aO+vYDZwtAA3_99)!E)cd?e!5m!VX#a%%A)}l)VL1l6V~^{^)Sz>?QM-`$|2T&Sf6gI^J*xCJ2~zC2Wml^&vmzm$DKh)H@S*ASO&M|r zRuI6NWpV}2WzkZNYOf6z|yQ5*^UQImZt(N z2gyr3g5xJLxO8~y)g~m)cK>CX_#{@5%tk*pj1=fYzh?i!j!1@@@#wiTn6az8GZ0(Z0Up$A|P zX&W#!?ht5b9A0(KCBsi*YW8Il0%n;MMjT2E67F6nPq*=yf(!VIu(jJMQ*5`TT)^yo zquMcywX&6Ex946HJeu(fJqQq4VAxA{5SU_0_)ffL8Gpby*wcq>l$bo@JISWK6MdV41sAQw&mY?b<;1#x3g-?Ph8ygw z-<7sdNv@FbABqx>>izhY^zjo38J>V`FrOV6;lX|zILNYE`c8%GGW=*RzTA8PZY)stjrpgrwGx z1Ase7ngL^)^vu7<*;~58uuS>+Q@?&PHMbj^7kv8zC&=+Of9nC^(IP}_b6jP5=VolS zLo^4Mv0!<%dHtY@3So#|9C`wMfTB+SA(ekUMc z&&q@&T{Xc`!PQb&jyU4|DS7nymm=4@B_1rvYF*DsrjxBWCiRNv^o6e~cDt@ZC1y~3 zm3*7P{$yO~0kZ}^dXfbi{Sm*7cmP^a8bk)^|%F69#M(2;3t0Jso9fYPHxduO8@Uq;yP{cn(&NRQM zH{)$K9n?gPJ2xYFqZ@&0F6p)6#z>QZ+yrYOr(^F?$tce)WY87|hPUo(KiB-kD?p7L zN|?baq{f8GxqqficLeN{b{&}tM^HW*8#GRGFuqlUHCx(AH~-2Jz`49Bqn$V}s2Ha{ zB{MO-6`9SixbjAtzuVydF|BX>aV2YJeZDFWnozL=ltC$eck!ku@WL5jcNuo20BlVq zM9#o*6|gGa*D^R|geQfsM~%298oPg;BZn8yLkKiHoVnDnZ0EZF4$0!<20*4ZXY`u# zTM*Y93jZ*}<4twg{u3YjRCo;DCvVtxSwoy4)i(KRSUX)58A*)TNSA;M9v5YTB#~9$ zu|Mru;BUVfT%?*Y(|i@M*VS=f-B5J3qb==@2)+B>?J>NM5B+NX-Sx;#F)ZU3PFq!> zSMqL_RT>~h*BXY$D_KS--y$O<7$dMN*87=pS~$s}*C_J`wYnK0+ei}B6EH~->JhAq zhlig>tmz5TtwRx?@!C(h7PzR_kw!R@c`Hx=*?Jkb%fpgwIzYuq=RCmatdPb#OWj zjKUt(l-KVMIa1WYkYHna|bqVJj)F;F|6#Meo$TGc8fF-DoYajg`n=go#k|y`JAekN*=y2ANazOuk zq{qsxrIVtNlk~-H%OgqKMThGQ6R$2Lx@;oPN3NylC|m=p{A7Qx~`y$i`~M zl7Ff$gynB8i)2seA#aw5-K@242LVLY`ibRcMTCER@}1;QL@&hm?NnLfxD8-T#oKxI59UckXl(MKS0-!?MZ3E<_?CNIH;X z2e)I}Pf?EE?*fs63-$ZaWOyD7CFL<-%$2x(xjDVu7DP^Wu#H(2T=M3kH+mC&nW^H1 z)y?U?$bW-0Nnkhy-+y|MkgD1Qv@z+mN@_5jTC#8>cNm@$B!-tvna$~)ilV@h`zym< zl?3jJ6fg)_u_KMDa^s)PG1j8h9qgZi%ZXOX z&U|>VPJE0^ifw5K>pei^2T0lUK57+!Lgu0wqKi{;ds%`^Z9(>ei^KCKQzoQXQ;eic zFW~YW!O~}yy{>3ZYtTuAxkiv0Mk1%fcPHeB#YQb7WArH`Z6}jEH0_P`64MdUP+gx3 zX~cVfn_Fk|%QJ*9;bzuVs&*BPKa>wdpN>roB<>{NLG<vURqZ&Val$ly4 z=~)L@kEiP|n|?HpG)oi}&Jz9NCg*1W}ZhcxWiz1%FoL8GIUr zhdjax`5Y0asKHmL#C&HiC6ISgTe4SPX(X8YP|^b|wux8Uw6PE%bHJPE_D~r23SKg! z=Y6xCo#-d$KuDPJ><-;9fYA(BNtPI{0-blKUo_IlWn!V%TsS^k(^X;<$CoY44ev`? zsw~kj3;fd6G`HT&FETz(L|rRTLruvu!ngf{pu)-qv8&B|R<$fr$X1WQA zez2YLYYcoMNgV^at`;SCH39PsFy>SZoE*!1$kcvp4g?@?e$CrNm@GB~V|rh{lrFmC zTK=`!_p-SdwU|zalqKehbfsj4h3l|ZL+MdT01?YOhPrkp29}z`=2+4;9fqf4Vg?V6 zzDzMlSGXsNKAh6!T+{28(pmcJ8&A6Ck?gFK=aF_J>^t{Bd)S7#CLDPpEp9w>EByqj z;yx!OF5<1gDtvG~>xuznY7Y}x5kQ~LtYkcHikb2bc#ndem%3LM!2R8w5<3hSl`+wl zT(9;6I*l7Z-mWgqI2Whm#B%+b&GiA}o|qA59Uc9@bkhGj6bz|-DhWv*0*P3TEUtr| z8PU;8QvnHMo#TSYN5DXG7FRjx-sNCNNQXzN@O$I*orqFGm>-Bv-u zL1oF*BQ$x=nTTmrQx^ysNoI)4Qs1f-uzuWjrzzZVeeB^gAV%1nWZ3*9;=a4g!NgQv zW+8XTCV}AS7s8ph#*?kWScPyIm~qG?j&zLSnxyH2M;K7D)&aZ4x8*PnO`vhKv1t2^_pGi-Id9?JPF> z8Uks%33vOaP8TIR;2y)U`ve+d@0bmMNixQ~yUqvnq{q0{Q}Q%>f?g7}P*>2{!97!V zhq;YED@{AMEOH_Kb8I{Gpc`83G@BCp(@w?%P55iGsRtxSP!2255_|O`h(S2aac66@ zD~$t#<-N{IKhDrYdr->~adUX{2!{QVYAwX^eow%XIj`)w1;#^dvIL#2?jvbEm6W6_ zh_dRcZ=4R!4$7BBZjI~{ze?$dkepoZ_6?Lu;8sEjEjp0{!MTw|ymkynvjs-@+M<-6 z_aKSwrd*H~IbIz@KD-K#T&DUIlzG2K*;S@#gq5d+2%0NHxmDsjL*N)#no05eD>(v8 zB2ctR3Vdq45b6g$a)WaE@UC?D3E@C(1>}LM*IU|DbB&&5aNc03`t11w%EYQ9VGu25 zAuAWYE~hGN%6R6po`yee(R|eYfRKq(e|IF`^jE+yn>RY#1XT4(1{U;`^+B|0uz&!9 zyXD3D-c`}NO)6A!tJ16ijrm(DaXkX8*O13bmW zF~7NR!CEvUz>f+>g+>^oz>8K{q7DprTos92vEY zU-g^D$6)`K)DT$OB=JdFw^S$y?a+&h`QlL#m>3v^(?ufIJ>5kXyO>j_z<3Pk4TmCH zsZXcc4mfga4HLxNPlzv%WF~&aK$)-P%z;IgL~ocwEx(#}C9FO6tL)f<0?}I7X;EVZ z;0uow^nTuagaQvXcG%NmZ3ZMKXPg>u88`#}V>s*m6y6iluWld13a?S1OkNydEWf;a ztU=j)jJK=&+=mxcf=#qcrUtcgHu>yW`ZCYAI5VK{4kqck_TW>vC6Pc~_`nF5P*x`3 z%=ph99eD`RuS)M_&N2=J0S?oiw zVejS5q0{(uex#U`w3l0ZRtOSd1nYMPI*5F@9_3MSy@H{`inVb&`S-ZAUAfC|G!xAW z5YmdQ*2gXsj@H*LWT(q7dV>$9@Id9k25R1U_!2Wp`6g990Z4b7+Ah+R2f?~rK9Ob} zKy*6!!#dN-dV%(J_(DARPM{17*gW$;7WXJrS;W+*Ed3xlFps?5b{?3ZTwILwLM6OY zR`7^2ch3uxfje!d6=MxSj;^XwHfxs??=|L^YRqkXl%WPNPGl&p!iklEarS46qc-e) zgpUk)7r~yOAQVeASh;F!P^E-wg1ISo4VX)~Tfo^vZKbQDzSLnI5%!*CHE; zdcUnAOmFr=rBP*r^RV)Bqyr5$HDCToRrBk(?{4j@uc%C4zWr2~?GyV*V#_J5Jrk+A zStFlqCw#OZ{yzxm|CWmQChpF@t>=T!L&uHHA^18kO#oPU)6dLu zg6p?JYY5CGb7>~4%8r;uuJX0cH&H(;I^trT#!FC+^}@*gd64Pm3|e(QnH5Y^?w*28N3oz-bPN@_o&r3laZsi|;G$rW6d_T&)YH@4^C|YWjbt@t2)s}9c zu(Ew8PlZCd^1V1*icb1%;2Gw|95Ko6ldmaR?mY*i#hZxyJN;)t!$kwi=t{>lbrT`u zL3N2I6ublJ$=PhMkG_oh%yTRjJVh-Di7*$pxnI2)?S7LN_^cIta|Z+#ot%k=q9q?K z;bpBUds;|AZu1kNp0NsOSA6T7=}0PRek=s_AI+K^&x4FXXPA}(8CcU>2276YcW)w; zVRsb|u{B_E9w<7r$>-2=p&Z)*|NTUU6?W~JJU_o&4QTiLU+L<=p;yW&pjc>c~B8G~3idty47CBGAdhb1&(8;$}Ux;hBiK zAz2-PVu0J=gJ~en0#lss6+Q2&g#?2-gR^9LfT%JyZM9ECZtE9)CKgC*40W$iOD2t0hA`Qe_K=&Fg_TjtTNlp=VjxeDFKvru~e-> z#_R<=1yJsFLxJj5%T$I8Z{FXG%Ilp5{=bB5cAh@~d4;zDEiKGy6*oUXjY&vi zM<@TX8{YtrpmJJH&qwBBbZs~0e*4Ha)movJAy>SW_HLpXEOQ>pbUQ)xeIP`vIQsyU zG;eEcOsA91fMHZ83>?mssSiJm&w$9;BKM48&}S4N+I2{LtXf>0*7h~SWB*;rNAPIx zULZw`-84H93c-J*UK(ehLhUvFj{B7&VRQj!kNXv`GIy^&Abn=H=Dxx!K=r*8 zo1f(A@b+HRzbh!D?wQ7vH{z^8uzT7|B%wD|hB6j18}cU>WBnd=!!I_`7zy~8O(c6n zs<}fFYB^i3MTJ1dxThfJ|Axy+OZ+#`I~A7k5RSy76>ItqTHo9c{*Vt271X9TzaNF*v~IPtn)G%ppSX3Z%JwExG@Fqxd>}OGj3%Uh z0&FL~h?Z`j=c`kbGw&YXeNKwsC6CYIYI>+LvjcGT7AU`Nk~wz9lKEZ7ORnZ50afBo z!5mo2{PU_+CRMpZ7oa{rbZ_042Kb=Cr=ghrJf6*f6agUfyrHZSNraI>5^Vvu?6IJ&YevZHly~Oa(?EgwTJ3Ev=djUo zFJQB$u~r^9-9=(-6lYsE4t#(E#LWt3K*){r4h8%3vg#~d3gjscD>&};u$Y1+0K z_1Amrf%L|k)HUg_RIoMjq;**0`?=g{1U$;Ahox47x48I(h7%W;J9Q+Fs0REMfqG>6B`gHT6HMOK7 zW%pr~BW7X04%@zYaxs3R)0r?!_kwgeYEMn!?6O)(w3hj`0*KX#=BKrG@xGSo%t=zd$f>rIkSW`!Z2v#%kxZ3cE zb4k+8DbJmw>(nEsmZBoP0p9!p1>cJ=0hPpQ^SQ*XBBS-?T>JepW^6X!K-4eVg**aTEZo#-pjv$A1uW@DCS=v0Jd3?)?{~C>%0q?5S_n5-d ze+%LE+u-i|P9y*cX;{U{DMhQXX&6uLx?cxNV%@_2ipjwpxB-N9P<=wC_!jU%^&424 z4!kF%;G#6R={IulG5!wam!vyiJS~mQqo+NlPSTB5|9x5epEJTHqhF!6sTSEUDkw+y zPs_)nYE*1FCtZc5DKUP?zX5{(_wcw&<;TmVe|W1VkzM9%+a7pPyFhhM<4}RYNa;oD zwWOK{n$JKazQ#BN%~Z}LJ!Ryb__v|ue}1iheqFD8hYsd0HbrCeugk`N%a;D@7t2gI zu?LS-;wb+A{cjY0=^WQCC!}{vDCz$j3if|L7RSN9G_YfCq4+-)ivM_h{>wiuE8{#i zUFooWlJ)Nw_dox{k3Ixyqw>mHDjz7507pClaE#?iPY46JMB%1Ad0~kNc0)d)XkGTEN7p;b#b1-kN z0O5X#Ba8YQW|Yb5uVdpYFlusu+ObN4{k#^+Rsn*SM~@~8&#QFDI9toSSyn>`cA5N) zzhba$Mk^g$cjTXaj*!?U?*&}3BpeyAPS0P%gfjWYbEu3=(echzr@9dT@NeJRWi1?L zT~p9%s47zf^^k8s7DB~vlD;TLu{OkOAo}54T6_*XEiNF!HV1JEl@>csIO%#kef`H@ z3^o6L@Gv}uGy$E=BsU;C%gx@SL+t62JO=ZpgdSWQMQ--=z=T!8&;z^o8~>g;)J+aBuq4H!AXgSJTW7sAgyj%%H zd9K`G=G^BfYJ6N_cp%-YlUSCi7%VlmT@K}r7!@=QV2;v%k{cb|xadutRD9PMxIk5C zU}h((_4-pO3uh2xE^NPFD4RP~11{!TNTGQqdGtEtBsB#@=&14*@2b>hx$5)wl_U~g zh1!`RnWypyu;zFgZ7l2#h1DK+?EQG^l2H;44WUuo;Hp*KfXY*T?nsut={J?pZVAj<;Qd?|vv2Ynm+<4Vxclz& z^Jyqsw-yY(cnw+7c5J@LaiAf3UoMS7oHwv?aJ&>Kez;AoSzXxsjd@`meEJ7Oadcro z#XZIUWbAt+c$s1qKbowaK>5zQdOM4Bu^v2+J~y&M-9@rEGnFsoe_QOu8kk5xN*s=` zWJpjlj6Z^;_$DBPZOIP&@!Dg;K?b#z_JOI;_#Z>yb7{Xw{$k-TVMu%flz1%gU2+uF z0drr+ZEl|U;xVDPndV?CzTyB36lT5wUNyTaEU<^kfHJ|hTp^+b^;lUbU|kZ$PcPX( z(lNU&0CBVnO!2Pf7!0(IV~+r}x=cdms`Ou30APb;^!bT^a=<#=Tpx?qK?!Tj?#r1S z9Bg&P`u^IaG;efZ@XHRJS5-MCc#4r%B6x92NIRkS$OtWT?XApdjun}UI-a7iNPyoW zw(|D3+d`dN@g98l>N|hJ|D^CF*-E;Tk^hkpu%~Ao0w++7@~FDK^Nh0mk_Y{)PTX<8 zouc6b%fk|yBfzixs%xu60&;F0FAvAywPOgU<2gcxUA;f!HobejGIS zM{h@)WT>Y}?m}BbjoV4L3=I#zMW-smefd{}gTKD+c+ZVSVusWg;*o!I1YD$iuKsb3 zNB~MO90!D$ewkFQak<`Q3$p~R^$)ZYT(*~6oNv43*BAn?E2P{K&Ncoz2Whva%!2%^ zUBX~g1y%j5E1g@}fb=jF-T!?}K zrU`MC=w|(S=g$Ek*@3mcoeZFPs8Dio$M@C*5JKME!X&uzv9R~4;J_Y;!e{f}74K0K zxyHO8*cH==FFUr#%Gjy*{itH4U>*2%=wpgxlp4R87FA(t11dhhxF{${6# z-t2BbpHhdT>YkD!(8%*D>2yWIr}T-Bq4&`OHab2Ml4gPdeD9Q{*>iWO?8W1`CM$YO z!%3le-Uk4ij!iL2y?NealZ5*~lkBeYv-uy3xDE6LRF0q3LT0!j8)C<1dLx2gp42_o45DLAK2IFouNO>AadCG;+ zYf@vb1G*+=oiKg4GpnlVCWmdsK6^MM&tJlV>_wLQLbr3(OOzNptzd$)UfV$x$kpfD z+byvpr(!OLw0zV3=_QB?LY)-Nb)w6GHQ=$6s$1vZ{D`?6Uj`eeJA)mQ?aHj8a(+&$v zIdB<6M)77Sp~Q&8uFE`MTUpZcFv3)JjmHy`%bOjm(mD5=lk|Rqzd6R<^~a-K{k^AB zJJh>XKGieg?Y53lOg`4kLNK9>4UAq`omj*7ktNF*%cLCkqu|<4=+mqr4fQA+$XIyB zbYp&^^EH$1YziV;X>`P$#^7gY6%-um#pwTJ-SzH=SH?H2T`Y?94%>8o5lq!qTr04Z ze&-{C%@#$=z(3H;=#_i1g|jaN9+>+`_AqNSU7i5lUP->ss8|CjDlRH$ znE@B1Gnl1?+HIF8pfo%!H*2JX|u!SQWS zPsfchW9FhkT5QG$x(BI^54?+-x=%!&iAvf@+5|V<4hK&KO9-Xhi)3-hyCPqH5ebmo zfXa)#!#I%^#BuJ!)`!JPDe61@%*|K$S_YL8C=Ute_kMZrPyx) zv3pLO+NOTZpeAQ|vo~P- zJ81Q|6^EnzS^3MQClzP31>{g|jBY8>j<0L9Lrbh^cY-y1RKTFn+?6WVIe{J-7VVr^ zmUQbw%E*4}IEdp0@!_bl5qBGb&|&%U*0{A1=eJW1V}jmGnqwqBxhpQ2YOauw+fs!o zVY05B;fBb9SdQ#<(wEmJ^w3VSN=DE2RlaNjk?YPK@i_F(b+w)|D28)=|1( zXTV%0u2%^BREjoL^RbTC)_Dake2qsYl9>(aKk2%jz3XMw$kYvB0I}xxk zu*6fGzn?sSXJC|h8qi7^Kv-K2NS67&tU5AfFiD=V!~v_(^l!;FYep{?K{$1#*Fgbb-GU# zw1~PS1KJy(@Q`dmo#gV(1D)WhUE1-hQ`D?d=C2Fb2wP;e=!Y3pH_CS=Pb?*6o3?sQ z&h>V_W=PC`jaOzTO0$NiMleV2M#We3th!*kjC95`26Y5zji?G@QpNA{4@Tt>TGSx^|W4e)@< zqRqYv4xhVkY&(VsW{98}Unwc~j@gVU9A7%++CuFD-1@t*W8GfmC$!bFUjNzS<%%C} zprr%;rny$>cJIKN#d{;pPaY4m*kQe{o_9!i+ZZB5JeT%gTp6!T5kE4BTl@`={& zhmtE#jAxjrS}F4pI-E);ssh8Kz!Ik#B}92%Cu2UAcpuH^q&&x_9e?fUAA;NWTz#*I z1#D4fZx=3CsKQ_N1rUNacoNL&C0>cLst3Le9Tx($tzda$s~|go$<}tDkY`gpzy$YI znyH$Y^t$q`eV8l=Y#l3>fRcRwt{A)N6plfVmVqvWh0zERa!TW}ENni50g6iI8H zG<5$tif2jqdG>q(xp0jiX+4P%B zcj@(4jh15e)3_;Vklv~Y9(^*sKL^e0YRhPhmkPh|xQe1W7&2`x9^4hxJY2PqzbGmyTO2?N2 zCeY}Zt(7HL{VTWWIuJ?Fn~^OC!IV?5?v{t@E#0yS_GrK_IFD2~gtA^vPS_;Qw<~sF zDpkPYARDAyoneSMC|%w5%Z8m)Jd5_Vqa7DWt=r>Sl#VZNuOjXuCX%RV6+?S}-g=u~ z-sae`&5w~ij)55{jYK8~DpyPk7O}cbcA-p&P;O&{ZSH36iQC)Z)+U|hR%}J=h!pgx zIw>OW3|Qxnw@?<`x(xgmp@H})tHG2o<&d?=0_|+mJ@Ks<-``_04S{o#jGu-; zg_kRiHH?+c4%u{ha>jo=?wjyul&xm?ON9m6Q&*s@n*b5X9o7-TAEP6e0DYHU*G$L9 zrQJSwTHqo;ZTy^*$7T(erf>CEz5AB+n~V^3JX4Bo;hu~WaG!jaTRL}Wie5@-A8Z2K#7E&#qXrkI%X-TkR;^ zx)`APfh_RS;@@HkH&9PZq*8BrsKJ>wP;*3k66RQqD zxJazA)`cX;PG0Q21@NG+(h>?s*z0h;bGW4$_30w!I>~Ixxc3R#9uT!ViE55R28?ez zRL>OPjsZ>S?sT-Si3KLcAjnA))I}rs=+M|Y9b;tib~-&_FW2fLksrwE<{0w*@?!R7 zuw$Ba-8b)fT2X-3gUu3 zK=V@<_;nY{R}?mkFF;!STY~EYXhuHMOFd*>iQDyXvzFAgVI`=vtwpU?Rf3~aI=T22 zIy$g39?l(lqE7!^4NXG{3#0TwtFoz?O|1J8WY{z3&k^Wo&JNwy%aSFI*KUtwmcBLy zzRY0aO2pMoWDAoLl6ZoCMJRA1G*!2$?4fI#XQdJLt#gH{h3meGj9`S)ju4lZ#j5}J zQKjSBgbKb$^b7gCcQ$#a1UuKdVr)KRg8S?yG4aC8dT7rP-Snp?9Xx{N9){*XI_n6d zQGzA)cgI*JMY*j;$J36}9;rt-(YFnVs6q=REY` zwOyhIVA%3jHoJ@EV-0zxF~1P@?XC~`0k8iz zH2ULj!Z(39#MCq-Up_uWexnHRfK}YN8%Rz}qojtk3m&Oyo(BcS1!?ZoYqlB9`1}b* z#iGcT2l~aSO%Lc%8zb$4L?VB*wF+P3;9d(L_fX+5~T&u1SvBsSAU$0zZz(f0ywuO;I<*O3RFpKoay zukjXdUNpH^Iw{GocfoQ>%GnP;H zesateZ_DqvdMhM@2Vfz$te=%T-Bc`kL#v(@Bm{1aJ|pR$kB&lW)R~g#y7?>hOAns~ zc3cpS?I8&d#NAqPc~m0cg<$>-y?dI3Nv_Z9RZNg#?ONTyyw3+ptdHpz6>X&%y6Vz# z@>)}lBM11=x@8q?%=q3@YavG_nA-=6Hg{GCT%JpLU$7tT$Fxx zZ3~chb+%Ndp$D=k{(1{_{B@bxSm(_qwQ{2!l6SMQt8Ht-UP?Za<~v2U z(o%5)L5DgzkllUv2|WR|{GE;hus^C9x|88was|E4&Ji^S$cVFp~o5C8S#(w z%nYbE!?zXn#C8hDyY$_VSj|=5qD}Q-e9vVGuXNo}92f02G3KcJHPM;Ok3mQxC+8pc z7Q~;(_#SP}G*5i6DO{=CtpQ=&Wp8hIM%jIR&#od;F3q)vm(?vFhNyRFXFsyCA9E77 zxm-@HXNFRICY!fvoPO-!{>XyXc(odne`EgiQl$misUWE66@ek z_l*DR#ONwjM=ls*T%>GMGz~K!HNMsT(l;v5UCf&7ElHj@vdxG}A9aA$@7GK^JhgRY zi*-LTMGIl{eR$vK&dVfNMGMy~OgQfmkB#1lhoktn%Ejq=5J|i7U&)7cVCO@#6NTpd zs9xvnOxs%)-k{^PDAc*Z_QOtOW%84|fpk!gv$+i+<=q<4CUcr#i~tE{&rWN_Zy`zFa*UZ(Ux z)dG{HC&-%V-Yn4_5WAf40pG4+`Cxm%GBv)U7X8kncC1WvPojrS0}DXvt_tdzk8TVH zFZ)<8KhIJjc6F<2IXi2uuu`)u>9N$w2;Mbd4cyT*YbM4PPgQTSEX{bW31v@pcrbT~ z?XqU0-;*y0X&482@1opl$FfVu-8s`sRs=pY{27E*YdR}_w{dBt@yE&$=ccTA9M&qM z4ChbSxXzKz>4I?(X>y@a#(0Ibb<$@FSGEohOvs+RBAM zL)373U}z8gxb~>76Z6epJ$Lp`Hurzi!u2Yq+xG7cp|$vP(>H>$4~~GmJM!3%wmOLo z3MFB(Ext?Tl^;6}Kx*8xb;TEeEYp~@dxLEMtmkEV%`?Mm-+H$O>QAN?%L2-#7oxEK zKCO^oH>5ddDb!#0A~!H{z8S!+8K-c;&qhcNCm2_x-0||oyD5(qhm9wpbQiq3j0P=@ z(U6PR0-7$-e0kqzxcY|&aGFE#%`%cDjfTd#TNkj)oN@_4F`eKp&@r%E$d4RkfdVh~ z-U_`rhv*Q@T<&+y9vOncN>Jl!*D_>(hRqx2|;v*B=6NS3`0-k}XR-@7VEArba$-8UF{R^O=`Jus1#|1cqWqfR$YRSc0Ls}W_h4rDw% zsrTgDj|&9rW>fYvgIPlN^P-zU@b?C?swIw|=BrtCs_Se>hl4a?N6CB20VrWu_dp0G z`-)g${r;GJ2xkI8?0j!mg}>6VDqK#WyiWmlc3}NJNpI4A>n!77`b||uNf~lPUV@=x z$3?A9v7f??(f?GrJ_X&1G%!s$LTDUzJY@q>6R^V{qc05XgIF1X&NEdSDAVvxOMYEK znv&?SY!k4y<{Tnh?CYbncGhy`v0vpaii@@V<>=_zEoVv=BDWNiulF`;FUv2fT@{3? zQZqF z6o@6HH>y5Q{FJGo^xTcPWE7yluwI&U$v*TZE1kwZCeOb3`=cU0%K<$#b z*6XFU+>LgWz2=)Ld0byN-|~L#<`c4(&Zq*-N7A<1CoyEXzkX|1T3M{xsp)sct${NY zduN3ZuQQytH~=vyV$DCtRpHrIVFfpF1th~&3MZN`WgOsC75(?A+No9YpgPmL`X--K z)2a69nun7vbfjp0t3pRg#_YJZiXUY>_rRDJymdaOtepVku66$#wYc2u{sTp|vp}?G z!Ytyr<7cMuMB%FlX6F&M61@GLjB}YZY`jtXey`a?AZ651A@bXeJv!b_&Qqhx9bq}Q zpCwT^rYzgIj>KxKm99MkBt0YJ>m`E$v}CEt&^*+A1Qmg5E9IPj9O+23JvYy!Ub zeguPB=NvAk4-vsbb@{}9Fohapy0$UJ^pKtCe{^&$6Tq*6mf}&gkrnE)mP+mS@jAO@3egk&QffuJct7iQDTUbQV06h08XJ29J~gQ zMw}@PyrG?9Hv}hg&kiVOj$MioW1Ma>B0M1WRCW&s7 zvY1WatlC?$IM-sem4Bu4&D@Abjeg<64ib30UQ*H6Mdc!(;LRbigDevG zX;7HruCo;AEhOX=!|a5L)A@RmPq%pR3M#Mj(P{527t)I6oB0AzqGWfb*cQ=+no#Gr zcFa95=&%i-G>W^U3JA+%cbqd?5_(7WNvIDcN}v+Y8bC>(a6B)$)zmoOWEd7)WeC*QqZ9QrBV6 zvfwF9YKl`nkV@V@@}5TRf%4Z*ES4hHXZYt}?xze}Vv5q^4o?HHd14R(2W}hjD;o1# z2&Tyy$z(#WOKYj8&Xp==Zf!NhgOvJ>HWJ3Z(sB9W#3}`lW?BI=<{Y{Ghp}k>?0pq5 zJU8LG{bY-1p-cudx?p^Ami1y$b91MA-}(<93xL;Mww{OOTvoXt7_q%cdyT7H0V5r| z^&W8YG*`%10(W^KDZqbz^sQaWSx>mMDbh86Y5Q<4io4&;=?ZHHO!BVn`yfB|*q59k z6J^&~f2@;-(UjanHq?1O7o+gYj&#SBqa&l{h3xW1WVbeeB*=cuI+yunhF?M71QgL} z#V?9icXj+Z9SaeI8bKkbqwwzY)xPq_NQ94Tm?M6{Accmo4ih>Ewe}W#AJ+GFO!G8- zo91`>(n11AulSYm`BDjF3V1zvvLt`L0;`@-gVZc8z)7^CzQk z+qk?xAEzioYdM6cZvE7g2WP(W*dfcB=Q?H#{P4hflCkL5-` zgd!kGiuay6OoDOOMh7Fn;uaZ4-$`-Q$|uuFp+ZW66Rm^1|B5dTQlG#{-z}+?npY&< zofPgJJ^Mjpq)>^Lv0CFiE4{Sv?InK+NV)2VfY~$c?bs&ifieI+oE$ge!uq&^Rpc_K zw1*IVi2Fn(n7Im}ZCjBBg7504m7@?lQ&cqa3;FTw;Xp7SRPr?0#o zV`)2ri3erRLX$Mi5>ULmitN#7V!WLs?;^#WX?fZ%h z2BunS{af#Ka+JLPu{fN{`*qY_ZUI5kvG+K|1-l=WQ8gX`bxlu`!HZ39>hrCOMjFN4 zW|oUu*WmFlZt=3{dlOtlbKPeIW+%H z%|D^mU0{UTO14Vh$}=`Kqn?p5cbtlQwr&&&JA#)I4Cb{kxsYfEh6>fa2D?MhPrOvr zWG605mOTTLbPfx5;>xZzWiJG&7fojwW??mO&ep-fjT-`D2p_k|;%CL}om?u~>$*MD z`tiunUJTHO{Zy+knEc#`yuBwmkzjf;DE=udMB&}%h1+h;DqIyps$mN$%!9q?8p^5S zeDR%N*9BT8*n*c%8=POcrpm-SX=*$+u+9A_ZQsl@tj_I171YVWmKVQLIey zHZodN3Urv=OU{q>QR;LO=v7Zh6tArN%~qxpU-riEhh)XJnTgY?2M;{$ot=rod1z|; zqDL*nZKhaKE_xm7xiT9-Tg$E%j5j<0O&8i7QSp{|j^%ZFqN>`Fz+iem=Cg^F6CPKb zUZGa;O~N@7E}5O8=RO_dqa{XrvJ>9fMS^nLEQ-T$R6K1^YkQ;~=A{r?qo`aJ%c9XG zDZSW(01PKI^3e=V2?DNu1fEvxq1P_D(u{Z`msM1TwB4&0COcJc_mrn-|8&%zbUC(Y zzkq5#R;ycA-p#c3%A$7sf*DYd>`!Li2{6;jpD%b&f-Qr&z}-VVbs6a!ut&}}_*PC; zOmeZrN7+*gk_i}<+NgnOyGMEz%mQO3W~XA7o?n5E08MP0^4%)Vscn70EF7KWZ4X+- zq9&F`c!Zh{ZbhMk-#duRv8`-6{T(S`*Oc|^;QEl?UBPMK1=}w1zoa<{x1p<0n7NKV zTFNLoy0&gQq;k1ul~LdU(0T|=IzIZc9@lO@4)vgTJ4x~{4ba^xJ)NF&{c(@_Gi+=6 z>Kc>UmxWg;3nqCR-=)(Eh4`do^cpRr~iXrHrgj( z;-RMZ$=L6P#mXDatJE0DD=)3*bt~mQvm}eoe9J3bEtsRw#cLa_;SdD#;~2v7_dFy2 zkXlnQYSob8TsgBYV8w3F4FK({x3aOArye@xlR0xn^HMp6^mg1()!R8rMLO)4z_>Z^ zBM^A!YQ0;Q2;t4J7!&iZr89b?RrId=-cuG{YL>J1-Nfw{{ko_Kl*CJ}<#HOmnO<@J#Zlr{XZ4SgB*vQbA9<>fRz^7#SV59Hm(t6mu$d01QX z1NdS&=lZZ;&$k;o&q{Lo)k78-*KRnBDcpc!apZv_az_e1;$eYmN;-Qy>0GRmu7si& z&HA;FZJx|>sas-?M~~gDO%W$o>L04CFG)bo%ZJB@fpoVYSqX~2zqhMxqkA@S%X*wV zH6D-hOUxblAyhezYP{!s;(yrfr;jeQhBI2F_8TanKtPj01HZF8X0 z6=j)=Tj5spbET{ed1eEGlK;7~!S&rI2;JK6cv$}WT{LI$&|}qV$i?K4*7EIEcT`z6 z6>d>Z-CL!ryhY`bCNv)i#MwW(quxcP|J9}f$w}^b5QYQID~ON$;ov368F5}hpLkyK zWmZil?;~uj9b^NcE0dw@D~veH<|(_IM>0I(%rrc1Vhfbsg5eaX1S&SEiNVaGHI#R|36Hj%On>oZpD#sT)Tmr99Mlk z-D26I)*{cT!u*%(LkZT2zkT9<>QqT}v3~rvf5vgYpOmg3SQM+$1U&Xb`~{|7mltSh zbc^ed#v2Ym0JX&aHB<_Xfp#OXy{?gUNaR_^#x<&-YJ>yyW z`(Kj}Czg~&=5SEQ?S{`^P`A5(Bgpz(w*)@90}u;Z1B6mVlI#Vr&_)jRJA2Ml|A)2n zj^}d!|No(sk-du~dt@fbN|7y8_Lfz)?3L`5Y|4nxus0cRA+kgE-XVMM-}CBx#_4=M z=leas-|hF;k(2O#U)Sq;j{D>B;QUSI_b{Y?@uoM;(D!p#LlrOn0`c5TKb=;i%%b4@ z>r~^HZ~wpqpw$JuNy-z z%)vh6CE8BKOhej>mF$PwoMS5$D0=6s7>5fT0RnW~2!tc@hqjq|v6U^wFw-M#l$~N$owxF2` zSZB(8(|@e2bF!6Wmwl)}s{5xNaGBw&4Mt4z@#fp4b{K4(bp-!bKKjqU9f9n6ZcHD2 z8erROXHVdmtbfAfJK$T@h}fI)bu1Y`C2S7@x98f7jR;YoQ||p~W-+INqr9UDnyV!d zfLjk-;Ue}E{E=7pC~4?3zQ^h*esGH|2We3M60G_ih7w_YX9+KrY|dgLI6)8Iy%vkx zaX4pa1-h_hS>62zsIBJ@(>lPJaRH$P9pTZo|HO6#%c}!SRlj?~=e$S2k4NOvd7zw7 zf?$e7-OOJfxq$*P=&8{bS3|J4bO44c{T1kt(rY5naDDw@|J@;qU@A!ZPWW1kWpQu~ zL?(>`)y<@PT*n39Y~K%?U3a&Ze3&&eYcdhR;v#{`9Izc(5z^Fd_rs%JFm34uj6C^C zF}f^j&h>`qhw7ZzmCY~%QZ>_qxVW1@lS{DVxy6|M;jI+Ct-b@L%2|4&+-2GKXE!w+ zAzyR{{6&XO7(JKmlI^+`1T9!FVsy-6NjmQ9e>J*GG=A^|p~`K>fTDNTUT*Ta8d$X7 zB>&rk)wui+sAhN9(!kiNi5mKB(%nHy&gPg{uHNkNTcS2FQCj`vwic{wUXCtn?#VK( z*yGIRq(WM%=BaU%2$4PIzsD{AOR-@pj4;rz?|ZQW`7D3$0K^RgZ2GI0y=%-q$$0HG z79#Mmz8T#WAj2iwT(_x8g)|?AOANyiviux6-W}k~4jMttYQhuPij9bZyAY2m;K|zo zSbF|I%1kWWM{LpfCr+-~?B~yf_}3baUug>xJ6kIjel`PMcb7ub;%Nc1qQho`Q!T^_ z*J%SqWh9KER5c<3L^eny-oouW@OA+n;X;A{jYS>GW-Mx*PJ+D?UaBzD&>z7IX%OdgS>A|14^SOo8)la?G+Q46r7S=YEtG8_1n-CLWwI%Xq5EQ<8 zUqe)lq>Oxoteb8&X+2saaM9i(eyrxIZ`29_j|l>+u*_n|i21s*dI%8iP6lUrqs#!} zrYm|3ceiJ&s-=GD+f731^0)bNX#Oi-`GT;BJ%*_<8yh}dzcjmqe1-9g-TuWJ|Et^la=gT z@+Kj_>uOP6gH>VllAFNS_|koWu_3V{)r~4@^L>F3k2XhkiE4P1@TvQ+7qg6e{?8nF zmBee+1y`o`h>4zv)9)a;120kRqrl%^PnB1v*5&`iipU^z^d8u6&Z@qNV|aci&~WQb zp!%Ks$0|==<&hE`>r1D{>opw1woOXM@PMX-@mBsR1~L)!eDQEHm4{bgq`D09H^Y6U zS^IxebD+p4}xN7!^ZTpDWv9H(4!3eD3&NM8@_t06h_v`Lojlo z?hX6ms=|eWZQ3&EAMDkxJn|iIuYJa(UuZ<3k7SgKtiZQj<8o;duz!TO)sVeZw48EZ zKXXwzWBC_K{F=l+DDe!(nC&;_M{F82 z0jKBRwCl|#tlz1wf@rvE+}EQS(QC~yi#$R@4|LAYn7uJcWHkw${Ptbl{GjVghf7EE zv@6>XFUh0QAxl9T3wECL?5{@Yb8sh=sLmFTQMS)e z=<_wvCB|#+V6bNDO4h*VCmX+tDVTvGX(<2Ve6Hj2v147urcLnX;>TibnZh4)PJ=7P z<|v`gwCcRu`CaX;Xuihip~kt*3ZBp zHQBM}pN_|&qUpW{%neUzKIay8RC^#=0)7hE|>Mjw65MW#=LT^K_|tJEAE9MK>&}{Edhh^ z&gL7ZnCo#RVqxt6sSnpRmJ79AoLdgo)$F`?gBl{s^hueoFnjuD>Nq{06xZ-dH+3Sz zV+WX^_&nY>8#P6giiQ~jDm1oA_jCA1FWW(I6jYj`mLWtQq!mDLjsPL>I4R{_gZRBT zUAcF7FzW6LufrF0`|YQ&fsZiGDIfG#y~8g(kN3_32@FwfNhWQ<#GH)DZtEYh*{!d` zGmiQ=Ua=aHWtTK-j8lvvvyfv-j zbCd`>+(x_^;+K?rSDckj7OQ9?tK-&T-9 zO=Ab6JBKAr4UgdR?QZa!IhLnnbghXGD$JHw z>7pzz;A2f?*!`*E?j?w;NfKtH7fx2uYbjr@eCw}bXL0j{YR_(fA>NB~9EuHb1Vs;4cljQDV@54x5L%I_ z$(ea)=O}vAPGUYw71O9*kIvnd#+%#&Lvw~8A`l;_cUc-t1{UB2u^jr!VEdTuECmD} zDjL+*3461jyBLngZc;A?>v0Ne*Q5V`L3iu;Q>`4Nmf~h>!G?c-c*Er zyIu)PE{I`HY}EK`Xx8cP>onPFey*zALR*xW#$UQ&ABLuPoaN3qrg#abMK0b}e$c?F zq@uEZRtzpkb0Nc_*#1>(^2n7X(+=hXUKGr9AGT;(EghvcA|;bq ztQ0@Wy{M|_6XIGF?4r7RR5>5~lMfFJm?655toIIx_JYE8dTO!}efZ!;WIXCJ#O$$^ z)X5Qk$A`2Fx|mqrbR%}Vl>R~7CFOYJK#ZOMfcJ*y`gUyB^14p!L_B|prAw|9>Zy~X zT?L8l(wvjuJbQ#EHwxcq;kKM7zntd4h7kOrOZA$^l6A+<>#Z>*Oi`Hh+j@%D&+3jk zT$IIvj-#-Vi)AO0#e0c>{qtZcL-1)i!gBR~kR-G^vYLh2kjIddn41Ti3?AK?!caF0 zor#!H9d!-i)3+ei7c?eg9C%h*=`roh35!Sbvt~>bi-FX-%`LEqX6a7ytqeM}EZGp` zqr%@q)?bac^Dv(mJr<&$PW$trsDXY;UgVpI)gGw|K^)bc*(6s>&#P>ha#!i#(U_H- zr&oJXTGNZmmz@31>V(%Y^upkw#>lsbHOn<1b7qkSc31g=upEwjK#;X>6zv%UV?oAp ziy>+TL^?w+RDyFeM3;hEB{5GT@+f~RR6PxI?D3AkDLzIyablDT4mRd5FnBUD3e+{| zWTes>XQY|Vxc@muui6M8XEou79Cf_SD$&^*OJ*6zTI;@Ti36z#f}p!>S~<|idCL$uDerUC< zAPt0_gWZ+x>LS6MrAHk^5 zU-1M6D2&Z)WpD42X)LuYnzXvMb*W~!H58c`mDT&i8pkaA*Dz(Gq8ws(KA!8S)PK_A zy0k!El&Q_yQmi^@26UAt_dMJ0XI#mL=h^0>nL&nZNBYB;w-JHC`Qi;EA2>p*#9}$> zekVSQ#>tIn6`WWMZpIV|?TWtd{l8P`o9Wbi?oLyBk zZCvHKos>qjAewXA-wNN=2$~-uBEt$;KJWI_ny$GPerZz1_};8^%SE~4UXFYA_)itOir=kb!*wTbV-FTGOQ zJ-O4s9)m;{G;JGf4?X3%q%5&_^|{1ic6p24xo92)39o5FVmssnnB1h2+dTa14z}8L zU6=S8$sVakFu6a7>bSh5&K?WgF2LfX{|Sp1%NnU8uz2FXVDYX0Cs_P@FkfLB<*Z?n z%R?g!$Dinx^u_De3t1O@ziljq=l@m)E-t{^!0v=oVo{z0l1P7i&E4y$_eWSgv_cNpW1#{3>FD z4AVW(x-KzA#f8u%!WN)N6O)cvK1Cv#q!qo`piysKXaZ@ktIvc;-dWiupr(m-};is zQ4UK?`bz24$FUY!K?*;8A0fELQc&5~tyEnbR_G(otFhe9C(qP|$+B?-eaTI6JrmT) z=9?c$qVc<&CBnQrpo6T^oi^2M?0Fo!E8iYrY;k)K7qzlQe|Nt*3P=(57#y<@EY61r z)BTanR>#jI-1_6hNY?s;TwPVh>ZM1q&Gm$(h_J=v7h#J{>ty71soZ{-hy9d&Ty-j{ zG=EREB+=?@Baarlhx!cL-GhN;8{Em3{ufw7Gi1LY<%48#6V=RrftAOvBwR)qVJ=v{ z@lHiONZRZtv_ABohZ^FV(X~pT&+fyj9Ga@}HOGg;Yt zo+N#$g~V7ad<;Gkm3M`=8Cl=PPolN@-0CmL za`8@zPm`La!q@L=t$%xi@Sp4T6$66I7h?ZFmN$k zBZRLTtjW++l#e>pIZ3^Y&H2+v`B)M;ZnzekRc^Z7AHY7Xg3GHE$Uyo(z~w&n;QQx< zfh}UKKG2%f6PxK@$lUmgyKtayduy+d@-{K9P}M%M6@i>GZ_d!e7RQ=a_ft3 zl%JyI&Hl{TK$b3&AbCq87QFsz;u8n+8!jt8JKSp_T;KJDls+&QCPt+5QYW+KWQLd| z?MC4OlTGqo@kY%;yUSws9Fq>E)OgswkMuO_8R59ihdoODI#*>4O&8*?JkD#6BxB=T zQrwpE*WP|9P1+?vJ;|wk%|b$1<+{;g@?Jb%_p-m_HfE_?UC0W6D3l`GGA2PkKJ2D-B%ZZ5=d=U zZjj(4Ys}%WXl%0RK-KGtk_%}Ej?D=Ppkx_>Gp}zAYKbD z>YnpD&*q!4_Msk*=$T%&wGerePDFFSeWcyh)9#@S@bJYacJBC|R(ox%>j*igFW5oW zj5Ou?>yrCl7nu4kneAa{(%!p6*nk%#lQfo-m+({4qoseexs^a-i=%;=%=5O4m2Odo+hNCS~F{&|@LkD{1aKN7=Gh*Wl zSY<`2{Sz<${sRny60n+R~B=h)>^?PiLr2X5uA}^hFvt-eIK8TVZY49954v9Y2nqHi%``ba z&J5%ax?$Ed6f0Yixqo9?JjuJ=Pq2;!aa1OUYeSon-YO>)` zFPRRvZeN+$M!CxR**Gy*gl~o)dXpExf*ns ziRxVEx*q`Z1HZ(EK3M8tzX@Ly@`G`L!5ZjCZ5h()IDMyRVL~jwfIKQg-)raoFo`VL@mYtu<|8UkwSHKJ#MYg zxcJ&yPm@OdwTg&2r*1`u4S28OaPoExJko=(#rMt)!Q5lf&7^PCTggDnauF}ggP-Nat$h1)SmE|T{V?1=SQ+yeq6Pix!jA#j#Aeidi*Rk zuBo(o>x$r(WYi9fTGL;;PDl*wlkfNZ5E>>kh4_tAI#w!7Hi~Il_?VaGLgBF_z&-8K z7Ii9rz3!=LOwkATChW}Uoe!2B-@E&*rVuci#y%@IZ|Sn;9lgsVBwlsL_xPhag!V2r zI3s-d3qEFSNAI6p@9ziD)bE`6T+@zP64@C^k5bdSwW!td_7ln13l8(1BC4)G4;C5#H}~dshKbBmko87yUR`mov=&1-?Y%?b^ey|LJ>y=qPETCS;yl_vEP?2UkNx?;3WwzTgm+ag4mezAwn9i>zM<1TW~{%^<)1_rn!q~n zkdF-uggNS-I@>f`pSFojFisF#-$;&Tv{_%U^&F>X9z0+8n}qO8Jg!v1`Li2!jB|;O zNr~I7;aEzoq#9Fq=~zr+qIr)p1e7we6Y6^}l)K8^hw&LLNl^O5GQf3?ee z1DQLOmAI|M?k7bzSXTBeJFvuv<<=J_&IeoQ1{lhDk~=Q_=!=%7u~~{j%#``YeoX8L z&KdLlKn$;|X?7iiA(;yqK20YVZxrQkMp~fVQW1@}%4DD4@hI4eWnY?qT%o%yrR)0> zDeo0!TeONf==adhs^G$7R-U8gtf7`sX~0PDMIwGv94!PTotF`pxCtduFl6n2nU`sL z7Jf{{bKJpo-e>V0)Z+8=Z(Qy%bz_M^W~5odg*M8AF-WE8XTquFGX*{UIhLyzyKv_3 zQTZ`6I@8cidL$PrVp&^P}sd`?5UO(z(BM; zGjscu7bd&?w+pL#>=cdwoZM*L>x+a&y~4P5c+^nu@y>{2scbH$AsbJ`D@vxe+S_Q} zSf6@SG~4jc=gAnt_+evS?`y*uOTEXD5|p2wZ1%$Ab()kpPK$}=xzM`QS;_wnlyi*@ z{R=4HMWaA~@~qt9-+^+y#(x9l5f4`X3s6ppi3>paS1cw8!#Z!e89VSw-0)Px%M;>? zIk(T3=_rw>tfM%483p!>~qdZm`8FBH{?Tmy!UxFD&x+hiTy+(5N!MQ3acYQ({s)Uo(LH8if_m;0Bb}UHI3ij7<^q;G`QX)u zt#RBs>PahSv*O71JeXg4B8&U3yT;+oP^-pohW6aGj56#It+P!~e^Ul+UMBvf8N=Vt zT(|I*4`6AYnyppql+j`4N-<~HNf8qSu@{dWAq;Z2?}O=CP@N)fn@*WrhYER5>A`@A z5@9-PqRcwF4mF*rhwuZb@y(1hrb~Z?0c%c(zhmRDi_gGWD!opRpyZkstpddSm@((& zcAw@j$^Gbe;DVzsTes?hLXdxq?k!Pk6Sk}7w}jo2L?kC@@1Mr1lR^!B|ES~EWx4L- zAAg?_Px1RrDS!EIc5Ti0QLe3(f;)0uYXS0Md$IOEG4d5dmbxVF&T`--cO{vxX~R%7 z@Y$*P$*>-UtS7wOr4AO2kQmvJ>*5tC@3Rrosd4nV`rQm-DsKN)8;4+r({P< z$f+*se)%|xW<4N3-%yzU7lwRX)C~6o)O3FS5rfFOzh3u@YnD0BTC+#bxts?qS-Xer zj@47G4=ZMbvDp*ud3HlQkDi*eZ#1*db&aG*{;Y=v2L(lH)dSo|!#Ul1COZOtM(OdQ z^=!HQHLNRzJQs29#2prw)g5!rBlk zq7$?( ziaT&=tUPXr>fl*YKNrh0L7AL-#9(LASh;txuDf>J)M#uuJ$K0?x-l=y$3j(wf{aGc zxT>zINVKYpW6M?O%Gi%M{u2XFn&xl*potJXu+IZ6?C{$STK6`=r5G-}&0NE3ngF}b zL&H||U?26Pha?+4cQ5wm_&Gl?5*Tor3axTv?t7y~!Zu+gODAe@V2{Wd55G%_+A`0t zUg%gM8#9{F-OaI?7)rL9OO0sH-LxM>z0lp)o@{nZACa6lh0)=LPL##j;O$t7lMqT> z*1AH|1N1oKB}$`2?usG`L&1#XA^VSGhC2e+np;+d+YJwB^Z&1~@~Qn_u=04sNV5&V za=aG4l!AK~!)#E9(>@z}R)VbN_?LC>uqj$%`4EH8-gYYGhLp@EHVJOD2`voV-!`}Hu5T3sFQ`jTtu zeg}qWH&q}>*^1iV?o0!B{;QaREzTv~!pG|&q>nQ6`Yr4^LQc{Yb!srohRE-W?z0^{^TBOl4j+H#(K*rKN7YZSGZrgBH3o$Gr|eo-@5-0MN9VY4 zk?4BQ`(F>2o1YQpms`>KXC%kb&8OME=0kiXmkfOq!5{Nad1~XHry(~UI)SRE{%`Uw*?U#Axbz^BKd6TF7tnI`nj{#WT#9E8$%F=7@1+1z;X!Nanlc z{9kyH3(Mb}q7_bb532mbzk4&8cy~gY%oQH(UjVOv0??b+(L((IPPcCs!8*aN?-ypI7!)xwUjktnWx2iD6{P(Z=^LzZyx7@`anC^wd zN@clUYN>zz@4xyo@zyS9`g5UQZkAi@ezhZj^NLPV~Tq&k6Q|KFtq5t6ZHu6@L#f!sfr5`K0 zSrzo-*mvRGI?oRz#@H-k;QR!UZ2MNX{OSw)-(LqW1%kMTq-qF@Je%x!jMj>{WwPX* zd);-|09jYxnTVWu@9PafBqn0FyC4kmb0&?9nxA%WKiy&ykjTOrZ1yF*4yLSeR4(9C zmPi^QwNQCr;Jhg+wow{Y;Mq~_>4f^%vVBN#i zSHN;puOJRl%SZtE+(bnJVryi%I{s;Xh_4S!p6Z@{EQ9HYVC_qo>QFUfGBQUgR>PDx zt9A89)vDBy=wtw0geI66DjM(kV00M6P%`-%6++%Gg9VojQm$@TqzbCi0?`#5j(+<4+XyI0Cp_aL&%tlHj z;cHWk6^MiI6A;7<4yM8KmKZr9+`#S0zIZK zuNcS$7n!grEZR?DFri07)^qtxyE(cf0*)v_5|-TPb;}Rk|wxmlmip#=ET#j`ZdQ6~OyZfg}>1!Wa6A zxVr~-bGpyV@*Okc^C&3B;UKuNJ>v9Uw=d5;J#`Ku+>mCx6fS{}U^Tx}^$SzG`qv;1+2GhMO*5flMI(M`36IlCApy`ZJc%ep8-_4V_IrAypGlZ>Jdf;m zVAxd-TIB(@SL~3RWC^SEQjvKA9tVt30=@7=lvr?@KTKrb zw3lvY+#A1lm`Of{gXI44ZlkD63yzw*7#ePRM2Gvb-7)}A_U578rkW}6xa!rn$OwO3 zQ~*XjH}2`sCYgKtK8Ql}p8BEBxDbhVu9|^|{*2#~p2%FV(3I|njGmiqkC7DRh_m3( z98+3y>tYSD@1@C~a&4m+^#)%{fZ`ZerN>h>7cBxto1L6;7dBx2tmgQjQTO=29{PXM z#B4HoNvn9Jix%2-$&+eYPyusnaq8>x>N;a}=`&X%Va=B`=6P;Nez{@`ytjur^N-+&}AI24%R0$F-lk?MoQ#t{h_0zm&+1wgqY@H|l6up}ktp3tZC zF3OWXy&Rw5fhe`6cfkVuf<{Oj9AU!{o;A;8@+_M@;Gj*EnM2!4<)eLcSS8G)GnC%Gsk*QdUxpK5x zx#-E^hI{!KJj`CYgic})ZCpZR;%Aw2I++HJDBBaQW;@c)Is|=54s2H6N<+S%&QNZz|>^nO8kp4HGw_QR>o|-ggAMz zUKNg_+iJRE>lyf;Nf$)dVM4Wc;|C|>ab0RKR)?JP=jF~jiYnoo4vO4+md7O zI%4cBMfH!-c?_AkD*3&!T&+;e^(f^P#{P@)=9h}&wFbKO+nNG6{SL5Nk;rZ=Hg;Se zO;#@bb|39BhNfn=+#lJbdF}yNWLR+ocep3v(pV+d+0OdG%~%Qd)aYGhKQr2ka>l#^ zU@ZvVZ>R_|cJ3@#R`5|FB|xrF9wNJlR?%RwGZ1A=n$Od8u7d5;-W6TN8(bXBG~DsB zI)gEM(+s^Fh{)jO_i;Q9GyPZ5F2Fdyp5hNu0*#cn_ZzH<*R4-y2ugyaW#yc9#VVDe z@~_&41@`OL`R!%v_g`aV8*|QmhlEW?B$lPeXs`~5Eb^oF)WUA36U_yD=Fx8(PR>+P1FFS`s^823?1I}@!v#QnuXb&@(O4c*)WOq zkQ8g=nTg^!;JhZ3)%=1ii2?vBA!;E;;6Fhsg~9`3FMe#T;VeOjPN+coUWlc)438pK|7vhD$9L`|@Xe7~O&nQ*)H# zJqDAbt-ey(9kA2CAz-y7UF9;gU|o1-7wkvgtrG^u=A9*A@;uskZNOcy8r&+# z_&h_7wBN6#;gaX0Bu^Sg<7+heay$?Dv~H(Fow?kZMnsvT^)QB3ySzawoP|&+T;SpJ zcLbN?b7hP@qpj!ttze=oOwm2`flSF|Nm`!Q|PIx$@ZMZa4R zC0k>Pso7P63!6U%c!|!AAL4bRUf9-j`6fUMnqxIq-7A-BBytp<EiStgAqrmHG}1lL%a(G-xDXVcfg+-ilEnfx$TF-55l?6I*;lls0vNqX69<5 z|B7{R$sm;4f1Jr9*P4AJ+=Pr!P3;6C7OK8rhZEZQId6hWEhFtQ_Q4l>;pBsBebw0Z zZboCJYc{i8x)F0*aomPfq9KbyV10gMhO4@X}f4ZMIC@g3miKV>0S_cm=m5h8>6BiXN_dkLf_BLd&qH)~Os`cS7|~gRjw#E?sYG zAZYYy^wY`~nSa?z`TSClvwC=2lCa>7)B1OZp*o9u7qF4}MXt5pMm#~FUmQrNe zd71U{qdJ(tQKfruH^xeM=($2)9!#~a^qEQpyOT!udFkW6cF7A9ICdA_;=*ZtzGNXb ztvBC;vwWJ!5tbx^UCD=_B4ugxz2G2Z^m&|UJMrO2*J&kk{j&y76*0YuDe2D3rkFQH zFoc)Y4kidX=45AJ`lr@Xsj^?j>|s}y>pwk->w_JTCq-#^hn4zOsfxQqs6hU6(0ed1dfEY1vj{p`0{sFJrD`-=@v5uWQK zzb&*04SY0V1i`0N$Cc6J>Pr%sD8=0=w#H*?T>_RfboK=E#kbz*23Pw?1u;tv^dm;Z z-O_}Veh1&-H*rKX5#*6Cj9E!G>Q|^CU67q0y_fZ1RD1j=z&rk z;>nl;8IK=3v$Hk0U$AZY$GerbSYE9fu^pMF)3u|-eEA%m)c{43=dp7vM{)d8pYq?R zieK*&GOMHEJg*DN0;PE;ZHn3@){yKMNuMsu)WZQ45BJHw*u$IOg4Pp8X3I*@!VA*D zOHGIUW;2=c(kjF?x9=nNZ6TPKl5I3lpS32__<7&DedO^u?OX62%pxjwI>+*z}EY z3gsm=pKvHW2PIWfhI1(UdXT>n&X@?toSlerGmK+q9V46H3!%xL93RnnkxzO-`4($N z)``o~ln0u@kFCdY7$NcBrM}I970_b#QO9!=(LQ_|83{sd0<;15uqok0S{>dsYztj* z4_EqdY5!6>f!zoD#a^8+M0YG@`bO8)R6-7}O~*X;luqi?_bkt0a?hO}yerb^-|gIK7L5Ix)L{Wq)64mwCOAnLsGOTDSxPO_^n%1QS3_qukRvZ}*@xwkl zGr}oB>6C;{evz1d>3nnT(O! z0@a>{d%V*{c_?9j$iq|8=Bj5bdTepe?_JvuXrH&uWHJ;I&tsV*8CL%9{15QaD3wgc zxjm2F9ASQ0j#SI4Z(6vuOi*huAH*QE=CcT*;Rnd$pa_w8`;hQ?AXi@&o4|T)%#;1^!(x zDB7QvQK`9g`dN_qr)L;BV7q?IB~GQ!`Z8#NaUi(}cAP_;M7ad|1^{!gjL?~LqscZu z7riFsY7kB-MVb#S+>Mwtj|n6nZJ&g1)?EHZ`xEy}b^$bTJY#Tyz3*J{(mRP!+ALGdXWOQ+GDn^2;lJ(E8m&6GI36TT1_z$cVU5TW)cl`AMz zlxz2PGnd^YBB?feBW+!lPGKNSlA9Mwi+Agi*NZcAB1a}035U8%UAvF%yz?8|mVKR^ z?T6a8oD(+>*WGjJm-zc!q{k!~U&`{UQg~M#*inZ)|2q#|W^Ht%s(^ICULHD}?t-F6 zJs(<+wXjilRsaA@_@73W2nTUB`TdwF9e>k8}G#-){TqC{@GLjc4wvY z#ygoVn>)Cs>6cE|E`BXAYALdK*)0-jO>dEoPL2d*D+TKZy?$psfKBMhb@_dqB5Ts% z9E@jWrFROKN`~$bO2B=tiw& z>vb|h!bXBNhRBKgr6!+2>^8n4{2Uj9bM51BrZI95XUC}fDLIzC?NOqS=Pg#FQRMQ1tv-4{wzyj2kNb*R_-IeAMT z;B=!G!^3klE7SCc5$mB6gzV9zjYL05FuQP1-vB+OhECgux~rzYvQ=U{-03DIYlKG2 zrfr`4CE-F;m9SUigEc?A?WhF79SwBWcL5j#sg?KobK zf~iK!#iA@9%&QI^bT9TmGM2b~9lP$p8G0OcJ1Tb~v@=t~S6CI|Psx_m%u*^noOBrX zI@=H&lex6IZ+wG0wKUG6Y{IYPrGxsH9hqw@s3+cEGT@2UxjEnch65jRLrh0h*!kit z9<%(NoBRmt{$n&8C47hh)%GN{-Uhk%gK+QIT5yT%o*6?u<5L?@#! zSeAXVfO{XWQCKwCYu>l{u3r#xSdB3u% z7SQN$#Lz$YjM78@DsgI!n!v3WUv-=&Fi=eiR3IEiIWoiHT3rDH*3{cfQ0ZqEBEvZG zA#yEiujHZYy%qM0v+RSlFz*=;Xg5Hhg>s~awc)frcNu@5!2rmy;Yor=df!}O*qQxu z$RPO2Fw5HnA`8SHQzV**v*59xg9o(_k!LR+_n-jl^YEGvzoYi?|=& zm=ljW-&J-w@0+>PMm&FKVm#x0b6<$G=ld|?!6Vh;t>%062C}xeYgfzS!*Z>b zbErGvmU zx&()x%$^6Fc`GXVoZ*?TK!E^>q;4FxZvp*OnvOj;)u{fX80%s2W6U?6tcxAjK6a5sii}U1OhQ!nNu1RvTO5`K_mZQ9;a4nKKw{+m z>!`dMkc=?8pcfp>R7~@B5ZguFqwo8UE#N(Y+6&`=a_aLNL})6*aed;H(&T17hVLE0 zIaj>ht(oAu&qnpVw+bY0`BIw`puaTRnNbdS>W|3^BWcUQN0>ZFtYgsu^SKWEP6g+N zI6|T&&>$ZRg>tB=`fKAnUO)x;|1u zf{oM{F`L!$H~i9|JrEVwN96UM#tBclq@O2K+O_#8>{Y5}32Pc392ZVm#9LIQt3>Un7IXesUKL?W^kO(2F68g!S`HMG3 z1&m?jGILFm)d#W8Y=csgs74J#*(Z)+9>4JitjMDxEI*%S+k_W?>|MvMGYVXMmLaFC zXu0a^=LE;=B}{U0<8Q>o&mQJSJWN=-7F0|vYO;@uAy8r|yRCVjs+Xz|-x6`m>i|dLD%bO@JLiT19CR2RFz3=P0d%XBIQU2k=<_Vkf9}>9?LPF1q zk?!DLPASXBUu&1;tcogFgr(12!i=;ZS|w}1AAN)-W8^bkOnoC&F1h8~SNA47G;`m{ z`$(*n-_%|fZV$GD^dw&?*#H-=dlXxQ9IRlJGml~IAi64NP@NZQ-NQa~F!KEG^$S!I-R_ zX?YlSqe>*BywsgUT7@R zh4EbW^r^HLc~6LELiw7mw>-Xk5JC7(yP_oQvhrI6YEDeC5XEqBA@#d^J(p|ISf0PU zX0d>ACGEE+`Yue@Tc%O)!ErT8lb=LX+%M|f| znm3Zitxve-;JK8*Ly$OclXWTsZIa= zm0pkT>h&lKds~itEC($jw~-UPoi^TQaAjD!fBNJ_UG@@j-!E&sHpFgZ%85EGxFBHr zP$vG`zh9)k=;i+P7ZTXi(PTGf+q94Nx9;V1e#ngZVSTURedr-(R#BJCGSplhx#8@O zy6=vBv>%!L96SQS(=igEqWJ0{*V1Zx$u|P)$~_Z(tStDmO3vfH9HTot_6zslbV^x9eW0k=&vHSBK#1fa*!&#{&ci$-dmqj0v;ZOVwrgSk z(ah=FXaASC^yV#ehFnasFV$SHaFulV_ zr9DI?>{8?kgaJkmrp%c|y5`WBnn$vmPi8igdB_knw?-yA)nj zOT1w}tb4Mr+E-$s*_Wq(oAU-O4_LrWy$N7QQ`dmFVYgRM5j?(whVx$D6rU~#bCPt( zc%Z;Y76Dfv;QiB{W&7N_yqj!|7hSU)oBi7mc4IW(1GLrGeR!|`*eFJfX|@*oIwVO0 zOMP!s+u)==Jw7_9fLfGm=7s#VfqLE22P*0e=~R-I*&4-K9ZA9?uxVe)sa$W4I@+_G zzM(6nWZ0Kny_cHI-5hjRZ+~rMg&dzvCIVJCuZ4GDm2-x2R?MRc;UcgGLu zUmtJ^ztk#Evyw>vJMGlv7c#G>G1%YNX>*qb)LRc2#Y%*0hSWmf#R7p5mF*YW<;h^q z?bKki?u>G{?LJEim=2faQ)?I_WwfLbXZ3FCT}=W~c1?lRnp5}cDFXD_7o?oDsu#gr z#g1M_e>g3ZwyVARV0p1u*VDa`yaBA{eD9h>TIpg6$hCUiG=i=I?-PDF6M@SMqVEt` zAAAA22SM;wQ0~G`1ZSQ0dNv#~_SH_6+4jW6M(NWyr$yjKN+c(TSBY&8kI&`^Iea!ACVu(J)M< z<>?u2-eCR#>dr0MS=whD=Q`u%eoj7LKfxq9s8auNEaP8v=kov9I_3!xt683AN21!p zUIPzvZU^jx%VyhNxhkExb^5YvYm)E~5(mBv9h`J|lEq+=jX2%^A@8ljs#?3g(Ji7< zA{`3SNVl?RX%Hk-N@=7!r5jm;7xW9se;bO zi(9|Ux7KZC5t*OdDz~8c{2maw z%h=i%uUg&j2uo6&SDMEEnXhn{b&#dw(UR2tFc&u%WVuU+iXF+}U`s(TO+(p?KTI2UEq=)7iv zv|PC4T-!^ZrY>ah*7c)F?)T%+^SCYyb`UzgjXX@^%h2L(*p4M7_g1`5UnidlON?bx zDRzmRW(>*T%;w(UnBAA_=38aT;7!3R(+8}HYWF@|Q>p<=_eL>zWLf*mTwsqXS)0Go zFNf*aOS3ode0=F+!OKJL@#G55AnaZ0`3`=Z0OFw~Pzvqbyk8sYJf%abyWDUB$I;%_ zv}g)9h$Jd9xe-alcB6nMcpfYLXpr-p;0N1{>`%H13pN^K9% zvv1kIF>VwTnqoYr%-1~`w{oo{`TN4?zQ+2UzhwdZ@2cka*8~{>#t&f&-pqin$)^kjPHrvqU*Q|Wkr@1k5S`#+Pt0_SyQOPTw5I@h4?+*bGY+eRBv`Bb!z(f58lqz#%c1BWThIgRI~w-{{)dk;poqX85tip*>al!(yrOtqbNH ztt7tBhzXyUCX8+ZqqR9cg+k^J9}DCAW)T~vksDwdK>f1{1CB zTe6Kprbm6Iehw@tH`7o9n%PW**gV9KzVfsb(ln|2OQ6DfrRd%v`Ag|?SP#&Vfhojq zqe>!~vZyQ6?zALLT;tx0r5XsK#FxyvlPm^!R@D>tl>3d0s~q`ns2HD|Y4X^bJLAQs zKU?6sN;xO68-v}H?1hSG^D3GCJV?Xqx&56b9p5*uvmQ}z9i7I zVV8Kgy>gPkc}B7oNz>05>0HKV9rK-7Q?Bw+cd763f$Vg`8CjDNwf9fm!{CG@W9d{O6t# zJAb?tT-F42;X&W0BmJ-M=f%w?f~OPQ>lEEJnaG24uNe?r(!oJ>R}a zekc`_vtq8e%^%4kx)E<*(?>q3c6C3_rLkR=d(_XIDFr4H&FbyKI0f3-+R&ZY!YwL8 zeVzN<^z9pK_!B>K7F!6^H*kxF*WNK6GwnaHc8|LICrwmo z^PR7)MJ4bQUj5K~9Bea2*^vX}er(|BDT<{mP{S8Vvhg{@el_AxZxk{N!j7SyP6-n24QLn&Ak4ir$jq3dHueHcHdaQz~3 z0xQ@^E)I|y>?4Op6c$I}y+x+tE6xv>epe<)-VknQ++wmcFcO=~#&&QR{8En_&1#=c zB2~(ZRA}Uqjw^0sj`EpVZ+|f9Ih90#tXYH$QCxE;wk#+JkP!=wmvLxldsteOucUIX zhS?cSpQTF8Nk|4AebvoxE>!&-6$rf^fr9DHS0&D_%6e%cv(4r8%1v+^7)OZJ6?tT? zV#)Wuxc8=!;5;(FUOf((yQO-eoqq|*PmIwXe(U_&yg$SDt&iNdkaZ8acFxtCi|Ky| zRMbBDSCLH7k-vtu+BFsh849Q>Th!#A- zjq;ky`+^KP%FbUuTA665Q_buWzZJRyng(FLp61-fIWKu}?N;ROeGA1oCGDp8p}4*z zm-+aWri$2!*G8GMdJnRE$3Y1{H5E4GVNRPNtJ}p-#?V2r6}c}pA{^;Qobo1V#kffj z=(&ZadqRRK|IOC$uONjxX96UoWADhWC49Vszp7R*C5W`+G7imq2P0|YImKlpOv?;b z(%%&TW9ILei2Yn~P{WbRp%m>;mqR;(As2j#xa0^323Jt*=11%LJB!#oi}L|8G0JTy zU!5V`j)2@!<{am}7R%tN_bsPdDY``_XwqhAh|j9Mqwh?XPR+ldTLK7u%j+8>fi8W+ zRCUT;D2xc`V&o57m+V7e^WMZaM)BZhjXONzczHVTH2rj8zFhmcV1s9HWcUm)zqpHI z)O#+N7mJdBqcn=*kpLgXuG4p2<&i741`zxe;~wHx-4EV+nIRZD#`li?J?kAS&V!bi zsFba789k#EiKqU4$wQD6=E$f|*R8lV(ZDWS-e6*7OVRR~W#oYGiaX}rUk69g-G zt*ja36!ewrLIFXk)?w;`C;Cs1AQjJH$iPpm;8VB4r0INjU2{8o8fHJc?*a!+#=;1@ zrp{4Kq(ck6i{sCf4K6yXvvOAaCif4g%sO9PxVgoYqkiHk`?HVjqiBS|F4XQ!wX0Lk zWk&;=^+Q>cba$tY15*fM6>eS|;uzHH;MDY%;hjkBIC@~+VP44aUy#SY{^F@IMvopQ zS)ql>@KVX!C}36Zb5YbO&4t!VG=YmnR?&Nvd8myg=jaX!al%@LzZIF&`h zPbH*R=eC1EohA=4=PxE@Ybc{EFy#~vE8M1)WC+$f3`L+&-=jMzu+9=m=1=qJ)K<_7 z2#Wtsm{UN(W9Y9sDS0~NvU!SRf?7)~lM;Pd%z0~s+qlcTB2~%Ig0oPG?sNYBEYvdq zd%=ijRVP&t`^n80PTykW<#tcN@i0>&BE?hu6HtfMGsMgU*V}{N2kk2d=OCpNtLOu1xuw5=w)Rwgl=7@OU7N3h+>T=YC}kouq01=P`?Izzi%r%X}*nrLbI$Y?7gXa zZK3KMbJppsf)Li=;eIh>=;NW66EfL)RMQ^xO+N}mxy|}BY&(2k><_Yq$mcz>IZ4+* zdnB&bZcV&%8Rvf_nChfN++McbvL&jVYSu3mF%fq&m6ZB+;AN# zG$q`-Evcp>MpC0kg+ZzV8lEg^=%L7qLfJvov4fHLo;R^lf7q^S38=BH(AdjoDk>!k zLG9GWLGN|4Ki^Qn#kOa1W?pycb5R4snMyBDc8562w0V&M_p@AksYC$J6lKyvq6`Nd=2Qjbj;M4G#{@vR(u!2`!uKi?BPve z>cKGq+mVlgVb@P>JeFO5^Ewkyksd)w5~7Ggevi%j4_eNU@71Vu)8A71YRJSEfz5&v zH;~2(2{9(6S2WBSf5B1lU8PdhlY4FrWF2g|BJ>x5OG78mq|RgR-rpNLpI)}Gc>7^# z8zx6$UZi=7m;~Ra0=wCq{nq3|H1D+B!E=|y3;ixDq}g~aw}mU_@z-cDpLYhJ1z_w# za+8+gmEfmmq<=GAbGbF!0gtx|<8hUvYSXS?Zb-5@sosNNn<-ardr{IA>39<};{+Ge zANE8d*D_6oqe6V`9}dwa`K`@4>%V0GkKHjX#y){I-5HK4^2!vd7i6=|joas(20azI z9_OO?&XwmHwv-Y5w4&lYW02bQh;6~viDsiCN3bo*qdGIwEwq-G*QWC4Qjg9zeHx2aZR`D9UDYwSR z9+JV^_QkHVLXou=$6Db8?anWTFLvbiRP_ zo;*R%=`GVLX!{};NsUA9h@$7w;@1UI!S3>c;9a66g9~1$NZX+|BF4l>gbyees{BNN z^=^Nq@igg=(XFqT9gQvVEPF4RSefxEr6>0NjyG%H z9#5Jh1wA&^QetCpIe?(0EGAgmo+L+IlJ)}@jpA#r^N2!|B*B~8iYfBC(7 z&o^z>Y%UUsC}$wVZoNdj8T{-h?uWTgnM`nV(mut28?-kwd_p}A{!eti0nixsAzp#X zyCM2?ymh-MM?0#`H}ScvGhQp3o!eSRPn&Jlj&=@yw`J%ZHK6UhC4)I&n=5YG7F#yO~(vU{%7nh9w(rDV&)d54pS5ZUbfwW$@F*%18G;K z&Y-7ers?-R-T}Gl$6`dL) zOiTj^b5`S>rNJ1TT|!vB6KKc}E!ekJN#cQ}sNvZOqE3AmTPcl%uKo-mltY(F)#NhK zr$40ba)K4{MIdvB7pyevU9rq>gS|lF=CU&Kiv5F}_)v5wnk%kPxis{8XO?Afzuv9p zZ^l2UW-}OHsTG^;UfAjO(l@snTGZ-1Ht%;kU{2Q@8>zCr#JxGXzg~HErG8kYwPWP1 zo1#mCi)NFrkAd>H%c&J^RJ*aV+jLA6k;^(K$S4(jC7n4DgIgEb%O2%yF)diaV+Qw5 zv8%5BGj54A*Ut$(eUI<;|GK>STO)lVvpG|LcaX-qMUEnz(cyjPBLSYdc-#N#7 zZ7=Vq^L~vNL~wlDPu$Ya`e2Yjayj=xC%|}%Q6j4-1L}YamO%!QtG`7dm~P zKUCC~j89LoYAd(*=?M!D;co*JXp7ryW`wTjD8kn~@8rE{@V_HAf=pccbHP-|*wnck zWW2$+@8Jr0iRQZPpkq1^{l)iQ+pU6S=tfFcjoU+t-*|B(oQGov!{cR*pshcg{Eq6z z73y#0byfv4Ee9JIGAnd-E#kKibh35jGfbYv@L3={iLA^U9^CB9u4@zH;UBnGYHURS z1<<(X3h;i^=Na}+F@62+T^howUgh_uqgaaymy-H6rz}@ydw$(E#^UP7;pU;(+O7M> zwoV2RkK*MU_h1E-C^mItkiJaS3A< zLW%#hC$ikcV9)UnL7z>`Ks5aL=Za+Ce=Tqw#7_=c;D<(|N}H&rxshZ(!U2yH=n!#$o9U0J=oIjHKcSSX7@o_P$OECRq`jwb4Y2X1aQQt!+ z*vu>CHFA6+nPIR}IQ+44>}||7oYsHmHD3?n-JKMbI!pi6Ff!(&3R;biGLTg1QeeL2 zkL52XYV;+;KCS@AGKW{iyy!Ph6ttfhdtg5F=%XN(NGSyFws1#moSWZ*`HjnU^csX? z(n_Akt=A5ItSoVek@sKEur~u-wnAeUxEdiZGdh`S@Xyk>P@HSQ8X%U+gCrc89c{_{ z()(|T3_e#{-hKd_O0KB=g5Tcy)Cu+DTN}}jZZ-ZS;MKWU1^mr0?h6!6hMogDB5L^v zZm{h)XIsVNDZ^qn@RDoUZ@%W!2)kHx zzekr7$^|KWNtrp@idL(XWP7H3b_m#x{xvh|jb;!)ew8JY5%CvXU~NTTz+&NQ*dA2A z$;{Pn)_C8F>J(WF7s!2H8(vO9lB5xD^F}Jr3l{O3Z-0!&Dxl6$Ir!Vw3OUbJLl43~ zqEhYzheIs_0lq{BatISdnPDn_xeaNMrAV#`aP6+!bWM7J~iSw01SetJ`HfE((OJz@IX&lo0&1dzbL&&s3`c zIhcucSRCGz8IKy^W{7VF32`|-Okp4~=QS{%!Hm8)=xHRvAQ!p5GGoa2?vzicL{#n( zJQF*g&{afv#YQ%#&*H5w*rSF0+sMzISz5q5^^kJ@2k_XVW|acww8x3&AGvd;bVUJ| zY+#|E;5sCrgd3~0p%+%=OzGu)dFrFgw_uAiL0aEk02SNy36E7a_;KapI!!`(3U|tg zxoD0GT?f9&g?SzKBFDMVLmP4Jx~azZls3w?mR(&*Mh43aoF9C4$L9+(UNyNa+>$6M zYWyVa9psN;qEAqC#ZCsVtmYBLOOR%7NZ;`E0#b2jCMfKkN0xxm*bJFbCppP?RaF1V zUF{F0O%^(yjO<+=R;>4&8hk(Jae6T8+(}p$m!cxYIaqeT#pY^|D2^uKzIHid=tu7y zDhip0rV*AX69_XzbcSZIc%C42`^#O%RcXvjpWveSgRrG;}U%WXo!Lag@94WT;W;(aJIa75kf@m^% z+qLh8jPCbUco%!2qHI2YNRJb<&bMEx$|(c{Gv}Ceda@|328UQQi_rt zyt&s<`5vA|H#d{N`x43N9Fbdh?l~X6SK7Ca`n(qJJ4D$meOV zch89jn*L2kg%!f0lcU>{$A$lujPov{OX;Ose0q6zebczUjo`c?LV-q4bO^IPRiKN5 z6Evl`K`Id;zD_P~=`)Apw+hVRsy`v%_t|}$2e8dp-i#1>FVyPh3;50*Cj)aHMsxBOeKU9IMqOo?TXXWoAAl@DDR zhfaArV#omWuTr0jIvwCwaoKi+QNB$*j`+(Fjvz{_F^`$=bRSncjSRP8L+wREW{ypn z7a6Aw)@RoBGtwqB-d>bvWUWY)pYbs5=MsTjLo?G)9w}=(*}k%bywl!>$=jD1yDJN_7kG74O=iEifn1$MT1#ivU(Fv@><9N zZI?HFQS74pxb0S=M8G1Sfy?+-(`PHmKRK{pvIitw6tp|?a;2{C{I6lbU%eR<4|bO7 z_P6Hin3NK+6t6NOlM$;SQNC6-f~@A$>9cnhDG6F`Zsp!0EO7i!RUg8c24I4AO!2py z8h?7(|KSBV@`kgmS925p;m3deE$su4$9?NlzWV1c{aaV@`zvu23_oF1<>tY6<+Mn2 z1q}77tAUNI?&@dlwjl`J5*&la>51&hqO$^&r@BqP$746xi@qT~WkH{V?Z6AZAR==H z{&&+y`47d|nYHZq=gER_O}IKdsvtt3rdY2oQ4%)3KO|;s|41zVn>t$C5$jHkzv*zP zksXMTx7$I4xz-0cJ1J=f%GRq@N#dulJz~zmm&ek zP~oE5#h-RHK(*I^M_g<7_RGx;?!T#jvW0Ulu$?Wvm0?cfy&iyQ6oZXm+C$W8Sbk|B zX%@WSzh6lI?%PBO45llF$h^yOvsBwTvv*Hk9SwY@EP9W5ZNh!#`w>E(S?IC9#eOVh z2J)J>m$dP%tui=6$u*uc{-q1f4nj4;(j&M>mj&Ul1wYx&%BbL#BSbO-JyYE%L{E$% zvvYq5XJj5iW&1{FROqU9OADgDDbT6NOXW3r=mkm8x*)0?&+uAZK>MyE3k!T1bznAZ zLyk69&QHa9qpph|--0=&^(r7foNx>^KnJ~w5G0`NGVLy#k^{@pI9({!^dbmCK0^Q_ z*hnX9Knzfa3~D)snaOSvAa-(hugqXiLLz^nc!;m5s>|=Au}kVV!zFh2PI7cD zLY*1tPtT8ltjhWeM zu7>J*T!!IGC!z`^?XJTvA8w8#sXJi9okgNVhKlY9`q_$uombFixRh^=q>p!K-&ohl zr(}35J>Gn5zSllO9nsBrK{L`lo5@aoDVsB5-?vo!)jud&{^e%F!u9((ATg`pc=*Uu zy1ER+a9#uF`dY!xGPowPQu%=jU!($*pOYYFvGOIJx3s|0ClJq3;w%Gm)B_+7$lG5~ z{t$vZH|}rO-Tm8KlJwkIKS)IVgkE3v69GpWMEI_P98c+v89VAXP;*RE|I{>7T3iOb znd!*uW3&Yqj9(p%OjN8!Mh!HYp znI>ptRoR?5MbtMA>E7MpN9Dt!w}tzi+T1l=Q1p37e>PictS@nCK26BEp1%QvbgU** z7so&--&fqUa-YkSPF+AwYc zzuw@rL|G$o-Pm4hk*4s6WSQm&??oP(lWxz+)O34V8Z}sf>Dztt$n7)i#a(Y^Rj*yB+}n_{NtX%d3kT$Jv9*euHIw*Exes+JM8y_5ZZKe_1y==a-irVD>U1eNlaz8)cGmdMp6j%)q#ea^$Qx6adF z@x8{K-{<<;DKX97Lc{eKebOuzoyGO_7h>TT{1sccr_ZzM}gJo3xq>22-3An!ig&W%1&z z^N;xgNkrzZtID4ZrHS&z3*84h4N2}Ry4Wrx2M-w;{umD|Uh01GI2PHgomGLk zKe`i9elwoTm!jV}tI)9b6uq-X)hwUE=2X}o;araDC2{X+3C>&jjs|pQH2@^|d_lmU z4=-o=4PxuHrqc+|LpYL$I`0hQ8KSj`)$zJIgxMNNidQO|yfEPZ>OU({e>aM%F=3wI z5#C}NPg)Uh@zfv*$@Mw>q3(HR@Ip*^`!dk~J6S}dz*Scik$DUK9(h6i*fa1W0Y%>= zB#`%%s3!B!$<|BJLF9#dDd_y3qmJ83R@%0<9&sK@li*}A2W#q8^UOglDIC6d>Qdue z^d(F7V#rgxH22tU#}vpIVeS^9H2CYg!Sg<-%PzWa1dS@yX5^g^to)bWM$xc!U_S; z9Ac@jp@=Gsdkgx|3HHVhUsYM2WF=!+U6Tv8d&V?-Yk5~1Wmfc`DU{z$DI}TK6=e;l zwjGDxrHc$*wH$1he?a@B1+GwfBA)RD{)jh*qa2nImEvgmz1TXwWjMKAu(-P`ptqK( z3*&GGm8N{wdE(y)#xYD%u>`!wqhg-4EE*sTAOttMA#(6TIKPiiT>M_*l6TsfbQpPc zQ9sBLN#`@|45IG%s$=$Bg07+R_q^dPPl%pag+o(8NP1Pi;{677xXxw2BS#U&yHM+F z6@xf!z>T%=o0G3%S8BYH_?Ga3cF|=*X9O(B_FM0LH6OcDqMrQ_hHdr$*oCdCM2u;O znG6TZOOU3o(N8e*(O<+(?DtmO)DJsbZWHoR@<__W8|{D=CsU=n-!%)voC=`3SL)zS9_7Z$c zKILX7F!v&!33qcdP{jI#V-G5?%boz;@Ku%usi|%_8~Nq-hDbWAP|W*(xONG*zl1`x zg7P+9G8)2sXD44={zvzXRXLPZe@KpQ z_^~fmzxvX@XmS6^i`{WWEfymYj^P?On0kxgDX;^JO#j~1*FItR*D$FUdfTZJX8o^* z>eV(D6++Eiwa9$)2}zOpUEU3x!~O0C2>)1xP%wv^iL$w6TeLS?{~?`WFTVzMyi=+C zpNnt15X}~nq?!v!zlhh<@Hj3fC3Kv2Tj3a2q>{_?;`7zzeeEpNlrwXqn<>*H{eB_( z0KHg=L_;j1&nqZaSqx;ckSfD$wc|#_YN1H}sZoV%i^(8kVKv*u^z7Bl{a84@kIV5w zt{QnzP~xeRIJ41kxp9*&9TQ|keEuu;uyECnk-Mda0oL!I21sC*DJHXJ)q7U0L7M(92zJ?X z42R*MKL%Ft=&STgO6RJ%whpR1=J+z+Qh`JxoxB~JYBlnh(*|GWiRhjWi}I(Nm?k8( z?)1!!5!in!F_0kA=vW#~i%#NR8&$0NCQ{-&TRZ7{2#QQZ2?LG;fn4lhPG&>JFJ(5_ zYW-pEb)P&$XfhQ0L?-uRm%Ny$Ojycsd!*IRubAvRya?YtZNeO=yoZ0k(fm*)yYbI} zM5K|Tr3{FDhr0nh_@TmYX`i|3mSe9q$R_LOn)W1GVkdtOyd$MyI)%FT$|}K~0`(p` z)wvJsP_`J^ZA^DG7HMedeYy(BiIw0ow-y(3;0s7v`Iu2;1JmuR?v~C%D>5}YO{I_? z|0rZ$3oqkKA0U)zY2njHDz!hN&!;Wd(BTpo%9C5X*6nj^DLl4$?Gb^io1qJ{_lFv3A zLpLaA`6_*N{EX#e{*<_(F_#Uy}x#vuDA%ptB|X;VRazK!mJb zqgk;6_~5i1cvS#L<&v^?o-7*gYS3IwS?J2t!%q-58`pXH>;`KDZ_T6|dtr(GtgD=lb0B>-f7N5>`5Wcr=iY$-6Ba488NOjUw_4z@W2gLE*)l6F2g;Wd?Vm=#?gNeT)jZDsjthFj! zS@{lQEu3SM?LNweS%oMraIJKRO$Oqp8s{gBK!tgZzqN zF!Y-Zr7IU{HzRU`Mgc<@1G#I$W<5H(A{nT7WxhV|Ii=X$8{U!i_MBE^tRdjdC!yv8 z?X`s%4OfS+giO%q@IO(B{=!KT2((|_@O<~|HkA>=San`RUm_6ux{P$MhQ;A z{=wDc_Z{8g4ed4ZPw?B>at>>t_4Rpjrjs!0Y9vpyc%w^KiWg)g>`$sn9DmF1{A#1zvv7Y->NXF>}W^{c}+!OBI zcVX1ze59%7bbb6u*IxGQAX%Q-hjEA7Fm7dIh%+s-ChdW27k$ojQeUmh!t`DWl0b$? zcdK+hn*QnsV&g7B1oaXWZPKNIrFM`p6E%-Js$G5AzDcbgJ2(WL>3)_zd1122?<1+D zu0C*o7NeSoMd&rcRhqXU=`VXJ5WMV)KV_n!EiMWS*n+p>fj)Lu4Wf_~YO4^Aq^bgV zw(BZiPm&V!Y1hm+|H_X4^5JzwdBan0p&X`^^)M9S`bfKp6(gnm)qiFTla8u~d@M=V z30s4`gP`ZWNd!5!Th2FHroi;mGnHk7XS*V4B*b%TV8MSl27Qb=WuGbWIY7<0?OKDe z#ibNonrYY-YaWYF!yXgSsbKKCZT;*XAkiss~h#O^y@BN0Z>uG^m6-%DOaXp<5$Z)d8Qcd<}rc` z*iF=Xs2fy9o7R#c{9nK8qM7iVA1C8a>oNF^xurk7-3NWscukFdB5?r-M?J~D9fmZK zgseEYYZYMeolJ*(>&CH@Z#}umYv(RGzez6NtD=6M`&U*vIDZjK{m1vzA+}BVMKOt? z0)l{SIr5wJI-ow>7}y97Y64WS7|Ln=97&gCSPuPDkKf%te^I~z?8D9wJ+vL8hUSvA zI;-?N=Edb%#p*(60s!T8D+a{Dt~;L9ZmKn8)>XaKM@G*Qz|~R6{jRq-%Z2LcsW9H+ zu;)l9E2-6$D5iA2IPaD`_>wRA&hu+=PKtabaZYq>cYya8htIeM#+bXS6)elyFEfaz zC~i24vG#lSF}?MEyVJ0VOq+Z_wx*S379)&i(L>)sC*GbAiFAgAST=ECU-#T!3XW4y zF{~jfW$b$TpC8hN5 z)B6+Bi_SqdXCKNf6y^U{2MXymmNPmSLJS!3T*g$ul>#UfiLec1%P8BV%$KZTx0S- zUubsxfLN_y+WXazb#+9V0#^H1O?~?kedEiZeR2A=J8dk8q|@aKLx_)$ z9`S8niK*QZzvCV-ck$}Is_%A6=jOayiR@AAAFd3slb`AV@z{*8%lEINI@J!(FgZ-o znz{~Cg7W7#yN{qzMMfd8UUz6#7 zRCwTovHr?ILHUqr^>eb;E~v#9Db>enIU z5CP?ro!&5~+Dw;>vK17@-il&)4eHopunpOP)Za}@-@~-~#9I)qeNKMalIo=QKtF|P z#})se(X_Ggx(EF_%~Cj5i3!JnOFY5EhY+xzcr5Y$xqEkBYDL%n95g8T|CZPOM9Gt0 zm3Et!>Ak_pCb^))*Xs!3n3F>)483c5m=+m__Sfv9UI2%piJzUv$b=`UF9H{-uDnB^ zRG*xq@qSE{VghKtipw|z>MWY|r7d(l+m;ODme(gmvaRy3 zTzF;!GZuE10QO830nrkJWD7htbA3YdRNT5#{(5d-Iy7?qJ1&&}=BHqL)v(zgqcVp% zmWY;`MH>oYjQ?$Q{U)zRN)PZwTbysUPhOYz{$;M22Y5LHYL} z@cS>WuYu(>9Y%~8I8|0wt7q_cffLQq?Z0L_g35|{O#e`T4+fdkFif{2a?spa#TV;c za$GwES0Q?^dr07%z@?SZ*Sphk5>K{q5125p4->f?#%vc{1|S_jb_59rYz}rml{RV>B&p9C7{Fta^^w0E%RNXSJRLgpnNY$2x$?A%1q>&GV|G(4SDHK zi4frH2;f;1m>h6Ulux%K5T9eH-yOyx63h7MPFK2e8DWTdZ#$xz%kY3*jhfIv z!CCfBDuPIX%*A9C8Zz$NJ200iw503ml<%WaWLOA87wy^UjLs97FLRhLibfM$>L@wg z#WPv6TLzYb8lZI!b{5yq4J417%ixropCL>}niF*O{mx@0%KieNkKTskHZtYKM%3Y%VWaWq2i0~!Ks~oOr)OP{V$;<9v1LEhkYeAa3|#;4;XyWTH}Ey0ITTho*w&0$NfV52%<<{NLTSue!l`l0U! zLWUy`$Bf=2xTjzGlVDdvc^c%IB=mR*7ph8#;u5M}?01L??$Yeq$=T{CmM{L<*KL~7 z^5NjE%lQ6-LBLGZ3AW*XRjZy>I1mf27d0n56@Bq)_s=>UBOcZYcP=Q33wxXBBK9Y~ z1;=fhKaHKZplP7=CsGlXvjMYm&4JFTB!W5bS~h|!-VJvAMs$Va=f-4#RtcIt@B-E9 zlp_j>_Giz$_^^_fnK_J&^WNK6mreM)T!#CQK%2dgAHWC5BSSELZc7nS{QyEVvxW%u;q=;XZeN8hiSO$kfk@ka!kjB>PD z?|~&Mq>iWv`jjwXTsFt_6nV#)5p$wa+WTKU=`IQ#e9zW{!Yz9d>nwU(nlT-=Kpr;p zGgG)bXxey{=0MbGhRsLV+UV=8$Kg|Ikr6QfGA*eH&5|_HJR1S3ZEmQbhi3JQOF#Ci zb=~U~UBn>JRO`MmeS^4^z|sP-ogLHi)B)&GbSU%xy1{;cZ)jJ5)H2h>XTg2MnPu_m z#o}-L1}MF`>&TLF%@|O1;SeCYbUKs|I zGS5<%J;~P#D)bd<3eEt8cswU;rKZm|oRcY^VK)i0=;9#JSkHa^4mJUK7o&&Lk6B2~ zRK<4UisW@w$Yf0s55~uuRNzL#bLqXN%orVBO!ZZ+_^LOKC32kH(4NZ zGBwy-!%0%xYU@l{Os;=+q*wZ(L?z>zin{fDV=*`tMA98 zj^doou$ITraUd=ii}QF}ZB6liGS)ZHv~GQ@{gZy5B%;}gIH1G-Q=!g>h|7E7H1bK5 z_-?m23{h-*7ku!#J|f(!tVi=(kCj(L2WZZm_3QOU^wBvxNYS}xB*RT9?2>OFzw7`4 z;=`RinzSv{JjEo0>KxfovB_}e!yfH|!oNqH<4{leY);oM30WetpyF&^f)`is+dbrW~kSowr1Ak3zYRIAd}8 zUaDEhXnD^@JIDPGy6V>qJOAfh^=H%m@44zF5E}X=#pg2UCr*aEe)xHCJyDni&TxCc zlEaj&-yPM$WvA$&d6k@MxA$fRbYNfPC#LpC8@wR@G}=dT^27Q!G5-zxr#=z+vWyj= zQ_PuNV80V20YN9Vw|kH^wKiJXzgaAz-h}wm*4NvY>iG%!>5FG5BVvprJ(`;u6z+v? z*wYj5m+LL>niU^2HPE2`uiNS&euze>PEn6I?=0;fw)%>aIMs&y04mKV|IgU!F*?;L zA2w(C{X9|sFtzi#6=*e&bG%d(=LYPaaMa0>eLB^0iqKK>4#V{6){^&7Nj6%<-Qf)3 znLFJ|5sZgLrY#>ScabvEOUQ+bc_pq2G+5mV^->~Z<}lzbYw7(n=@c`OMC7C$@+z@18_4$wX@3zEkLJ}i`JrW^KM)plS75l-Qbn(HGfg(UK}z_ z8YPM9*uszwCKJEn;NZ;3yVyC28!rJ8>Q!KP%wOH5T&P>t^&p2#rMRyi9o*@&ZTxy( z9c&R2NrYV5!Cb2n6*+6WkLN++OBSYOk)*%@=y?^_%UM3rCfzxuyttz8lR64wIIg2 zGW~)d-1TB>?wypE^TdZ?o|m`RQHrRCQ{`oYmH>G_Br1P0Bn}lf^`@Ii3dd5F;3e%1 z-nN(zudKDW-?wiCBjE;H$^wyqgu~bOYKrrXB9~%ndX+u2EL37)5vzEddO<+c$V-9a+Kq!ptBbw+4DL$-wxS-k~U%k z&<`(pQG6q+$vLd~WMr5EK4%4^D|XlI3k*JL%+lXXqP{721-A+8Ll=1mN-sDorQnosnJh zMYE6zgv5m<^;`WNz!rDBP{I zP|tOdmkDx_BO!G5X6T;Dz{{+A#(z!Er`zFUs(;5|{02wGynLSLr=m0g0}5xF4b3ry zpYgw&C5+?g+;5ow7@Il{`bvU7wLiP*`}%<$bH)!Y6~U-QwM67j3eIHMWhR6S(G4Ab z9?Ab+%W%J9$<8&Fi*PnMMVm=4YaH?l*zNn)G60Dv%YWU>+fj&$^G1_3a zs#<)nI-Q$gP9%%>mUIeXN@%4fB5{pY7Jw8V8rgPCoquJc$6%p&oM(?(L$V=l`>n7xc z^&Q0Kp6&ua_N>$R%<+6}`fBZS_MTVcn^D}~MA&ajD6WMnue{LxlN-gB`ZwqNY59Ne zoR{%4@}{8M;*}vnedhGRHl-GJF;wp)DE&2FsuYI5Gu(K!{_mahy2u>Ce{#;3g4XJQ zK5GSn@4HN$5^c-hGOKGu)DuA*WsBtvM*J+Xub8tJc`xAd_LXMNT8>i%m4>H|du?nw zq*{oPy$Es|p(FhWD1!k3T~Ez?#?qRY(v+zWgW(H}g2Yi+O7;2e?d-jD^c#%4?FP(h zVMD4~cBXR<(L;*0H@`8g?t(=0fQ1=&rS<-3fQV|89>g+DTv%8W)oDnTMhSj6pA8KA-WNaI%vRB%##%Q!_HMlE~ z6$vI^e0ri(wtqVQGJZjE5ji zFcmT2du6iIw#}0g#c5XKl{J>eWhzA1gs{{Zr| z(p{O*zmv_I)sw?dyiE64lHy@V|2Tlbxdn-3y&2hKaXDn&pO#Oa>3j4qDX-i;?ymm1 z{6%Fl=R^2C7|Jmt>kAr*&rj3IM-{8JMZR!_7031wq#4SrmI+>JaLw;ZTd|KE{QS`;wwlNGbEcrDmyvB( z%8nSuz2)J_k|(uBD&2Y_VBATfPAsiXbVHdB?+M-2JO%8AJl1FGw~F=TYOCW3=#vzz zp78E$>A>&c#vS!>x~a#NT#AXM2%2AO)$ zz`!yVWqWXUe0^Y1;juFq4-S-wY>~ObQ^ui8MZ6ZbCu|_FEOEQ5RLvavFzlh}3|*KL zS`3*sjkTEKIG1t=6wj6O6o5@VuyBOP1Gh$ld-N(P<$I;zSk?d z_(nwT<4C0?@jIM8CgxgzNRAs6zR}Wk!GN99G1345>%kEpw7H+4hAM_|rViKT;eqp1 zC>|r~=OfSCe{LC_z}zg)kCclm){}RXqo4aSNu^W>jtb3}H!%$9wp5FgUx_9azBF?2@(@LrRNH&rl>z$bDP|nq(kWqx}OADDF6j56f ztXTN){N5lUAnKdYAvy+7lY;={VHAqnjC3CW3+{TFK?LWp3(k3lIITxuD-fLWDLCnZ zh3I$M``H_F)Fsu-n+ z)$VgSRzUvRKRt^7?dH=?Vt>1QfoZZ%?1!bmk+i|QlS<3~RoQpPQ{A`mHzY@c z>^s@VjEqE?*<_E(JR)R7BrfpkvTu?tD@5c_GVkB@y`QJ&`MsWB zcdvf^DdU{)`F=mw`?{|8=q1#kPwc9&BEo#G2(zwF3w%AQ@LBqdBa3Cp(OZVDCaEGJl1m`2tf4;d)Sm0@_?_MVS~n!dRLGL$!wS236;)&Dz z7b9O2Df8XuxW2}(I#D8T`or+#+><@VM22-w(`C8_NgJs#VA^5y9DH$Gd?E8S3*1W$ zcGl_Ksh&8W&`$3Wx7Wp<`Tmkq-x$}iA#FIXpB>jf?vVg+YL=oB+`M)Na~+7`W2=GA z=8l1HB^0Yniu{+HXk{GT7I4Fe2>pg7^8-q@oW>@$_=~$iC|aL0STj^`NzVZJVWtmF z<1Gt!C48zBvTwQY?7g47^cl<(%6mW9GvE5Oem-|ISsbS@-}5k-QAK(9-5LA?24T#J z2D$~A_;R)P(GvH$Z^qcG@L(pi*AZr4Fkg9;Y&m(-BLhsoW=w$}ty#9Agv-d>8&=G< ziQ0ZUzwar<2c0B+w2AvqUv*S#i)3x`olhZ(A@7@ZR(uG% zfKQRRKQNTQQ~>8d52uMQrrO0qUQV?9jIgk_nC#R?tJl|T=1vkiolg}xl(W^y%f!q$ zt@bHCdnD!GpUd)9N32v}Vpe@Jzbvck?a4<5c{>w7~|68z-ZbJYP#`CM8px zeyhfq87qqjPrb)ai>RQ&E(Rx*! z`1JAgIk5Nen0Xt&dSE(0;V=8nwt<-Hq=w6tPl}FsJI5@*B_2)j2z-}YP4s9v6eMG4 z&t=KHvcX~AT9?`tyth@U8G*?c;ss{tp4oxv%0_qFgoD9Y5FJU?j(N%SB#Fk*Sa5X1 za0gh7cibY#)Unuz<_h@!CB#jGlMdTz&{9R{dq@5SaRKZ+J9U^>Kls!9AEyL!$3^hu zHc%l+WA$;DDEM$utx!{w&AgM_y*KCcc1|pKnqY3BwR*jx6M68-VC3T7y)?P2;}mWm zuA$7a_eFLY&}Y4MEotU0KzqJ1W}Ehv##8S}(bN4M^@RH~GbWMJokR>=V!eS{SN~r; zT~V@R6%s*u#*eI0pHKJ?U!$1-X4nWg7#O;UxilC_fi^Oe>X?4HwF=uOWJT%8EOGq{ zbLpmJmCR}Tr<#*gSYf@otP~loq*?s+hJ)C1-S<7MhSucLimHx1i88_Uw0kRkA0sYT zx%w$+=Slk)$a{ZVjB~L(JS7)Ms$gFhwkkE^_sE#RX%lj+Fd%q)Y0v#u%WnRQ7Cb~V zZC6dj34Jd&L!t1DU-qSZ`pQJu4g2V6=VUvaAq?NV+%kiSow%*Q{}=52=kx&VTeXj2 zXZX0g%lgvjuH_oyD+Nl-+bW@SZa`T5k_mDTG`oR%u#sdS?ePy}`>0!(0=B;}#FxM9 z(aUDfDl??4eMGGeyVjy!)#rrvxpksUk_O@4n@~m3QHOD|1#agc@qb30e+7{Ej znsVcw0ZzM+nF?aO^|W5{I0+t5UVgd|$2Za57Pvdw&SM*pdWrlnAXs*Z0B{7{91l2I zO89f0i%Or;-3}=y>p-O&;D5uFwr636!g9}u+^3FP+T zzyuu1QKg>jR4zq{J}O#MKYr@x;Jums?pb+eiNat>SIlFIa(leA0B!@|N7{^531hRAf8>sc7ky&mkSM4yj-7-!a*mW=^g* z)9TiM3zD(>AJVyX7$oe4cS5;O-0}&9G2*}L*`va^fjm$VceyFWsb>8lt=@ctG~?R} z@rN}JBXxwVQ~R$$eem&Z*#A{aeNS(W%Ave#Ye3#>ZQ|qG_dB0%))nd&uf1UsW7j%T zE{fQHw2I5i@N%RkcYq!b3BJPSfBj44LW1Bt`b9nn+ofmX3<-0}8KTo1O)?2chq;6} zT+*MaosN05FX43O*(Pr`{g=?%*9u%LI9nwgdzl6&X9BVk`S*zu24mqs(B{=prj<=$>D z;pVe`a0*M$>`tN?w~W54!Fd82m6TU0)!=Ve2YSypl1ks%A7bqz<+ldAe1d6`T9u-- zh+@h8r^tWnP7*nG{zc5pQxhn|!Whv~0ZJCml~?c~Sj6vO3@fuOa+FaZqFS#766aX! z)$kI{5l+$j5tOfJ&m21N$Oo^Qvo8S%WV}YvS!nr1h;=-i!g9tj4w4t&Z`Tr*v@&D{ zgEyk1UdePKT`+PsH<5+2$&c~-7!FJyx%THHjS}@}&auD_kc>}_`E5B{Dr2n$x4jOBuxk3(7Fk{J_7qn95xd#Lt*Y#2r&5kgMe9-gM^yk<|d63(z!K+H%k>x@+ zckJBZUsUY>UJ<<{3cBNa+kiwhD{Buo9#P1=ru!oF$zft><)~|spc;Cy^R?9912Ba~ z(sOW27;a_8D>m~zXon{tO-83Z?c8aKwphK1`dFh+t!*vI*D~gv1V$bV9$+;8(9|_h z8-Xyt*3aiu61W^Aki+BTQO)AHTTe4^L1eBL;jZ-ywn;3>oJ{sMb0IeOdmf znC;u|3pC9>-v+PA6$_`c`ERde;D!i zjPkDxmPfk1*IYdMyfDAafKs3SOh=eZ{j?o85mlYU5NiDGF#bCpyph6`ZiaQY9M+Mf zEo47{I8mG{fTGm@zBg?S8=lf^OnI4GG%CYkP}pzf&~m&QCnr8UXEjUAblK~hEijWk zAt!Nt{@xevo+M=lG3=;ld8mvCuu0yA^=!Y|vGnqb&s%>7me_)+T)zSz|EVJTG_$%X zj4Nx4kKDj@^zaa5tb&wE)%miIY=ZpxU@Z5`V2P2Ynd#3DfiNp4{($(JFHO78pg1qw zj`nWQaDjPkMKAC5q3&uqr@lSuVzfET|OTWr14N+Bh4gQ*1_sfoI2fj1IWYCIhzwA zXGkY#Gk7f$lX#wMk2$py9Z;g}&{5d6eqhRIf`#$H4L4f2{v*3Z86Qm+_#9KVZ1ypr z^u;Y{!nZ$Netr|s4`o53kXe6gZ=}pTGU9K!tVm>h7ke;!giO%XTMXMMx;IQFY7QHp z4yuxK&FZkZxdkQt>GM9srD=M z^>6T-b)J?_d>=#V0hDq3a4RAlYzU(hGVO~OH2E`3q$o}CJ(4W4yM~ar!9d52GL^H7 zn}*+>3p1t*em^!Bw?%bivFhK!LI3kYTWYAYLEA!z3}28l9O=78sauFywuAGR)H^Cf zT9g_3aQFR2GGUS{$3y_uv&Yxzs@Zx`w{*cnZ}Ivs#6v>!AKQ~@9|>_pa?+F~**6nn z^4Y#7^GgFl2+SoarXc3>)Jy6FE~}WDndd#wwJbiyUlMDAeGy&4^y>q>&y4 zhMX9!?hX58qE1@!chiBV~ddCmPnPyx%>x-kM`&kr>?k|TZPEE zOS*5sw?^7I#;F%$6@jLV;V+88`hEGs!4J3GL}Y@+b_Zx>$E#(Whs2jrYOBu9TXb|9u20>W^y;)7gW83_V`r zdm|M04Ax28zgni`3yK;@f`w2^SeCdavKZn>Su`DanDGv*AiOv(!o536nrRya$tyt; zA~JS7{PRU{br;@GE2yq>35$r~1ib*}1gh%bo1t&X3bnTu>k~q3)wQ4NR@Yv9{6kCJ6_#Z)rPgp5+u)O}XJa9sd#drH9F` zPROC_Vv_i2c_xx%c3PmdosOJvHA|Qk{&L{Ih4m-s>&GDyMa_4M)tJtdOK_~kIitPz zeo68hyz4pa4T|6g+k&W~d-l=0FOsK;6J>{SMVCE?2X$sn+j z{jT{|GB*GGzK1nCCel4qKqd(6R=3^)t%pij4GVd!ztD!;N*oB>x7U6T#7aUIS; zAX1TK-xQPWJQ4Ud=Kvs?T z#opq-LkPa>WQ~`p>0+dN$(LVhS$VckzeGz8*L#*yF>(dmGa2!^Bp-h@S+gj1kL(;_5{=GW=C+7WjcLybHQXuDy$?L)UOM1 zf^IayXP{XP<_fipVHfXn8ioZ_G7EynWiLP|V1a4Q(Nl$?e5~PI;rQ;i>X$pt17#ea zmpXJ(fo{8(5p3L64}5v_{;yH~R)n@!W1bJ5u{Y5gP=kSuWEE_`-m1Db7%5MFn&|>HFn)`*qg%R(c`)?cQ}W zCz|s}=(*fD3GvQj*PVz3xcxbc74;kSf6u-H$>+0a%Yu|T(Wyx=;UZ70+z<>V#!R$AxHf(Z0FUgN*4g>ICVY<(6zGj)e(6$r-v(N4P0@Fn36Piwxy zd$0-!$4kIISg7kLGSA(Zf_rIO-x99r(LXPULk*Z1(LuMA9r=#<+JY9w_I7InfF6ZS zS8jAZDwW89TLp(#$RtD(StoKF9wV}@>5D4gK&Roo5~|GCD!6Fzap0=^d!OX|^Umm# zu|+%kXJ$Pb&`wRC5(Q1fOro1&fai(37MeoTU}>3F$wzz;Lo&J$SBpHvhsYC@1FZRu z7v3)p;x8SC<;PZU=I(SualSuR0R}axhk~_2`_FaP66p||)!kJfKa#6(x9B&Pv>}Ew zS!tw1VN2FH?!CWN6|!hsd?g#R#@{KtW@FGmGEa~>Q}%u0i=-N~U|NWo@W^*)x$YSr zIz(p^L_?~%3D)Oc!qjgs)v%#tz^XtdPlU56n938j4<1mFkG>5mIH>UsksHUd&w?~& zZR1~Cb%o@n_->|3e&LA#WUr1=LLKseq={%(p`}*tMDs~0&!xpe%?}UD6ejdkYpV*~ zQo5f&!>^NVO}qqMaGtBMSXFX+tY(c4rWb1=+&UC1qBa>1Q#x;5nU5Q2lMSW#8?5)I zt9Tq?K!CS9FiS&=tk7#1QRnCkG`j*acv-5(wEJj`+FcbVYSy5Ev$3(J!x!58y;m12 z79NB>Dr4O0A3ncV2$abp)Tv;V{RL*{TMmMTxepegz4|c!5at7NixC|wnSX6x)AZ7% zaQk%N$f9n`Y7mY)hUqaVx-sT7ryj0>ZL7~E93_34TtzgOniQ>g%OPB|B&GX5F1BmH zk>31ODE+ADn-fz~w-@IQ$kgR;#ZvQHAOp90=mrDrkZ{=pR7f^$n4eZz4iU`9C_eF- z#}eNs@drI1vht5aUxyjTZqk!dLP?^{j!8a$_zh@jO2979kHuansNprbFw=4aqTNZ_ zno*?s@tw}RGp~UtI@G06;fEN0wmXF>YXhd)Twi9Bxs13&SgN%SwS3%$DzG&%NTBC8 zKvUm=eqJOsxO3pQYQiIx4Tv zp|Ufy|BV^Wn+tVAoeZ(>>G1++vS{7}ux8;ttj(%~j2xpF*OkZ4Y1!vUOh4gD#uq9d z6MM|fns52MvD6>tDqdrNI1b5t%})!`fEkv)*u#WG2;Wmel}(qcE!3IU-t=QJ8AM$7 zz$RwH5T&-(+A)pdT|AKVMlbFcYLfG%%hc=dis&ljQ@d`g( zf);0GYb@_UTi6Xv4cCLQ#g6-9>~|Q3u!NZ2yJwO{5q1#)e`=2AYbRhXj1E)l>i)gU ztd`Y{y%PN^~$a?zeqsypdSX=cDeD zyN&RVG)d2Ly3g1h9|o5-LdccLW<26xxq9!!WB1c2k@j0R5YNnXay8o9Xy!r2|yZ;TtD52*)u zw`Es#YPy)$5s>4N{%6Ds48aSh(GHzBD)Y6A0q1YY$Rqc`{!z{?>FuQT0PU zlnC2P(NP@dDd}&5Lh^h6^;okB_qw01C<#n2H@6#&I*mrW&Y4}vIDLE3c=?DS)0&C?U6(NGV`j?((ij*|Z5rFO(q zyTs^;!4f#~xx?Yo6^uEm8%yH31+IFVo!acVRh+`2!Nb#4{1H{qj_92Ey&8FzFQDiM z2OUGyz{gUo`nfra$HrG+i{k&wOz;YYM7)h zCo8b>qj&Y}86O`iXl)9@X0-HsN2yWcFRi`&lb3y>3yzBvKP8iadt;ZsEmch5#+?%0 z{8o#%hwPi0V(TR;K`kB50K|C^_7c3;L)0Xj=pF6gdBD@3L&l5L9Cr^UP*Ce|{ByVS zqmvJ4(qVU!Ejw{r%tYcY5-W#TmLv8Ua+L-^Ik3RfaHnChQAs!v2@?s2!v}w-5kXCa`jsKidbN(${`>$Ue dAdcE*yLVp<=SpVwbPxQ~P|;B?QM_{R{{Siad}ROt literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.7/contributions/img-for-tencent/1d53b0115644d43657c2a5ece805c9b4.png b/site/content/docs/v1.7/contributions/img-for-tencent/1d53b0115644d43657c2a5ece805c9b4.png new file mode 100644 index 0000000000000000000000000000000000000000..57de0cde0607257ac55de3ef30d834db31709587 GIT binary patch literal 74478 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 aL$88LY}It)7mk;}9|c(znS7~dKK~Cm_kk?{ literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.7/contributions/img-for-tencent/69194157ccd5e377d1e7d914fd8c0336.png b/site/content/docs/v1.7/contributions/img-for-tencent/69194157ccd5e377d1e7d914fd8c0336.png new file mode 100644 index 0000000000000000000000000000000000000000..f363eb1a78073b9a07ed91b046293d5f7224a7c8 GIT binary patch literal 32817 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∓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 literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.7/contributions/img-for-tencent/ceaca9ce6bc92bdce987c63d2fe71561.png b/site/content/docs/v1.7/contributions/img-for-tencent/ceaca9ce6bc92bdce987c63d2fe71561.png new file mode 100644 index 0000000000000000000000000000000000000000..36805831bbe57b7118c9bc47bed1a7a7306c4f2c GIT binary patch literal 292269 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

  • bHDT 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%0D84wI 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 !1-`yjuGc@{h+{c5~#C8bSt>zP{ra{|Pn| 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

    ` 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π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 CkT-R3B0ucAz=veF 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 XSX6k&spaN3z>m7J&Z8nli?{y=vTPGg literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.7/contributions/img-for-tencent/effe8a0a7ce3aa8e422db00bfdddc375.png b/site/content/docs/v1.7/contributions/img-for-tencent/effe8a0a7ce3aa8e422db00bfdddc375.png new file mode 100644 index 0000000000000000000000000000000000000000..28e1bbaad3ae0635df7e394f48b1a1836754d514 GIT binary patch literal 85131 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%0AmC`-4_;Qkg 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 E06hp8s{jB1 literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.7/contributions/img-for-tencent/f0fff5228527edc72d6e71a50d5dc966.png b/site/content/docs/v1.7/contributions/img-for-tencent/f0fff5228527edc72d6e71a50d5dc966.png new file mode 100644 index 0000000000000000000000000000000000000000..b732cf25281e349ac940bafcad1d7d5cdbb7a915 GIT binary patch literal 49558 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 PfFA`JRp}B*1Hb.tar.gz -C /dir/to/extract/to + ``` + + The directory you extracted is called the "Velero directory" in subsequent steps. + +1. Move the `velero` binary from the Velero directory to somewhere in your PATH. + +### MacOS Installation + +On Mac, you can use [HomeBrew](https://brew.sh) to install the `velero` client: + +```bash +brew install velero +``` + +## Set up server + +These instructions start the Velero server and a Minio instance that is accessible from within the cluster only. See [Expose Minio outside your cluster][31] for information about configuring your cluster for outside access to Minio. Outside access is required to access logs and run `velero describe` commands. + +1. Create a Velero-specific credentials file (`credentials-velero`) in your local directory: + + ``` + [default] + aws_access_key_id = minio + aws_secret_access_key = minio123 + ``` + +1. Start the server and the local storage service. In the Velero directory, run: + + ``` + kubectl apply -f examples/minio/00-minio-deployment.yaml + ``` + _Note_: The example Minio yaml provided uses "empty dir". Your node needs to have enough space available to store the + data being backed up plus 1GB of free space. If the node does not have enough space, you can modify the example yaml to + use a Persistent Volume instead of "empty dir" + + ``` + velero install \ + --provider aws \ + --plugins velero/velero-plugin-for-aws:v1.2.1 \ + --bucket velero \ + --secret-file ./credentials-velero \ + --use-volume-snapshots=false \ + --backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://minio.velero.svc:9000 + ``` + + This example assumes that it is running within a local cluster without a volume provider capable of snapshots, so no `VolumeSnapshotLocation` is created (`--use-volume-snapshots=false`). You may need to update AWS plugin version to one that is [compatible](https://github.com/vmware-tanzu/velero-plugin-for-aws#compatibility) with the version of Velero you are installing. + + Additionally, you can specify `--use-restic` to enable restic support, and `--wait` to wait for the deployment to be ready. + + +1. Deploy the example nginx application: + + ```bash + kubectl apply -f examples/nginx-app/base.yaml + ``` + +1. Check to see that both the Velero and nginx deployments are successfully created: + + ``` + kubectl get deployments -l component=velero --namespace=velero + kubectl get deployments --namespace=nginx-example + ``` + +## Back up + +1. Create a backup for any object that matches the `app=nginx` label selector: + + ``` + velero backup create nginx-backup --selector app=nginx + ``` + + Alternatively if you want to backup all objects *except* those matching the label `backup=ignore`: + + ``` + velero backup create nginx-backup --selector 'backup notin (ignore)' + ``` + +1. (Optional) Create regularly scheduled backups based on a cron expression using the `app=nginx` label selector: + + ``` + velero schedule create nginx-daily --schedule="0 1 * * *" --selector app=nginx + ``` + + Alternatively, you can use some non-standard shorthand cron expressions: + + ``` + velero schedule create nginx-daily --schedule="@daily" --selector app=nginx + ``` + + See the [cron package's documentation][30] for more usage examples. + +1. Simulate a disaster: + + ``` + kubectl delete namespace nginx-example + ``` + +1. To check that the nginx deployment and service are gone, run: + + ``` + kubectl get deployments --namespace=nginx-example + kubectl get services --namespace=nginx-example + kubectl get namespace/nginx-example + ``` + + You should get no results. + + NOTE: You might need to wait for a few minutes for the namespace to be fully cleaned up. + +## Restore + +1. Run: + + ``` + velero restore create --from-backup nginx-backup + ``` + +1. Run: + + ``` + velero restore get + ``` + + After the restore finishes, the output looks like the following: + + ``` + NAME BACKUP STATUS WARNINGS ERRORS CREATED SELECTOR + nginx-backup-20170727200524 nginx-backup Completed 0 0 2017-07-27 20:05:24 +0000 UTC + ``` + +NOTE: The restore can take a few moments to finish. During this time, the `STATUS` column reads `InProgress`. + +After a successful restore, the `STATUS` column is `Completed`, and `WARNINGS` and `ERRORS` are 0. All objects in the `nginx-example` namespace should be just as they were before you deleted them. + +If there are errors or warnings, you can look at them in detail: + +``` +velero restore describe +``` + +For more information, see [the debugging information][18]. + +## Clean up + +If you want to delete any backups you created, including data in object storage and persistent +volume snapshots, you can run: + +``` +velero backup delete BACKUP_NAME +``` + +This asks the Velero server to delete all backup data associated with `BACKUP_NAME`. You need to do +this for each backup you want to permanently delete. A future version of Velero will allow you to +delete multiple backups by name or label selector. + +Once fully removed, the backup is no longer visible when you run: + +``` +velero backup get BACKUP_NAME +``` + +To completely uninstall Velero, minio, and the nginx example app from your Kubernetes cluster: + +``` +kubectl delete namespace/velero clusterrolebinding/velero +kubectl delete crds -l component=velero +kubectl delete -f examples/nginx-app/base.yaml +``` + +## Expose Minio outside your cluster with a Service + +When you run commands to get logs or describe a backup, the Velero server generates a pre-signed URL to download the requested items. To access these URLs from outside the cluster -- that is, from your Velero client -- you need to make Minio available outside the cluster. You can: + +- Change the Minio Service type from `ClusterIP` to `NodePort`. +- Set up Ingress for your cluster, keeping Minio Service type `ClusterIP`. + +You can also specify a `publicUrl` config field for the pre-signed URL in your backup storage location config. + +### Expose Minio with Service of type NodePort + +The Minio deployment by default specifies a Service of type `ClusterIP`. You can change this to `NodePort` to easily expose a cluster service externally if you can reach the node from your Velero client. + +You must also get the Minio URL, which you can then specify as the value of the `publicUrl` field in your backup storage location config. + +1. In `examples/minio/00-minio-deployment.yaml`, change the value of Service `spec.type` from `ClusterIP` to `NodePort`. + +1. Get the Minio URL: + + - if you're running Minikube: + + ```shell + minikube service minio --namespace=velero --url + ``` + + - in any other environment: + 1. Get the value of an external IP address or DNS name of any node in your cluster. You must be able to reach this address from the Velero client. + 1. Append the value of the NodePort to get a complete URL. You can get this value by running: + + ```shell + kubectl -n velero get svc/minio -o jsonpath='{.spec.ports[0].nodePort}' + ``` + +1. Edit your `BackupStorageLocation` YAML, adding `publicUrl: ` as a field under `spec.config`. You must include the `http://` or `https://` prefix. + +## Accessing logs with an HTTPS endpoint + +If you're using Minio with HTTPS, you may see unintelligible text in the output of `velero describe`, or `velero logs` commands. + +To fix this, you can add a public URL to the `BackupStorageLocation`. + +In a terminal, run the following: + +```shell +kubectl patch -n velero backupstoragelocation default --type merge -p '{"spec":{"config":{"publicUrl":"https://:9000"}}}' +``` + +If your certificate is self-signed, see the [documentation on self-signed certificates][32]. + +## Expose Minio outside your cluster with Kubernetes in Docker (KinD): + +Kubernetes in Docker does not have support for NodePort services (see [this issue](https://github.com/kubernetes-sigs/kind/issues/99)). In this case, you can use a port forward to access the Minio bucket. + +In a terminal, run the following: + +```shell +MINIO_POD=$(kubectl get pods -n velero -l component=minio -o jsonpath='{.items[0].metadata.name}') + +kubectl port-forward $MINIO_POD -n velero 9000:9000 +``` + +Then, in another terminal: + +```shell +kubectl edit backupstoragelocation default -n velero +``` + +Add `publicUrl: http://localhost:9000` under the `spec.config` section. + + +### Work with Ingress + +Configuring Ingress for your cluster is out of scope for the Velero documentation. If you have already set up Ingress, however, it makes sense to continue with it while you run the example Velero configuration with Minio. + +In this case: + +1. Keep the Service type as `ClusterIP`. + +1. Edit your `BackupStorageLocation` YAML, adding `publicUrl: ` as a field under `spec.config`. + +[1]: #expose-minio-with-service-of-type-nodeport +[3]: ../customize-installation.md +[17]: ../restic.md +[18]: ../debugging-restores.md +[26]: https://github.com/vmware-tanzu/velero/releases +[30]: https://godoc.org/github.com/robfig/cron +[32]: ../self-signed-certificates.md diff --git a/site/content/docs/v1.7/contributions/oracle-config.md b/site/content/docs/v1.7/contributions/oracle-config.md new file mode 100644 index 000000000..8e2bae095 --- /dev/null +++ b/site/content/docs/v1.7/contributions/oracle-config.md @@ -0,0 +1,248 @@ +--- +title: "Use Oracle Cloud as a Backup Storage Provider for Velero" +layout: docs +--- + +## Introduction + +[Velero](https://velero.io/) is a tool used to backup and migrate Kubernetes applications. Here are the steps to use [Oracle Cloud Object Storage](https://docs.cloud.oracle.com/iaas/Content/Object/Concepts/objectstorageoverview.htm) as a destination for Velero backups. + +1. [Download Velero](#download-velero) +2. [Create A Customer Secret Key](#create-a-customer-secret-key) +3. [Create An Oracle Object Storage Bucket](#create-an-oracle-object-storage-bucket) +4. [Install Velero](#install-velero) +5. [Clean Up](#clean-up) +6. [Examples](#examples) +7. [Additional Reading](#additional-reading) + +## Download Velero + +1. Download the [latest release](https://github.com/vmware-tanzu/velero/releases/) of Velero to your development environment. This includes the `velero` CLI utility and example Kubernetes manifest files. For example: + + ``` + wget https://github.com/vmware-tanzu/velero/releases/download/v1.0.0/velero-v1.0.0-linux-amd64.tar.gz + ``` + + **NOTE:** Its strongly recommend that you use an official release of Velero. The tarballs for each release contain the velero command-line client. The code in the main branch of the Velero repository is under active development and is not guaranteed to be stable! + +2. Untar the release in your `/usr/bin` directory: `tar -xzvf .tar.gz` + + You may choose to rename the directory `velero` for the sake of simplicity: `mv velero-v1.0.0-linux-amd64 velero` + +3. Add it to your PATH: `export PATH=/usr/local/bin/velero:$PATH` + +4. Run `velero` to confirm the CLI has been installed correctly. You should see an output like this: + +``` +$ velero +Velero is a tool for managing disaster recovery, specifically for Kubernetes +cluster resources. It provides a simple, configurable, and operationally robust +way to back up your application state and associated data. + +If you're familiar with kubectl, Velero supports a similar model, allowing you to +execute commands such as 'velero get backup' and 'velero create schedule'. The same +operations can also be performed as 'velero backup get' and 'velero schedule create'. + +Usage: + velero [command] +``` + + + +## Create A Customer Secret Key + +1. Oracle Object Storage provides an API to enable interoperability with Amazon S3. To use this Amazon S3 Compatibility API, you need to generate the signing key required to authenticate with Amazon S3. This special signing key is an Access Key/Secret Key pair. Follow these steps to [create a Customer Secret Key](https://docs.cloud.oracle.com/iaas/Content/Identity/Tasks/managingcredentials.htm#To4). Refer to this link for more information about [Working with Customer Secret Keys](https://docs.cloud.oracle.com/iaas/Content/Identity/Tasks/managingcredentials.htm#s3). + +2. Create a Velero credentials file with your Customer Secret Key: + + ``` + $ vi credentials-velero + + [default] + aws_access_key_id=bae031188893d1eb83719648790ac850b76c9441 + aws_secret_access_key=MmY9heKrWiNVCSZQ2Mf5XTJ6Ys93Bw2d2D6NMSTXZlk= + ``` + + + +## Create An Oracle Object Storage Bucket + +Create an Oracle Cloud Object Storage bucket called `velero` in the root compartment of your Oracle Cloud tenancy. Refer to this page for [more information about creating a bucket with Object Storage](https://docs.cloud.oracle.com/iaas/Content/Object/Tasks/managingbuckets.htm#usingconsole). + + + +## Install Velero + +You will need the following information to install Velero into your Kubernetes cluster with Oracle Object Storage as the Backup Storage provider: + +``` +velero install \ + --provider [provider name] \ + --bucket [bucket name] \ + --prefix [tenancy name] \ + --use-volume-snapshots=false \ + --secret-file [secret file location] \ + --backup-location-config region=[region],s3ForcePathStyle="true",s3Url=[storage API endpoint] +``` + +- `--provider` This example uses the S3-compatible API, so use `aws` as the provider. +- `--bucket` The name of the bucket created in Oracle Object Storage - in our case this is named `velero`. +- ` --prefix` The name of your Oracle Cloud tenancy - in our case this is named `oracle-cloudnative`. +- `--use-volume-snapshots=false` Velero does not have a volume snapshot plugin for Oracle Cloud, so creating volume snapshots is disabled. +- `--secret-file` The path to your `credentials-velero` file. +- `--backup-location-config` The path to your Oracle Object Storage bucket. This consists of your `region` which corresponds to your Oracle Cloud region name ([List of Oracle Cloud Regions](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/regions.htm?Highlight=regions)) and the `s3Url`, the S3-compatible API endpoint for Oracle Object Storage based on your region: `https://oracle-cloudnative.compat.objectstorage.[region name].oraclecloud.com` + +For example: + +``` +velero install \ + --provider aws \ + --bucket velero \ + --prefix oracle-cloudnative \ + --use-volume-snapshots=false \ + --secret-file /Users/mboxell/bin/velero/credentials-velero \ + --backup-location-config region=us-phoenix-1,s3ForcePathStyle="true",s3Url=https://oracle-cloudnative.compat.objectstorage.us-phoenix-1.oraclecloud.com +``` + +This will create a `velero` namespace in your cluster along with a number of CRDs, a ClusterRoleBinding, ServiceAccount, Secret, and Deployment for Velero. If your pod fails to successfully provision, you can troubleshoot your installation by running: `kubectl logs [velero pod name]`. + + + +## Clean Up + +To remove Velero from your environment, delete the namespace, ClusterRoleBinding, ServiceAccount, Secret, and Deployment and delete the CRDs, run: + +``` +kubectl delete namespace/velero clusterrolebinding/velero +kubectl delete crds -l component=velero +``` + +This will remove all resources created by `velero install`. + + + +## Examples + +After creating the Velero server in your cluster, try this example: + +### Basic example (without PersistentVolumes) + +1. Start the sample nginx app: `kubectl apply -f examples/nginx-app/base.yaml` + + This will create an `nginx-example` namespace with a `nginx-deployment` deployment, and `my-nginx` service. + + ``` + $ kubectl apply -f examples/nginx-app/base.yaml + namespace/nginx-example created + deployment.apps/nginx-deployment created + service/my-nginx created + ``` + + You can see the created resources by running `kubectl get all` + + ``` + $ kubectl get all + NAME READY STATUS RESTARTS AGE + pod/nginx-deployment-67594d6bf6-4296p 1/1 Running 0 20s + pod/nginx-deployment-67594d6bf6-f9r5s 1/1 Running 0 20s + + NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE + service/my-nginx LoadBalancer 10.96.69.166 80:31859/TCP 21s + + NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE + deployment.apps/nginx-deployment 2 2 2 2 21s + + NAME DESIRED CURRENT READY AGE + replicaset.apps/nginx-deployment-67594d6bf6 2 2 2 21s + ``` + +2. Create a backup: `velero backup create nginx-backup --include-namespaces nginx-example` + + ``` + $ velero backup create nginx-backup --include-namespaces nginx-example + Backup request "nginx-backup" submitted successfully. + Run `velero backup describe nginx-backup` or `velero backup logs nginx-backup` for more details. + ``` + + At this point you can navigate to appropriate bucket, called `velero`, in the Oracle Cloud Object Storage console to see the resources backed up using Velero. + +3. Simulate a disaster by deleting the `nginx-example` namespace: `kubectl delete namespaces nginx-example` + + ``` + $ kubectl delete namespaces nginx-example + namespace "nginx-example" deleted + ``` + + Wait for the namespace to be deleted. To check that the nginx deployment, service, and namespace are gone, run: + + ``` + kubectl get deployments --namespace=nginx-example + kubectl get services --namespace=nginx-example + kubectl get namespace/nginx-example + ``` + + This should return: `No resources found.` + +4. Restore your lost resources: `velero restore create --from-backup nginx-backup` + + ``` + $ velero restore create --from-backup nginx-backup + Restore request "nginx-backup-20190604102710" submitted successfully. + Run `velero restore describe nginx-backup-20190604102710` or `velero restore logs nginx-backup-20190604102710` for more details. + ``` + + Running `kubectl get namespaces` will show that the `nginx-example` namespace has been restored along with its contents. + +5. Run: `velero restore get` to view the list of restored resources. After the restore finishes, the output looks like the following: + + ``` + $ velero restore get + NAME BACKUP STATUS WARNINGS ERRORS CREATED SELECTOR + nginx-backup-20190604104249 nginx-backup Completed 0 0 2019-06-04 10:42:39 -0700 PDT + ``` + + NOTE: The restore can take a few moments to finish. During this time, the `STATUS` column reads `InProgress`. + + After a successful restore, the `STATUS` column shows `Completed`, and `WARNINGS` and `ERRORS` will show `0`. All objects in the `nginx-example` namespace should be just as they were before you deleted them. + + If there are errors or warnings, for instance if the `STATUS` column displays `FAILED` instead of `InProgress`, you can look at them in detail with `velero restore describe ` + + +6. Clean up the environment with `kubectl delete -f examples/nginx-app/base.yaml` + + ``` + $ kubectl delete -f examples/nginx-app/base.yaml + namespace "nginx-example" deleted + deployment.apps "nginx-deployment" deleted + service "my-nginx" deleted + ``` + + If you want to delete any backups you created, including data in object storage, you can run: `velero backup delete BACKUP_NAME` + + ``` + $ velero backup delete nginx-backup + Are you sure you want to continue (Y/N)? Y + Request to delete backup "nginx-backup" submitted successfully. + The backup will be fully deleted after all associated data (disk snapshots, backup files, restores) are removed. + ``` + + This asks the Velero server to delete all backup data associated with `BACKUP_NAME`. You need to do this for each backup you want to permanently delete. A future version of Velero will allow you to delete multiple backups by name or label selector. + + Once fully removed, the backup is no longer visible when you run: `velero backup get BACKUP_NAME` or more generally `velero backup get`: + + ``` + $ velero backup get nginx-backup + An error occurred: backups.velero.io "nginx-backup" not found + ``` + + ``` + $ velero backup get + NAME STATUS CREATED EXPIRES STORAGE LOCATION SELECTOR + ``` + + + +## Additional Reading + +* [Official Velero Documentation](https://velero.io/docs/v1.7/) +* [Oracle Cloud Infrastructure Documentation](https://docs.cloud.oracle.com/) diff --git a/site/content/docs/v1.7/contributions/tencent-config.md b/site/content/docs/v1.7/contributions/tencent-config.md new file mode 100644 index 000000000..50edfce49 --- /dev/null +++ b/site/content/docs/v1.7/contributions/tencent-config.md @@ -0,0 +1,168 @@ +--- +title: "Use Tencent Cloud Object Storage as Velero's storage destination." +layout: docs +--- + + +You can deploy Velero on Tencent [TKE](https://cloud.tencent.com/document/product/457), or an other Kubernetes cluster, and use Tencent Cloud Object Store as a destination for Velero’s backups. + + +## Prerequisites + +- Registered [Tencent Cloud Account](https://cloud.tencent.com/register). +- [Tencent Cloud COS](https://console.cloud.tencent.com/cos) service, referred to as COS, has been launched +- A Kubernetes cluster has been created, cluster version v1.12 or later, and the cluster can use DNS and Internet services normally. If you need to create a TKE cluster, refer to the Tencent [create a cluster](https://cloud.tencent.com/document/product/457/32189) documentation. + +## Create a Tencent Cloud COS bucket + +Create an object bucket for Velero to store backups in the Tencent Cloud COS console. For how to create, please refer to Tencent Cloud COS [Create a bucket](https://cloud.tencent.com/document/product/436/13309) usage instructions. + +Set access to the bucket through the object storage console, the bucket needs to be **read** and **written**, so the account is granted data reading, data writing permissions. For how to configure, see the [permission access settings](https://cloud.tencent.com/document/product/436/13315.E5.8D.95.E4.B8.AA.E6.8E.88.E6.9D.83) Tencent user instructions. + +## Get bucket access credentials + +Velero uses an AWS S3-compatible API to access Tencent Cloud COS storage, which requires authentication using a pair of access key IDs and key-created signatures. + +In the S3 API parameter, the "access_key_id" field is the access key ID and the "secret_access_key" field is the key. + +In the [Tencent Cloud Access Management Console](https://console.cloud.tencent.com/cam/capi), Create and acquire Tencent Cloud Keys "SecretId" and "SecretKey" for COS authorized account. **Where the "SecretId" value corresponds to the value of S3 API parameter "access_key_id" field, the "SecretKey" value corresponds to the value of S3 API parameter "secret_access_key" field**. + +Create the credential profile "credentials-velero" required by Velero in the local directory based on the above correspondence: + +```bash +[default] +aws_access_key_id= +aws_secret_access_key= +``` + +## Install Velero Resources + +You need to install the Velero CLI first, see [Install the CLI](https://velero.io/docs/v1.5/basic-install/#install-the-cli) for how to install. + +Follow the Velero installation command below to create velero and restic workloads and other necessary resource objects. + +```bash +velero install --provider aws --plugins velero/velero-plugin-for-aws:v1.1.0 --bucket \ +--secret-file ./credentials-velero \ +--use-restic \ +--default-volumes-to-restic \ +--backup-location-config \ +region=ap-guangzhou,s3ForcePathStyle="true",s3Url=https://cos.ap-guangzhou.myqcloud.com +``` + +Description of the parameters: + +- `--provider`: Declares the type of plug-in provided by "aws". + +- `--plugins`: Use the AWS S3 compatible API plug-in "velero-plugin-for-aws". + +- `--bucket`: The bucket name created at Tencent Cloud COS. + +- `--secret-file`: Access tencent cloud COS access credential file for the "credentials-velero" credential file created above. + +- `--use-restic`: Back up and restore persistent volume data using the open source free backup tool [restic](https://github.com/restic/restic). However, 'hostPath' volumes are not supported, see the [restic limit](https://velero.io/docs/v1.5/restic/#limitations) for details), an integration that complements Velero's backup capabilities and is recommended to be turned on. + +- `--default-volumes-to-restic`: Enable the use of Restic to back up all Pod volumes, provided that the `--use-restic`parameter needs to be turned on. + +- `--backup-location-config`: Back up the bucket access-related configuration: + + `region`: Tencent cloud COS bucket area, for example, if the created region is Guangzhou, the Region parameter value is "ap-guangzhou". + + `s3ForcePathStyle`: Use the S3 file path format. + + `s3Url`: Tencent Cloud COS-compatible S3 API access address,Note that instead of creating a COS bucket for public network access domain name, you must use a format of "https://cos.`region`.myqcloud.com" URL, for example, if the region is Guangzhou, the parameter value is "https://cos.ap-guangzhou.myqcloud.com.". + +There are other installation parameters that can be viewed using `velero install --help`, such as setting `--use-volume-snapshots-false` to close the storage volume data snapshot backup if you do not want to back up the storage volume data. + +After executing the installation commands above, the installation process looks like this: + +{{< figure src="/docs/main/contributions/img-for-tencent/9015313121ed7987558c88081b052574.png" width="100%">}} + +After the installation command is complete, wait for the velero and restic workloads to be ready to see if the configured storage location is available. + +Executing the 'velero backup-location get' command to view the storage location status and display "Available" indicates that access to Tencent Cloud COS is OK, as shown in the following image: + +{{< figure src="/docs/main/contributions/img-for-tencent/69194157ccd5e377d1e7d914fd8c0336.png" width="100%">}} + +At this point, The installation using Tencent Cloud COS as Velero storage location is complete, If you need more installation information about Velero, You can see the official website [Velero documentation](https://velero.io/docs/) . + +## Velero backup and restore example + +In the cluster, use the helm tool to create a minio test service with a persistent volume, and the minio installation method can be found in the [minio installation](https://github.com/minio/charts), in which case can bound a load balancer for the minio service to access the management page using a public address in the browser. + +{{< figure src="/docs/main/contributions/img-for-tencent/f0fff5228527edc72d6e71a50d5dc966.png" width="100%">}} + +Sign in to the minio web management page and upload some image data for the test, as shown below: + +{{< figure src="/docs/main/contributions/img-for-tencent/e932223585c0b19891cc085ad7f438e1.png" width="100%">}} + +With Velero Backup, you can back up all objects in the cluster directly, or filter objects by type, namespace, and/or label. This example uses the following command to back up all resources under the 'default' namespace. + +``` +velero backup create default-backup --include-namespaces +``` + +Use the `velero backup get` command to see if the backup task is complete, and when the backup task status is "Completed," the backup task is completed without any errors, as shown in the following below: + +{{< figure src="/docs/main/contributions/img-for-tencent/eb2bbabae48b188748f5278bedf177f1.png" width="100%">}} + +At this point delete all of MinIO's resources, including its PVC persistence volume, as shown below:: + +{{< figure src="/docs/main/contributions/img-for-tencent/15ccaacf00640a04ae29ceed4c86195b.png" width="100%">}} + +After deleting the MinIO resource, use your backup to restore the deleted MinIO resource, and temporarily update the backup storage location to read-only mode (this prevents the backup object from being created or deleted in the backup storage location during the restore process):: + +```bash +kubectl patch backupstoragelocation default --namespace velero \ + --type merge \ + --patch '{"spec":{"accessMode":"ReadOnly"}}' + +``` + +Modifying access to Velero's storage location is "ReadOnly," as shown in the following image: + +{{< figure src="/docs/main/contributions/img-for-tencent/e8c2ab4e5e31d1370c62fad25059a8a8.png" width="100%">}} + +Now use the backup "default-backup" that Velero just created to create the restore task: + +```bash +velero restore create --from-backup +``` + +You can also use `velero restore get` to see the status of the restore task, and if the restore status is "Completed," the restore task is complete, as shown in the following image: + +{{< figure src="/docs/main/contributions/img-for-tencent/effe8a0a7ce3aa8e422db00bfdddc375.png" width="100%">}} + +When the restore is complete, you can see that the previously deleted minio-related resources have been restored successfully, as shown in the following image: + +{{< figure src="/docs/main/contributions/img-for-tencent/1d53b0115644d43657c2a5ece805c9b4.png" width="100%">}} + +Log in to minio's management page on your browser and you can see that the previously uploaded picture data is still there, indicating that the persistent volume's data was successfully restored, as shown below: + +{{< figure src="/docs/main/contributions/img-for-tencent/ceaca9ce6bc92bdce987c63d2fe71561.png" width="100%">}} + +When the restore is complete, don't forget to restore the backup storage location to read and write mode so that the next backup task can be used successfully: + +```bash +kubectl patch backupstoragelocation default --namespace velero \ + --type merge \ + --patch '{"spec":{"accessMode":"ReadWrite"}}' +``` + + + +## Uninstall Velero Resources + +To uninstall velero resources in a cluster, you can do so using the following command: + +```bash +kubectl delete namespace/velero clusterrolebinding/velero +kubectl delete crds -l component=velero +``` + + + +## Additional Reading + +- [Official Velero Documentation](https://velero.io/docs/) +- [Tencent Cloud Documentation](https://cloud.tencent.com/document/product) diff --git a/site/content/docs/v1.7/csi.md b/site/content/docs/v1.7/csi.md new file mode 100644 index 000000000..49f4f77e9 --- /dev/null +++ b/site/content/docs/v1.7/csi.md @@ -0,0 +1,77 @@ +--- +title: "Container Storage Interface Snapshot Support in Velero" +layout: docs +--- + +_This feature is under development. Documentation may not be up-to-date and features may not work as expected._ + +Integrating Container Storage Interface (CSI) snapshot support into Velero enables Velero to backup and restore CSI-backed volumes using the [Kubernetes CSI Snapshot Beta APIs](https://kubernetes.io/docs/concepts/storage/volume-snapshots/). + +By supporting CSI snapshot APIs, Velero can support any volume provider that has a CSI driver, without requiring a Velero-specific plugin to be available. + +## Prerequisites + +The following are the prerequisites for using Velero to take Container Storage Interface (CSI) snapshots: + + 1. The cluster is Kubernetes version 1.17 or greater. + 1. The cluster is running a CSI driver capable of support volume snapshots at the [v1beta1 API level](https://kubernetes.io/blog/2019/12/09/kubernetes-1-17-feature-cis-volume-snapshot-beta/). + 1. When restoring CSI volumesnapshots across clusters, the name of the CSI driver in the destination cluster is the same as that on the source cluster to ensure cross cluster portability of CSI volumesnapshots + +## Installing Velero with CSI support + +Ensure that the Velero server is running with the `EnableCSI` feature flag. See [Enabling Features][1] for more information. +Also, the Velero [CSI plugin][2] ([Docker Hub][3]) is necessary to integrate with the CSI volume snapshot APIs. + +Both of these can be added with the `velero install` command. + +```bash +velero install \ +--features=EnableCSI \ +--plugins=,velero/velero-plugin-for-csi:v0.1.0 \ +... +``` + +To include the status of CSI objects associated with a Velero backup in `velero backup describe` output, run `velero client config set features=EnableCSI`. +See [Enabling Features][1] for more information about managing client-side feature flags. + +## Implementation Choices + +This section documents some of the choices made during implementation of the Velero [CSI plugin][2]: + +1. Volumesnapshots created by the plugin will be retained only for the lifetime of the backup even if the `DeletionPolicy` on the volumesnapshotclass is set to `Retain`. To accomplish this, during deletion of the backup the prior to deleting the volumesnapshot, volumesnapshotcontent object will be patched to set its `DeletionPolicy` to `Delete`. Thus deleting volumesnapshot object will result in cascade delete of the volumesnapshotcontent and the snapshot in the storage provider. +1. Volumesnapshotcontent objects created during a velero backup that are dangling, unbound to a volumesnapshot object, will also be discovered, through labels, and deleted on backup deletion. +1. The Velero CSI plugin, to backup CSI backed PVCs, will choose the VolumeSnapshotClass in the cluster that has the same driver name and also has the `velero.io/csi-volumesnapshot-class` label set on it, like +```yaml +velero.io/csi-volumesnapshot-class: "true" +``` + +## Roadmap + +Velero's support level for CSI volume snapshotting will follow upstream Kubernetes support for the feature, and will reach general availability sometime +after volume snapshotting is GA in upstream Kubernetes. Beta support is expected to launch in Velero v1.4. + +## How it Works - Overview + +Velero's CSI support does not rely on the Velero VolumeSnapshotter plugin interface. + +Instead, Velero uses a collection of BackupItemAction plugins that act first against PersistentVolumeClaims. + +When this BackupItemAction sees PersistentVolumeClaims pointing to a PersistentVolume backed by a CSI driver, it will choose the VolumeSnapshotClass with the same driver name that has the `velero.io/csi-volumesnapshot-class` label to create a CSI VolumeSnapshot object with the PersistentVolumeClaim as a source. +This VolumeSnapshot object resides in the same namespace as the PersistentVolumeClaim that was used as a source. + +From there, the CSI external-snapshotter controller will see the VolumeSnapshot and create a VolumeSnapshotContent object, a cluster-scoped resource that will point to the actual, disk-based snapshot in the storage system. +The external-snapshotter plugin will call the CSI driver's snapshot method, and the driver will call the storage system's APIs to generate the snapshot. +Once an ID is generated and the storage system marks the snapshot as usable for restore, the VolumeSnapshotContent object will be updated with a `status.snapshotHandle` and the `status.readyToUse` field will be set. + +Velero will include the generated VolumeSnapshot and VolumeSnapshotContent objects in the backup tarball, as well as upload all VolumeSnapshots and VolumeSnapshotContents objects in a JSON file to the object storage system. +When Velero synchronizes backups into a new cluster, VolumeSnapshotContent objects will be synced into the cluster as well, so that Velero can manage backup expiration appropriately. + +The `DeletionPolicy` on the VolumeSnapshotContent will be the same as the `DeletionPolicy` on the VolumeSnapshotClass that was used to create the VolumeSnapshot. Setting a `DeletionPolicy` of `Retain` on the VolumeSnapshotClass will preserve the volume snapshot in the storage system for the lifetime of the Velero backup and will prevent the deletion of the volume snapshot, in the storage system, in the event of a disaster where the namespace with the VolumeSnapshot object may be lost. + +When the Velero backup expires, the VolumeSnapshot objects will be deleted and the VolumeSnapshotContent objects will be updated to have a `DeletionPolicy` of `Delete`, to free space on the storage system. + +For more details on how each plugin works, see the [CSI plugin repo][2]'s documentation. + +[1]: customize-installation.md#enable-server-side-features +[2]: https://github.com/vmware-tanzu/velero-plugin-for-csi/ +[3]: https://hub.docker.com/repository/docker/velero/velero-plugin-for-csi diff --git a/site/content/docs/v1.7/custom-plugins.md b/site/content/docs/v1.7/custom-plugins.md new file mode 100644 index 000000000..dbb82d5a3 --- /dev/null +++ b/site/content/docs/v1.7/custom-plugins.md @@ -0,0 +1,117 @@ +--- +title: "Plugins" +layout: docs +--- + +Velero has a plugin architecture that allows users to add their own custom functionality to Velero backups & restores without having to modify/recompile the core Velero binary. To add custom functionality, users simply create their own binary containing implementations of Velero's plugin kinds (described below), plus a small amount of boilerplate code to expose the plugin implementations to Velero. This binary is added to a container image that serves as an init container for the Velero server pod and copies the binary into a shared emptyDir volume for the Velero server to access. + +Multiple plugins, of any type, can be implemented in this binary. + +A fully-functional [sample plugin repository][1] is provided to serve as a convenient starting point for plugin authors. + +## Plugin Naming + +A plugin is identified by a prefix + name. + +**Note: Please don't use `velero.io` as the prefix for a plugin not supported by the Velero team.** The prefix should help users identify the entity developing the plugin, so please use a prefix that identify yourself. + +Whenever you define a Backup Storage Location or Volume Snapshot Location, this full name will be the value for the `provider` specification. + +For example: `oracle.io/oracle`. + +``` +apiVersion: velero.io/v1 +kind: BackupStorageLocation +spec: + provider: oracle.io/oracle +``` + +``` +apiVersion: velero.io/v1 +kind: VolumeSnapshotLocation +spec: + provider: oracle.io/oracle +``` + +When naming your plugin, keep in mind that the full name needs to conform to these rules: +- have two parts, prefix + name, separated by '/' +- none of the above parts can be empty +- the prefix is a valid DNS subdomain name +- a plugin with the same prefix + name cannot not already exist + +### Some examples: + +``` +- example.io/azure +- 1.2.3.4/5678 +- example-with-dash.io/azure +``` + +You will need to give your plugin(s) the full name when registering them by calling the appropriate `RegisterX` function: + +## Plugin Kinds + +Velero supports the following kinds of plugins: + +- **Object Store** - persists and retrieves backups, backup logs and restore logs +- **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 + +## Plugin Logging + +Velero provides a [logger][2] that can be used by plugins to log structured information to the main Velero server log or +per-backup/restore logs. It also passes a `--log-level` flag to each plugin binary, whose value is the value of the same +flag from the main Velero process. This means that if you turn on debug logging for the Velero server via `--log-level=debug`, +plugins will also emit debug-level logs. See the [sample repository][1] for an example of how to use the logger within your plugin. + +## Plugin Configuration + +Velero uses a ConfigMap-based convention for providing configuration to plugins. If your plugin needs to be configured at runtime, +define a ConfigMap like the following: + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + # any name can be used; Velero uses the labels (below) + # to identify it rather than the name + name: my-plugin-config + + # must be in the namespace where the velero deployment + # is running + namespace: velero + + labels: + # this value-less label identifies the ConfigMap as + # config for a plugin (the built-in change storageclass + # restore item action plugin) + velero.io/plugin-config: "" + + # add a label whose key corresponds to the fully-qualified + # plugin name (for example mydomain.io/my-plugin-name), and whose + # value is the plugin type (BackupItemAction, RestoreItemAction, + # ObjectStore, or VolumeSnapshotter) + : + +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. + +## Feature Flags + +Velero will pass any known features flags as a comma-separated list of strings to the `--features` argument. + +Once parsed into a `[]string`, the features can then be registered using the `NewFeatureFlagSet` function and queried with `features.Enabled()`. + +## Environment Variables + +Velero adds the `LD_LIBRARY_PATH` into the list of environment variables to provide the convenience for plugins that requires C libraries/extensions in the runtime. + +[1]: https://github.com/vmware-tanzu/velero-plugin-example +[2]: https://github.com/vmware-tanzu/velero/blob/v1.7.0/pkg/plugin/logger.go +[3]: https://github.com/vmware-tanzu/velero/blob/v1.7.0/pkg/restore/restic_restore_action.go diff --git a/site/content/docs/v1.7/customize-installation.md b/site/content/docs/v1.7/customize-installation.md new file mode 100644 index 000000000..57dadb38c --- /dev/null +++ b/site/content/docs/v1.7/customize-installation.md @@ -0,0 +1,368 @@ +--- +title: "Customize Velero Install" +layout: docs +--- + +## Plugins + +During install, Velero requires that at least one plugin is added (with the `--plugins` flag). Please see the documentation under [Plugins](overview-plugins.md) + +## Install in any namespace + +Velero is installed in the `velero` namespace by default. However, you can install Velero in any namespace. See [run in custom namespace][2] for details. + +## Use non-file-based identity mechanisms + +By default, `velero install` expects a credentials file for your `velero` IAM account to be provided via the `--secret-file` flag. + +If you are using an alternate identity mechanism, such as kube2iam/kiam on AWS, Workload Identity on GKE, etc., that does not require a credentials file, you can specify the `--no-secret` flag instead of `--secret-file`. + +## Enable restic integration + +By default, `velero install` does not install Velero's [restic integration][3]. To enable it, specify the `--use-restic` flag. + +If you've already run `velero install` without the `--use-restic` flag, you can run the same command again, including the `--use-restic` flag, to add the restic integration to your existing install. + +## Default Pod Volume backup to restic + +By default, `velero install` does not enable use of restic to take backups of all pod volumes. An annotation has to be applied on every pod which contains volumes to be backed up by restic. + +To backup all pod volumes using restic without having to apply annotation on the pod, run the `velero install` command with the `--default-volumes-to-restic` flag. + +Using this flag requires restic integration to be enabled with the `--use-restic` flag. Please refer to the [restic integration][3] page for more information. + +## Enable features + +New features in Velero will be released as beta features behind feature flags which are not enabled by default. A full listing of Velero feature flags can be found [here][11]. + +### Enable server side features + +Features on the Velero server can be enabled using the `--features` flag to the `velero install` command. This flag takes as value a comma separated list of feature flags to enable. As an example [CSI snapshotting of PVCs][10] can be enabled using `EnableCSI` feature flag in the `velero install` command as shown below: + +```bash +velero install --features=EnableCSI +``` + +Another example is enabling the support of multiple API group versions, as documented at [- -features=EnableAPIGroupVersions](enable-api-group-versions-feature.md). + +Feature flags, passed to `velero install` will be passed to the Velero deployment and also to the `restic` daemon set, if `--use-restic` flag is used. + +Similarly, features may be disabled by removing the corresponding feature flags from the `--features` flag. + +Enabling and disabling feature flags will require modifying the Velero deployment and also the restic daemonset. This may be done from the CLI by uninstalling and re-installing Velero, or by editing the `deploy/velero` and `daemonset/restic` resources in-cluster. + +```bash +$ kubectl -n velero edit deploy/velero +$ kubectl -n velero edit daemonset/restic +``` + +### Enable client side features + +For some features it may be necessary to use the `--features` flag to the Velero client. This may be done by passing the `--features` on every command run using the Velero CLI or the by setting the features in the velero client config file using the `velero client config set` command as shown below: + +```bash +velero client config set features=EnableCSI +``` + +This stores the config in a file at `$HOME/.config/velero/config.json`. + +All client side feature flags may be disabled using the below command + +```bash +velero client config set features= +``` + +### Colored CLI output + +Velero CLI uses colored output for some commands, such as `velero describe`. If +the environment in which Velero is run doesn't support colored output, the +colored output will be automatically disabled. However, you can manually disable +colors with config file: + +```bash +velero client config set colorized=false +``` + +Note that if you specify `--colorized=true` as a CLI option it will override +the config file setting. + + +## Customize resource requests and limits + +At installation, Velero sets default resource requests and limits for the Velero pod and the restic pod, if you using the [restic integration](/docs/main/restic/). + +{{< table caption="Velero Customize resource requests and limits defaults" >}} +|Setting|Velero pod defaults|restic pod defaults| +|--- |--- |--- | +|CPU request|500m|500m| +|Memory requests|128Mi|512Mi| +|CPU limit|1000m (1 CPU)|1000m (1 CPU)| +|Memory limit|512Mi|1024Mi| +{{< /table >}} + +### Install with custom resource requests and limits + +You can customize these resource requests and limit when you first install using the [velero install][6] CLI command. + +``` +velero install \ + --velero-pod-cpu-request \ + --velero-pod-mem-request \ + --velero-pod-cpu-limit \ + --velero-pod-mem-limit \ + [--use-restic] \ + [--default-volumes-to-restic] \ + [--restic-pod-cpu-request ] \ + [--restic-pod-mem-request ] \ + [--restic-pod-cpu-limit ] \ + [--restic-pod-mem-limit ] +``` + +### Update resource requests and limits after install + +After installation you can adjust the resource requests and limits in the Velero Deployment spec or restic DeamonSet spec, if you are using the restic integration. + +**Velero pod** + +Update the `spec.template.spec.containers.resources.limits` and `spec.template.spec.containers.resources.requests` values in the Velero deployment. + +```bash +kubectl patch deployment velero -n velero --patch \ +'{"spec":{"template":{"spec":{"containers":[{"name": "velero", "resources": {"limits":{"cpu": "1", "memory": "512Mi"}, "requests": {"cpu": "1", "memory": "128Mi"}}}]}}}}' +``` + +**restic pod** + +Update the `spec.template.spec.containers.resources.limits` and `spec.template.spec.containers.resources.requests` values in the restic DeamonSet spec. + +```bash +kubectl patch daemonset restic -n velero --patch \ +'{"spec":{"template":{"spec":{"containers":[{"name": "restic", "resources": {"limits":{"cpu": "1", "memory": "1024Mi"}, "requests": {"cpu": "1", "memory": "512Mi"}}}]}}}}' +``` + +Additionally, you may want to update the the default Velero restic pod operation timeout (default 240 minutes) to allow larger backups more time to complete. You can adjust this timeout by adding the `- --restic-timeout` argument to the Velero Deployment spec. + +**NOTE:** Changes made to this timeout value will revert back to the default value if you re-run the Velero install command. + +1. Open the Velero Deployment spec. + + ``` + kubectl edit deploy velero -n velero + ``` + +1. Add `- --restic-timeout` to `spec.template.spec.containers`. + + ```yaml + spec: + template: + spec: + containers: + - args: + - --restic-timeout=240m + ``` + +## Configure more than one storage location for backups or volume snapshots + +Velero supports any number of backup storage locations and volume snapshot locations. For more details, see [about locations](locations.md). + +However, `velero install` only supports configuring at most one backup storage location and one volume snapshot location. + +To configure additional locations after running `velero install`, use the `velero backup-location create` and/or `velero snapshot-location create` commands along with provider-specific configuration. Use the `--help` flag on each of these commands for more details. + +## Do not configure a backup storage location during install + +If you need to install Velero without a default backup storage location (without specifying `--bucket` or `--provider`), the `--no-default-backup-location` flag is required for confirmation. + +## Install an additional volume snapshot provider + +Velero supports using different providers for volume snapshots than for object storage -- for example, you can use AWS S3 for object storage, and Portworx for block volume snapshots. + +However, `velero install` only supports configuring a single matching provider for both object storage and volume snapshots. + +To use a different volume snapshot provider: + +1. Install the Velero server components by following the instructions for your **object storage** provider + +1. Add your volume snapshot provider's plugin to Velero (look in [your provider][0]'s documentation for the image name): + + ```bash + velero plugin add + ``` + +1. Add a volume snapshot location for your provider, following [your provider][0]'s documentation for configuration: + + ```bash + velero snapshot-location create \ + --provider \ + [--config ] + ``` + +## Generate YAML only + +By default, `velero install` generates and applies a customized set of Kubernetes configuration (YAML) to your cluster. + +To generate the YAML without applying it to your cluster, use the `--dry-run -o yaml` flags. + +This is useful for applying bespoke customizations, integrating with a GitOps workflow, etc. + +If you are installing Velero in Kubernetes 1.14.x or earlier, you need to use `kubectl apply`'s `--validate=false` option when applying the generated configuration to your cluster. See [issue 2077][7] and [issue 2311][8] for more context. + +## Use a storage provider secured by a self-signed certificate + +If you intend to use Velero with a storage provider that is secured by a self-signed certificate, +you may need to instruct Velero to trust that certificate. See [use Velero with a storage provider secured by a self-signed certificate][9] for details. + +## Additional options + +Run `velero install --help` or see the [Helm chart documentation](https://vmware-tanzu.github.io/helm-charts/) for the full set of installation options. + +## Optional Velero CLI configurations + +### Enabling shell autocompletion + +**Velero CLI** provides autocompletion support for `Bash` and `Zsh`, which can save you a lot of typing. + +Below are the procedures to set up autocompletion for `Bash` (including the difference between `Linux` and `macOS`) and `Zsh`. + +#### Bash on Linux + +The **Velero CLI** completion script for `Bash` can be generated with the command `velero completion bash`. Sourcing the completion script in your shell enables velero autocompletion. + +However, the completion script depends on [**bash-completion**](https://github.com/scop/bash-completion), which means that you have to install this software first (you can test if you have bash-completion already installed by running `type _init_completion`). + +##### Install bash-completion + +`bash-completion` is provided by many package managers (see [here](https://github.com/scop/bash-completion#installation)). You can install it with `apt-get install bash-completion` or `yum install bash-completion`, etc. + +The above commands create `/usr/share/bash-completion/bash_completion`, which is the main script of bash-completion. Depending on your package manager, you have to manually source this file in your `~/.bashrc` file. + +To find out, reload your shell and run `type _init_completion`. If the command succeeds, you're already set, otherwise add the following to your `~/.bashrc` file: + +```shell +source /usr/share/bash-completion/bash_completion +``` + +Reload your shell and verify that bash-completion is correctly installed by typing `type _init_completion`. + +##### Enable Velero CLI autocompletion for Bash on Linux + +You now need to ensure that the **Velero CLI** completion script gets sourced in all your shell sessions. There are two ways in which you can do this: + +- Source the completion script in your `~/.bashrc` file: + + ```shell + echo 'source <(velero completion bash)' >>~/.bashrc + ``` + +- Add the completion script to the `/etc/bash_completion.d` directory: + + ```shell + velero completion bash >/etc/bash_completion.d/velero + ``` + +- If you have an alias for velero, you can extend shell completion to work with that alias: + + ```shell + echo 'alias v=velero' >>~/.bashrc + echo 'complete -F __start_velero v' >>~/.bashrc + ``` + +> `bash-completion` sources all completion scripts in `/etc/bash_completion.d`. + +Both approaches are equivalent. After reloading your shell, velero autocompletion should be working. + +#### Bash on macOS + +The **Velero CLI** completion script for Bash can be generated with `velero completion bash`. Sourcing this script in your shell enables velero completion. + +However, the velero completion script depends on [**bash-completion**](https://github.com/scop/bash-completion) which you thus have to previously install. + + +> There are two versions of bash-completion, v1 and v2. V1 is for Bash 3.2 (which is the default on macOS), and v2 is for Bash 4.1+. The velero completion script **doesn't work** correctly with bash-completion v1 and Bash 3.2. It requires **bash-completion v2** and **Bash 4.1+**. Thus, to be able to correctly use velero completion on macOS, you have to install and use Bash 4.1+ ([*instructions*](https://itnext.io/upgrading-bash-on-macos-7138bd1066ba)). The following instructions assume that you use Bash 4.1+ (that is, any Bash version of 4.1 or newer). + + +##### Install bash-completion + +> As mentioned, these instructions assume you use Bash 4.1+, which means you will install bash-completion v2 (in contrast to Bash 3.2 and bash-completion v1, in which case kubectl completion won't work). + +You can test if you have bash-completion v2 already installed with `type _init_completion`. If not, you can install it with Homebrew: + + ```shell + brew install bash-completion@2 + ``` + +As stated in the output of this command, add the following to your `~/.bashrc` file: + + ```shell + export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d" + [[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh" + ``` + +Reload your shell and verify that bash-completion v2 is correctly installed with `type _init_completion`. + +##### Enable Velero CLI autocompletion for Bash on macOS + +You now have to ensure that the velero completion script gets sourced in all your shell sessions. There are multiple ways to achieve this: + +- Source the completion script in your `~/.bashrc` file: + + ```shell + echo 'source <(velero completion bash)' >>~/.bashrc + + ``` + +- Add the completion script to the `/usr/local/etc/bash_completion.d` directory: + + ```shell + velero completion bash >/usr/local/etc/bash_completion.d/velero + ``` + +- If you have an alias for velero, you can extend shell completion to work with that alias: + + ```shell + echo 'alias v=velero' >>~/.bashrc + echo 'complete -F __start_velero v' >>~/.bashrc + ``` + +- If you installed velero with Homebrew (as explained [above](#install-with-homebrew-on-macos)), then the velero completion script should already be in `/usr/local/etc/bash_completion.d/velero`. In that case, you don't need to do anything. + +> The Homebrew installation of bash-completion v2 sources all the files in the `BASH_COMPLETION_COMPAT_DIR` directory, that's why the latter two methods work. + +In any case, after reloading your shell, velero completion should be working. + +#### Autocompletion on Zsh + +The velero completion script for Zsh can be generated with the command `velero completion zsh`. Sourcing the completion script in your shell enables velero autocompletion. + +To do so in all your shell sessions, add the following to your `~/.zshrc` file: + + ```shell + source <(velero completion zsh) + ``` + +If you have an alias for kubectl, you can extend shell completion to work with that alias: + + ```shell + echo 'alias v=velero' >>~/.zshrc + echo 'complete -F __start_velero v' >>~/.zshrc + ``` + +After reloading your shell, kubectl autocompletion should be working. + +If you get an error like `complete:13: command not found: compdef`, then add the following to the beginning of your `~/.zshrc` file: + + ```shell + autoload -Uz compinit + compinit + ``` + +[1]: https://github.com/vmware-tanzu/velero/releases/latest +[2]: namespace.md +[3]: restic.md +[4]: on-premises.md +[6]: velero-install.md#usage +[7]: https://github.com/vmware-tanzu/velero/issues/2077 +[8]: https://github.com/vmware-tanzu/velero/issues/2311 +[9]: self-signed-certificates.md +[10]: csi.md +[11]: https://github.com/vmware-tanzu/velero/blob/v1.7.0/pkg/apis/velero/v1/constants.go diff --git a/site/content/docs/v1.7/debugging-install.md b/site/content/docs/v1.7/debugging-install.md new file mode 100644 index 000000000..e6a75e525 --- /dev/null +++ b/site/content/docs/v1.7/debugging-install.md @@ -0,0 +1,74 @@ +--- +title: "Debugging Installation Issues" +layout: docs +--- + +## General + +### `invalid configuration: no configuration has been provided` +This typically means that no `kubeconfig` file can be found for the Velero client to use. Velero looks for a kubeconfig in the +following locations: +* the path specified by the `--kubeconfig` flag, if any +* the path specified by the `$KUBECONFIG` environment variable, if any +* `~/.kube/config` + +### Backups or restores stuck in `New` phase +This means that the Velero controllers are not processing the backups/restores, which usually happens because the Velero server is not running. Check the pod description and logs for errors: +``` +kubectl -n velero describe pods +kubectl -n velero logs deployment/velero +``` + + +## AWS + +### `NoCredentialProviders: no valid providers in chain` + +#### Using credentials +This means that the secret containing the AWS IAM user credentials for Velero has not been created/mounted properly +into the Velero server pod. Ensure the following: + +* The `cloud-credentials` secret exists in the Velero server's namespace +* The `cloud-credentials` secret has a single key, `cloud`, whose value is the contents of the `credentials-velero` file +* The `credentials-velero` file is formatted properly and has the correct values: + + ``` + [default] + aws_access_key_id= + aws_secret_access_key= + ``` + +* The `cloud-credentials` secret is defined as a volume for the Velero deployment +* The `cloud-credentials` secret is being mounted into the Velero server pod at `/credentials` + +#### Using kube2iam +This means that Velero can't read the content of the S3 bucket. Ensure the following: + +* A Trust Policy document exists that allows the role used by kube2iam to assume Velero's role, as stated in the AWS config documentation. +* The new Velero role has all the permissions listed in the documentation regarding S3. + + +## Azure + +### `Failed to refresh the Token` or `adal: Refresh request failed` +This means that the secrets containing the Azure service principal credentials for Velero has not been created/mounted +properly into the Velero server pod. Ensure the following: + +* The `cloud-credentials` secret exists in the Velero server's namespace +* The `cloud-credentials` secret has all of the expected keys and each one has the correct value (see [setup instructions][0]) +* The `cloud-credentials` secret is defined as a volume for the Velero deployment +* The `cloud-credentials` secret is being mounted into the Velero server pod at `/credentials` + + +## GCE/GKE + +### `open credentials/cloud: no such file or directory` +This means that the secret containing the GCE service account credentials for Velero has not been created/mounted properly +into the Velero server pod. Ensure the following: + +* The `cloud-credentials` secret exists in the Velero server's namespace +* The `cloud-credentials` secret has a single key, `cloud`, whose value is the contents of the `credentials-velero` file +* The `cloud-credentials` secret is defined as a volume for the Velero deployment +* The `cloud-credentials` secret is being mounted into the Velero server pod at `/credentials` + +[0]: azure-config.md#create-service-principal diff --git a/site/content/docs/v1.7/debugging-restores.md b/site/content/docs/v1.7/debugging-restores.md new file mode 100644 index 000000000..3320349cd --- /dev/null +++ b/site/content/docs/v1.7/debugging-restores.md @@ -0,0 +1,105 @@ +--- +title: "Debugging Restores" +layout: docs +--- + +## Example + +When Velero finishes a Restore, its status changes to "Completed" regardless of whether or not there are issues during the process. The number of warnings and errors are indicated in the output columns from `velero restore get`: + +``` +NAME BACKUP STATUS WARNINGS ERRORS CREATED SELECTOR +backup-test-20170726180512 backup-test Completed 155 76 2017-07-26 11:41:14 -0400 EDT +backup-test-20170726180513 backup-test Completed 121 14 2017-07-26 11:48:24 -0400 EDT +backup-test-2-20170726180514 backup-test-2 Completed 0 0 2017-07-26 13:31:21 -0400 EDT +backup-test-2-20170726180515 backup-test-2 Completed 0 1 2017-07-26 13:32:59 -0400 EDT +``` + +To delve into the warnings and errors into more detail, you can use `velero restore describe`: + +```bash +velero restore describe backup-test-20170726180512 +``` + +The output looks like this: + +``` +Name: backup-test-20170726180512 +Namespace: velero +Labels: +Annotations: + +Backup: backup-test + +Namespaces: + Included: * + Excluded: + +Resources: + Included: serviceaccounts + Excluded: nodes, events, events.events.k8s.io + Cluster-scoped: auto + +Namespace mappings: + +Label selector: + +Restore PVs: auto + +Preserve Service NodePorts: auto + +Phase: Completed + +Validation errors: + +Warnings: + Velero: + Cluster: + Namespaces: + velero: serviceaccounts "velero" already exists + serviceaccounts "default" already exists + kube-public: serviceaccounts "default" already exists + kube-system: serviceaccounts "attachdetach-controller" already exists + serviceaccounts "certificate-controller" already exists + serviceaccounts "cronjob-controller" already exists + serviceaccounts "daemon-set-controller" already exists + serviceaccounts "default" already exists + serviceaccounts "deployment-controller" already exists + serviceaccounts "disruption-controller" already exists + serviceaccounts "endpoint-controller" already exists + serviceaccounts "generic-garbage-collector" already exists + serviceaccounts "horizontal-pod-autoscaler" already exists + serviceaccounts "job-controller" already exists + serviceaccounts "kube-dns" already exists + serviceaccounts "namespace-controller" already exists + serviceaccounts "node-controller" already exists + serviceaccounts "persistent-volume-binder" already exists + serviceaccounts "pod-garbage-collector" already exists + serviceaccounts "replicaset-controller" already exists + serviceaccounts "replication-controller" already exists + serviceaccounts "resourcequota-controller" already exists + serviceaccounts "service-account-controller" already exists + serviceaccounts "service-controller" already exists + serviceaccounts "statefulset-controller" already exists + serviceaccounts "ttl-controller" already exists + default: serviceaccounts "default" already exists + +Errors: + Velero: + Cluster: + Namespaces: +``` + +## Structure + +Errors appear for incomplete or partial restores. Warnings appear for non-blocking issues, for example, the +restore looks "normal" and all resources referenced in the backup exist in some form, although some +of them may have been pre-existing. + +Both errors and warnings are structured in the same way: + +* `Velero`: A list of system-related issues encountered by the Velero server. For example, Velero couldn't read a directory. + +* `Cluster`: A list of issues related to the restore of cluster-scoped resources. + +* `Namespaces`: A map of namespaces to the list of issues related to the restore of their respective resources. diff --git a/site/content/docs/v1.7/development.md b/site/content/docs/v1.7/development.md new file mode 100644 index 000000000..82ace894d --- /dev/null +++ b/site/content/docs/v1.7/development.md @@ -0,0 +1,56 @@ +--- +title: "Development " +layout: docs +--- + +## Update generated files + +Run `make update` to regenerate files if you make the following changes: + +* Add/edit/remove command line flags and/or their help text +* Add/edit/remove commands or subcommands +* Add new API types +* Add/edit/remove plugin protobuf message or service definitions + +The following files are automatically generated from the source code: + +* The clientset +* Listers +* Shared informers +* Documentation +* Protobuf/gRPC types + +You can run `make verify` to ensure that all generated files (clientset, listers, shared informers, docs) are up to date. + +## Linting + +You can run `make lint` which executes golangci-lint inside the build image, or `make local-lint` which executes outside of the build image. +Both `make lint` and `make local-lint` will only run the linter against changes. + +Use `lint-all` to run the linter against the entire code base. + +The default linters are defined in the `Makefile` via the `LINTERS` variable. + +You can also override the default list of linters by running the command + +`$ make lint LINTERS=gosec` + +## Test + +To run unit tests, use `make test`. + +## Vendor dependencies + +If you need to add or update the vendored dependencies, see [Vendoring dependencies][11]. + +## Using the main branch + +If you are developing or using the main branch, note that you may need to update the Velero CRDs to get new changes as other development work is completed. + +```bash +velero install --crds-only --dry-run -o yaml | kubectl apply -f - +``` + +**NOTE:** You could change the default CRD API version (v1beta1 _or_ v1) if Velero CLI can't discover the Kubernetes preferred CRD API version. The Kubernetes version < 1.16 preferred CRD API version is v1beta1; the Kubernetes version >= 1.16 preferred CRD API version is v1. + +[11]: vendoring-dependencies.md diff --git a/site/content/docs/v1.7/disaster-case.md b/site/content/docs/v1.7/disaster-case.md new file mode 100644 index 000000000..6b73e6716 --- /dev/null +++ b/site/content/docs/v1.7/disaster-case.md @@ -0,0 +1,44 @@ +--- +title: "Disaster recovery" +layout: docs +--- + +*Using Schedules and Read-Only Backup Storage Locations* + +If you periodically back up your cluster's resources, you are able to return to a previous state in case of some unexpected mishap, such as a service outage. Doing so with Velero looks like the following: + +1. After you first run the Velero server on your cluster, set up a daily backup (replacing `` in the command as desired): + + ``` + velero schedule create --schedule "0 7 * * *" + ``` + + This creates a Backup object with the name `-`. The default backup retention period, expressed as TTL (time to live), is 30 days (720 hours); you can use the `--ttl ` flag to change this as necessary. See [how velero works][1] for more information about backup expiry. + +1. A disaster happens and you need to recreate your resources. + +1. Update your backup storage location to read-only mode (this prevents backup objects from being created or deleted in the backup storage location during the restore process): + + ```bash + kubectl patch backupstoragelocation \ + --namespace velero \ + --type merge \ + --patch '{"spec":{"accessMode":"ReadOnly"}}' + ``` + +1. Create a restore with your most recent Velero Backup: + + ``` + velero restore create --from-backup - + ``` + +1. When ready, revert your backup storage location to read-write mode: + + ```bash + kubectl patch backupstoragelocation \ + --namespace velero \ + --type merge \ + --patch '{"spec":{"accessMode":"ReadWrite"}}' + ``` + +[1]: how-velero-works.md#set-a-backup-to-expire diff --git a/site/content/docs/v1.7/enable-api-group-versions-feature.md b/site/content/docs/v1.7/enable-api-group-versions-feature.md new file mode 100644 index 000000000..5c40b3e71 --- /dev/null +++ b/site/content/docs/v1.7/enable-api-group-versions-feature.md @@ -0,0 +1,115 @@ +--- +title: "Enable API Group Versions Feature" +layout: docs +--- + +## Background + +Velero serves to both restore and migrate Kubernetes applications. Typically, backup and restore does not involve upgrading Kubernetes API group versions. However, when migrating from a source cluster to a destination cluster, it is not unusual to see the API group versions differing between clusters. + +**NOTE:** Kubernetes applications are made up of various resources. Common resources are pods, jobs, and deployments. Custom resources are created via custom resource definitions (CRDs). Every resource, whether custom or not, is part of a group, and each group has a version called the API group version. + +Kubernetes by default allows changing API group versions between clusters as long as the upgrade is a single version, for example, v1 -> v2beta1. Jumping multiple versions, for example, v1 -> v3, is not supported out of the box. This is where the Velero Enable API Group Version feature can help you during an upgrade. + +Currently, the Enable API Group Version feature is in beta and can be enabled by installing Velero with a [feature flag](customize-installation.md/#enable-server-side-features), `--features=EnableAPIGroupVersions`. + +For the most up-to-date information on Kubernetes API version compatibility, you should always review the [Kubernetes release notes](https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG) for the source and destination cluster version to before starting an upgrade, migration, or restore. If there is a difference between Kubernetes API versions, use the Enable API Group Version feature to help mitigate compatibility issues. + +## How the Enable API Group Versions Feature Works + +When the Enable API Group Versions feature is enabled on the source cluster, Velero will not only back up Kubernetes preferred API group versions, but it will also back up all supported versions on the cluster. As an example, consider the resource `horizontalpodautoscalers` which falls under the `autoscaling` group. Without the feature flag enabled, only the preferred API group version for autoscaling, `v1` will be backed up. With the feature enabled, the remaining supported versions, `v2beta1` and `v2beta2` will also be backed up. Once the versions are stored in the backup tarball file, they will be available to be restored on the destination cluster. + +When the Enable API Group Versions feature is enabled on the destination cluster, Velero restore will choose the version to restore based on an API group version priority order. + +The version priorities are listed from highest to lowest priority below: + +- Priority 1: destination cluster preferred version +- Priority 2: source cluster preferred version +- Priority 3: non-preferred common supported version with the highest [Kubernetes version priority](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#version-priority) + +The highest priority (Priority 1) will be the destination cluster's preferred API group version. If the destination preferred version is found in the backup tarball, it will be the API group version chosen for restoration for that resource. However, if the destination preferred version is not found in the backup tarball, the next version in the list will be selected: the source cluster preferred version (Priority 2). + +If the source cluster preferred version is found to be supported by the destination cluster, it will be chosen as the API group version to restore. However, if the source preferred version is not supported by the destination cluster, then the next version in the list will be considered: a non-preferred common supported version (Priority 3). + +In the case that there are more than one non-preferred common supported version, which version will be chosen? The answer requires understanding the [Kubernetes version priority order](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#version-priority). Kubernetes prioritizes group versions by making the latest, most stable version the highest priority. The highest priority version is the Kubernetes preferred version. Here is a sorted version list example from the Kubernetes.io documentation: + +- v10 +- v2 +- v1 +- v11beta2 +- v10beta3 +- v3beta1 +- v12alpha1 +- v11alpha2 +- foo1 +- foo10 + +Of the non-preferred common versions, the version that has the highest Kubernetes version priority will be chosen. See the example for Priority 3 below. + +To better understand which API group version will be chosen, the following provides some concrete examples. The examples use the term "target cluster" which is synonymous to "destination cluster". + +![Priority 1 Case A example](/docs/main/img/gv_priority1-caseA.png) + +![Priority 1 Case B example](/docs/main/img/gv_priority1-caseB.png) + +![Priority 2 Case C example](/docs/main/img/gv_priority2-caseC.png) + +![Priority 3 Case D example](/docs/main/img/gv_priority3-caseD.png) + +## Procedure for Using the Enable API Group Versions Feature + +1. [Install Velero](basic-install.md) on source cluster with the [feature flag enabled](customize-installation.md/#enable-server-side-features). The flag is `--features=EnableAPIGroupVersions`. For the enable API group versions feature to work, the feature flag needs to be used for Velero installations on both the source and destination clusters. +2. Back up and restore following the [migration case instructions](migration-case.md). Note that "Cluster 1" in the instructions refers to the source cluster, and "Cluster 2" refers to the destination cluster. + +## Advanced Procedure for Customizing the Version Prioritization + +Optionally, users can create a config map to override the default API group prioritization for some or all of the resources being migrated. For each resource that is specified by the user, Velero will search for the version in both the backup tarball and the destination cluster. If there is a match, the user-specified API group version will be restored. If the backup tarball and the destination cluster does not have or support any of the user-specified versions, then the default version prioritization will be used. + +Here are the steps for creating a config map that allows users to override the default version prioritization. These steps must happen on the destination cluster before a Velero restore is initiated. + +1. Create a file called `restoreResourcesVersionPriority`. The file name will become a key in the `data` field of the config map. + - In the file, write a line for each resource group you'd like to override. Make sure each line follows the format `.=,` + - Note that the resource group and versions are separated by a single equal (=) sign. Each version is listed in order of user's priority separated by commas. + - Here is an example of the contents of a config map file: + + ```cm + rockbands.music.example.io=v2beta1,v2beta2 + orchestras.music.example.io=v2,v3alpha1 + subscriptions.operators.coreos.com=v2,v1 + ``` + +2. Apply config map with + + ```bash + kubectl create configmap enableapigroupversions --from-file=/restoreResourcesVersionPriority -n velero + ``` + +3. See the config map with + + ```bash + kubectl describe configmap enableapigroupversions -n velero + ``` + + The config map should look something like + + ```bash + Name: enableapigroupversions + Namespace: velero + Labels: + Annotations: + + Data + ==== + restoreResourcesVersionPriority: + ---- + rockbands.music.example.io=v2beta1,v2beta2 + orchestras.music.example.io=v2,v3alpha1 + subscriptions.operators.coreos.com=v2,v1 + Events: + ``` + +## Troubleshooting + +1. Refer to the [troubleshooting section](troubleshooting.md) of the docs as the techniques generally apply here as well. +2. The [debug logs](troubleshooting.md/#getting-velero-debug-logs) will contain information on which version was chosen to restore. +3. If no API group version could be found that both exists in the backup tarball file and is supported by the destination cluster, then the following error will be recorded (no need to activate debug level logging): `"error restoring rockbands.music.example.io/rockstars/beatles: the server could not find the requested resource"`. diff --git a/site/content/docs/v1.7/examples.md b/site/content/docs/v1.7/examples.md new file mode 100644 index 000000000..58a35fd5d --- /dev/null +++ b/site/content/docs/v1.7/examples.md @@ -0,0 +1,70 @@ +--- +title: "Examples" +layout: docs +--- + +After you set up the Velero server, you can clone the examples used in the following sections by running the following: +``` +git clone https://github.com/vmware-tanzu/velero.git +cd velero +``` + +## Basic example (without PersistentVolumes) + +1. Start the sample nginx app: + + ```bash + kubectl apply -f examples/nginx-app/base.yaml + ``` + +1. Create a backup: + + ```bash + velero backup create nginx-backup --include-namespaces nginx-example + ``` + +1. Simulate a disaster: + + ```bash + kubectl delete namespaces nginx-example + ``` + + Wait for the namespace to be deleted. + +1. Restore your lost resources: + + ```bash + velero restore create --from-backup nginx-backup + ``` + +## Snapshot example (with PersistentVolumes) + +> NOTE: For Azure, you must run Kubernetes version 1.7.2 or later to support PV snapshotting of managed disks. + +1. Start the sample nginx app: + + ```bash + kubectl apply -f examples/nginx-app/with-pv.yaml + ``` + +1. Create a backup with PV snapshotting: + + ```bash + velero backup create nginx-backup --include-namespaces nginx-example + ``` + +1. Simulate a disaster: + + ```bash + kubectl delete namespaces nginx-example + ``` + + Because the default [reclaim policy][1] for dynamically-provisioned PVs is "Delete", these commands should trigger your cloud provider to delete the disk that backs the PV. Deletion is asynchronous, so this may take some time. **Before continuing to the next step, check your cloud provider to confirm that the disk no longer exists.** + +1. Restore your lost resources: + + ```bash + velero restore create --from-backup nginx-backup + ``` + +[1]: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#reclaiming diff --git a/site/content/docs/v1.7/how-velero-works.md b/site/content/docs/v1.7/how-velero-works.md new file mode 100644 index 000000000..250ab2dab --- /dev/null +++ b/site/content/docs/v1.7/how-velero-works.md @@ -0,0 +1,87 @@ +--- +title: "How Velero Works" +layout: docs +--- + +Each Velero operation -- on-demand backup, scheduled backup, restore -- is a custom resource, defined with a Kubernetes [Custom Resource Definition (CRD)][20] and stored in [etcd][22]. Velero also includes controllers that process the custom resources to perform backups, restores, and all related operations. + +You can back up or restore all objects in your cluster, or you can filter objects by type, namespace, and/or label. + +Velero is ideal for the disaster recovery use case, as well as for snapshotting your application state, prior to performing system operations on your cluster, like upgrades. + +## On-demand backups + +The **backup** operation: + +1. Uploads a tarball of copied Kubernetes objects into cloud object storage. + +1. Calls the cloud provider API to make disk snapshots of persistent volumes, if specified. + +You can optionally specify backup hooks to be executed during the backup. For example, you might +need to tell a database to flush its in-memory buffers to disk before taking a snapshot. [More about backup hooks][10]. + +Note that cluster backups are not strictly atomic. If Kubernetes objects are being created or edited at the time of backup, they might not be included in the backup. The odds of capturing inconsistent information are low, but it is possible. + +## Scheduled backups + +The **schedule** operation allows you to back up your data at recurring intervals. You can create a scheduled backup at any time, and the first backup is then performed at the schedule's specified interval. These intervals are specified by a Cron expression. + +Velero saves backups created from a schedule with the name `-`, where `` is formatted as *YYYYMMDDhhmmss*. For more information see the [Backup Reference documentation](backup-reference.md). + +## Restores + +The **restore** operation allows you to restore all of the objects and persistent volumes from a previously created backup. You can also restore only a filtered subset of objects and persistent volumes. Velero supports multiple namespace remapping--for example, in a single restore, objects in namespace "abc" can be recreated under namespace "def", and the objects in namespace "123" under "456". + +The default name of a restore is `-`, where `` is formatted as *YYYYMMDDhhmmss*. You can also specify a custom name. A restored object also includes a label with key `velero.io/restore-name` and value ``. + +By default, backup storage locations are created in read-write mode. However, during a restore, you can configure a backup storage location to be in read-only mode, which disables backup creation and deletion for the storage location. This is useful to ensure that no backups are inadvertently created or deleted during a restore scenario. + +You can optionally specify restore hooks to be executed during a restore or after resources are restored. For example, you might need to perform a custom database restore operation before the database application containers start. [More about restore hooks][11]. + +## Backup workflow + +When you run `velero backup create test-backup`: + +1. The Velero client makes a call to the Kubernetes API server to create a `Backup` object. + +1. The `BackupController` notices the new `Backup` object and performs validation. + +1. The `BackupController` begins the backup process. It collects the data to back up by querying the API server for resources. + +1. The `BackupController` makes a call to the object storage service -- for example, AWS S3 -- to upload the backup file. + +By default, `velero backup create` makes disk snapshots of any persistent volumes. You can adjust the snapshots by specifying additional flags. Run `velero backup create --help` to see available flags. Snapshots can be disabled with the option `--snapshot-volumes=false`. + +![19] + +## Backed-up API versions + +Velero backs up resources using the Kubernetes API server's *preferred version* for each group/resource. When restoring a resource, this same API group/version must exist in the target cluster in order for the restore to be successful. + +For example, if the cluster being backed up has a `gizmos` resource in the `things` API group, with group/versions `things/v1alpha1`, `things/v1beta1`, and `things/v1`, and the server's preferred group/version is `things/v1`, then all `gizmos` will be backed up from the `things/v1` API endpoint. When backups from this cluster are restored, the target cluster **must** have the `things/v1` endpoint in order for `gizmos` to be restored. Note that `things/v1` **does not** need to be the preferred version in the target cluster; it just needs to exist. + +## Set a backup to expire + +When you create a backup, you can specify a TTL (time to live) by adding the flag `--ttl `. If Velero sees that an existing backup resource is expired, it removes: + +* The backup resource +* The backup file from cloud object storage +* All PersistentVolume snapshots +* All associated Restores + +The TTL flag allows the user to specify the backup retention period with the value specified in hours, minutes and seconds in the form `--ttl 24h0m0s`. If not specified, a default TTL value of 30 days will be applied. + +## Object storage sync + +Velero treats object storage as the source of truth. It continuously checks to see that the correct backup resources are always present. If there is a properly formatted backup file in the storage bucket, but no corresponding backup resource in the Kubernetes API, Velero synchronizes the information from object storage to Kubernetes. + +This allows restore functionality to work in a cluster migration scenario, where the original backup objects do not exist in the new cluster. + +Likewise, if a backup object exists in Kubernetes but not in object storage, it will be deleted from Kubernetes since the backup tarball no longer exists. + +[10]: backup-hooks.md +[11]: restore-hooks.md +[19]: /docs/main/img/backup-process.png +[20]: https://kubernetes.io/docs/concepts/api-extension/custom-resources/#customresourcedefinitions +[21]: https://kubernetes.io/docs/concepts/api-extension/custom-resources/#custom-controllers +[22]: https://github.com/coreos/etcd diff --git a/site/content/docs/v1.7/image-tagging.md b/site/content/docs/v1.7/image-tagging.md new file mode 100644 index 000000000..64e9310b5 --- /dev/null +++ b/site/content/docs/v1.7/image-tagging.md @@ -0,0 +1,24 @@ +--- +title: "Image tagging policy" +layout: docs +--- + +This document describes Velero's image tagging policy. + +## Released versions + +`velero/velero:` + +Velero follows the [Semantic Versioning](http://semver.org/) standard for releases. Each tag in the `github.com/vmware-tanzu/velero` repository has a matching image, `velero/velero:v1.0.0`. + +### Latest + +`velero/velero:latest` + +The `latest` tag follows the most recently released version of Velero. + +## Development + +`velero/velero:main` + +The `main` tag follows the latest commit to land on the `main` branch. diff --git a/site/content/docs/v1.7/img/README.md b/site/content/docs/v1.7/img/README.md new file mode 100644 index 000000000..85c071c63 --- /dev/null +++ b/site/content/docs/v1.7/img/README.md @@ -0,0 +1 @@ +Some of these diagrams (for instance backup-process.png), have been created on [draw.io](https://www.draw.io), using the "Include a copy of my diagram" option. If you want to make changes to these diagrams, try importing them into draw.io, and you should have access to the original shapes/text that went into the originals. diff --git a/site/content/docs/v1.7/img/backup-process.png b/site/content/docs/v1.7/img/backup-process.png new file mode 100644 index 0000000000000000000000000000000000000000..7d4f10d5602a3a9798f449e4f9a7be0b74923a9e GIT binary patch literal 33630 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

    Oa*AXK>A{SCkTGAeMuLb#W122eJe?g{aj^h2pED z7A(SE4DPTu$416 z`jlHRi5DxuMy49pjA94NK_>#6Thv~_I@#)U|Cz8Qp?~n<(Q6~DZ#{%!e zr_gkobk%Z({n0X0UuJG_bACjK!k9JW^zYuO8Q?W`&N81Z3PLN@gMLvZJ^dEkVo zy!htkBabLL5mR|yg1!fJ6&}fBDI6qMsVbsamUZ9nApd)8Hwgq?3Vvttz{fSO^3Is; zNp+ewW5rLuto=E|71uFw~kvmo5aI_ z?vbehjzI;rfTh+nhs@zIlgFUo->{W;T%wXTjY0_(l7&=7s*~N0g(NcKO@>fb&GaqD z@6D6%_7+-Fb-qoxY*)9!V%7amai%}-*(9f;1!)$H{t}RQZhE4%r(!06Kg23hF=OTV zx59WrgA9^e#d6JAXrFfzVbI5_AYt{{={)W!&)xKhpSycVowlFaD(PF%I-fbdRJvcQ ze|m`s7cI~e0&aZHPu@E<>((`gUmwD-bFtbZqXGx_W$Fe*S6(XOegzItaSo~M%kEK5 z1!cV@rj*e5x!j9~ofnAGmmEC#>&p9#lV2W}ku5KpH4ZCMi*g9$6TG?Vg_xzT$mSSe z%w(iXdWt#6$>r|j`bU#ojo`6I#?@>As>9uupxZqEq8&N^RpAzIXbRz!EZ0j8+qG^I zGnAqMIC=^FWL7;`F)5Cp%yz3&ji)`%nT06*dbWVm=tKymic)L12*GZr2|UWN2sfk2 zbuY?iC^@0fvOS1?FRLFt)}}bFgb2^N&#fT#db3V>@o5QnIWXfs$YAbxHIG6l9VaRi zh*^)ZD@EaPM6L%D(3LugIgvw21kKQN74+z&w!XGi$d<3Ho)R4`=beR{Bl0w{H}{;G zY+N-}TJm4c6e4g`TIjgXKOEnp9RFXqb&}$&Gvd`|brnv5!f0G*)xTR$X@dCRDyyh~ z1p6>sa_D}P-YTgKlMC02%o)aOV<0Y*(&HuTk1?QX1bBpclJx_i)E)ZSmla;7{Pn5F z6C7|?FzK^}fDb~ifx&7#ywJHXq@3UWA~XK}avXxcBwID??2r3_dd`MWZ^!R9FG{=o z@RQ$V+Im|sHS<48B)KqNI=2Cktp!EWcaF9eLBC{~G?x!CZ)6`nH%SaNnX62^g$u{w z{nmz+ZF$$%iB>&t@-Yej?s1>0yjLlmT)>`b{B^bzWOyeyU@gc=YcK9&F9Y} z8kTd_PIpUcc}6I=MdOFTR#4#ggVdu;{jMt94DPFjspw05Dxg04ZLA@!r-m13kg+^P z&e9j8(`Y2PYbHM9WmZx7lTKfOmzNW`#%rm+i;~@W2v<%f$x4y(t|g;t#bIEXp`k)A zCb*)zf0zG;>sf6#FNmx<*`Y|3Ehj&q@ z1N>_9z=|SCZdU=$#+!)=|KMhjh1g0b4Hh`!ZsY7eS~H;5^y=+}^_W27`Q$3PZq~9Q=Y=|Y= zSP-m=h8C7(D?t#h^+U3vt&Kr7k`fuB3f5_TobXZ=claeC4M1(z(k_T-U;mG>%7-Q?&fHWOK&a+9cv9oC{%&9M zu=)yixXU6QTg%8>3Y3l>9@y@Lk1F&#xi^-_`a|%+9^nOLf^zldMZ44wv(hWz`8pEu zIDa)4*y`@6lC3$H)!w?Wir!He#!z!c%%7~v%BcRnHd*DavmNU~tAhun#|es~h_F|PYQ@KXyW8XomtwV+R8I-+O1%HH#`%I6iHHB?|f!lHSj^&MYaXqi+K z+cl|^=7C0{YP9l0G!tgKKg)Pke#TPnf%f#pk2l5A8J*|EPLsuEk6cWq{Lb zaUWzPM>~F~hhf#|Zyw)MkUm)EUQ=jlhTxt>(})+rTYTc&8=x#Uza=F0 zq~-s}P&DuAK_c~Gv3^#XX_$~l@!ck>(xv&(PaaMzhvumhHfYAxWM}}Gz0NT-Z|wW{T13Q8i9cTQ?ceX#C<@_yiH?o}DH_&X^8Mz$ zrFVI%(}C)Rf2?x(ULk0eRdYjHNkX1`3#n+8wml2JMza6<_9r_+%xee5@DaYfIt+Qn z*(iOv#V@#9Ic3;R&?!flZu|J&@P$oNO((~LZDl(JFGOLWC{ad-WnBtqp^nO0E<8fZ zx~|_*f+FBk+$c$4q8yvuQ+h&L8rS=wOaO_r6zFI8K+p)c@xVftI4Hc9Oi-aSnh{Bo z7s=!!TRgF8^k}OckRrZpWJlOCz7Lspsq*RdkBD%`{KGaIRPB>v8J!-ADG6{{_jV=k zt0cE+3U;X<#_)}|B76)->OwLtXz80S=Xb|637>b^E;3{PnNr*MtS=8E{gO;PS=FcL zKOKNbo3^~AfbhzqnWbkx<>`aLfYJcCS1#r@ft1(CJdDL$V5U`0X7TWBIY!)xSYM$J zoK+V^O8ejSSy1t~GwV{d=c={c5dTt(I0J61ZrZ4A0}a(+6e3v++pUPl#;|&JE^(Nz z%7Q)!KacOgQt!id?gm`Y>H zRs8(ma_>b{o|Jg}DKu7FU=O>m)kr_Yv&M{ircFh#_t2Dttw3|jF-kt?9RNCY8~f0T z0cByYOdU}Na9@vOU5U4z9F@jb1+LA-5YF=Q=lx-5eFTw0vXBnuo*7w1vam888RU{o zHCYJ|fTT|FX3V}8{hrK>|H!#jyoa|;U!{i(qfJx0o9FJgj+P^)uUd|L_!finoh5vf zwF6R@K+k^vOEnNCmFVLfbw(98N*=1y_cBt_s!)fM2gbPo7PNk>Ds(Gv?A>(vT|62w zy-H=W2SZeJvm&&Me0vL>S9FnfVEYYtg2p8!Ar8lb!{H=w z3i!QH?bu?6`+CaxKcGzdH)C5hMpAC$QVFg3@v_DNFIA`*HQ0mA!nGH8>sk(#v7|PkKpOt<5nf-PqAAq(iDBb0-EEy zgx!ol74ThIjXS7t(0*okFF^Lo2KtDfyAddReM#Q{bN3S+aVznuK;-=rkr6gwVtodW zg(O+yinEGzfT?21FjAEseo@GNg@T1_b{Fb?W_`p2|725on{c4higg}DZsM5u=(Dk8 z)3DCrc z{GLMcWE^3ob8t|~e;=h&lcQI9+wr;W4{BAMsXL?_ECOCo%se62Y7?Ceq{fz@iby2#Z)QI4eK#l6T7;JNAKpnUjdF7h`D zjelPWL86tOozySie=%1AeWCq>Lz+>Qg8RKLw`!Ye>X+V{y*nhe0bOQ&BxXsq{5R3! zJKZE)CA|peHxNyR9`rX}@qGFbfi1TvBea-QIo^s$uTW(W!o^vh?+Z$SuJ$#D@8i;) zEb_mAF5=o~{E!HipG0LQTbPdWJ zAq~GtodLC(R!ma;gh}q8`bQYXoPeg}apJlnQAsfYISYZ^eW(k%?zQ2FA;~FL_)Wh zW^(nzkD1SzkZ;6%p-?F%rRby2>FC1dpj984uG$p!2>vJsQ1n zSpJOeJS95%{R)$Jh)=fyvua^BaW+u(LN4rqVmW^JvPFI5$9;Z+wHK((*eVmffp}9l zV}$!J-+tNt6VTL;%M**TH6MP}s~RJafZ!y&Vk$%~a@YQ0B)zM3vQPL0nVgtsQqQ2* zj1&$(AWs?~OqbQ!d$*sam5#m2di9}N*Hgu_)N2$dy7p&yQVnlIyYzTl*J( z%-WBdmKd+c#!#LH0ABEE^iQX=hKM`QpOJ{r>M}PDQZq4&7hiP{xj~)o8M2lZBa3QxyP!uIT8@hLcbOcO*)Q(e1@BtEll&TLVEQUUd13PvBh~Ygi!k3` zk(B%-&u2RHS3oske9cjt!JqD-a+cD@7cFDP(!71GAqo@7cr6sWvdfP9iF%! zo&Z=Q-F2vA;VVnNr+a4hbz9%m>e)){HAV?o+YXgpTpHu?H4 z4}qSg2QTuiOII`vf78cRI(IH9q$3BTAlr`Uo@Tb~c%QMwDq}QWBSw{8`ZaX2Ed+_V zQ?N(a>TZMZag^)8OoEcNVCs|9%_Ol)2$E??;8*xM=G_n?FBQiX=-;=Z;jxlak*jkN zl~i1m12NmLFoWl~)v?mTB&mz{xT>4G4`^mut5Q|H+Cm5>NgVV(^}hPC|K%wI4VHL( zQ`-G8Sg=DT?`rw)wYz!X> zpyP-y`Kdfw!ril5p>Mfyp!e-D z!FQdDZ+RLGFM8_VTgaZZF!{x3Cos^bZsapNiSEZQX<-=b%doOPrVSS(caq#Qk3Imr z`g%4lKl;c1Z)v@cw4+F4v$?4pBL}aCmFP-jI@@6|j4$O_PdtNJ6x+$+UxBS4Ik>a8m%e#&fP=@@;c)lq#13&!`>HA4Sq@L#| zRq=z!`a4Ese+h2DMsU-37gT=KJtOsT{<=H$4|~8X@Dv&HA-|>8Sk-IEaf3Ul9E)N2 zX+`B|j355GnG-ZWDRRHCpRctthTi;cHw$%}jKEYn#T_kb^lqnz+seoCdI!5l$o|dy zG;tm?m+!h$Ua`|2pWULB_h~#$i8!&-3$+;sydrsz)ecqTi!gib~5Q4%9UH@7S6F|~h4m}26n2wn7qTsKBKuwRr=9c+15uPdX) z=G)5$M3WffWVM*ppW}=y2#0tQ`ncx7MOOhkb3E;Hs8-fl<|=p4khz~t;fpMSuP-H2 z)G}2kA5`d;I20>6%NcyBDXMBat2S}$P!(Hj?5reOKUTh=nz~9QM}Ih1{rX@o?~ZaB z2kJ7-mFhE?@rR91b4^%(MTa+$T!Qu8QgE}E6SY?Pa?4;O7A_ZW9uDLvP7O}K=2ySb zerJI;u|I8LQZYlqU5ym_hd7umgTC2kP5bWQCrx;!hRI#<@wAXk{Q*M}a@!n#wAuU5 zxM!59Rf?wd)I~WD)jP~*nEytjg%<{}I7kZGM=l}J$|K{qdD_m1VQK@ObBqARD8e{Y z@gDiqkE2wOs#<*(M%i&THEDit0-#qz>w?4g32lhJ8O23$STUErzANK*23QFexW83C zmh}VHDJi6#j8Hu?No0WJblqO?E7QguN-QjVs>B{s!zi~Be7Vf`D2}Pxo09D*M)+y6 z4h0?Zw?%mCh-@>b%pal*A|vBjs+9IvOSsgBK*s<^$ex>sDRCj{+hy)H*2U1>k^Tv z_Vs^L!87O3aQvPug-L|wx8BHP2|(XaW%x_;)_e@3VJP9;XKHVRw;@l$(O#O%!N>+# zon>Df+zm2=LD)jm>xYjN9L20Gu}yPD==Oz3KACwPDHIuv^f49`15j;h_WS+SY}vzp z*ZO}e<_VZ`r|?^V+qXvcOn6c^vGkmZc2sG-$vmQWt%+k8QU@(Qr2ge4=;jb7UydYx zsc+ialtjVz`X%thC>2eo%;pOBC~%sarxJLy`q4Zh>MKnH>7j=Y(CC6#S-g23QFs*yK zo9iNln4_UPxF=7_F7IJt4SwG$b~AId+a~BDz2rQ`5ODp&l5DKA#o?C507vEBgpNB; znQjIl8cbAI2iSI&AG|d=A5fe1I$SiJ#Yd_V(z`8yD$5&`OD9i5|N83P+`6HBxy~;T z{1IKvtP>Pcv0y0IbJ~Q$;Go!uoP|jSy-AFDJ3wXc3ZT6XQ&Y1t@K62E+uf4zcda{YQE+mscqN6tl6POxMf!Tukj& zbN@{GairimWP0XjW#C;pDdYKXz%E62>F=P8x8*BGPmRpy6nig82;>j{6V5Pj4Pqh2 z`ee_(eGdEOzKs7CFzXB9@@b>Mk9bdoB=iF#ZTKKqW(hd80tVxnVkCw356pkKR~RiY zND0Z%Ymh&YUAJyU$dXUwzx>Y^$3B9>Ud;ns-`F#D4VYFJl+hl-h=fcJbesR!`qo>E zGAkvpf8{1|X2#Vj3>-(M-u1mX%y_mw@JUT_J{s6lLO>`|xe*a{>_2ZAkeq5!LdNb< zfEAo4=!o}i3c?10Rl1120v+f^0SX0vy)*s&bG`^IpGBxRuzHNiA}&?|ia|dpNGD$e zR3`r=(*T#%?`=>b%}cZHqJos8BCV#lqVR!Ak^nOH@NDb*pz5YA;FQ|~*78s!4a+A> zED&IYcm_XP<@VjULqNOrNOU!^_J};>(O0NEcIPcfop_@s;ky#2GSz?z_53pLNs zH^Po~e?Ompfda9f-TfBMWb|$$uTn6@Eu57R4Ju5(nWuFNMfa19kZ9_br~p=0ON}J+ z;NdTixlxetn(qT*UsBq(DdaM(P^nH_o-3l<*l(hi=&d144ly1Z4xO?rN`uKM`F24WRh0 zmkbeb1!9yF?s$7$RMC`|OBbwKYsfTnQ^oe7Bq|Ss-FFtBz5#?iQkQDf9g{+~Q>`n6 z48ixY<065{Yr=K+*F4B%cvcF$tk#=1K$>~rTonc71yb0%qd$x8EeFoq zvsGoOQ@n+{;2JlDjV4UDm{Au-4Otl{pmZ|L`sw)GM@sU!$749 zhksCNE+o?&;^%~$eIaJ03??3CMpM^2@zq5_pM?k)ULsO!s&y*6gn{qJm7Kl+?mx{| zNjoikS9Aq_{NR^mPShB=8wl7K^1g=xUWe@R{ubY^NWj6jWsA5Y`s1_u2OYO)`x$J# z?ek!_ZPaFwq#RDVC<2fOSxO zF3g>5NhmP}4t3598gnp`$T=nmYzA&~tkaFp8NnJCvUy@`+|%5RXN=!ze2q~s4NER4 zu&8d-x@{L(2|0aGVYI8?@7w|AGXqws-&cFrY}oP?#p^K@b?2UL`v4ZN_; zVTfgh_VLB$j#t!BKs?}6AiGMR0s(90a|EaMC^NZX|0>TV@Z+W5ncIg*9CR}Yj&=f4 z>~8m96n*mvD*Oc#6B+@EI*<8XRyGENP_Hc>A^i;&r|`aX7UD5p$dmn8WrkXiNwi`Y zA`%WlL{y0$em0cVfOq3&Z7WkiUQsGf`Omz;LmI>2p391zEAOHV?=@9 z{!L=@64>HR#JRE?;@!D>?@ui--VOagdGhQF^WKjf5=fnyo`N&8Kes1cpg*Kyq5I$7 zo>VniLD0;7KzXTVjnXShNtH_HKJE({4PEbGsy6F>VRQ%?Vh$Q%Ay+H~sl03P2GOCE%`D_o8Y?6^NH$1v8lPsP(KdKdk*cubqBbsu3?%|ANi#u!P8V zB9cLi5P~v@J%zA6N;6EZWpHW$Y6&-xCRK<_%9R8N3p4PqDaeYF>i#M#IDM}s6+2ky zwLP7=_YoHf%+=k%dS{R-l=3FciU|_rgp0x|SF(S^hFH}>Y#Y%*TnU5-h#lKuNGW5Fxfa>M3A_^S6+xRd!dT?8Uv7DYX-6u}KLt%MBJL025 z_w7KTo-iW)U(-u=ni0Tt89#LTN0gHJ~p{fNkf zeLj1gR6c^6*Cwnmfi|2OiqSx{W5ogv*+niX5c=h!tC=xY2#%jVpoWWiK>M}#N9dO2 z<2M?BG>=S!?x%I-ikWdh#^C1x4ttLkH1=jev11N^083>Y^?Fx28oCG=?1Hu zi$?|_6Nfdu-{YU+02+9jfx2*Vra`Y6H69WV%!d}4Uwuac5t7eUE89ssFHz-R3v>_A zc1eUNcHEAEk)2=_5W&^`^Q)|VKG*|wm~F8)e=^V8$&GAzT`^FG)ygRf%+6+J_^*K9 zzPAlI6w_cqL8pY%h)QDH0rURb44;d_OK?mx52V%=@f*Nhy7H<&HLqnrk6(d)W2`U% zW!6TmK#t#9PBx@Q$EfIM2#%!2#<4UQAa}S)M~E2Ri$Si2ewljO zhs5g_;5YE){M6-OkhA&Q&Bsm7D3cRYaG0kQS37?UMMy7qlko=~5)yVqyt+h&8bhK; z{R6Fg3Q5w_cF_EcQ^@Tubh{LK1L-e#svb?LXc1}uU0V7S6R*E&#ieWQ0$?U z^pd|7|7HKI$RbGaOpHV7*F8|?$ni$KM3CO1k0@}kioO2&^+P| z82qW9CD|WKo0p8Aplaq;z>dB%x_r(wvDD`lHh7Q?J1}qQk5mb)F&Ok1-nst9a*BB9i5Ts}rz5hmYYXCuRjhqhC{e@p3n z%|FStZu^JJa#zgbNp=53r#zya0qlUSXsHX!x7(GI;C|~K=~l+e%cNLvZgp1oOv#t? z&smFvT%#))OQT%suDw4e36`xv++8~VyCX~d16B@{kjkYjYR8`*lO7IumULZ1{>|H+` ze*YT2I}4LV9TAWQcy+l%YkR?YgtN|ygQD8O(D+Z5V2J}Yy{9tV^BUMkc7S(s^4?80 zuN%sI%-6_#x4HkT4x@dT>8s)5IsgNz^SxT8dn&L6cqC3nc9r^h{mEWZT<_ub0$<8* zZfC_m!l{1?`TZ_y6~JMlW_I9v!9YgEifa}4(9rOMJmGmbz7YF4MP5pjygAv_*?nSM zzCvNTgqY&5d)n3pLS$r9jq7j6UBuQt@s}0)4tlJm{nk%gPh0m%zx45Wt1)?O{QS^d z*Nbo6eY`&a}n9`;@Ugc$Xzcb_VDZ*cbAIx2?8kDzhpc zfBd}Cp&<~O^BA{NONf9W>!XlexTh0mE+$8_j=wZKagFeF!5II~q z%p8ms9(uZ*ni^4A<+|EhM){;ePzO|}UC1hjNJF#kFFDC3>4V>#(YDBJ! zm9jk#yCh^9y#5e!ZfyqpYT}&BWn2wcB&g8`{WU7>;XqcdE&{zLo!}*1kOy#4*OzH% zXk=X_1O$yl%6xTPY!z7(BXJ9az?u5xvS5K8-M6w?pC3LXw6!Xh=Qo@u$NtWCaW~`pIWt3Vs6~32d1mGT1R2RHeJzW%;qod!P!` zEVOOrxgOuDPLd|IwIG8kta~hTutwOTgj|pdowN^L4l^z}jTr0YBTObd0;vt+fK!YY zufZ5Zcp~4*OS8)H5Q!&Ds~N2G5c2L$cqLt_B7`UwT)q}LRO>)oOl*nMT~kw2g18gi zjGw)Uy{=wi?cYOaY;0_ImwjFBldCFJiKeicou`(p=&^c!xE>O+1fXN9!k29&VMTWA zyNS>9iwGS0d42Y97M{`nMtY%l4v!*JJQFX52fmwkgda2*cCGd%w~Y=>OppbWXGu|D zCHX&I0Jt;kfS_x7_0T(ZNv*q{CtE6yOF>2n#u`H+Y>~2BTJe#CgTqYu3nh10QB+xd zSyu;r=Icy~%Z2->w*S|uFrb!c-Lno76dz&-d5rflTkW(?w9|RteY+P9Mjy7DI17mv zosqDF`}*|Zvx_tgN{pVpQmG!@xS8bgs|~8-;pX@hbSvU-+}v)4h5gR4`)9tI$@Mik zul`gPcr_3E1+6CqOU2N8nDz9^g^W6Z!rtcxEV7AbQC^s}eF>(ZB znqMFrDC~Cw`})(O;?R*MDG1h54Oavjlc|7gweCx%ias?&pCpcu|6|jFNH^M22P-Se zAL6_=1!Qgt*(bNekubc-rljHM+u2L8oeY*t-o3$tBl~~d0@bn$W!PG@iNb%vp&&Pt zC+lh4+h3_f1;TG#HO$0nPXq2F!w7rEhyc*GUxIvObtG zI-H|4TBQFa8&}}8PmC(&jql(%0eTejVp=Uj{y+Vm9?7fdr;~w2K&u`@C(TuM1%j=H zQzD77FfcHNr*K))^Pf*sdtZ>~sY$%r>WCm81!}GlP$3!t{k8XW%}-VFNG)^p5G<{- zi#GrSl31fBv6Cs2cgWpyhgc1abpKia4jJ3}oXh@GeBO(&9(`>8^W$c)wqoiFSu+E& zU3G4gdSw6{j!`rdcKCJggae?N$Y_zAMnB}0OjG^v@dcND9g#NU4uKKe1nHYx3wscy z)I5?MRkbcv{=c6$CL=;=8C=w7@I^{;U%~r&1TM${~V!c$re{&HI`>AwMfoe1x(9L@hu5V6e^EIjse z)mmc?bJcO3fNB_hPm~Df-Rg3hnCtyS_j;^1ENh-*2702=IP!XscjpH$Q~6%1GSdNW zv-BrPPa(VcTEXCWeuVN6_{|60#{kN1i6`)<^Kz zOx(AxMcc0i(?t0zD=Gr97N^Qzgbk%SW&>MZ7@UiesYc+3*|NM#{bTbZ()X(SkhQ>^mnRL|9b|hEj_^d!mHySE%$2o9Y z?|h){&@b^wtb~mt{&&Zz=#Jk)Lqq?lA}{mrlg`YUys=ESpX2}gx}o|oA`WKx mfBzNgJOBSD|DUwd75U5W&YjW@xoK$NpNhgG`BGU^|NjNw`k$Nt literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.7/img/gv_priority1-caseA.png b/site/content/docs/v1.7/img/gv_priority1-caseA.png new file mode 100644 index 0000000000000000000000000000000000000000..a1940453fa10f8805d45fa04e2aab30afdb62000 GIT binary patch literal 57254 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%0AiOVZ8uZL* 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

    cX7&Ax)%Cv}<}XKs|EJy;pA%#0ff_JIQN)SY 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%0D_H+& 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%0D>T0#tJA_}MUckj_CIV>w)v22-j7PDXZ=Rb2> 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 aZm<^2Sb~hRU-?i0zbhI#>TlI79{mf9tP|b< literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.7/img/gv_priority3-caseD.png b/site/content/docs/v1.7/img/gv_priority3-caseD.png new file mode 100644 index 0000000000000000000000000000000000000000..11c9a11ce8bfbf020cbf7ed3e1df4227fb28a04e GIT binary patch literal 69760 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�fu>MSxrxgi#n;Lqh=@0@!ay&F0yspK)28*_577-8-b z3r6UEwH0zS3Xzjm6e;P;>2Ie|SYWS8>Fo)f{91$2DxzRS)3~7HtG!~!V^TFhzAxdo zVe4~(oKLW?@9I<47Jel^E~=-XH&iL#vUkV2I>FNuA-soAyK5bE8LA%p$!*tpRn^k{ zJ&m&4t8UhP!-W1yDzf&&DuwCcl(}gz@tL&CEdD?lepJE(|MN5A92exXHDxTZd|B_# zgPb&+3<`?bfE>v4QXj>Pgg$aKDlK%Ga6c8s&~y}m7_>Go1ZVr+<6V2$($n(^AV zN+nh2qJ&=39O~ORx0K#o?E3w=;LiNFQxKx2T;9kC%i#UpZ>LCoIP)$G!JB5|`6vlvNh)KDhi%?D~SMf6{I-kqfCM_)0c)&!Z zbpgD=V1_aaQCp>)j#l8rv+%-nSN>9m1+nEi!X&PyTjYW=i*gQoEHbB+9pyze)2I5%Q;g_+Vy*ZrPoH$uaiwLyf&KP^J8nTN{iGMX)23X-V|O<+ zZB3i?&-~-b;yfJC8y?eaPkJ6`_L~8r*=WA&?H*`R>lRYuxuQ%>fc$W1`V_qA{Kb-O zV}grty%2zd8#c4h)CJK7NwAgG{s`oA7`Ui~Cuf`-=NDlP*6QjNstN@H{ap0K~T-O|sLc+B@K%tx1bU5?dOj6$lj)9i268bBQCv z-Xpu8HJa>YC(+S**yL5$y>=Bd?Db~8J36Q{%ojf9C5(b24!P!aG@$l0CV|xBKdT^y zB%KFqW7{=z{6d~eAJ3LFyR>djbEd8PeWR&bn4K6!FoNuED6^kQ^hqlj6jnJ)f$|jI_i+#f0j;5vVYn zN7q@@05|;Qd3P&+bnjJT!hqbI`2nFd=PtOWz2xti_fFvusVsu&m=gkm_h!NCD^E@` zUfP&bZ%`a7kf~0CR5oN;_!F6J)y3nzI9hLmMzACYB>KekV6HYdigYq$i&eOEp|po@ z1VXIvJ>)`~zfchm>h3dEbru@o1@_Fj$HxuJJFD2jOPGGY{Lny)A#8D;fQacCo6djW z8U7YoN8`sY!zryDC2sezC0JgQ=@tg*)z(O$*VE4|>gD!c=b3$geFzAyuUmMOX~BB( z0gYu;zYk~h{ggl1?riP2y;$c-VM#^rK0T4#jH(uus7MYftZl@$HX2r|zFwa%bv;gm zyMAmBw#N^qATpcH=GBOhspoG~z=Dt1%5zf>d8-f=?b^QAOj8U?p8RZ9PW;|iPK@H> zQX(KU-l;FV|#j1-TgjxpS5{7TONKOG+uJ3#iNM;M ze;^k)r%Lf(*4eQ~jXak$UIq zdg-7jFW%uVm3e!RAt^J10$Gj5J!{}ZMpMCw!_guM(8t{HvVaqxSycI495VYZUB)l( z&45+j3GO>KC}EDtZq;1^cai!tR?LYX^U=-PhKp*6o7wi138x zFJ+Si*ql&=%y=_IhpJQ%emS*L@_kBOtHwI^+{LxZ%~SGQ3F0B}sbYt^{P+4_xv;z2Mse3N8jK1u5h{38qnSh6MQz*A7 z8^7qQvzS%Z7(Z>>s3Um;TaDP_S75S|z1GxD9cu44Y2Nl>}`S*T^xFMJ}I@RMt!jHJoo~9GEVy{=#u9N>sH-Qp~Ut z5%*egC_3TB!Ag~v;abSyG<8qh^F64C*OMnmGmXa@ke4xzU1N1IDSy}x{>%=OGSn0F z=|}m;|I`5+YFAi5ChbhL{mc_{3_#MM=Y*zcqV!E<9YM?nGk<mcYCN2BI*Kl!e(i~@32)I7S=Z| zP2XpFoulAl0AHN2dBfl5l{N>HqWe{!#Snj&5*{-$=kE=g`F7(*<3-1D_(cnIz(~!4C z;C&xKWN(kp`D2_z@ljGCm+X>D(*t4*b-IoQT>(VUEX8uLVAo6|Xlv_L62(}G(i{Yw z0hraQ(I6CR*eD9(hH$Ycx0Fbt_(MFWJ_S15vnTdj<~>szr+8GXDRnPcH;n$lA1IWe z9F7GRrR&qJ9@>$7rq3&ba1?!|GEVcvROh33aIkNql*F$9&M9u^4Aiyv%e@qTFpjT! z3f_ppwK}`m2Uo0r=3s$4R#d?Zn~#U>uo&#!D3C#ywXKX( z=L2RiA7@r4u*g4U>0!#~s(m{k)4~0ksY~jBNfnftbDKsUNS(4kZCqhf2wU^s!P|L3 zI%qfggW(DaaZ}B<5QfSSI1gi1$zUZf=a1Rv9A^iq5q=-Z)+Qlic5@B;){d3slak^U z!7Ghl16dUsO(uL=3mPatG|ylRI?zK>su(&+6`9Sjlim9k zVwDWfrMPIP+QnI&FBDyo87$qr@Ui7MYDOzz00k^U}7;}c~M<-`zHKDMo<2Pq38;IZ|Yz!G+Vc@9h)v{6spE?ta;^6(T z^!A2Gfo26EX^|rGxDItlz#E4cd04^+GVE5o zx9bzGidN|yoNsjLb^ zO>A|uI(L+1}L3YqAA4(BrJ=v>!Rd8RsvsAt;{pS|;#zk?*6PH*LkDh#4Ln6)c4^(89R zz#7=<5;QqG8#*{4(uq$STPtGdNzm8!;^U9iqDlueoKLJS-J|t;atrbuTp8cOLXgs> z&1VUfmM{R{UCr`0L-5%J*bVYvGoYZh$oIjeiq14=@|%{g>rLZ~m)0#tPL}1l@+>10 zK%b2=GW=z1@0I7nxRCGj(^5NMq)D}|4Ja`lt(Jv9G;ES`qcv8MTdcsL&x40UlSI=w zRvF^bKqzm?3WEK4B!X;>k}StDEOkR>u66ai$S5(!kgq6}8N_NQHKJAu)GGRh`;Vw? zsUcedqt|{{wu{tG$ML&*HNP@MJ$^{Bp(lynO_qRq^65Pa5$ZCA;xPNYOokkeTc?fA zpqSogtU+>`UoD?Ht^|0L= zH_iQ+Z?yi-Qd#H*RFG6W4hWG(uDPX&>0M{bYzwN|6O1F#$Z9`4#6pGm)8*CarJ6zl z-^^20Hm||!TJ)u*NRHU+Fi$*wKh$+Cor8A9;pT8;L0sf?Fa#MdgUfs@Z$g&lZ;zXY z@qkYy*4=oXXyM;WNUHUOfg<#S21~V_;BZrkFb0GEQ+$(rq2hy$2uD-vPGDguEICe^ zsoQT)zyrY*s7mW?eJaQ2Aqe;M(vHKLd-Fu@n{R3n_}1^VGEwaL4;9iX_7GkVP>t&y z5(;pA59qzQfoF+u*014HX%!$W$6n@gLXTa)18jLgT9v>6?`H%Na5ZAl2kq0ooW-(U zg>Xh9VWi-ir`h@X_Wijo|8jiv%g(4Rf#}TSi6&~OYW5gt>u4Ody zMIGVzte;9$?+s8<$n~^9`+&@Kv_}ReAA*%L2R`PL=Q__NE9;6w4c?4_;*7(dI}RtPL%%lZ0c=sVPr5!=Zo@zkn-hpzA&o=xN{9 zovz-bTQwh#|Lt$BdygINkXs$Le9lSzrS>LB+%7@ zS}heu{%p~Ku|F64F-jY@B;aaub}lc?r765lf_aAQTj&(zxI|j3l_Y&otOYe;P7pO| zCQKcTp-pTZ7C!yh5^_{a=yO;p;VF>fn_J?Eog^J@`6$nT>ca)Ohh zVBi>;aeJleLU|Z$O7^m}mmF|;b@FlCjvkeAfcPN7nsi7%H_O;ampyR4ZZ~J%yuDt^2f+=lZ`s2Fv}YqbdjvcR~oG z*zEgu$Z;2g`io~UN?0UQhPwoJABz1>-|Kqrw8C&K*_Rc(KLz-jjXzf{@VRQvzJ88U zthL<$0tYl98cw2^7?3j|Vp{{jxS{5vp1KjbS60-@Z1gLqb5^mg z`%{4LVYhv~_f)-U?_?NoLKyQ`6;*{2{~0R$p3a-ITDlhgz#lX}YQ*(~C5<^+!JI#N z4A1Awl2{9hLuFxre}{s+yq}@E(F8_n;qmd6t{AL%Vbub;%a!RDC(%oc4*a zzgon`%i3?Moo`az(d7Nh7h6AE>NB^Mp2AiNVMk#;;ix=u4`o|+E2BU7W>|^$bNXr4 zcGXW&PpB;=ef2)z3@<&d1(^TPHCg{bL5PnxN8Qyi^eeuZ38UID59_#9;=MpBhMtLK zguZ2V%tQtLU&lud1z4IT-{c_6fjQ_;g6NFvt;y-P5EOBOg^5-xJT@7!n=7+wQ4{qn z{?cLZ8|Kgb>H2na1I3Rg{u3;P32K3vUl%1tuB%#GDI;>cmik3}4kk6V33rAb>L9@p zW^2ZDI(=n)+coJj!$tCf-@U&2Q6C?XBD3fr6$Of2;VMS}wVo6~G_oVtt4J63YkCk8 zr#v9Bq0n?L>-AV0*$piz5Jo#&DKQyESjaR5m__r8X#6C>KxINgSF zRwe1r?Ls(*;(1%*4C$p9R0<J_w55X!?!kTZpbhp?2?XNcbC#LI_D^o(`RYmFxRO6^^^{Y z#3Q*#u3xiS_ItOG{8Dq;-aDDRwlCD)Ip|?7-KP=pEtWTVI*0^W$eaALOfMx5cHp3d zhv9FpIW-wLH`l)s6@OuZYJ{5*3fC?=x($j?hOm@fv2SraRqm5Im>v6Nc2&9o4rpk< z{}5Ut!If7nV&^-h2df3_EE@zE{nj$MURKVpvccw!AJ2U*cWl9|CFJXruBu4Dd7*yac;^|9FmNAMe+R{O@3-3WV^S_mf|O3T?ID zYmx8Yhc=oG^JQ(ti#T{}wI3ydgdqonSGlkhbNBC|U(9hKjUTeB$Hk)lhU+uMk2>zj zG19-3lrL9t(Ttu=&>!i&LK0T9Y$VudDRN86LC*ji9@OQq)}b^5Gcbj0eJDCLDb10y zbQ+aY;BP-G%DU^UI?mIcbo%q@fRy6!Mt~-m+ew*CXV#4j6+NHBJwUY)Y1BFxM7KoS z_2p8(Nt7buv6uzPf(2Fo-6~Sd#hN}?hQI(IVcx)0R$$nC)_S>>a=2KjE_K}-e*uF_ z`Ia}eC?6gL5yC)0A|Ps7I_bojNk~xDKf^N##I??=CgNwh3SSPt3onYAqC$Z<@=V2} ziw=^FEXvHEeM4ZMFGSWSMidxwhSl3)u#Q zeZ^_O%P?+^>|BCny8ZlbqQeVFKF;C&=%~WR=Ay_U(J&x!jMiuSsEWyug$6gA&N(8+ z90F9ROjw50%xTBr9qDNc5qy;-q6|d)#h#4AD;}BQE^&E)?YX6=y zmXS3%oO+th3-+VsT~%m9nSsJQl5_O@Rbw`rEIlH9=9)Ask$z{KT#{uxu1Y!GkXmw-5BQ6sSa7C&yTZ;`AG2>bdU-H@XDnsc=LUWYyP< zP|TOp|C2na0~%U#T66N1EM3rg+MZgDRi5K^Po;*$pz_%bZKZHM9wR57)8~DnANh*-^9v{ir1@0E|SiF`R ziVlM?)9=saiD3{SNWtpE8rWxDQ=fYLC9%G?^O8^b~~~=T!gI9H-zO5QVNs z%r|kk6PD8HO{VJIrXp3p09%rL5QrdK%7 ziTPz!xj)!CIm$|D`b)@v*h>ipO@a2Lt+JlvosC88I#dhC*67K;!Z)I*4~oei)h&Mz zbz7%FctBOCeFE63W7LQ*mpsF2_(3WTA_vQ}`kUH-cBO8W|6LyrRGY+R4-V_1pEbu< zIHKDV7{5oO90a%tNarrdp~x_^Kp;gfv=#JOiWQK`eFU{C(ROnSi428@0EUTz@B15* zanKlMs^ar^YS+7yX!r?RGYyW$oa};sQiMLc82k<)Q76&~RoidBLi1`*xyTiCL-i;co!-W18ihhSPO9VE*5*pA=B)mAu+#&)-sgxomuzS~zp8>VpS^*qAs zJbz!Z`UioEh;J5B=wc90jL|923&x0eo@yK`2dZ4su&+ATnR0#{8Vx9naH!o$<#rj^ zryxvGLW>^B&6#El(kbS_!J#Lnr>q<>9#QZQth@|Ul2B~Ug&dveXDwmG$DLM@{Z}?{ zh@iMwhXhpo9UgX1d0OR4mSNnzVbJJAaNeb?5&j?sFaDP-H$+|9yf6I$`ay!A{9r^F zBrAY8p)Y45t(#~_Xy8Umfv|so3x~nORcd4uqo4z-U1SRSJkh0ykDaK21+Uj zD5Ovl5efU<%+O!rOoL2l(sy!&`A?{{erWhLQt)tX27VXCl4p} z(e-Q>SHS@azBrC5bRopnv+Laqt%q0BZP%3^rWh0Z;yU;-gs{k&EXKSP#c)$g51K1xFe0;exclaZ>--0EEuD6y=lf-zsDkjy@7Hv$ z1^+X}mk_Z~inE%ddx@?Y@GgymW6=^9J#*2l?E;P&IEa#12&Zp|0Rt))rX?2!O_Z1b ziJTdS(mWVVQChp7!rdlhvv*e-;fVaLc> ztK5Vaz$BTT0M;=URqqW`J{dkVK|Tr-4V43mSUG+iajSvEgZy*1eBw`}&8YF7;AR09 zP-_(dMFGLyX+U%SJG`PTWoV8nm|}E%wfrs7F3<5yndW&*AaCMt|1~VxH6-vq>Bc{c?<>RWy@E|3E=KJUpDJ=Qgsj12khZ{rko5G8B zB7?Ex{!BN7(G?Rm_p6Rq7ccE)c zf*1W7Sj@+lCH;dEBe7OzRZ%7N?rB7ROv{s!0D&xBotj{z*Uo_gnw2;s3w>2POWI=)bY+|8ufx cr?_~7RG)fuILZd?K)gS)Qc9B5;)a3$2S#KsC;$Ke literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.7/locations.md b/site/content/docs/v1.7/locations.md new file mode 100644 index 000000000..2f54077dd --- /dev/null +++ b/site/content/docs/v1.7/locations.md @@ -0,0 +1,260 @@ +--- +title: "Backup Storage Locations and Volume Snapshot Locations" +layout: docs +--- + +## Overview + +Velero has two custom resources, `BackupStorageLocation` and `VolumeSnapshotLocation`, that are used to configure where Velero backups and their associated persistent volume snapshots are stored. + +A `BackupStorageLocation` is defined as a bucket or a prefix within a bucket under which all Velero data is stored and a set of additional provider-specific fields (AWS region, Azure storage account, etc.). Velero assumes it has control over the location you provide so you should use a dedicated bucket or prefix. If you provide a prefix, then the rest of the bucket is safe to use for multiple purposes. The [API documentation][1] captures the configurable parameters for each in-tree provider. + +A `VolumeSnapshotLocation` is defined entirely by provider-specific fields (AWS region, Azure resource group, Portworx snapshot type, etc.) The [API documentation][2] captures the configurable parameters for each in-tree provider. + +The user can pre-configure one or more possible `BackupStorageLocations` and one or more `VolumeSnapshotLocations`, and can select *at backup creation time* the location in which the backup and associated snapshots should be stored. + +This configuration design enables a number of different use cases, including: + +- Take snapshots of more than one kind of persistent volume in a single Velero backup. For example, in a cluster with both EBS volumes and Portworx volumes +- Have some Velero backups go to a bucket in an eastern USA region, and others go to a bucket in a western USA region, or to a different storage provider +- For volume providers that support it, like Portworx, you can have some snapshots stored locally on the cluster and have others stored in the cloud + +## Limitations / Caveats + +- Velero supports multiple credentials for `BackupStorageLocations`, allowing you to specify the credentials to use with any `BackupStorageLocation`. + However, use of this feature requires support within the plugin for the object storage provider you wish to use. + All [plugins maintained by the Velero team][5] support this feature. + If you are using a plugin from another provider, please check their documentation to determine if this feature is supported. + +- Velero only supports a single set of credentials for `VolumeSnapshotLocations`. + Velero will always use the credentials provided at install time (stored in the `cloud-credentials` secret) for volume snapshots. + +- Volume snapshots are still limited by where your provider allows you to create snapshots. For example, AWS and Azure do not allow you to create a volume snapshot in a different region than where the volume is. If you try to take a Velero backup using a volume snapshot location with a different region than where your cluster's volumes are, the backup will fail. + +- Each Velero backup has one `BackupStorageLocation`, and one `VolumeSnapshotLocation` per volume provider. It is not possible (yet) to send a single Velero backup to multiple backup storage locations simultaneously, or a single volume snapshot to multiple locations simultaneously. However, you can always set up multiple scheduled backups that differ only in the storage locations used if redundancy of backups across locations is important. + +- Cross-provider snapshots are not supported. If you have a cluster with more than one type of volume, like EBS and Portworx, but you only have a `VolumeSnapshotLocation` configured for EBS, then Velero will **only** snapshot the EBS volumes. + +- Restic data is stored under a prefix/subdirectory of the main Velero bucket, and will go into the bucket corresponding to the `BackupStorageLocation` selected by the user at backup creation time. + +- Velero's backups are split into 2 pieces - the metadata stored in object storage, and snapshots/backups of the persistent volume data. Right now, Velero *itself* does not encrypt either of them, instead it relies on the native mechanisms in the object and snapshot systems. A special case is restic, which backs up the persistent volume data at the filesystem level and send it to Velero's object storage. + +- Velero's compression for object metadata is limited, using Golang's tar implementation. In most instances, Kubernetes objects are limited to 1.5MB in size, but many don't approach that, meaning that compression may not be necessary. Note that restic has not yet implemented compression, but does have de-deduplication capabilities. + +## Examples + +Let's look at some examples of how you can use this configuration mechanism to address some common use cases: + +### Take snapshots of more than one kind of persistent volume in a single Velero backup + +During server configuration: + +```shell +velero snapshot-location create ebs-us-east-1 \ + --provider aws \ + --config region=us-east-1 + +velero snapshot-location create portworx-cloud \ + --provider portworx \ + --config type=cloud +``` + +During backup creation: + +```shell +velero backup create full-cluster-backup \ + --volume-snapshot-locations ebs-us-east-1,portworx-cloud +``` + +Alternately, since in this example there's only one possible volume snapshot location configured for each of our two providers (`ebs-us-east-1` for `aws`, and `portworx-cloud` for `portworx`), Velero doesn't require them to be explicitly specified when creating the backup: + +```shell +velero backup create full-cluster-backup +``` + +### Have some Velero backups go to a bucket in an eastern USA region (default), and others go to a bucket in a western USA region + +In this example, two `BackupStorageLocations` will be created within the same account but in different regions. +They will both use the credentials provided at install time and stored in the `cloud-credentials` secret. +If you need to configure unique credentials for each `BackupStorageLocation`, please refer to the [later example][8]. + +During server configuration: + +```shell +velero backup-location create backups-primary \ + --provider aws \ + --bucket velero-backups \ + --config region=us-east-1 \ + --default + +velero backup-location create backups-secondary \ + --provider aws \ + --bucket velero-backups \ + --config region=us-west-1 +``` + +A "default" backup storage location (BSL) is where backups get saved to when no BSL is specified at backup creation time. + +You can change the default backup storage location at any time by setting the `--default` flag using the +`velero backup-location set` command and configure a different location to be the default. + +Examples: + +```shell +velero backup-location set backups-secondary --default +``` + + + +During backup creation: + +```shell +velero backup create full-cluster-backup +``` + +Or: + +```shell +velero backup create full-cluster-alternate-location-backup \ + --storage-location backups-secondary +``` + +### For volume providers that support it (like Portworx), have some snapshots be stored locally on the cluster and have others be stored in the cloud + +During server configuration: + +```shell +velero snapshot-location create portworx-local \ + --provider portworx \ + --config type=local + +velero snapshot-location create portworx-cloud \ + --provider portworx \ + --config type=cloud +``` + +During backup creation: + +```shell +# Note that since in this example you have two possible volume snapshot locations for the Portworx +# provider, you need to explicitly specify which one to use when creating a backup. Alternately, +# you can set the --default-volume-snapshot-locations flag on the `velero server` command (run by +# the Velero deployment) to specify which location should be used for each provider by default, in +# which case you don't need to specify it when creating a backup. +velero backup create local-snapshot-backup \ + --volume-snapshot-locations portworx-local +``` + +Or: + +```shell +velero backup create cloud-snapshot-backup \ + --volume-snapshot-locations portworx-cloud +``` + +### Use a single location + +If you don't have a use case for more than one location, it's still easy to use Velero. Let's assume you're running on AWS, in the `us-west-1` region: + +During server configuration: + +```shell +velero backup-location create backups-primary \ + --provider aws \ + --bucket velero-backups \ + --config region=us-west-1 \ + --default + +velero snapshot-location create ebs-us-west-1 \ + --provider aws \ + --config region=us-west-1 +``` + +During backup creation: + +```shell +# Velero will automatically use your configured backup storage location and volume snapshot location. +# Nothing needs to be specified when creating a backup. +velero backup create full-cluster-backup +``` + +### Create a storage location that uses unique credentials + +It is possible to create additional `BackupStorageLocations` that use their own credentials. +This enables you to save backups to another storage provider or to another account with the storage provider you are already using. + +If you create additional `BackupStorageLocations` without specifying the credentials to use, Velero will use the credentials provided at install time and stored in the `cloud-credentials` secret. +Please see the [earlier example][9] for details on how to create multiple `BackupStorageLocations` that use the same credentials. + +#### Prerequisites +- This feature requires support from the [object storage provider plugin][5] you wish to use. + All plugins maintained by the Velero team support this feature. + If you are using a plugin from another provider, please check their documentation to determine if this is supported. +- The [plugin for the object storage provider][5] you wish to use must be [installed][6]. +- You must create a file with the object storage credentials. Follow the instructions provided by your object storage provider plugin to create this file. + +Once you have installed the necessary plugin and created the credentials file, create a [Kubernetes Secret][7] in the Velero namespace that contains these credentials: + +```shell +kubectl create secret generic -n velero credentials --from-file=bsl= +``` + +This will create a secret named `credentials` with a single key (`bsl`) which contains the contents of your credentials file. +Next, create a `BackupStorageLocation` that uses this Secret by passing the Secret name and key in the `--credential` flag. +When interacting with this `BackupStroageLocation` in the future, Velero will fetch the data from the key within the Secret you provide. + +For example, a new `BackupStorageLocation` with a Secret would be configured as follows: + +```bash +velero backup-location create \ + --provider \ + --bucket \ + --config region= \ + --credential== +``` + +The `BackupStorageLocation` is ready to use when it has the phase `Available`. +You can check the status with the following command: + +```bash +velero backup-location get +``` + +To use this new `BackupStorageLocation` when performing a backup, use the flag `--storage-location ` when running `velero backup create`. +You may also set this new `BackupStorageLocation` as the default with the command `velero backup-location set --default `. + +### Modify the credentials used by an existing storage location + +By default, `BackupStorageLocations` will use the credentials provided at install time and stored in the `cloud-credentials` secret in the Velero namespace. +You can modify these existing credentials by [editing the `cloud-credentials` secret][10], however, these changes will apply to all locations using this secret. +This may be the desired outcome, for example, in the case where you wish to rotate the credentials used for a particular account. + +You can also opt to modify an existing `BackupStorageLocation` such that it uses its own credentials by using the `backup-location set` command. + +If you have a credentials file that you wish to use for a `BackupStorageLocation`, follow the instructions above to create the Secret with that file in the Velero namespace. + +Once you have created the Secret, or have an existing Secret which contains the credentials you wish to use for your `BackupStorageLocation`, set the credential to use as follows: + +```bash +velero backup-location set \ + --credential== +``` + +## Additional Use Cases + +1. If you're using Azure's AKS, you may want to store your volume snapshots outside of the "infrastructure" resource group that is automatically created when you create your AKS cluster. This is possible using a `VolumeSnapshotLocation`, by specifying a `resourceGroup` under the `config` section of the snapshot location. See the [Azure volume snapshot location documentation][3] for details. + +1. If you're using Azure, you may want to store your Velero backups across multiple storage accounts and/or resource groups/subscriptions. This is possible using a `BackupStorageLocation`, by specifying a `storageAccount`, `resourceGroup` and/or `subscriptionId`, respectively, under the `config` section of the backup location. See the [Azure backup storage location documentation][4] for details. + + + +[1]: api-types/backupstoragelocation.md +[2]: api-types/volumesnapshotlocation.md +[3]: https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure/blob/main/volumesnapshotlocation.md +[4]: https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure/blob/main/backupstoragelocation.md +[5]: /plugins +[6]: overview-plugins.md +[7]: https://kubernetes.io/docs/concepts/configuration/secret/ +[8]: #create-a-storage-location-that-uses-unique-credentials +[9]: #have-some-velero-backups-go-to-a-bucket-in-an-eastern-usa-region-default-and-others-go-to-a-bucket-in-a-western-usa-region +[10]: https://kubernetes.io/docs/concepts/configuration/secret/#editing-a-secret diff --git a/site/content/docs/v1.7/maintainers.md b/site/content/docs/v1.7/maintainers.md new file mode 100644 index 000000000..5c7c1f3d6 --- /dev/null +++ b/site/content/docs/v1.7/maintainers.md @@ -0,0 +1,37 @@ +--- +title: "Instructions for Maintainers" +layout: docs +toc: "true" +--- + +There are some guidelines maintainers need to follow. We list them here for quick reference, especially for new maintainers. These guidelines apply to all projects in the Velero org, including the main project, the Velero Helm chart, and all other [related repositories](https://github.com/vmware-tanzu/velero/blob/v1.7.0/GOVERNANCE.md#code-repositories). + +Please be sure to also go through the guidance under the entire [Contribute](start-contributing/) section. + +## Reviewing PRs +- PRs require 2 approvals before it is mergeable. +- The second reviewer usually merges the PR (if you notice a PR open for a while and with 2 approvals, go ahead and merge it!) +- As you review a PR that is not yet ready to merge, please check if the "request review" needs to be refreshed for any reviewer (this is better than @mention at them) +- Refrain from @mention other maintainers to review the PR unless it is an immediate need. All maintainers already get notified through the automated add to the "request review". If it is an urgent need, please add a helpful message as to why it is so people can properly prioritize work. +- There is no need to manually request reviewers: after the PR is created, all maintainers will be automatically added to the list (note: feel free to remove people if they are on PTO, etc). +- Be familiar with the [lazy consensus](https://github.com/vmware-tanzu/velero/blob/v1.7.0/GOVERNANCE.md#lazy-consensus) policy for the project. + +Some tips for doing reviews: +- There are some [code standards and general guidelines](https://velero.io/docs/v1.7/code-standards) we aim for +- We have [guidelines for writing and reviewing documentation](https://velero.io/docs/v1.7/style-guide/) +- When reviewing a design document, ensure it follows [our format and guidelines]( https://github.com/vmware-tanzu/velero/blob/v1.7.0/design/_template.md). Also, when reviewing a PR that implements a previously accepted design, ensure the associated design doc is moved to the [design/implemented](https://github.com/vmware-tanzu/velero/tree/main/design/implemented) folder. + + +## Creating a release +Maintainers are expected to create releases for the project. We have parts of the process automated, and full [instructions](release-instructions). +We are working towards automating more the Velero testing, but there is still a need for manual testing as part of the release process. +The manual test cases for release testing are documented [here](./manual-testing). + +## Community support +Maintainers are expected to participate in the community support rotation. We have guidelines for how we handle the [support](support-process). + +## Community engagement +Maintainers for the Velero project are highly involved with the open source community. All the online community meetings for the project are listed in our [community](community) page. + +## How do I become a maintainer? +The Velero project welcomes contributors of all kinds. We are also always on the look out for a high level of engagement from contributors and opportunities to bring in new maintainers. If this is of interest, take a look at how [adding a maintainer](https://github.com/vmware-tanzu/velero/blob/v1.7.0/GOVERNANCE.md#maintainers) is decided. diff --git a/site/content/docs/v1.7/manual-testing.md b/site/content/docs/v1.7/manual-testing.md new file mode 100644 index 000000000..d7d896883 --- /dev/null +++ b/site/content/docs/v1.7/manual-testing.md @@ -0,0 +1,92 @@ +--- +title: "Manual Testing Requirements for Velero" +layout: docs +--- + +Although we have automated unit and end-to-end tests, there is still a need for Velero to undergo manual tests during a release. +This document outlines the manual test operations that Velero needs to correctly perform in order to be considered ready for release. + +## Current test cases + +The following are test cases that are currently performed as part of a Velero release. + +### Install + +- Verify that Velero CRDs are compatible with the earliest and latest versions of Kubernetes that we support: + - Kubernetes v1.12 + - Kubernetes v1.20 + +### Upgrade + +- Verify that Velero upgrade instructions work + +### Basic functionality + +The "Backup and Restore" test cases below describe general backup and restore functionality that needs to run successfully on all the following providers that we maintain plugins for: +- AWS +- GCP +- Microsoft Azure +- VMware vSphere + +#### Backup and Restore + +- Verify that a backup and restore using Volume Snapshots can be performed +- Verify that a backup and restore using Restic can be performed +- Verify that a backup of a cluster workload can be restored in a new cluster +- Verify that an installation using the latest version can be used to restore from backups created with the last 3 versions. + - e.g. Install Velero 1.6 and use it to restore backups from Velero v1.3, v1.4, v1.5. + +### Working with Multiple Providers + +The following are test cases that exercise Velero behaviour when interacting with multiple providers: + +- Verify that a backup and restore to multiple BackupStorageLocations using the same provider with unique credentials can be performed +- Verify that a backup and restore to multiple BackupStorageLocations using different providers with unique credentials can be performed +- Verify that a backup and restore that includes volume snapshots using different providers for the snapshots and object storage can be performed + - e.g. perform a backup and restore using AWS for the VolumeSnapshotLocation and Azure Blob Storage as the BackupStorageLocation + +## Future test cases + +The following are test cases that are not currently performed as part of a Velero release but cases that we will want to cover with future releases. + +### Schedules + +- Verify that schedules create a backup upon creation and create Backup resources at the correct frequency + +### Resource management + +- Verify that deleted backups are successfully removed from object storage +- Verify that backups that have been removed from object storage can still be deleted with `velero delete backup` +- Verify that Volume Snapshots associated with a deleted backup are removed +- Verify that backups that exceed their TTL are deleted +- Verify that existing backups in object storage are synced to Velero + +### Restic repository test cases + +- Verify that restic repository maintenance is performed as the specified interval + +### Backup Hooks + +- Verify that a pre backup hook provided via pod annotation is performed during backup +- Verify that a pre backup hook provided via Backup spec is performed during backup +- Verify that a post backup hook provided via pod annotation is performed during backup +- Verify that a post backup hook provided via Backup spec is performed during backup + +### Restore Hooks + +- Verify that an InitContainer restore hook provided via pod annotation is performed during restore +- Verify that an InitContainer restore hook provided via Restore spec is performed during restore +- Verify that an InitContainer restore hook provided via Restore spec is performed during restore that includes restoring restic volumes +- Verify that an Exec restore hook provided via pod annotation is performed during restore +- Verify that an Exec restore hook provided via Restore spec is performed during restore + + +#### Resource filtering + +- Verify that backups and restores correctly apply the following resource filters: + - `--include-namespaces` + - `--include-resources` + - `--include-cluster-resources` + - `--exclude-namespaces` + - `--exclude-resources` + - `velero.io/exclude-from-backup=true` label diff --git a/site/content/docs/v1.7/migration-case.md b/site/content/docs/v1.7/migration-case.md new file mode 100644 index 000000000..c547ebbb4 --- /dev/null +++ b/site/content/docs/v1.7/migration-case.md @@ -0,0 +1,58 @@ +--- +title: "Cluster migration" +layout: docs +--- + +## Using Backups and Restores + +Velero can help you port your resources from one cluster to another, as long as you point each Velero instance to the same cloud object storage location. This scenario assumes that your clusters are hosted by the same cloud provider. **Note that Velero does not natively support the migration of persistent volumes snapshots across cloud providers.** If you would like to migrate volume data between cloud platforms, please enable [restic][2], which will backup volume contents at the filesystem level. + +1. *(Cluster 1)* Assuming you haven't already been checkpointing your data with the Velero `schedule` operation, you need to first back up your entire cluster (replacing `` as desired): + + ``` + velero backup create + ``` + + The default backup retention period, expressed as TTL (time to live), is 30 days (720 hours); you can use the `--ttl ` flag to change this as necessary. See [how velero works][1] for more information about backup expiry. + +1. *(Cluster 2)* Configure `BackupStorageLocations` and `VolumeSnapshotLocations`, pointing to the locations used by *Cluster 1*, using `velero backup-location create` and `velero snapshot-location create`. Make sure to configure the `BackupStorageLocations` as read-only + by using the `--access-mode=ReadOnly` flag for `velero backup-location create`. + +1. *(Cluster 2)* Make sure that the Velero Backup object is created. Velero resources are synchronized with the backup files in cloud storage. + + ``` + velero backup describe + ``` + + **Note:** The default sync interval is 1 minute, so make sure to wait before checking. You can configure this interval with the `--backup-sync-period` flag to the Velero server. + +1. *(Cluster 2)* Once you have confirmed that the right Backup (``) is now present, you can restore everything with: + + ``` + velero restore create --from-backup + ``` + +## Verify Both Clusters + +Check that the second cluster is behaving as expected: + +1. *(Cluster 2)* Run: + + ``` + velero restore get + ``` + +1. Then run: + + ``` + velero restore describe + ``` + +If you encounter issues, make sure that Velero is running in the same namespace in both clusters. + +## Migrating Workloads Across Different Kubernetes Versions + +Migration across clusters that are not running the same version of Kubernetes might be possible, but some factors need to be considered: compatibility of API groups between clusters for each custom resource, and if a Kubernetes version upgrade breaks the compatibility of core/native API groups. For more information about API group versions, please see [EnableAPIGroupVersions](enable-api-group-versions-feature.md). + +[1]: how-velero-works.md#set-a-backup-to-expire +[2]: restic.md diff --git a/site/content/docs/v1.7/namespace.md b/site/content/docs/v1.7/namespace.md new file mode 100644 index 000000000..68561e720 --- /dev/null +++ b/site/content/docs/v1.7/namespace.md @@ -0,0 +1,22 @@ +--- +title: "Run in a non-default namespace" +layout: docs +--- + +The Velero installation and backups by default are run in the `velero` namespace. However, it is possible to use a different namespace. + +## Customize the namespace during install + +Use the `--namespace` flag, in conjunction with the other flags in the `velero install` command (as shown in the [the Velero install instructions][0]). This will inform Velero where to install. + +## Customize the namespace for operational commands + +To have namespace consistency, specify the namespace for all Velero operational commands to be the same as the namespace used to install Velero: + +```bash +velero client config set namespace= +``` + +Alternatively, you may use the global `--namespace` flag with any operational command to tell Velero where to run. + +[0]: basic-install.md#install-the-cli diff --git a/site/content/docs/v1.7/on-premises.md b/site/content/docs/v1.7/on-premises.md new file mode 100644 index 000000000..30ddf98b3 --- /dev/null +++ b/site/content/docs/v1.7/on-premises.md @@ -0,0 +1,95 @@ +--- +title: "On-Premises Environments" +layout: docs +--- + +You can run Velero in an on-premises cluster in different ways depending on your requirements. + +### Selecting an object storage provider + +You must select an object storage backend that Velero can use to store backup data. [Supported providers][0] contains information on various +options that are supported or have been reported to work by users. + +If you do not already have an object storage system, [MinIO][2] is an open-source S3-compatible object storage system that can be installed on-premises and is compatible with Velero. The details of configuring it for production usage are out of scope for Velero's documentation, but an [evaluation install guide][3] using MinIO is provided for convenience. + +### (Optional) Selecting volume snapshot providers + +If you need to back up persistent volume data, you must select a volume backup solution. [Supported providers][0] contains information on the supported options. + +For example, if you use [Portworx][4] for persistent storage, you can install their Velero plugin to get native Portworx snapshots as part of your Velero backups. + +If there is no native snapshot plugin available for your storage platform, you can use Velero's [restic integration][1], which provides a platform-agnostic file-level backup solution for volume data. + +### Air-gapped deployments + +In an air-gapped deployment, there is no access to the public internet, and therefore no access to public container registries. + +In these scenarios, you will need to make sure that you have an internal registry, such as [Harbor][5], installed and the Velero core and plugin images loaded into your internal registry. + +Below you will find instructions to downloading the Velero images to your local machine, tagging them, then uploading them to your custom registry. + +#### Preparing the Velero image + +First, download the Velero image, tag it for the your private registry, then upload it into the registry so that it can be pulled by your cluster. + +```bash +PRIVATE_REG= +VELERO_VERSION= + +docker pull velero/velero:$VELERO_VERSION +docker tag velero/velero:$VELERO_VERSION $PRIVATE_REG/velero:$VELERO_VERSION +docker push $PRIVATE_REG/velero:$VELERO_VERSION +``` + +#### Preparing plugin images + +Next, repeat these steps for any plugins you may need. This example will use the AWS plugin, but the plugin name should be replaced with the plugins you will need. + +```bash +PRIVATE_REG= +PLUGIN_VERSION= + +docker pull velero/velero-plugin-for-aws:$PLUGIN_VERSION +docker tag velero/velero-plugin-for-aws:$PLUGIN_VERSION $PRIVATE_REG/velero-plugin-for-aws:$PLUGIN_VERSION +docker push $PRIVATE_REG/velero-plugin-for-aws:$PLUGIN_VERSION +``` + +#### Preparing the restic helper image (optional) + +If you are using restic, you will also need to upload the restic helper image. + +```bash +PRIVATE_REG= +VELERO_VERSION= + +docker pull velero/velero-restic-restore-helper:$VELERO_VERSION +docker tag velero/velero-restic-restore-helper:$VELERO_VERSION $PRIVATE_REG/velero-restic-restore-helper:$VELERO_VERSION +docker push $PRIVATE_REG/velero-restic-restore-helper:$VELERO_VERSION +``` + +#### Pulling specific architecture images (optional) + +Velero uses Docker manifests for its images, allowing Docker to pull the image needed based on your client machine's architecture. + +If you need to pull a specific image, you should replace the `velero/velero` image with the specific architecture image, such as `velero/velero-arm`. + +To see an up-to-date list of architectures, be sure to enable Docker experimental features and use `docker manifest inspect velero/velero` (or whichever image you're interested in), and join the architecture string to the end of the image name with `-`. + +#### Installing Velero + +By default, `velero install` will use the public `velero/velero` image. When using an air-gapped deployment, use your private registry's image for Velero and your private registry's images for any plugins. + +```bash +velero install \ + --image=$PRIVATE_REG/velero:$VELERO_VERSION \ + --plugins=$PRIVATE_REG/velero-plugin-for-aws:$PLUGIN_VERSION \ +<....> +``` + + +[0]: supported-providers.md +[1]: restic.md +[2]: https://min.io +[3]: contributions/minio.md +[4]: https://portworx.com +[5]: https://goharbor.io/ diff --git a/site/content/docs/v1.7/output-file-format.md b/site/content/docs/v1.7/output-file-format.md new file mode 100644 index 000000000..8d4823505 --- /dev/null +++ b/site/content/docs/v1.7/output-file-format.md @@ -0,0 +1,224 @@ +--- +title: "Output file format" +layout: docs +--- + +A backup is a gzip-compressed tar file whose name matches the Backup API resource's `metadata.name` (what is specified during `velero backup create `). + +In cloud object storage, each backup file is stored in its own subdirectory in the bucket specified in the Velero server configuration. This subdirectory includes an additional file called `velero-backup.json`. The JSON file lists all information about your associated Backup resource, including any default values. This gives you a complete historical record of the backup configuration. The JSON file also specifies `status.version`, which corresponds to the output file format. + +The directory structure in your cloud storage looks something like: + +``` +rootBucket/ + backup1234/ + velero-backup.json + backup1234.tar.gz +``` + +## Example backup JSON file + +```json +{ + "kind": "Backup", + "apiVersion": "velero.io/v1", + "metadata": { + "name": "test-backup", + "namespace": "velero", + "selfLink": "/apis/velero.io/v1/namespaces/velero/backups/test-backup", + "uid": "a12345cb-75f5-11e7-b4c2-abcdef123456", + "resourceVersion": "337075", + "creationTimestamp": "2017-07-31T13:39:15Z" + }, + "spec": { + "includedNamespaces": [ + "*" + ], + "excludedNamespaces": null, + "includedResources": [ + "*" + ], + "excludedResources": null, + "labelSelector": null, + "snapshotVolumes": true, + "ttl": "24h0m0s" + }, + "status": { + "version": 1, + "formatVersion": "1.1.0", + "expiration": "2017-08-01T13:39:15Z", + "phase": "Completed", + "volumeBackups": { + "pvc-e1e2d345-7583-11e7-b4c2-abcdef123456": { + "snapshotID": "snap-04b1a8e11dfb33ab0", + "type": "gp2", + "iops": 100 + } + }, + "validationErrors": null + } +} +``` +Note that this file includes detailed info about your volume snapshots in the `status.volumeBackups` field, which can be helpful if you want to manually check them in your cloud provider GUI. + +## Output File Format Versioning + +The Velero output file format is intended to be relatively stable, but may change over time to support new features. + +To accommodate this, Velero follows [Semantic Versioning](http://semver.org/) for the file format version. + +Minor and patch versions will indicate backwards-compatible changes that previous versions of Velero can restore, including new directories or files. + +A major version would indicate that a version of Velero older than the version that created the backup could not restore it, usually because of moved or renamed directories or files. + +Major versions of the file format will be incremented with major version releases of Velero. +However, a major version release of Velero does not necessarily mean that the backup format version changed - Velero 3.0 could still use backup file format 2.0, as an example. + +## Versions + +### File Format Version: 1.1 (Current) + +Version 1.1 added support of API groups versions as part of the backup. Previously, only the preferred version of each API groups was backed up. Each resource has one or more sub-directories: one sub-directory for each supported version of the API group. The preferred version API Group of each resource has the suffix "-preferredversion" as part of the sub-directory name. For backward compatibility, we kept the classic directory structure without the API group version, which sits on the same level as the API group sub-directory versions. + +By default, only the preferred API group of each resource is backed up. To take a backup of all API group versions, you need to run the Velero server with the `--features=EnableAPIGroupVersions` feature flag. This is an experimental flag and the restore logic to handle multiple API group versions is documented at [EnableAPIGroupVersions](enable-api-group-versions-feature.md). + +When unzipped, a typical backup directory (`backup1234.tar.gz`) taken with this file format version looks like the following (with the feature flag): + +``` +resources/ + persistentvolumes/ + cluster/ + pv01.json + ... + v1-preferredversion/ + cluster/ + pv01.json + ... + configmaps/ + namespaces/ + namespace1/ + myconfigmap.json + ... + namespace2/ + ... + v1-preferredversion/ + namespaces/ + namespace1/ + myconfigmap.json + ... + namespace2/ + ... + pods/ + namespaces/ + namespace1/ + mypod.json + ... + namespace2/ + ... + v1-preferredversion/ + namespaces/ + namespace1/ + mypod.json + ... + namespace2/ + ... + jobs.batch/ + namespaces/ + namespace1/ + awesome-job.json + ... + namespace2/ + ... + v1-preferredversion/ + namespaces/ + namespace1/ + awesome-job.json + ... + namespace2/ + ... + deployments/ + namespaces/ + namespace1/ + cool-deployment.json + ... + namespace2/ + ... + v1-preferredversion/ + namespaces/ + namespace1/ + cool-deployment.json + ... + namespace2/ + ... + horizontalpodautoscalers.autoscaling/ + namespaces/ + namespace1/ + hpa-to-the-rescue.json + ... + namespace2/ + ... + v1-preferredversion/ + namespaces/ + namespace1/ + hpa-to-the-rescue.json + ... + namespace2/ + ... + v2beta1/ + namespaces/ + namespace1/ + hpa-to-the-rescue.json + ... + namespace2/ + ... + v2beta2/ + namespaces/ + namespace1/ + hpa-to-the-rescue.json + ... + namespace2/ + ... + + ... +``` + +### File Format Version: 1 + +When unzipped, a typical backup directory (`backup1234.tar.gz`) looks like the following: + +``` +resources/ + persistentvolumes/ + cluster/ + pv01.json + ... + configmaps/ + namespaces/ + namespace1/ + myconfigmap.json + ... + namespace2/ + ... + pods/ + namespaces/ + namespace1/ + mypod.json + ... + namespace2/ + ... + jobs/ + namespaces/ + namespace1/ + awesome-job.json + ... + namespace2/ + ... + deployments/ + namespaces/ + namespace1/ + cool-deployment.json + ... + namespace2/ + ... + ... +``` diff --git a/site/content/docs/v1.7/overview-plugins.md b/site/content/docs/v1.7/overview-plugins.md new file mode 100644 index 000000000..037601d51 --- /dev/null +++ b/site/content/docs/v1.7/overview-plugins.md @@ -0,0 +1,29 @@ +--- +title: "Velero plugin system" +layout: docs +--- + +Velero uses storage provider plugins to integrate with a variety of storage systems to support backup and snapshot operations. + +For server installation, Velero requires that at least one plugin is added (with the `--plugins` flag). The plugin will be either of the type object store or volume snapshotter, or a plugin that contains both. An exception to this is that when the user is not configuring a backup storage location or a snapshot storage location at the time of install, this flag is optional. + +Any plugin can be added after Velero has been installed by using the command `velero plugin add `. + +Example with a dockerhub image: `velero plugin add velero/velero-plugin-for-aws:v1.0.0`. + +In the same way, any plugin can be removed by using the command `velero plugin remove `. + +## Creating a new plugin + +Anyone can add integrations for any platform to provide additional backup and volume storage without modifying the Velero codebase. To write a plugin for a new backup or volume storage platform, take a look at our [example repo][1] and at our documentation for [Custom plugins][2]. + +## Adding a new plugin + +After you publish your plugin on your own repository, open a PR that adds a link to it under the appropriate list of [supported providers][3] page in our documentation. + +You can also add the [`velero-plugin` GitHub Topic][4] to your repo, and it will be shown under the aggregated list of repositories automatically. + +[1]: https://github.com/vmware-tanzu/velero-plugin-example/ +[2]: custom-plugins.md +[3]: supported-providers.md +[4]: https://github.com/topics/velero-plugin diff --git a/site/content/docs/v1.7/plugin-release-instructions.md b/site/content/docs/v1.7/plugin-release-instructions.md new file mode 100644 index 000000000..4323d8c9a --- /dev/null +++ b/site/content/docs/v1.7/plugin-release-instructions.md @@ -0,0 +1,30 @@ +--- +title: Releasing Velero plugins +layout: docs +toc: "true" +--- + +Velero plugins maintained by the core maintainers do not have any shipped binaries, only container images, so there is no need to invoke a GoReleaser script. +Container images are built via a CI job on git push. + +Plugins the Velero core team is responsible include all those listed in [the Velero-supported providers list](supported-providers.md) _except_ the vSphere plugin. + + +## Steps +### Open a PR to prepare the repo +1. Update the README.md file to update the compatibility matrix and `velero install` instructions with the expected version number and open a PR. +1. Determining the version number is based on semantic versioning and whether the plugin uses any newly introduced, changed, or removed methods or variables from Velero. +2. Roll all unreleased changelogs into a new `CHANGELOG-v.md` file and delete the content of the `unreleased` folder. Edit the new changelog file as needed. +### Tag +1. Once the PR is merged, checkout the upstream `main` branch. Your local upstream might be named `upstream` or `origin`, so use this command: `git checkout /main`. +1. Tag the git version - `git tag v`. +1. Push the git tag - `git push --tags ` to trigger the image build. +2. Wait for the container images to build. You may check the progress of the GH action that triggers the image build at `https://github.com/vmware-tanzu//actions` +3. Verify that an image with the new tag is available at `https://hub.docker.com/repository/docker/velero//`. +4. Run the Velero [e2e tests][2] using the new image. Until it is made configurable, you will have to edit the [plugin version][1] in the test. +### Release +1. If all e2e tests pass, go to the GitHub release page of the plugin (`https://github.com/vmware-tanzu//releases`) and manually create a release for the new tag. +1. Copy and paste the content of the new changelog file into the release description field. + +[1]: https://github.com/vmware-tanzu/velero/blob/c8dfd648bbe85db0184ea53296de4220895497e6/test/e2e/velero_utils.go#L27 +[2]: https://github.com/vmware-tanzu/velero/tree/main/test/e2e diff --git a/site/content/docs/v1.7/rbac.md b/site/content/docs/v1.7/rbac.md new file mode 100644 index 000000000..a9c22b9f1 --- /dev/null +++ b/site/content/docs/v1.7/rbac.md @@ -0,0 +1,50 @@ +--- +title: "Run Velero more securely with restrictive RBAC settings" +layout: docs +--- + +By default Velero runs with an RBAC policy of ClusterRole `cluster-admin`. This is to make sure that Velero can back up or restore anything in your cluster. But `cluster-admin` access is wide open -- it gives Velero components access to everything in your cluster. Depending on your environment and your security needs, you should consider whether to configure additional RBAC policies with more restrictive access. + +**Note:** Roles and RoleBindings are associated with a single namespaces, not with an entire cluster. PersistentVolume backups are associated only with an entire cluster. This means that any backups or restores that use a restrictive Role and RoleBinding pair can manage only the resources that belong to the namespace. You do not need a wide open RBAC policy to manage PersistentVolumes, however. You can configure a ClusterRole and ClusterRoleBinding that allow backups and restores only of PersistentVolumes, not of all objects in the cluster. + +For more information about RBAC and access control generally in Kubernetes, see the Kubernetes documentation about [access control][1], [managing service accounts][2], and [RBAC authorization][3]. + +## Set up Roles and RoleBindings + +Here's a sample Role and RoleBinding pair. + +```yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + namespace: YOUR_NAMESPACE_HERE + name: ROLE_NAME_HERE + labels: + component: velero +rules: + - apiGroups: + - velero.io + verbs: + - "*" + resources: + - "*" +``` + +```yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: ROLEBINDING_NAME_HERE +subjects: + - kind: ServiceAccount + name: YOUR_SERVICEACCOUNT_HERE +roleRef: + kind: Role + name: ROLE_NAME_HERE + apiGroup: rbac.authorization.k8s.io +``` + +[1]: https://kubernetes.io/docs/reference/access-authn-authz/controlling-access/ +[2]: https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/ +[3]: https://kubernetes.io/docs/reference/access-authn-authz/rbac/ +[4]: namespace.md diff --git a/site/content/docs/v1.7/release-instructions.md b/site/content/docs/v1.7/release-instructions.md new file mode 100644 index 000000000..de601c585 --- /dev/null +++ b/site/content/docs/v1.7/release-instructions.md @@ -0,0 +1,161 @@ +--- +title: "Release Instructions" +layout: docs +toc: "true" +--- +This page covers the steps to perform when releasing a new version of Velero. + +## General notes +- Please read the documented variables in each script to understand what they are for and how to properly format their values. +- You will need to have an upstream remote configured to use to the [vmware-tanzu/velero](https://github.com/vmware-tanzu/velero) repository. + You can check this using `git remote -v`. + The release script ([`tag-release.sh`](https://github.com/vmware-tanzu/velero/blob/v1.7.0/hack/release-tools/tag-release.sh)) will use `upstream` as the default remote name if it is not specified using the environment variable `REMOTE`. +- GA release: major and minor releases only. Example: 1.0 (major), 1.5 (minor). +- Pre-releases: Any release leading up to a GA. Example: 1.4.0-beta.1, 1.5.0-rc.1 +- RC releases: Release Candidate, contains everything that is supposed to ship with the GA release. This is still a pre-release. + +## Velero Release Requirements + +Velero is on a "train leaves the station" model for releases. We will generate a release candidate (RC) +at the scheduled time. Multiple release candidates may be generated, depending on if bugs are found during testing. +When testing has passed a release build will be generated. + +### Release Candidate criteria +The release candidate commit must meet the following criteria: + +* No major bugs outstanding +* Unit tests pass +* E2E tests against latest Kubernetes on AWS, vSphere and kind pass + +Once the release has moved to RC, a code freeze is in effect. Only changes needed to release are allowable. + +### Release criteria +In order for a release candidate to be released, it must meet the following criteria: + +* Unit tests pass +* E2E tests against latest K8S and earliest supported K8S on Azure, vSphere, Kind, AWS, GCP +* Manual tests pass (manual tests will be converted to automated testing) + +When bugs are identified by any of these methods, we will determine whether the bug is a release blocker or not and +a fix generated if it is. When release blocker bugs identifies in an release candidate are fixed, another RC will +be generated and the test cycle will restart. + +## Preparing + +### Create release blog post (GA only) +For each major or minor release, create and publish a blog post to let folks know what's new. Please follow these [instructions](how-to-write-and-release-a-blog-post). + +### Changelog and Docs PR +#### Troubleshooting +- If you encounter the error `You don't have enough free space in /var/cache/apt/archives/` when running `make serve-docs`: run `docker system prune`. + +#### Steps +1. If it doesn't already exist: in a branch, create the file `changelogs/CHANGELOG-..md` by copying the most recent one. +1. Update the file `changelogs/CHANGELOG-..md` + - Run `make changelog` to generate a list of all unreleased changes. + - Copy/paste the output into `CHANGELOG-..md`, under the "All Changes" section for the release. + - You *may* choose to tweak formatting on the list of changes by adding code blocks, etc. + - Update links at the top of the file to point to the new release version +1. Update the main `CHANGELOG.md` file to properly reference the release-specific changelog file + - Under "Current release": + - Should contain only the current GA release. + - Under "Development release": + - Should contain only the latest pre-release + - Move any prior pre-release into "Older releases" +1. GA Only: Remove all changelog files from `changelogs/unreleased`. +1. Generate new docs + - Run `make gen-docs`, passing the appropriate variables. Examples: + a) `VELERO_VERSION=v1.5.0-rc.1 NEW_DOCS_VERSION=v1.5.0-rc.1 make gen-docs`. + b) `VELERO_VERSION=v1.5.0 NEW_DOCS_VERSION=v1.5 make gen-docs`). + - Note: `PREVIOUS_DOCS_VERSION=` is optional; when not set, it will default to the latest doc version. +1. Clean up when there is an existing set of pre-release versioned docs for the version you are releasing + - Example: `site/content/docs/v1.5.0-beta.1` exists, and you're releasing `v1.5.0-rc.1` or `v1.5` + - Remove the directory containing the pre-release docs, i.e. `site/content/docs/`. + - Delete the pre-release docs table of contents file, i.e. `site/data/docs/-toc.yml`. + - Remove the pre-release docs table of contents mapping entry from `site/data/toc-mapping.yml`. + - Remove all references to the pre-release docs from `site/config.yml`. +1. Create the "Upgrade to $major.minor" page if it does not already exist ([example](https://velero.io/docs/v1.5/upgrade-to-1.5/)). + If it already exists, update any usage of the previous version string within this file to use the new version string instead ([example](https://github.com/vmware-tanzu/velero/pull/2941/files#diff-d594f8fd0901fed79c39aab4b348193d)). + This needs to be done in both the versioned and the `main` folders. +1. Review and submit PR + - Follow the additional instructions at `site/README-HUGO.md` to complete the docs generation process. + - Do a review of the diffs, and/or run `make serve-docs` and review the site. + - Submit a PR containing the changelog and the version-tagged docs. + +## Velero release +### Notes +- Pre-requisite: PR with the changelog and docs is merged, so that it's included in the release tag. +- This process is the same for both pre-release and GA. +- Refer to the [General notes](general-notes) above for instructions. + +#### Troubleshooting +- If the dry-run fails with random errors, try running it again. + +#### Steps +1. Create a tagged release in dry-run mode + - This won't push anything to GitHub. + - Run `VELERO_VERSION=v1.0.0-rc.1 REMOTE= GITHUB_TOKEN=REDACTED ./hack/release-tools/tag-release.sh`. + - Fix any issue. +1. Create a tagged release and push it to GitHub + - Run `VELERO_VERSION=v1.0.0-rc.1 REMOTE= GITHUB_TOKEN=REDACTED ./hack/release-tools/tag-release.sh publish`. +1. Publish the release + - Navigate to the draft GitHub release at https://github.com/vmware-tanzu/velero/releases and edit the release. + - If this is a patch release (e.g. `v1.4.1`), note that the full `CHANGELOG-1.4.md` contents will be included in the body of the GitHub release. You need to delete the previous releases' content (e.g. `v1.2.0`'s changelog) so that only the latest patch release's changelog shows. + - Do a quick review for formatting. + - **Note:** the `goreleaser` process should have detected if it's a pre-release version and, if so, checked the box at the bottom of the GitHub release page appropriately, but it's always worth double-checking. + - Verify that GitHub has built and pushed all the images (it takes a while): https://github.com/vmware-tanzu/velero/actions + - Verify that the images are on Docker Hub: https://hub.docker.com/r/velero/velero/tags + - Verify that the assets were published to the GitHub release + - Publish the release. +1. Test the release + - By now, the Docker images should have been published. + - Perform a smoke-test - for example: + - Download the CLI from the GitHub release + - Use it to install Velero into a cluster (or manually update an existing deployment to use the new images) + - Verify that `velero version` shows the expected output + - Run a backup/restore and ensure it works + +## Homebrew release (GA only) +These are the steps to update the Velero Homebrew version. + +### Steps +- If you don't already have one, create a [GitHub access token for Homebrew](https://github.com/settings/tokens/new?scopes=gist,public_repo&description=Homebrew) +- Run `export HOMEBREW_GITHUB_API_TOKEN=your_token_here` on your command line to make sure that `brew` can work on GitHub on your behalf. +- Run `hack/release-tools/brew-update.sh`. This script will download the necessary files, do the checks, and invoke the brew helper to submit the PR, which will open in your browser. +- Update Windows Chocolatey version. From a Windows computer, follow the step-by-step instructions to [create the Windows Chocolatey package for Velero CLI](https://github.com/adamrushuk/velero-choco/blob/main/README.md) +- +## Plugins + +To release plugins maintained by the Velero team, follow the [plugin release instructions](plugin-release-instructions.md). + +After the plugin images are built, be sure to update any [e2e tests][3] that use these plugins. + +## How to write and release a blog post +What to include in a release blog: +* Thank all contributors for their involvement in the release. + * Where possible shoutout folks by name or consider spotlighting new maintainers. +* Highlight the themes, or areas of focus, for the release. Some examples of themes are security, bug fixes, feature improvements. See past Velero [release blog posts][1] for more examples. +* Include summaries of new features or workflows introduced in a release. + * This can also include new project initiatives, like a code-of-conduct update. + * Consider creating additional blog posts that go through new features in more detail. Plan to publish additional blogs after the release blog (all blogs don’t have to be publish all at once). + +Release blog post PR: +* Prepare a PR containing the release blog post. Read the [website guidelines][2] for more information on creating a blog post. It's usually easiest to make a copy of the most recent existing post, then replace the content as appropriate. +* You also need to update `site/index.html` to have "Latest Release Information" contain a link to the new post. +* Plan to publish the blog post the same day as the release. + +## Announce a release +Once you are finished doing the release, let the rest of the world know it's available by posting messages in the following places. +1. GA Only: Merge the blog post PR. +1. Velero's Twitter account. Maintainers are encouraged to help spread the word by posting or reposting on social media. +1. Community Slack channel. +1. Google group message. + +What to include: +* Thank all contributors +* A brief list of highlights in the release +* Link to the release blog post, release notes, and/or github release page + +[1]: https://velero.io/blog +[2]: website-guidelines.md +[3]: https://github.com/vmware-tanzu/velero/tree/main/test/e2e diff --git a/site/content/docs/v1.7/release-schedule.md b/site/content/docs/v1.7/release-schedule.md new file mode 100644 index 000000000..ca88383d2 --- /dev/null +++ b/site/content/docs/v1.7/release-schedule.md @@ -0,0 +1,15 @@ +--- +title: "Release Schedule" +layout: docs +toc: "true" +--- + +Definitions borrowed from [the Kubernetes release process document](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-release/release.md#definitions) + +General phases for a Velero release +- Enhancement/Design freeze +- Implementation phase +- Feature freeze & pruning +- Code freeze & prerelease +- Release + diff --git a/site/content/docs/v1.7/resource-filtering.md b/site/content/docs/v1.7/resource-filtering.md new file mode 100644 index 000000000..6c1470e04 --- /dev/null +++ b/site/content/docs/v1.7/resource-filtering.md @@ -0,0 +1,132 @@ +--- +title: "Resource filtering" +layout: docs +--- + +*Filter objects by namespace, type, or labels.* + +Velero includes all objects in a backup or restore when no filtering options are used. + +## Includes + +Only specific resources are included, excluding all others. + +Wildcard takes precedence when both a wildcard and specific resource are included. + +### --include-namespaces + +* Backup a namespace and it's objects. + + ```bash + velero backup create --include-namespaces + ``` + +* Restore two namespaces and their objects. + + ```bash + velero restore create --include-namespaces , + ``` + +### --include-resources + +* Backup all deployments in the cluster. + + ```bash + velero backup create --include-resources deployments + ``` + +* Restore all deployments and configmaps in the cluster. + + ```bash + velero restore create --include-resources deployments,configmaps + ``` + +* Backup the deployments in a namespace. + + ```bash + velero backup create --include-resources deployments --include-namespaces + ``` + +### --include-cluster-resources + + This option can have three possible values: + +* `true`: all cluster-scoped resources are included. + +* `false`: no cluster-scoped resources are included. + +* `nil` ("auto" or not supplied): + + - Cluster-scoped resources are included when backing up or restoring all namespaces. Default: `true`. + + - Cluster-scoped resources are not included when namespace filtering is used. Default: `false`. + + * Some related cluster-scoped resources may still be backed/restored up if triggered by a custom action (for example, PVC->PV) unless `--include-cluster-resources=false`. + +* Backup entire cluster including cluster-scoped resources. + + ```bash + velero backup create + ``` + +* Restore only namespaced resources in the cluster. + + ```bash + velero restore create --include-cluster-resources=false + ``` + +* Backup a namespace and include cluster-scoped resources. + + ```bash + velero backup create --include-namespaces --include-cluster-resources=true + ``` + +### --selector + +* Include resources matching the label selector. + + ```bash + velero backup create --selector = + ``` + + +## Excludes + +Exclude specific resources from the backup. + +Wildcard excludes are ignored. + +### --exclude-namespaces + +* Exclude kube-system from the cluster backup. + + ```bash + velero backup create --exclude-namespaces kube-system + ``` + +* Exclude two namespaces during a restore. + + ```bash + velero restore create --exclude-namespaces , + ``` + +### --exclude-resources + +* Exclude secrets from the backup. + + ```bash + velero backup create --exclude-resources secrets + ``` + +* Exclude secrets and rolebindings. + + ```bash + velero backup create --exclude-resources secrets,rolebindings + ``` + +### velero.io/exclude-from-backup=true + +* Resources with the label `velero.io/exclude-from-backup=true` are not included in backup, even if it contains a matching selector label. + + + diff --git a/site/content/docs/v1.7/restic.md b/site/content/docs/v1.7/restic.md new file mode 100644 index 000000000..8873c1ff5 --- /dev/null +++ b/site/content/docs/v1.7/restic.md @@ -0,0 +1,529 @@ +--- +title: "Restic Integration" +layout: docs +--- + +Velero supports backing up and restoring Kubernetes volumes using a free open-source backup tool called [restic][1]. This support is considered beta quality. Please see the list of [limitations](#limitations) to understand if it fits your use case. + +Velero allows you to take snapshots of persistent volumes as part of your backups if you’re using one of +the supported cloud providers’ block storage offerings (Amazon EBS Volumes, Azure Managed Disks, Google Persistent Disks). +It also provides a plugin model that enables anyone to implement additional object and block storage backends, outside the +main Velero repository. + +The restic integration was added to give you an out-of-the-box solution for backing up and restoring almost any type of Kubernetes volume. This integration is an addition to Velero's capabilities, not a replacement for existing functionality. If you're running on AWS, and taking EBS snapshots as part of your regular Velero backups, there's no need to switch to using restic. However, if you need a volume snapshot plugin for your storage platform, or if you're using EFS, AzureFile, NFS, emptyDir, +local, or any other volume type that doesn't have a native snapshot concept, restic might be for you. + +Restic is not tied to a specific storage platform, which means that this integration also paves the way for future work to enable +cross-volume-type data migrations. + +**NOTE:** hostPath volumes are not supported, but the [local volume type][4] is supported. + +## Setup restic + +### Prerequisites + +- Understand how Velero performs [backups with the restic integration](#how-backup-and-restore-work-with-restic). +- [Download][3] the latest Velero release. +- Kubernetes v1.12.0 and later. Velero's restic integration requires the Kubernetes [MountPropagation feature][6], which is enabled by default in Kubernetes v1.12.0 and later. + +### Install restic + +To install restic, use the `--use-restic` flag in the `velero install` command. See the [install overview][2] for more details on other flags for the install command. + +``` +velero install --use-restic +``` + +When using restic on a storage provider that doesn't have Velero support for snapshots, the `--use-volume-snapshots=false` flag prevents an unused `VolumeSnapshotLocation` from being created on installation. + +### Configure restic DaemonSet spec + +After installation, some PaaS/CaaS platforms based on Kubernetes also require modifications the restic DaemonSet spec. The steps in this section are only needed if you are installing on RancherOS, OpenShift, VMware Tanzu Kubernetes Grid Integrated Edition (formerly VMware Enterprise PKS), or Microsoft Azure. + + +**RancherOS** + + +Update the host path for volumes in the restic DaemonSet in the Velero namespace from `/var/lib/kubelet/pods` to `/opt/rke/var/lib/kubelet/pods`. + +```yaml +hostPath: + path: /var/lib/kubelet/pods +``` + +to + +```yaml +hostPath: + path: /opt/rke/var/lib/kubelet/pods +``` + + +**OpenShift** + + +To mount the correct hostpath to pods volumes, run the restic pod in `privileged` mode. + +1. Add the `velero` ServiceAccount to the `privileged` SCC: + + ``` + $ oc adm policy add-scc-to-user privileged -z velero -n velero + ``` + +2. For OpenShift version >= `4.1`, modify the DaemonSet yaml to request a privileged mode: + + ```diff + @@ -67,3 +67,5 @@ spec: + value: /credentials/cloud + - name: VELERO_SCRATCH_DIR + value: /scratch + + securityContext: + + privileged: true + ``` + + or + + ```shell + oc patch ds/restic \ + --namespace velero \ + --type json \ + -p '[{"op":"add","path":"/spec/template/spec/containers/0/securityContext","value": { "privileged": true}}]' + ``` + +3. For OpenShift version < `4.1`, modify the DaemonSet yaml to request a privileged mode and mount the correct hostpath to pods volumes. + + ```diff + @@ -35,7 +35,7 @@ spec: + secretName: cloud-credentials + - name: host-pods + hostPath: + - path: /var/lib/kubelet/pods + + path: /var/lib/origin/openshift.local.volumes/pods + - name: scratch + emptyDir: {} + containers: + @@ -67,3 +67,5 @@ spec: + value: /credentials/cloud + - name: VELERO_SCRATCH_DIR + value: /scratch + + securityContext: + + privileged: true + ``` + + or + + ```shell + oc patch ds/restic \ + --namespace velero \ + --type json \ + -p '[{"op":"add","path":"/spec/template/spec/containers/0/securityContext","value": { "privileged": true}}]' + + oc patch ds/restic \ + --namespace velero \ + --type json \ + -p '[{"op":"replace","path":"/spec/template/spec/volumes/0/hostPath","value": { "path": "/var/lib/origin/openshift.local.volumes/pods"}}]' + ``` + + +If restic is not running in a privileged mode, it will not be able to access pods volumes within the mounted hostpath directory because of the default enforced SELinux mode configured in the host system level. You can [create a custom SCC](https://docs.openshift.com/container-platform/3.11/admin_guide/manage_scc.html) to relax the security in your cluster so that restic pods are allowed to use the hostPath volume plug-in without granting them access to the `privileged` SCC. + +By default a userland openshift namespace will not schedule pods on all nodes in the cluster. + +To schedule on all nodes the namespace needs an annotation: + +``` +oc annotate namespace openshift.io/node-selector="" +``` + +This should be done before velero installation. + +Or the ds needs to be deleted and recreated: + +``` +oc get ds restic -o yaml -n > ds.yaml +oc annotate namespace openshift.io/node-selector="" +oc create -n -f ds.yaml +``` + +**VMware Tanzu Kubernetes Grid Integrated Edition (formerly VMware Enterprise PKS)** + +You need to enable the `Allow Privileged` option in your plan configuration so that restic is able to mount the hostpath. + +The hostPath should be changed from `/var/lib/kubelet/pods` to `/var/vcap/data/kubelet/pods` + +```yaml +hostPath: + path: /var/vcap/data/kubelet/pods +``` + + +**Microsoft Azure** + +If you are using [Azure Files][8], you need to add `nouser_xattr` to your storage class's `mountOptions`. See [this restic issue][9] for more details. + +You can use the following command to patch the storage class: + +```bash +kubectl patch storageclass/ \ + --type json \ + --patch '[{"op":"add","path":"/mountOptions/-","value":"nouser_xattr"}]' +``` + + +## To back up + +Velero supports two approaches of discovering pod volumes that need to be backed up using restic: + +- Opt-in approach: Where every pod containing a volume to be backed up using restic must be annotated with the volume's name. +- Opt-out approach: Where all pod volumes are backed up using restic, with the ability to opt-out any volumes that should not be backed up. + +The following sections provide more details on the two approaches. + +### Using the opt-out approach + +In this approach, Velero will back up all pod volumes using restic with the exception of: + +- Volumes mounting the default service account token, kubernetes secrets, and config maps +- Hostpath volumes + +It is possible to exclude volumes from being backed up using the `backup.velero.io/backup-volumes-excludes` annotation on the pod. + +Instructions to back up using this approach are as follows: + +1. Run the following command on each pod that contains volumes that should **not** be backed up using restic + + ```bash + kubectl -n YOUR_POD_NAMESPACE annotate pod/YOUR_POD_NAME backup.velero.io/backup-volumes-excludes=YOUR_VOLUME_NAME_1,YOUR_VOLUME_NAME_2,... + ``` + where the volume names are the names of the volumes in the pod spec. + + For example, in the following pod: + + ```yaml + apiVersion: v1 + kind: Pod + metadata: + name: app1 + namespace: sample + spec: + containers: + - image: k8s.gcr.io/test-webserver + name: test-webserver + volumeMounts: + - name: pvc1-vm + mountPath: /volume-1 + - name: pvc2-vm + mountPath: /volume-2 + volumes: + - name: pvc1-vm + persistentVolumeClaim: + claimName: pvc1 + - name: pvc2-vm + claimName: pvc2 + ``` + to exclude restic backup of volume `pvc1-vm`, you would run: + + ```bash + kubectl -n sample annotate pod/app1 backup.velero.io/backup-volumes-excludes=pvc1-vm + ``` + +2. Take a Velero backup: + + ```bash + velero backup create BACKUP_NAME --default-volumes-to-restic OTHER_OPTIONS + ``` + + The above steps uses the opt-out approach on a per backup basis. + + Alternatively, this behavior may be enabled on all velero backups running the `velero install` command with the `--default-volumes-to-restic` flag. Refer [install overview][11] for details. + +3. When the backup completes, view information about the backups: + + ```bash + velero backup describe YOUR_BACKUP_NAME + ``` + ```bash + kubectl -n velero get podvolumebackups -l velero.io/backup-name=YOUR_BACKUP_NAME -o yaml + ``` + +### Using opt-in pod volume backup + +Velero, by default, uses this approach to discover pod volumes that need to be backed up using restic, where every pod containing a volume to be backed up using restic must be annotated with the volume's name. + +Instructions to back up using this approach are as follows: + +1. Run the following for each pod that contains a volume to back up: + + ```bash + kubectl -n YOUR_POD_NAMESPACE annotate pod/YOUR_POD_NAME backup.velero.io/backup-volumes=YOUR_VOLUME_NAME_1,YOUR_VOLUME_NAME_2,... + ``` + + where the volume names are the names of the volumes in the pod spec. + + For example, for the following pod: + + ```yaml + apiVersion: v1 + kind: Pod + metadata: + name: sample + namespace: foo + spec: + containers: + - image: k8s.gcr.io/test-webserver + name: test-webserver + volumeMounts: + - name: pvc-volume + mountPath: /volume-1 + - name: emptydir-volume + mountPath: /volume-2 + volumes: + - name: pvc-volume + persistentVolumeClaim: + claimName: test-volume-claim + - name: emptydir-volume + emptyDir: {} + ``` + + You'd run: + + ```bash + kubectl -n foo annotate pod/sample backup.velero.io/backup-volumes=pvc-volume,emptydir-volume + ``` + + This annotation can also be provided in a pod template spec if you use a controller to manage your pods. + +1. Take a Velero backup: + + ```bash + velero backup create NAME OPTIONS... + ``` + +1. When the backup completes, view information about the backups: + + ```bash + velero backup describe YOUR_BACKUP_NAME + ``` + ```bash + kubectl -n velero get podvolumebackups -l velero.io/backup-name=YOUR_BACKUP_NAME -o yaml + ``` + +## To restore + +Regardless of how volumes are discovered for backup using restic, the process of restoring remains the same. + +1. Restore from your Velero backup: + + ```bash + velero restore create --from-backup BACKUP_NAME OPTIONS... + ``` + +1. When the restore completes, view information about your pod volume restores: + + ```bash + velero restore describe YOUR_RESTORE_NAME + ``` + ```bash + kubectl -n velero get podvolumerestores -l velero.io/restore-name=YOUR_RESTORE_NAME -o yaml + ``` + +## Limitations + +- `hostPath` volumes are not supported. [Local persistent volumes][4] are supported. +- Those of you familiar with [restic][1] may know that it encrypts all of its data. Velero uses a static, +common encryption key for all restic repositories it creates. **This means that anyone who has access to your +bucket can decrypt your restic backup data**. Make sure that you limit access to the restic bucket +appropriately. +- An incremental backup chain will be maintained across pod reschedules for PVCs. However, for pod volumes that are *not* +PVCs, such as `emptyDir` volumes, when a pod is deleted/recreated (for example, by a ReplicaSet/Deployment), the next backup of those +volumes will be full rather than incremental, because the pod volume's lifecycle is assumed to be defined by its pod. +- Restic scans each file in a single thread. This means that large files (such as ones storing a database) will take a long time to scan for data deduplication, even if the actual +difference is small. +- If you plan to use the Velero restic integration to backup 100GB of data or more, you may need to [customize the resource limits](/docs/main/customize-installation/#customize-resource-requests-and-limits) to make sure backups complete successfully. +- Velero's restic integration backs up data from volumes by accessing the node's filesystem, on which the pod is running. For this reason, restic integration can only backup volumes that are mounted by a pod and not directly from the PVC. + +## Customize Restore Helper Container + +Velero uses a helper init container when performing a restic restore. By default, the image for this container is `velero/velero-restic-restore-helper:`, +where `VERSION` matches the version/tag of the main Velero image. You can customize the image that is used for this helper by creating a ConfigMap in the Velero namespace with +the alternate image. + +In addition, you can customize the resource requirements for the init container, should you need. + +The ConfigMap must look like the following: + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + # any name can be used; Velero uses the labels (below) + # to identify it rather than the name + name: restic-restore-action-config + # must be in the velero namespace + namespace: velero + # the below labels should be used verbatim in your + # ConfigMap. + labels: + # this value-less label identifies the ConfigMap as + # config for a plugin (i.e. the built-in restic restore + # item action plugin) + velero.io/plugin-config: "" + # this label identifies the name and kind of plugin + # that this ConfigMap is for. + velero.io/restic: RestoreItemAction +data: + # The value for "image" can either include a tag or not; + # if the tag is *not* included, the tag from the main Velero + # image will automatically be used. + image: myregistry.io/my-custom-helper-image[:OPTIONAL_TAG] + + # "cpuRequest" sets the request.cpu value on the restic init containers during restore. + # If not set, it will default to "100m". A value of "0" is treated as unbounded. + cpuRequest: 200m + + # "memRequest" sets the request.memory value on the restic init containers during restore. + # If not set, it will default to "128Mi". A value of "0" is treated as unbounded. + memRequest: 128Mi + + # "cpuLimit" sets the request.cpu value on the restic init containers during restore. + # If not set, it will default to "100m". A value of "0" is treated as unbounded. + cpuLimit: 200m + + # "memLimit" sets the request.memory value on the restic init containers during restore. + # If not set, it will default to "128Mi". A value of "0" is treated as unbounded. + memLimit: 128Mi + + # "secCtxRunAsUser sets the securityContext.runAsUser value on the restic init containers during restore." + secCtxRunAsUser: 1001 + + # "secCtxRunAsGroup sets the securityContext.runAsGroup value on the restic init containers during restore." + secCtxRunAsGroup: 999 +``` + +## Troubleshooting + +Run the following checks: + +Are your Velero server and daemonset pods running? + +```bash +kubectl get pods -n velero +``` + +Does your restic repository exist, and is it ready? + +```bash +velero restic repo get + +velero restic repo get REPO_NAME -o yaml +``` + +Are there any errors in your Velero backup/restore? + +```bash +velero backup describe BACKUP_NAME +velero backup logs BACKUP_NAME + +velero restore describe RESTORE_NAME +velero restore logs RESTORE_NAME +``` + +What is the status of your pod volume backups/restores? + +```bash +kubectl -n velero get podvolumebackups -l velero.io/backup-name=BACKUP_NAME -o yaml + +kubectl -n velero get podvolumerestores -l velero.io/restore-name=RESTORE_NAME -o yaml +``` + +Is there any useful information in the Velero server or daemon pod logs? + +```bash +kubectl -n velero logs deploy/velero +kubectl -n velero logs DAEMON_POD_NAME +``` + +**NOTE**: You can increase the verbosity of the pod logs by adding `--log-level=debug` as an argument +to the container command in the deployment/daemonset pod template spec. + +## How backup and restore work with restic + +Velero has three custom resource definitions and associated controllers: + +- `ResticRepository` - represents/manages the lifecycle of Velero's [restic repositories][5]. Velero creates +a restic repository per namespace when the first restic backup for a namespace is requested. The controller +for this custom resource executes restic repository lifecycle commands -- `restic init`, `restic check`, +and `restic prune`. + + You can see information about your Velero restic repositories by running `velero restic repo get`. + +- `PodVolumeBackup` - represents a restic backup of a volume in a pod. The main Velero backup process creates +one or more of these when it finds an annotated pod. Each node in the cluster runs a controller for this +resource (in a daemonset) that handles the `PodVolumeBackups` for pods on that node. The controller executes +`restic backup` commands to backup pod volume data. + +- `PodVolumeRestore` - represents a restic restore of a pod volume. The main Velero restore process creates one +or more of these when it encounters a pod that has associated restic backups. Each node in the cluster runs a +controller for this resource (in the same daemonset as above) that handles the `PodVolumeRestores` for pods +on that node. The controller executes `restic restore` commands to restore pod volume data. + +### Backup + +1. Based on configuration, the main Velero backup process uses the opt-in or opt-out approach to check each pod that it's backing up for the volumes to be backed up using restic. +1. When found, Velero first ensures a restic repository exists for the pod's namespace, by: + - checking if a `ResticRepository` custom resource already exists + - if not, creating a new one, and waiting for the `ResticRepository` controller to init/check it +1. Velero then creates a `PodVolumeBackup` custom resource per volume listed in the pod annotation +1. The main Velero process now waits for the `PodVolumeBackup` resources to complete or fail +1. Meanwhile, each `PodVolumeBackup` is handled by the controller on the appropriate node, which: + - has a hostPath volume mount of `/var/lib/kubelet/pods` to access the pod volume data + - finds the pod volume's subdirectory within the above volume + - runs `restic backup` + - updates the status of the custom resource to `Completed` or `Failed` +1. As each `PodVolumeBackup` finishes, the main Velero process adds it to the Velero backup in a file named `-podvolumebackups.json.gz`. This file gets uploaded to object storage alongside the backup tarball. It will be used for restores, as seen in the next section. + +### Restore + +1. The main Velero restore process checks each existing `PodVolumeBackup` custom resource in the cluster to backup from. +1. For each `PodVolumeBackup` found, Velero first ensures a restic repository exists for the pod's namespace, by: + - checking if a `ResticRepository` custom resource already exists + - if not, creating a new one, and waiting for the `ResticRepository` controller to init/check it (note that + in this case, the actual repository should already exist in object storage, so the Velero controller will simply + check it for integrity) +1. Velero adds an init container to the pod, whose job is to wait for all restic restores for the pod to complete (more +on this shortly) +1. Velero creates the pod, with the added init container, by submitting it to the Kubernetes API +1. Velero creates a `PodVolumeRestore` custom resource for each volume to be restored in the pod +1. The main Velero process now waits for each `PodVolumeRestore` resource to complete or fail +1. Meanwhile, each `PodVolumeRestore` is handled by the controller on the appropriate node, which: + - has a hostPath volume mount of `/var/lib/kubelet/pods` to access the pod volume data + - waits for the pod to be running the init container + - finds the pod volume's subdirectory within the above volume + - runs `restic restore` + - on success, writes a file into the pod volume, in a `.velero` subdirectory, whose name is the UID of the Velero restore + that this pod volume restore is for + - updates the status of the custom resource to `Completed` or `Failed` +1. The init container that was added to the pod is running a process that waits until it finds a file +within each restored volume, under `.velero`, whose name is the UID of the Velero restore being run +1. Once all such files are found, the init container's process terminates successfully and the pod moves +on to running other init containers/the main containers. + +## 3rd party controllers + +### Monitor backup annotation + +Velero does not provide a mechanism to detect persistent volume claims that are missing the restic backup annotation. + +To solve this, a controller was written by Thomann Bits&Beats: [velero-pvc-watcher][7] + +[1]: https://github.com/restic/restic +[2]: customize-installation.md#enable-restic-integration +[3]: https://github.com/vmware-tanzu/velero/releases/ +[4]: https://kubernetes.io/docs/concepts/storage/volumes/#local +[5]: http://restic.readthedocs.io/en/latest/100_references.html#terminology +[6]: https://kubernetes.io/docs/concepts/storage/volumes/#mount-propagation +[7]: https://github.com/bitsbeats/velero-pvc-watcher +[8]: https://docs.microsoft.com/en-us/azure/aks/azure-files-dynamic-pv +[9]: https://github.com/restic/restic/issues/1800 +[11]: customize-installation.md#default-pod-volume-backup-to-restic + diff --git a/site/content/docs/v1.7/restore-hooks.md b/site/content/docs/v1.7/restore-hooks.md new file mode 100644 index 000000000..0ec36c5d7 --- /dev/null +++ b/site/content/docs/v1.7/restore-hooks.md @@ -0,0 +1,261 @@ +--- +title: "Restore Hooks" +layout: docs +--- + +Velero supports Restore Hooks, custom actions that can be executed during or after the restore process. There are two kinds of Restore Hooks: + +1. InitContainer Restore Hooks: These will add init containers into restored pods to perform any necessary setup before the application containers of the restored pod can start. +1. Exec Restore Hooks: These can be used to execute custom commands or scripts in containers of a restored Kubernetes pod. + +## InitContainer Restore Hooks + +Use an `InitContainer` hook to add init containers into a pod before it's restored. You can use these init containers to run any setup needed for the pod to resume running from its backed-up state. +The InitContainer added by the restore hook will be the first init container in the `podSpec` of the restored pod. +In the case where the pod had volumes backed up using restic, then, the restore hook InitContainer will be added after the `restic-wait` InitContainer. + +NOTE: This ordering can be altered by any mutating webhooks that may be installed in the cluster. + +There are two ways to specify `InitContainer` restore hooks: +1. Specifying restore hooks in annotations +1. Specifying restore hooks in the restore spec + +### Specifying Restore Hooks As Pod Annotations + +Below are the annotations that can be added to a pod to specify restore hooks: +* `init.hook.restore.velero.io/container-image` + * The container image for the init container to be added. +* `init.hook.restore.velero.io/container-name` + * The name for the init container that is being added. +* `init.hook.restore.velero.io/command` + * This is the `ENTRYPOINT` for the init container being added. This command is not executed within a shell and the container image's `ENTRYPOINT` is used if this is not provided. + +#### Example + +Use the below commands to add annotations to the pods before taking a backup. + +```bash +$ kubectl annotate pod -n \ + init.hook.restore.velero.io/container-name=restore-hook \ + init.hook.restore.velero.io/container-image=alpine:latest \ + init.hook.restore.velero.io/command='["/bin/ash", "-c", "date"]' +``` + +With the annotation above, Velero will add the following init container to the pod when it's restored. + +```json +{ + "command": [ + "/bin/ash", + "-c", + "date" + ], + "image": "alpine:latest", + "imagePullPolicy": "Always", + "name": "restore-hook" + ... +} +``` + +### Specifying Restore Hooks In Restore Spec + +Init container restore hooks can also be specified using the `RestoreSpec`. +Please refer to the documentation on the [Restore API Type][1] for how to specify hooks in the Restore spec. + +#### Example + +Below is an example of specifying restore hooks in `RestoreSpec` + +```yaml +apiVersion: velero.io/v1 +kind: Restore +metadata: + name: r2 + namespace: velero +spec: + backupName: b2 + excludedResources: + ... + includedNamespaces: + - '*' + hooks: + resources: + - name: restore-hook-1 + includedNamespaces: + - app + postHooks: + - init: + initContainers: + - name: restore-hook-init1 + image: alpine:latest + volumeMounts: + - mountPath: /restores/pvc1-vm + name: pvc1-vm + command: + - /bin/ash + - -c + - echo -n "FOOBARBAZ" >> /restores/pvc1-vm/foobarbaz + - name: restore-hook-init2 + image: alpine:latest + volumeMounts: + - mountPath: /restores/pvc2-vm + name: pvc2-vm + command: + - /bin/ash + - -c + - echo -n "DEADFEED" >> /restores/pvc2-vm/deadfeed +``` + +The `hooks` in the above `RestoreSpec`, when restored, will add two init containers to every pod in the `app` namespace + +```json +{ + "command": [ + "/bin/ash", + "-c", + "echo -n \"FOOBARBAZ\" >> /restores/pvc1-vm/foobarbaz" + ], + "image": "alpine:latest", + "imagePullPolicy": "Always", + "name": "restore-hook-init1", + "resources": {}, + "terminationMessagePath": "/dev/termination-log", + "terminationMessagePolicy": "File", + "volumeMounts": [ + { + "mountPath": "/restores/pvc1-vm", + "name": "pvc1-vm" + } + ] + ... +} +``` + +and + +```json +{ + "command": [ + "/bin/ash", + "-c", + "echo -n \"DEADFEED\" >> /restores/pvc2-vm/deadfeed" + ], + "image": "alpine:latest", + "imagePullPolicy": "Always", + "name": "restore-hook-init2", + "resources": {}, + "terminationMessagePath": "/dev/termination-log", + "terminationMessagePolicy": "File", + "volumeMounts": [ + { + "mountPath": "/restores/pvc2-vm", + "name": "pvc2-vm" + } + ] + ... +} +``` + +## Exec Restore Hooks + +Use an Exec Restore hook to execute commands in a restored pod's containers after they start. + +There are two ways to specify `Exec` restore hooks: +1. Specifying exec restore hooks in annotations +1. Specifying exec restore hooks in the restore spec + +If a pod has the annotation `post.hook.restore.velero.io/command` then that is the only hook that will be executed in the pod. +No hooks from the restore spec will be executed in that pod. + +### Specifying Exec Restore Hooks As Pod Annotations + +Below are the annotations that can be added to a pod to specify exec restore hooks: +* `post.hook.restore.velero.io/container` + * The container name where the hook will be executed. Defaults to the first container. Optional. +* `post.hook.restore.velero.io/command` + * The command that will be executed in the container. Required. +* `post.hook.restore.velero.io/on-error` + * How to handle execution failures. Valid values are `Fail` and `Continue`. Defaults to `Continue`. With `Continue` mode, execution failures are logged only. With `Fail` mode, no more restore hooks will be executed in any container in any pod and the status of the Restore will be `PartiallyFailed`. Optional. +* `post.hook.restore.velero.io/exec-timeout` + * How long to wait once execution begins. Defaults to 30 seconds. Optional. +* `post.hook.restore.velero.io/wait-timeout` + * How long to wait for a container to become ready. This should be long enough for the container to start plus any preceding hooks in the same container to complete. The wait timeout begins when the container is restored and may require time for the image to pull and volumes to mount. If not set the restore will wait indefinitely. Optional. + +#### Example + +Use the below commands to add annotations to the pods before taking a backup. + +```bash +$ kubectl annotate pod -n \ + post.hook.restore.velero.io/container=postgres \ + post.hook.restore.velero.io/command='["/bin/bash", "-c", "psql < /backup/backup.sql"]' \ + post.hook.restore.velero.io/wait-timeout=5m \ + post.hook.restore.velero.io/exec-timeout=45s \ + post.hook.restore.velero.io/on-error=Continue +``` + +### Specifying Exec Restore Hooks in Restore Spec + +Exec restore hooks can also be specified using the `RestoreSpec`. +Please refer to the documentation on the [Restore API Type][1] for how to specify hooks in the Restore spec. + +#### Multiple Exec Restore Hooks Example + +Below is an example of specifying restore hooks in a `RestoreSpec`. +When using the restore spec it is possible to specify multiple hooks for a single pod, as this example demonstrates. + +All hooks applicable to a single container will be executed sequentially in that container once it starts. +The ordering of hooks executed in a single container follows the order of the restore spec. +In this example, the `pg_isready` hook is guaranteed to run before the `psql` hook because they both apply to the same container and the `pg_isready` hook is defined first. + +If a pod has multiple containers with applicable hooks, all hooks for a single container will be executed before executing hooks in another container. +In this example, if the postgres container starts before the sidecar container, both postgres hooks will run before the hook in the sidecar. +This means the sidecar container may be running for several minutes before its hook is executed. + +Velero guarantees that no two hooks for a single pod are executed in parallel, but hooks executing in different pods may run in parallel. + + +```yaml +apiVersion: velero.io/v1 +kind: Restore +metadata: + name: r2 + namespace: velero +spec: + backupName: b2 + excludedResources: + ... + includedNamespaces: + - '*' + hooks: + resources: + - name: restore-hook-1 + includedNamespaces: + - app + postHooks: + - exec: + execTimeout: 1m + waitTimeout: 5m + onError: Fail + container: postgres + command: + - /bin/bash + - '-c' + - 'while ! pg_isready; do sleep 1; done' + - exec: + container: postgres + waitTimeout: 6m + execTimeout: 1m + command: + - /bin/bash + - '-c' + - 'psql < /backup/backup.sql' + - exec: + container: sidecar + command: + - /bin/bash + - '-c' + - 'date > /start' +``` + +[1]: api-types/restore.md diff --git a/site/content/docs/v1.7/restore-reference.md b/site/content/docs/v1.7/restore-reference.md new file mode 100644 index 000000000..bb14977bc --- /dev/null +++ b/site/content/docs/v1.7/restore-reference.md @@ -0,0 +1,144 @@ +--- +title: "Restore Reference" +layout: docs +--- + +## Restoring Into a Different Namespace + +Velero can restore resources into a different namespace than the one they were backed up from. To do this, use the `--namespace-mappings` flag: + +```bash +velero restore create RESTORE_NAME \ + --from-backup BACKUP_NAME \ + --namespace-mappings old-ns-1:new-ns-1,old-ns-2:new-ns-2 +``` +## What happens when user removes restore objects +A **restore** object represents the restore operation. There are two types of deletion for restore objects: +1. Deleting with **`velero restore delete`**. +This command will delete the custom resource representing it, along with its individual log and results files. But, it will not delete any objects that were created by it from your cluster. +2. Deleting with **`kubectl -n velero delete restore`**. +This command will delete the custom resource representing the restore, but will not delete log/results files from object storage, or any objects that were created during the restore in your cluster. + +## Restore command-line options +To see all commands for restores, run : `velero restore --help` +To see all options associated with a specific command, provide the --help flag to that command. For example, **`velero restore create --help`** shows all options associated with the **create** command. + +To list all options of restore, use **`velero restore --help`** + +```Usage: + velero restore [command] + +Available Commands: + create Create a restore + delete Delete restores + describe Describe restores + get Get restores + logs Get restore logs +``` + +## What happens to NodePorts when restoring Services + +**Auto assigned** NodePorts **deleted** by default and Services get new **auto assigned** nodePorts after restore. + +**Explicitly specified** NodePorts auto detected using **`last-applied-config`** annotation and **preserved** after restore. NodePorts can be explicitly specified as .spec.ports[*].nodePort field on Service definition. + +#### Always Preserve NodePorts + +It is not always possible to set nodePorts explicitly on some big clusters because of operation complexity. Official Kubernetes documents states that preventing port collisions is responsibility of the user when explicitly specifying nodePorts: + +``` +If you want a specific port number, you can specify a value in the `nodePort` field. The control plane will either allocate you that port or report that the API transaction failed. This means that you need to take care of possible port collisions yourself. You also have to use a valid port number, one that's inside the range configured for NodePort use. + +https://kubernetes.io/docs/concepts/services-networking/service/#nodeport +``` + +The clusters which are not explicitly specifying nodePorts still may need to restore original NodePorts in case of disaster. Auto assigned nodePorts most probably defined on Load Balancers which located front side of cluster. Changing all these nodePorts on Load Balancers is another operation complexity after disaster if nodePorts are changed. + +Velero has a flag to let user deciding the preservation of nodePorts. **`velero restore create`** sub command has **`--preserve-nodeports`** flag to **preserve** Service nodePorts **always** regardless of nodePorts **explicitly specified** or **not**. This flag used for preserving the original nodePorts from backup and can be used as **`--preserve-nodeports`** or **`--preserve-nodeports=true`** + +If this flag given and/or set to true, Velero does not remove the nodePorts when restoring Service and tries to use the nodePorts which written on backup. + +Trying to preserve nodePorts may cause **port conflicts** when restoring on situations below: + +- If the nodePort from the backup already allocated on the target cluster then Velero prints error log as shown below and continue to restore operation. + + ``` + time="2020-11-23T12:58:31+03:00" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201123125825 + + time="2020-11-23T12:58:31+03:00" level=info msg="Restoring Services with original NodePort(s)" cmd=_output/bin/linux/amd64/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201123125825 + + time="2020-11-23T12:58:31+03:00" level=info msg="Attempting to restore Service: hello-service" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201123125825 + + time="2020-11-23T12:58:31+03:00" level=error msg="error restoring hello-service: Service \"hello-service\" is invalid: spec.ports[0].nodePort: Invalid value: 31536: provided port is already allocated" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201123125825 + ``` + + + +- If the nodePort from the backup is not in the nodePort range of target cluster then Velero prints error log as below and continue to restore operation. Kubernetes default nodePort range is 30000-32767 but on the example cluster nodePort range is 20000-22767 and tried to restore Service with nodePort 31536 + + ``` + time="2020-11-23T13:09:17+03:00" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201123130915 + + time="2020-11-23T13:09:17+03:00" level=info msg="Restoring Services with original NodePort(s)" cmd=_output/bin/linux/amd64/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201123130915 + + time="2020-11-23T13:09:17+03:00" level=info msg="Attempting to restore Service: hello-service" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201123130915 + + time="2020-11-23T13:09:17+03:00" level=error msg="error restoring hello-service: Service \"hello-service\" is invalid: spec.ports[0].nodePort: Invalid value: 31536: provided port is not in the valid range. The range of valid ports is 20000-22767" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201123130915 + ``` + +## Changing PV/PVC Storage Classes + +Velero can change the storage class of persistent volumes and persistent volume claims during restores. To configure a storage class mapping, create a config map in the Velero namespace like the following: + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + # any name can be used; Velero uses the labels (below) + # to identify it rather than the name + name: change-storage-class-config + # must be in the velero namespace + namespace: velero + # the below labels should be used verbatim in your + # ConfigMap. + labels: + # this value-less label identifies the ConfigMap as + # config for a plugin (i.e. the built-in restore item action plugin) + velero.io/plugin-config: "" + # this label identifies the name and kind of plugin + # that this ConfigMap is for. + velero.io/change-storage-class: RestoreItemAction +data: + # add 1+ key-value pairs here, where the key is the old + # storage class name and the value is the new storage + # class name. + : +``` + +## Changing PVC selected-node + +Velero can update the selected-node annotation of persistent volume claim during restores, if selected-node doesn't exist in the cluster then it will remove the selected-node annotation from PersistentVolumeClaim. To configure a node mapping, create a config map in the Velero namespace like the following: + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + # any name can be used; Velero uses the labels (below) + # to identify it rather than the name + name: change-pvc-node-selector-config + # must be in the velero namespace + namespace: velero + # the below labels should be used verbatim in your + # ConfigMap. + labels: + # this value-less label identifies the ConfigMap as + # config for a plugin (i.e. the built-in restore item action plugin) + velero.io/plugin-config: "" + # this label identifies the name and kind of plugin + # that this ConfigMap is for. + velero.io/change-pvc-node-selector: RestoreItemAction +data: + # add 1+ key-value pairs here, where the key is the old + # node name and the value is the new node name. + : +``` diff --git a/site/content/docs/v1.7/run-locally.md b/site/content/docs/v1.7/run-locally.md new file mode 100644 index 000000000..897ee1893 --- /dev/null +++ b/site/content/docs/v1.7/run-locally.md @@ -0,0 +1,53 @@ +--- +title: "Run Velero locally in development" +layout: docs +--- + +Running the Velero server locally can speed up iterative development. This eliminates the need to rebuild the Velero server +image and redeploy it to the cluster with each change. + +## Run Velero locally with a remote cluster + +Velero runs against the Kubernetes API server as the endpoint (as per the `kubeconfig` configuration), so both the Velero server and client use the same `client-go` to communicate with Kubernetes. This means the Velero server can be run locally just as functionally as if it was running in the remote cluster. + +### Prerequisites + +When running Velero, you will need to ensure that you set up all of the following: + +* Appropriate RBAC permissions in the cluster + * Read access for all data from the source cluster and namespaces + * Write access to the target cluster and namespaces +* Cloud provider credentials + * Read/write access to volumes + * Read/write access to object storage for backup data +* A [BackupStorageLocation][20] object definition for the Velero server +* (Optional) A [VolumeSnapshotLocation][21] object definition for the Velero server, to take PV snapshots + +### 1. Install Velero + +See documentation on how to install Velero in some specific providers: [Install overview][22] + +### 2. Scale deployment down to zero + +After you use the `velero install` command to install Velero into your cluster, you scale the Velero deployment down to 0 so it is not simultaneously being run on the remote cluster and potentially causing things to get out of sync: + +`kubectl scale --replicas=0 deployment velero -n velero` + +#### 3. Start the Velero server locally + +* To run the server locally, use the full path according to the binary you need. Example, if you are on a Mac, and using `AWS` as a provider, this is how to run the binary you built from source using the full path: `AWS_SHARED_CREDENTIALS_FILE= ./_output/bin/darwin/amd64/velero`. Alternatively, you may add the `velero` binary to your `PATH`. + +* Start the server: `velero server [CLI flags]`. The following CLI flags may be useful to customize, but see `velero server --help` for full details: + * `--log-level`: set the Velero server's log level (default `info`, use `debug` for the most logging) + * `--kubeconfig`: set the path to the kubeconfig file the Velero server uses to talk to the Kubernetes apiserver (default `$KUBECONFIG`) + * `--namespace`: the set namespace where the Velero server should look for backups, schedules, restores (default `velero`) + * `--plugin-dir`: set the directory where the Velero server looks for plugins (default `/plugins`) + * The `--plugin-dir` flag requires the plugin binary to be present locally, and should be set to the directory containing this built binary. + * `--metrics-address`: set the bind address and port where Prometheus metrics are exposed (default `:8085`) + +[15]: https://docs.aws.amazon.com/cli/latest/topic/config-vars.html#the-shared-credentials-file +[16]: https://cloud.google.com/docs/authentication/getting-started#setting_the_environment_variable +[18]: https://eksctl.io/ +[20]: api-types/backupstoragelocation.md +[21]: api-types/volumesnapshotlocation.md +[22]: basic-install.md diff --git a/site/content/docs/v1.7/self-signed-certificates.md b/site/content/docs/v1.7/self-signed-certificates.md new file mode 100644 index 000000000..0bb55be8c --- /dev/null +++ b/site/content/docs/v1.7/self-signed-certificates.md @@ -0,0 +1,48 @@ +--- +title: "Use Velero with a storage provider secured by a self-signed certificate" +layout: docs +--- + +If you are using an S3-Compatible storage provider that is secured with a self-signed certificate, connections to the object store may fail with a `certificate signed by unknown authority` message. +To proceed, provide a certificate bundle when adding the storage provider. + +## Trusting a self-signed certificate during installation + +When using the `velero install` command, you can use the `--cacert` flag to provide a path +to a PEM-encoded certificate bundle to trust. + +```bash +velero install \ + --plugins + --provider \ + --bucket \ + --secret-file \ + --cacert +``` + +Velero will then automatically use the provided CA bundle to verify TLS connections to +that storage provider when backing up and restoring. + +## Trusting a self-signed certificate with the Velero client + +To use the describe, download, or logs commands to access a backup or restore contained +in storage secured by a self-signed certificate as in the above example, you must use +the `--cacert` flag to provide a path to the certificate to be trusted. + +```bash +velero backup describe my-backup --cacert +``` + +## Error with client certificate with custom S3 server + +In case you are using a custom S3-compatible server, you may encounter that the backup fails with an error similar to one below. + +``` +rpc error: code = Unknown desc = RequestError: send request failed caused by: +Get https://minio.com:3000/k8s-backup-bucket?delimiter=%2F&list-type=2&prefix=: remote error: tls: alert(116) +``` + +Error 116 represents certificate required as seen here in [error codes](https://datatracker.ietf.org/doc/html/rfc8446#appendix-B.2). +Velero as a client does not include its certificate while performing SSL handshake with the server. +From [TLS 1.3 spec](https://tools.ietf.org/html/rfc8446), verifying client certificate is optional on the server. +You will need to change this setting on the server to make it work. diff --git a/site/content/docs/v1.7/start-contributing.md b/site/content/docs/v1.7/start-contributing.md new file mode 100644 index 000000000..a9f15f0fc --- /dev/null +++ b/site/content/docs/v1.7/start-contributing.md @@ -0,0 +1,34 @@ +--- +title: "Start contributing" +layout: docs +--- + +## Before you start + +* Please familiarize yourself with the [Code of Conduct][1] before contributing. +* Also, see [CONTRIBUTING.md][2] for instructions on the developer certificate of origin that we require. + +## Creating a design doc + +Having a high level design document with the proposed change and the impacts helps the maintainers evaluate if a major change should be incorporated. + +To make a design pull request, you can copy the template found in the `design/_template.md` file into a new Markdown file. + +## Finding your way around + +You may join the Velero community and contribute in many different ways, including helping us design or test new features. For any significant feature we consider adding, we start with a design document. You may find a list of in progress new designs here: https://github.com/vmware-tanzu/velero/pulls?q=is%3Aopen+is%3Apr+label%3ADesign. Feel free to review and help us with your input. + +You can also vote on issues using :+1: and :-1:, as explained in our [Feature enhancement request][3] and [Bug issue][4] templates. This will help us quantify importance and prioritize issues. + +For information on how to connect with our maintainers and community, join our online meetings, or find good first issues, start on our [Velero community](https://velero.io/community/) page. + +Please browse our list of resources, including a playlist of past online community meetings, blog posts, and other resources to help you get familiar with our project: [Velero resources](https://velero.io/resources/). + +## Contributing + +If you are ready to jump in and test, add code, or help with documentation, please use the navigation on the left under `Contribute`. + +[1]: https://github.com/vmware-tanzu/velero/blob/v1.7.0/CODE_OF_CONDUCT.md +[2]: https://github.com/vmware-tanzu/velero/blob/v1.7.0/CONTRIBUTING.md +[3]: https://github.com/vmware-tanzu/velero/blob/v1.7.0/.github/ISSUE_TEMPLATE/feature-enhancement-request.md +[4]: https://github.com/vmware-tanzu/velero/blob/v1.7.0/.github/ISSUE_TEMPLATE/bug_report.md diff --git a/site/content/docs/v1.7/style-guide.md b/site/content/docs/v1.7/style-guide.md new file mode 100644 index 000000000..1b98e59dd --- /dev/null +++ b/site/content/docs/v1.7/style-guide.md @@ -0,0 +1,344 @@ +--- +title: "Documentation Style Guide" +layout: docs +--- + +_This style guide is adapted from the [Kubernetes style guide](https://kubernetes.io/docs/contribute/style/style-guide/)._ + +This page outlines writing style guidelines for the Velero documentation and you should use this page as a reference you write or edit content. Note that these are guidelines, not rules. Use your best judgment as you write documentation, and feel free to propose changes to these guidelines. Changes to the style guide are made by the Velero maintainers as a group. To propose a change or addition create an issue/PR, or add a suggestion to the [community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA) and attend the meeting to participate in the discussion. + +The Velero documentation uses the [kramdown](https://kramdown.gettalong.org/) Markdown renderer. + +## Content best practices +### Use present tense + +{{< table caption="Do and Don't - Use present tense" >}} +|Do|Don't| +|--- |--- | +|This `command` starts a proxy.|This command will start a proxy.| +{{< /table >}} + +Exception: Use future or past tense if it is required to convey the correct meaning. + +### Use active voice + +{{< table caption="Do and Don't - Use active voice" >}} +|Do|Don't| +|--- |--- | +|You can explore the API using a browser.|The API can be explored using a browser.| +|The YAML file specifies the replica count.|The replica count is specified in the YAML file.| +{{< /table >}} + +Exception: Use passive voice if active voice leads to an awkward sentence construction. + +### Use simple and direct language + +Use simple and direct language. Avoid using unnecessary phrases, such as saying "please." + +{{< table caption="Do and Don't - Use simple and direct language" >}} +|Do|Don't| +|--- |--- | +|To create a ReplicaSet, ...|In order to create a ReplicaSet, ...| +|See the configuration file.|Please see the configuration file.| +|View the Pods.|With this next command, we'll view the Pods.| +{{< /table >}} + +### Address the reader as "you" + +{{< table caption="Do and Don't - Addressing the reader" >}} +|Do|Don't| +|--- |--- | +|You can create a Deployment by ...|We'll create a Deployment by ...| +|In the preceding output, you can see...|In the preceding output, we can see ...| +{{< /table >}} + +### Avoid Latin phrases + +Prefer English terms over Latin abbreviations. + +{{< table caption="Do and Don't - Avoid Latin phrases" >}} +|Do|Don't| +|--- |--- | +|For example, ...|e.g., ...| +|That is, ...|i.e., ...| +{{< /table >}} + +Exception: Use "etc." for et cetera. + +## Patterns to avoid + + +### Avoid using "we" + +Using "we" in a sentence can be confusing, because the reader might not know +whether they're part of the "we" you're describing. + +{{< table caption="Do and Don't - Avoid using we" >}} +|Do|Don't| +|--- |--- | +|Version 1.4 includes ...|In version 1.4, we have added ...| +|Kubernetes provides a new feature for ...|We provide a new feature ...| +|This page teaches you how to use Pods.|In this page, we are going to learn about Pods.| +{{< /table >}} + +### Avoid jargon and idioms + +Many readers speak English as a second language. Avoid jargon and idioms to help them understand better. + +{{< table caption="Do and Don't - Avoid jargon and idioms" >}} +|Do|Don't| +|--- |--- | +|Internally, ...|Under the hood, ...| +|Create a new cluster.|Turn up a new cluster.| +{{< /table >}} + +### Avoid statements about the future or that will soon be out of date + +Avoid making promises or giving hints about the future. If you need to talk about +a beta feature, put the text under a heading that identifies it as beta +information. + +Also avoid words like “recently”, "currently" and "new." A feature that is new today might not be +considered new in a few months. + +{{< table caption="Do and Don't - Avoid statements that will soon be out of date" >}} +|Do|Don't| +|--- |--- | +|In version 1.4, ...|In the current version, ...| +|The Federation feature provides ...|The new Federation feature provides ...| +{{< /table >}} + +### Language + +This documentation uses U.S. English spelling and grammar. + +## Documentation formatting standards + +### Use camel case for API objects + +When you refer to an API object, use the same uppercase and lowercase letters +that are used in the actual object name. Typically, the names of API +objects use +[camel case](https://en.wikipedia.org/wiki/Camel_case). + +Don't split the API object name into separate words. For example, use +PodTemplateList, not Pod Template List. + +Refer to API objects without saying "object," unless omitting "object" +leads to an awkward sentence construction. + +{{< table caption="Do and Don't - Do and Don't - API objects" >}} +|Do|Don't| +|--- |--- | +|The Pod has two containers.|The pod has two containers.| +|The Deployment is responsible for ...|The Deployment object is responsible for ...| +|A PodList is a list of Pods.|A Pod List is a list of pods.| +|The two ContainerPorts ...|The two ContainerPort objects ...| +|The two ContainerStateTerminated objects ...|The two ContainerStateTerminateds ...| +{{< /table >}} + +### Use angle brackets for placeholders + +Use angle brackets for placeholders. Tell the reader what a placeholder represents. + +1. Display information about a Pod: + + kubectl describe pod -n + + If the pod is in the default namespace, you can omit the '-n' parameter. + +### Use bold for user interface elements + +{{< table caption="Do and Don't - Bold interface elements" >}} +|Do|Don't| +|--- |--- | +|Click **Fork**.|Click "Fork".| +|Select **Other**.|Select "Other".| +{{< /table >}} + +### Use italics to define or introduce new terms + +{{< table caption="Do and Don't - Use italics for new terms" >}} +|Do|Don't| +|--- |--- | +|A _cluster_ is a set of nodes ...|A "cluster" is a set of nodes ...| +|These components form the _control plane_.|These components form the **control plane**.| +{{< /table >}} + +### Use code style for filenames, directories, paths, object field names and namespaces +{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} +|Do|Don't| +|--- |--- | +|Open the `envars.yaml` file.|Open the envars.yaml file.| +|Go to the `/docs/tutorials` directory.|Go to the /docs/tutorials directory.| +|Open the `/_data/concepts.yaml` file.|Open the /\_data/concepts.yaml file.| +{{< /table >}} + + +### Use punctuation inside quotes +{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} +|Do|Don't| +|--- |--- | +|events are recorded with an associated "stage."|events are recorded with an associated "stage".| +|The copy is called a "fork."|The copy is called a "fork".| +{{< /table >}} + +Exception: When the quoted word is a user input. + +Example: +* My user ID is “IM47g”. +* Did you try the password “mycatisawesome”? + +## Inline code formatting + + +### Use code style for inline code and commands + +For inline code in an HTML document, use the `` tag. In a Markdown +document, use the backtick (`` ` ``). + +{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} +|Do|Don't| +|--- |--- | +|The `kubectl run` command creates a Deployment.|The "kubectl run" command creates a Deployment.| +|For declarative management, use `kubectl apply`.|For declarative management, use "kubectl apply".| +|Use single backticks to enclose inline code. For example, `var example = true`.|Use two asterisks (`**`) or an underscore (`_`) to enclose inline code. For example, **var example = true**.| +|Use triple backticks (\`\`\`) before and after a multi-line block of code for fenced code blocks.|Use multi-line blocks of code to create diagrams, flowcharts, or other illustrations.| +|Use meaningful variable names that have a context.|Use variable names such as 'foo','bar', and 'baz' that are not meaningful and lack context.| +|Remove trailing spaces in the code.|Add trailing spaces in the code, where these are important, because a screen reader will read out the spaces as well.| +{{< /table >}} + +### Starting a sentence with a component tool or component name + +{{< table caption="Do and Don't - Starting a sentence with a component tool or component name" >}} +|Do|Don't| +|--- |--- | +|The `kubeadm` tool bootstraps and provisions machines in a cluster.|`kubeadm` tool bootstraps and provisions machines in a cluster.| +|The kube-scheduler is the default scheduler for Kubernetes.|kube-scheduler is the default scheduler for Kubernetes.| +{{< /table >}} + +### Use normal style for string and integer field values + +For field values of type string or integer, use normal style without quotation marks. + +{{< table caption="Do and Don't - Use normal style for string and integer field values" >}} +|Do|Don't| +|--- |--- | +|Set the value of `imagePullPolicy` to `Always`.|Set the value of `imagePullPolicy` to "Always".| +|Set the value of `image` to `nginx:1.16`.|Set the value of `image` to nginx:1.16.| +|Set the value of the `replicas` field to `2`.|Set the value of the `replicas` field to 2.| +{{< /table >}} + +## Code snippet formatting + + +### Don't include the command prompt + +{{< table caption="Do and Don't - Don't include the command prompt" >}} +|Do|Don't| +|--- |--- | +|kubectl get pods|$ kubectl get pods| +{{< /table >}} + +### Separate commands from output + +Verify that the Pod is running on your chosen node: + +``` +kubectl get pods --output=wide +``` + +The output is similar to this: + +``` +NAME READY STATUS RESTARTS AGE IP NODE +nginx 1/1 Running 0 13s 10.200.0.4 worker0 +``` + +## Velero.io word list + + +A list of Velero-specific terms and words to be used consistently across the site. + +{{< table caption="Velero.io word list" >}} +|Trem|Usage| +|--- |--- | +|Kubernetes|Kubernetes should always be capitalized.| +|Docker|Docker should always be capitalized.| +|Velero|Velero should always be capitalized.| +|VMware|VMware should always be correctly capitalized.| +|On-premises|On-premises or on-prem rather than on-premise or other variations.| +|Backup|Backup rather than back up, back-up or other variations.| +|Plugin|Plugin rather than plug-in or other variations.| +|Allowlist|Use allowlist instead of whitelist.| +|Denylist|Use denylist instead of blacklist.| +{{< /table >}} + +## Markdown elements + +### Headings +People accessing this documentation may use a screen reader or other assistive technology (AT). [Screen readers](https://en.wikipedia.org/wiki/Screen_reader) are linear output devices, they output items on a page one at a time. If there is a lot of content on a page, you can use headings to give the page an internal structure. A good page structure helps all readers to easily navigate the page or filter topics of interest. + +{{< table caption="Do and Don't - Headings" >}} +|Do|Don't| +|--- |--- | +|Include a title on each page or blog post.|Include more than one title headings (#) in a page.| +|Use ordered headings to provide a meaningful high-level outline of your content.|Use headings level 4 through 6, unless it is absolutely necessary. If your content is that detailed, it may need to be broken into separate articles.| +|Use sentence case for headings. For example, **Extend kubectl with plugins**|Use title case for headings. For example, **Extend Kubectl With Plugins**| +{{< /table >}} + +### Paragraphs + +{{< table caption="Do and Don't - Paragraphs" >}} + +|Do|Don't| +|--- |--- | +|Try to keep paragraphs under 6 sentences.|Write long-winded paragraphs.| +|Use three hyphens (`---`) to create a horizontal rule for breaks in paragraph content.|Use horizontal rules for decoration.| +{{< /table >}} + +### Links + +{{< table caption="Do and Don't - Links" >}} +|Do|Don't| +|--- |--- | +|Write hyperlinks that give you context for the content they link to. For example: Certain ports are open on your machines. See [check required ports](#check-required-ports) for more details.|Use ambiguous terms such as “click here”. For example: Certain ports are open on your machines. See [here](#check-required-ports) for more details.| +|Write Markdown-style links: `[link text](URL)`. For example: `[community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA)` and the output is [community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA).|Write HTML-style links: `Visit our tutorial!`| +{{< /table >}} + + +### Lists + +Group items in a list that are related to each other and need to appear in a specific order or to indicate a correlation between multiple items. When a screen reader comes across a list—whether it is an ordered or unordered list—it will be announced to the user that there is a group of list items. The user can then use the arrow keys to move up and down between the various items in the list. +Website navigation links can also be marked up as list items; after all they are nothing but a group of related links. + + - End each item in a list with a period if one or more items in the list are complete sentences. For the sake of consistency, normally either all items or none should be complete sentences. + + - Ordered lists that are part of an incomplete introductory sentence can be in lowercase and punctuated as if each item was a part of the introductory sentence. + + - Use the number one (`1.`) for ordered lists. + + - Use (`+`), (`*`), or (`-`) for unordered lists - be consistent within the same document. + + - Leave a blank line after each list. + + - Indent nested lists with four spaces (for example, ⋅⋅⋅⋅). + + - List items may consist of multiple paragraphs. Each subsequent paragraph in a list item must be indented by either four spaces or one tab. + +### Tables + +The semantic purpose of a data table is to present tabular data. Sighted users can quickly scan the table but a screen reader goes through line by line. A table [caption](https://www.w3schools.com/tags/tag_caption.asp) is used to create a descriptive title for a data table. Assistive technologies (AT) use the HTML table caption element to identify the table contents to the user within the page structure. + +If you need to create a table, create the table in markdown and use the table [Hugo shortcode](https://gohugo.io/content-management/shortcodes/) to include a caption. + +``` +{{}} +Parameter | Description | Default +:---------|:------------|:------- +`timeout` | The timeout for requests | `30s` +`logLevel` | The log level for log output | `INFO` +{{< /table */>}} + +``` +**Note:** This shortcode does not support markdown reference-style links. Use inline-style links in tables. See more information about [markdown link styles](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#links). diff --git a/site/content/docs/v1.7/support-process.md b/site/content/docs/v1.7/support-process.md new file mode 100644 index 000000000..d07268c52 --- /dev/null +++ b/site/content/docs/v1.7/support-process.md @@ -0,0 +1,44 @@ +--- +title: "Support Process" +layout: docs +--- + +## Weekly Rotation + +The Velero maintainers use a weekly rotation to manage community support. Each week, a different maintainer is the point person for responding to incoming support issues via Slack, GitHub, and the Google group. The point person is *not* expected to be on-call 24x7. Instead, they choose one or more hour(s) per day to be available/responding to incoming issues. They will communicate to the community what that time slot will be each week. + +## Start of Week + +We will update the public Slack channel's topic to indicate that you are the point person for the week, and what hours you'll be available. + +## During the Week + +### Where we will monitor +- `#velero` public Slack channel in Kubernetes org +- [all Velero-related repos][0] in GitHub (`velero`, `velero-plugin-for-[aws|gcp|microsoft-azure|csi]`, `helm-charts`) +- [Project Velero Google Group][1] + +### GitHub issue flow + +Generally speaking, new GitHub issues will fall into one of several categories. We use the following process for each: + +1. **Feature request** + - Label the issue with `Enhancement/User` or `Enhancement/Dev` + - Leave the issue in the `New Issues` swimlane for triage by product mgmt +1. **Bug** + - Label the issue with `Bug` + - Leave the issue in the `New Issues` swimlane for triage by product mgmt +1. **User question/problem** that does not clearly fall into one of the previous categories + - When you start investigating/responding, label the issue with `Investigating` + - Add comments as you go, so both the user and future support people have as much context as possible + - Use the `Needs Info` label to indicate an issue is waiting for information from the user. Remove/re-add the label as needed. + - If you resolve the issue with the user, close it out + - If the issue ends up being a feature request or a bug, update the title and follow the appropriate process for it + - If the reporter becomes unresponsive after multiple pings, close out the issue due to inactivity and comment that the user can always reach out again as needed + +## End of Week + +We ensure all GitHub issues worked on during the week on are labeled with `Investigating` and `Needs Info` (if appropriate), and have updated comments so the next person can pick them up. + +[0]: https://github.com/vmware-tanzu?q=velero&type=&language= +[1]: https://groups.google.com/forum/#!forum/projectvelero diff --git a/site/content/docs/v1.7/supported-providers.md b/site/content/docs/v1.7/supported-providers.md new file mode 100644 index 000000000..c1c20a06a --- /dev/null +++ b/site/content/docs/v1.7/supported-providers.md @@ -0,0 +1,70 @@ +--- +title: "Providers" +layout: docs +--- + +Velero supports a variety of storage providers for different backup and snapshot operations. Velero has a plugin system which allows anyone to add compatibility for additional backup and volume storage platforms without modifying the Velero codebase. + +## Velero supported providers + +{{< table caption="Velero supported providers" >}} + +| Provider | Object Store | Volume Snapshotter | Plugin Provider Repo | Setup Instructions | +|-----------------------------------|---------------------|------------------------------|-----------------------------------------|-------------------------------| +| [Amazon Web Services (AWS)](https://aws.amazon.com) | AWS S3 | AWS EBS | [Velero plugin for AWS](https://github.com/vmware-tanzu/velero-plugin-for-aws) | [AWS Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-aws#setup) | +| [Google Cloud Platform (GCP)](https://cloud.google.com) | Google Cloud Storage| Google Compute Engine Disks | [Velero plugin for GCP](https://github.com/vmware-tanzu/velero-plugin-for-gcp) | [GCP Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-gcp#setup) | +| [Microsoft Azure](https://azure.com) | Azure Blob Storage | Azure Managed Disks | [Velero plugin for Microsoft Azure](https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure) | [Azure Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure#setup) | +| [VMware vSphere](https://github.com/vmware-tanzu/velero-plugin-for-vsphere) | 🚫 | vSphere Volumes | [VMware vSphere](https://github.com/vmware-tanzu/velero-plugin-for-vsphere) | [vSphere Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-vsphere#velero-plugin-for-vsphere-installation-and-configuration-details) | +| [Container Storage Interface (CSI)](https://github.com/vmware-tanzu/velero-plugin-for-csi/)| 🚫 | CSI Volumes | [Velero plugin for CSI](https://github.com/vmware-tanzu/velero-plugin-for-csi/) | [CSI Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-csi#kinds-of-plugins-included) | +{{< /table >}} + +Contact: [#Velero Slack](https://kubernetes.slack.com/messages/velero), [GitHub Issues](https://github.com/vmware-tanzu/velero/issues) + +## Community supported providers +{{< table caption="Community supported providers" >}} + +| Provider | Object Store | Volume Snapshotter | Plugin Documentation | Contact | +|---------------------------|------------------------------|------------------------------------|------------------------|---------------------------------| +| [AlibabaCloud](https://www.alibabacloud.com/) | Alibaba Cloud OSS | Alibaba Cloud | [AlibabaCloud](https://github.com/AliyunContainerService/velero-plugin) | [GitHub Issue](https://github.com/AliyunContainerService/velero-plugin/issues) | +| [DigitalOcean](https://www.digitalocean.com/) | DigitalOcean Object Storage | DigitalOcean Volumes Block Storage | [StackPointCloud](https://github.com/StackPointCloud/ark-plugin-digitalocean) | | +| [Hewlett Packard](https://www.hpe.com/us/en/storage.html) | 🚫 | HPE Storage | [Hewlett Packard](https://github.com/hpe-storage/velero-plugin) | [Slack](https://slack.hpedev.io/), [GitHub Issue](https://github.com/hpe-storage/velero-plugin/issues) | +| [OpenEBS](https://openebs.io/) | 🚫 | OpenEBS CStor Volume | [OpenEBS](https://github.com/openebs/velero-plugin) | [Slack](https://openebs-community.slack.com/), [GitHub Issue](https://github.com/openebs/velero-plugin/issues) | +| [OpenStack](https://www.openstack.org/) | Swift | Cinder | [OpenStack](https://github.com/Lirt/velero-plugin-for-openstack) | [GitHub Issue](https://github.com/Lirt/velero-plugin-for-openstack/issues) | +| [Portworx](https://portworx.com/) | 🚫 | Portworx Volume | [Portworx](https://docs.portworx.com/scheduler/kubernetes/ark.html) | [Slack](https://portworx.slack.com/messages/px-k8s), [GitHub Issue](https://github.com/portworx/ark-plugin/issues) | +| [Storj](https://storj.io) | Storj Object Storage | 🚫 | [Storj](https://github.com/storj-thirdparty/velero-plugin) | [GitHub Issue](https://github.com/storj-thirdparty/velero-plugin/issues) | +{{< /table >}} + +## S3-Compatible object store providers + +Velero's AWS Object Store plugin uses [Amazon's Go SDK][0] to connect to the AWS S3 API. Some third-party storage providers also support the S3 API, and users have reported the following providers work with Velero: + +_Note that these storage providers are not regularly tested by the Velero team._ + + * [IBM Cloud][1] + * [Oracle Cloud][2] + * [Minio][3] + * [DigitalOcean][4] + * [NooBaa][5] + * [Tencent Cloud][7] + * Ceph RADOS v12.2.7 + * Quobyte + * [Cloudian HyperStore][38] + +_Some storage providers, like Quobyte, may need a different [signature algorithm version][6]._ + +## Non-supported volume snapshots + +In the case you want to take volume snapshots but didn't find a plugin for your provider, Velero has support for snapshotting using restic. Please see the [restic integration][30] documentation. + +[0]: https://github.com/aws/aws-sdk-go/aws +[1]: contributions/ibm-config.md +[2]: contributions/oracle-config.md +[3]: contributions/minio.md +[4]: https://github.com/StackPointCloud/ark-plugin-digitalocean +[5]: http://www.noobaa.com/ +[6]: https://github.com/vmware-tanzu/velero-plugin-for-aws/blob/main/backupstoragelocation.md +[7]: contributions/tencent-config.md +[25]: https://github.com/hpe-storage/velero-plugin +[30]: restic.md +[36]: https://github.com/vmware-tanzu/velero-plugin-for-gcp#setup +[38]: https://www.cloudian.com/ diff --git a/site/content/docs/v1.7/tilt.md b/site/content/docs/v1.7/tilt.md new file mode 100644 index 000000000..42f68cfe4 --- /dev/null +++ b/site/content/docs/v1.7/tilt.md @@ -0,0 +1,210 @@ +--- +title: "Rapid iterative Velero development with Tilt " +layout: docs +--- + +## Overview +This document describes how to use [Tilt](https://tilt.dev) with any cluster for a simplified +workflow that offers easy deployments and rapid iterative builds. + +This setup allows for continuing deployment of the Velero server and, if specified, any provider plugin or the restic daemonset. +It does this work by: + +1. Deploying the necessary Kubernetes resources, such as the Velero CRDs and Velero deployment +1. Building a local binary for Velero and (if specified) provider plugins as a `local_resource` +1. Invoking `docker_build` to live update any binary into the container/init container and trigger a re-start + +Tilt will look for configuration files under `velero/tilt-resources`. Most of the +files in this directory are gitignored so you may configure your setup according to your needs. + +## Prerequisites +1. [Docker](https://docs.docker.com/install/) v19.03 or newer +1. A Kubernetes cluster v1.12 or greater (does not have to be Kind) +1. [Tilt](https://docs.tilt.dev/install.html) v0.12.0 or newer +1. Clone the [Velero project](https://github.com/vmware-tanzu/velero) repository + locally +1. Access to an S3 object storage +1. Clone any [provider plugin(s)](https://velero.io/plugins/) you want to make changes to and deploy (optional, must be configured to be deployed by the Velero Tilt's setup, [more info below](#provider-plugins)) + +Note: To properly configure any plugin you use, please follow the plugin's documentation. + +## Getting started + +### tl;dr +- Copy all sample files under `velero/tilt-resources/examples` into `velero/tilt-resources`. +- Configure the `velero_v1_backupstoragelocation.yaml` file, and the `cloud` file for the storage credentials/secret. + +- Run `tilt up`. + +### Create a Tilt settings file +Create a configuration file named `tilt-settings.json` and place it in your local copy of `velero/tilt-resources`. Alternatively, +you may copy and paste the sample file found in `velero/tilt-resources/examples`. + +Here is an example: + +```json +{ + "default_registry": "", + "enable_providers": [ + "aws", + "gcp", + "azure", + "csi" + ], + "providers": { + "aws": "../velero-plugin-for-aws", + "gcp": "../velero-plugin-for-gcp", + "azure": "../velero-plugin-for-microsoft-azure", + "csi": "../velero-plugin-for-csi" + }, + "allowed_contexts": [ + "development" + ], + "enable_restic": false, + "create_backup_locations": true, + "setup-minio": true, + "enable_debug": false, + "debug_continue_on_start": true +} +``` + +#### tilt-settings.json fields +**default_registry** (String, default=""): The image registry to use if you need to push images. See the [Tilt +*documentation](https://docs.tilt.dev/api.html#api.default_registry) for more details. + +**provider_repos** (Array[]String, default=[]): A list of paths to all the provider plugins you want to make changes to. Each provider must have a +`tilt-provider.json` file describing how to build the provider. + +**enable_providers** (Array[]String, default=[]): A list of the provider plugins to enable. See [provider plugins](provider-plugins) +for more details. Note: when not making changes to a plugin, it is not necessary to load them into +Tilt: an existing image and version might be specified in the Velero deployment instead, and Tilt will load that. + +**allowed_contexts** (Array, default=[]): A list of kubeconfig contexts Tilt is allowed to use. See the Tilt documentation on +*[allow_k8s_contexts](https://docs.tilt.dev/api.html#api.allow_k8s_contexts) for more details. Note: Kind is automatically allowed. + +**enable_restic** (Bool, default=false): Indicate whether to deploy the restic Daemonset. If set to `true`, Tilt will look for a `velero/tilt-resources/restic.yaml` file +containing the configuration of the Velero restic DaemonSet. + +**create_backup_locations** (Bool, default=false): Indicate whether to create one or more backup storage locations. If set to `true`, Tilt will look for a `velero/tilt-resources/velero_v1_backupstoragelocation.yaml` file +containing at least one configuration for a Velero backup storage location. + +**setup-minio** (Bool, default=false): Configure this to `true` if you want to configure backup storage locations in a Minio instance running inside your cluster. + +**enable_debug** (Bool, default=false): Configure this to `true` if you want to debug the velero process using [Delve](https://github.com/go-delve/delve). + +**debug_continue_on_start** (Bool, default=true): Configure this to `true` if you want the velero process to continue on start when in debug mode. See [Delve CLI documentation](https://github.com/go-delve/delve/blob/master/Documentation/usage/dlv.md). + +### Create Kubernetes resource files to deploy +All needed Kubernetes resource files are provided as ready to use samples in the `velero/tilt-resources/examples` directory. You only have to move them to the `velero/tilt-resources` level. + +Because the Velero Kubernetes deployment as well as the restic DaemonSet contain the configuration +for any plugin to be used, files for these resources are expected to be provided by the user so you may choose +which provider plugin to load as a init container. Currently, the sample files provided are configured with all the +plugins supported by Velero, feel free to remove any of them as needed. + +For Velero to operate fully, it also needs at least one backup +storage location. A sample file is provided that needs to be modified with the specific +configuration for your object storage. See the next sub-section for more details on this. + +### Configure a backup storage location +You will have to configure the `velero/tilt-resources/velero_v1_backupstoragelocation.yaml` with the proper values according to your storage provider. Read the [plugin documentation](https://velero.io/plugins/) +to learn what field/value pairs are required for your particular provider's backup storage location configuration. + +Below are some ways to configure a backup storage location for Velero. +#### As a storage with a service provider +Follow the provider documentation to provision the storage. We have a [list of all known object storage providers](supported-providers/) with corresponding plugins for Velero. + +#### Using MinIO as an object storage +Note: to use MinIO as an object storage, you will need to use the [`AWS` plugin](https://github.com/vmware-tanzu/velero-plugin-for-aws), and configure the storage location with the `spec.provider` set to `aws` and the `spec.config.region` set to `minio`. Example: +``` +spec: + config: + region: minio + s3ForcePathStyle: "true" + s3Url: http://minio.velero.svc:9000 + objectStorage: + bucket: velero + provider: aws +``` + +Here are two ways to use MinIO as the storage: + +1) As a MinIO instance running inside your cluster (don't do this for production!) + + In the `tilt-settings.json` file, set `"setup-minio": true`. This will configure a Kubernetes deployment containing a running +instance of MinIO inside your cluster. There are [extra steps](contributions/minio/#expose-minio-outside-your-cluster-with-a-service) +necessary to expose MinIO outside the cluster. + + To access this storage, you will need to expose MinIO outside the cluster by forwarding the MinIO port to the local machine using kubectl port-forward -n svc/minio 9000. Update the BSL configuration to use that as its "public URL" by adding `publicUrl: http://localhost:9000` to the BSL config. This is necessary to do things like download a backup file. + + Note: with this setup, when your cluster is terminated so is the storage and any backup/restore in it. + +1) As a standalone MinIO instance running locally in a Docker container + + See [these instructions](https://github.com/vmware-tanzu/velero/discussions/3381) to run MinIO locally on your computer, as a standalone as opposed to running it on a Pod. + +Please see our [locations documentation](locations/) to learn more how backup locations work. + +### Configure the provider credentials (secret) +Whatever object storage provider you use, configure the credentials for in the `velero/tilt-resources/cloud` file. Read the [plugin documentation](https://velero.io/plugins/) +to learn what field/value pairs are required for your provider's credentials. The Tilt file will invoke Kustomize to create the secret under the hard-coded key `secret.cloud-credentials.data.cloud` in the Velero namespace. + +There is a sample credentials file properly formatted for a MinIO storage credentials in `velero/tilt-resources/examples/cloud`. + +### Configure debugging with Delve +If you would like to debug the Velero process, you can enable debug mode by setting the field `enable_debug` to `true` in your `tilt-resources/tile-settings.json` file. +This will enable you to debug the process using [Delve](https://github.com/go-delve/delve). +By enabling debug mode, the Velero executable will be built in debug mode (using the flags `-gcflags="-N -l"` which disables optimizations and inlining), and the process will be started in the Velero deployment using [`dlv exec`](https://github.com/go-delve/delve/blob/master/Documentation/usage/dlv_exec.md). + +The debug server will accept connections on port 2345 and Tilt is configured to forward this port to the local machine. +Once Tilt is [running](#run-tilt) and the Velero resource is ready, you can connect to the debug server to begin debugging. +To connect to the session, you can use the Delve CLI locally by running `dlv connect 127.0.0.1:2345`. See the [Delve CLI documentation](https://github.com/go-delve/delve/tree/master/Documentation/cli) for more guidance on how to use Delve. +Delve can also be used within a number of [editors and IDEs](https://github.com/go-delve/delve/blob/master/Documentation/EditorIntegration.md). + +By default, the Velero process will continue on start when in debug mode. +This means that the process will run until a breakpoint is set. +You can disable this by setting the field `debug_continue_on_start` to `false` in your `tilt-resources/tile-settings.json` file. +When this setting is disabled, the Velero process will not continue to run until a `continue` instruction is issued through your Delve session. + +When exiting your debug session, the CLI and editor integrations will typically ask if the remote process should be stopped. +It is important to leave the remote process running and just disconnect from the debugging session. +By stopping the remote process, that will cause the Velero container to stop and the pod to restart. +If backups are in progress, these will be left in a stale state as they are not resumed when the Velero pod restarts. + +### Run Tilt! +To launch your development environment, run: + +``` bash +tilt up +``` + +This will output the address to a web browser interface where you can monitor Tilt's status and the logs for each Tilt resource. After a brief amount of time, you should have a running development environment, and you should now be able to +create backups/restores and fully operate Velero. + +Note: Running `tilt down` after exiting out of Tilt [will delete all resources](https://docs.tilt.dev/cli/tilt_down.html) specified in the Tiltfile. + +Tip: Create an alias to `velero/_tuiltbuild/local/velero` and you won't have to run `make local` to get a refreshed version of the Velero CLI, just use the alias. + +Please see the documentation for [how Velero works](how-velero-works/). + +## Provider plugins +A provider must supply a `tilt-provider.json` file describing how to build it. Here is an example: + +```json +{ + "plugin_name": "velero-plugin-for-aws", + "context": ".", + "image": "velero/velero-plugin-for-aws", + "live_reload_deps": [ + "velero-plugin-for-aws" + ], + "go_main": "./velero-plugin-for-aws" +} +``` + +## Live updates +Each provider plugin configured to be deployed by Velero's Tilt setup has a `live_reload_deps` list. This defines the files and/or directories that Tilt +should monitor for changes. When a dependency is modified, Tilt rebuilds the provider's binary **on your local +machine**, copies the binary to the init container, and triggers a restart of the Velero container. This is significantly faster +than rebuilding the container image for each change. It also helps keep the size of each development image as small as +possible (the container images do not need the entire go toolchain, source code, module dependencies, etc.). diff --git a/site/content/docs/v1.7/troubleshooting.md b/site/content/docs/v1.7/troubleshooting.md new file mode 100644 index 000000000..7b035006f --- /dev/null +++ b/site/content/docs/v1.7/troubleshooting.md @@ -0,0 +1,219 @@ +--- +title: "Troubleshooting" +layout: docs +--- + +These tips can help you troubleshoot known issues. If they don't help, you can [file an issue][4], or talk to us on the [#velero channel][25] on the Kubernetes Slack server. + +## Debug installation/ setup issues + +- [Debug installation/setup issues][2] + +## Debug restores + +- [Debug restores][1] + +## General troubleshooting information + +You can use the `velero bug` command to open a [Github issue][4] by launching a browser window with some prepopulated values. Values included are OS, CPU architecture, `kubectl` client and server versions (if available) and the `velero` client version. This information isn't submitted to Github until you click the `Submit new issue` button in the Github UI, so feel free to add, remove or update whatever information you like. + +Some general commands for troubleshooting that may be helpful: + +* `velero backup describe ` - describe the details of a backup +* `velero backup logs ` - fetch the logs for this specific backup. Useful for viewing failures and warnings, including resources that could not be backed up. +* `velero restore describe ` - describe the details of a restore +* `velero restore logs ` - fetch the logs for this specific restore. Useful for viewing failures and warnings, including resources that could not be restored. +* `kubectl logs deployment/velero -n velero` - fetch the logs of the Velero server pod. This provides the output of the Velero server processes. + +### Getting velero debug logs + +You can increase the verbosity of the Velero server by editing your Velero deployment to look like this: + + +``` +kubectl edit deployment/velero -n velero +... + containers: + - name: velero + image: velero/velero:latest + command: + - /velero + args: + - server + - --log-level # Add this line + - debug # Add this line +... +``` + +## Known issue with restoring LoadBalancer Service + +Because of how Kubernetes handles Service objects of `type=LoadBalancer`, when you restore these objects you might encounter an issue with changed values for Service UIDs. Kubernetes automatically generates the name of the cloud resource based on the Service UID, which is different when restored, resulting in a different name for the cloud load balancer. If the DNS CNAME for your application points to the DNS name of your cloud load balancer, you'll need to update the CNAME pointer when you perform a Velero restore. + +Alternatively, you might be able to use the Service's `spec.loadBalancerIP` field to keep connections valid, if your cloud provider supports this value. See [the Kubernetes documentation about Services of Type LoadBalancer](https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer). + +## Miscellaneous issues + +### Velero reports `custom resource not found` errors when starting up. + +Velero's server will not start if the required Custom Resource Definitions are not found in Kubernetes. Run `velero install` again to install any missing custom resource definitions. + +### `velero backup logs` returns a `SignatureDoesNotMatch` error + +Downloading artifacts from object storage utilizes temporary, signed URLs. In the case of S3-compatible +providers, such as Ceph, there may be differences between their implementation and the official S3 +API that cause errors. + +Here are some things to verify if you receive `SignatureDoesNotMatch` errors: + + * Make sure your S3-compatible layer is using [signature version 4][5] (such as Ceph RADOS v12.2.7) + * For Ceph, try using a native Ceph account for credentials instead of external providers such as OpenStack Keystone + +## Velero (or a pod it was backing up) restarted during a backup and the backup is stuck InProgress + +Velero cannot resume backups that were interrupted. Backups stuck in the `InProgress` phase can be deleted with `kubectl delete backup -n `. +Backups in the `InProgress` phase have not uploaded any files to object storage. + +## Velero is not publishing prometheus metrics + +Steps to troubleshoot: + +- Confirm that your velero deployment has metrics publishing enabled. The [latest Velero helm charts][6] have been setup with [metrics enabled by default][7]. +- Confirm that the Velero server pod exposes the port on which the metrics server listens on. By default, this value is 8085. + +```yaml + ports: + - containerPort: 8085 + name: metrics + protocol: TCP +``` + +- Confirm that the metric server is listening for and responding to connections on this port. This can be done using [port-forwarding][9] as shown below + +```bash +$ kubectl -n port-forward 8085:8085 +Forwarding from 127.0.0.1:8085 -> 8085 +Forwarding from [::1]:8085 -> 8085 +. +. +. +``` + +Now, visiting http://localhost:8085/metrics on a browser should show the metrics that are being scraped from Velero. + +- Confirm that the Velero server pod has the necessary [annotations][8] for prometheus to scrape metrics. +- Confirm, from the Prometheus UI, that the Velero pod is one of the targets being scraped from Prometheus. + + +## Is Velero using the correct cloud credentials? + +Cloud provider credentials are given to Velero to store and retrieve backups from the object store and to perform volume snapshotting operations. + +These credentials are either passed to Velero at install time using: +1. `--secret-file` flag to the `velero install` command. OR +1. `--set-file credentials.secretContents.cloud` flag to the `helm install` command. + +Or, they are specified when creating a `BackupStorageLocation` using the `--credential` flag. + +### Troubleshooting credentials provided during install + +If using the credentials provided at install time, they are stored in the cluster as a Kubernetes secret named `cloud-credentials` in the same namespace in which Velero is installed. + +Follow the below troubleshooting steps to confirm that Velero is using the correct credentials: +1. Confirm that the `cloud-credentials` secret exists and has the correct content. + ```bash + $ kubectl -n velero get secrets cloud-credentials + NAME TYPE DATA AGE + cloud-credentials Opaque 1 11h + $ kubectl -n velero get secrets cloud-credentials -ojsonpath={.data.cloud} | base64 --decode + + ``` + +1. Confirm that velero deployment is mounting the `cloud-credentials` secret. + ```bash + $ kubectl -n velero get deploy velero -ojson | jq .spec.template.spec.containers[0].volumeMounts + [ + { + "mountPath": "/plugins", + "name": "plugins" + }, + { + "mountPath": "/scratch", + "name": "scratch" + }, + { + "mountPath": "/credentials", + "name": "cloud-credentials" + } + ] + ``` + + If [restic-integration][3] is enabled, then, confirm that the restic daemonset is also mounting the `cloud-credentials` secret. + ```bash + $ kubectl -n velero get ds restic -ojson |jq .spec.template.spec.containers[0].volumeMounts + [ + { + "mountPath": "/host_pods", + "mountPropagation": "HostToContainer", + "name": "host-pods" + }, + { + "mountPath": "/scratch", + "name": "scratch" + }, + { + "mountPath": "/credentials", + "name": "cloud-credentials" + } + ] + ``` + +1. Confirm if the correct credentials are mounted into the Velero pod. + ```bash + $ kubectl -n velero exec -ti deploy/velero -- bash + nobody@velero-69f9c874c-l8mqp:/$ cat /credentials/cloud + + ``` + +### Troubleshooting `BackupStorageLocation` credentials + +Follow the below troubleshooting steps to confirm that Velero is using the correct credentials if using credentials specific to a [`BackupStorageLocation`][10]: +1. Confirm that the object storage provider plugin being used supports multiple credentials. + + If the logs from the Velero deployment contain the error message `"config has invalid keys credentialsFile"`, the version of your object storage plugin does not yet support multiple credentials. + + The object storage plugins [maintained by the Velero team][11] support this feature, so please update your plugin to the latest version if you see the above error message. + + If you are using a plugin from a different provider, please contact them for further advice. + +1. Confirm that the secret and key referenced by the `BackupStorageLocation` exists in the Velero namespace and has the correct content: + ```bash + # Determine which secret and key the BackupStorageLocation is using + BSL_SECRET=$(kubectl get backupstoragelocations.velero.io -n velero -o yaml -o jsonpath={.spec.credential.name}) + BSL_SECRET_KEY=$(kubectl get backupstoragelocations.velero.io -n velero -o yaml -o jsonpath={.spec.credential.key}) + + # Confirm that the secret exists + kubectl -n velero get secret $BSL_SECRET + + # Print the content of the secret and ensure it is correct + kubectl -n velero get secret $BSL_SECRET -ojsonpath={.data.$BSL_SECRET_KEY} | base64 --decode + ``` + If the secret can't be found, the secret does not exist within the Velero namespace and must be created. + + If no output is produced when printing the contents of the secret, the key within the secret may not exist or may have no content. + Ensure that the key exists within the secret's data by checking the output from `kubectl -n velero describe secret $BSL_SECRET`. + If it does not exist, follow the instructions for [editing a Kubernetes secret][12] to add the base64 encoded credentials data. + + +[1]: debugging-restores.md +[2]: debugging-install.md +[3]: restic.md +[4]: https://github.com/vmware-tanzu/velero/issues +[5]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html +[6]: https://github.com/vmware-tanzu/helm-charts/blob/main/charts/velero +[7]: https://github.com/vmware-tanzu/helm-charts/blob/main/charts/velero/values.yaml#L44 +[8]: https://github.com/vmware-tanzu/helm-charts/blob/main/charts/velero/values.yaml#L49-L52 +[9]: https://kubectl.docs.kubernetes.io/pages/container_debugging/port_forward_to_pods.html +[10]: locations.md +[11]: /plugins +[12]: https://kubernetes.io/docs/concepts/configuration/secret/#editing-a-secret +[25]: https://kubernetes.slack.com/messages/velero diff --git a/site/content/docs/v1.7/uninstalling.md b/site/content/docs/v1.7/uninstalling.md new file mode 100644 index 000000000..f0b7b8d17 --- /dev/null +++ b/site/content/docs/v1.7/uninstalling.md @@ -0,0 +1,11 @@ +--- +title: "Uninstalling Velero" +layout: docs +--- + +If you would like to completely uninstall Velero from your cluster, the following commands will remove all resources created by `velero install`: + +```bash +kubectl delete namespace/velero clusterrolebinding/velero +kubectl delete crds -l component=velero +``` diff --git a/site/content/docs/v1.7/upgrade-to-1.6.md b/site/content/docs/v1.7/upgrade-to-1.6.md new file mode 100644 index 000000000..0797184ec --- /dev/null +++ b/site/content/docs/v1.7/upgrade-to-1.6.md @@ -0,0 +1,91 @@ +--- +title: "Upgrading to Velero 1.6" +layout: docs +--- + +## Prerequisites + +- Velero [v1.5.x][5] installed. + +If you're not yet running at least Velero v1.5, see the following: + +- [Upgrading to v1.1][1] +- [Upgrading to v1.2][2] +- [Upgrading to v1.3][3] +- [Upgrading to v1.4][4] +- [Upgrading to v1.5][5] + +## Instructions + +1. Install the Velero v1.6 command-line interface (CLI) by following the [instructions here][0]. + + Verify that you've properly installed it by running: + + ```bash + velero version --client-only + ``` + + You should see the following output: + + ```bash + Client: + Version: v1.6.2 + Git commit: + ``` + +1. Update the Velero custom resource definitions (CRDs) to include schema changes across all CRDs that are at the core of the new features in this release: + + ```bash + velero install --crds-only --dry-run -o yaml | kubectl apply -f - + ``` + + **NOTE:** You could change the default CRD API version (v1beta1 _or_ v1) if Velero CLI can't discover the Kubernetes preferred CRD API version. The Kubernetes version < 1.16 preferred CRD API version is v1beta1; the Kubernetes version >= 1.16 preferred CRD API version is v1. + + **NOTE:** If you are upgrading Velero in Kubernetes 1.14.x or earlier, you will need to use `kubectl apply`'s `--validate=false` option when applying the CRD configuration above. See [issue 2077][6] and [issue 2311][7] for more context. + +1. Update the container image used by the Velero deployment and, optionally, the restic daemon set: + + ```bash + kubectl set image deployment/velero \ + velero=velero/velero:v1.6.2 \ + --namespace velero + + # optional, if using the restic daemon set + kubectl set image daemonset/restic \ + restic=velero/velero:v1.6.2 \ + --namespace velero + ``` + +1. Confirm that the deployment is up and running with the correct version by running: + + ```bash + velero version + ``` + + You should see the following output: + + ```bash + Client: + Version: v1.6.2 + Git commit: + + Server: + Version: v1.6.2 + ``` + +## Notes +### Default backup storage location +We have deprecated the way to indicate the default backup storage location. Previously, that was indicated according to the backup storage location name set on the velero server-side via the flag `velero server --default-backup-storage-location`. Now we configure the default backup storage location on the velero client-side. Please refer to the [About locations][9] on how to indicate which backup storage location is the default one. + +After upgrading, if there is a previously created backup storage location with the name that matches what was defined on the server side as the default, it will be automatically set as the `default`. + +[0]: basic-install.md#install-the-cli +[1]: https://velero.io/docs/v1.1.0/upgrade-to-1.1/ +[2]: https://velero.io/docs/v1.2.0/upgrade-to-1.2/ +[3]: https://velero.io/docs/v1.3.2/upgrade-to-1.3/ +[4]: https://velero.io/docs/v1.4/upgrade-to-1.4/ +[5]: https://velero.io/docs/v1.5/upgrade-to-1.5 +[6]: https://github.com/vmware-tanzu/velero/releases/tag/v1.4.2 +[7]: https://github.com/vmware-tanzu/velero/issues/2077 +[8]: https://github.com/vmware-tanzu/velero/issues/2311 +[9]: https://velero.io/docs/v1.6/locations diff --git a/site/content/docs/v1.7/velero-install.md b/site/content/docs/v1.7/velero-install.md new file mode 100644 index 000000000..8cc6d4d2e --- /dev/null +++ b/site/content/docs/v1.7/velero-install.md @@ -0,0 +1,49 @@ +--- +title: "Velero Install CLI" +layout: docs +--- + +This document serves as a guide to using the `velero install` CLI command to install `velero` server components into your kubernetes cluster. + +_NOTE_: `velero install` will, by default, use the CLI's version information to determine the version of the server components to deploy. This behavior may be overridden by using the `--image` flag. Refer to [Building Server Component Container Images][1]. + +## Usage + +This section explains some of the basic flags supported by the `velero install` CLI command. For a complete explanation of the flags, please run `velero install --help` + +```bash +velero install \ + --plugins + --provider \ + --bucket \ + --secret-file \ + --velero-pod-cpu-request \ + --velero-pod-mem-request \ + --velero-pod-cpu-limit \ + --velero-pod-mem-limit \ + [--use-restic] \ + [--default-volumes-to-restic] \ + [--restic-pod-cpu-request ] \ + [--restic-pod-mem-request ] \ + [--restic-pod-cpu-limit ] \ + [--restic-pod-mem-limit ] +``` + +The values for the resource requests and limits flags follow the same format as [Kubernetes resource requirements][3] +For plugin container images, please refer to our [supported providers][2] page. + +## Examples + +This section provides examples that serve as a starting point for more customized installations. + +```bash +velero install --provider gcp --plugins velero/velero-plugin-for-gcp:v1.0.0 --bucket mybucket --secret-file ./gcp-service-account.json + +velero install --provider aws --plugins velero/velero-plugin-for-aws:v1.0.0 --bucket backups --provider aws --secret-file ./aws-iam-creds --backup-location-config region=us-east-2 --snapshot-location-config region=us-east-2 --use-restic + +velero install --provider azure --plugins velero/velero-plugin-for-microsoft-azure:v1.0.0 --bucket $BLOB_CONTAINER --secret-file ./credentials-velero --backup-location-config resourceGroup=$AZURE_BACKUP_RESOURCE_GROUP,storageAccount=$AZURE_STORAGE_ACCOUNT_ID[,subscriptionId=$AZURE_BACKUP_SUBSCRIPTION_ID] --snapshot-location-config apiTimeout=[,resourceGroup=$AZURE_BACKUP_RESOURCE_GROUP,subscriptionId=$AZURE_BACKUP_SUBSCRIPTION_ID] +``` + +[1]: build-from-source.md#making-images-and-updating-velero +[2]: supported-providers.md +[3]: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ diff --git a/site/content/docs/v1.7/vendoring-dependencies.md b/site/content/docs/v1.7/vendoring-dependencies.md new file mode 100644 index 000000000..9fc1bcac1 --- /dev/null +++ b/site/content/docs/v1.7/vendoring-dependencies.md @@ -0,0 +1,21 @@ +--- +title: "Vendoring dependencies" +layout: docs +--- + +## Overview + +We are using [dep][0] to manage dependencies. You can install it by following [these +instructions][1]. + +## Adding a new dependency + +Run `dep ensure`. If you want to see verbose output, you can append `-v` as in +`dep ensure -v`. + +## Updating an existing dependency + +Run `dep ensure -update [ ...]` to update one or more dependencies. + +[0]: https://github.com/golang/dep +[1]: https://golang.github.io/dep/docs/installation.html diff --git a/site/content/docs/v1.7/website-guidelines.md b/site/content/docs/v1.7/website-guidelines.md new file mode 100644 index 000000000..c5373f4d8 --- /dev/null +++ b/site/content/docs/v1.7/website-guidelines.md @@ -0,0 +1,45 @@ +--- +title: "Website Guidelines" +layout: docs +--- + +## Running the website locally + +When making changes to the website, please run the site locally before submitting a PR and manually verify your changes. + +At the root of the project, run: + +```bash +make serve-docs +``` + +This runs all the Hugo dependencies in a container. + +Alternatively, for quickly loading the website, under the `velero/site/` directory run: + +```bash +hugo serve +``` + +For more information on how to run the website locally, please see our [Hugo documentation](https://gohugo.io/getting-started/). + +## Adding a blog post + +To add a blog post, create a new markdown (.MD) file in the `/site/content/posts/` folder. A blog post requires the following front matter. + +```yaml +title: "Title of the blog" +excerpt: Brief summary of thee blog post that appears as a preview on velero.io/blogs +author_name: Jane Smith +slug: URL-For-Blog +# Use different categories that apply to your blog. This is used to connect related blogs on the site +categories: ['velero','release'] +# Image to use for blog. The path is relative to the site/static/ folder +image: /img/posts/example-image.jpg +# Tag should match author to drive author pages. Tags can have multiple values. +tags: ['Velero Team', 'Nolan Brubaker'] +``` + +Include the `author_name` value in tags field so the page that lists the author's posts will work properly, for example https://velero.io/tags/carlisia-thompson/. + +Ideally each blog will have a unique image to use on the blog home page, but if you do not include an image, the default Velero logo will be used instead. Use an image that is less than 70KB and add it to the `/site/static/img/posts` folder. diff --git a/site/data/docs/toc-mapping.yml b/site/data/docs/toc-mapping.yml index c787dd575..4dc739ee3 100644 --- a/site/data/docs/toc-mapping.yml +++ b/site/data/docs/toc-mapping.yml @@ -3,6 +3,7 @@ # that the navigation for older versions still work. main: main-toc +v1.7: v1-7-toc v1.6: v1-6-toc v1.5: v1-5-toc v1.4: v1-4-toc diff --git a/site/data/docs/v1-7-toc.yml b/site/data/docs/v1-7-toc.yml new file mode 100644 index 000000000..faffa10f7 --- /dev/null +++ b/site/data/docs/v1-7-toc.yml @@ -0,0 +1,97 @@ +toc: + - title: Introduction + subfolderitems: + - page: About Velero + url: /index.html + - page: How Velero works + url: /how-velero-works + - page: About locations + url: /locations + - title: Install + subfolderitems: + - page: Basic Install + url: /basic-install + - page: Customize Installation + url: /customize-installation + - page: Upgrade to 1.6 + url: /upgrade-to-1.6 + - page: Supported providers + url: /supported-providers + - page: Evaluation install + url: /contributions/minio + - page: Restic integration + url: /restic + - page: Examples + url: /examples + - page: Uninstalling + url: /uninstalling + - title: Use + subfolderitems: + - page: Disaster recovery + url: /disaster-case + - page: Cluster migration + url: /migration-case + - page: Enable API group versions + url: /enable-api-group-versions-feature + - page: Resource filtering + url: /resource-filtering + - page: Backup reference + url: /backup-reference + - page: Backup hooks + url: /backup-hooks + - page: Restore reference + url: /restore-reference + - page: Restore hooks + url: /restore-hooks + - page: Run in any namespace + url: /namespace + - page: CSI Support (beta) + url: /csi + - page: Verifying Self-signed Certificates + url: /self-signed-certificates + - page: Changing RBAC permissions + url: /rbac + - title: Plugins + subfolderitems: + - page: Overview + url: /overview-plugins + - page: Custom plugins + url: /custom-plugins + - title: Troubleshoot + subfolderitems: + - page: Troubleshooting + url: /troubleshooting + - page: Troubleshoot an install or setup + url: /debugging-install + - page: Troubleshoot a restore + url: /debugging-restores + - page: Troubleshoot Restic + url: /restic#troubleshooting + - title: Contribute + subfolderitems: + - page: Start Contributing + url: /start-contributing + - page: Development + url: /development + - page: Rapid development with Tilt + url: /tilt + - page: Build from source + url: /build-from-source + - page: Run locally + url: /run-locally + - page: Code standards + url: /code-standards + - page: Website guidelines + url: /website-guidelines + - page: Documentation style guide + url: /style-guide + - title: More information + subfolderitems: + - page: Backup file format + url: /output-file-format + - page: API types + url: /api-types + - page: Support process + url: /support-process + - page: For maintainers + url: /maintainers From 4db866a0b26d86eb3db21af51f02ed85855f4968 Mon Sep 17 00:00:00 2001 From: danfengl Date: Sat, 21 Aug 2021 12:57:49 +0000 Subject: [PATCH 012/136] Add upgrade test into E2E tests Signed-off-by: danfengl --- Makefile | 2 +- changelogs/unreleased/4058-danfengliu | 1 + test/e2e/Makefile | 9 +- test/e2e/e2e_suite_test.go | 10 +- test/e2e/install.go | 6 +- .../{kibishii_tests.go => kibishii_utils.go} | 105 ++++++------ test/e2e/upgrade_test.go | 153 ++++++++++++++++++ test/e2e/velero_utils.go | 86 ++++++++++ 8 files changed, 316 insertions(+), 56 deletions(-) create mode 100644 changelogs/unreleased/4058-danfengliu rename test/e2e/{kibishii_tests.go => kibishii_utils.go} (90%) create mode 100644 test/e2e/upgrade_test.go diff --git a/Makefile b/Makefile index 3884063c9..053e0331e 100644 --- a/Makefile +++ b/Makefile @@ -366,4 +366,4 @@ gen-docs: .PHONY: test-e2e test-e2e: local - $(MAKE) -C test/e2e run + $(MAKE) -e VERSION=$(VERSION) -C test/e2e run diff --git a/changelogs/unreleased/4058-danfengliu b/changelogs/unreleased/4058-danfengliu new file mode 100644 index 000000000..b1cdb0245 --- /dev/null +++ b/changelogs/unreleased/4058-danfengliu @@ -0,0 +1 @@ +Add upgrade test in E2E test \ No newline at end of file diff --git a/test/e2e/Makefile b/test/e2e/Makefile index 6f7140463..b6f6aaf78 100644 --- a/test/e2e/Makefile +++ b/test/e2e/Makefile @@ -48,7 +48,11 @@ OUTPUT_DIR := _output/$(GOOS)/$(GOARCH)/bin GINKGO_FOCUS ?= VELERO_CLI ?=$$(pwd)/../../_output/bin/$(GOOS)/$(GOARCH)/velero VELERO_IMAGE ?= velero/velero:main +VELERO_VERSION ?= $(VERSION) RESTIC_HELPER_IMAGE ?= +#Released version only +UPGRADE_FROM_VELERO_CLI ?= +UPGRADE_FROM_VELERO_VERSION ?= v1.6.3 CRDS_VERSION ?= v1 VELERO_NAMESPACE ?= velero CREDS_FILE ?= @@ -79,10 +83,13 @@ run: ginkgo @[ "${BSL_BUCKET}" ] && echo "Using bucket ${BSL_BUCKET} to store backups from E2E tests" || \ (echo "Bucket to store the backups from E2E tests is required, please re-run with BSL_BUCKET="; exit 1 ) @[ "${CLOUD_PROVIDER}" ] && echo "Using cloud provider ${CLOUD_PROVIDER}" || \ - (echo "Cloud provider for target cloud/plug-in provider is required, please rerun with CLOUD_PROVIDER="; exit 1) + (echo "Cloud provider for target cloud/plug-in provider is required, please rerun with CLOUD_PROVIDER="; exit 1) @$(GINKGO) -v -focus="$(GINKGO_FOCUS)" . -- -velerocli=$(VELERO_CLI) \ -velero-image=$(VELERO_IMAGE) \ + -velero-version=$(VELERO_VERSION) \ -restic-helper-image=$(RESTIC_HELPER_IMAGE) \ + -upgrade-from-velero-cli=$(UPGRADE_FROM_VELERO_CLI) \ + -upgrade-from-velero-version=$(UPGRADE_FROM_VELERO_VERSION) \ -velero-namespace=$(VELERO_NAMESPACE) \ -crds-version=$(CRDS_VERSION) \ -credentials-file=$(CREDS_FILE) \ diff --git a/test/e2e/e2e_suite_test.go b/test/e2e/e2e_suite_test.go index 8cc3dfe96..81d41f790 100644 --- a/test/e2e/e2e_suite_test.go +++ b/test/e2e/e2e_suite_test.go @@ -26,9 +26,10 @@ import ( ) var ( - veleroCLI, veleroImage, cloudCredentialsFile, bslConfig, bslBucket, bslPrefix, vslConfig, cloudProvider, objectStoreProvider, veleroNamespace, crdsVersion string - additionalBSLProvider, additionalBSLBucket, additionalBSLPrefix, additionalBSLConfig, additionalBSLCredentials, registryCredentialFile, resticHelperImage string - installVelero bool + veleroCLI, veleroImage, veleroVersion, cloudCredentialsFile, bslConfig, bslBucket, bslPrefix, vslConfig, cloudProvider, objectStoreProvider, veleroNamespace, crdsVersion string + additionalBSLProvider, additionalBSLBucket, additionalBSLPrefix, additionalBSLConfig, additionalBSLCredentials, registryCredentialFile, resticHelperImage string + upgradeFromVeleroVersion, upgradeFromVeleroCLI string + installVelero bool ) func init() { @@ -38,7 +39,10 @@ func init() { flag.StringVar(&cloudCredentialsFile, "credentials-file", "", "file containing credentials for backup and volume provider. Required.") flag.StringVar(&veleroCLI, "velerocli", "velero", "path to the velero application to use.") flag.StringVar(&veleroImage, "velero-image", "velero/velero:main", "image for the velero server to be tested.") + flag.StringVar(&veleroVersion, "velero-version", "main", "image for the velero server to be tested.") flag.StringVar(&resticHelperImage, "restic-helper-image", "", "image for the velero restic restore helper to be tested.") + flag.StringVar(&upgradeFromVeleroCLI, "upgrade-from-velero-cli", "", "path to the pre-upgrade velero application to use.") + flag.StringVar(&upgradeFromVeleroVersion, "upgrade-from-velero-version", "v1.6.3", "image for the pre-upgrade velero server to be tested.") flag.StringVar(&bslConfig, "bsl-config", "", "configuration to use for the backup storage location. Format is key1=value1,key2=value2") flag.StringVar(&bslPrefix, "prefix", "", "prefix under which all Velero data should be stored within the bucket. Optional.") flag.StringVar(&vslConfig, "vsl-config", "", "configuration to use for the volume snapshot location. Format is key1=value1,key2=value2") diff --git a/test/e2e/install.go b/test/e2e/install.go index 61dbce07f..7dc7a63a8 100644 --- a/test/e2e/install.go +++ b/test/e2e/install.go @@ -302,8 +302,10 @@ func toUnstructured(res interface{}) (unstructured.Unstructured, error) { func waitVeleroReady(ctx context.Context, namespace string, useRestic bool) error { fmt.Println("Waiting for Velero deployment to be ready.") - stdout, stderr, err := velerexec.RunCommand(exec.CommandContext(ctx, "kubectl", "wait", "--for=condition=available", - "deployment/velero", "-n", namespace, "--timeout=600s")) + // when doing upgrade by the "kubectl apply" the command "kubectl wait --for=condition=available deployment/velero -n velero --timeout=600s" returns directly + // use "rollout status" instead to avoid this. For more detail information, refer to https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#complete-deployment + stdout, stderr, err := velerexec.RunCommand(exec.CommandContext(ctx, "kubectl", "rollout", "status", + "deployment/velero", "-n", namespace)) if err != nil { return errors.Wrapf(err, "fail to wait for the velero deployment ready, stdout=%s, stderr=%s", stdout, stderr) } diff --git a/test/e2e/kibishii_tests.go b/test/e2e/kibishii_utils.go similarity index 90% rename from test/e2e/kibishii_tests.go rename to test/e2e/kibishii_utils.go index d15893d72..e4e962c53 100644 --- a/test/e2e/kibishii_tests.go +++ b/test/e2e/kibishii_utils.go @@ -33,6 +33,54 @@ const ( jumpPadPod = "jump-pad" ) +// runKibishiiTests runs kibishii tests on the provider. +func runKibishiiTests(client testClient, providerName, veleroCLI, veleroNamespace, backupName, restoreName, backupLocation string, + useVolumeSnapshots bool, registryCredentialFile string) error { + oneHourTimeout, _ := context.WithTimeout(context.Background(), time.Minute*60) + + if err := createNamespace(oneHourTimeout, client, kibishiiNamespace); err != nil { + return errors.Wrapf(err, "Failed to create namespace %s to install Kibishii workload", kibishiiNamespace) + } + defer func() { + if err := deleteNamespace(oneHourTimeout, client, kibishiiNamespace, true); err != nil { + fmt.Println(errors.Wrapf(err, "failed to delete the namespace %q", kibishiiNamespace)) + } + }() + if err := kibishiiPrepareBeforeBackup(oneHourTimeout, client, providerName, kibishiiNamespace, registryCredentialFile); err != nil { + return errors.Wrapf(err, "Failed to install and prepare data for kibishii %s", kibishiiNamespace) + } + + if err := veleroBackupNamespace(oneHourTimeout, veleroCLI, veleroNamespace, backupName, kibishiiNamespace, backupLocation, useVolumeSnapshots); err != nil { + veleroBackupLogs(oneHourTimeout, veleroCLI, veleroNamespace, backupName) + return errors.Wrapf(err, "Failed to backup kibishii namespace %s", kibishiiNamespace) + } + + if providerName == "vsphere" && useVolumeSnapshots { + // Wait for uploads started by the Velero Plug-in for vSphere to complete + // TODO - remove after upload progress monitoring is implemented + fmt.Println("Waiting for vSphere uploads to complete") + if err := waitForVSphereUploadCompletion(oneHourTimeout, time.Hour, kibishiiNamespace); err != nil { + return errors.Wrapf(err, "Error waiting for uploads to complete") + } + } + fmt.Printf("Simulating a disaster by removing namespace %s\n", kibishiiNamespace) + if err := deleteNamespace(oneHourTimeout, client, kibishiiNamespace, true); err != nil { + return errors.Wrapf(err, "failed to delete namespace %s", kibishiiNamespace) + } + + if err := veleroRestore(oneHourTimeout, veleroCLI, veleroNamespace, restoreName, backupName); err != nil { + veleroRestoreLogs(oneHourTimeout, veleroCLI, veleroNamespace, restoreName) + return errors.Wrapf(err, "Restore %s failed from backup %s", restoreName, backupName) + } + + if err := kibishiiVerifyAfterRestore(client, kibishiiNamespace, oneHourTimeout); err != nil { + return errors.Wrapf(err, "Error verifying kibishii after restore") + } + + fmt.Printf("kibishii test completed successfully\n") + return nil +} + func installKibishii(ctx context.Context, namespace string, cloudPlatform string) error { // We use kustomize to generate YAML for Kibishii from the checked-in yaml directories kibishiiInstallCmd := exec.CommandContext(ctx, "kubectl", "apply", "-n", namespace, "-k", @@ -88,20 +136,12 @@ func verifyData(ctx context.Context, namespace string, levels int, filesPerLevel return nil } -// runKibishiiTests runs kibishii tests on the provider. -func runKibishiiTests(client testClient, providerName, veleroCLI, veleroNamespace, backupName, restoreName, backupLocation string, - useVolumeSnapshots bool, registryCredentialFile string) error { - oneHourTimeout, _ := context.WithTimeout(context.Background(), time.Minute*60) +func waitForKibishiiPods(ctx context.Context, client testClient, kibishiiNamespace string) error { + return waitForPods(ctx, client, kibishiiNamespace, []string{"jump-pad", "etcd0", "etcd1", "etcd2", "kibishii-deployment-0", "kibishii-deployment-1"}) +} + +func kibishiiPrepareBeforeBackup(oneHourTimeout context.Context, client testClient, providerName, kibishiiNamespace, registryCredentialFile string) error { serviceAccountName := "default" - if err := createNamespace(oneHourTimeout, client, kibishiiNamespace); err != nil { - return errors.Wrapf(err, "Failed to create namespace %s to install Kibishii workload", kibishiiNamespace) - } - defer func() { - // if other functions runs timeout, the defer has no change to run, so use a separated context rather than the "oneHourTimeout" to avoid this - if err := deleteNamespace(context.Background(), client, kibishiiNamespace, true); err != nil { - fmt.Println(errors.Wrapf(err, "failed to delete the namespace %q", kibishiiNamespace)) - } - }() // wait until the service account is created before patch the image pull secret if err := waitUntilServiceAccountCreated(oneHourTimeout, client, kibishiiNamespace, serviceAccountName, 10*time.Minute); err != nil { @@ -126,37 +166,10 @@ func runKibishiiTests(client testClient, providerName, veleroCLI, veleroNamespac if err := generateData(oneHourTimeout, kibishiiNamespace, 2, 10, 10, 1024, 1024, 0, 2); err != nil { return errors.Wrap(err, "Failed to generate data") } + return nil +} - if err := veleroBackupNamespace(oneHourTimeout, veleroCLI, veleroNamespace, backupName, kibishiiNamespace, backupLocation, useVolumeSnapshots); err != nil { - veleroBackupLogs(oneHourTimeout, veleroCLI, veleroNamespace, backupName) - return errors.Wrapf(err, "Failed to backup kibishii namespace %s", kibishiiNamespace) - } - - if providerName == "vsphere" && useVolumeSnapshots { - // Wait for uploads started by the Velero Plug-in for vSphere to complete - // TODO - remove after upload progress monitoring is implemented - fmt.Println("Waiting for vSphere uploads to complete") - if err := waitForVSphereUploadCompletion(oneHourTimeout, time.Hour, kibishiiNamespace); err != nil { - return errors.Wrapf(err, "Error waiting for uploads to complete") - } - } - fmt.Printf("Simulating a disaster by removing namespace %s\n", kibishiiNamespace) - if err := deleteNamespace(oneHourTimeout, client, kibishiiNamespace, true); err != nil { - return errors.Wrapf(err, "failed to delete namespace %s", kibishiiNamespace) - } - - // the snapshots of AWS may be still in pending status when do the restore, wait for a while - // to avoid this https://github.com/vmware-tanzu/velero/issues/1799 - // TODO remove this after https://github.com/vmware-tanzu/velero/issues/3533 is fixed - if providerName == "aws" && useVolumeSnapshots { - fmt.Println("Waiting 5 minutes to make sure the snapshots are ready...") - time.Sleep(5 * time.Minute) - } - if err := veleroRestore(oneHourTimeout, veleroCLI, veleroNamespace, restoreName, backupName); err != nil { - veleroRestoreLogs(oneHourTimeout, veleroCLI, veleroNamespace, restoreName) - return errors.Wrapf(err, "Restore %s failed from backup %s", restoreName, backupName) - } - +func kibishiiVerifyAfterRestore(client testClient, kibishiiNamespace string, oneHourTimeout context.Context) error { // wait for kibishii pod startup // TODO - Fix kibishii so we can check that it is ready to go fmt.Printf("Waiting for kibishii pods to be ready\n") @@ -169,11 +182,5 @@ func runKibishiiTests(client testClient, providerName, veleroCLI, veleroNamespac if err := verifyData(oneHourTimeout, kibishiiNamespace, 2, 10, 10, 1024, 1024, 0, 2); err != nil { return errors.Wrap(err, "Failed to verify data generated by kibishii") } - - fmt.Printf("kibishii test completed successfully\n") return nil } - -func waitForKibishiiPods(ctx context.Context, client testClient, kibishiiNamespace string) error { - return waitForPods(ctx, client, kibishiiNamespace, []string{"jump-pad", "etcd0", "etcd1", "etcd2", "kibishii-deployment-0", "kibishii-deployment-1"}) -} diff --git a/test/e2e/upgrade_test.go b/test/e2e/upgrade_test.go new file mode 100644 index 000000000..5eb80d108 --- /dev/null +++ b/test/e2e/upgrade_test.go @@ -0,0 +1,153 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ +package e2e + +import ( + "context" + "flag" + "fmt" + "time" + + "github.com/google/uuid" + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "github.com/pkg/errors" +) + +const ( + upgradeNamespace = "upgrade-workload" +) + +// Upgrade test by Kibishi using restic +var _ = Describe("[Upgrade][Restic] Velero upgrade tests on cluster using the plugin provider for object storage and Restic for volume backups", backup_upgrade_restore_with_restic) + +var _ = Describe("[Upgrade][Snapshot] Velero upgrade tests on cluster using the plugin provider for object storage and snapshots for volume backups", backup_upgrade_restore_with_snapshots) + +func backup_upgrade_restore_with_snapshots() { + backup_upgrade_restore_test(true) +} + +func backup_upgrade_restore_with_restic() { + backup_upgrade_restore_test(false) +} + +func backup_upgrade_restore_test(useVolumeSnapshots bool) { + var ( + backupName, restoreName string + ) + upgradeFromVeleroCLI := upgradeFromVeleroCLI + + client, err := newTestClient() + Expect(err).To(Succeed(), "Failed to instantiate cluster client for backup tests") + + BeforeEach(func() { + if (len(upgradeFromVeleroVersion)) == 0 { + Skip("An original velero version is required to run upgrade test, please run test with upgrade-from-velero-version=") + } + if useVolumeSnapshots && cloudProvider == "kind" { + Skip("Volume snapshots not supported on kind") + } + //Assume tag of velero server image is identical to velero CLI version + //Download velero CLI if it's empty according to velero CLI version + if (len(upgradeFromVeleroCLI)) == 0 { + upgradeFromVeleroCLI, err = installVeleroCLI(upgradeFromVeleroVersion) + Expect(err).To(Succeed()) + } + + var err error + flag.Parse() + uuidgen, err = uuid.NewRandom() + Expect(err).To(Succeed()) + if installVelero { + //Set veleroImage and resticHelperImage to blank + //veleroImage and resticHelperImage should be the default value in originalCli + Expect(veleroInstall(context.Background(), upgradeFromVeleroCLI, "", "", veleroNamespace, cloudProvider, objectStoreProvider, useVolumeSnapshots, + cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, "", "", registryCredentialFile)).To(Succeed()) + Expect(checkVeleroVersion(context.Background(), upgradeFromVeleroCLI, upgradeFromVeleroVersion)).To(Succeed()) + } else { + Skip("Upgrade test is skipped since user don't want to install any other velero") + } + }) + + AfterEach(func() { + if installVelero { + err = veleroUninstall(context.Background(), veleroCLI, veleroNamespace) + Expect(err).To(Succeed()) + } + }) + + When("kibishii is the sample workload", func() { + It("should be successfully backed up and restored to the default BackupStorageLocation", func() { + backupName = "backup-" + uuidgen.String() + restoreName = "restore-" + uuidgen.String() + Expect(runUpgradeTests(client, veleroImage, veleroVersion, cloudProvider, upgradeFromVeleroCLI, veleroNamespace, backupName, restoreName, "", useVolumeSnapshots, registryCredentialFile)).To(Succeed(), + "Failed to successfully backup and restore Kibishii namespace") + }) + }) +} + +// runUpgradeTests runs upgrade test on the provider by kibishii. +func runUpgradeTests(client testClient, upgradeToVeleroImage, upgradeToVeleroVersion, providerName, upgradeFromVeleroCLI, veleroNamespace, backupName, restoreName, backupLocation string, + useVolumeSnapshots bool, registryCredentialFile string) error { + oneHourTimeout, _ := context.WithTimeout(context.Background(), time.Minute*60) + if err := createNamespace(oneHourTimeout, client, upgradeNamespace); err != nil { + return errors.Wrapf(err, "Failed to create namespace %s to install Kibishii workload", upgradeNamespace) + } + defer func() { + if err := deleteNamespace(oneHourTimeout, client, upgradeNamespace, true); err != nil { + fmt.Println(errors.Wrapf(err, "failed to delete the namespace %q", upgradeNamespace)) + } + }() + if err := kibishiiPrepareBeforeBackup(oneHourTimeout, client, providerName, upgradeNamespace, registryCredentialFile); err != nil { + return errors.Wrapf(err, "Failed to install and prepare data for kibishii %s", upgradeNamespace) + } + + if err := veleroBackupNamespace(oneHourTimeout, upgradeFromVeleroCLI, veleroNamespace, backupName, upgradeNamespace, backupLocation, useVolumeSnapshots); err != nil { + veleroBackupLogs(oneHourTimeout, upgradeFromVeleroCLI, veleroNamespace, backupName) + return errors.Wrapf(err, "Failed to backup kibishii namespace %s", upgradeNamespace) + } + + if providerName == "vsphere" && useVolumeSnapshots { + // Wait for uploads started by the Velero Plug-in for vSphere to complete + // TODO - remove after upload progress monitoring is implemented + fmt.Println("Waiting for vSphere uploads to complete") + if err := waitForVSphereUploadCompletion(oneHourTimeout, time.Hour, upgradeNamespace); err != nil { + return errors.Wrapf(err, "Error waiting for uploads to complete") + } + } + fmt.Printf("Simulating a disaster by removing namespace %s\n", upgradeNamespace) + if err := deleteNamespace(oneHourTimeout, client, upgradeNamespace, true); err != nil { + return errors.Wrapf(err, "failed to delete namespace %s", upgradeNamespace) + } + if err := veleroInstall(context.Background(), veleroCLI, upgradeToVeleroImage, resticHelperImage, veleroNamespace, cloudProvider, objectStoreProvider, useVolumeSnapshots, + cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, crdsVersion, "", registryCredentialFile); err != nil { + return errors.Wrapf(err, "Failed to install velero from image %s", upgradeToVeleroImage) + } + if err := checkVeleroVersion(context.Background(), veleroCLI, upgradeToVeleroVersion); err != nil { + return errors.Wrapf(err, "Velero install version mismatch.") + } + if err := veleroRestore(oneHourTimeout, veleroCLI, veleroNamespace, restoreName, backupName); err != nil { + veleroRestoreLogs(oneHourTimeout, veleroCLI, veleroNamespace, restoreName) + return errors.Wrapf(err, "Restore %s failed from backup %s", restoreName, backupName) + } + + if err := kibishiiVerifyAfterRestore(client, upgradeNamespace, oneHourTimeout); err != nil { + return errors.Wrapf(err, "Error verifying kibishii after restore") + } + + fmt.Printf("Upgrade test completed successfully\n") + return nil +} diff --git a/test/e2e/velero_utils.go b/test/e2e/velero_utils.go index f19841643..fd16edcea 100644 --- a/test/e2e/velero_utils.go +++ b/test/e2e/velero_utils.go @@ -22,9 +22,13 @@ import ( "encoding/json" "fmt" "io" + "io/ioutil" + "net/http" "os" "os/exec" "path/filepath" + "regexp" + "runtime" "strings" "time" @@ -393,3 +397,85 @@ func waitForVSphereUploadCompletion(ctx context.Context, timeout time.Duration, return err } + +func getVeleroVersion(ctx context.Context, veleroCLI string) (string, error) { + cmd := exec.CommandContext(ctx, veleroCLI, "version", "--timeout", "60s") + fmt.Println("Get Version Command:" + cmd.String()) + stdout, stderr, err := veleroexec.RunCommand(cmd) + if err != nil { + return "", errors.Wrapf(err, "failed to get velero version, stdout=%s, stderr=%s", stdout, stderr) + } + + output := strings.Replace(stdout, "\n", " ", -1) + fmt.Println("Version:" + output) + regCompiler := regexp.MustCompile(`(?i)client\s*:\s*version\s*:\s*(\S+).+server\s*:\s*version\s*:\s*(\S+)`) + versionMatches := regCompiler.FindStringSubmatch(output) + if len(versionMatches) < 3 { + return "", errors.New("Velero version command returned null version") + } + if versionMatches[1] != versionMatches[2] { + return "", errors.New("Velero server and client version are not matched") + } + return versionMatches[1], nil +} + +func checkVeleroVersion(ctx context.Context, veleroCLI string, expectedVer string) error { + tag := expectedVer + tagInstalled, err := getVeleroVersion(ctx, veleroCLI) + if err != nil { + return errors.WithMessagef(err, "Failed to get Velero version") + } + if strings.Trim(tag, " ") != strings.Trim(tagInstalled, " ") { + return errors.New(fmt.Sprintf("Velero version %s is not as expected %s", tagInstalled, tag)) + } + fmt.Printf("Velero version %s is as expected %s\n", tagInstalled, tag) + return nil +} + +func installVeleroCLI(version string) (string, error) { + name := "velero-" + version + "-" + runtime.GOOS + "-" + runtime.GOARCH + postfix := ".tar.gz" + tarball := name + postfix + tempFile, err := getVeleroCliTarball("https://github.com/vmware-tanzu/velero/releases/download/" + version + "/" + tarball) + if err != nil { + return "", errors.WithMessagef(err, "Failed to get Velero CLI tarball") + } + tempVeleroCliDir, err := ioutil.TempDir("", "velero-test") + if err != nil { + return "", errors.WithMessagef(err, "Failed to create temp dir for tarball extraction") + } + + cmd := exec.Command("tar", "-xvf", tempFile.Name(), "-C", tempVeleroCliDir) + defer os.Remove(tempFile.Name()) + + if _, err := cmd.Output(); err != nil { + return "", errors.WithMessagef(err, "Failed to extract file from velero CLI tarball") + } + return tempVeleroCliDir + "/" + name + "/velero", nil +} + +func getVeleroCliTarball(cliTarballUrl string) (*os.File, error) { + lastInd := strings.LastIndex(cliTarballUrl, "/") + tarball := cliTarballUrl[lastInd+1:] + + resp, err := http.Get(cliTarballUrl) + if err != nil { + return nil, errors.WithMessagef(err, "Failed to access Velero CLI tarball") + } + defer resp.Body.Close() + + tarballBuf, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, errors.WithMessagef(err, "Failed to read buffer for tarball %s.", tarball) + } + tmpfile, err := ioutil.TempFile("", tarball) + if err != nil { + return nil, errors.WithMessagef(err, "Failed to create temp file for tarball %s locally.", tarball) + } + + if _, err := tmpfile.Write(tarballBuf); err != nil { + return nil, errors.WithMessagef(err, "Failed to write tarball file %s locally.", tarball) + } + + return tmpfile, nil +} From a4f3dc047b0cd4f35bfe51ffadbabad87fa5f210 Mon Sep 17 00:00:00 2001 From: Bridget McErlean Date: Tue, 7 Sep 2021 23:38:18 -0400 Subject: [PATCH 013/136] Add upgrade instructions for v1.7.0 Signed-off-by: Bridget McErlean --- .../{upgrade-to-1.6.md => upgrade-to-1.7.md} | 29 ++++++++++--------- .../{upgrade-to-1.6.md => upgrade-to-1.7.md} | 29 ++++++++++--------- 2 files changed, 30 insertions(+), 28 deletions(-) rename site/content/docs/main/{upgrade-to-1.6.md => upgrade-to-1.7.md} (81%) rename site/content/docs/v1.7/{upgrade-to-1.6.md => upgrade-to-1.7.md} (81%) diff --git a/site/content/docs/main/upgrade-to-1.6.md b/site/content/docs/main/upgrade-to-1.7.md similarity index 81% rename from site/content/docs/main/upgrade-to-1.6.md rename to site/content/docs/main/upgrade-to-1.7.md index 0797184ec..2b10b122f 100644 --- a/site/content/docs/main/upgrade-to-1.6.md +++ b/site/content/docs/main/upgrade-to-1.7.md @@ -1,23 +1,24 @@ --- -title: "Upgrading to Velero 1.6" +title: "Upgrading to Velero 1.7" layout: docs --- ## Prerequisites -- Velero [v1.5.x][5] installed. +- Velero [v1.6.x][6] installed. -If you're not yet running at least Velero v1.5, see the following: +If you're not yet running at least Velero v1.6, see the following: - [Upgrading to v1.1][1] - [Upgrading to v1.2][2] - [Upgrading to v1.3][3] - [Upgrading to v1.4][4] - [Upgrading to v1.5][5] +- [Upgrading to v1.6][6] ## Instructions -1. Install the Velero v1.6 command-line interface (CLI) by following the [instructions here][0]. +1. Install the Velero v1.7 command-line interface (CLI) by following the [instructions here][0]. Verify that you've properly installed it by running: @@ -29,7 +30,7 @@ If you're not yet running at least Velero v1.5, see the following: ```bash Client: - Version: v1.6.2 + Version: v1.7.0 Git commit: ``` @@ -41,18 +42,18 @@ If you're not yet running at least Velero v1.5, see the following: **NOTE:** You could change the default CRD API version (v1beta1 _or_ v1) if Velero CLI can't discover the Kubernetes preferred CRD API version. The Kubernetes version < 1.16 preferred CRD API version is v1beta1; the Kubernetes version >= 1.16 preferred CRD API version is v1. - **NOTE:** If you are upgrading Velero in Kubernetes 1.14.x or earlier, you will need to use `kubectl apply`'s `--validate=false` option when applying the CRD configuration above. See [issue 2077][6] and [issue 2311][7] for more context. + **NOTE:** If you are upgrading Velero in Kubernetes 1.14.x or earlier, you will need to use `kubectl apply`'s `--validate=false` option when applying the CRD configuration above. See [issue 2077][10] and [issue 2311][11] for more context. 1. Update the container image used by the Velero deployment and, optionally, the restic daemon set: ```bash kubectl set image deployment/velero \ - velero=velero/velero:v1.6.2 \ + velero=velero/velero:v1.7.0 \ --namespace velero # optional, if using the restic daemon set kubectl set image daemonset/restic \ - restic=velero/velero:v1.6.2 \ + restic=velero/velero:v1.7.0 \ --namespace velero ``` @@ -66,11 +67,11 @@ If you're not yet running at least Velero v1.5, see the following: ```bash Client: - Version: v1.6.2 + Version: v1.7.0 Git commit: Server: - Version: v1.6.2 + Version: v1.7.0 ``` ## Notes @@ -85,7 +86,7 @@ After upgrading, if there is a previously created backup storage location with t [3]: https://velero.io/docs/v1.3.2/upgrade-to-1.3/ [4]: https://velero.io/docs/v1.4/upgrade-to-1.4/ [5]: https://velero.io/docs/v1.5/upgrade-to-1.5 -[6]: https://github.com/vmware-tanzu/velero/releases/tag/v1.4.2 -[7]: https://github.com/vmware-tanzu/velero/issues/2077 -[8]: https://github.com/vmware-tanzu/velero/issues/2311 -[9]: https://velero.io/docs/v1.6/locations +[6]: https://velero.io/docs/v1.6/upgrade-to-1.6 +[9]: https://velero.io/docs/v1.7/locations +[10]: https://github.com/vmware-tanzu/velero/issues/2077 +[11]: https://github.com/vmware-tanzu/velero/issues/2311 diff --git a/site/content/docs/v1.7/upgrade-to-1.6.md b/site/content/docs/v1.7/upgrade-to-1.7.md similarity index 81% rename from site/content/docs/v1.7/upgrade-to-1.6.md rename to site/content/docs/v1.7/upgrade-to-1.7.md index 0797184ec..2b10b122f 100644 --- a/site/content/docs/v1.7/upgrade-to-1.6.md +++ b/site/content/docs/v1.7/upgrade-to-1.7.md @@ -1,23 +1,24 @@ --- -title: "Upgrading to Velero 1.6" +title: "Upgrading to Velero 1.7" layout: docs --- ## Prerequisites -- Velero [v1.5.x][5] installed. +- Velero [v1.6.x][6] installed. -If you're not yet running at least Velero v1.5, see the following: +If you're not yet running at least Velero v1.6, see the following: - [Upgrading to v1.1][1] - [Upgrading to v1.2][2] - [Upgrading to v1.3][3] - [Upgrading to v1.4][4] - [Upgrading to v1.5][5] +- [Upgrading to v1.6][6] ## Instructions -1. Install the Velero v1.6 command-line interface (CLI) by following the [instructions here][0]. +1. Install the Velero v1.7 command-line interface (CLI) by following the [instructions here][0]. Verify that you've properly installed it by running: @@ -29,7 +30,7 @@ If you're not yet running at least Velero v1.5, see the following: ```bash Client: - Version: v1.6.2 + Version: v1.7.0 Git commit: ``` @@ -41,18 +42,18 @@ If you're not yet running at least Velero v1.5, see the following: **NOTE:** You could change the default CRD API version (v1beta1 _or_ v1) if Velero CLI can't discover the Kubernetes preferred CRD API version. The Kubernetes version < 1.16 preferred CRD API version is v1beta1; the Kubernetes version >= 1.16 preferred CRD API version is v1. - **NOTE:** If you are upgrading Velero in Kubernetes 1.14.x or earlier, you will need to use `kubectl apply`'s `--validate=false` option when applying the CRD configuration above. See [issue 2077][6] and [issue 2311][7] for more context. + **NOTE:** If you are upgrading Velero in Kubernetes 1.14.x or earlier, you will need to use `kubectl apply`'s `--validate=false` option when applying the CRD configuration above. See [issue 2077][10] and [issue 2311][11] for more context. 1. Update the container image used by the Velero deployment and, optionally, the restic daemon set: ```bash kubectl set image deployment/velero \ - velero=velero/velero:v1.6.2 \ + velero=velero/velero:v1.7.0 \ --namespace velero # optional, if using the restic daemon set kubectl set image daemonset/restic \ - restic=velero/velero:v1.6.2 \ + restic=velero/velero:v1.7.0 \ --namespace velero ``` @@ -66,11 +67,11 @@ If you're not yet running at least Velero v1.5, see the following: ```bash Client: - Version: v1.6.2 + Version: v1.7.0 Git commit: Server: - Version: v1.6.2 + Version: v1.7.0 ``` ## Notes @@ -85,7 +86,7 @@ After upgrading, if there is a previously created backup storage location with t [3]: https://velero.io/docs/v1.3.2/upgrade-to-1.3/ [4]: https://velero.io/docs/v1.4/upgrade-to-1.4/ [5]: https://velero.io/docs/v1.5/upgrade-to-1.5 -[6]: https://github.com/vmware-tanzu/velero/releases/tag/v1.4.2 -[7]: https://github.com/vmware-tanzu/velero/issues/2077 -[8]: https://github.com/vmware-tanzu/velero/issues/2311 -[9]: https://velero.io/docs/v1.6/locations +[6]: https://velero.io/docs/v1.6/upgrade-to-1.6 +[9]: https://velero.io/docs/v1.7/locations +[10]: https://github.com/vmware-tanzu/velero/issues/2077 +[11]: https://github.com/vmware-tanzu/velero/issues/2311 From 67604f0e0367343976ec8e8cb5d76462f4a0b68a Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Wed, 15 Sep 2021 00:00:38 +0800 Subject: [PATCH 014/136] Fix the link and content for upgrade instruction Signed-off-by: Daniel Jiang --- site/content/docs/v1.7/upgrade-to-1.7.md | 5 ++++- site/data/docs/main-toc.yml | 4 ++-- site/data/docs/v1-7-toc.yml | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/site/content/docs/v1.7/upgrade-to-1.7.md b/site/content/docs/v1.7/upgrade-to-1.7.md index 2b10b122f..4731bddaa 100644 --- a/site/content/docs/v1.7/upgrade-to-1.7.md +++ b/site/content/docs/v1.7/upgrade-to-1.7.md @@ -44,11 +44,14 @@ If you're not yet running at least Velero v1.6, see the following: **NOTE:** If you are upgrading Velero in Kubernetes 1.14.x or earlier, you will need to use `kubectl apply`'s `--validate=false` option when applying the CRD configuration above. See [issue 2077][10] and [issue 2311][11] for more context. -1. Update the container image used by the Velero deployment and, optionally, the restic daemon set: +1. Update the container image used by the Velero deployment, plugin and, optionally, the restic daemon set: ```bash + # set the container and image of the init container for plugin accordingly, + # if you are using other plugin kubectl set image deployment/velero \ velero=velero/velero:v1.7.0 \ + velero-velero-plugin-for-aws=velero/velero-plugin-for-aws:v1.3.0 \ --namespace velero # optional, if using the restic daemon set diff --git a/site/data/docs/main-toc.yml b/site/data/docs/main-toc.yml index faffa10f7..ec0585229 100644 --- a/site/data/docs/main-toc.yml +++ b/site/data/docs/main-toc.yml @@ -13,8 +13,8 @@ toc: url: /basic-install - page: Customize Installation url: /customize-installation - - page: Upgrade to 1.6 - url: /upgrade-to-1.6 + - page: Upgrade to 1.7 + url: /upgrade-to-1.7 - page: Supported providers url: /supported-providers - page: Evaluation install diff --git a/site/data/docs/v1-7-toc.yml b/site/data/docs/v1-7-toc.yml index faffa10f7..ec0585229 100644 --- a/site/data/docs/v1-7-toc.yml +++ b/site/data/docs/v1-7-toc.yml @@ -13,8 +13,8 @@ toc: url: /basic-install - page: Customize Installation url: /customize-installation - - page: Upgrade to 1.6 - url: /upgrade-to-1.6 + - page: Upgrade to 1.7 + url: /upgrade-to-1.7 - page: Supported providers url: /supported-providers - page: Evaluation install From 64229ed57cb3c4f5d98d0d2cf91c3dbb606565e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Tue, 14 Sep 2021 10:15:23 +0800 Subject: [PATCH 015/136] Use velero debug command to dump the logs when case failed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Wenkai Yin(尹文开) --- test/e2e/enable_api_group_versions_test.go | 4 +-- test/e2e/kibishii_utils.go | 6 ++--- test/e2e/multiple_namespaces_test.go | 4 +-- test/e2e/upgrade_test.go | 8 +++--- test/e2e/velero_utils.go | 30 ++++++++++++---------- 5 files changed, 28 insertions(+), 24 deletions(-) diff --git a/test/e2e/enable_api_group_versions_test.go b/test/e2e/enable_api_group_versions_test.go index 9a1eebcf2..a3891a10f 100644 --- a/test/e2e/enable_api_group_versions_test.go +++ b/test/e2e/enable_api_group_versions_test.go @@ -251,7 +251,7 @@ func runEnableAPIGroupVersionsTests(ctx context.Context, client testClient, reso err = veleroBackupNamespace(ctx, veleroCLI, veleroNamespace, backup, namespacesStr, "", false) if err != nil { - veleroBackupLogs(ctx, veleroCLI, veleroNamespace, backup) + runDebug(context.Background(), veleroCLI, veleroNamespace, backup, "") return errors.Wrapf(err, "back up %s namespaces on source cluster", namespacesStr) } @@ -290,7 +290,7 @@ func runEnableAPIGroupVersionsTests(ctx context.Context, client testClient, reso if tc.want != nil { if err := veleroRestore(ctx, veleroCLI, veleroNamespace, restore, backup); err != nil { - veleroRestoreLogs(ctx, veleroCLI, veleroNamespace, restore) + runDebug(context.Background(), veleroCLI, veleroNamespace, "", restore) return errors.Wrapf(err, "restore %s namespaces on target cluster", namespacesStr) } diff --git a/test/e2e/kibishii_utils.go b/test/e2e/kibishii_utils.go index e4e962c53..1784ada59 100644 --- a/test/e2e/kibishii_utils.go +++ b/test/e2e/kibishii_utils.go @@ -42,7 +42,7 @@ func runKibishiiTests(client testClient, providerName, veleroCLI, veleroNamespac return errors.Wrapf(err, "Failed to create namespace %s to install Kibishii workload", kibishiiNamespace) } defer func() { - if err := deleteNamespace(oneHourTimeout, client, kibishiiNamespace, true); err != nil { + if err := deleteNamespace(context.Background(), client, kibishiiNamespace, true); err != nil { fmt.Println(errors.Wrapf(err, "failed to delete the namespace %q", kibishiiNamespace)) } }() @@ -51,7 +51,7 @@ func runKibishiiTests(client testClient, providerName, veleroCLI, veleroNamespac } if err := veleroBackupNamespace(oneHourTimeout, veleroCLI, veleroNamespace, backupName, kibishiiNamespace, backupLocation, useVolumeSnapshots); err != nil { - veleroBackupLogs(oneHourTimeout, veleroCLI, veleroNamespace, backupName) + runDebug(context.Background(), veleroCLI, veleroNamespace, backupName, "") return errors.Wrapf(err, "Failed to backup kibishii namespace %s", kibishiiNamespace) } @@ -69,7 +69,7 @@ func runKibishiiTests(client testClient, providerName, veleroCLI, veleroNamespac } if err := veleroRestore(oneHourTimeout, veleroCLI, veleroNamespace, restoreName, backupName); err != nil { - veleroRestoreLogs(oneHourTimeout, veleroCLI, veleroNamespace, restoreName) + runDebug(context.Background(), veleroCLI, veleroNamespace, "", restoreName) return errors.Wrapf(err, "Restore %s failed from backup %s", restoreName, backupName) } diff --git a/test/e2e/multiple_namespaces_test.go b/test/e2e/multiple_namespaces_test.go index b9a73a9ba..9f87bcc6c 100644 --- a/test/e2e/multiple_namespaces_test.go +++ b/test/e2e/multiple_namespaces_test.go @@ -109,7 +109,7 @@ func RunMultipleNamespaceTest(ctx context.Context, client testClient, nsBaseName } } if err := veleroBackupExcludeNamespaces(ctx, veleroCLI, veleroNamespace, backupName, excludeNamespaces); err != nil { - veleroBackupLogs(ctx, veleroCLI, veleroNamespace, backupName) + runDebug(context.Background(), veleroCLI, veleroNamespace, backupName, "") return errors.Wrapf(err, "Failed to backup backup namespaces %s-*", nsBaseName) } @@ -120,7 +120,7 @@ func RunMultipleNamespaceTest(ctx context.Context, client testClient, nsBaseName err = veleroRestore(ctx, veleroCLI, veleroNamespace, restoreName, backupName) if err != nil { - veleroRestoreLogs(ctx, veleroCLI, veleroNamespace, restoreName) + runDebug(context.Background(), veleroCLI, veleroNamespace, "", restoreName) return errors.Wrap(err, "Restore failed") } diff --git a/test/e2e/upgrade_test.go b/test/e2e/upgrade_test.go index 5eb80d108..ae82a3a34 100644 --- a/test/e2e/upgrade_test.go +++ b/test/e2e/upgrade_test.go @@ -107,7 +107,7 @@ func runUpgradeTests(client testClient, upgradeToVeleroImage, upgradeToVeleroVer return errors.Wrapf(err, "Failed to create namespace %s to install Kibishii workload", upgradeNamespace) } defer func() { - if err := deleteNamespace(oneHourTimeout, client, upgradeNamespace, true); err != nil { + if err := deleteNamespace(context.Background(), client, upgradeNamespace, true); err != nil { fmt.Println(errors.Wrapf(err, "failed to delete the namespace %q", upgradeNamespace)) } }() @@ -116,7 +116,9 @@ func runUpgradeTests(client testClient, upgradeToVeleroImage, upgradeToVeleroVer } if err := veleroBackupNamespace(oneHourTimeout, upgradeFromVeleroCLI, veleroNamespace, backupName, upgradeNamespace, backupLocation, useVolumeSnapshots); err != nil { - veleroBackupLogs(oneHourTimeout, upgradeFromVeleroCLI, veleroNamespace, backupName) + // TODO currently, the upgrade case covers the upgrade path from 1.6 to main and the velero v1.6 doesn't support "debug" command + // TODO move to "runDebug" after we bump up to 1.7 in the upgrade case + veleroBackupLogs(context.Background(), upgradeFromVeleroCLI, veleroNamespace, backupName) return errors.Wrapf(err, "Failed to backup kibishii namespace %s", upgradeNamespace) } @@ -140,7 +142,7 @@ func runUpgradeTests(client testClient, upgradeToVeleroImage, upgradeToVeleroVer return errors.Wrapf(err, "Velero install version mismatch.") } if err := veleroRestore(oneHourTimeout, veleroCLI, veleroNamespace, restoreName, backupName); err != nil { - veleroRestoreLogs(oneHourTimeout, veleroCLI, veleroNamespace, restoreName) + runDebug(context.Background(), veleroCLI, veleroNamespace, "", restoreName) return errors.Wrapf(err, "Restore %s failed from backup %s", restoreName, backupName) } diff --git a/test/e2e/velero_utils.go b/test/e2e/velero_utils.go index fd16edcea..cd2b29d4c 100644 --- a/test/e2e/velero_utils.go +++ b/test/e2e/velero_utils.go @@ -269,22 +269,24 @@ func veleroBackupLogs(ctx context.Context, veleroCLI string, veleroNamespace str return nil } -func veleroRestoreLogs(ctx context.Context, veleroCLI string, veleroNamespace string, restoreName string) error { - describeCmd := exec.CommandContext(ctx, veleroCLI, "--namespace", veleroNamespace, "restore", "describe", restoreName) - describeCmd.Stdout = os.Stdout - describeCmd.Stderr = os.Stderr - err := describeCmd.Run() - if err != nil { - return err +func runDebug(ctx context.Context, veleroCLI, veleroNamespace, backup, restore string) { + output := fmt.Sprintf("debug-bundle-%d.tar.gz", time.Now().UnixNano()) + args := []string{"debug", "--namespace", veleroNamespace, "--output", output, "--verbose"} + if len(backup) > 0 { + args = append(args, "--backup", backup) } - logCmd := exec.CommandContext(ctx, veleroCLI, "--namespace", veleroNamespace, "restore", "logs", restoreName) - logCmd.Stdout = os.Stdout - logCmd.Stderr = os.Stderr - err = logCmd.Run() - if err != nil { - return err + if len(restore) > 0 { + args = append(args, "--restore", restore) + } + + cmd := exec.CommandContext(ctx, veleroCLI, args...) + cmd.Stdout = os.Stdout + cmd.Stdin = os.Stdin + fmt.Printf("debug cmd=%s\n", cmd.String()) + fmt.Printf("Generating the debug tarball at %s\n", output) + if err := cmd.Run(); err != nil { + fmt.Println(errors.Wrapf(err, "failed to run the debug command")) } - return nil } func veleroCreateBackupLocation(ctx context.Context, From f00ad306bbfdea32975c241a5c820ac0cb3101e8 Mon Sep 17 00:00:00 2001 From: danfengl Date: Sat, 18 Sep 2021 14:32:26 +0000 Subject: [PATCH 016/136] Recovery the workround for aws pending issue Signed-off-by: danfengl --- test/e2e/kibishii_utils.go | 8 ++++++++ test/e2e/upgrade_test.go | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/test/e2e/kibishii_utils.go b/test/e2e/kibishii_utils.go index 1784ada59..b8efc35c1 100644 --- a/test/e2e/kibishii_utils.go +++ b/test/e2e/kibishii_utils.go @@ -68,6 +68,14 @@ func runKibishiiTests(client testClient, providerName, veleroCLI, veleroNamespac return errors.Wrapf(err, "failed to delete namespace %s", kibishiiNamespace) } + // the snapshots of AWS may be still in pending status when do the restore, wait for a while + // to avoid this https://github.com/vmware-tanzu/velero/issues/1799 + // TODO remove this after https://github.com/vmware-tanzu/velero/issues/3533 is fixed + if providerName == "aws" && useVolumeSnapshots { + fmt.Println("Waiting 5 minutes to make sure the snapshots are ready...") + time.Sleep(5 * time.Minute) + } + if err := veleroRestore(oneHourTimeout, veleroCLI, veleroNamespace, restoreName, backupName); err != nil { runDebug(context.Background(), veleroCLI, veleroNamespace, "", restoreName) return errors.Wrapf(err, "Restore %s failed from backup %s", restoreName, backupName) diff --git a/test/e2e/upgrade_test.go b/test/e2e/upgrade_test.go index ae82a3a34..2a9ae9d22 100644 --- a/test/e2e/upgrade_test.go +++ b/test/e2e/upgrade_test.go @@ -134,6 +134,15 @@ func runUpgradeTests(client testClient, upgradeToVeleroImage, upgradeToVeleroVer if err := deleteNamespace(oneHourTimeout, client, upgradeNamespace, true); err != nil { return errors.Wrapf(err, "failed to delete namespace %s", upgradeNamespace) } + + // the snapshots of AWS may be still in pending status when do the restore, wait for a while + // to avoid this https://github.com/vmware-tanzu/velero/issues/1799 + // TODO remove this after https://github.com/vmware-tanzu/velero/issues/3533 is fixed + if providerName == "aws" && useVolumeSnapshots { + fmt.Println("Waiting 5 minutes to make sure the snapshots are ready...") + time.Sleep(5 * time.Minute) + } + if err := veleroInstall(context.Background(), veleroCLI, upgradeToVeleroImage, resticHelperImage, veleroNamespace, cloudProvider, objectStoreProvider, useVolumeSnapshots, cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, crdsVersion, "", registryCredentialFile); err != nil { return errors.Wrapf(err, "Failed to install velero from image %s", upgradeToVeleroImage) From 9b7f2da19250e8860f72cc04b6dc14db2810c425 Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Tue, 21 Sep 2021 20:16:31 +0800 Subject: [PATCH 017/136] run backup/restore describe in debug subcommand (#4161) The errors of restore/backup may be stored in object storage The well formatted output of describe is also helpful for debugging. This commit add the command to the crashd script so the output of "velero backup/restore describe xxx" can be collected Signed-off-by: Daniel Jiang --- pkg/cmd/cli/debug/cshd-scripts/velero.cshd | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/cmd/cli/debug/cshd-scripts/velero.cshd b/pkg/cmd/cli/debug/cshd-scripts/velero.cshd index 3985bb275..29e27f753 100644 --- a/pkg/cmd/cli/debug/cshd-scripts/velero.cshd +++ b/pkg/cmd/cli/debug/cshd-scripts/velero.cshd @@ -1,11 +1,15 @@ def capture_backup_logs(cmd, namespace): if args.backup: - log("Collecting log for backup: {}".format(args.backup)) + log("Collecting log and information for backup: {}".format(args.backup)) + backupDescCmd = "{} --namespace={} backup describe {} --details".format(cmd, namespace, args.backup) + capture_local(cmd=backupDescCmd, file_name="backup_describe_{}.txt".format(args.backup)) backupLogsCmd = "{} --namespace={} backup logs {}".format(cmd, namespace, args.backup) capture_local(cmd=backupLogsCmd, file_name="backup_{}.log".format(args.backup)) def capture_restore_logs(cmd, namespace): if args.restore: - log("Collecting log for restore: {}".format(args.restore)) + log("Collecting log and information for restore: {}".format(args.restore)) + restoreDescCmd = "{} --namespace={} restore describe {} --details".format(cmd, namespace, args.restore) + capture_local(cmd=restoreDescCmd, file_name="restore_describe_{}.txt".format(args.restore)) restoreLogsCmd = "{} --namespace={} restore logs {}".format(cmd, namespace, args.restore) capture_local(cmd=restoreLogsCmd, file_name="restore_{}.log".format(args.restore)) From 8827b4f1d94adfda80e79c3838c0a2e4451bac71 Mon Sep 17 00:00:00 2001 From: danfengliu Date: Wed, 22 Sep 2021 10:39:35 +0800 Subject: [PATCH 018/136] Fix plugins incompatible issue in upgrade test (#4141) In upgrade test, both original and to-be-upgrading velero installation should use the compatible plugins, but currently, plugin value is determined by provider. Signed-off-by: danfengl --- changelogs/unreleased/4141-danfengliu | 1 + test/e2e/Makefile | 4 + test/e2e/backup_test.go | 4 +- test/e2e/e2e_suite_test.go | 14 ++- test/e2e/enable_api_group_versions_test.go | 1 + test/e2e/install.go | 13 +- test/e2e/multiple_namespaces_test.go | 4 +- test/e2e/upgrade_test.go | 4 +- test/e2e/velero_utils.go | 136 ++++++++++++++++----- 9 files changed, 130 insertions(+), 51 deletions(-) create mode 100644 changelogs/unreleased/4141-danfengliu diff --git a/changelogs/unreleased/4141-danfengliu b/changelogs/unreleased/4141-danfengliu new file mode 100644 index 000000000..1cce90f13 --- /dev/null +++ b/changelogs/unreleased/4141-danfengliu @@ -0,0 +1 @@ +Fix plugins incompatible issue in upgrade test \ No newline at end of file diff --git a/test/e2e/Makefile b/test/e2e/Makefile index b6f6aaf78..8f7916292 100644 --- a/test/e2e/Makefile +++ b/test/e2e/Makefile @@ -49,6 +49,7 @@ GINKGO_FOCUS ?= VELERO_CLI ?=$$(pwd)/../../_output/bin/$(GOOS)/$(GOARCH)/velero VELERO_IMAGE ?= velero/velero:main VELERO_VERSION ?= $(VERSION) +PLUGINS ?= RESTIC_HELPER_IMAGE ?= #Released version only UPGRADE_FROM_VELERO_CLI ?= @@ -66,6 +67,7 @@ INSTALL_VELERO ?= true REGISTRY_CREDENTIAL_FILE ?= # Flags to create an additional BSL for multiple credentials tests +ADDITIONAL_BSL_PLUGINS ?= ADDITIONAL_OBJECT_STORE_PROVIDER ?= ADDITIONAL_CREDS_FILE ?= ADDITIONAL_BSL_BUCKET ?= @@ -86,6 +88,7 @@ run: ginkgo (echo "Cloud provider for target cloud/plug-in provider is required, please rerun with CLOUD_PROVIDER="; exit 1) @$(GINKGO) -v -focus="$(GINKGO_FOCUS)" . -- -velerocli=$(VELERO_CLI) \ -velero-image=$(VELERO_IMAGE) \ + -plugins=$(PLUGINS) \ -velero-version=$(VELERO_VERSION) \ -restic-helper-image=$(RESTIC_HELPER_IMAGE) \ -upgrade-from-velero-cli=$(UPGRADE_FROM_VELERO_CLI) \ @@ -99,6 +102,7 @@ run: ginkgo -vsl-config=$(VSL_CONFIG) \ -cloud-provider=$(CLOUD_PROVIDER) \ -object-store-provider="$(OBJECT_STORE_PROVIDER)" \ + -additional-bsl-plugins=$(ADDITIONAL_BSL_PLUGINS) \ -additional-bsl-object-store-provider="$(ADDITIONAL_OBJECT_STORE_PROVIDER)" \ -additional-bsl-credentials-file=$(ADDITIONAL_CREDS_FILE) \ -additional-bsl-bucket=$(ADDITIONAL_BSL_BUCKET) \ diff --git a/test/e2e/backup_test.go b/test/e2e/backup_test.go index 6e53abc17..9d5f92baf 100644 --- a/test/e2e/backup_test.go +++ b/test/e2e/backup_test.go @@ -59,7 +59,7 @@ func backup_restore_test(useVolumeSnapshots bool) { uuidgen, err = uuid.NewRandom() Expect(err).To(Succeed()) if installVelero { - Expect(veleroInstall(context.Background(), veleroCLI, veleroImage, resticHelperImage, veleroNamespace, cloudProvider, objectStoreProvider, useVolumeSnapshots, + Expect(veleroInstall(context.Background(), veleroCLI, veleroImage, resticHelperImage, plugins, veleroNamespace, cloudProvider, objectStoreProvider, useVolumeSnapshots, cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, crdsVersion, "", registryCredentialFile)).To(Succeed()) } }) @@ -94,7 +94,7 @@ func backup_restore_test(useVolumeSnapshots bool) { Skip("no additional BSL credentials given, not running multiple BackupStorageLocation with unique credentials tests") } - Expect(veleroAddPluginsForProvider(context.TODO(), veleroCLI, veleroNamespace, additionalBSLProvider)).To(Succeed()) + Expect(veleroAddPluginsForProvider(context.TODO(), veleroCLI, veleroNamespace, additionalBSLProvider, addBSLPlugins)).To(Succeed()) // Create Secret for additional BSL secretName := fmt.Sprintf("bsl-credentials-%s", uuidgen) diff --git a/test/e2e/e2e_suite_test.go b/test/e2e/e2e_suite_test.go index 81d41f790..37e111703 100644 --- a/test/e2e/e2e_suite_test.go +++ b/test/e2e/e2e_suite_test.go @@ -28,26 +28,28 @@ import ( var ( veleroCLI, veleroImage, veleroVersion, cloudCredentialsFile, bslConfig, bslBucket, bslPrefix, vslConfig, cloudProvider, objectStoreProvider, veleroNamespace, crdsVersion string additionalBSLProvider, additionalBSLBucket, additionalBSLPrefix, additionalBSLConfig, additionalBSLCredentials, registryCredentialFile, resticHelperImage string - upgradeFromVeleroVersion, upgradeFromVeleroCLI string + upgradeFromVeleroVersion, upgradeFromVeleroCLI, plugins, addBSLPlugins string installVelero bool ) func init() { - flag.StringVar(&cloudProvider, "cloud-provider", "", "Cloud that Velero will be installed into. Required.") - flag.StringVar(&objectStoreProvider, "object-store-provider", "", "Provider of object store plugin. Required if cloud-provider is kind, otherwise ignored.") + flag.StringVar(&cloudProvider, "cloud-provider", "", "cloud that Velero will be installed into. Required.") + flag.StringVar(&objectStoreProvider, "object-store-provider", "", "provider of object store plugin. Required if cloud-provider is kind, otherwise ignored.") flag.StringVar(&bslBucket, "bucket", "", "name of the object storage bucket where backups from e2e tests should be stored. Required.") flag.StringVar(&cloudCredentialsFile, "credentials-file", "", "file containing credentials for backup and volume provider. Required.") flag.StringVar(&veleroCLI, "velerocli", "velero", "path to the velero application to use.") flag.StringVar(&veleroImage, "velero-image", "velero/velero:main", "image for the velero server to be tested.") - flag.StringVar(&veleroVersion, "velero-version", "main", "image for the velero server to be tested.") + flag.StringVar(&plugins, "plugins", "", "provider plugins to be tested.") + flag.StringVar(&addBSLPlugins, "additional-bsl-plugins", "", "additional plugins to be tested.") + flag.StringVar(&veleroVersion, "velero-version", "main", "image version for the velero server to be tested with.") flag.StringVar(&resticHelperImage, "restic-helper-image", "", "image for the velero restic restore helper to be tested.") flag.StringVar(&upgradeFromVeleroCLI, "upgrade-from-velero-cli", "", "path to the pre-upgrade velero application to use.") flag.StringVar(&upgradeFromVeleroVersion, "upgrade-from-velero-version", "v1.6.3", "image for the pre-upgrade velero server to be tested.") flag.StringVar(&bslConfig, "bsl-config", "", "configuration to use for the backup storage location. Format is key1=value1,key2=value2") flag.StringVar(&bslPrefix, "prefix", "", "prefix under which all Velero data should be stored within the bucket. Optional.") flag.StringVar(&vslConfig, "vsl-config", "", "configuration to use for the volume snapshot location. Format is key1=value1,key2=value2") - flag.StringVar(&veleroNamespace, "velero-namespace", "velero", "Namespace to install Velero into") - flag.BoolVar(&installVelero, "install-velero", true, "Install/uninstall velero during the test. Optional.") + flag.StringVar(&veleroNamespace, "velero-namespace", "velero", "namespace to install Velero into") + flag.BoolVar(&installVelero, "install-velero", true, "install/uninstall velero during the test. Optional.") flag.StringVar(®istryCredentialFile, "registry-credential-file", "", "file containing credential for the image registry, follows the same format rules as the ~/.docker/config.json file. Optional.") // Flags to create an additional BSL for multiple credentials test diff --git a/test/e2e/enable_api_group_versions_test.go b/test/e2e/enable_api_group_versions_test.go index a3891a10f..68014f184 100644 --- a/test/e2e/enable_api_group_versions_test.go +++ b/test/e2e/enable_api_group_versions_test.go @@ -61,6 +61,7 @@ var _ = Describe("[APIGroup] Velero tests with various CRD API group versions", veleroCLI, veleroImage, resticHelperImage, + plugins, veleroNamespace, cloudProvider, objectStoreProvider, diff --git a/test/e2e/install.go b/test/e2e/install.go index 7dc7a63a8..80c344c44 100644 --- a/test/e2e/install.go +++ b/test/e2e/install.go @@ -45,7 +45,7 @@ type installOptions struct { } // TODO too many parameters for this function, better to make it a structure, we can introduces a structure `config` for the E2E to hold all configuration items -func veleroInstall(ctx context.Context, cli, veleroImage string, resticHelperImage string, veleroNamespace string, cloudProvider string, objectStoreProvider string, useVolumeSnapshots bool, +func veleroInstall(ctx context.Context, cli, veleroImage, resticHelperImage, providerPlugins, veleroNamespace, cloudProvider, objectStoreProvider string, useVolumeSnapshots bool, cloudCredentialsFile string, bslBucket string, bslPrefix string, bslConfig string, vslConfig string, crdsVersion string, features string, registryCredentialFile string) error { @@ -60,9 +60,10 @@ func veleroInstall(ctx context.Context, cli, veleroImage string, resticHelperIma } } - // Fetch the plugins for the provider before checking for the object store provider below. - providerPlugins := getProviderPlugins(objectStoreProvider) - + providerPluginsTmp, err := getProviderPlugins(ctx, cli, objectStoreProvider, providerPlugins) + if err != nil { + return errors.WithMessage(err, "Failed to get provider plugins") + } // TODO - handle this better if cloudProvider == "vsphere" { // We overrider the objectStoreProvider here for vSphere because we want to use the aws plugin for the @@ -70,13 +71,13 @@ func veleroInstall(ctx context.Context, cli, veleroImage string, resticHelperIma // Snapshot location specified objectStoreProvider = "aws" } - err := ensureClusterExists(ctx) + err = ensureClusterExists(ctx) if err != nil { return errors.WithMessage(err, "Failed to ensure Kubernetes cluster exists") } veleroInstallOptions, err := getProviderVeleroInstallOptions(objectStoreProvider, cloudCredentialsFile, bslBucket, - bslPrefix, bslConfig, vslConfig, providerPlugins, features) + bslPrefix, bslConfig, vslConfig, providerPluginsTmp, features) if err != nil { return errors.WithMessagef(err, "Failed to get Velero InstallOptions for plugin provider %s", objectStoreProvider) } diff --git a/test/e2e/multiple_namespaces_test.go b/test/e2e/multiple_namespaces_test.go index 9f87bcc6c..bb6b71466 100644 --- a/test/e2e/multiple_namespaces_test.go +++ b/test/e2e/multiple_namespaces_test.go @@ -27,7 +27,7 @@ var _ = Describe("[Basic] Backup/restore of 2 namespaces", func() { uuidgen, err = uuid.NewRandom() Expect(err).To(Succeed()) if installVelero { - Expect(veleroInstall(context.Background(), veleroCLI, veleroImage, resticHelperImage, veleroNamespace, cloudProvider, objectStoreProvider, false, + Expect(veleroInstall(context.Background(), veleroCLI, veleroImage, resticHelperImage, plugins, veleroNamespace, cloudProvider, objectStoreProvider, false, cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, crdsVersion, "", registryCredentialFile)).To(Succeed()) } }) @@ -62,7 +62,7 @@ var _ = Describe("[Scale] Backup/restore of 2500 namespaces", func() { uuidgen, err = uuid.NewRandom() Expect(err).To(Succeed()) if installVelero { - Expect(veleroInstall(context.Background(), veleroCLI, veleroImage, resticHelperImage, veleroNamespace, cloudProvider, objectStoreProvider, false, + Expect(veleroInstall(context.Background(), veleroCLI, veleroImage, resticHelperImage, plugins, veleroNamespace, cloudProvider, objectStoreProvider, false, cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, crdsVersion, "", registryCredentialFile)).To(Succeed()) } }) diff --git a/test/e2e/upgrade_test.go b/test/e2e/upgrade_test.go index 2a9ae9d22..c647e7b31 100644 --- a/test/e2e/upgrade_test.go +++ b/test/e2e/upgrade_test.go @@ -74,7 +74,7 @@ func backup_upgrade_restore_test(useVolumeSnapshots bool) { if installVelero { //Set veleroImage and resticHelperImage to blank //veleroImage and resticHelperImage should be the default value in originalCli - Expect(veleroInstall(context.Background(), upgradeFromVeleroCLI, "", "", veleroNamespace, cloudProvider, objectStoreProvider, useVolumeSnapshots, + Expect(veleroInstall(context.Background(), upgradeFromVeleroCLI, "", "", "", veleroNamespace, cloudProvider, objectStoreProvider, useVolumeSnapshots, cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, "", "", registryCredentialFile)).To(Succeed()) Expect(checkVeleroVersion(context.Background(), upgradeFromVeleroCLI, upgradeFromVeleroVersion)).To(Succeed()) } else { @@ -143,7 +143,7 @@ func runUpgradeTests(client testClient, upgradeToVeleroImage, upgradeToVeleroVer time.Sleep(5 * time.Minute) } - if err := veleroInstall(context.Background(), veleroCLI, upgradeToVeleroImage, resticHelperImage, veleroNamespace, cloudProvider, objectStoreProvider, useVolumeSnapshots, + if err := veleroInstall(context.Background(), veleroCLI, upgradeToVeleroImage, resticHelperImage, plugins, veleroNamespace, cloudProvider, objectStoreProvider, useVolumeSnapshots, cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, crdsVersion, "", registryCredentialFile); err != nil { return errors.Wrapf(err, "Failed to install velero from image %s", upgradeToVeleroImage) } diff --git a/test/e2e/velero_utils.go b/test/e2e/velero_utils.go index cd2b29d4c..760eb4eb1 100644 --- a/test/e2e/velero_utils.go +++ b/test/e2e/velero_utils.go @@ -41,20 +41,56 @@ import ( veleroexec "github.com/vmware-tanzu/velero/pkg/util/exec" ) -func getProviderPlugins(providerName string) []string { - // TODO: make plugin images configurable - switch providerName { - case "aws": - return []string{"velero/velero-plugin-for-aws:v1.2.1"} - case "azure": - return []string{"velero/velero-plugin-for-microsoft-azure:v1.2.0"} - case "vsphere": - return []string{"velero/velero-plugin-for-aws:v1.2.1", "vsphereveleroplugin/velero-plugin-for-vsphere:v1.1.1"} - case "gcp": - return []string{"velero/velero-plugin-for-gcp:v1.2.1"} - default: - panic(fmt.Errorf("unknown provider name: %s", providerName)) +var pluginsMatrix = map[string]map[string][]string{ + "v1.4": { + "aws": {"velero/velero-plugin-for-aws:v1.1.0"}, + "azure": {"velero/velero-plugin-for-microsoft-azure:v1.1.2"}, + "vsphere": {"velero/velero-plugin-for-aws:v1.1.0", "vsphereveleroplugin/velero-plugin-for-vsphere:v1.0.2"}, + "gcp": {"velero/velero-plugin-for-gcp:v1.1.0"}, + }, + "v1.5": { + "aws": {"velero/velero-plugin-for-aws:v1.1.0"}, + "azure": {"velero/velero-plugin-for-microsoft-azure:v1.1.2"}, + "vsphere": {"velero/velero-plugin-for-aws:v1.1.0", "vsphereveleroplugin/velero-plugin-for-vsphere:v1.1.1"}, + "gcp": {"velero/velero-plugin-for-gcp:v1.1.0"}, + }, + "v1.6": { + "aws": {"velero/velero-plugin-for-aws:v1.2.1"}, + "azure": {"velero/velero-plugin-for-microsoft-azure:v1.2.1"}, + "vsphere": {"velero/velero-plugin-for-aws:v1.2.1", "vsphereveleroplugin/velero-plugin-for-vsphere:v1.1.1"}, + "gcp": {"velero/velero-plugin-for-gcp:v1.2.1"}, + }, + "v1.7": { + "aws": {"velero/velero-plugin-for-aws:v1.3.0"}, + "azure": {"velero/velero-plugin-for-microsoft-azure:v1.3.0"}, + "vsphere": {"velero/velero-plugin-for-aws:v1.3.0", "vsphereveleroplugin/velero-plugin-for-vsphere:v1.1.1"}, + "gcp": {"velero/velero-plugin-for-gcp:v1.3.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.1.1"}, + "gcp": {"velero/velero-plugin-for-gcp:main"}, + }, +} + +func getProviderPluginsByVersion(version, providerName string) ([]string, error) { + var cloudMap map[string][]string + arr := strings.Split(version, ".") + if len(arr) >= 3 { + cloudMap = pluginsMatrix[arr[0]+"."+arr[1]] } + if len(cloudMap) == 0 { + cloudMap = pluginsMatrix["main"] + if len(cloudMap) == 0 { + return nil, errors.Errorf("fail to get plugins by version: main") + } + } + plugins, ok := cloudMap[providerName] + if !ok { + return nil, errors.Errorf("fail to get plugins by version: %s and provider %s", version, providerName) + } + return plugins, nil } // getProviderVeleroInstallOptions returns Velero InstallOptions for the provider. @@ -326,10 +362,32 @@ func veleroCreateBackupLocation(ctx context.Context, return bslCreateCmd.Run() } +func getProviderPlugins(ctx context.Context, veleroCLI, objectStoreProvider, providerPlugins string) ([]string, error) { + // Fetch the plugins for the provider before checking for the object store provider below. + var plugins []string + if len(providerPlugins) > 0 { + plugins = strings.Split(providerPlugins, ",") + } else { + version, err := getVeleroVersion(ctx, veleroCLI, true) + if err != nil { + return nil, errors.WithMessage(err, "failed to get velero version") + } + plugins, err = getProviderPluginsByVersion(version, objectStoreProvider) + if err != nil { + return nil, errors.WithMessagef(err, "Fail to get plugin by provider %s and version %s", objectStoreProvider, version) + } + } + return plugins, nil +} + // veleroAddPluginsForProvider determines which plugins need to be installed for a provider and // installs them in the current Velero installation, skipping over those that are already installed. -func veleroAddPluginsForProvider(ctx context.Context, veleroCLI string, veleroNamespace string, provider string) error { - for _, plugin := range getProviderPlugins(provider) { +func veleroAddPluginsForProvider(ctx context.Context, veleroCLI string, veleroNamespace string, provider string, addPlugins string) error { + plugins, err := getProviderPlugins(ctx, veleroCLI, provider, addPlugins) + if err != nil { + return errors.WithMessage(err, "Failed to get plugins") + } + for _, plugin := range plugins { stdoutBuf := new(bytes.Buffer) stderrBuf := new(bytes.Buffer) @@ -400,8 +458,12 @@ func waitForVSphereUploadCompletion(ctx context.Context, timeout time.Duration, return err } -func getVeleroVersion(ctx context.Context, veleroCLI string) (string, error) { - cmd := exec.CommandContext(ctx, veleroCLI, "version", "--timeout", "60s") +func getVeleroVersion(ctx context.Context, veleroCLI string, clientOnly bool) (string, error) { + args := []string{"version", "--timeout", "60s"} + if clientOnly { + args = append(args, "--client-only") + } + cmd := exec.CommandContext(ctx, veleroCLI, args...) fmt.Println("Get Version Command:" + cmd.String()) stdout, stderr, err := veleroexec.RunCommand(cmd) if err != nil { @@ -410,25 +472,33 @@ func getVeleroVersion(ctx context.Context, veleroCLI string) (string, error) { output := strings.Replace(stdout, "\n", " ", -1) fmt.Println("Version:" + output) - regCompiler := regexp.MustCompile(`(?i)client\s*:\s*version\s*:\s*(\S+).+server\s*:\s*version\s*:\s*(\S+)`) - versionMatches := regCompiler.FindStringSubmatch(output) - if len(versionMatches) < 3 { - return "", errors.New("Velero version command returned null version") + resultCount := 3 + regexpRule := `(?i)client\s*:\s*version\s*:\s*(\S+).+server\s*:\s*version\s*:\s*(\S+)` + if clientOnly { + resultCount = 2 + regexpRule = `(?i)client\s*:\s*version\s*:\s*(\S+)` } - if versionMatches[1] != versionMatches[2] { - return "", errors.New("Velero server and client version are not matched") + regCompiler := regexp.MustCompile(regexpRule) + versionMatches := regCompiler.FindStringSubmatch(output) + if len(versionMatches) != resultCount { + return "", errors.New("failed to parse velero version from output") + } + if !clientOnly { + if versionMatches[1] != versionMatches[2] { + return "", errors.New("velero server and client version are not matched") + } } return versionMatches[1], nil } func checkVeleroVersion(ctx context.Context, veleroCLI string, expectedVer string) error { tag := expectedVer - tagInstalled, err := getVeleroVersion(ctx, veleroCLI) + tagInstalled, err := getVeleroVersion(ctx, veleroCLI, false) if err != nil { - return errors.WithMessagef(err, "Failed to get Velero version") + return errors.WithMessagef(err, "failed to get Velero version") } if strings.Trim(tag, " ") != strings.Trim(tagInstalled, " ") { - return errors.New(fmt.Sprintf("Velero version %s is not as expected %s", tagInstalled, tag)) + return errors.New(fmt.Sprintf("velero version %s is not as expected %s", tagInstalled, tag)) } fmt.Printf("Velero version %s is as expected %s\n", tagInstalled, tag) return nil @@ -440,18 +510,18 @@ func installVeleroCLI(version string) (string, error) { tarball := name + postfix tempFile, err := getVeleroCliTarball("https://github.com/vmware-tanzu/velero/releases/download/" + version + "/" + tarball) if err != nil { - return "", errors.WithMessagef(err, "Failed to get Velero CLI tarball") + return "", errors.WithMessagef(err, "failed to get Velero CLI tarball") } tempVeleroCliDir, err := ioutil.TempDir("", "velero-test") if err != nil { - return "", errors.WithMessagef(err, "Failed to create temp dir for tarball extraction") + return "", errors.WithMessagef(err, "failed to create temp dir for tarball extraction") } cmd := exec.Command("tar", "-xvf", tempFile.Name(), "-C", tempVeleroCliDir) defer os.Remove(tempFile.Name()) if _, err := cmd.Output(); err != nil { - return "", errors.WithMessagef(err, "Failed to extract file from velero CLI tarball") + return "", errors.WithMessagef(err, "failed to extract file from velero CLI tarball") } return tempVeleroCliDir + "/" + name + "/velero", nil } @@ -462,21 +532,21 @@ func getVeleroCliTarball(cliTarballUrl string) (*os.File, error) { resp, err := http.Get(cliTarballUrl) if err != nil { - return nil, errors.WithMessagef(err, "Failed to access Velero CLI tarball") + return nil, errors.WithMessagef(err, "failed to access Velero CLI tarball") } defer resp.Body.Close() tarballBuf, err := ioutil.ReadAll(resp.Body) if err != nil { - return nil, errors.WithMessagef(err, "Failed to read buffer for tarball %s.", tarball) + return nil, errors.WithMessagef(err, "failed to read buffer for tarball %s.", tarball) } tmpfile, err := ioutil.TempFile("", tarball) if err != nil { - return nil, errors.WithMessagef(err, "Failed to create temp file for tarball %s locally.", tarball) + return nil, errors.WithMessagef(err, "failed to create temp file for tarball %s locally.", tarball) } if _, err := tmpfile.Write(tarballBuf); err != nil { - return nil, errors.WithMessagef(err, "Failed to write tarball file %s locally.", tarball) + return nil, errors.WithMessagef(err, "failed to write tarball file %s locally.", tarball) } return tmpfile, nil From d08c4bae4d078b325c50bd30278923f3c08bd327 Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Wed, 22 Sep 2021 20:45:15 +0800 Subject: [PATCH 019/136] Refine tag-release.sh This commit makes several changes to `tag-release.sh` according to the change in release process: 1. It will support a "ON_RELEASE_BRANCH" param passed via env variable. When it's set to "TRUE". The release will be created on the commit of branch like `release-xxx`. This enables us to create release branch before GA and tag RC release. 2. It removes the code to push a new branch to upstream. This is because we decided to create branch manually. For patch releases, we will not push the change to release branch, instead, we will make sure the release branch has all commits cherrypicked BEFORE we run this script to tag the release. After the change the script will focus on only tag the release, not making other code change to release branches. Signed-off-by: Daniel Jiang --- changelogs/unreleased/4185-reasonerjt | 1 + hack/release-tools/tag-release.sh | 63 +++++++++++---------------- 2 files changed, 26 insertions(+), 38 deletions(-) create mode 100644 changelogs/unreleased/4185-reasonerjt diff --git a/changelogs/unreleased/4185-reasonerjt b/changelogs/unreleased/4185-reasonerjt new file mode 100644 index 000000000..bc6926806 --- /dev/null +++ b/changelogs/unreleased/4185-reasonerjt @@ -0,0 +1 @@ +Refine tag-release.sh to align with change in release process \ No newline at end of file diff --git a/hack/release-tools/tag-release.sh b/hack/release-tools/tag-release.sh index 5301dd1de..964f558e8 100755 --- a/hack/release-tools/tag-release.sh +++ b/hack/release-tools/tag-release.sh @@ -89,18 +89,31 @@ fi # Since we're past the validation of the VELERO_VERSION, parse the version's individual components. eval $(go run $DIR/chk_version.go) - printf "To clarify, you've provided a version string of $VELERO_VERSION.\n" printf "Based on this, the following assumptions have been made: \n" -[[ "$VELERO_PATCH" != 0 ]] && printf "*\t This is a patch release.\n" +# $VELERO_PATCH gets populated by the chk_version.go scrip that parses and verifies the given version format +# If we've got a patch release, we assume the tag is on release branch. +if [[ "$VELERO_PATCH" != 0 ]]; then + printf "*\t This is a patch release.\n" + ON_RELEASE_BRANCH=TRUE +fi -# $VELERO_PRERELEASE gets populated by the chk_version.go script that parses and verifies the given version format +# $VELERO_PRERELEASE gets populated by the chk_version.go script that parses and verifies the given version format +# If we've got a GA release, we assume the tag is on release branch. # -n is "string is non-empty" [[ -n $VELERO_PRERELEASE ]] && printf "*\t This is a pre-release.\n" # -z is "string is empty" -[[ -z $VELERO_PRERELEASE ]] && printf "*\t This is a GA release.\n" +if [[ -z $VELERO_PRERELEASE ]]; then + printf "*\t This is a GA release.\n" + ON_RELEASE_BRANCH=TRUE +fi + +if [[ "$ON_RELEASE_BRANCH" == "TRUE" ]]; then + release_branch_name=release-$VELERO_MAJOR.$VELERO_MINOR + printf "*\t The commit to tag is on branch: %s. Please make sure this branch has been created.\n" $release_branch_name +fi if [[ $publish == "TRUE" ]]; then echo "If this is all correct, press enter/return to proceed to TAG THE RELEASE and UPLOAD THE TAG TO GITHUB." @@ -117,55 +130,29 @@ echo "Alright, let's go." echo "Pulling down all git tags and branches before doing any work." git fetch "$remote" --tags -# $VELERO_PATCH gets populated by the chk_version.go scrip that parses and verifies the given version format -# If we've got a patch release, we'll need to create a release branch for it. -if [[ "$VELERO_PATCH" > 0 ]]; then - release_branch_name=release-$VELERO_MAJOR.$VELERO_MINOR +if [[ -n $release_branch_name ]]; then + # Tag on release branch remote_release_branch_name="$remote/$release_branch_name" # Determine whether the local and remote release branches already exist local_branch=$(git branch | grep "$release_branch_name") remote_branch=$(git branch -r | grep "$remote_release_branch_name") - - if [[ -n $remote_branch ]]; then - if [[ -z $local_branch ]]; then + if [[ -z $remote_branch ]]; then + echo "The branch $remote_release_branch_name must be created before you tag the release." + exit 1 + fi + if [[ -z $local_branch ]]; then # Remote branch exists, but does not exist locally. Checkout and track the remote branch. git checkout --track "$remote_release_branch_name" - else + else # Checkout the local release branch and ensure it is up to date with the remote git checkout "$release_branch_name" git pull --set-upstream "$remote" "$release_branch_name" - fi - else - if [[ -z $local_branch ]]; then - # Neither the remote or local release branch exists, create it - git checkout -b $release_branch_name - else - # The local branch exists so check it out. - git checkout $release_branch_name - fi fi - - echo "Now you'll need to cherry-pick any relevant git commits into this release branch." - echo "Either pause this script with ctrl-z, or open a new terminal window and do the cherry-picking." - if [[ $publish == "TRUE" ]]; then - read -p "Press enter when you're done cherry-picking. THIS WILL MAKE A TAG PUSH THE BRANCH TO $remote" - else - read -p "Press enter when you're done cherry-picking." - fi - - # TODO can/should we add a way to review the cherry-picked commits before the push? - - if [[ $publish == "TRUE" ]]; then - echo "Pushing $release_branch_name to \"$remote\" remote" - git push --set-upstream "$remote" $release_branch_name - fi - tag_and_push else echo "Checking out $remote/main." git checkout "$remote"/main - tag_and_push fi From eb332e6a77ba7ae27c3be5a148fc9e7318cf199e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Wed, 22 Sep 2021 18:06:27 +0800 Subject: [PATCH 020/136] Specify the "--snapshot-volumes=false" option explicitly when running backup with Restic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If the "--snapshot-volumes=false" isn't specified explicitly, the vSphere plugin will always take snapshots for the volumes even though the "--default-volumes-to-restic" is specified This can be removed if the logic of vSphere plugin changes Signed-off-by: Wenkai Yin(尹文开) --- test/e2e/velero_utils.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/e2e/velero_utils.go b/test/e2e/velero_utils.go index 760eb4eb1..d60d2bb65 100644 --- a/test/e2e/velero_utils.go +++ b/test/e2e/velero_utils.go @@ -236,6 +236,11 @@ func veleroBackupNamespace(ctx context.Context, veleroCLI string, veleroNamespac args = append(args, "--snapshot-volumes") } else { args = append(args, "--default-volumes-to-restic") + // To workaround https://github.com/vmware-tanzu/velero-plugin-for-vsphere/issues/347 for vsphere plugin v1.1.1 + // if the "--snapshot-volumes=false" isn't specified explicitly, the vSphere plugin will always take snapshots + // for the volumes even though the "--default-volumes-to-restic" is specified + // TODO This can be removed if the logic of vSphere plugin bump up to 1.3 + args = append(args, "--snapshot-volumes=false") } if backupLocation != "" { args = append(args, "--storage-location", backupLocation) From 4c8318cb7c33ee9fce344e37f0b7b9ea3ea5156d Mon Sep 17 00:00:00 2001 From: Rafael Brito Date: Tue, 28 Sep 2021 20:41:27 -0500 Subject: [PATCH 021/136] =?UTF-8?q?#4040=20-=20documentation=20-=20adding?= =?UTF-8?q?=20more=20troubleshooting=20information=20durin=E2=80=A6=20(#40?= =?UTF-8?q?41)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * #4040 - documentation - adding more troubleshooting information during Restic restore Signed-off-by: Rafael Brito * #4040 - documentation - adding more troubleshooting information during Restic restore and minor changes Signed-off-by: Rafael Brito * #4040 - documentation - tweaks on restic page Signed-off-by: Rafael Brito --- site/content/docs/main/restic.md | 83 ++++++++++++++++--------------- site/content/docs/v1.6/restic.md | 84 ++++++++++++++++---------------- 2 files changed, 83 insertions(+), 84 deletions(-) diff --git a/site/content/docs/main/restic.md b/site/content/docs/main/restic.md index 8873c1ff5..a15e08bf2 100644 --- a/site/content/docs/main/restic.md +++ b/site/content/docs/main/restic.md @@ -10,41 +10,41 @@ the supported cloud providers’ block storage offerings (Amazon EBS Volumes, Az It also provides a plugin model that enables anyone to implement additional object and block storage backends, outside the main Velero repository. -The restic integration was added to give you an out-of-the-box solution for backing up and restoring almost any type of Kubernetes volume. This integration is an addition to Velero's capabilities, not a replacement for existing functionality. If you're running on AWS, and taking EBS snapshots as part of your regular Velero backups, there's no need to switch to using restic. However, if you need a volume snapshot plugin for your storage platform, or if you're using EFS, AzureFile, NFS, emptyDir, -local, or any other volume type that doesn't have a native snapshot concept, restic might be for you. +Velero's Restic integration was added to give you an out-of-the-box solution for backing up and restoring almost any type of Kubernetes volume. This integration is an addition to Velero's capabilities, not a replacement for existing functionality. If you're running on AWS, and taking EBS snapshots as part of your regular Velero backups, there's no need to switch to using Restic. However, if you need a volume snapshot plugin for your storage platform, or if you're using EFS, AzureFile, NFS, emptyDir, +local, or any other volume type that doesn't have a native snapshot concept, Restic might be for you. Restic is not tied to a specific storage platform, which means that this integration also paves the way for future work to enable cross-volume-type data migrations. **NOTE:** hostPath volumes are not supported, but the [local volume type][4] is supported. -## Setup restic +## Setup Restic ### Prerequisites -- Understand how Velero performs [backups with the restic integration](#how-backup-and-restore-work-with-restic). +- Understand how Velero performs [backups with the Restic integration](#how-backup-and-restore-work-with-restic). - [Download][3] the latest Velero release. -- Kubernetes v1.12.0 and later. Velero's restic integration requires the Kubernetes [MountPropagation feature][6], which is enabled by default in Kubernetes v1.12.0 and later. +- Kubernetes v1.12.0 and later. Velero's Restic integration requires the Kubernetes [MountPropagation feature][6], which is enabled by default in Kubernetes v1.12.0 and later. -### Install restic +### Install Restic -To install restic, use the `--use-restic` flag in the `velero install` command. See the [install overview][2] for more details on other flags for the install command. +To install Restic, use the `--use-restic` flag in the `velero install` command. See the [install overview][2] for more details on other flags for the install command. ``` velero install --use-restic ``` -When using restic on a storage provider that doesn't have Velero support for snapshots, the `--use-volume-snapshots=false` flag prevents an unused `VolumeSnapshotLocation` from being created on installation. +When using Restic on a storage provider that doesn't have Velero support for snapshots, the `--use-volume-snapshots=false` flag prevents an unused `VolumeSnapshotLocation` from being created on installation. -### Configure restic DaemonSet spec +### Configure Restic DaemonSet spec -After installation, some PaaS/CaaS platforms based on Kubernetes also require modifications the restic DaemonSet spec. The steps in this section are only needed if you are installing on RancherOS, OpenShift, VMware Tanzu Kubernetes Grid Integrated Edition (formerly VMware Enterprise PKS), or Microsoft Azure. +After installation, some PaaS/CaaS platforms based on Kubernetes also require modifications the Restic DaemonSet spec. The steps in this section are only needed if you are installing on RancherOS, OpenShift, VMware Tanzu Kubernetes Grid Integrated Edition (formerly VMware Enterprise PKS), or Microsoft Azure. **RancherOS** -Update the host path for volumes in the restic DaemonSet in the Velero namespace from `/var/lib/kubelet/pods` to `/opt/rke/var/lib/kubelet/pods`. +Update the host path for volumes in the Restic DaemonSet in the Velero namespace from `/var/lib/kubelet/pods` to `/opt/rke/var/lib/kubelet/pods`. ```yaml hostPath: @@ -62,7 +62,7 @@ hostPath: **OpenShift** -To mount the correct hostpath to pods volumes, run the restic pod in `privileged` mode. +To mount the correct hostpath to pods volumes, run the Restic pod in `privileged` mode. 1. Add the `velero` ServiceAccount to the `privileged` SCC: @@ -125,7 +125,7 @@ To mount the correct hostpath to pods volumes, run the restic pod in `privileged ``` -If restic is not running in a privileged mode, it will not be able to access pods volumes within the mounted hostpath directory because of the default enforced SELinux mode configured in the host system level. You can [create a custom SCC](https://docs.openshift.com/container-platform/3.11/admin_guide/manage_scc.html) to relax the security in your cluster so that restic pods are allowed to use the hostPath volume plug-in without granting them access to the `privileged` SCC. +If Restic is not running in a privileged mode, it will not be able to access pods volumes within the mounted hostpath directory because of the default enforced SELinux mode configured in the host system level. You can [create a custom SCC](https://docs.openshift.com/container-platform/3.11/admin_guide/manage_scc.html) to relax the security in your cluster so that Restic pods are allowed to use the hostPath volume plug-in without granting them access to the `privileged` SCC. By default a userland openshift namespace will not schedule pods on all nodes in the cluster. @@ -147,7 +147,7 @@ oc create -n -f ds.yaml **VMware Tanzu Kubernetes Grid Integrated Edition (formerly VMware Enterprise PKS)** -You need to enable the `Allow Privileged` option in your plan configuration so that restic is able to mount the hostpath. +You need to enable the `Allow Privileged` option in your plan configuration so that Restic is able to mount the hostpath. The hostPath should be changed from `/var/lib/kubelet/pods` to `/var/vcap/data/kubelet/pods` @@ -172,16 +172,16 @@ kubectl patch storageclass/ \ ## To back up -Velero supports two approaches of discovering pod volumes that need to be backed up using restic: +Velero supports two approaches of discovering pod volumes that need to be backed up using Restic: -- Opt-in approach: Where every pod containing a volume to be backed up using restic must be annotated with the volume's name. -- Opt-out approach: Where all pod volumes are backed up using restic, with the ability to opt-out any volumes that should not be backed up. +- Opt-in approach: Where every pod containing a volume to be backed up using Restic must be annotated with the volume's name. +- Opt-out approach: Where all pod volumes are backed up using Restic, with the ability to opt-out any volumes that should not be backed up. The following sections provide more details on the two approaches. ### Using the opt-out approach -In this approach, Velero will back up all pod volumes using restic with the exception of: +In this approach, Velero will back up all pod volumes using Restic with the exception of: - Volumes mounting the default service account token, kubernetes secrets, and config maps - Hostpath volumes @@ -190,7 +190,7 @@ It is possible to exclude volumes from being backed up using the `backup.velero. Instructions to back up using this approach are as follows: -1. Run the following command on each pod that contains volumes that should **not** be backed up using restic +1. Run the following command on each pod that contains volumes that should **not** be backed up using Restic ```bash kubectl -n YOUR_POD_NAMESPACE annotate pod/YOUR_POD_NAME backup.velero.io/backup-volumes-excludes=YOUR_VOLUME_NAME_1,YOUR_VOLUME_NAME_2,... @@ -221,7 +221,7 @@ Instructions to back up using this approach are as follows: - name: pvc2-vm claimName: pvc2 ``` - to exclude restic backup of volume `pvc1-vm`, you would run: + to exclude Restic backup of volume `pvc1-vm`, you would run: ```bash kubectl -n sample annotate pod/app1 backup.velero.io/backup-volumes-excludes=pvc1-vm @@ -248,7 +248,7 @@ Instructions to back up using this approach are as follows: ### Using opt-in pod volume backup -Velero, by default, uses this approach to discover pod volumes that need to be backed up using restic, where every pod containing a volume to be backed up using restic must be annotated with the volume's name. +Velero, by default, uses this approach to discover pod volumes that need to be backed up using Restic, where every pod containing a volume to be backed up using Restic must be annotated with the volume's name. Instructions to back up using this approach are as follows: @@ -310,7 +310,7 @@ Instructions to back up using this approach are as follows: ## To restore -Regardless of how volumes are discovered for backup using restic, the process of restoring remains the same. +Regardless of how volumes are discovered for backup using Restic, the process of restoring remains the same. 1. Restore from your Velero backup: @@ -331,20 +331,20 @@ Regardless of how volumes are discovered for backup using restic, the process of - `hostPath` volumes are not supported. [Local persistent volumes][4] are supported. - Those of you familiar with [restic][1] may know that it encrypts all of its data. Velero uses a static, -common encryption key for all restic repositories it creates. **This means that anyone who has access to your -bucket can decrypt your restic backup data**. Make sure that you limit access to the restic bucket +common encryption key for all Restic repositories it creates. **This means that anyone who has access to your +bucket can decrypt your Restic backup data**. Make sure that you limit access to the Restic bucket appropriately. - An incremental backup chain will be maintained across pod reschedules for PVCs. However, for pod volumes that are *not* PVCs, such as `emptyDir` volumes, when a pod is deleted/recreated (for example, by a ReplicaSet/Deployment), the next backup of those volumes will be full rather than incremental, because the pod volume's lifecycle is assumed to be defined by its pod. - Restic scans each file in a single thread. This means that large files (such as ones storing a database) will take a long time to scan for data deduplication, even if the actual difference is small. -- If you plan to use the Velero restic integration to backup 100GB of data or more, you may need to [customize the resource limits](/docs/main/customize-installation/#customize-resource-requests-and-limits) to make sure backups complete successfully. -- Velero's restic integration backs up data from volumes by accessing the node's filesystem, on which the pod is running. For this reason, restic integration can only backup volumes that are mounted by a pod and not directly from the PVC. +- If you plan to use Velero's Restic integration to backup 100GB of data or more, you may need to [customize the resource limits](/docs/main/customize-installation/#customize-resource-requests-and-limits) to make sure backups complete successfully. +- Velero's Restic integration backs up data from volumes by accessing the node's filesystem, on which the pod is running. For this reason, Velero's Restic integration can only backup volumes that are mounted by a pod and not directly from the PVC. For orphan PVC/PV pairs (without running pods), some Velero users overcame this limitation running a staging pod (i.e. a busybox or alpine container with an infinite sleep) to mount these PVC/PV pairs prior taking a Velero backup. ## Customize Restore Helper Container -Velero uses a helper init container when performing a restic restore. By default, the image for this container is `velero/velero-restic-restore-helper:`, +Velero uses a helper init container when performing a Restic restore. By default, the image for this container is `velero/velero-restic-restore-helper:`, where `VERSION` matches the version/tag of the main Velero image. You can customize the image that is used for this helper by creating a ConfigMap in the Velero namespace with the alternate image. @@ -410,7 +410,7 @@ Are your Velero server and daemonset pods running? kubectl get pods -n velero ``` -Does your restic repository exist, and is it ready? +Does your Restic repository exist, and is it ready? ```bash velero restic repo get @@ -446,31 +446,31 @@ kubectl -n velero logs DAEMON_POD_NAME **NOTE**: You can increase the verbosity of the pod logs by adding `--log-level=debug` as an argument to the container command in the deployment/daemonset pod template spec. -## How backup and restore work with restic +## How backup and restore work with Restic Velero has three custom resource definitions and associated controllers: - `ResticRepository` - represents/manages the lifecycle of Velero's [restic repositories][5]. Velero creates -a restic repository per namespace when the first restic backup for a namespace is requested. The controller -for this custom resource executes restic repository lifecycle commands -- `restic init`, `restic check`, +a Restic repository per namespace when the first Restic backup for a namespace is requested. The controller +for this custom resource executes Restic repository lifecycle commands -- `restic init`, `restic check`, and `restic prune`. - You can see information about your Velero restic repositories by running `velero restic repo get`. + You can see information about your Velero's Restic repositories by running `velero restic repo get`. -- `PodVolumeBackup` - represents a restic backup of a volume in a pod. The main Velero backup process creates +- `PodVolumeBackup` - represents a Restic backup of a volume in a pod. The main Velero backup process creates one or more of these when it finds an annotated pod. Each node in the cluster runs a controller for this resource (in a daemonset) that handles the `PodVolumeBackups` for pods on that node. The controller executes `restic backup` commands to backup pod volume data. -- `PodVolumeRestore` - represents a restic restore of a pod volume. The main Velero restore process creates one -or more of these when it encounters a pod that has associated restic backups. Each node in the cluster runs a +- `PodVolumeRestore` - represents a Restic restore of a pod volume. The main Velero restore process creates one +or more of these when it encounters a pod that has associated Restic backups. Each node in the cluster runs a controller for this resource (in the same daemonset as above) that handles the `PodVolumeRestores` for pods on that node. The controller executes `restic restore` commands to restore pod volume data. ### Backup -1. Based on configuration, the main Velero backup process uses the opt-in or opt-out approach to check each pod that it's backing up for the volumes to be backed up using restic. -1. When found, Velero first ensures a restic repository exists for the pod's namespace, by: +1. Based on configuration, the main Velero backup process uses the opt-in or opt-out approach to check each pod that it's backing up for the volumes to be backed up using Restic. +1. When found, Velero first ensures a Restic repository exists for the pod's namespace, by: - checking if a `ResticRepository` custom resource already exists - if not, creating a new one, and waiting for the `ResticRepository` controller to init/check it 1. Velero then creates a `PodVolumeBackup` custom resource per volume listed in the pod annotation @@ -485,14 +485,14 @@ on that node. The controller executes `restic restore` commands to restore pod v ### Restore 1. The main Velero restore process checks each existing `PodVolumeBackup` custom resource in the cluster to backup from. -1. For each `PodVolumeBackup` found, Velero first ensures a restic repository exists for the pod's namespace, by: +1. For each `PodVolumeBackup` found, Velero first ensures a Restic repository exists for the pod's namespace, by: - checking if a `ResticRepository` custom resource already exists - if not, creating a new one, and waiting for the `ResticRepository` controller to init/check it (note that in this case, the actual repository should already exist in object storage, so the Velero controller will simply check it for integrity) -1. Velero adds an init container to the pod, whose job is to wait for all restic restores for the pod to complete (more +1. Velero adds an init container to the pod, whose job is to wait for all Restic restores for the pod to complete (more on this shortly) -1. Velero creates the pod, with the added init container, by submitting it to the Kubernetes API +1. Velero creates the pod, with the added init container, by submitting it to the Kubernetes API. Then, the Kubernetes scheduler schedules this pod to a worker node, and the pod must be in a running state. If the pod fails to start for some reason (i.e. lack of cluster resources), the Restic restore will not be done. 1. Velero creates a `PodVolumeRestore` custom resource for each volume to be restored in the pod 1. The main Velero process now waits for each `PodVolumeRestore` resource to complete or fail 1. Meanwhile, each `PodVolumeRestore` is handled by the controller on the appropriate node, which: @@ -512,7 +512,7 @@ on to running other init containers/the main containers. ### Monitor backup annotation -Velero does not provide a mechanism to detect persistent volume claims that are missing the restic backup annotation. +Velero does not provide a mechanism to detect persistent volume claims that are missing the Restic backup annotation. To solve this, a controller was written by Thomann Bits&Beats: [velero-pvc-watcher][7] @@ -526,4 +526,3 @@ To solve this, a controller was written by Thomann Bits&Beats: [velero-pvc-watch [8]: https://docs.microsoft.com/en-us/azure/aks/azure-files-dynamic-pv [9]: https://github.com/restic/restic/issues/1800 [11]: customize-installation.md#default-pod-volume-backup-to-restic - diff --git a/site/content/docs/v1.6/restic.md b/site/content/docs/v1.6/restic.md index 878219a19..a15e08bf2 100644 --- a/site/content/docs/v1.6/restic.md +++ b/site/content/docs/v1.6/restic.md @@ -10,41 +10,41 @@ the supported cloud providers’ block storage offerings (Amazon EBS Volumes, Az It also provides a plugin model that enables anyone to implement additional object and block storage backends, outside the main Velero repository. -The restic intergation was added to give you an out-of-the-box solution for backing up and restoring almost any type of Kubernetes volume. This integration is an addition to Velero's capabilities, not a replacement for existing functionality. If you're running on AWS, and taking EBS snapshots as part of your regular Velero backups, there's no need to switch to using restic. However, if you need a volume snapshot plugin for your storage platform, or if you're using EFS, AzureFile, NFS, emptyDir, -local, or any other volume type that doesn't have a native snapshot concept, restic might be for you. +Velero's Restic integration was added to give you an out-of-the-box solution for backing up and restoring almost any type of Kubernetes volume. This integration is an addition to Velero's capabilities, not a replacement for existing functionality. If you're running on AWS, and taking EBS snapshots as part of your regular Velero backups, there's no need to switch to using Restic. However, if you need a volume snapshot plugin for your storage platform, or if you're using EFS, AzureFile, NFS, emptyDir, +local, or any other volume type that doesn't have a native snapshot concept, Restic might be for you. Restic is not tied to a specific storage platform, which means that this integration also paves the way for future work to enable cross-volume-type data migrations. **NOTE:** hostPath volumes are not supported, but the [local volume type][4] is supported. -## Setup restic +## Setup Restic ### Prerequisites -- Understand how Velero performs [backups with the restic integration](#how-backup-and-restore-work-with-restic). +- Understand how Velero performs [backups with the Restic integration](#how-backup-and-restore-work-with-restic). - [Download][3] the latest Velero release. -- Kubernetes v1.12.0 and later. Velero's restic integration requires the Kubernetes [MountPropagation feature][6], which is enabled by default in Kubernetes v1.12.0 and later. +- Kubernetes v1.12.0 and later. Velero's Restic integration requires the Kubernetes [MountPropagation feature][6], which is enabled by default in Kubernetes v1.12.0 and later. -### Install restic +### Install Restic -To install restic, use the `--use-restic` flag in the `velero install` command. See the [install overview][2] for more details on other flags for the install command. +To install Restic, use the `--use-restic` flag in the `velero install` command. See the [install overview][2] for more details on other flags for the install command. ``` velero install --use-restic ``` -When using restic on a storage provider that doesn't have Velero support for snapshots, the `--use-volume-snapshots=false` flag prevents an unused `VolumeSnapshotLocation` from being created on installation. +When using Restic on a storage provider that doesn't have Velero support for snapshots, the `--use-volume-snapshots=false` flag prevents an unused `VolumeSnapshotLocation` from being created on installation. -### Configure restic DaemonSet spec +### Configure Restic DaemonSet spec -After installation, some PaaS/CaaS platforms based on Kubernetes also require modifications the restic DaemonSet spec. The steps in this section are only needed if you are installing on RancherOS, OpenShift, VMware Tanzu Kubernetes Grid Integrated Edition (formerly VMware Enterprise PKS), or Microsoft Azure. +After installation, some PaaS/CaaS platforms based on Kubernetes also require modifications the Restic DaemonSet spec. The steps in this section are only needed if you are installing on RancherOS, OpenShift, VMware Tanzu Kubernetes Grid Integrated Edition (formerly VMware Enterprise PKS), or Microsoft Azure. **RancherOS** -Update the host path for volumes in the restic DaemonSet in the Velero namespace from `/var/lib/kubelet/pods` to `/opt/rke/var/lib/kubelet/pods`. +Update the host path for volumes in the Restic DaemonSet in the Velero namespace from `/var/lib/kubelet/pods` to `/opt/rke/var/lib/kubelet/pods`. ```yaml hostPath: @@ -62,7 +62,7 @@ hostPath: **OpenShift** -To mount the correct hostpath to pods volumes, run the restic pod in `privileged` mode. +To mount the correct hostpath to pods volumes, run the Restic pod in `privileged` mode. 1. Add the `velero` ServiceAccount to the `privileged` SCC: @@ -125,7 +125,7 @@ To mount the correct hostpath to pods volumes, run the restic pod in `privileged ``` -If restic is not running in a privileged mode, it will not be able to access pods volumes within the mounted hostpath directory because of the default enforced SELinux mode configured in the host system level. You can [create a custom SCC](https://docs.openshift.com/container-platform/3.11/admin_guide/manage_scc.html) to relax the security in your cluster so that restic pods are allowed to use the hostPath volume plug-in without granting them access to the `privileged` SCC. +If Restic is not running in a privileged mode, it will not be able to access pods volumes within the mounted hostpath directory because of the default enforced SELinux mode configured in the host system level. You can [create a custom SCC](https://docs.openshift.com/container-platform/3.11/admin_guide/manage_scc.html) to relax the security in your cluster so that Restic pods are allowed to use the hostPath volume plug-in without granting them access to the `privileged` SCC. By default a userland openshift namespace will not schedule pods on all nodes in the cluster. @@ -147,7 +147,7 @@ oc create -n -f ds.yaml **VMware Tanzu Kubernetes Grid Integrated Edition (formerly VMware Enterprise PKS)** -You need to enable the `Allow Privileged` option in your plan configuration so that restic is able to mount the hostpath. +You need to enable the `Allow Privileged` option in your plan configuration so that Restic is able to mount the hostpath. The hostPath should be changed from `/var/lib/kubelet/pods` to `/var/vcap/data/kubelet/pods` @@ -172,16 +172,16 @@ kubectl patch storageclass/ \ ## To back up -Velero supports two approaches of discovering pod volumes that need to be backed up using restic: +Velero supports two approaches of discovering pod volumes that need to be backed up using Restic: -- Opt-in approach: Where every pod containing a volume to be backed up using restic must be annotated with the volume's name. -- Opt-out approach: Where all pod volumes are backed up using restic, with the ability to opt-out any volumes that should not be backed up. +- Opt-in approach: Where every pod containing a volume to be backed up using Restic must be annotated with the volume's name. +- Opt-out approach: Where all pod volumes are backed up using Restic, with the ability to opt-out any volumes that should not be backed up. The following sections provide more details on the two approaches. ### Using the opt-out approach -In this approach, Velero will back up all pod volumes using restic with the exception of: +In this approach, Velero will back up all pod volumes using Restic with the exception of: - Volumes mounting the default service account token, kubernetes secrets, and config maps - Hostpath volumes @@ -190,12 +190,12 @@ It is possible to exclude volumes from being backed up using the `backup.velero. Instructions to back up using this approach are as follows: -1. Run the following command on each pod that contains volumes that should **not** be backed up using restic +1. Run the following command on each pod that contains volumes that should **not** be backed up using Restic ```bash kubectl -n YOUR_POD_NAMESPACE annotate pod/YOUR_POD_NAME backup.velero.io/backup-volumes-excludes=YOUR_VOLUME_NAME_1,YOUR_VOLUME_NAME_2,... ``` - where the volume names are the names of the volumes in the pod sepc. + where the volume names are the names of the volumes in the pod spec. For example, in the following pod: @@ -221,7 +221,7 @@ Instructions to back up using this approach are as follows: - name: pvc2-vm claimName: pvc2 ``` - to exclude restic backup of volume `pvc1-vm`, you would run: + to exclude Restic backup of volume `pvc1-vm`, you would run: ```bash kubectl -n sample annotate pod/app1 backup.velero.io/backup-volumes-excludes=pvc1-vm @@ -248,7 +248,7 @@ Instructions to back up using this approach are as follows: ### Using opt-in pod volume backup -Velero, by default, uses this approach to discover pod volumes that need to be backed up using restic, where every pod containing a volume to be backed up using restic must be annotated with the volume's name. +Velero, by default, uses this approach to discover pod volumes that need to be backed up using Restic, where every pod containing a volume to be backed up using Restic must be annotated with the volume's name. Instructions to back up using this approach are as follows: @@ -310,7 +310,7 @@ Instructions to back up using this approach are as follows: ## To restore -Regardless of how volumes are discovered for backup using restic, the process of restoring remains the same. +Regardless of how volumes are discovered for backup using Restic, the process of restoring remains the same. 1. Restore from your Velero backup: @@ -331,20 +331,20 @@ Regardless of how volumes are discovered for backup using restic, the process of - `hostPath` volumes are not supported. [Local persistent volumes][4] are supported. - Those of you familiar with [restic][1] may know that it encrypts all of its data. Velero uses a static, -common encryption key for all restic repositories it creates. **This means that anyone who has access to your -bucket can decrypt your restic backup data**. Make sure that you limit access to the restic bucket +common encryption key for all Restic repositories it creates. **This means that anyone who has access to your +bucket can decrypt your Restic backup data**. Make sure that you limit access to the Restic bucket appropriately. - An incremental backup chain will be maintained across pod reschedules for PVCs. However, for pod volumes that are *not* PVCs, such as `emptyDir` volumes, when a pod is deleted/recreated (for example, by a ReplicaSet/Deployment), the next backup of those volumes will be full rather than incremental, because the pod volume's lifecycle is assumed to be defined by its pod. - Restic scans each file in a single thread. This means that large files (such as ones storing a database) will take a long time to scan for data deduplication, even if the actual difference is small. -- If you plan to use the Velero restic integration to backup 100GB of data or more, you may need to [customize the resource limits](/docs/main/customize-installation/#customize-resource-requests-and-limits) to make sure backups complete successfully. -- Velero's restic integration backs up data from volumes by accessing the node's filesystem, on which the pod is running. For this reason, restic integration can only backup volumes that are mounted by a pod and not directly from the PVC. +- If you plan to use Velero's Restic integration to backup 100GB of data or more, you may need to [customize the resource limits](/docs/main/customize-installation/#customize-resource-requests-and-limits) to make sure backups complete successfully. +- Velero's Restic integration backs up data from volumes by accessing the node's filesystem, on which the pod is running. For this reason, Velero's Restic integration can only backup volumes that are mounted by a pod and not directly from the PVC. For orphan PVC/PV pairs (without running pods), some Velero users overcame this limitation running a staging pod (i.e. a busybox or alpine container with an infinite sleep) to mount these PVC/PV pairs prior taking a Velero backup. ## Customize Restore Helper Container -Velero uses a helper init container when performing a restic restore. By default, the image for this container is `velero/velero-restic-restore-helper:`, +Velero uses a helper init container when performing a Restic restore. By default, the image for this container is `velero/velero-restic-restore-helper:`, where `VERSION` matches the version/tag of the main Velero image. You can customize the image that is used for this helper by creating a ConfigMap in the Velero namespace with the alternate image. @@ -410,7 +410,7 @@ Are your Velero server and daemonset pods running? kubectl get pods -n velero ``` -Does your restic repository exist, and is it ready? +Does your Restic repository exist, and is it ready? ```bash velero restic repo get @@ -446,31 +446,31 @@ kubectl -n velero logs DAEMON_POD_NAME **NOTE**: You can increase the verbosity of the pod logs by adding `--log-level=debug` as an argument to the container command in the deployment/daemonset pod template spec. -## How backup and restore work with restic +## How backup and restore work with Restic Velero has three custom resource definitions and associated controllers: - `ResticRepository` - represents/manages the lifecycle of Velero's [restic repositories][5]. Velero creates -a restic repository per namespace when the first restic backup for a namespace is requested. The controller -for this custom resource executes restic repository lifecycle commands -- `restic init`, `restic check`, +a Restic repository per namespace when the first Restic backup for a namespace is requested. The controller +for this custom resource executes Restic repository lifecycle commands -- `restic init`, `restic check`, and `restic prune`. - You can see information about your Velero restic repositories by running `velero restic repo get`. + You can see information about your Velero's Restic repositories by running `velero restic repo get`. -- `PodVolumeBackup` - represents a restic backup of a volume in a pod. The main Velero backup process creates +- `PodVolumeBackup` - represents a Restic backup of a volume in a pod. The main Velero backup process creates one or more of these when it finds an annotated pod. Each node in the cluster runs a controller for this resource (in a daemonset) that handles the `PodVolumeBackups` for pods on that node. The controller executes `restic backup` commands to backup pod volume data. -- `PodVolumeRestore` - represents a restic restore of a pod volume. The main Velero restore process creates one -or more of these when it encounters a pod that has associated restic backups. Each node in the cluster runs a +- `PodVolumeRestore` - represents a Restic restore of a pod volume. The main Velero restore process creates one +or more of these when it encounters a pod that has associated Restic backups. Each node in the cluster runs a controller for this resource (in the same daemonset as above) that handles the `PodVolumeRestores` for pods on that node. The controller executes `restic restore` commands to restore pod volume data. ### Backup -1. Based on configuration, the main Velero backup process uses the opt-in or opt-out approach to check each pod that it's backing up for the volumes to be backed up using restic. -1. When found, Velero first ensures a restic repository exists for the pod's namespace, by: +1. Based on configuration, the main Velero backup process uses the opt-in or opt-out approach to check each pod that it's backing up for the volumes to be backed up using Restic. +1. When found, Velero first ensures a Restic repository exists for the pod's namespace, by: - checking if a `ResticRepository` custom resource already exists - if not, creating a new one, and waiting for the `ResticRepository` controller to init/check it 1. Velero then creates a `PodVolumeBackup` custom resource per volume listed in the pod annotation @@ -485,14 +485,14 @@ on that node. The controller executes `restic restore` commands to restore pod v ### Restore 1. The main Velero restore process checks each existing `PodVolumeBackup` custom resource in the cluster to backup from. -1. For each `PodVolumeBackup` found, Velero first ensures a restic repository exists for the pod's namespace, by: +1. For each `PodVolumeBackup` found, Velero first ensures a Restic repository exists for the pod's namespace, by: - checking if a `ResticRepository` custom resource already exists - if not, creating a new one, and waiting for the `ResticRepository` controller to init/check it (note that in this case, the actual repository should already exist in object storage, so the Velero controller will simply check it for integrity) -1. Velero adds an init container to the pod, whose job is to wait for all restic restores for the pod to complete (more +1. Velero adds an init container to the pod, whose job is to wait for all Restic restores for the pod to complete (more on this shortly) -1. Velero creates the pod, with the added init container, by submitting it to the Kubernetes API +1. Velero creates the pod, with the added init container, by submitting it to the Kubernetes API. Then, the Kubernetes scheduler schedules this pod to a worker node, and the pod must be in a running state. If the pod fails to start for some reason (i.e. lack of cluster resources), the Restic restore will not be done. 1. Velero creates a `PodVolumeRestore` custom resource for each volume to be restored in the pod 1. The main Velero process now waits for each `PodVolumeRestore` resource to complete or fail 1. Meanwhile, each `PodVolumeRestore` is handled by the controller on the appropriate node, which: @@ -512,7 +512,7 @@ on to running other init containers/the main containers. ### Monitor backup annotation -Velero does not provide a mechanism to detect persistent volume claims that are missing the restic backup annotation. +Velero does not provide a mechanism to detect persistent volume claims that are missing the Restic backup annotation. To solve this, a controller was written by Thomann Bits&Beats: [velero-pvc-watcher][7] From f4171413c49b5f7f194b12e0f17c6bf7361bbe0d Mon Sep 17 00:00:00 2001 From: Nolan Brubaker Date: Tue, 28 Sep 2021 21:45:30 -0400 Subject: [PATCH 022/136] Initial draft of an object graph manifest (#3466) * Initial draft of an object graph manifest Signed-off-by: Nolan Brubaker * Fix spelling Signed-off-by: Nolan Brubaker --- design/graph-manifest.md | 219 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 design/graph-manifest.md diff --git a/design/graph-manifest.md b/design/graph-manifest.md new file mode 100644 index 000000000..e469b2a61 --- /dev/null +++ b/design/graph-manifest.md @@ -0,0 +1,219 @@ +# Object Graph Manifest for Velero + +## Abstract + +One to two sentences that describes the goal of this proposal and the problem being solved by the proposed change. +The reader should be able to tell by the title, and the opening paragraph, if this document is relevant to them. + +Currently, Velero does not have a complete manifest of everything in the backup, aside from the backup tarball itself. +This change introduces a new data structure to be stored with a backup in object storage which will allow for more efficient operations in reporting of what a backup contains. +Additionally, this manifest should enable advancements in Velero's features and architecture, enabling dry-run support, concurrent backup and restore operations, and reliable restoration of complex applications. + +## Background + +Right now, Velero backs up items one at a time, sorted by API Group and namespace. +It also restores items one at a time, using the restoreResourcePriorities flag to indicate which order API Groups should have their objects restored first. +While this does work currently, it presents challenges for more complex applications that have their dependencies in the form of a graph rather than strictly linear. + +For example, Cluster API clusters are a set of complex Kubernetes objects that require that the "root" objects are restored first, before their "leaf" objects. +If a Cluster that a ClusterResourceSetBinding refers to does not exist, then a restore of the CAPI cluster will fail. + +Additionally, Velero does not have a reliable way to communicate what objects will be affected in a backup or restore operation without actually performing the operation. +This complicates dry-run tasks, because a user must simply perform the action without knowing what will be touched. +It also complicates allowing backups and restores to run in parallel, because there is currently no way to know if a single Kubernetes object is included in multiple backups or restores, which can lead to unreliability, deadlocking, and race conditions were Velero made to be more concurrent today. + +## Goals + +- Introduce a manifest data structure that defines the contents of a backup. +- Store the manifest data into object storage alongside existing backup data. + +## Non Goals + +This proposal seeks to enable, but not define, the following. + +- Implementing concurrency beyond what already exists in Velero. +- Implementing a dry-run feature. +- Implementing a new restore ordering procedure. + +While the data structure should take these scenarios into account, they will not be implemented alongside it. + +## High-Level Design + +To uniquely identify a Kubernetes object within a cluster or backup, the following fields are sufficient: + +- API Group and Version (example: backup.velero.io/v1) +- Namespace +- Name +- Labels + +This criteria covers the majority of Velero's inclusion or exclusion logic. +However, some additional fields enable further use cases. + +- Owners, which are other Kubernetes objects that have some relationship to this object. They may be strict or soft dependencies. +- Annotations, which provide extra metadata about the object that might be useful for other programs to consume. +- UUID generated by Kubernetes. This is useful in defining Owner relationships, providing a single, immutable key to find an object. This is _not_ considered at restore time, only internally for defining links. + +All of this information already exists within a Velero backup's tarball of resources, but extracting such data is inefficient. +The entire tarball must be downloaded and extracted, and then JSON within parsed to read labels, owners, annotations, and a UUID. +The rest of the information is encoded in the file system structure within the Velero backup tarball. +While doable, this is heavyweight in terms of time and potentially memory. + +Instead, this proposal suggests adding a new manifest structure that is kept alongside the backup tarball. +This structure would contain the above fields only, and could be used to perform inclusion/exclusion logic on a backup, select a resource from within a backup, and do set operations over backup or restore contents to identify overlapping resources. + +Here are some use cases that this data structure should enable, that have been difficult to implement prior to its existence: + +- A dry-run operation on backup, informing the user what would be selected if they were to perform the operation. + A manifest could be created and saved, allowing for a user to do a dry-run, then accept it to perform the backup. + Restore operations can be treated similarly. +- Efficient, non-overlapping parallelization of backup and restore operations. + By building or reading a manifest before performing a backup or restore, Velero can determine if there are overlapping resources. + If there are no overlaps, the operations can proceed in parallel. + If there are overlaps, the operations can proveed serially. +- Graph-based restores for non-linear dependencies. + Not all resources in a Kubernetes cluster can be defined in a strict, linear way. + They may have multiple owners, and writing BackupItemActions or RestoreItemActions to simply return a chain of owners is not an efficient way to support the many Kubernetes operators/controllers being written. + Instead, by having a manifest with enough information, Velero can build a discrete list that ensures dependencies are restored before their dependents, with less input from plugin authors. + +## Detailed Design + +The Manifest data structure would look like this, in Go type structure: + +```golang +// NamespacedItems maps a given namespace to all of its contained items. +type NamespacedItems map[string]*Item + +// APIGroupNamespaces maps an API group/version to a map of namespaces and their items. +type KindNamespaces map[string]NamespacedItems + +type Manifest struct { + // Kinds holds the top level map of all resources in a manifest. + Kinds KindNamespaces + + // Index is used to look up an individual item quickly based on UUID. + // This enables fetching owners out of the maps more efficiently at the cost of memory space. + Index map[string]*Item +} + + +// Item represents a Kubernetes resource within a backup based on it's selectable criteria. +// It is not the whole Kubernetes resource as retrieved from the API server, but rather a collection of important fields needed for filtering. +type Item struct { + // Kubernetes API group which this Item belongs to. + // Could be a core resource, or a CustomResourceDefinition. + APIGroup string + + // Version of the APIGroup that the Item belongs to. + APIVersion string + + // Kubernetes namespace which contains this item. + // Empty string for cluster-level resource. + Namespace string + + // Item's given name. + Name string + + // Map of labels that the Item had at backup time. + Labels map[string]string + + // Map of annotations that the Item had at Backup time. + // Useful for plugins that may decide to process only Items with specific annotations. + Annotations map[string]string + + // Owners is a list of UUIDs to other items that own or refer to this item. + Owners []string + + // Manifest is a pointer to the Manifest in which this object is contained. + // Useful for getting access to things like the Manifest.Index map. + Manifest *Manifest +} +``` + +In addition to the new types, the following Go interfaces would be provided for convenience. + +```golang +type Itermer interface { + // Returns the Item as a string, following the current Velero backup version 1.1.0 tarball structure format. + // ///.json + String() string + + // Owners returns a slice of realized Items that own or refer to the current Item. + // Useful for building out a full graph of Items to restore. + // Will use the UUIDs in Item.Owners to look up the owner Items in the Manifest. + Owners() []*Item + + // Kind returns the Kind of an object, which is a combination of the APIGroup and APIVersion. + // Useful for verifying the needed CustomResourceDefinition exists before actually restoring this Item. + Kind() *Item + + // Children returns a slice of all Items that refer to this item as an Owner. + Children() []*Items +} + +// This error type is being created in order to make reliable sentinel errors. +// See https://dave.cheney.net/2019/06/10/constant-time for more details. +type ManifestError string + +func (e ManifestError) Error() string { + return string(e) +} + +const ItemAlreadyExists = ManifestError("item already exists in manifest") + +type Manifester interface { + // Set returns the entire list of resources as a set of strings (using Itemer.String). + // This is useful for comparing two manifests and determining if they have any overlapping resources. + // In the future, when implementing concurrent operations, this can be used as a sanity check to ensure resources aren't being backed up or restored by two operations at once. + Set() sets.String + + // Adds an item to the appropriate APIGroup and Namespace within a Manifest + // Returns (true, nil) if the Item is successfully added to the Manifest, + // Returns (false, ItemAlreadyExists) if the Item is already in the Manifest. + Add(*Item) (bool, error) +} +``` + +### Serialization + +The entire `Manifest` should be serialized into the `manifest.json` file within the object storage for a single backup. +It is possible that this file could also be compressed for space efficiency. + +### Memory Concerns + +Because the `Manifest` is holding a minimal amount of data, memory sizes should not be a concern for most clusters. +TODO: Document known limits on API group name, resource name, and kind name character limits. + +## Security Considerations + +Introducing this manifest does not increase the attack surface of Velero, as this data is already present in the existing backups. +Storing the manifest.json file next to the existing backup data in the object storage does not change access patterns. + +## Compatibility + +The introduction of this file should trigger Velero backup version 1.2.0, but it will not interfere with Velero versions that do not support the `Manifest` as the file will be additive. +In time, this file will replace the `-resource-list.json.gz` file, but for compatibility the two will appear side by side. + +When first implemented, Velero should simply build the `Manifest` as it backs up items, and serialize it at the end. +Any logic changes that rely on the `Manifest` file must be introduced with their own design document, with their own compatibility concerns. + +## Implementation + +The `Manifest` object will _not_ be implemented as a Kubernetes CustomResourceDefinition, but rather one of Velero's own internal constructs. + +Implementation for the data structure alone should be minimal - the types will need to be defined in a `manifest` package. +Then, the backup process should create a `Manifest`, passing it to the various `*Backuppers` in the `backup` package. +These methods will insert individual `Items` into the `Manifest`. +Finally, logic should be added to the `persistence` package to ensure that the new `manifest.json` file is uploadable and allowed. + +## Alternatives Considered + +None so far. + +## Open Issues + +- When should compatibility with the `-resource-list.json.gz` file be dropped? +- What are some good test case Kubernetes resources and controllers to try this out with? +Cluster API seems like an obvious choice, but are there others? +- Since it is not implemented as a CustomResourceDefinition, how can a `Manifest` be retained so that users could issue a dry-run command, then perform their actual desire operation? +Could it be stored in Velero's temp directories? +Note that this is making Velero itself more stateful. From 5c77847f02ef1620c78a6021670d3f2f8d91983b Mon Sep 17 00:00:00 2001 From: JenTing Hsiao Date: Thu, 30 Sep 2021 23:12:03 +0800 Subject: [PATCH 023/136] Bump latest doc to v1.7 Signed-off-by: JenTing Hsiao --- site/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/config.yaml b/site/config.yaml index 303b94ebc..2f26a766e 100644 --- a/site/config.yaml +++ b/site/config.yaml @@ -12,7 +12,7 @@ params: hero: backgroundColor: med-blue versioning: true - latest: v1.6 + latest: v1.7 versions: - main - v1.7 From b5e6ba455d7426571e8eb4feaeab6175a4b03ca7 Mon Sep 17 00:00:00 2001 From: Dave Smith-Uchida Date: Sat, 11 Sep 2021 19:11:35 -0700 Subject: [PATCH 024/136] Updated Tiltfile to pass REGISTRY env variable to build.sh Set default registry to be docker.io/velero in Tiltfile and example Signed-off-by: Dave Smith-Uchida --- Tiltfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Tiltfile b/Tiltfile index 7e72960c3..7fbbca52f 100644 --- a/Tiltfile +++ b/Tiltfile @@ -16,7 +16,7 @@ k8s_yaml([ # default values settings = { - "default_registry": "", + "default_registry": "docker.io/velero", "enable_restic": False, "enable_debug": False, "debug_continue_on_start": True, # Continue the velero process by default when in debug mode @@ -90,14 +90,14 @@ def get_debug_flag(): # Set up a local_resource build of the Velero binary. The binary is written to _tiltbuild/velero. local_resource( "velero_server_binary", - cmd = 'cd ' + '.' + ';mkdir -p _tiltbuild;PKG=. BIN=velero GOOS=linux GOARCH=amd64 GIT_SHA=' + git_sha + ' VERSION=main GIT_TREE_STATE=dirty OUTPUT_DIR=_tiltbuild ' + get_debug_flag() + ' ./hack/build.sh', + cmd = 'cd ' + '.' + ';mkdir -p _tiltbuild;PKG=. BIN=velero GOOS=linux GOARCH=amd64 GIT_SHA=' + git_sha + ' VERSION=main GIT_TREE_STATE=dirty OUTPUT_DIR=_tiltbuild ' + get_debug_flag() + ' REGISTRY=' + settings.get("default_registry") + ' ./hack/build.sh', deps = ["cmd", "internal", "pkg"], ignore = ["pkg/cmd"], ) local_resource( "velero_local_binary", - cmd = 'cd ' + '.' + ';mkdir -p _tiltbuild/local;PKG=. BIN=velero GOOS=' + local_goos + ' GOARCH=amd64 GIT_SHA=' + git_sha + ' VERSION=main GIT_TREE_STATE=dirty OUTPUT_DIR=_tiltbuild/local ' + get_debug_flag() + ' ./hack/build.sh', + cmd = 'cd ' + '.' + ';mkdir -p _tiltbuild/local;PKG=. BIN=velero GOOS=' + local_goos + ' GOARCH=amd64 GIT_SHA=' + git_sha + ' VERSION=main GIT_TREE_STATE=dirty OUTPUT_DIR=_tiltbuild/local ' + get_debug_flag() + ' REGISTRY=' + settings.get("default_registry") + ' ./hack/build.sh', deps = ["internal", "pkg/cmd"], ) From f67dd4cbde7756b695af6e25093a72692185f6d8 Mon Sep 17 00:00:00 2001 From: eleanor-millman <16504301+eleanor-millman@users.noreply.github.com> Date: Tue, 5 Oct 2021 18:27:44 -0400 Subject: [PATCH 025/136] 1.8 roadmap (#4210) Signed-off-by: Eleanor Millman --- ROADMAP.md | 47 ++++++++++++++++++++++------------------------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 1528eec15..f36c0aed5 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -15,33 +15,30 @@ We work with and rely on community feedback to focus our efforts to improve Vele The following table includes the current roadmap for Velero. If you have any questions or would like to contribute to Velero, please attend a [community meeting](https://velero.io/community/) to discuss with our team. If you don't know where to start, we are always looking for contributors that will help us reduce technical, automation, and documentation debt. Please take the timelines & dates as proposals and goals. Priorities and requirements change based on community feedback, roadblocks encountered, community contributions, etc. If you depend on a specific item, we encourage you to attend community meetings to get updated status information, or help us deliver that feature by contributing to Velero. -`Last Updated: July 2021` +`Last Updated: October 2021` -#### 1.7.0 Roadmap (to be delivered early fall) +#### 1.8.0 Roadmap (to be delivered January/February 2021) The release roadmap is split into Core items that are required for the release and desired items that may slip the release. ##### Core items -The top priority of 1.7 is to increase the technical health of Velero and be more efficient with Velero developer time by streamlining the release process and automating and expanding the E2E test suite. +|Issue|Description|Timeline|Notes| +|---|---|---|---| +|[4108](https://github.com/vmware-tanzu/velero/issues/4108), [4109](https://github.com/vmware-tanzu/velero/issues/4109)|Solution for CSI - Azure and AWS|2022 H1|Currently, Velero plugins for AWS and Azure cannot back up persistent volumes that were provisioned using the CSI driver. This will fix that.| +|[3229](https://github.com/vmware-tanzu/velero/issues/3229),[4112](https://github.com/vmware-tanzu/velero/issues/4112)|Moving data mover functionality from the Velero Plugin for vSphere into Velero proper|2022 H1|This work is a precursor to decoupling the Astrolabe snapshotting infrastructure.| +|[3533](https://github.com/vmware-tanzu/velero/issues/3533)|Upload Progress Monitoring|2022 H1|Finishing up the work done in the 1.7 timeframe. The data mover work depends on this.| +|[1975](https://github.com/vmware-tanzu/velero/issues/1975)|Test dual stack mode|2022 H1|We already tested IPv6, but we want to confirm that dual stack mode works as well.| +|[2082](https://github.com/vmware-tanzu/velero/issues/2082)|Delete Backup CRs on removing target location. |2022 H1|| +|[3516](https://github.com/vmware-tanzu/velero/issues/3516)|Restore issue with MutatingWebhookConfiguration v1beta1 API version|2022 H1|| +|[2308](https://github.com/vmware-tanzu/velero/issues/2308)|Restoring nodePort service that has nodePort preservation always fails if service already exists in the namespace|2022 H1|| +|[4115](https://github.com/vmware-tanzu/velero/issues/4115)|Support for multiple set of credentials for VolumeSnapshotLocations|2022 H1|| +|[1980](https://github.com/vmware-tanzu/velero/issues/1980)|Velero triggers backup immediately for scheduled backups|2022 H1|| +|[4067](https://github.com/vmware-tanzu/velero/issues/4067)|Pre and post backup and restore hooks|2022 H1|| +|[3742](https://github.com/vmware-tanzu/velero/issues/3742)|Carvel packaging for Velero for vSphere|2022 H1|AWS and Azure have been completed already.| +|[3285](https://github.com/vmware-tanzu/velero/issues/3285)|Design doc for Velero plugin versioning|2022 H1|| +||Technical health (prioritizing giving developers confidence and saving developers time)|2022 H1|More automated tests (especially the pre-release manual tests) and more automation of the running of tests.| +|[4110](https://github.com/vmware-tanzu/velero/issues/4110)|Solution for CSI - GCP|2022 H1|Currently, the Velero plugin for GCP cannot back up persistent volumes that were provisioned using the CSI driver. This will fix that.| +|[3742](https://github.com/vmware-tanzu/velero/issues/3742)|Carvel packaging for Velero for restic|2022 H1|AWS and Azure have been completed already.| +|[3454](https://github.com/vmware-tanzu/velero/issues/3454),[4134](https://github.com/vmware-tanzu/velero/issues/4134),[4135](https://github.com/vmware-tanzu/velero/issues/4135)|Kubebuilder tech debt|2022 H1|| +|[4111](https://github.com/vmware-tanzu/velero/issues/4111)|Ignore items returned by ItemSnapshotter.AlsoHandles during backup|2022 H1|This will enable backup of complex objects, because we can then tell Velero to ignore things that were already backed up when Velero was previously called recursively.| -|Issue|Description| -|---|---| -||Streamline release process| -||Automate the running of the E2E tests| -||Convert pre-release manual tests to automated E2E tests| -|[3493](https://github.com/vmware-tanzu/velero/issues/3493)|[Carvel](https://github.com/vmware-tanzu/velero/issues/3493) based installation (in addition to the existing *velero install* CLI).| -|[675](https://github.com/vmware-tanzu/velero/issues/675)|Velero command to generate debugging information. Will integrate with [Crashd - Crash Diagnostics](https://github.com/vmware-tanzu/velero/issues/675)| -|[3285](https://github.com/vmware-tanzu/velero/issues/3285)|Design doc for Velero plugin versioning| -|[1975](https://github.com/vmware-tanzu/velero/issues/1975)|IPV6 support| -|[3533](https://github.com/vmware-tanzu/velero/issues/3533)|Upload Progress Monitoring| -|[3500](https://github.com/vmware-tanzu/velero/issues/3500)|Use distroless containers as a base| - - - -##### Items formerly in 1.7 that will slip due to staffing changes -|Issue|Description| -|---|---| -|[3536](https://github.com/vmware-tanzu/velero/issues/3536)|Manifest for backup/restore| -|[2066](https://github.com/vmware-tanzu/velero/issues/2066)|CSI Snapshots GA| -|[3535](https://github.com/vmware-tanzu/velero/issues/3535)|Design doc for multiple cluster support| -|[2922](https://github.com/vmware-tanzu/velero/issues/2922)|Plugin timeouts| -|[3531](https://github.com/vmware-tanzu/velero/issues/3531)|Test plan for Velero| \ No newline at end of file +Other work may make it into the 1.8 release, but this is the work that will be prioritized first. \ No newline at end of file From 90adb5602f0d7576dd3001613d84288119956c75 Mon Sep 17 00:00:00 2001 From: danfengl Date: Wed, 13 Oct 2021 08:49:03 +0000 Subject: [PATCH 026/136] Update 1.8 roadmap for Technical health Signed-off-by: danfengl --- ROADMAP.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index f36c0aed5..7bf9fc747 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -18,9 +18,7 @@ Please take the timelines & dates as proposals and goals. Priorities and require `Last Updated: October 2021` #### 1.8.0 Roadmap (to be delivered January/February 2021) -The release roadmap is split into Core items that are required for the release and desired items that may slip the release. -##### Core items |Issue|Description|Timeline|Notes| |---|---|---|---| |[4108](https://github.com/vmware-tanzu/velero/issues/4108), [4109](https://github.com/vmware-tanzu/velero/issues/4109)|Solution for CSI - Azure and AWS|2022 H1|Currently, Velero plugins for AWS and Azure cannot back up persistent volumes that were provisioned using the CSI driver. This will fix that.| @@ -35,7 +33,7 @@ The release roadmap is split into Core items that are required for the release a |[4067](https://github.com/vmware-tanzu/velero/issues/4067)|Pre and post backup and restore hooks|2022 H1|| |[3742](https://github.com/vmware-tanzu/velero/issues/3742)|Carvel packaging for Velero for vSphere|2022 H1|AWS and Azure have been completed already.| |[3285](https://github.com/vmware-tanzu/velero/issues/3285)|Design doc for Velero plugin versioning|2022 H1|| -||Technical health (prioritizing giving developers confidence and saving developers time)|2022 H1|More automated tests (especially the pre-release manual tests) and more automation of the running of tests.| +|[4231](https://github.com/vmware-tanzu/velero/issues/4231)|Technical health (prioritizing giving developers confidence and saving developers time)|2022 H1|More automated tests (especially the pre-release manual tests) and more automation of the running of tests.| |[4110](https://github.com/vmware-tanzu/velero/issues/4110)|Solution for CSI - GCP|2022 H1|Currently, the Velero plugin for GCP cannot back up persistent volumes that were provisioned using the CSI driver. This will fix that.| |[3742](https://github.com/vmware-tanzu/velero/issues/3742)|Carvel packaging for Velero for restic|2022 H1|AWS and Azure have been completed already.| |[3454](https://github.com/vmware-tanzu/velero/issues/3454),[4134](https://github.com/vmware-tanzu/velero/issues/4134),[4135](https://github.com/vmware-tanzu/velero/issues/4135)|Kubebuilder tech debt|2022 H1|| From 033dc06475f71a0b70b94582f5f4ac3886012426 Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Mon, 18 Oct 2021 15:16:29 +0800 Subject: [PATCH 027/136] Update release instruction Add one step to pin the base image of velero Signed-off-by: Daniel Jiang --- site/content/docs/main/release-instructions.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/site/content/docs/main/release-instructions.md b/site/content/docs/main/release-instructions.md index 0d59a60a9..29dc8e0ce 100644 --- a/site/content/docs/main/release-instructions.md +++ b/site/content/docs/main/release-instructions.md @@ -82,6 +82,12 @@ For each major or minor release, create and publish a blog post to let folks kno - Do a review of the diffs, and/or run `make serve-docs` and review the site. - Submit a PR containing the changelog and the version-tagged docs. +### Pin the base image +The image of velero is built based on [Distroless docker image](https://github.com/GoogleContainerTools/distroless). +For the reproducibility of the release, before the release candidate is tagged, we need to make sure the in the Dockerfile +on the release branch, the base image is referenced by digest, such as +https://github.com/vmware-tanzu/velero/blob/release-1.7/Dockerfile#L53-L54 + ## Velero release ### Notes - Pre-requisite: PR with the changelog and docs is merged, so that it's included in the release tag. From 54fa63939a6337652e309232a75a374d68b10642 Mon Sep 17 00:00:00 2001 From: "F. Gold" Date: Mon, 18 Oct 2021 16:45:23 -0700 Subject: [PATCH 028/136] Namespace validation now allows asterisks Signed-off-by: F. Gold --- pkg/util/collections/includes_excludes.go | 23 ++++++++----------- .../collections/includes_excludes_test.go | 14 ++++++++++- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/pkg/util/collections/includes_excludes.go b/pkg/util/collections/includes_excludes.go index 898d1a260..1f2128c71 100644 --- a/pkg/util/collections/includes_excludes.go +++ b/pkg/util/collections/includes_excludes.go @@ -164,21 +164,13 @@ func ValidateNamespaceIncludesExcludes(includesList, excludesList []string) []er excludes := sets.NewString(excludesList...) for _, itm := range includes.List() { - // Although asterisks is not a valid Kubernetes namespace name, it is - // allowed here. - if itm != "*" { - if nsErrs := validateNamespaceName(itm); nsErrs != nil { - errs = append(errs, nsErrs...) - } + if nsErrs := validateNamespaceName(itm); nsErrs != nil { + errs = append(errs, nsErrs...) } } - for _, itm := range excludes.List() { - // Asterisks in excludes list have been checked previously. - if itm != "*" { - if nsErrs := validateNamespaceName(itm); nsErrs != nil { - errs = append(errs, nsErrs...) - } + if nsErrs := validateNamespaceName(itm); nsErrs != nil { + errs = append(errs, nsErrs...) } } @@ -188,7 +180,12 @@ func ValidateNamespaceIncludesExcludes(includesList, excludesList []string) []er func validateNamespaceName(ns string) []error { var errs []error - if errMsgs := validation.ValidateNamespaceName(ns, false); errMsgs != nil { + // Kubernetes does not allow asterisks in namespaces but Velero uses them as + // wildcards. Replace asterisks with an arbitrary letter to pass Kubernetes + // validation. + tmpNamespace := strings.ReplaceAll(ns, "*", "x") + + if errMsgs := validation.ValidateNamespaceName(tmpNamespace, false); errMsgs != nil { for _, msg := range errMsgs { errs = append(errs, errors.Errorf("invalid namespace %q: %s", ns, msg)) } diff --git a/pkg/util/collections/includes_excludes_test.go b/pkg/util/collections/includes_excludes_test.go index a9841c25a..0ba885bd2 100644 --- a/pkg/util/collections/includes_excludes_test.go +++ b/pkg/util/collections/includes_excludes_test.go @@ -232,7 +232,7 @@ func TestValidateNamespaceIncludesExcludes(t *testing.T) { { name: "special characters in name is invalid", includes: []string{"foo?", "foo.bar", "bar_321"}, - excludes: []string{"$foo", "foo*bar", "bar=321"}, + excludes: []string{"$foo", "foo>bar", "bar=321"}, wantErr: true, }, { @@ -245,6 +245,18 @@ func TestValidateNamespaceIncludesExcludes(t *testing.T) { includes: []string{"*"}, wantErr: false, }, + { + name: "excludes can contain wildcard", + includes: []string{"foo", "bar"}, + excludes: []string{"nginx-ingress-*", "*-bar", "*-ingress-*"}, + wantErr: false, + }, + { + name: "includes can contain wildcard", + includes: []string{"*-foo", "kube-*", "*kube*"}, + excludes: []string{"bar"}, + wantErr: false, + }, { name: "include everything not allowed with other includes", includes: []string{"*", "foo"}, From 9f06a1b45185e9ac3a3152edb6cff6f3553b5388 Mon Sep 17 00:00:00 2001 From: "F. Gold" Date: Mon, 18 Oct 2021 17:09:28 -0700 Subject: [PATCH 029/136] Limit kubebuilder controllers to work only for objects in own namespaces Signed-off-by: F. Gold --- pkg/cmd/server/server.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/cmd/server/server.go b/pkg/cmd/server/server.go index e0ac43a01..5ed3d9d0c 100644 --- a/pkg/cmd/server/server.go +++ b/pkg/cmd/server/server.go @@ -303,7 +303,8 @@ func newServer(f client.Factory, config serverConfig, logger *logrus.Logger) (*s corev1api.AddToScheme(scheme) mgr, err := ctrl.NewManager(clientConfig, ctrl.Options{ - Scheme: scheme, + Scheme: scheme, + Namespace: f.Namespace(), }) if err != nil { cancelFunc() From 211e490c2c39581cbfa40fff05c56a4b0655aff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Mon, 25 Oct 2021 19:35:24 +0800 Subject: [PATCH 030/136] Add WenkaiYin to contributor list (#4277) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #3952 Signed-off-by: Wenkai Yin(尹文开) --- site/content/contributors/06-wenkai-yin.md | 7 +++++++ site/static/img/contributors/wenkai-yin.png | Bin 0 -> 221372 bytes 2 files changed, 7 insertions(+) create mode 100644 site/content/contributors/06-wenkai-yin.md create mode 100644 site/static/img/contributors/wenkai-yin.png diff --git a/site/content/contributors/06-wenkai-yin.md b/site/content/contributors/06-wenkai-yin.md new file mode 100644 index 000000000..87eea9adc --- /dev/null +++ b/site/content/contributors/06-wenkai-yin.md @@ -0,0 +1,7 @@ +--- +first_name: Wenkai +last_name: Yin +image: /img/contributors/wenkai-yin.png +github_handle: ywk253100 +--- +Engineer \ No newline at end of file diff --git a/site/static/img/contributors/wenkai-yin.png b/site/static/img/contributors/wenkai-yin.png new file mode 100644 index 0000000000000000000000000000000000000000..80be050922965e5fa893b0cdcc2d96d9e8a02f02 GIT binary patch literal 221372 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 literal 0 HcmV?d00001 From 430410c7637278cbd72fdbddbc021d6dfe6791cb Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Tue, 26 Oct 2021 01:59:58 +0800 Subject: [PATCH 031/136] Update the design of `velero debug` (#4081) After the PR to implement `velero debug` - #4022 is reviewed, there are some suggestion to let the command collect more resources, this commit make the change to the design doc to reflect those changes. It also remove some sections that are no longer relevant after `crashd` has made enhancement in the v0.3.4 release. Signed-off-by: Daniel Jiang --- design/Implemented/velero-debug.md | 122 +++++++++++++++++++++++++++++ design/velero-debug.md | 120 ---------------------------- 2 files changed, 122 insertions(+), 120 deletions(-) create mode 100644 design/Implemented/velero-debug.md delete mode 100644 design/velero-debug.md diff --git a/design/Implemented/velero-debug.md b/design/Implemented/velero-debug.md new file mode 100644 index 000000000..2a6fe7128 --- /dev/null +++ b/design/Implemented/velero-debug.md @@ -0,0 +1,122 @@ +# `velero debug` command for gathering troubleshooting information + +## Abstract +To simplify the communication between velero users and developers, this document proposes the `velero debug` command to generate a tarball including the logs needed for debugging. + +Github issue: https://github.com/vmware-tanzu/velero/issues/675 + +## Background +Gathering information to troubleshoot a Velero deployment is currently spread across multiple commands, and is not very efficient. Logs for the Velero server itself are accessed via a kubectl logs command, while information on specific backups or restores are accessed via a Velero subcommand. Restic logs are even more complicated to retrieve, since one must gather logs for every instance of the daemonset, and there’s currently no good mechanism to locate which node a particular restic backup ran against. +A dedicated subcommand can lower this effort and reduce back-and-forth between user and developer for collecting the logs. + + +## Goals +- Enable efficient log collection for Velero and associated components, like plugins and restic. + +## Non Goals +- Collecting logs for components that do not belong to velero such as storage service. +- Automated log analysis. + +## High-Level Design +With the introduction of the new command `velero debug`, the command would download all of the following information: +- velero deployment logs +- restic DaemonSet logs +- plugin logs +- All the resources in the group `velero.io` that are created such as: + - Backup + - Restore + - BackupStorageLocation + - PodVolumeBackup + - PodVolumeRestore + - *etc ...* +- Log of the backup and restore, if specified in the param + +A project called `crash-diagnostics` (or `crashd`) (https://github.com/vmware-tanzu/crash-diagnostics) implements the Kubernetes API queries and provides Starlark scripting language to abstract details, and collect the information into a local copy. It can be used as a standalone CLI executing a Starlark script file. +With the capabilities of embedding files in Go 1.16, we can define a Starlark script gathering the necessary information, embed the script at build time, then the velero debug command will invoke `crashd`, passing in the script’s text contents. + +## Detailed Design +### Triggering the script +The Starlark script to be called by crashd: + +```python +def capture_backup_logs(cmd, namespace): + if args.backup: + log("Collecting log and information for backup: {}".format(args.backup)) + backupDescCmd = "{} --namespace={} backup describe {} --details".format(cmd, namespace, args.backup) + capture_local(cmd=backupDescCmd, file_name="backup_describe_{}.txt".format(args.backup)) + backupLogsCmd = "{} --namespace={} backup logs {}".format(cmd, namespace, args.backup) + capture_local(cmd=backupLogsCmd, file_name="backup_{}.log".format(args.backup)) +def capture_restore_logs(cmd, namespace): + if args.restore: + log("Collecting log and information for restore: {}".format(args.restore)) + restoreDescCmd = "{} --namespace={} restore describe {} --details".format(cmd, namespace, args.restore) + capture_local(cmd=restoreDescCmd, file_name="restore_describe_{}.txt".format(args.restore)) + restoreLogsCmd = "{} --namespace={} restore logs {}".format(cmd, namespace, args.restore) + capture_local(cmd=restoreLogsCmd, file_name="restore_{}.log".format(args.restore)) + +ns = args.namespace if args.namespace else "velero" +output = args.output if args.output else "bundle.tar.gz" +cmd = args.cmd if args.cmd else "velero" +# Working dir for writing during script execution +crshd = crashd_config(workdir="./velero-bundle") +set_defaults(kube_config(path=args.kubeconfig, cluster_context=args.kubecontext)) +log("Collecting velero resources in namespace: {}". format(ns)) +kube_capture(what="objects", namespaces=[ns], groups=['velero.io']) +capture_local(cmd="{} version -n {}".format(cmd, ns), file_name="version.txt") +log("Collecting velero deployment logs in namespace: {}". format(ns)) +kube_capture(what="logs", namespaces=[ns]) +capture_backup_logs(cmd, ns) +capture_restore_logs(cmd, ns) +archive(output_file=output, source_paths=[crshd.workdir]) +log("Generated debug information bundle: {}".format(output)) +``` +The sample command to trigger the script via crashd: +```shell +./crashd run ./velero.cshd --args +'backup=harbor-backup-2nd,namespace=velero,basedir=,restore=,kubeconfig=/home/.kube/minikube-250-224/config,output=' +``` +To trigger the script in `velero debug`, in the package `pkg/cmd/cli/debug` a struct `option` will be introduced +```go +type option struct { + // currCmd the velero command + currCmd string + // workdir for crashd will be $baseDir/velero-debug + baseDir string + // the namespace where velero server is installed + namespace string + // the absolute path for the log bundle to be generated + outputPath string + // the absolute path for the kubeconfig file that will be read by crashd for calling K8S API + kubeconfigPath string + // the kubecontext to be used for calling K8S API + kubeContext string + // optional, the name of the backup resource whose log will be packaged into the debug bundle + backup string + // optional, the name of the restore resource whose log will be packaged into the debug bundle + restore string + // optional, it controls whether to print the debug log messages when calling crashd + verbose bool +} +``` +The code will consolidate the input parameters and execution context of the `velero` CLI to form the option struct, which can be transformed into the `argsMap` that can be used when calling the func `exec.Execute` in `crashd`: +https://github.com/vmware-tanzu/crash-diagnostics/blob/v0.3.4/exec/executor.go#L17 + +## Alternatives Considered +The collection could be done via the kubernetes client-go API, but such integration is not necessarily trivial to implement, therefore, `crashd` is preferred approach + +## Security Considerations +- The starlark script will be embedded into the velero binary, and the byte slice will be passed to the `exec.Execute` func directly, so there’s little risk that the script will be modified before being executed. + +## Compatibility +As the `crashd` project evolves the behavior of the internal functions used in the Starlark script may change. We’ll ensure the correctness of the script via regular E2E tests. + + +## Implementation +1. Bump up to use Go v1.16 to compile velero +2. Embed the starlark script +3. Implement the `velero debug` sub-command to call the script +4. Add E2E test case + +## Open Questions +- **Command dependencies:** In the Starlark script, for collecting version info and backup logs, it calls the `velero backup logs` and `velero version`, which makes the call stack like velero debug -> crashd -> velero xxx. We need to make sure this works under different PATH settings. +- **Progress and error handling:** The log collection may take a relatively long time, log messages should be printed to indicate the progress when different items are being downloaded and packaged. Additionally, when an error happens, `crashd` may omit some errors, so before the script is executed we'll do some validation and make sure the `debug` command fail early if some parameters are incorrect. diff --git a/design/velero-debug.md b/design/velero-debug.md deleted file mode 100644 index 6b2454c22..000000000 --- a/design/velero-debug.md +++ /dev/null @@ -1,120 +0,0 @@ -# `velero debug` command for gathering troubleshooting information - -## Abstract -To simplify the communication between velero users and developers, this document proposes the `velero debug` command to generate a tarball including the logs needed for debugging. - -Github issue: https://github.com/vmware-tanzu/velero/issues/675 - -## Background -Gathering information to troubleshoot a Velero deployment is currently spread across multiple commands, and is not very efficient. Logs for the Velero server itself are accessed via a kubectl logs command, while information on specific backups or restores are accessed via a Velero subcommand. Restic logs are even more complicated to retrieve, since one must gather logs for every instance of the daemonset, and there’s currently no good mechanism to locate which node a particular restic backup ran against. -A dedicated subcommand can lower this effort and reduce back-and-forth between user and developer for collecting the logs. - - -## Goals -- Enable efficient log collection for Velero and associated components, like plugins and restic. - -## Non Goals -- Collecting logs for components that do not belong to velero such as storage service. -- Automated log analysis. - -## High-Level Design -With the introduction of the new command `velero debug`, the command would download all of the following information: -- velero deployment logs -- restic DaemonSet logs -- Plugin logs - need clarification for vSphere plugin see open quetions -- Resource and log of the backup and restore, if specified in the param -- Resources: - - BackupStorageLocation - - PodVolumeBackups - - PodVolumeRestores - -A project called `crash-diagnostics` (or `crashd`) (https://github.com/vmware-tanzu/crash-diagnostics) implements the Kubernetes API queries and provides Starlark scripting language to abstract details, and collect the information into a local copy. It can be used as a standalone CLI executing a Starlark script file. -With the capabilities of embedding files in Go 1.16, we can define a Starlark script gathering the necessary information, embed the script at build time, then the velero debug command will invoke `crashd`, passing in the script’s text contents. - -## Detailed Design -### Triggering the script -The Starlark script to be called by crashd: - -```python -def capture_backup_logs(): - if args.backup: - kube_capture(what="objects", kinds=['backups'], names=[args.backup]) - backupLogsCmd = "velero backup logs {}".format(args.backup) - capture_local(cmd=backupLogsCmd) -def capture_restore_logs(): - if args.restore: - kube_capture(what="objects", kinds=['restores'], names=[args.restore]) - restoreLogsCmd = "velero restore logs {}".format(args.restore) - capture_local(cmd=restoreLogsCmd) - -ns = args.namespace if args.namespace else "velero" -basedir = args.basedir if args.basedir else os.home -output = args.output if args.output else "bundle.tar.gz" -# Working dir for writing during script execution -crshd = crashd_config(workdir="{0}/velero-bundle".format(basedir)) -set_defaults(kube_config(path=args.kubeconfig)) -capture_local(cmd="velero version -n {}".format(ns)) -capture_backup_logs() -capture_restore_logs() -kube_capture(what="logs", namespaces=[ns]) -kube_capture(what="objects", namespaces=[ns], kinds=['backupstoragelocations', 'podvolumebackups', 'podvolumerestores']) -archive(output_file=output, source_paths=[crshd.workdir]) -``` -The sample command to trigger the script via crashd: -```shell -./crashd run ./velero.cshd --args -'backup=harbor-backup-2nd,namespace=velero,basedir=,restore=,kubeconfig=/home/.kube/minikube-250-224/config,output=' -``` -To trigger the script in `velero debug`, in the package `pkg/cmd/cli/debug` a struct `option` will be introduced -```go -type option struct { - // workdir for crashd will be $baseDir/tmp/crashd - baseDir string - // the namespace where velero server is installed - namespace string - // the absolute path for the log bundle to be generated - outputPath string - // the absolute path for the kubeconfig file that will be read by crashd for calling K8S API - kubeconfigPath string - // optional, the name of the backup resource whose log will be packaged into the debug bundle - backup string - // optional, the name of the restore resource whose log will be packaged into the debug bundle - restore string -} -``` -The code will consolidate the input parameters and execution context of the `velero` CLI to form the option struct, which can be transformed into the `args` string for `crashd` -### kubeconfig -When it comes to accessing the API of k8s, `crashd` has a limitation that it can only accept a path of kubeconfig file, without customizing the `context`, and it does not honor the environment variables such as `KUBECONFIG`. `velero` does honor the environment variables and allow user to customize the path to kubeconfig and the `context` -There are two ways to make crashd have consistent behavior as velero in terms of getting the kube configuration: -1. Modify crashd to make it honor the environment variable and allow user to set context while calling k8s APIs. This is a preferred approach and it does make `crashd` better, but it may take longer time because we need to convince the maintainers of `crashd`, and double check the change will not break their current use cases. - There are 2 issues opened: - https://github.com/vmware-tanzu/crash-diagnostics/issues/208 - https://github.com/vmware-tanzu/crash-diagnostics/issues/122 - I'll try to contact the maintainers of `crashd` to see the feasibility for velero v1.7 -2. Before calling the `crashd` script velero CLI will use `client-go` to generate a temp `kubeconfig` file honoring the environment variable and global flags, and pass it to crashd. Although there’s no permission elevation and the temp file will be removed, there’s still some security concern because the temp file is accessible by other programs before it’s deleted, or it may not be deleted if an error happens. - -Therefore, we should consider `option 1` the better choice, and see `option 2` as the backup. - -## Alternatives Considered -The collection could be done via the kubernetes client-go API, but such integration is not necessarily trivial to implement, therefore, `crashd` is preferred approach - - -## Security Considerations -- The current released version of `crashd` depends on `client-go v0.19.0` which has a known CVE, we need to make sure that when it’s compiled into velero it uses the version that has the CVE fixed. We should write a PR or push crashd maintainer to fix the CVE-2021-3121 in 0.19.0 -- The starlark script will be embedded into the velero binary, so there’s little risk that the script will be modified before being called. -- There may be minor security issues if we choose to create a temp `kubeconfig` file for `crashd` and remove it afterwards. If we have to choose this option, we need to review it with security experts to better understand the risks. - -## Compatibility -As the `crashd` project evolves the behavior of the internal functions used in the Starlark script may change. We’ll ensure the correctness of the script via regular E2E tests. - - -## Implementation -1. Bump up to use Go v1.16 to compile velero -2. Embed the starlark script -3. Implement the `velero debug` sub-command to call the script -4. Add E2E test case - -## Open Questions -- **Log collection for vsphere plugin:** Per the design of vsphere plugin: https://github.com/vmware-tanzu/velero-plugin-for-vsphere#architecture when user backup resource on a guest cluster the code in component in the supervisor cluster may be called. Per discussion in v1.7 we will only support collecting logs of process running in one k8s cluster. In terms of implementation, we will do investigate the possibility to call extra script in crashd and ask vsphere plugin developer to provide a script to do the log collection, but the details remain TBD. -- **Command dependencies:** In the Starlark script, for collecting version info and backup logs, it calls the `velero backup logs` and `velero version`, which makes the call stack like velero debug -> crashd -> velero xxx. We need to make sure this works under different PATH settings. -- **Progress and error handling:** The log collection may take a relatively long time, log messages should be printed to indicate the progress when different items are being downloaded and packaged. Additionally, when an error happens, we need to double check if it’s omitted by crashd. From 48cac824b253c3cf7cc1ce54cb5da664bd091e87 Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Mon, 25 Oct 2021 10:58:42 +0800 Subject: [PATCH 032/136] Add daniel to contributor list Also tweaks the roles in maintainers.md Signed-off-by: Daniel Jiang --- MAINTAINERS.md | 3 ++- ...smith-uchida.md => 00-dave-smith-uchida.md} | 2 +- site/content/contributors/01-daniel-jiang.md | 7 +++++++ .../{06-wenkai-yin.md => 02-wenkai-yin.md} | 0 site/static/img/contributors/daniel-jiang.png | Bin 0 -> 697117 bytes 5 files changed, 10 insertions(+), 2 deletions(-) rename site/content/contributors/{01-dave-smith-uchida.md => 00-dave-smith-uchida.md} (88%) create mode 100644 site/content/contributors/01-daniel-jiang.md rename site/content/contributors/{06-wenkai-yin.md => 02-wenkai-yin.md} (100%) create mode 100644 site/static/img/contributors/daniel-jiang.png diff --git a/MAINTAINERS.md b/MAINTAINERS.md index c2680edc7..56909a488 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -26,7 +26,8 @@ | Feature Area | Lead | | ----------------------------- | :---------------------: | -| Technical Lead | Dave Smith-Uchida (dsu-igeek) | +| Architect | Dave Smith-Uchida (dsu-igeek) | +| Technical Lead | Daniel Jiang (reasonerjt) | | Kubernetes CSI Liaison | | | Deployment | JenTing Hsiao (jenting) | | Community Management | Jonas Rosland (jonasrosland) | diff --git a/site/content/contributors/01-dave-smith-uchida.md b/site/content/contributors/00-dave-smith-uchida.md similarity index 88% rename from site/content/contributors/01-dave-smith-uchida.md rename to site/content/contributors/00-dave-smith-uchida.md index 15e9ea004..7f83b13ad 100644 --- a/site/content/contributors/01-dave-smith-uchida.md +++ b/site/content/contributors/00-dave-smith-uchida.md @@ -4,5 +4,5 @@ last_name: Smith-Uchida image: /img/contributors/dave.png github_handle: dsu-igeek --- -Technical Lead +Architect diff --git a/site/content/contributors/01-daniel-jiang.md b/site/content/contributors/01-daniel-jiang.md new file mode 100644 index 000000000..28cd7883c --- /dev/null +++ b/site/content/contributors/01-daniel-jiang.md @@ -0,0 +1,7 @@ +--- +first_name: Daniel +last_name: Jiang +image: /img/contributors/daniel-jiang.png +github_handle: reasonerjt +--- +Technical Lead \ No newline at end of file diff --git a/site/content/contributors/06-wenkai-yin.md b/site/content/contributors/02-wenkai-yin.md similarity index 100% rename from site/content/contributors/06-wenkai-yin.md rename to site/content/contributors/02-wenkai-yin.md diff --git a/site/static/img/contributors/daniel-jiang.png b/site/static/img/contributors/daniel-jiang.png new file mode 100644 index 0000000000000000000000000000000000000000..7975a0094211387d4fe1abf8cbcb3b707ae1e801 GIT binary patch literal 697117 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 BDZ860=CLU(XkXxJWc(Q@7;>VBE- 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

      <^{+dJHScAZ&%O4=Z@NQa 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 z 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 literal 0 HcmV?d00001 From 163e96b62d811ea1199aebc4c30c91d9d3202b63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Wed, 27 Oct 2021 07:31:58 +0800 Subject: [PATCH 033/136] Don't create a backup immediately after creating a schedule (#4281) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't create a backup immediately after creating a schedule Fixes #1980 Signed-off-by: Wenkai Yin(尹文开) --- changelogs/unreleased/4281-ywk253100 | 1 + pkg/controller/schedule_controller.go | 4 ++-- pkg/controller/schedule_controller_test.go | 9 ++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 changelogs/unreleased/4281-ywk253100 diff --git a/changelogs/unreleased/4281-ywk253100 b/changelogs/unreleased/4281-ywk253100 new file mode 100644 index 000000000..29ff20281 --- /dev/null +++ b/changelogs/unreleased/4281-ywk253100 @@ -0,0 +1 @@ +Don't create a backup immediately after creating a schedule \ No newline at end of file diff --git a/pkg/controller/schedule_controller.go b/pkg/controller/schedule_controller.go index 1d114494d..e5f48814f 100644 --- a/pkg/controller/schedule_controller.go +++ b/pkg/controller/schedule_controller.go @@ -276,11 +276,11 @@ func (c *scheduleController) submitBackupIfDue(item *api.Schedule, cronSchedule } func getNextRunTime(schedule *api.Schedule, cronSchedule cron.Schedule, asOf time.Time) (bool, time.Time) { - // get the latest run time (if the schedule hasn't run yet, this will be the zero value which will trigger - // an immediate backup) var lastBackupTime time.Time if schedule.Status.LastBackup != nil { lastBackupTime = schedule.Status.LastBackup.Time + } else { + lastBackupTime = schedule.CreationTimestamp.Time } nextRunTime := cronSchedule.Next(lastBackupTime) diff --git a/pkg/controller/schedule_controller_test.go b/pkg/controller/schedule_controller_test.go index 2dfff7c06..5900e673e 100644 --- a/pkg/controller/schedule_controller_test.go +++ b/pkg/controller/schedule_controller_test.go @@ -274,7 +274,7 @@ func TestGetNextRunTime(t *testing.T) { { name: "first run", schedule: defaultSchedule(), - expectedDue: true, + expectedDue: false, expectedNextRunTimeOffset: "5m", }, { @@ -319,6 +319,9 @@ func TestGetNextRunTime(t *testing.T) { require.NoError(t, err, "unable to parse test.lastRanOffset: %v", err) test.schedule.Status.LastBackup = &metav1.Time{Time: testClock.Now().Add(-offsetDuration)} + test.schedule.CreationTimestamp = *test.schedule.Status.LastBackup + } else { + test.schedule.CreationTimestamp = metav1.Time{Time: testClock.Now()} } nextRunTimeOffset, err := time.ParseDuration(test.expectedNextRunTimeOffset) @@ -326,11 +329,11 @@ func TestGetNextRunTime(t *testing.T) { panic(err) } - // calculate expected next run time (if the schedule hasn't run yet, this - // will be the zero value which will trigger an immediate backup) var baseTime time.Time if test.lastRanOffset != "" { baseTime = test.schedule.Status.LastBackup.Time + } else { + baseTime = test.schedule.CreationTimestamp.Time } expectedNextRunTime := baseTime.Add(nextRunTimeOffset) From 51307130a2e6dc6da2365f522ebbf2a6da831a29 Mon Sep 17 00:00:00 2001 From: "F. Gold" Date: Thu, 28 Oct 2021 15:37:00 -0700 Subject: [PATCH 034/136] Validation allows empty string namespace Signed-off-by: F. Gold --- pkg/util/collections/includes_excludes.go | 6 ++++++ pkg/util/collections/includes_excludes_test.go | 15 ++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/pkg/util/collections/includes_excludes.go b/pkg/util/collections/includes_excludes.go index 1f2128c71..231689be0 100644 --- a/pkg/util/collections/includes_excludes.go +++ b/pkg/util/collections/includes_excludes.go @@ -180,6 +180,12 @@ func ValidateNamespaceIncludesExcludes(includesList, excludesList []string) []er func validateNamespaceName(ns string) []error { var errs []error + // Velero interprets empty string as "no namespace", so allow it even though + // it is not a valid Kubernetes name. + if ns == "" { + return nil + } + // Kubernetes does not allow asterisks in namespaces but Velero uses them as // wildcards. Replace asterisks with an arbitrary letter to pass Kubernetes // validation. diff --git a/pkg/util/collections/includes_excludes_test.go b/pkg/util/collections/includes_excludes_test.go index 0ba885bd2..672a309d2 100644 --- a/pkg/util/collections/includes_excludes_test.go +++ b/pkg/util/collections/includes_excludes_test.go @@ -207,11 +207,6 @@ func TestValidateNamespaceIncludesExcludes(t *testing.T) { includes: []string{}, wantErr: false, }, - { - name: "empty string is invalid", - includes: []string{""}, - wantErr: true, - }, { name: "asterisk by itself is valid", includes: []string{"*"}, @@ -240,6 +235,16 @@ func TestValidateNamespaceIncludesExcludes(t *testing.T) { includes: []string{}, wantErr: false, }, + { + name: "empty string includes is valid (includes nothing)", + includes: []string{""}, + wantErr: false, + }, + { + name: "empty string excludes is valid (excludes nothing)", + excludes: []string{""}, + wantErr: false, + }, { name: "include everything using asterisk is valid", includes: []string{"*"}, From 4a792c71ef276913b35283d7bcc1b27db3c958e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Thu, 4 Nov 2021 00:47:49 +0800 Subject: [PATCH 035/136] Correct the environment variable for azure credential file (#4313) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Correct the environment variable for azure credential file Signed-off-by: Wenkai Yin(尹文开) --- tilt-resources/examples/deployment.yaml | 2 +- tilt-resources/examples/restic.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tilt-resources/examples/deployment.yaml b/tilt-resources/examples/deployment.yaml index 292966a75..b5bf4fdf6 100644 --- a/tilt-resources/examples/deployment.yaml +++ b/tilt-resources/examples/deployment.yaml @@ -39,7 +39,7 @@ spec: value: /plugins - name: AWS_SHARED_CREDENTIALS_FILE value: /credentials/cloud - - name: AZURE_SHARED_CREDENTIALS_FILE + - name: AZURE_CREDENTIALS_FILE value: /credentials/cloud - name: GOOGLE_APPLICATION_CREDENTIALS value: /credentials/cloud diff --git a/tilt-resources/examples/restic.yaml b/tilt-resources/examples/restic.yaml index ab8ad0d16..86d8a6f06 100644 --- a/tilt-resources/examples/restic.yaml +++ b/tilt-resources/examples/restic.yaml @@ -37,7 +37,7 @@ spec: value: /scratch - name: AWS_SHARED_CREDENTIALS_FILE value: /credentials/cloud - - name: AZURE_SHARED_CREDENTIALS_FILE + - name: AZURE_CREDENTIALS_FILE value: /credentials/cloud - name: GOOGLE_APPLICATION_CREDENTIALS value: /credentials/cloud From 9f0ea22c608dfa04f44e8ffdd7516d13a34ba0d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Thu, 4 Nov 2021 04:30:26 +0800 Subject: [PATCH 036/136] Fix CVE-2020-29652 and CVE-2020-26160 (#4274) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump up restic to v0.12.1 to fix CVE-2020-26160. Bump up module "github.com/vmware-tanzu/crash-diagnostics" to v0.3.7 to fix CVE-2020-29652. The "github.com/vmware-tanzu/crash-diagnostics" updates client-go to v0.22.2 which introduces several break changes, this commit updates the related codes as well Signed-off-by: Wenkai Yin(尹文开) --- .github/workflows/e2e-test-kind.yaml | 5 + Makefile | 4 +- changelogs/unreleased/4274-ywk253100 | 1 + config/crd/v1/bases/velero.io_restores.yaml | 139 +++- config/crd/v1/crds/crds.go | 2 +- .../crd/v1beta1/bases/velero.io_restores.yaml | 151 +++- config/crd/v1beta1/crds/crds.go | 2 +- go.mod | 47 +- go.sum | 685 +++++++++++------- hack/test.sh | 7 +- pkg/controller/backup_sync_controller.go | 2 +- pkg/plugin/clientmgmt/logrus_adapter.go | 35 + pkg/test/fake_namespace.go | 11 + 13 files changed, 766 insertions(+), 325 deletions(-) create mode 100644 changelogs/unreleased/4274-ywk253100 diff --git a/.github/workflows/e2e-test-kind.yaml b/.github/workflows/e2e-test-kind.yaml index 02f667f10..9d0770e9d 100644 --- a/.github/workflows/e2e-test-kind.yaml +++ b/.github/workflows/e2e-test-kind.yaml @@ -71,6 +71,11 @@ jobs: - 1.22.0 fail-fast: false steps: + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.16 + id: go - name: Check out the code uses: actions/checkout@v2 - name: Install MinIO diff --git a/Makefile b/Makefile index 053e0331e..0a8e4ed31 100644 --- a/Makefile +++ b/Makefile @@ -81,8 +81,8 @@ buildx not enabled, refusing to run this recipe see: https://velero.io/docs/main/build-from-source/#making-images-and-updating-velero for more info endef -# The version of restic binary to be downloaded for power architecture -RESTIC_VERSION ?= 0.12.0 +# The version of restic binary to be downloaded +RESTIC_VERSION ?= 0.12.1 CLI_PLATFORMS ?= linux-amd64 linux-arm linux-arm64 darwin-amd64 windows-amd64 linux-ppc64le BUILDX_PLATFORMS ?= $(subst -,/,$(ARCH)) diff --git a/changelogs/unreleased/4274-ywk253100 b/changelogs/unreleased/4274-ywk253100 new file mode 100644 index 000000000..19b1e6b32 --- /dev/null +++ b/changelogs/unreleased/4274-ywk253100 @@ -0,0 +1 @@ +Fix CVE-2020-29652 and CVE-2020-26160 \ No newline at end of file diff --git a/config/crd/v1/bases/velero.io_restores.yaml b/config/crd/v1/bases/velero.io_restores.yaml index 8335c2a55..56192b814 100644 --- a/config/crd/v1/bases/velero.io_restores.yaml +++ b/config/crd/v1/bases/velero.io_restores.yaml @@ -205,8 +205,10 @@ spec: are expanded using the container''s environment. If a variable cannot be resolved, the reference in the input string will be - unchanged. The $(VAR_NAME) syntax can - be escaped with a double $$, ie: $$(VAR_NAME). + unchanged. Double $$ are reduced to a + single $, which allows for escaping the + $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" + will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: @@ -221,12 +223,14 @@ spec: references $(VAR_NAME) are expanded using the container''s environment. If a variable cannot be resolved, the reference in the - input string will be unchanged. The $(VAR_NAME) - syntax can be escaped with a double $$, - ie: $$(VAR_NAME). Escaped references will - never be expanded, regardless of whether - the variable exists or not. Cannot be - updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' + input string will be unchanged. Double + $$ are reduced to a single $, which allows + for escaping the $(VAR_NAME) syntax: i.e. + "$$(VAR_NAME)" will produce the string + literal "$(VAR_NAME)". Escaped references + will never be expanded, regardless of + whether the variable exists or not. Cannot + be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array @@ -244,17 +248,19 @@ spec: value: description: 'Variable references $(VAR_NAME) are expanded using the - previous defined environment variables + previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. - The $(VAR_NAME) syntax can be escaped - with a double $$, ie: $$(VAR_NAME). - Escaped references will never be - expanded, regardless of whether - the variable exists or not. Defaults - to "".' + Double $$ are reduced to a single + $, which allows for escaping the + $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" + will produce the string literal + "$(VAR_NAME)". Escaped references + will never be expanded, regardless + of whether the variable exists or + not. Defaults to "".' type: string valueFrom: description: Source for the environment @@ -804,6 +810,30 @@ spec: required: - port type: object + terminationGracePeriodSeconds: + description: Optional duration in seconds + the pod needs to terminate gracefully + upon probe failure. The grace period + is the duration in seconds after the + processes running in the pod are sent + a termination signal and the time + when the processes are forcibly halted + with a kill signal. Set this value + longer than the expected cleanup time + for your process. If this value is + nil, the pod's terminationGracePeriodSeconds + will be used. Otherwise, this value + overrides the value provided by the + pod spec. Value must be non-negative + integer. The value zero indicates + stop immediately via the kill signal + (no opportunity to shut down). This + is a beta field and requires enabling + ProbeTerminationGracePeriod feature + gate. Minimum value is 1. spec.terminationGracePeriodSeconds + is used if unset. + format: int64 + type: integer timeoutSeconds: description: 'Number of seconds after which the probe times out. Defaults @@ -1006,6 +1036,30 @@ spec: required: - port type: object + terminationGracePeriodSeconds: + description: Optional duration in seconds + the pod needs to terminate gracefully + upon probe failure. The grace period + is the duration in seconds after the + processes running in the pod are sent + a termination signal and the time + when the processes are forcibly halted + with a kill signal. Set this value + longer than the expected cleanup time + for your process. If this value is + nil, the pod's terminationGracePeriodSeconds + will be used. Otherwise, this value + overrides the value provided by the + pod spec. Value must be non-negative + integer. The value zero indicates + stop immediately via the kill signal + (no opportunity to shut down). This + is a beta field and requires enabling + ProbeTerminationGracePeriod feature + gate. Minimum value is 1. spec.terminationGracePeriodSeconds + is used if unset. + format: int64 + type: integer timeoutSeconds: description: 'Number of seconds after which the probe times out. Defaults @@ -1017,7 +1071,7 @@ spec: resources: description: 'Compute Resources required by this container. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' properties: limits: additionalProperties: @@ -1028,7 +1082,7 @@ spec: x-kubernetes-int-or-string: true description: 'Limits describes the maximum amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -1043,12 +1097,14 @@ spec: a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. - More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ + description: 'SecurityContext defines the + security options the container should + be run with. If set, the fields of SecurityContext + override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: @@ -1217,6 +1273,25 @@ spec: is the name of the GMSA credential spec to use. type: string + hostProcess: + description: HostProcess determines + if a container should be run as + a 'Host Process' container. This + field is alpha-level and will + only be honored by components + that enable the WindowsHostProcessContainers + feature flag. Setting this field + without the feature flag will + result in errors when validating + the Pod. All of a Pod's containers + must have the same effective HostProcess + value (it is not allowed to have + a mix of HostProcess containers + and non-HostProcess containers). In + addition, if HostProcess is true + then HostNetwork must also be + set to true. + type: boolean runAsUserName: description: The UserName in Windows to run the entrypoint of the container @@ -1369,6 +1444,30 @@ spec: required: - port type: object + terminationGracePeriodSeconds: + description: Optional duration in seconds + the pod needs to terminate gracefully + upon probe failure. The grace period + is the duration in seconds after the + processes running in the pod are sent + a termination signal and the time + when the processes are forcibly halted + with a kill signal. Set this value + longer than the expected cleanup time + for your process. If this value is + nil, the pod's terminationGracePeriodSeconds + will be used. Otherwise, this value + overrides the value provided by the + pod spec. Value must be non-negative + integer. The value zero indicates + stop immediately via the kill signal + (no opportunity to shut down). This + is a beta field and requires enabling + ProbeTerminationGracePeriod feature + gate. Minimum value is 1. spec.terminationGracePeriodSeconds + is used if unset. + format: int64 + type: integer timeoutSeconds: description: 'Number of seconds after which the probe times out. Defaults diff --git a/config/crd/v1/crds/crds.go b/config/crd/v1/crds/crds.go index 82f613324..29a5d369b 100644 --- a/config/crd/v1/crds/crds.go +++ b/config/crd/v1/crds/crds.go @@ -36,7 +36,7 @@ var rawCRDs = [][]byte{ []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4YKo#\xb9\x11\xbe\xebW\x14\xbc\ag\x01\xb7\xb4\x8f \bt۱\xb3\x81\x93]\x8f1r\xe62\x98C\xa9Y\xdd͘M2$[\x1a%\xc8\u007f\x0f\x8ad\xeb\xd1jI\xb6\x81\x99\xf4e\xc6d\xb1X\xef\xfa\x8a\x9a\x14E1A+?\x92\xf3\xd2\xe89\xa0\x95\xf4%\x90\xe6\xbf\xfc\xf4\xf9\xcf~*\xcdl\xf5\xe3\xe4Yj1\x87\xdb\xce\a\xd3~ o:W\xd2\x1dUR\xcb \x8d\x9e\xb4\x14P`\xc0\xf9\x04\x00\xb56\x01y\xd9\xf3\x9f\x00\xa5\xd1\xc1\x19\xa5\xc8\x155\xe9\xe9s\xb7\xa4e'\x95 \x17\x99\xf7W\xaf~\x98\xfe<\xfda\x02P:\x8aǟdK>`k\xe7\xa0;\xa5&\x00\x1a[\x9a\x835beT\xd7\xd2\x12\xcb\xe7\xce\xfa\xe9\x8a\x1493\x95f\xe2-\x95|i\xedLg\xe7\xb0\xdbHg\xb3@I\x99G#>F6\xef\"\x9b\xb8\xa3\xa4\x0f\u007f\x1f\xdb\xfdM\xfa\x10)\xac\xea\x1c\xaac!⦗\xba\xee\x14\xba\xa3\xed\t\x80/\x8d\xa59<\xb0\x18\x16K\x12\x13\x80\xac{\x14\xab\xc8ڭ~L\xacʆZL\xf2\x02\x18K\xfa\x97\xc7\xfb\x8f?/\x0e\x96\x01\xac3\x96\\\x90\xbdj\xe9\xdb\xf3\xe8\xde*\x80 _:iC\xb4\xf753LT ؕ\xe4!4\xd4\vE\"\xcb\x00\xa6\x82\xd0H\x0f\x8e\xac#O:9\xf7\x8010\x11j0\xcb\u007fR\x19\xa6\xb0 \xc7l\xc07\xa6S\x82#`E.\x80\xa3\xd2\xd4Z\xfe{\xcb\xdbC0\xf1R\x85\x81\xb2\x85w\x9fԁ\x9cF\x05+T\x1d\xdd\x00j\x01-n\xc0\x11\xdf\x02\x9d\xde\xe3\x17I\xfc\x14~7\x8e@\xea\xca̡\t\xc1\xfa\xf9lV\xcb\xd0Griڶ\xd32lf1(\xe5\xb2\v\xc6\xf9\x99\xa0\x15\xa9\x99\x97u\x81\xaeld\xa02t\x8efhe\x11E\xd71\x9a\xa7\xad\xf8\xce\xe5\xd8\xf7\xd7\a\xb2\x86\r\xfb\xd6\a'u\xbd\xb7\x11\x03\xed\x8c\a8\xd4@z\xc0|4i\xb134/\xb1u>\xfce\xf1\x04\xfd\xd5\xd1\x19C\xebG\xbb\xef\x0e\xfa\x9d\v\xd8`RW\xe4\x92\x13+g\xdaȓ\xb4\xb0F\xea\x10\xff(\x95$=4\xbf\uf5ad\f\xec\xf7\u007fu\xe4\x03\xfbj\n\xb71\xbdaI\xd0Y\x81\x81\xc4\x14\xee5\xdcbK\xea\x16=}u\a\xb0\xa5}\xc1\x86}\x99\v\xf6+Ӑ8Ymo\xa3/\x1f'\xfc5\xa8\t\vK%{\x8f\r\xc8'e%˘\x1aP\x19\a8$\x9f\x1e0\x1eO\\\xfeR\xc5X\x04㰦\xdfLb9$\x1aH\xf6n\xecL/\x1bו\x94Ĕ\x99\x83O\x94GL\x01T\u007fxݐ\xa3xƑ\x0f\xb2\xe4\xe02^\x06\xe36̘9\x90\x98\x1eq8\xe1\x06\xfe\xb4\x11tA\x8f\a#hLl>\n\xa1\xc1\x14\xad\x8f&f\x8d\xeb\xb4>\xbe\x85?\xa3_%\x985\xe2\x82\\\xf9F\x04G\x159Ҝ\x85\xa9pY\x13\xcb[@\xa9\xfblM\x85\x1f\x82\x19\x91l\x99\\@\x02\x86\x01\x01g\x83\x02\xceT\xf5Q\x89\u007fy\xbc\xef+yo\xc4,{8\xbe\xf7\x82}\xf8\xab$)\xf1\x88\xa1y\xc1\xdd\xd7\xf7U\xba,ִ`\x00\xc1J*\xe9\xa0I\x80\xd4>\x10\n0\xd5(G\x06\x12\xc0\x89\xef(\x9f\xb8I\x15,\x97\xca]ka\xdb\x03r\xed\x94\x02\xfe\xb6x\xff0\xfb\xeb\x98\xe9\xb7Z\x00\x96%yf\x84\x81Z\xd2\xe1\x06|W6\x80\x9eՐ\x8eĂw\xa6-jY\x91\x0f\xd3|\a9\xff\xe9\xa7\xcf\xe3\xd6\x03\xf8\xd58\xa0/\xd8ZE7 \x93ŷe\xb9\x0f\x1a\xe9\x939\xb6\x1ca-C#\x87\xcdtk\x01\x0e\xaf\xac\xf6:\xaa\x1b\xf0\x99\xc0du;\x02%\x9fi\x0eW\\~\xf6\xc4\xfc\x0f\xe7\xce\u007f\xafNp\xfdCJ\xed+&\xbaJ\xc2m\xfb\xf0~\xd2\xed\x84L\x99\xe7d]\x93\x8b\xc0e\xec\x8bM\x85K\xf5\xf7`\x1c[@\x9b=\x16\x911{/\x15J\x12GB\u007f\xfa\xe9\xf3I\x89\x0f\xed\x05R\v\xfa\x02?\x81\xd4\xc96ֈ\xef\xa7\xf0\x14\xa3c\xa3\x03~\xe1\x9b\xca\xc6x:eY\xa3ՆunpE\xe0MK\xb0&\xa5\x8a\x84\x83\x04\xacq\xc3V\xe8\x1d\xc7\xf1\x86`х\xb3\xd1ڣ\x9f\xa7\xf7w\xef\xe7I2\x0e\xa8:Vb\ue695d4\xc30&\xf5\xe2\x18\x8dGͼ\xff|\x97\xc2'\x18(\x1b\xd45%}\t\xaa\x8e\xbb\xe3\xf4\xfa-y|\fI\xfao\x04\x9a\f\v\xc7\xff\xad\xb9\xbfP\xb9\x88\xa0_\xa0\xdc\xc3^\x94\x9fU\x8eg\x15\xa7)P\xd4O\x98ҳj%\xd9\xe0gfEn%i=[\x1b\xf7,u]ph\x16)\x06\xfc,\x8e\x1b\xb3\xef\xe2?o\xd6%\x0e\n/U(\x12\u007f\v\xad\xf8\x1e?{\x93R=\x86}y\x1f\xbb^dd5<\xcbi\xb1nd\xd9\xf4\xc3I\xae\xb1'\x92I2\x12\x16\xa94\xa3\xde|\xf5Pf\x83v\x8e%\xda\x14y\x00.P\v\xfe\xbf\x97>\xf0\xfa\x9b,\xd8\xc9\x17\xa5\xef?\xee\xef\xbeM\x80w\xf2M\xb9z\x02\x80\xa7\x18\xb1\xe6^\xb0)+I\xee\x020\xfbp@\xdcC\xc7\x11ĺ\xa5y\x152\fX\x8f@1\x14\">{\xa0z<\v\xd8\xceZ\xe0@\x8d'\xac=\xa0#@hѲ\xe7\x9eiS\xa4\x16oQr\u007f\xe6\x16\x9c1ϒ\x00\xadUr\xb4\x15\xe7F\x9eAh\xc6\xfb\xea\x87\xc4\xe1\x82\xfdӀ3\x06ٳ\x00\t\xdfla{0\xb0\x1cK\xd13\xa0\xf8\xa4\x15y.e\xb4v(b1>@\rhx\xa0\x18,Y#\x06+\x87\x918\xd8L\xfa\xbdh\xaa\f\x18:\xff\x8a\xb92\xd2\xf76MU$d.\x11B\xbfu\xb2,\r\xa3\xd3ç\xb5\xf3\xee\xbd=>\x11\x1fq\x9cH\xc2\x05\xd9r\xcc\xe6([\xa3\xef\xef\x18\x1b\ra\x8f]:\x19\xeb6s#\x11\xa1##\xdb\n\xa5\"\x01\xfd\xdb\xde\xf0\xcc\b\xd7}.K\xaa\xb8\xc8uV\x19\x14\xfd@\x96\xc5\xdb\xc23\x9e\xd7\xe3\xebȵ?ó\xf3$\xe2$?b\x84c\xc8V\x19\xd7b\x98\x83\xc0@\xc5(S\xdd)\x85KEs\b\xae;\xde>S,Z\xf2\x1e\xebK\xa9\xf8{\xa2Jsj>\x02\xb84]\xd8\x0e\xaa\aE\xe1\xda\xe7\x98zݬ<:\x02\x1e\x8632D\xf7\x19\xaa*\x15\xcf\xec\x17\x82݃p\x94jI\xe3\xad\xee-5\x01\xc06\xe8/\x99\xea\x91i\xc6\x12l[\xbd\xcef\x18\u007f\xa4\xbb\xf6\xf8\x96\x02\x1eh=\xb2z\xaf\x1f\x9d\xa9\x1d\xf9\xe3\xc0)\xfa\xf8\x1a\xa9\xe6\x05\xfc\x1a\xb3\xe1U\xfa\xe7\x8b.\x99 \x93AcT\x9f\xcc&\xa0\x02ݵKrl\x87\xe5&\x90?,\xe7c\xaf\x12q\x9aٙq\xef|\xef\xbf\xc4)\x0fh%\xea\xf8z\xc8\xd9\x15\f\b\xe9\xad\xc2\xcd\b\xe3^\x91\x88X8\xb9\xb8\x04\xec\xe2\xb9OjK.n\xbd\xf65%\xcatg\xf4\t|\xdd\xe7\xb3\xd4\xe1O\u007f<\x83o\xa4\x0eT\x0f\x9aC\xdegs\xbe\xe3[\xbe\xce\rgZ\xb7\xd7h}c\xc2\xfd݅(Xl\t\xfbl\xd8\x01\xa5X\xfb\xe2\xdbf&ʡ0\xe6\xaammyU\xaa\xfa\x80.\xbc\xb4\x15-\x0e\x88/t\xa1\xc8y\xbc\a-Ȣ\xe3L\x8f/\xe1\xb7\xc3ߚn\xc0\xcb\xf8\xbc\xc7x+\x01\xb04|{nN\f,\x8d\xa3\x91\x92\t\xc7m堉\x1c\x8a\xff-\xfb\xc7h\x9c\x1c-F\xc9\xc5\x1e\xef\xfcD\x9cWv\x18\x06K\x9e\x0eH<\f\u007fO\xbbJ\xaf7\xfd\x0fd\xf1\xcf\xd2\xe8\x04\x95\xfd\x1c>}\x9e@~6\xfe\xd8\xff\xeeŋ\xff\v\x00\x00\xff\xff~\xe4\xff\xab\x84\x1c\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4YKo\xe3\xc8\x11\xbe\xebW\x14\xbc\ag\x81!\xb5;\x1b\x04\x81n\xbbv6P\xb2\xeb1F\xce\\\x06sh\xb1\x8bb\xc5d7\xd3]\x94\xac\x04\xf9\xefAu\xb3\xf5\xa4\x1e60\x13^l\xf5\xa3\xfa\xab\xaf\x1e]E\x8e\xb2,\x1b\xa9\x96>\xa1\xf3d\xcd\x04TK\xf8\xc2h\xe4\x97ϟ\xff\xecs\xb2\xe3口g2z\x02w\x9dg\xdb|Do;W\xe0=\x96d\x88ɚQ\x83\xac\xb4b5\x19\x01(c,+\x19\xf6\xf2\x13\xa0\xb0\x86\x9d\xadkt\xd9\x02M\xfe\xdc\xcdq\xdeQ\xad\xd1\x05\xe1\xe9\xe8\xe5\x0f\xf9O\xf9\x0f#\x80\xc2a\xd8\xfeD\rzVM;\x01\xd3\xd5\xf5\b\xc0\xa8\x06'\xd0Z\xbd\xb4uנC\xcf֡ϗX\xa3\xb39ّo\xb1\x90S\x17\xcev\xed\x04\xb6\x13qs\x8f(j\xf3h\xf5\xa7 \xe7c\x94\x13\xa6j\xf2\xfc\xf7\xc1\xe9\xdf\xc8sX\xd2֝S\xf5\x00\x8e0\xeb\xc9,\xbaZ\xb9\xe3\xf9\x11\x80/l\x8b\x13x\x10(\xad*P\x8f\x00z\x02\x02\xb4\xacWq\xf9c\x94UTب\x88\x19\xc0\xb6h~~\x9c~\xfai\xb67\f\xd0:ۢcJ\xea\xc5gǬ;\xa3\x00\x1a}\xe1\xa8\xe5@\xfa\xad\b\x8c\xab@\x8b=\xd1\x03W\x98@\xa1\xee1\x80-\x81+\xf2\xe0\xb0u\xe8\xd1D\v\xef\t\x06Y\xa4\f\xd8\xf9?\xb1\xe0\x1cf\xe8D\f\xf8\xcav\xb5\x167X\xa2cpX\u0605\xa1\u007fod{`\x1b\x0e\xad\x15c\xcf\xf1\xf6!\xc3茪a\xa9\xea\x0e߁2\x1a\x1a\xb5\x06\x87r\ntfG^X\xe2s\xf8\xdd:\x042\xa5\x9d@\xc5\xdc\xfa\xc9x\xbc N\xee\\ئ\xe9\f\xf1z\x1c<\x93\xe6\x1d[\xe7\xc7\x1a\x97X\x8f=-2劊\x18\v\xee\x1c\x8eUKY\x80n\x82K\xe7\x8d\xfe\xce\xf5\x01\xe0o\xf7\xb0\xf2Zl\xebّY\xecL\x04g;c\x01\xf16 \x0f\xaa\xdf\x1a\xb5\xd8\x12-C\xc2\xceǿ̞ \x1d\x1d\x8cq\xc8~\xe0}\xbb\xd1oM \x84\x91)\xd1E#\x96\xce6A&\x1a\xddZ2\x1c~\x145\xa19\xa4\xdfw\xf3\x86X\xec\xfe\xaf\x0e=\x8b\xadr\xb8\v1\x0es\x84\xaeՊQ\xe705p\xa7\x1a\xac\xef\x94ǯn\x00a\xdagB\xecu&\xd8MO\x87\x8b#k;\x13)\x85\x9c\xb0\xd7aZ\x98\xb5X\x88\xf9\x84A\xd9J%\x15!6\xa0\xb4\x0e\xd4\xd1\xfa|O\xf4p\xe8\xca3W\xc5s\xd7\xce\xd8:\xb5\xc0\xdfl\x94y\xb8\xe8\x00\xdb/C{\x128\xc9,1\x8c\xb1\x17\x0e>\xae<\x12\nP\xa7ͫ\n\x1d\x86=\x92Ũ\x10\xf7\xb2\x9eغ\xb5\b\x0e*\xe9\xfcH\xc2\tC\x04\x95\xad\xbe\xa0ƣ\xed\x03\xc2a\x89\x0e\x8d\xb8{\xcc\x10\xad\ry\x84\x15\x99\x14\x161\xc5\x02\xdb\x01-\xe6\x11\xf50\xc4\xd3\xd4Ù\xec9\b\xf8\xe7\xc7iʘ\x89\xe1\x1e:\x1f\x9f{\x81\x1eyJ\xc2Z?*\xae\xae8\xfbvZ\xc6\xc3B\xee`\v\nZ\xc2\x02\xf7\x921\x90\xf1\x8cJ\x83-\a%ʭ\r\x12`\x0e\xfb\x1d\xefb\xa6\xe8S\xd26\x85\v\xf5\xa0$G\x91\x86\xbf\xcd><\x8c\xff:\xc4\xfcF\vPE\x81^\x04)\xc6\x06\r\xbf\x03\xdf\x15\x15(/j\x90C=\x93\x99\xbcQ\x86J\xf4\x9c\xf7g\xa0\xf3\x9f\xdf\u007f\x19f\x0f\xe0W\xeb\x00_T\xd3\xd6\xf8\x0e(2\xbeI\u007f\xc9g\xc8G:6\x12aE\\\xd1\u1975a@\xbc\xabW{\x15\xd4e\xf5\x8c`{u;\x84\x9a\x9eq\x027\x12\xe5;0\xff#\x81\xf5ߛ\x13R\xff\x10\x03\xe8F\x16\xddDp\x9b\xfbn7\"\xb7 \xb9R\f\xech\xb1@\x17\n\x84\xa1'$oI\x89߃u\u0080\xb1;\"\x82`\xb1^\xccG\xa8\x8f@\u007f~\xff\xe5$\xe2}\xbe\x80\x8c\xc6\x17x\x0fd\"7\xad\xd5\xdf\xe7\xf0\x14\xbccmX\xbd\xc8IEe=\x9eb֚z-:Wj\x89\xe0m\x83\xb0º\xceb\xbd\xa1a\xa5\xd6\xc2B2\x9c\xf8\x9b\x82V9>뭩\xcax\xfap\xffa\x12\x91\x89C-B\xbe\x93۩$\xa9\x1a\xa4\\\x88w^\xf0ƣK3=\xbe\x8b\xee\xc3\x16\x8aJ\x99\x05F}\x11\xcaNn\xa1\xfc\xf6-q||\xf5\xa7g\xa0\x048L\x1c\xff\xb7K\xf4J\xe5B\xa5z\x85r\x0f;^~V9i\f\x9cAƠ\x9f\xb6\x85\x17\xd5\nlُ\xed\x12ݒp5^Y\xf7Lf\x91\x89kf\xd1\a\xfc8\x94\xf6\xe3\xef\u009f7\xeb\x12\n\xf2k\x15\n\x8b\xbf\x85Vr\x8e\x1f\xbfI\xa9T+^\u007f\x8f\xdd\xce\xfa\x02\xe6p\xaf\x84Ū\xa2\xa2JM@\x9fcO\x04\x13IũcjVf\xfd\xd5]Y\b\xed\x9c Zg}\xb7\x99)\xa3\xe5\u007fO\x9ee\xfcM\fvtU\xf8\xfecz\xffm\x1c\xbc\xa37\xc5\xea\x89B7\xfaHk\xa7Z\xa8,\t݅\xba\xec\xe3\xde\xe2TW\x0eԅ\x9b5\xaf*\f\xbdQ\xad\xaf,O\xef/\xe0\x98m\x16&\f[\x03\xf4\xe5`\x92%\x8e{\xb6\n<\x83'\x8a\xba\x80%\xd6\xf6C5v\x8f$\xd6\x1caD\xeaڀg8X_\x8bPZ2)\xa0\xf6\x11fÝ\xc3\xc1\x9a\xd6ꃑ}O8\x98ܚ\xe6`\"*yU[Ŋ;\xff\x9a\xc6*lH\xcc\xc6\xf8\xe6^L(n\xdf\xdcZ\x15V\n\xc7\xfdWL\xe7\xad|w\xbc#\xbc\xc7p:\xa2cj0\xf4+\x01\a\xac\x94O\x87\fY\x14v\xe4ŭ!\xa7\x8a8ԡ\xac\x93\xaa\xb3TT\xa3\x86\xcdK.x\x92\x0e34\xf4\xb7CUL\x12\xd4yԡ\xf7\x1c\x00}\xbc\xaf\xb4\xaeQ<\x01i\xe33\x11q\xb4\xc2tu\xad\xe65N\x80]w<}&\x80\x1a\xf4^-.E\xd0\xefqU\xec\xf8\xfa-\xa0\xe6\xb6\xe3M\xcbׇROŭ\xef\xbd\xe0umg\xa5\xfc%(\x8f\xb2f\xc8\xe36A}\xde\xe5\xe4A\xd35\xc7\xc7d\xf0\x80\xab\x81ѩytv\xe1\xd0\x1f[&K\x06\x1ch\x022\xf85xǫ\b\xe8\x0f\xba\xc4A\xbf\f*['ﶬj0]3G'D\xcc\u05cc>1\x92R\xc3P\x0f\x1dj\xef-\x93[\t)\xdbEQ}7Q(\x13^)\x89\xff\xb2\x05M\xbe\xad\xd5z@n\xd2$\\\xaf\xe2\xbe\x12G[\x8fIQ(\xe1\x1f\xe6^\xdb\xfb\aP\xf7֜\xa8\x06SȐ\xe1?\xfd\xf1\xccmL\x86qq\x90J\xfby!\xf4\x179\xe5\xeb\x9cp\xe6\xc2\xf7\xac\x1c_\x9b\xf6f{\x8b/e\xbc z8\xdf\xed\xa6\xae\xe3D\xb5\u007f̷\xccQ\x83D\x1d\r\x06\xe4zGv\xffެ\x1f\xd9\xdel\xaa\x90b\x0e\xf5\xc3ᧆ\x9b\x9b\xbd/\a\xe1ga\x8d\xa6\xf8\x99\x04>\u007f\x19A\xff.\xedS\xfa\x1c \x83\xff\v\x00\x00\xff\xff\xb9\xf7H\xe3\xa0\x19\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4W\xc1n\xe36\x10\xbd\xfb+\x06\xdb\xc3^*y\x17{)tk\xd3\x16\b\x9a\x04\vg\x91K\xd1\x03E\x8d\xeci(\x92%\x87Nݯ/\x86\x92bYV\xe2\xcd\x02\xab\x9bə\xc77\xf3f\x86\xf4\xaa(\x8a\x95\xf2\xf4\x80!\x92\xb3\x15(O\xf8/\xa3\x95_\xb1|\xfc)\x96\xe4\xd6\xfb\x8f\xabG\xb2M\x05W)\xb2\xeb6\x18]\n\x1a\u007fŖ,19\xbb\xea\x90U\xa3XU+\x00e\xadc%\xcbQ~\x02hg98c0\x14[\xb4\xe5c\xaa\xb1Nd\x1a\f\x19|\xb0e\xf1\xff\x00\x00\x00\xff\xff\x1b\xa0}D\xf4\f\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec}}s#\xb7\x91\xf7\xff\xfe\x14\xa8\x8d\xeb\x91t\x11\xa9\xdd\xe4.u\xb7\x95z\\ʮ\xec\xa8\xecղV\xca\xfaq9>\x1f8\xd3$q\x9a\x01&\x00\x86\x12s\xbe\xef\xfe\x14\x1a\xc0\xbc\x90\xc3\x17`\xa8}\xb1\aWu\xf1R3=@\xa3\xd1\xe8n\xfc\xbaA\v\xf6\x1e\xa4b\x82\xbf$\xb4`𨁛\u007f\xa9\xf1\xfd\xbf\xab1\x13\x17\xcb\x17_\xdc3\x9e\xbe$\xafJ\xa5E\xfe\x0e\x94(e\x02\xafa\xc68\xd3L\xf0/r\xd04\xa5\x9a\xbe\xfc\x82\x10ʹ\xd0\xd4\xfc\xac\xcc?\tI\x04\xd7Rd\x19\xc8\xd1\x1c\xf8\xf8\xbe\x9c´dY\n\x12\x89\xfbO/\x9f\x8f\xff8~\xfe\x05!\x89\x04|\xfd\x8e\xe5\xa04͋\x97\x84\x97Y\xf6\x05!\x9c\xe6\xf0\x92HPZHP\xe3%d Ř\x89/T\x01\x89\xf9\xd8\\\x8a\xb2xI\xea?\xd8w\\G\xec \xde\xd9\xd7\xf1\x97\x8c)\xfdm\xf3\xd7\xef\x98\xd2\xf8\x97\"+%\xcd\xea\x8fᏊ\xf1y\x99QY\xfd\xfc\x05!*\x11\x05\xbc$7\xe63\x05M \xfd\x82\x107&\xfc\xec\xc8\xf5z\xf9\u0092H\x16\x90S\xdb\x1fBD\x01\xfcrr\xfd\xfe\x8f\xb7\xad\x9f\tIA%\x92\x15\x1a9\xe3\xfaF\x98\"\x94\xbcDZ\x99\x0e\xe0$\x10\xbd\xa0\x9aH($(\xe0Z\x11\xbd\x00B\x8b\"c\t2\xb1\xa2H\x88\x98Uo)2\x93\"\xaf\xa9Mir_\x16D\vB\x89\xa6r\x0e\x9a|[NArРH\x92\x95J\x83\x1cW\xb4\n)\n\x90\x9ay\xc6\xda\u0590\xa3Ưkc91õO\x91\xd4\b\x10\xd8.;\x96A\xea8dz\xab\x17L\xd5C[\x1f\x8e\x1b\x12\xe5DL\xff\x1b\x12=&\xb7 \r\x19\xa2\x16\xa2\xccR#wK\x90\x869\x89\x98s\xf6ϊ\xb62\x035\x1fͨ\x067\xdfuc\\\x83\xe44#K\x9a\x95pN(OINWD\x82\xf9\n)y\x83\x1e>\xa2\xc6\xe4\rN\x0f\x9f\x89\x97d\xa1u\xa1^^\\̙\xf6\xeb'\x11y^r\xa6W\x17\xb8\x14ش\xd4B\xaa\x8b\x14\x96\x90](6\x1fQ\x99,\x98\x86D\x97\x12.h\xc1F\xd8u\x8ekh\x9c\xa7\xbf\xab\xa6\xed\xa4\xd5W\xbd2\x92\xa7\xb4d|\xde\xf8\x03\x8a\xf9\x8e\x190\x02oeɾjGQ3\xda\xfcd\xb8\xf3\xee\xea\xf6\xae)gL\xads\x1f\xf9\xde\x10\xbez\n\f\xc3\x18\x9f\x81\xb4\x93\x88\xd2fh\x02O\v\xc1\xb8\xc6\u007f$\x19\x03\xbe\xce~UNs\xa6ͼ\xff\xa3\x04e\x04Z\x8c\xc9+T*d\n\xa4,R\xaa!\x1d\x93kN^\xd1\x1c\xb2WT\xc1\x93O\x80\xe1\xb4\x1a\x19\xc6\x1e6\x05M}\xb8\xfe\xb0\xe5Z\xe3\x0f^ym\x99/\xb7\xfao\vHZ+Ƽ\xc6fn\x99\x93\x99\x90-\xe5`^\x19\xb7\x88v/Z\xd3\xec\xea7\x1al\xfd/k]\xf9K\xf5\xa0\x91\x1fӉ\x92\xb3\u007f\x94\x80*ήX\xd8P)\x1b$\x89\xef\x1f\x8a\xc5x\xe3\xef[xj\x1a<&Y\x99BZiۍ\xb1\xac\xf5\xf8j\xe3\x05\u070e(\xe3F\xfe\x8d\xfa7\xdd\xe6\xf5_\x8d:\xed\xe81\x95@\x8c\x042n\xe9\x11\xc6q\xb0\x9d\x9c6\x8di\xc8;:\xb7st\x04\xf79:\xcd\xe0%Ѳ\x84-\x9c\xa1R\xd2\xd5\x16\xc6\xf8\xbd\xf9P\xbeT\xcf;\x85\x90\xb1\x04\x9a\x1b\x85e\x8d\xddd\xa8\xdc\xec\x11\xf9\xa4\xb9\xb2\x10\xe2~\x1f'\xfej\x9e\xa9u\x18I\xd0\xc6!SX\xd0%\x13ҍ\xddm)S \xf0\bI\xa9q\x9bߠ[\xa2:\x15\x92\x14B\xe9\xed\\ؾ\x12\x89]\x1cۦp'\v7F\xe6\x14\x87\x9fb3Ж\x12\x11\x1cL_s\xb3\x12\xebg\xa5(\xed\xb3\xebھ\xc1\xf0n\x8e\x90)U\x90\x12\xe1d\xa0\xcc@\xb9o\xa5\xa8\x9e\xeaUv\xbe\x95t5x\xbb\xefft\n\x19Q\x90A\xa2\x85\xdc\xe4\xe4!\xfc\xb4\xed\x10ͱ\x85\x8f\x1d:\xc4\xe9^\xa7\x89\xeb\x81\xed I\x8c\xd1\xf1\xb0`\xc9\xc2n\x89F6\x91\x0eI\x05(\\F\xc6l[m\x1b$\xd97\xf7\xee#\xbb\x16R\xdd\xf6,\xa9uz]\x8b\xabn\a(\x9f\xba\xedQCm\xce\xd6\xf6j\xe7>R\xb7_'c\xbd^\x8d\x10\xda\xeb\x8dW\x8f+\xb4\xe8b\x18\xd3\xf7zF /\xf4\xea\x9c0\xed\u007f\xddG\x91fY\xe3\xfb\x9f\xf1ĄK\xfc\xf5\xfa\x9bG\x95\xf8\x9d\xb3\xb2\x8f\xa2\x99\x95\xea\xf3\x9f\xe1\xa4\xe0fq\xeb\xf6\x8a\x83'\xe4\xbb\xe6[\xe7\x84ͪ\tI\xcfɌe\x1a\xe4\xda\xcc\xf4Z/\xc7`\xc6!\xfb\x9di9\xd5\xc9\xe2\xea\xd1X6\xaa\x0e\xc7\x1cȗ\xf5\x97\xad\x81\xe8-\xe6\xf6Ƽ\x87.Ag\x8eIȭ\x93x\x87ܬ\u007fA\xeb\xfa\xf2\xe65\xa4\xbb\xd8C\x0e\x93\xbc\x8d\x81\\\xaeu\xb6\xf9ig\xf5\x1e:\fg\xfaT\x1e\x84u\xff\xcf\t%\xf7\xb0\xb2\x16\v\xe5\xc4L\x0e5\x1f\xda\xe2Kl2\a\xe3\x10(d\xf7\xb0B2.\xb0\xb0\xf7\xedCE\xc1\xb6{X\x1d\xf2\xd8\x1a\x03M\x9f\x9c\xbbg9i~@F\xa0\x1bz8\xf3\b\x06\x89\xbc.\xda?8r\xb8\"\xf1\xcd\xf3>b\x98մ5\x82i8\xb1'\xcaN\x91Y\x05\vV\x1c8P\x8c\xa5)\xc0\xd5\xe2\xc3D\xefi\xc6\xd2\xeaCV\xee\xaf\xf9vk\xb8\xddn\x84\xbe\xe6\xe7\xe4\xea\x91)\xd35\x9e\x92\xd7\x02ԍ\xd0\xf8˓\xb0\xd3v<\x82\x99\xf6E\\^ܪmÇf\xbc\xe9\x00\xe1\xb6\xedچ\x15\xaa\xe9a\x8a\\s\xe3\xb88~`\xf4\xd0~n\xf7\xfe\xd0ny\xa90\xa0\xc4\x05\x1f\xe1V9\xee\xfa\x92e\xf6\x81$\x85l\xcd\xc8fת\x8f\xda\x0f\x1eH\xf6\xce\xec$\xf6}\x1b\x0f\xcdh\x02\xa9\xf761\x8aG5\xccYBr\x90\xf3]\x1bG\xb3\x15F\xbf\x1fօ\x03\xb5\xaem\x81\x12v\xd8\xd6\xee\x9bS\xdd\xe9\xfeΌ\xcc\xca=\xe0)?\xd9{\x1f\xdd\x12\xbc\xdb\xfe\xe8\xfe\x11\xe1\x16\x8b\xf6\xc7^\xee\xd24œ\x16\x9aM\x024~\xc0\\l\xee\xfd\xb6cv\x87\xccia\xd6\xef\xff\x98m\x0e\x05\xfa\u007fIA\x99<`\r_\xe2\xa1I\x06\xadw]\x98\xa8\xf9\x19\xf3\x05\xa6\x88\x99\xdf%\xcd6\xc3\xc2\x1d\x83\x13F\xb7@f7r1۰X\xce\xc9\xc3B(\xbb\xa7\xce\x18d]!\x9bvc\x8a<\xbb\x87ճ\xf3\r=\xf0\xec\x9a?\xb3\x1b|\xb0\xba\xa9\xac\x05\xc1\xb3\x15y\x86\xef>\xebc\x04\x1d(\x89\a=\xc6;\x83\xbeuk\x89E3\xf0[G|\x9d\x99\xbb\xab\xd7\a\xc9a!\x94\xfekw\xc0nK\u007f&\xfe\x8d\xb6m\xda\x11\xf7\xdak\xb3\xbb\x18V\xa5T\x8d%7\xd3 ]\x10\xcf*Z\xef\x01\xf4\xf4\x8d\xf6\x05\xe9\xaa\x00\x1d\xad\x02\xe5\x86\xc1{\xa4\xc2\x1e\x00\x1c\xd2\xc5\x10\xab\xd1\xf0%\xd0\u07bezl\xc4\x18\xcd\n5\xffn\x0e\xe4\xd8Vm\"\xf2\x9c\xae\x1fy\x1d\xd4\xd5W\xf6M/ӎ\x90\x9d}9/q]\x1en\xeey\x19\xc2î\a\xa6\x17\x8c\x13\xea\x97?H'P\x94\x14b\xbf&\xb2mA\x15\x99\x02pϾ\xbd\xaa\xc1\xb6\xa7ݯsƯ\xf1\x03\xe4\xc5\xd1\xf7wR\xb3+j:=\xab\xab\t\xad~\xc0\x1d\xe7P\xd3H\xa4\xe4a\x01\x12ZR\xb1\x19\xf06\x16\xe3\x81$\xb9\xd0\u0378\x82\xa1[\x88\xf4D\x91\x19\x93J7;z\xa8\xc0\x95\xeaPq\b\x9ca3\xba;\x96\x83(u\xc4\x1c\\\xd5o\xb7N+s\xfa\xc8\xf22'4\x17\xe5\x01\x9b\xbbmf\u007fayu\xa4\xe8f\xe0\x812\x8d\xea\xce\xd0\xc5\b\x8b\x16f\x96\x8a\f\xf4\xa1S<\x85\x99QG\x89\xe0\x8a\xa5 \xfd\x91\xb7\x9dY&\xcc\u009dQ\x96\x95]\xc77]-\xd4M\xe5WRFy\xa9o훍\xa8\xe1B<\xb4\x19t0\v\x16t\t\x84\xcd\b\xd3\x04xb\xe6\x05\xa4U\xd9\xf8\t\xc7\fd\xcd\xc1by\x98\x827\rx\x99\x1fƀ\x11\xael\xc6w\x06Ś\x8f\u007fMY\xf6\x14\xd3f$/~i|_\xbf\xfdA\x96F\xa5T\x0e\xdf¦@\xde\x01MW~}P\xad\x8d\xab\x8a2 \x88,yS#>\xc1\xca\b\xf1\xef\\/\x8e\xe9\xb81\xce\x0e\x98صx>\xd3MkǐxRk\xc7|\xa0\xda\xe8bB3\xd7-\x02f\xab\xf4\x863\xf6\xbd\x92\x9a\x00\xcbg\n\xc6A\x85\xd4\x06\xbd\xcc\xf6\xe9\xech\v\xe4\xd9r\f\xde9\xba\x10\xd3e-\xcc\xeb\x1c\xcd\x06\xf8-x\t\xb8\x00\xefJ\x94\xe4\x81r텾2\xe6\nq\xa0ԇΪmT\xce\x03\x9e\xde@\xd6y\x93\xd5\xc3ۀk\xb9B\xb8ա\x9d\xb6\u0378\xa6\xa9H\xee\x8d9\x92\xd39\x9c\x9c(\xf2\xea\xcdk#*\xc6\xea0[F\xc0\x8e`\x1b\xb3'\xb1\x85\x14K\x96\x1a\xd3\xe9=\x95\x8cN3\xe3\x04\xcf@\x02O@\x91/O\xdf_\xbe\xfb\xf9\xe6\xf2\xcd\xd5Y\x10q\xe3:\xc3cA\xb9\x91\xc1R\xf9ݼ\x9a}3\x00\xe0K&\x057\f\n\xe3\xc6\xf5\x8cP\xb2\xf4\xbdM*$\x9aq\xb5\xb2\xa5\xb3\xe6\x82(V#\xf6\x81\x10ƋR\xfb\xe8\xe8\x03\xcb22\r\xa3X\xf2dA\xf9\xdc\xf0\xd5L^\x83\x8fD\xad\xb8\xa6\x8f\xa6\xdfA\x14\x8d\x99\xab\x12Z@\x8a\xd2O(IEi\x18\xf0\xe5\x97\xe7\x84\xc1K\xf2e\xe3#a\f\xbdrt\x1b\x13\x8fc\xe6\xb0\x04i\xedk;\x95\x87\x06\xc6m\x930\xa72\xcd@)\xa3\xcb\x1e\x16\xa0\x17 ]\xb8\xc6M\x1e\x84Dsm\x13\xd2\xc8m'\x02\xb1\xc6\x1c\x06Q\xf4\xf8\xc4\xfb\n`;f\xe2\"\x15\x89\xba\xd0Tݫ\v\xc6\xcdV5J\xa9\xa6\xa3\x862\xbb\xb0\xbb\xcc\xc8\xed{#\uf84e*1\xbf\xf8\x9d,9g|>\xa2\xd5S\x8c\x8f\xe8H- \xcbN\x02z\x19\xa4\x86m\v\xf6#\x9b\xaf\x85\x04\xee\x03\x1d~\xdbښ\xf2\xaaR\x8c\xf6\xcbcr#\xf4.d\xd7\xf6Vm\r\xc8\xe3q\xa7\uef3a\xb9{\xf7\xc3\xe4\xed\xf5\xcd]\xa8\xcal\xaa\xdb\xed*4N\xf9\xb4\xd4m\x87\n\r\x9b\xfd]궭B\x83\xe8nQ\xb7\x1b*4\x8c\xb1\x1d\xeav\x87\n\r\xa2]\xab\u06dd*4\xac\xbf\xeb\xeav\x9b\n\r\xa2\xba\xa9n\xbbUh\xb0\x1c\xac\xa9\xdbM\x15\x1a\xb6\xb5m\xaa\xdbA\x85v\xbc\x16\xa6B\x81/\xa3\xd5\xe7w\xce]h,\xf1j\xce\xc36W-\xf0\x84\x9c\xf1\xb6\xfe\xe8\xdam\x9f\x96\xf3\xed\x10\x16_\xbe\xa7m\x18\x00o\x0e6\x882\xa9\x97\x83G\x18\xe3vQy`a\xb6S\x8cWa۾\x93\x9e\xee\xb6y\xfe\xe3P\xfe\xf1\xfc \r\x9e\x8c\xc9\x1bw\"Nɫ\x9f\xaf__\xdd\xdc]\u007f}}\xf5.\x8c)$~\xed\x10\x0fr\xe8ɚ\x93\x0ew&\x82/\xbbw\xe4\xe0\x8dζB\u0092\x89\xb2\x06c\xf7_\xb8\xb6\xad\xaf[\a\x80Z\x11\x05rɒ\x98\xbevv\xad\x8f\x01a\xdb^3\"~\xf4{\x8c\x89\b\xc2\xdb=\xb8\x86I\x11A\xf7\xd8~\x9cm\xfb\xbc\xb9\x18!8\xa2Ab\xdb.\xb3\xe45\xcch\x99\x05\xba\x85\x8e\xac Ϟ\x8dC\xac\x02\xf7^Oe\xf5\xb5\x14\a\x86Λ\xad\xa5\xb0nmz\x8f\x8f\x15\x1fG\x9d\x9f8Hdk\x03WQ\xc2\xca\x1cj\xce{=A\x88\xa9\xba\xc5\xef\x97\xc4\x1eF\xce\xd8\xfc\r-\xbe\x85\xd5;\x98ŐXg;\xa2%\x1d\xb0\x90\x88C\x8f\x0f\xd7\x1b\xda\x0f\xb6k1k\xb6/_H\b\x96\xb4\xab\xb5xr\xe7p\xafh\r\x1a\xf6\xc4\r\x89\xf4[X\xbe\xc5\xd9I\xbe\xb5\x8d\x82\x86\xc1\x14M\xb1\xf2\xd8\xf5\xa1.P\"x\x02\x85V\x17bi\xf6ax\xb8x\x10\xf2\xde\xf84f\a\x18ٓ\x10u\x81\t\x18\x17\xbf\xc3\xff\xe9ѻ\xbb\xb7\xaf߾$\x97iJ\x04\x06\xdcJ\x05\xb32\xb3\x80\xab\x831\x9e]\xadN'?ǔ\xe6sR\xb2\xf4\xabpe\xeb\xdb\x11dC\x14\x16\x83w$\xf9\xb8\xc53\xdcU\x8f}\xcd7\xa3\xc2+\x8d`v6\xa6\xd5A\x00\xc8\xed\xcdCU\x9d\xd1ؓ\xedS!2\b\fA\xfbv\xf8\xa1`W;\f\b\xda\xd5\x02\x0e\x0e\xbb\x1a\xae\x80\xe3\xec\x1a'\xf5\xb6q\x18\x90\xb1\xbb9\u05ed\x10\xe9K\xa2ʢ\x10R\xab*U}l\x14AX\\\xaan-\"\x98\xd5uN\xfe\xab\xfa\x11\xb3\x06ԏ''\u007f\xfe\xf6\xea\x87\xff{r\xf2\xd3\u007f\xc5~\xa7\xa6٨2r\fª\x80d\xccE\nFe\x9f\xdb\u007f:/\xe62Ah\xc4M\x0f\xf6(Mu\xa9\xc6\v\xa1\xf4\xf5\xe4\xdc\xff\xb3\x10\xe9\xf5\xa4'I\xa4\xa1\"LPr\x14#`[ɏ\x90֒t_\x1a\xa4\xf7\xa6骈\x18y\xff\xda,\x99\tՋ\xc3\xc1U]\xedA2\xad\x81\xa3\xdf\a27\x1eɹю\xb1\u0383oƉX\xbex\xf6Q\x8d\x9e\x99gё\xa6\x11\xb9\xed\xd4M\x1f\x8dE|\x90Ш?\xefqW8\xba\x1eD/'\u05fe\xe4\xccGd|ߝ\xad\x9a\xb6\x8f\xb1\xbfy\xa8\xf1\xd7O\xb2\xcfy\xea\xfd\xb6\xba\x1aMj\xd1\xf7\x87\xe5pno\x19\xc3\xda4\x94\xa7u}\x9aS\xfb\xe38)\xcaXe\xee(\xe4\x90\v\xb9:\xf7\xff\x84b\x019H\x9a\x8d\x94\x16\x92Σ\xb7\x1f\xdfU\xecb\xfd/\xfb\xb9X\xcd\xdf`\xc1fO\xc3\xce\xcc\x1aT%\x90\xa4\x94\xc6\xdb\xc9V\xdeF\x81\xf4\xa3\xedo\x95\xfct\x17\xc79\xb4\xb5\x85\xbc\x86)\xf7\xf35k\xfd\x81a\x9c\xa5\xc8\xca\x1c\xd4y\xe5\xa5\xf4 l\xe8\x01_\x92%\x95\xea\xa3z\\)[2u(P\xb6\xabQ\xbez\x1b\xa9\x9a\b\xeaX;\b\xc65\xcc{\xb8h\xa3c0\xa3\xd3}t\x85\x03zL\xb6(uQ\"l4\xa7\xba:\xdfy,D\\\xe4ηF)\x17o%\xa1\xad\xf3\xe2Y4тj\r\x92\xbf$\xffy\xfa\xf7\xdf\xff2:\xfb\xea\xf4\xf4\xc7\xe7\xa3\xff\xf8\xe9\xf7\xa7\u007f\x1f\xe3\u007f\xfc\xcb\xd9Wg\xbf\xf8\u007f\xfc\xfe\xec\xec\xf4\xf4\xc7o\xdf|s7\xb9\xfa\x89\x9d\xfd\xf2#/\xf3{\xfb\xaf_N\u007f\x84\xab\x9f\x0e$rv\xf6\u0557\xd1]~\x1c\xd5\x11\x9a\x11\xe3z$\xe4\xc8\n\xc1\xde4\xff]\xcd3\xf7X:靷D\xfan\xbc\xa4i\xb1}D\xd5\xd1״\xeaņ\x9e\x96\x95\x82D\x82\xfe\xf4bζ_\xde\f\xb7\xf9+\x95\xc3\xff\xab\tC\xf7w=-\x9bj\xbf\x05\xcb\xdc\x11<\xea\xeeA\x16\x0fɗXA\xc0}\xe1\x1e\"ND|\x1bB\xe5C\xa8|[\xfb\xb5\x87\xcao\xed\xfa\xa9\xe3\xe4\x18\xed\xee\xb76\x878y\xd4n\x17\xfdr\xdchm5\xe6\xa0W\"{\x18\x89\xca\v=\xda\xefD\xe6\xd5%\xc4H!\x8a2\xa3\a\xe7EV\xfd\xd8D\xe1l\xc2\xf4\x82h\xba\xed\xb5F!\xd5\xc8i\vE\b^\x82\x9b\xa81r\x99e\x84q\xbbI\xe2ǂQ\xb1\b\x11\xb2Q\aB-\xf2oi\xd8\xf0\xb0\x00\x1e\x95Ug\x1bSDi*5\xe3\xf31\xf9\xdeв֘â0N\xf22Ӭ\bD7U\x1eVU\x95\x82P\xa5D¨\xf6\xa8\xe3\xd0\r5\xa3J\xfb)A \x8f\xa6\xf7\x88]L \x05\x9e\x00V1*\x03\xf7A?\xe7ӕ\xe1\xe8\x15_V`\xa4҂s!X\xfbt\xf7\xedc\x03G\xcd\xf2uК\x1a?\x1a\xa8\x141\xc6mi\x88Y]D\xaa:\xdf\r\xa3\x17obW\xe8\x97(7dö\xaeϧ+\xcb8\xe6TU\x8a\xfc\x03\xa3\x80\xe2\xcdܭ&nm\xa8F\xda\v\x9f\x9ay\xfb$\xa6\xed1\xcdڞ&m?sv\x97)\xdb\xc3\xe3\xa9W\xd41\xc0\x1a\xfd\f\xd0\x1eF`!a\xc6\x1e{j\x98K^\xcd\x11a)p\xcdf,\x0e**L\x87\n\xe0\x98\xcd\f4Y\xd8\x02\x88\xbc\r\xb2\x89\x91\xe9O\x00\xebn#\a\xc7Q\xe8\xb7kq\x8eA\x9b\x0f\xda|G\x1b\xb4\xf9\xee\xe6\x96\xd3g\xac\xca?\xa0\xa7\x8c\xb9\xb5\xf1\t\xc0\xaf\x1b\x19\xba\xa8\x11\x9e\"\x9b\xbbZ\xafuI\x8d\v\xfcbز\xc4\xf2\x9f\xb8\xf4\x8c\x17Ymr\xb6\x8c\xbax \v6\x0f\x8d\x88e\xb0\x84\xcc\xd9\xf7$\xa7\x9c\xcem\x11E-\xfcQ\x1d9\xb8\xa0\xafmF%I\x96\xb6Jn\xe1P\xcd\xc6i\xd4T&h\x98,\u05f7\x86)\x92\xb1{ \xaf\xa1\xc8\xc4\xca\xd5J\xe4)\xb9\xd5T\x1b\xb5t\v:\f\x00\x17\xa5\x9e\xcfa\x95\\7\xdbZ\xf5A@\xd1@0\xa5\b߶|C\\\xb00\xe6\x8b\x11\xaa\xba\xb2f\xb5\xd1\xc49\x19Xz\xb6}\x9f\nE\xb5\x89\x15\xb1\xe8\xfd\x81E\xc8ڭ/F!\xa2ZM\xb3\xed(X\x1b}\xd6\xe8K\x9af\x8cC\xb3r-\xc3j\x98\xf1G\x98\xcd\x15l\xf5\x91\xf3P\xe3\x0f\x81\x99\xc4\xdb%V\x8d\xaa\x86\xb6\xef}\xc0\xfcR\bMNO.N\xce6\x0e\xb5N\xe2\xa9\xceX\x06vw\xb5%d\x92j\xb2\xa2I*\x96\x17\xd9\n\xe7\xe7$Ż|\\:\xac,\xe3Έ\t*53˾d\xd19Q\x82hI}}\xf9\xf8\xbe\x1aj\x86\xb8\x96\xa5\xb3UNO~99'\xa0\x93X<0!\x0f\x82\x9fh\x14\xa31\xb9\x13\xa4Tuǣi\xaeDI8\xd8r\x85\xf0Xd,a:[\xe16\x1fMS\x94ږ\xddë\xf1\xb0\x14\xd4\xd5#\xd3.O'\x9e\xec\x8c<\xc7\xd5nM\x05B\x8d3\xb4\x84\x8b\x05\xd0L/\xe2\xf3\xfb\x8c\\r\xc1G\xff\x04)\xb0\xd0\x14w\x14c\xa3;\x11gg\xcdv\x04\xc4IL\x18a\xfd\xedH\x10\x831\x10\xbe\x81`\x93\x93l\xdcEyw7\xf9\x06t{\v\x8bb\x87\xe9\x91\xc7\xe7cH\x1b\xe4LȎ\xcbV\xf7\xb7\xbe\xfb\xdfB\xa8(ΐ͛:\x95\xb6\xf7\x0eX'\x85\xc7ŜmӢ\rKv\x88Fr=\x89\ab\xfd Jí)\x9df\xab\xaa~\xa8\x02M\x9e\x99\xae\xc7Þ\x19\xc7\xf9\xfc+\xd0\x14+\xb6r\xa5\x81F\x9aHGXj\x8d\xbe\x1cǨ\xb17\xae.,\xc9\x1e3\xda,&\xe5d\u007f\x8ck*^M\x1a\x13\x15\xefܱ\xea\xd7\xf5\xf1#)\xc9\r]ag\xc1\xfd>\xed\x85M\xa4\xfe\xe2[;DW\xd57\xb2x\x87o\x8cc7qQ\xf4\xe8]\u007f\x940\xe9\x8dV%]'`\x96W\xbdh\xba\xdc\xcbpX\xdaz;J~It1\xacf{J6a\xf7>>\x9f\xfaA-I\x1c\x10\xb1\xfdz?N\xf4\xccP \xbd\xed-L\xe6\x89N7\xdeL6ւ\xd0$\x01\xd5\xc3Զ\x1b\a*,\x05r\x19\np\xac[o\x11+Dx\xfcҷ^\to\xc7Iw;J\xb2[G\xe5AIx\x99O{h\x92\xaa\x00\x86Ե\xc0\xb8\x89\xef\x11L\xa9\xcaV\xde`\xf7\xfc\x11n\x1f{\x0fM\x18\xca\xe7@^\x98\x9e\xfe\xe9\xdf\xfe\xed\x8f\xff6F6DS\xf5\a˔\x93\xeb˛˟o߿ªo\xb1R\xfe$\x99mX\xb6!z\xffi\x9f\xcc#)ýRa\xa1\xb3>3l|\r\x17\xff\xb6\xc1eկr\x9cmZ\xa0\xba\xf9Hz\xa6\xcf&6\xc2E\xf4\xa1\xfdl\x9d\x14\xb7\"\xb9?\x82\xa7}r\xf7jbI\xd5\xcev\xd4,P\xeeČ/E\xb6\xb47\xc5ݽ\x9a \x83\xe2fּ\x8d\xe7\x03\x18\xea[\x99>\xfaLx\v͉\xa2\xca\xf2\xc2ݕH\x89\x04\x9a1\xa5Y\x82ߪ\x8e)\"\xfd{q\x1f\x83\xe2\xf9d\xe2\n'o=\x1c\bC\fѫy-4\xd1\n1\xf4Q\x11\x8d\xd0DlJ\xd7`\x91\x1c\xdd\"\xb1[\xbd\x90\xfd\xec\xf8\xc1\"\xf9\xb4-\x92\xcfm\x8f\x8c~\xb5\x90p\xabE\xd1\x135a\x89\x1c\t3\xe1\xef \xdb\x06j iĔ\xda[\x83/'\xd7Ut\\\xb4\x80\b\b^\t\xa6\xaa\xcad\xe1\xcff8(u\x81\xf0\x88\xb2\xb0\x91/\u007f\x95`\xf8\x89U!\x01\xef_\x13\xfc\xbc\xaaH\x80\xec\x00n\u007f\x04\x9d\x84\xaf\x16\x8c\xc98\xec\x88;O\xf4\xd3\xd5\x17\x86\x91H\xaa\x16\x80ŕ\xe1\x91i\xe5\xef9\xa6Jp{\x84릏\x89\xf0\x03L\xa6HA\x95\xb2\aw\xba\x1e\x84\xfd\xc8D\xa4'\x11\xa7\xb7\x8d\x0e\x91\xb9\xa4\t\x90\x02$\x13)\xc1\xaa\u007f\xa9x\b\xef\xe7\x14\xe6\x8c+/\xbf\xa6\xa3~a\x18[\t\xa2N\x84\xeb;Gߵjb\xe3EեND\x84\x1ev\xaf;.\xae\x03\x88\x82S'\xb1\x9bf\xf9\x944\xcbV\xf5B\xf5\x99\x9e\xfa\xf8\x93\xb4\x89$\x8aeB=\xeeu$Q\xf8i`\vyd\x96B\x8dJ\xea#\xfe-\xe9dʬ\xaad\xd1\xe3\"*\x12\x0e_\x1e\xa0M{\xdb\x00m:\xb8\rЦ\x01\xda4@\x9b\x06h\xd3\x00m:\x88\xc4\x00m\xaaz4@\x9bv\xb4\x01\xda4@\x9b\xf6\xb7\x01\xda4@\x9b\xea6@\x9b\x0ej\x03\xb4\xe9\x806@\x9b\x06h\xd3\xd66\x1c$\x0eЦ\xdf\xe2A\xe2\x00m\n{}\x806\x05\xb4\x01\xda4@\x9b|\x1b\xa0M\x81m\xb0H\x06h\xd3o\xd1\"\xf9\xdc\xf6\xc8^\xd5\xc5\x02_\xf38\x9e\x89\x14\xd3\x1ee\xc6&xV\xcf\x12\a\x03\x12\xb3\xe8\xda:\xb6;c\xf2\xaa\x05\xcfp\x17\xda\xdb*-A\x14\x1dЧ\x86'\xf5\xad\xd7\x13\\\x93\xc9\x17\x05S\x17\x85\xb0\xff\xaf\xc6\x144\xc0\x046\xbe\x16\xb29\xc4n\xbe1(\x82}\b\x82(]\xb7\x1b=\x80H\x80`\x9a\xc7D\x0e\xf4\xb1nz \x06v\xa0\x05<\xd9(\xe5ڍ\x14X;\U0004f1828\x94\xc0\xe6i\u007f\x1f\xc0\x05B\xe16N\xfa#)V\xe8\x80m\xa7\xfcq&\xb9:\xfe\t\xff\x13\x9c\xee\x1f\xffd\u007fǩ>Y\x892\x8a\xe6\x96\x13}w2\x1f)\x9b\x9d\xa7\xf9\xfeT>\x8ef\xf7I~\xebD>V\x98z\x9d\xe2\xf78\x9c\xeai\\\xc7G\x92\xa3-%\a6\xbe[HP\v\x91\x05\xebږ\x9e}\xc38\xcb\xcbܨ\te\xd4#[Vh\xe6p\x19\xf18'ku\xd8c8C\x98\xa5\x80\x97XR\x96Ŕ\xaa\xc3\xd2z\v\x8a\xf1\tU&\t@j\xf6\xc9\xd7\xf5\x11x0\xcd?\x8e\xab\x91\xdb[5\x98\"/B%\xcf^\xa8\x88\xfe\xdd\x1f\xff\x105\xfb1\x9ea$`c?X\x03)\as\xb2?P\xa3\x8f\xb9\x11\x1bHy\x1ap\xc6\x0e`\x06\xf9!rk\xd8\x01\xca ,n\x9b=\x12 \xa3\x97\xe6\xec\t\xc4\xd8\x01\xc2p<\x8a4@6\x01\x18\xeb@\x8a8\x96ǃ/z\xecmO\x05\xba\xd8\x0e\xb8\x88\x15I\xd2\x1bl\xd1\x1fhq\xc4\xdb\x0ek\xe4@\xef\xdb\xf1{\x85\xe8\x8e\x109\xec\t\xaax*\xb6\x1c\x03B\xf0\x11o\x9f\x8d\x9e\xd5>\xe0\x89\x9e\xc0\x89>\xa0\x89X\xc0\xc4\x0e\xb0D\x9fHsO\xa0D/\xf1\x89=\x8e\x88>\x8a\xe8\u007f\f\xd1\xfb\bb\a \xa2ϝ\xb0\x9dG\x0f\xb1\xf7\x17\xfa\xd6>vX;>\x884\v\x9bG\x0eG=:8\xfa\xb1A<\x88a7\x80\xa1\x01D\x88\xe5\xe1&x\xa1\x0f\b\xa1\x87D\xc7*\xff\xa8C\x95h\xa5\xcd8ӌf\xaf!\xa3\xab[H\x04O\x83-\xa3\xb5\v\x91\xaa\xf5\xaa,9뙇#!Z٘\v\xean΄\xd4'\xd4\xfaӐpՊ\xe6#\xa1xNaF\xaf\xdbٓ\x1f\xf7܂|\xb4\x90\x81M)=\x86\x10\xfcU<\x101\xd3\xc0\xc9)\xe3^\x0e\xc2\xe3\xa8u\xb0\xa0\x8e\x17U\xcb\xda\xfc\xf5\xc5\xf3p\xcde;\xf3\xf9\x06v0\xb4\xa5\xd4\xd3\xc5\xf5\xdc\a\x8e\x1f\xd8s\x84gex\x8c\xbe\x15ܳ\x01¶~\x0f\x9e\xbc\xfa\x1a\xbe\x17\xd8o\xafM0J\xed\xca6D\xd0\xfcL\x85*\x1av\xb6\x17rF\"n\x1e\xdb\x057\xab\xa1c\xc1d\xb7@\xcdj\xd8XxG\xb7\xc1̢ c\x1f=¹\x06\x13\x8bw?\xb7@Ĝy\x16i\xc4G\xc3\xc3\x06?,\xb0퀁\r~\xd8'\xe4\x87}\x1e\x1e\x86f9\x88R\u007fR\xce\xc5Â%\x8b\xa6\xad\xc2rPD\x94} \xef\xc6\nq\xdd\xea\xb4.\x9f\xfa\xea\xa9_\x9dG\x12%q\xa1\xe1\xf9\x8e\x98\xd3z%\xa0\nt\x154n\xaa\b%\xafon\u007f\xfe\xee\xf2/Wߍ\xc9\x15M\x16\xcd\x12f\x9cP\xb3\xa9\x05\xd1D]\xb4\xa0K \x94\x94\x9c\xfd\xa3\xb4\xb7\x96\x92\xd3\xea;g\x1e\xbf\x17D7\x0e\xeb\x17\xb5\xcb\x18\xcd\x13\xa4\x04Z\x13\xf4\x1dSxI\x1cRqP\x18\xa1 \xfc\x02\xe9\xf6\xceC\xae\f\x19ki\xe2.\xb5\x00\tdΖ\x81N\x90\xa1\xea.V\xa4\xa9\a$\xe1\x126\xab\xc7شt*\xca@\xf5\xb9\x00\xc2A\x9b\xd5]E\xc7\x04W\xadzx\xa5\x02\x15\x86M\x9b\x96\b\xc3*$˩d٪\xd9I\x9a\x8dɍ\xf06\xfc*Ԇh\xb2\xf0\xf5۫[r\xf3\xf6\x8e\x14\x12K\x82Y\xbcQ\xf0\xeec\xa6\x97L\xc1L\x90\x9d\xf0tL.\xf9\xca~\xc8\xea\xf2@\xac\x921ځ\x1b\x82\xce\f\xf1\x17\xde>{>\xc6\xff{ffP\x86\x86\x97*hZ\xb2\x01еV\x0f\x9b\x06\xe6\xa0\xe0\xd0\x1b2\xd0\x13\x9f\x1bqL\xbc\x06\xb8t\xe3\x9a\x18\xd6K(읮\xa1\xbb%\xadD\x1a\xa7\x10\x95\xa1Y\u007fY\xb4=\x18\xef<%\xcd!\xf5\xbc\x0f\xbf\xb6O\xbc\xb1k\xe55\xc2VtrY\x88\xf4D\x91\xeb\x89\x17DZ\xbd\b\xda\xec\x04\x11D\x8d\x1c\x1a\x9b\x84\xa5\xb6\x83\xf6p\xe5\x9c<'\u007f&\x8f\xe4\xcf\x11\x14\x8d\xa9\xfc\xa7p[\xb8\x8f=\xd1'\xd0a=\xe5\xebI\xcfy\xfeި1C\xc9̌\x16dʢ\xf0\xb1f\x82\xe1Q\x834ۄ\x93\x98p^\xf6\xf0\xf6\xcc\x10>I\xb1\xb7'8׳Ɲ\xd3D/\xa2\x00\xa9\x95\x03\xb7E\xf0c\xfc8\xf2g'\xf8\xa6\x8b\u007f\x15J\xdf8u\x16\u007fK\xb6m\xda/n\x92S\x9d,\xda\xfaָ\x10Q˾.\xddHR\x81q0\v%^\xb0\b\xac\xd1\xc7[\xbaqЛ\x96\xa4nJT\x1fU\xba\x16\x12\xc0ر\xb3\xcbm\xb1\xd3H\x9dP\x88\xd49\ff\xc8ic\x93\f\xf5\x18l\xdb\xe27\xb8\bG\\\xe2x\x9d\xd4gtaB\xb9\xcdB\x9a\x81\x94\x88R\x8fa\xe9\n\xd1\x16,\x81\b\xb1\xec\xa1\x05\v)\xb4HD\xd6S\xb6&\x8e\f\x9e'\xd8`\xf5\x9bh\xd9\xfa\xdb\xeb\xc99\xb9{59'B\x92\xdbWw\x93~HfB\x9eݽ\x9a<\xfb\x80l\x8d\vN\x8d\xda\xe6X\xe0\xbb~\"\xc3\x1c\xac>\t\x85\xa18\xa7V\x04\xd08!\xa3\x9c\x16\xa3{X\x05\x99\xad\xf1\\\x8a\xe2\xd1f\xa7\xed\xe0sz8\x10\\\x02M\xd9'\x94K\xe9\x14Mݯ\xee\xa4\xca\\,\x03\xe3>\xe8\xb0y\xea\xc0\xd3B0\xaeUW\xa6e\x10\xd9M\xaf\xef\x93A,\f\x99\x96\x1dmȴ\xdcچL\xcb!\xd3rȴ\x1c2-\xbbېi9dZ~Vة!ӲцLˈ6dZnkC\xa6\xe5Amȴ\xdclC\xa6eg\x1b2-;ڐiyh\x1b2-\xab\xf6\xebA\xf8\x0e\x99\x96\x9f*\xc2wȴ<\xa4}\x1e8\xe8!\xd3rȴ\xf4|\x192-\x83ڐi\xb9ֆL\xcb\xcfU\xa8\x86L\xcb!\xd3rȴ\xec\xfe\xeeo\xdd\x0f\x1b2-?U?\xec\xf3\xf00\x86L\xcb!\xd3\xf2\xc3eZJP\xa2\x94I\xd8\x1e\xda\x16\xb2W\"/J\r\xe4\x9d'U-\xb4\xa0\x81OW\x16\xc9\xddH\xe8\xfb\xb0\x97\x18$\x82\xcfؼ\x94\x98>w\x91SN\xe70J\xec\xe0F\x15\x9fFU\xff.>\x04\xbc.c9\vK\xb54\xad\xce[\x9c\xf40\x92\"\xf7\xe4\xbe;r\xcf\xfd\xb8\xa0Z\x83\xe4/\xc9\u007f\x9e\xfe\xfd\xf7\xbf\x8cξ:=\xfd\xf1\xf9\xe8?~\xfa\xfd\xe9\xdf\xc7\xf8\x1f\xffr\xf6\xd5\xd9/\xfe\x1f\xbf?;;=\xfd\xf1\xdb7\xdf\xdcM\xae~bg\xbf\xfc\xc8\xcb\xfc\xde\xfe\xeb\x97\xd3\x1f\xe1\xea\xa7\x03\x89\x9c\x9d}\xf5epW\x8f\xbc\xbf\xb5\x97\xe5w(9\xf5\xa9$\xaa\xef\x9c>\x1a=\x1b.\n\xb9(\xb9\xb6@]\xbbګ\x05aOrC\xd7&\xf9\xc4\xd6'\xe9\xb3e\xbb\x93\xeda\x99\x06\xb4a\x99\xdae\xfa\xce\xc9N{\xa1\x06\xf71w\x06Ԏ\x85\x1a\x05B2\xdb8\xe6\xc7U\xfdd\x8a\x88\x9ci\riT\xceQ#\xab\x1a\xc1\xadMgת\xacp\x9bofq\x99L5\xa1\x9e\x8d\f1\xa1\x17 \x1fXD*\xa3q\xbfx\x1d\xf1@\xd53Ja\xc68\xb8K\x9e\u007f\xb3j/\xea5\x05I)\x99^\xbd\x12\\\xc3cP\xa4\xa0\xbdln\x1d!\"\n\x8b?\xf6\xa80\v\xfe\x0fS\xdf%\xc7L\xbf\xe0C\x8dBd,Y]\xf8A\xe1\x1c\xc0\xa3\xbex\x02+USu_\xcb\x02\x8c\x8c\xbbRO\xf9F\x0f>\x84i\x8a\xfb\xfeD\xb2%\xcb`\x0eW*\xa1\x19\xcah?\x97\xf5r\v\xd5\xe0efX!E\xa6\xc8\xc3\x02\xcc\xfa'Ԍ\x14C)\t\xe5dN#@U\xb9\x99\xab\xc2w\xce\b\x9d\xd1\x0eZ\x91\x82J\xe0\xda\u007f \\'`9\x80\xa9\x10\x99\xcbx\xc8Vu\xffY\\\b\x89\x8b\x9f9<\xfclz\xab\xc8,\xa3\xf3*!J\x81\x8e\x85y\xd4'\x8c~\xa8\xe4h\x13\xc6\x14\ue984f\x0ft\x85Ӷ\x16\xf1\x8a\xa0\xf8\x92\xbc8\xc3\xf5M\x15\xa9\xfa\x98\x92?\x9c\xe1\t\xe9\xab\xcb\xc9Ϸ?\xdc\xfe|\xf9\xfa\xcd\xf5M\x9c\xda4s\x06\x811\xfb\x84\x16t\xca2\x16c\xeem \xbf\x9a\xc4p\xbbJӋT\x8ap\xc81\xf2[\x96\x1c\xeb\xa9Թ\xe6\xfd\"<͢,(v\xb3V\x87\x83I\xce%\xe5x\xa6\xbdZ;\xf0\x96%\xd7,\xff\xa0IY4ퟐu\x99\xa6\x90\xf6c\xc9\U00070b2f|7VuM\x98(\xaa\x84L\xde\xde^\xff\xbf5\xd9\\\x15}\x00v\x1f!\x97\x84\x10\xb3\x90z\xcf\xf1;\x9b\u007f:\xcc\xf2\xce\xf6\xf9e\fUv@?L\xc1\xbb\x92\xb7+\xca\xd5t#\xec\x93\x14\xc6db\xb7fPmj\r\xa5\x1e\xae\xeb$\x10C\x92kF\xb3lE\x8cg\xb8\xa4\x19\xd8\xe4\t)\x02KՑ\xf5\x1a1Ml\u008cf*X\x91\xc7\xef\xc6Ɛyc\x9c\xe6^\xb3XQ!)p\xa1]\xb8-j5\x88\x19R#֓o\x80\xfdZ;^\x94\x91Yo\xc6Ly\x9eO\xaa\x9e\xe3)O0\xd5R\x81\xeaތ\xe3o\x957\xa3\x95@S\xcc\t/\xa8^X\x9cIN\xd5=\xa4\xf6\x87H\x1b\xdb\xc54l\x8f\xab\xa1߭\n 3\xa0\xba\x8c8rB\xdbڢw\x80\xd3i\x16\x1e\n\xedQ\x9e\x83\xa6oy\xb6z'\x84\xfe\xbaJC\xee%\xc8\xdf;o\xa9}\x16\x13\x0e\xb0\xc0ʙ\xa6\u007f#\x9cDL\xbbnfJ;\xe9\x8b\xf1\x12>\xb0\x82\x90%\xbfT\xdfHQ\x06\x9b\x02\x1b\xc6\xfa7ׯQ_\x96V\xf7\x01\xd7r\x85\xa5%b\x94D{\xcdU\xfe\xd8\xdf\xcczt+0\xdc\xe0\xf1\xeaaFJ\xae@\x8f\xc9\x1b\xba\"4S\xc29\x8e\x11\a\xb2d\x82(\xc9f\xdcgL\xb0\x86\x13\xe8\x98̦\xa9\xd0\v\xb2F\x10\xd5\xc3\xe6w\xc2\v\x10\x18\xa6\xdaC\xe8*~h\x86\xb0F7\x9c,\xbd\aE\n\t\t\xa4\xc0\x93`\xe9m\x9c'\xff\xe9_?\xd0y\xb2\x93\xfc\x1b\xc1\x8dz\xe9%\xfb\xd7\xa1\xfb\f\x96\x10Q(t\xfd\x1e\x03C\xc58\xa4^j\x90lT\xf43\xa3SȬihW\x8e\xda\\9\xd1Q\xd1Ƞ\xaa\x14Y\xff\x94\xd5w\"C\x9d\xc9\xd8)\x1e|\x95\xfa\xb3+\xf3Ÿ\xee\nW\xea\xf2Mu\xad\x81a8\xf04\xb6\x92CA\xf5\xe2\x9cH\xc8(&%;\x85vo\x03Z'q\xf3\xd4\x18\xb0\xd7\f~\xe2\xd0\xcef\x82\xc7%\xa1\xe1\xa8\xf1X\xc0[\xc43ԁF\xc1?\xfb\xce\v[D\x9d\xf3Oa7\u007ffGRE<\xe3N\xd5L\xbbg|\xe4\xce\x1f\xac\x1d\x85\xd7x\xc0\xe6\x88\x19\xcd趴X\xc7g\xf3\x90n\xe3\xd0-\xce\x03Z?\xa8\xf3NPt\xa0hǁ\x1da\xe1\xb1zb\x0fƏzhG\xb6\x1c\xdc\xc5\x1fa\x93\xa7>\xc6&Ow\xa4@\x8ep\xac@>J(/.\x99Ζ\xdd\xeay\x17\xd3m\x83J\xc3m\xd5\v\x1a~\xc5\xf1D\xa4\xb6\xf4`U\xba\f/%ƒ\x89쟡\xc0\xc8\xf65\u007f\\\xd8<\xcef=Bw\xf9L\x98\x97e\xfc\xb5\xccG(\xf3\"3\x16B\xab\xc7\xc1\x90\x17\xa4ո\x14\xea\xbcbF}\a\x95\xab\xc6\x18\xb6^\xfe\xbbT\x9a\xd0\xea\xde)_tmR}ʆ\xb8\x02/\x1eq\xd7\xfcaeq-|P\x95\xa4l6\x03\x9f\xc6\x16\xe8e\x17T\xd2\x1c4HE\x1c\xbek\nsfs\x89ČPÌ\x93\xc00TU\x8d\xe5\xdc\xe6&1Mr6_XS\x9cP\x92\t>'\xc1(G-H&hJP\x8b\vI\x1e\xa8\xcc\t%\tM\x16pn\x13\xfa\xd22x\xe1c\xb9\xff\xd5Hi\xaa\x8d+\x056[\xd7]\xf3\x9b\xf82&ab:\xdc\x106\xdc\x10vp\x1bn\b\x1bn\b\x1bn\b\vm\xc3\ra\xc3\ra\a\xb7ᆰᆰ\xe1\x860ۆ\x1b\xc2\"\xdapCض6\xdc\x10vP\x1bn\b\xdbl\xc3\ra\x9dm\xb8!\xac\xa3\r7\x84\x1dچ\x1bª\xf6\xeb\xa9L?\xdc\x10\xf6\xa9V\xa6\x1fn\b;\xa4}\x1e\xf5\xfb\x87\x1b\u0086\x1b\xc2<_\x86\x1b\u0082\xdapC\xd8Z\x1bn\b\xfb\\\x85j\xb8!l\xb8!l\xb8!\xac\xfb\xbb\xbfu?l\xb8!\xecS\xf5\xc3>\x0f\x0fc\xb8!l\xb8!\xec\xc3\xdd\x10\xa6tʂj\xfa\x1fPN2&9\xce\x17w!\x94L\xcb\xd9\f$Z\x99\xd8;\xaf\xa4\xe2\x00\xe4\xbet8֎3\xddth\x1a\x05\xfa\x1c+Xڤ\xa80\x9f\xa2\xb3[\xbeJ\rַ\x97\xa0B\xeb_2N\xae\xde~];l1\xb50\xe3\xcau\xe1x\xde\xf2$\x1eg\\\vBG\xf9\x9e0\xdeZ\xf0^\x92\te\xd1d\x96\xd9ɂr\x0e\x99\xf3lX\x18g\x17T\x91)\x00'\xa2\x00n\xd3o(Q\x8c\xcf3 Tk\x9a,\xc6f\x04a\x96\xb7\x13\x02w\xadA\xddS\xa5%\xd0\xdc\n\x83\x84<\xf4\"\n\xd3EB\x13)\x94\"y\x99iVT\x9d$\n0\x97*\xf0\xc0\xf3zVO0\x02\xcc\x00\xcd\n,\xa4X\x8d\"\xb8\x8f6O\xbe\xb1\xe6\x8d\x0fx\x8e\xb7\xf4\xe4\x85^Y\x1cv\xd8Ʒ\x002cRi\x92d\f\xb8v\xa3\xb6\x05<\xb0\x9f\xe7$\x14W\xa7\xf1\xda\x03\x9c\x05\xe5X\xcbS\xb4\xa8\n\xad,J8\xae\xa3\xae\x8b)S\xcerW\xe7\x84j\xbfQ\x06\v\xbd\x97%\x14\xfb\x14;\xe9{\xed~\x8a\xecf]\xf3Q\xd50\xf5Z\x19\xce2\x1af\xf1z\xa5t\u07bc\xea\xc9g\xe7\xf8\n\xa0\xa8V\x83\xc8b^\xaa\xe5\x02.\x1c\x0eK\xa3? \x01\xb6D[\xd2h\xc6 \x8a\xebZ\xf4ɕ\xa8\x06\x993\x8e\xc8\xf07\xa0\x14\x9d\xc3$\xf0xn\x9bs\x89't\xb5p\x05\xba\x13\x98\xae\xaeEÆ\xab\xc1\xab'\xaa\xd9\xed \xb2\xb9\x1dc\x95\x03\xf1 \x99րB\x8c\xa5\xcd\x11\xb5\x10\x88!\xdb\xe8\\\x13Z\xfb\xc6\u007f\xd0~(Tj\x8d=\xc5S\v\b\x9d\x02\x99J\x0632c\x9cf\x0e\xc3\x19\x06VƂ\xa7T\x19ѤJ\x81\xc4\b\x8c\x83\xf8yބ\t\xec\xf7\x8e\x91Z\x96<\xa1\x8dkP\xb0<\x02\x9b\x919\xe2D\x03\x03U\v\xcaɿ>\xff\x8f?\x91\xe9\xcaX\xc1\b\x16\xd0BӬ\x9a\xc0\f\xf8<\xb0\xf8\xa3۞ډ\xea\x95$०\x81\x88\x1e\xe3\f\xfc\xe1~\xda\x0eR^\xa4\xb0\xbch\xc8\xe7(\x13\xf30\x9en^1\x1bb\xc8G\x85\x05:\xd4\x00\xde#\x16\xad\b|ue\xb2\x10\x0f\xf6ځ\x9e+\xb6N\x8f(DQf\xf68\xe7k_z$\x88d\xa9`3]\xbaS\x0f\x86J\x83\xef\xda\xda.\xe6\xe0\xd6n(aF\x8b\xabL\xe0\xc2\xeaUQ\xe5R\u0098|M\xb3lJ\x93\xfb;\U0005d62b\xb7\xfcJ\xca\xc0\xdb\x0fQ\xfa=?2j\xac\x98E\xc9\xef\xed]\x8dU1*\x11\xb6ۊR\x17\xa5\xf6\tb\r\xceV\x93\x19\\0\xa42\xd0\xcc\xf8\xdb̅G\xb3n\xf1\xb2\xbc0u\xc0\t\x18~Y풉y\xd5o\xe5\x95A(\x9a\xf8\x0f\xcf\xff\xf5߭\xca\"B\x92\u007f\u007f\x8e\xe9&\xea\xdcnbh\x1b\x18C6\xa7Y\x16\x1a\bk*\x18#\xf4=\uf84e\xd3\x11:^\x1d<\x89\xcb}w\xf7\x03\xfa\xdbL+\xc8f\xe76o\xd9_\xa6\x11D\xf4\x04\x8d\xb8\x13\xb7\xcb\x1a\x1f\xe3c8\xb4K\x91\x959\xbc\x86%\xebs\xf7y\x8b\x8aϙʘ\xd2D\x84e\x90N3\x91ܓ\xd4\x11j\xe0:\xd7/:\v\xe1L\x04\x82u\xeb\xe8\x1a\xd7ӆV\xab\xceiQTy\xa0\x92>\xb4\x06\x8b\xba$\x18\xbcJc\x83\xdc\xf1'B\xb6\xbb\xa1\x06\xbb\u007f\xb7\xc1՚\x90\x17\x98\"t\xf7\xb3\xcdemmT,\xf7W,D\x9dS\xb89\xb1v\x9a\x999\xd4\xcc\xe1\xa1\xf9\x1e\a&qx\xe0\x16\x8fyuΐS\xed|\x9aȳ7\x94\xda\x02\xa4b\xca\x180\xefqM\xbc\xca(\xcb\xe3\xb3\x03c*V\xf6\xb8#(\xe6LcԐ\xd3\xc0\x17\x83\x19ݫfB\x18.֪4\xbc\xf3)^\xebOD\xea\b\xa1\xaa\xb6\xf7t\x19W6X\x1c\xb6%\x89\xf628\xfa\xaa\xfd\xf75\x8f\x9aZߎ3|9\xe3\x02\xb24\x9d\xb2\xff\x18\xea\x1b;\u007f\x04\xed\x8dz\xdb\r\xa3o͚f\xc0\xc6\tT\xc3\xf5r1\x92\xb1\xc5\xd5D\x907\x12\xe4\xbaGN^\x9e|P\x1dn\xd9-EA\xe7QwB\xafq}\x9d\x1cI\xc1\xba:QI+\xc6MF\x8aUQa\xa4\viU\xfc.\x8a\xa8Mƫ\xf7a\xef>aՒ\b\x8a\x0ftE\xa8\x14%O\xed\xd9C}(\xf5f\x8d\x1d7\x82\xc7t\x99\xa9\xaaH\xae1\xbc\x19d\x98\xf7?\x05M\xcd\xde\xf6b\xfc\xe2\xf9\xe7\xb6\xf1\xe3H\xd66\xfe\xc8\xca`\r\xbd\xf5A\xb9\xe0\xef\xf4\xebɉ7.\xc4Z_\xc1\x17U\xb2ʞ\x01!\x91\aɴ\x93\xe6\a\xa6\x80\x9c\x86F\xcd}\x13\xb2Y\a\xeb\xec\b\xb7\u007f\xf6\xb9\x85\x88\x10UN\x9f`g\xb0\n=\x82=\xa8\x84\xbab\xf1*\x9efǶ\xd2d\xfa\xb3\x98R\xb0\xa7\xb67'\xb6b\xc6\xd9\a]$nʮ\x1e\x8b\x88\xab\x05Z\xd3v\xf5XP\x8c\xfa\x17\xf5\xfcŬ\x93z\v\xdf>\u007f\x11t\xb7\x9b\x05\u007f\x81\x05]F\xed\u007f\x8a\xe5,\xa32[\x99\xa9\xbf\xb5\x9c$\xd3R\x13\xe0K&\x05\x8fBn\x12\xb2\xa4\x92\xd1i\x06D\x02֑J@\x91/O\xdf_\xbeCtWL\xd1\x0f[\xe2\xcb\xcdO\xa9\x18\x9f\x1f\x81\xa3\x8dA\xae/\x82Z\xa4#\xe8\xdaE\xe0\xf9i$\x13-\x00\xcf_\x1a\x01U\"$/ui/\\~L\xb2R\xb1\xe5\x87܋b=\xc7\xca\xd6\xfe\x159\x8e\xae\xdc\xd0k\x16\xa4o\xd6J+Պ|\xa3zQ0`\x03\x8d\xc1\xba:^'\xac&P\x8e}\x05\xf3f\xd9f\x17Pw\x95\xd7l\xfa\x81\xbb\x14 \x14\xba\xb4\x866\xc8\xe9\xfc#\x84\xd6Ce:H*\x83\xe51L\x12\x1d\xee\U000f0bb7\xcdb\xfb\xa6+\xcao\xa3\x8e9}D@%\xc5\xe5z\xe0\b\xc5\f{A\xdeC\x06R\xf8m\xe9\x812]\xe5\xaa0\xce\xf4\xabЛ\xe6\xd1q\xb2\xb5\x18\x0f\x13\x80\xa0\xa9?x^\x0e|p\xff\xb4\xed\x13\xb3\x9db\xb5\xb7\x17\xbb\xbe\xbf\xe3eƓ\xacL\xe1UV*\r\xf2\x1d(Q\xca\xceӏ\xb5\xd3\xe5η\x1a\t)\x0f\xee\xc0)\xb1\x8f\x8cT\"\x8aN\xf5 \xeb\x97+{\xc6u*\xf5ɪ\x98\xdbD]\xba\x8a\xab\n\xa2\xb4\x90\xb0\xa5*'/\xb3l-!B\x96\x1dBd\x9e3\xd6\xc9\x16\\\xf8.\xff\xc1w\xd18\x92\xaa\xa0\a\xb3\xac\U00042f7aJe,\xc1\x80=\xf7\u007f\xb0\xffez\xed>\xd21B;\x97\x16\x84\x8a\xb8,<\x9d=Gp\x05\xaf\xbf`\xb3/\xed\x877\x87\xbf5(\xb8s!\x1dĴ.9\xf4\x1d\t\x14\xb2\xfa\xf95\x86y\xc99\x84_\x9bb\xd3\xe4X-\x83\xee\xb9)M\xee\xcb\xe2\xd3b\x1f^Qv\v\x19\xda\x06{X\xf7]\xf3Y˶\x1c4]\xbe\x18\xb7\xffb|k\x96iD!w\x9af\x0f\x16\ti\xb8fL\x13\xc6S\xb6diI\xb3\x96\x046xV\xb3\x16\x93YX\xd6\x05\x90\xc2rz\xee\xfd\x16\x8f\x89\x87\xaf\x05\xaf\xd5\xddQ`\f\xfc\x18\xf3\xdbAa\xbbUp;\xbc\xb8\xf6\x8a\xe5\xa2;\xc7u\xf7\xc5)\xcfG\xa7ڍ\xff\xb0\x15f{\xe7\x8a\x19\xf9\xe7p\xe4\x977\xaf\xb7\x997;C\xf6\xad\xae^\xee\xe8\x8e[3Մ\xef\xaa\xe0\xec\f1e\xf3)\xd49\xa1\xe4\x1eV\xe7\x16\xfc\xca]\t[G\xc4^+\xe5̆{\xd8n\xaa\x98\x97-\xbdm\x8c9$\x80\u007f\x0f;c_-v\xdcê:vG\xbe\x98\x1f\xaa;\xe6+V\xb8{\xfev\xef\xfd;O9\x0f\xb27<\xd7\x0e\xee~\xc5f\tF\xf8\xac\xa8\x981\x9c(w\x97\x97\xe0j\xc1\x8a}\xe0\x18\x8a\x90m1\xf3ܯnw\xb2\xe4\xad\xfc]\xf3sr#\xb4\xf9\x9f\xabG\xa6\xf6$䘹|-@\xdd\b\x8dO\xf7f\x8e\xed\xda\xc1\xac\xb1\x8f\xa3Hs\xab#1I\t\xbfQ\r\xf3z\u007f\xee\\\xc5b\xa6\xc857\x8a\xca\xf1\xa0\xaaA\xaf\x1cy\x9f\x97\xc6\x05\x1f\xa1V\xdbm\x89\xdao\xb7\xe8[\xb6\x9ao49\xd7\xfc\xd4n\x96\xb7\xbaa\xbb`#\xda\xf6/\b\xd0.2\x9a@\xeajT\x9b\x89גj\x98\xb3ݥ\x8bs\x90s\x04\x1a$\x8b]\xa3:\xe0\xe8\xf0@\xc3\xfb\x18&\xf2vU3\xaa\xd8\xfe\x14&\xb4\xdbCp\xfb\xdc\xc2\r\x9a\xfa긓\xbd\x1am/\xc76\xf7\"\xfbi\xb7\x99\xd3\xc2H\xfe\xff\x18\xf5\x8cB\xf4\xbf\xa4\xa0L\xaa1\xb9t\x19*[\xbe\xdb|\xc3\xd9:M\xe2\x86.S\xc4\xcc\u0092f`\x8b\x1cRN`g궘m\xec\x96\xe7\xe4a!\x14\xee\f\xf5!ҳ{X=;o\xad\x90-\x14\xcd\xc3\xd7\xfc\xd9yu^\xd6Z\x94\xd5>\x85G\x18\xcf\xf0o\xcf\xc6\x1b\x1b\xec\x16\xda{\xb6ݝR\xb2㏕\xd5\xfd\xc6B\x9b6g\xfeP\xf9\xd8)\x1b\x1b՛\x9a\xdfl\tG\xd38n\xb9\x15]\x9f\xa4r\x0e\xba\xcb\x05q\x163B\x19\xc6䒯6\xe8bb\\\xa7\xc9휸JΊ\xd6\xd5\aB:\xb0\u007f\x93\x94\x03.\xa9nG\xd8<\xb89k;&\x057P\xb9\x84\x1b\x91\xc2D\xc8.|G\xfb\xbcf\xfd\xf9\x0e\x8f\xb6\xc1\x14\x91\xa5\x88\xb3\xc7G;\xfa\x8b\xb6\xb1\xb3\x8b\x8f\xe9|\xba\xefO\xde\xef\x1bϻ\xea\xc1\xdd\x03\xa1X\x97\xdb\xceW\xc78\xcc\xfb6׆\xd3B-\x84&\xa7KF]F\x93(Sw[\x84\xec8\xef\xe91J\x95, -3辰h\xa3ĕ\u007f\xd4\xdb~%g\xff(\xdbw8\xf9\b\x95{\xbak!\xd4<\xa9\\\xebFDը\xa3\xbf\xe0|\xfa/9/\xd2Q\xde\x02\x85o\x92\xb4kA(\x8dyJ\\7\n\xb6x\xb73q\xa5\xbd\xdd\xe3\x9div~\fۖC\x87\xfa\xe8\xde\\G\xee\xab\x1b'\xe2[\x96\x95\xc5ҷit\xc9ܭ\xc5\xdc'\xb4Х\xf4\xf7\xa3\x95\x12\xef\x12\xa9˟S\xcf9Ǣ\x16\xd9펁\x8b\v2\xc1\xefX\x0eJӼ\xd8#!\xaf6\xdf0\x13 dj\xbb\x86\x11\xccF\x88\xa0\xbe\xb0\xa3\xcb+\xa6\xf551\xe9\xb8AےA\x9b̐\x86\x94\xc0\x128qI>x\xf2n\x03\x10\x1dD\xede\xdbr\x89g\x01\x9e\x0e\xe2}gB\x12\xbc\x91\xa7\xea\xfa\xa6D\xf8\xd4\xf1\x94j\x18uf\x12\x1e\xb4\x12;w\x1d\x84\xe9\xefS5\x98\xfb\xe0̓\x04qbfz\xb3̾\xed3\x0f\\\xaa\xdf\x03H s\xe0\x86ŝ\x1aǙ\xb2\xf6\x9a\b\xc3X\xb7\x82\xab\x00Ν\xbdY\xa3\xa4\xee\x03֝\xa9v\x95\xad!3|\xa43\xcbjW\x02\xbd\xcb\xf8x\aTu\xe1\x96Z\x8c\xf8\xba\xf9\xac\xf3U,\x0fp\xe8\t\xb5w\xec\xd8\xdbΘ\x84N\xd1w]\x12\xf8\xe5\x805NH\xb1\xa0j\x9f\xba\x9c\x98g\xaa\xeb<\x1a\x8b\xb2Ҕ\xef\xb6\xf4\tx\x99o\x12\x1f\x91\x1bx\xe8\xf8\xf5k\x14z\xf4;\xbb\x97҈\\\xf3\x89\x14s\xd9Uan\xe4\x17V\x87\x84\x8cȄJ\xcdh\x96\xad\xbe\xee\xaed\xef\xbf\x1e\xc4;ו\xbdV\x82}\xac6D\x19\xb7\xeb\xcfH*\x9d\xe2M\x11\xb5\xb0\x9e\xa8Z\x8e;&\xd9\u007ftl\x9cP\xf0\x81\n\xd6&\x8a\x10,\xa5G0\x9b\t\xe9\xee\xc9\x1e\x8d\b\x9b9\xfd\xd9e|P\x96\xa1\tg\x0f\xd1\bӵ\x83XmHB\x12\xcaWD\xa2\xb0\xe2\xb5!9]\xd9\x10\xd3+ \x87N\xa5\x13\xb2-\xde^;\x16\xdc|\xbe\xba\x9e\xb1\xaaS\x82\xe4,\xeb\x16t\xe95C\xb6\xcdUĬ\xfe\xca\x06Uf\x95u{\"\xfb\x8aj`N\xe4\xf5v\a\xb9}\xe0V=\xec\a`S*7\x86!\x9a&\xf2\xf6p\"S\xfeU3g\xc9\x02\xab\xf1\xe8\x85\x14\xe5|\xe1Ep\x9b\x02\xdd\x16V,1\xe9\xb7\xc8ʹ\x11k\x17\xe8ӥ\xe4\r\xefŅ\xfeҺ\xbb\xbb\x88\xeef\xe1\x0e\xdb]\xb5v\xbc}\x06`\xeb\xe1~;{\x95\xee\xfe\xe9\xee\xc8\xcbJ\xa5^\x1d\xb27\xbf_{|\xed \xc5\xec\xd25E\xb7\x9fv0\xe7\x94\xcdl\xd441\xbd\xde\x04\xef|\xe0\x03\x91\a*9\xe3\xf3}\x83\xff\xde=\xd6a\x9a8\n\x1d\xc6I\xc7 *s%\xc88\xf1\x9d܂\xf5\xa9\f\x96\x1e\xe6I\xe7\x1a\xda\xf8\x11\x059m0\xd9}\xc9\xfdR\x9b\xf5\xb6̅;\xa8\xb4\xbc\xbdg<}\xe9\x01\x81EVJ\x9a\xb9\u007f&\x82[\xb5\xa0^\x92\x1f\u007f\xfa\xc2\x0f\xe8=HU\xfd\xf8\xff\x03\x00\x00\xff\xff}\xb9\x01\xa8\u007f\xcc\x01\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec}\xfds#\xb7\x91\xe8\xef\xfe+P\x8a\xebI\xba\x88\x947\xb9\xa4\xee\xb6R/\xa5\xecʎ\xca^\xadj\xa5\xac_\xca\xf1\xf9\xc0\x99&\x89\x13\bL\x00\f%\xde\xf9\xfe\xf7Wh\x00\xf3A\x0e)\x02C\xed\x87=\xb8\xaa\x8b\x97\x9a\xe9\x01\x1a\x8d\xfeF7-\xd8{P\x9aI\xf1\x92Ђ\xc1\xa3\x01a\xff\xa5\xc7\xf7\xff\xa6\xc7L\x9e/_|q\xcfD\xfe\x92\xbc*\xb5\x91\x8bw\xa0e\xa92x\rS&\x98aR|\xb1\x00Csj\xe8\xcb/\b\xa1BHC\xed\xcf\xda\xfe\x93\x90L\n\xa3$\xe7\xa0F3\x10\xe3\xfbr\x02\x93\x92\xf1\x1c\x14\x02\x0f\x9f^~5\xfe\xfd\xf8\xab/\b\xc9\x14\xe0\xebwl\x01\xda\xd0E\U00052212\xf3/\b\x11t\x01/\x89\x02m\xa4\x02=^\x02\a%\xc7L~\xa1\v\xc8\xec\xc7fJ\x96\xc5KR\xff\xc1\xbd\xe3'\xe2\x16\xf1ν\x8e\xbfp\xa6ͷ\xcd_\xbfc\xda\xe0_\n^*\xca\xeb\x8fᏚ\x89Yɩ\xaa~\xfe\x82\x10\x9d\xc9\x02^\x92k\xfb\x99\x82f\x90\u007fA\x88_\x13~v\xe4g\xbd|\xe1@dsXP7\x1fBd\x01\xe2\xe2\xe6\xea\xfd\xefo[?\x13\x92\x83\xce\x14+\fb\xc6ύ0M(y\x8fk\xb3\x13\xc0M fN\rQP(\xd0 \x8c&f\x0e\x84\x16\x05g\x19\"\xb1\x82H\x88\x9cVoi2UrQC\x9b\xd0\xec\xbe,\x88\x91\x84\x12C\xd5\f\f\xf9\xb6\x9c\x80\x12`@\x93\x8c\x97ڀ\x1aW\xb0\n%\vP\x86\x05ĺѠ\xa3Ưkk9\xb6\xcbuO\x91\xdc\x12\x10\xb8){\x94A\xee1dgk\xe6L\xd7K[_\x8e_\x12\x15DN\xfe\v23&\xb7\xa0,\x18\xa2\xe7\xb2乥\xbb%(\x8b\x9cL\xce\x04\xfb\xef\n\xb6\xb6\v\xb5\x1f\xe5Ԁ\xdf\xefz0a@\t\xcaɒ\xf2\x12\xce\b\x159Y\xd0\x15Q`\xbfBJр\x87\x8f\xe81y\x83\xdb#\xa6\xf2%\x99\x1bS\xe8\x97\xe7\xe73f\xc2\xf9\xc9\xe4bQ\nfV\xe7x\x14ؤ4R\xe9\xf3\x1c\x96\xc0\xcf5\x9b\x8d\xa8\xca\xe6\xcc@fJ\x05\xe7\xb4`#\x9c\xba\xc034^俩\xb6\xed\xb85W\xb3\xb2\x94\xa7\x8dbb\xd6\xf8\x03\x92\xf9\x8e\x1d\xb0\x04\xefhɽ\xeaVQ#\xda\xfed\xb1\xf3\xee\xf2\xf6\xaeIgL\xafc\x1f\xf1\xde \xbez\v,\u0098\x98\x82r\x9b\x88\xd4fa\x82\xc8\vɄ\xc1\u007fd\x9c\x81XG\xbf.'\vf\xec\xbe\xff\xb3\x04m\tZ\x8e\xc9+d*d\x02\xa4,rj \x1f\x93+A^\xd1\x05\xf0WTóo\x80Ŵ\x1eY\xc4\xee\xb7\x05M~\xb8\xfe\xb0\xc3Z\xe3\x0f\x81ym\xd9/\u007f\xfao\v\xc8Z'ƾƦ\xfe\x98\x93\xa9T-\xe6`_\x19\xb7\x80v\x1fZ;\xdc\xe9\xb7\x1cl\xfd/kS\xf9K\xf5\xa0\xa5\x1f;\x89R\xb0\u007f\x96\x80,ΝX\xd8`)\x1b I\x98\x1f\x92\xc5x\xe3\xef[pj\a2m\xa7&r\xf2Z\x82\xbe\x96\x06\u007fy\x16t\xba\x89' ӽ\x88\xc7K8\xb6m\xf1\xd0\xf47\xedA\xdcn\\9\xb7B\xb5=L\x93+a\r\x17\x8f\x0f\xf4\x1e\xba\xcf\xed\x96\x0f\xed\xb1(5:\x94\x84\x14#\x14\x95\xe3\xae/9d\xef\tR\xaa֎lN\xad\xfa\xa8\xfb\xe0\x9e`\xef\xac$q\xef;\u007f(\xa7\x19\xe4\xc1\xdaD/\x1e50c\x19Y\x80\x9a\xed\x12\x1c\xcdQX\xfe\xbe\xdf\x14\xf6\xe4\xbanDR\xd8~\xa2=\fϺ\xf3\xa7'3\xb2'w\x8f\xa7\xc2f?\xf9\xe8\x16\xe7\xdd\xf6G\x9f^\x11\x8aX\xd4?\x9e\xc4.\xcds\x8c\xb4P~\x13\xc1\xf1#\xf6bS\xf6\xbb\x899\t\xb9\xa0\x85=\xbf\xffc\xc5\x1c\x12\xf4\xff\x92\x822\xb5\xc7\x19\xbe\xc0\xa0\t\x87ֻ\xdeM\xd4\xfc\x8c\xfd\x02\xd3\xc4\xee\xef\x92\xf2M\xb7p\xc7\xe2\xa4\xe5-\xc0\x9d \x97\xd3\r\x8d\xe5\x8c<̥v2uʀw\xb9lڃirt\x0f\xab\xa3\xb3\r>pt%\x8e\x9c\x80\x8ff7\x95\xb6 \x05_\x91#|\xf7\xa8\x8f\x12\xb4'%\xee\xf5\x98\xe8t\xfa֣E\x16M\xc7o\xed\xf1\xf5j\xee\xaeY\xefE\x87\x85\xd4\xe6\xaf\xdd\x0e\xbb-\xf3\xb9\to\xb4u\xd3\x0e\xbfד:\xbb\xf7aUL\xd5jrS\x03\xca;\xf1\x1c\xa3\r\x16@O\xdb\xe8)']堣\x95\xa3\xdc\"\xf8\t\xaap\x01\x80}\xa6\x18\xa35Z\xbcD\xeaۗ\x8f\r\x1f\xa3=\xa1\xf6\xdfͅ\x1cZ\xab\xcd\xe4bA\xd7C^{M\xf5\x95{3д\a\xe4v_\xcdJ<\x97\xfb\xab{\x81\x860\xd8\xf5\xc0̜\tB\xc3\xf1\a\xe5\t\x8a\x92B>͉ܘSM&\x00\"\xa0\xefI\xd6\xe0\xc6\xf3\xca\xeb\x05\x13W\xf8\x01\xf2\xe2\xe0\xf2\x9d\xd4\xe8J\xda\u0380\xeajC\xab\x1fP\xe2\xec\xab\x1aɜ<\xccAA\x8b*6\x1d\xdeVc\xdc\x13\xa4\x90\xa6\xe9W\xb0p\v\x99\x1fk2eJ\x9b\xe6D\xf7%\xb8R\xefK\x0e\x91;lWw\xc7\x16 K\x93\xb0\a\x97\xf5ۭh\xe5\x82>\xb2E\xb9 t!\xcb=\x84\xbb\x1bV\xbe\xb0E\x15R\xf4;\xf0@\x99Avgᢇ\xc5H\xbbK\x05\a\xb3\xef\x16O`j\xd9Q&\x85f9\xa8\x10\xf2v;ˤ=\xb8S\xcax\xd9\x15\xbe\xe9\x1a\xb1f\xaa\xb8T*\xc9J}\xeb\xdelx\r\xe7\U000a1360\xbdQ0\xa7K lJ\x98! 2\xbb/\xa0\x1c\xcb\xc6Oxd j\xf6&\xcb\xfd\x18\xbc\x1d \xca\xc5~\b\x18\xe1\xc9fb\xa7S\xac\xf9\xf8ה\xf1\xe7\xd86Ky\xe9G\xe3\xfb\xfa\xed\x0fr4*\xa6\xb2\xbf\b\x9b\x00y\a4_\x85\xf3A\x8d\xb1\xa6*Ҁ$\xaa\x14M\x8e\xf8\f'#ƾ\xf3\xb38\xa4\xe1\xc6\x04\xdbcc\xd7\xfc\xf9\xcc4\xb5\x1d\v\xe2Y\xb5\x1d\xfb\x81JХ\xb8f\xaeZ\x00\xac\xa8\f\x8a3ν\xa2\x9a\b\xcdg\x02\xd6@\x85\xdc9\xbd\xac\xf8\xf4z\xb4K\xe4\xd9\x12\x06\xef\\]\x8c\xea\xb2\xe6\xe6\xf5\x86f#\xf9-\xfa\bx\a\xefJ\x96\xe4\x81\n\x13\x88\xbeR\xe6\n\xb9'\xd5\xc7\xee\xaa\x1bT\xcd\"\x9e\xdeȬ\v*kHo\x03a\xd4\nӭ\xf6\x9d\xb4\x1b\xd64\xcdevoՑ\x05\x9d\xc1\xf1\xb1&\xaf\u07bc\xb6\xa4b\xb5\x0e+2\"$\x82\x1b\xccEb\v%\x97,\xb7\xaa\xd3{\xaa\x18\x9dpk\x04OA\x81\xc8@\x93/O\xde_\xbc\xfb\xe9\xfa\xe2\xcd\xe5i\x14pk:\xc3cA\x85\xa5\xc1R\ai^\xed\xbe]\x00\x88%SRX\x04\xc5a\xe3jJ(Y\x86\xd9fU&\x9a5\xb5\xf8\xd2ksQ\x10\xab\x15\aG\b\x13Ei\x82w\xf4\x81qN&q\x10K\x91ͩ\x98Y\xbc\xbe\x96\xa5\x9d\xe7\x97_\"V\x14\xe4e\xe6\x0ff\x14D\u007f\x98\xbe<\xf3\xe1,ʹ|\xd0([@g\xb4\xf08\x8e\x82\xd9\xd8^\xa2W\xc2\xd0Ǘ\x84\x8daL\x8e\xbel\xfc\xe9(\n&b\xabP\xd2.\xd3\xc5#\x1c\x1693\xa0('GM\xc8q\x1b\u007fi\xd7\ty\x93@\xf1k\x02\x96\xa0\x9c\x1d\xe0Hn_\a\xbe\x1b\nfT\xe5\x1c\xb4\xb6<\xf7a\x0ef\x0eʻ\x95<\x91A\x8c\xd7\xd9\r\xa9\xec\xf9\xea̔\xacs#\xa3 \x86<\xca\xfb*\x11x\xcc\xe4y.3}n\xa8\xbe\xd7\xe7LX\x91:ʩ\xa1\xa3\x06\xd3=w\xd2p\xe4\xe5\xf3(Xң\xea8\x9e\xffF\x95B01\x1b\xd1\xea)&Ft\xa4\xe7\xc0\xf9q\xc4,\xa3ą\x1b\xd1\xf6n\xf3\xb5\x98\x00C\xa4c\u008d6G\xbf\xac\x18\xb8\xfb\xf2\x98\\K\xb3+\x03m\xfb\xa8D\x18\xe2x\xdc\xc9\xe3/\xaf\xef\xde\xfd\xfd\xe6\xed\xd5\xf5],ko\x8a\x85\xed\xac>\x8dI\xb6\xc4B\a\xab\x8f\xdb\xfd]b\xa1\xcd\xea\xa3\xe0n\x11\v\x1b\xac>\x0e\xb1\x1dba\x93\xd5DZ\xe0M\xb1\xb0\x85\xd5G\x81]\x17\v[Y}\x14ԶX\xd8\xc6\xea\xa3@v\x8b\x85\x0eV\x1f/\x846\xc5B\x9b\xd5\xc7A\xdc.\x16\xd6X}\x14\xd8n\xb10\xb0\xfa\x8e\xd7\xe2X=\x88e2\x9b\xffΛ_\rVT\xedy\x1c\x1d\x1a\x89\x19\aL\xb4\xf9\\\x97V\xf0\xbc\x98o\xbb\x04\xc5\xf2=m\xa7U\x88\xe6b\xa3 \x93\xfa8\x84\x8cm\x14k\x95E\x1b\xc7bR\xac47\x9e\x8a\x9cu\x8f\xcdx\x9a\xbf5\x91\x8e\x0f\xd2\xc0ɘ\xbc\xf1\x19\x06\x94\xbc\xfa\xe9\xea\xf5\xe5\xf5\xdd\xd5\xd7W\x97\xef\xe2\x90B\xd2\xcf\x0e\tI#=Qs\xdca\x1e&\xe0e\xb7\xe6\x10-\x90\xdd(\x14,\x99,5_U\xe9\xed\xfd\x8f\xae\x1b\xeb'ק\x94\xad\x88\x06\xb5dY\xcal;\xa7\xd6G\xd5q\xe3I\x85'}\xf5O\xa8=\t\x80\xb7\xdb\xc4^\xf9I!\xadCZ\xc6\x1e\xe43\xd8\xc7n\xfb\x19uX\x8b\x9e\xb4%\x91~\a+\x8c4\xed.\x8c\xb6*\xd3P\xf3\x92!V\xfe\x10\xb3\xaf\xe1\x96I\x91Aa\xf4\xb9\\Z\xdd\x01\x1e\xce\x1f\xa4\xba\xb7\x96\xd8\x033\U000d12c7\xe9s\xbc\x86s\xfe\x1b\xfc\x9f\x1e\xb3\xbb{\xfb\xfa\xedKr\x91\xe7D\"\xab-5LK\xee\xd2\xee\xf6\xce\xf4\xed\x1auQ\x813\xbc\xd8~FJ\x96\xff9\x9eنq\x00ڐ\x85\xcb\xc4<\x10}\xdcb$\u007f\x15\xa4T\x0f\\Y\x16^q\x04\"\x15\x86\xdf\xf6I\x83\xdd>B²Wt{\xa2}\"%\a\xba^\xc4a\xbf\xb1\u007fh\xb8k\xec\x97\x0e\xdc5\"\xc2\xc7]\x03O\xc0a\xa4\xc6q-6\xf6Kg\xed\x1e\xde\xe0,d\xfe\x92\xe8\xb2(\xa42\xba*X0\xb6\x8c .\x9eQ\x8f\x16\x10\xbc\xdbwF\xfe\xb3\xfa\x11\xef\x8e\xe8\x1f\x8e\x8f\xff\xf4\xed\xe5\xdf\xff\xef\xf1\xf1\x8f\xff\x99\xfa\x9d\x1af\xa3\xd6\xcc!\x00\xeb\x02\xb2\xb1\x909X\x96}\xe6\xfe\xe9-\xaf\x8b\f\x13d\xae{\xa0G\x1bjJ=\x9eKm\xaen\xce\xc2?\v\x99_\xdd\xf4\x04\x890t\x82\nJ\x0e\xa2\x04l+\xfc\x123Z\x94\x1e\n\xc4\xf4\x16\x9a\xbe\x96\x8c\xa5\xf7\xaf푹\xa1f\xbe\u007f\x8a]\xd7xP\xcc\x18\x10h\xab\x82Zh\"\xa7g\x96;\xa2)ЇwKr\xb4|\x11\x19\xa1l\x01\xe8/ئ\x01E\a\xdaFĶg7}8\x16\t\xaeM\xcb\xfe\x82\x97\xa0ʦ\xec\x01\xf4\xe2\xe6*\x14\x1e\xfa\x88\x88\xef+٪m\xfb\x18\xf2-$\x9c\u007f\xfd,r.@\xef'\xea\xea\x9cbw\ac\xbf\x9b\xbc\xdb\agX\xa1\x88\x8a\xbc\xaeRt\xe2~\x1cgE\x99\xca\xcc=\x84\x05,\xa4Z\x9d\x85\u007fB1\x87\x05(\xcaG\xdaHEg\xc9\xe2'L\x15\xa7X\xff\xcb}.\x95\xf37P\xb09Ӹ$\x9e\x06T\x05$+\x95\xb5v\xf8*\xe8(\x90\u007f4\xf9V\xd1Ow\x89\xa4}G\x9b\xc8\xebd\xf5~\xb6f\xcd?Ѝ\xb3\x94\xbc\\\x80>\xab\xac\x94\x1e\x80ѥ)\x96dI\x95\xfe\xa8\x16WΖL\xef\x9b.\xdd5\xa8X\xbdMdM\x04y\xac[\x04\x13\x06f=L\xb4\xd1!\x90\xd1i>\xfa\xf2\x11=6[\x96\xa6(1yxAM\x15\x95z,d\x9a\xe7.\x8cFA\x9f\xbc\xe90}\x91\xe2\xc6v\xa3\xa0ƀ\x12/\xc9\u007f\x9c\xfc\xe3\xb7?\x8fN\xff|r\xf2\xc3W\xa3\u007f\xff\xf1\xb7'\xff\x18\xe3\u007f\xfc\xcb\xe9\x9fO\u007f\x0e\xff\xf8\xed\xe9\xe9\xc9\xc9\x0f߾\xf9\xe6\xee\xe6\xf2Gv\xfa\xf3\x0f\xa2\\ܻ\u007f\xfd|\xf2\x03\\\xfe\xb8'\x90\xd3\xd3?\u007f\x99<\xe5\xc7Q\xed\xa1\x191aFR\x8d\x1c\x11\x82\x9b\xb9n\xe4\x82s\u0084\x13\x92\xf8\xb1\a\xc6\xe3\xec`Lkr^\aB]\xbe\xe2Ң\xe1a\x0e\"\xe9n\xa5\x1bL\x13m\xa82L\xcc\xc6\xe4{\v\xcbic>\x17\x85\t\xb2(\xb9aEdBReaU\xb5I\b\xd5Zf\x8c\x1a\x8f\xe1h\x81ʩ6aK0-\xc7\xd0{̸\xcc \a\x91\x01ֲ*#\xe5`\xd8\xf3\xc9\xcab\xf4R,\xdd\xdc(\xc9K\x97R\f\xd1ܧ{n\x1f;\xdd\xd5\x1e_\x9fZSg\xbdF2E\xf4q;\x18rZ\x97\x12\xab\xe2\xbbq\xf0\xd2U\xec*\xfb%\xc9\f\xd9Э\xeb\xf8t\xa5\x19\xa7DU\x95\\|\xe0,\xa0t5w\xab\x8a[+\xaa\x89\xfa§\xa6\xde>\x8bj{H\xb5\xb6\xa7J\xdbO\x9dݥ\xca\xf6\xb0x\xea\x13u\x88d\x8d~\nh\x0f%\xb0P0e\x8f=9̅\xa8\xf6\x88\xb0\x1c\x84aS\x96d'X\x9dIA\x01\x02ӄ\x81fsW\x06S\xb4\x93lRh\xfa\x13\xc8\xd0w\x9e\x83\xc30\xf4\xdb5?\xc7\xc0\xcd\an\xbec\f\xdc|\xf7\xf0\xc7\xe93f\xe5\x1f\xd0Rƛ\xcb\xe9\u05eb_7\xee?#Gx\x8e\xbb\xf2\xd5y\xad\v\xab\x9c\xe3\x17\xe3\x8e%\x16\x81ţg\xad\xc8Jȹb\xfa\xf2\x81\xcc\xd9,\xd6#\xc6a\t\xdc\xeb\xf7dA\x05\x9d\xb9R\x9aF\x86P]\xec\xed\b˒\x14\xcb[\x85\xd7p\xa9VpZ6\xc5%\x8d\xa3\xe5\xbaw\x9c&\x9c\xdd\x03y\r\x05\x97+_1S\xe4\xe4\xd6Pc\xd9\xd2-\x98\xb8\x04\xb8$恫\xb9)9\xbf\x91\x9ceQ1\x876\xe9]!\xcd\x15%\xe7\xa4@Pc\xf2V@lX\xe6\x82?Е>#װ\x04uF\xae\xa6\xd7\xd2\xdc8s\xb3\xbe\x9f\x12wx\xa5\aJؔ\xbct\xfdш\xa13t]T\xf5\xeb\xe2\x88B\xb5&\xe6\x84\xc9\x03\xd3}\xed\xf4h\x81\xb9q\x00\u007f\x83_\xb5\xa2\xd3\xfd\xfb\xd9ɇ\xb3)d\xab\x8c\xa7\xf3\xac\x8b\f\x93]\xeb\xf2\xeb\xf5\xb9\x8ds\x19\xad\xb4\x81E(\x1b\x86\x0e\x14\x86e&\v)4\xb8\x82z)\x1e\xaej\x85\xcea\xa6{\xeeq\xaa\x92WHmn\rU{\x96i\xabG\xfb\x94\xde\x040\x96\xfc3\xca9\xe4\x84-\x16\x903j\x80\xc7\xfb\xc9C\x05\xd0f\xb9G\xd7\xee\xd2\x15\x93L\xd2\x1b\xe6T\xe4\x1c\x14\xd6+\xf4>\xc0\x16|\x03j\xc1\x04\x8d-\x18B\xaa\xf4.tYBNh\x96I\x95\xfbZp\xa1\xb2\x17U\xf1\x1a\u007f\xc5\xf1PWjH\x9e\xf5|\xbdh\xc8\x13.\xb3{MJa\x18\xaf\xcbC\x86ڐ\xbeQc4\xd4$\x16S\xfd\xe7\xa8:\x13#\xecGv\xfe\x9b\xfaO\xf8C\xac\xf2\xdb\xc7\xf2ٯ\x9e\xef\xe6X\xabA\tH\x1a\x98L)\xe3\xc5V\x18\x98\x17,\xad\xfab\x89\xaa\xae\xafZ\t\x9a4#\x03\v\x10\xb7\xbb\xeaPd\x9bX\x17\x8d\xdeGV!q\xa3o\x8eBB-\xa0\xe6\xd8Q\xb689\xd6\x18\n\xdbr&\xa0Y\xbf\x98aM\xd4\xf4\x10f\xf3\x04;~\xe4-\xd4\xf4 0S\xd8cdըm\xe9\xe6\xde'\x99_Ii\xc8\xc9\xf1\xf9\xf1\xe9FP\xeb8\x1d\xea\x94qp\xd2\xd5\x15Yʪ\xcdJ\x06\xa9٢\xe0+ܟ\xe3\x1c;:\xf9밪L\x8b\x11\x13djv\x97CA\xa83\xa2%1\x8a\x86.\x03\xe9s\xb5\xd0,p\xa3J\xaf\xab\x9c\x1c\xff||F\xc0d\xa9\xf9\xc0\x84=\xfaʿ\xb9\xd4I\x98!\x9b\xfdZ\xb5q\xdd'\x9c\x91\"\xd2|\xcen\x18\xd9NK\xf6\x19\x8d\xe4\xea&=\x11\xebﲴؚ\xd0\t_UUd5\x18rd\xa7\x9e\x9e\xf6\xcc\x04\xee\xe7_\x81\xe6X\xb7Wh\x034QE:\xc0Qk\xcc\xe50J\x8d\xeb\xbb;w {\xech\xb3\x04\x96\xa7\xfd1\x9e\xa9t6\xe9*\xbc((\x1c\xfb\xf5s\xfcHLr\x83W\xb8]\xf0\xbfOz\xe5&\xd2\xd0\xfe\xd8-\xd1\xd7vN,\xde\x11\x06\x138M<\x14=f\xd7?K\x98\xf4\xceV%]\x110\x87\xab^0\xfd\xdd\xcb\xf8\xb4\xb4\xf5q\x90\xfb%\xc9%\xbc\x9a\xe39ф\xd3\xfb\xf8x\xea\x97jI\xd2\x12\x11ۯ\xf7\xc3D\xcf\x1b\n\xa4\xb7\xbe\x85\x97y\x92\xaf\x1bo^66\x92\xd0,K+\x14\xe5\x86\xef^\x8e\fK\x83Z\xc6&8֣7\x89\x152\xde\u007f\x19F\xaf\vo\x87\xb9\xeev\x90\xcbn\x1d\xf5\x12\x15\x11\xe5b҃\x93T\x050\x94\xa9\t\xc6o|\x0fgJUl\xf3\x1a\xa7\x17B\xb8}\xf4=Ta\xa8\x98\x01yag\xfa\xc7?\xfc\xe1\xf7\u007f\x18#\x1a\x92\xa1\x86\xc02\x15\xe4\xea\xe2\xfa\xe2\xa7\xdb\xf7\xaf\xb0\x88[*\x95?\xcb\xcd6,ې,\u007fڑy\x04e\xb1Wj,t\xd6g\x87\xad\xad\xe1\xfd\xdfι\xacS\xe3l\xcda$\xb2\x9b\x8f\xc4g\xfa\b\xb1\x11\x1e\xa2\x0fmg\x9b\xac\xb8\x95\xd9\xfd\x01,\xed\xe3\xbbW7\x0eTml'\xed\x02\x15\xc1\xc5\xcc\xc4R\xf2\xa5\xeb\x17x\xf7\xea\x06\x11\x94\xb6\xb3\xf6m\x8c\x0f\xa0\xaboe\xe7\x18n»Ԝ$\xa8lQ\xf8\x8e\x99\x94(\xa0\x9ci\xc32\xfcV\x15\xa6H\xb4\xef\xe5}J\x16\xcf'\xe3W8~\x1bҁ\xd0Ő|\x9a\xd7\\\x13-\x17C\x1f\x16\xd1pM\xa4^\xe9\x1a4\x92\x83k$N\xd4K\xd5O\x8f\x1f4\x92O[#\xf9\xdcdd\U000ab142[#\x8b\x9eY\x13\x0eȁr&B'\xbamI\r$O\xd8R\xd7;\xfa\xe2\xe6\xaa\xf2\x8e\xcbV\"\x02&\xafDC\xd5e6\x0f\xb1\x19\x01Z\x9fczDY8\xcfWh(\x19\x1f\xb1*\x14`\x17>)Ϊ\x8a\x04\x88\x0e\x10\xeeG0Y\xfciA\x9f\x8c\xcf\x1d\xf1\xf1İ]}\xd302E\xf5\x1c\xb0S\x05<2\xa3C\xb7k\xaa\xa5p!\\\xbf}L\xc6\a0\x99&\x05\xd5\xda\x05\xeeL\xbd\b\xf7\x91\x1b\x99\x1f'Do\x1b\x13\"3E3 \x05(&s\x82U\xffr\xf9\x10?\xcf\t̘Ё~\xedD\xc3\xc1\xb0\xba\x12$E\x84\xebγ\xefZ]\xa4\xb0]yi2\x99\xc0\x87\xfd\xeb\x1e\x8b\xeb\tD\xd1W'q\x9a\xf6\xf8\x94\x94\xf3U}P\xc3MOs\xf8M\xda\xcc$JEB\xbd\xee\xf5L\xa2\xf8h`+\xf3\xc8\x1e\x85:+\xa9\x0f\xf9\xb7\xa8\x93i{\xaa\xb2y\x8f6_$>}yHmzr\f\xa9M{\x8f!\xb5iHm\x1aR\x9b\x86Ԧ!\xb5i/\x10CjS5\xa3!\xb5i\xc7\x18R\x9b\x86Ԧ\xa7ǐ\xda4\xa46\xd5cHm\xdak\f\xa9M{\x8c!\xb5iHm\xda:\x86@\xe2\x90\xda\xf4k\f$\x0e\xa9Mq\xaf\x0f\xa9M\x11cHm\x1aR\x9b\xc2\x18R\x9b\"Ǡ\x91\f\xa9M\xbfF\x8d\xe4s\x93\x91\xbd\xaa\x8bE\xbe\x16\xf2xn\x94\x9c\xf4(3v\x83\xb1z\x96\xf94 9M\xae\xad\xe3\xa63&\xafZ\xe9\x19\xbe\t\xbf\xab\xd2\x12\x05\xd1'\xfa\xd4\xe9I}\xeb\xf5D\xd7d\nE\xc1\xf4y!\xdd\xff\xabs\n\x1a\xc9\x04ο\x16#\x1cR\x85oJ\x16\xc1S\x19\x04I\xbcnw\xf6\x00f\x02D\xc3|\x84\xff\x19\xa2\xfb\x87\x8f\xec\xef\x88ꓕ,\x93`n\x89\xe8\xfb\xc8|\"mvF\xf3CT>\rfw$\xbf\x15\x91O%\xa6^Q\xfc\x1e\xc1\xa9\x9e\xcau\xba'9YS\xf2\xc9\xc6ws\x05z.y4\xafm\xf1\xd97L\xb0E\xb9\xb0lB[\xf6ȖU6s<\x8d\x84<'\xa7u\xb80\x9c\x05\xccr\xc0&\x96\x94\xf1\x94RuXZoN\xd1?\xa1\xcb,\x03ȭ\x9c|]\x87\xc0\xa3a\xfe~\\\xad\xdcu\xd5`\x9a\xbc\x88\xa5<\xd7P\x11\xed\xbb\xdf\xff.i\xf7S,\xc3Ą\x8d\xa7\x935\x10r4&\xfb'j\xf4Q7R\x1d)ϓ\x9c\xb1#1\x83\xfc=Q4\xecH\xca ,M\xcc\x1e(!\xa3\x17\xe7왈\xb1#\t\xc3\xe3(Q\x01\xd9L\xc0XO\xa4HCyz\xf2E\x0f\xd9\xf6\\I\x17\xdb\x13.RI\x92\xf4N\xb6\xe8\x9fhq\xc0n\x87u\xe6@\xef\xee\xf8\xbd\\t\a\xf0\x1c\xf6L\xaax.\xb4\x1c\"\x85\xe0#v\x9fM\xde\xd5>\xc9\x13=\x13'\xfa$M\xa4&L\xecH\x96\xe8\xe3i\xee\x99(ы|R\xc3\x11ɡ\x88\xfea\x88\xde!\x88\x1d\t\x11}z\xc2v\x86\x1eR\xfb\x17\x86\xd1\x0e;\xac\x85\x0f\x12\xd5\xc2f\xc8ᠡ\x83\x83\x87\rғ\x18v'04\x12\x11Rq\xb8\x99\xbc\xd0'\t\xa1\aE\xa72\xff\xa4\xa0J2\xd3f\x82\x19F\xf9k\xe0tu\v\x99\x14y\xb4f\xb4\xd6\x10\xa9:\xafځs\x96y|&D\xeb6\xe6\x9c\xfaΙ\x90\x87\v\xb5!\x1a\x12\xcfZQ}$\x14\xe3\x14v\xf5\xa6}{\xf2\xe3\xc6-\xc8Gs\x19\xb8+\xa5\x87 \x82\xbf\xca\a\"\xa7\x06\x049a\"\xd0A\xbc\x1f\xb5v\x16\xd4\xfe\xa2\xeaXۿ\xbe\xf8*\x9es\xb9\xc9|\xbe\x8e\x1dtmi\xfd|~=\xff\x81\xc3;\xf6<\xe0i\x19\xef\xa3o9\xf7\x9c\x83\xb0\xcdߣ7\xafn\xc3\xf7\x02\xe7\x1d\xb8\tz\xa9}ن\x04\x98\x9f)Q%\xa7\x9d=\x99rF\x12:\x8f\xedJ7\xabSǢ\xc1nI5\xab\xd3\xc6\xe2'\xba-\xcd,)e\xec\xa3{8\xd7\xd2\xc4\xd2\xcd\xcf-)b^=KT\xe2\x93\xd3\xc3\x06;,r\xecH\x03\x1b\xec\xb0O\xc8\x0e\xfb<,\x8cF\xad\x93o\x14\xcd\xe0\xe6`jf`W$/\x15\xf5\"#(xI\xf6\x86e2\x02 w\x9c\xaa*\\\x83\x15W\xa6%O(^U\x16R\xb4\xab?\xb9\x9c\x8af\x11\x97h\xa0>ۥc\xd5^QJ9\xa1\x85\x92N\xed#\xaa\x14\xc2J]\u007f\x96,R\xac\xad\xa4\xd3$d\xb3f\x8ff3\xbb]V\xc5\xc2*8,A\xbe<\xccA\x04-\xd3O\xd8\xcen*U\xc6&|E攧\x84_\x1e\x98\x99\x13J\xee\x19\xe7~\x9acr\v\x86\x989Ӊ\xceT.\xc5\f7\x83\xba\t\xc3c\x01\x99U;2\x0eT\x94E\xda\xfa\xad\xb2\xba\x92\xa5\n\xeb\xf7m\xe3\xc2,S\x926\x04\xe3ga\xab\x8f\xf5\xee\x03\x9b\x80X\x97\xa0Xj\bu\x9a\x1e\x98\x86\xb3>\x98\rmF\xdd9p\xeb.\x94\\\xb2\x1cr2Y\xa5ѿ\xccQk\x1d\x93\xf7\b/\xf0}!\xc5H\xc0\x8cZ\xdb(\xfe\xa4:!\xeeμ\x9b\xa7\xabG!r\x96Q\x93`ci,\xacW\x97\xd3#KF\x11\v\rʍ\x06z\"$\x91\xa8\x14\x97\x82\x99\x15\xc6F\xe7\xa5!\xb9|\x10\xa7cl=\x9b¤(\x99\x80\xa1\xfe^\xabk%\x88\x02K\x13\x10t\xc2S\x94\x13\xccĽ\xeb$P2\x05jʄ\xee~3j\xa0\xd3\x1f\xe0\xe8\xe1\xb0ǁi\x1f\x01\x9d\x92Rh\x88\xbe?Ӱ\x0f\xff\xf8\xaf\x1f\xce>d\v\x90\xa5\xf9\xa4\x1c\x84\x0fs\x96͛\xfe\x06\xb6\x00Md\xd9\xe7ښ\x91䅟V7E\x99\xacáZB\xc7\x18\xaa%l\x1dC\xb5\x84\xa1Z\xc2P-a\xa8\x96\xd0=\x86j\tC\xb5\x84\xcf*\xffy\xa8\x96\xd0\x18C\xb5\x84\x841TK\xd86\x86j\t{\x8d\xa1Z\xc2\xe6\x18\xaa%t\x8e\xa1ZB\xc7\x18\xaa%\xec;\x86j\t\xd5\xf8\xe5\xdc\xd2\x19\xaa%|\xaa\xb7t\x86j\t\xfb\x8c\xcf\xe3.\xd3P-a\xa8\x96\x10\xf02TK\x88\x1aC\xb5\x84\xb51TK\xf8\\\x89j\xa8\x960TK\x18\xaa%t\u007f\xf7\xd7n\x87\r\xd5\x12>U;\xec\xf3\xb00\x86j\tC\xb5\x84\xa1Z\xc2P-a\xa8\x960TK\x18\xaa%\f\xd5\x12\x86j\t\xbf\"\xafb\x92֨@\xcbReqvp\x9b\xc8^\xc9EQ\x1a \xef\x02\xa8JY\x8eZ8\xca\x12\xa6\x9b\x97\xf2?l3\xc1L\x8a)\x9byE\xef|A\x05\x9d\xc1\xa8\xc2Ϩ\xbeBw\xfe!r\xe39[\xb0\xb8:\tv\xd4E\anzx8\x12\r\xea\xbe\xe6tOc\xba\xa0ƀ\x12/\xc9\u007f\x9c\xfc\xe3\xb7?\x8fN\xff|r\xf2\xc3W\xa3\u007f\xff\xf1\xb7'\xff\x18\xe3\u007f\xfc\xcb\xe9\x9fO\u007f\x0e\xff\xf8\xed\xe9\xe9\xc9\xc9\x0f߾\xf9\xe6\xee\xe6\xf2Gv\xfa\xf3\x0f\xa2\\ܻ\u007f\xfd|\xf2\x03\\\xfe\xb8'\x90\xd3\xd3?\u007f\x19=\xd5\x03\x1b\xa7\xed\xf3\xf8\x1dRN\x9dR\x84|{A\x1f-\x83\x8d'\x85\x85,\x85q\xb7l\xdc1\xafN\x84KÊ=\x94\xe4S9\x98\xa4\x8f\xa1\xed\xf3ц\xf3\x191\x86\xf3\xe9\xce\xe7;O;\xed\x13\x1a=DžW\x99v\x9c\xd0h\x98Ap\xa3\xa1[͓i\"\x17\xccXs:\xe5\xa6p\xa3\x16\n^Ii\xba\xa8\x1d\xaf\x8a\xd7\xf2\xa6\xee6\x05\xd3\xcd\v\x1a\x8d{\xdd2ؾ)j)\x15u\x9c\x02y\xce(\x87)\x13\x90;\xf5\xf4\xd7\xc7\xef\x92^Ӑ\x95\x8a\x99\xd5+)\f\xe5Cú\x19\xe7\x85q\xe5eH\n\xfa+\xa09֔)\xa8\x99\xbb<\xd5\x05\xd5\xf7\x90\xbb\x1f\x12u\xec*$kg\\-\xfdnU@r<\x15uk\x97\xfd\x8bq\xdexol\x8f\xf2^4\u007f+\xf8Ꝕ\xe6몌I/B\xfe\xde[K\xed8P4R\xe6Xy\xdb\xceo\x84\x9b\x88e[\x9a\x95V<\xf5\xa5X\t\x1f\x98A\xa8R\\\xe8o\x94,\xa3U\x81\re\xfd\x9b\xab\xd7\xc8/K\x9f!#\x8cZai\xaa\x14&\xd1>s\x95=\xf67\x9fӔ\x94mS\xb1\x87\x10\xae'o\xe8\x8aP\xae\xa57\x1c\x13\x82\xc1]\x1e\x12\xe2]5)7\xa3'\xd2\xcc\xd7}:\xc8\x1e6\xbf\x13_\xc0\xa8N\xb0\xa9<\x99v\t}\\H\b\x96ރ&\x85\x82\fr\x10Y4\xf5~\x9c4\b\xa4\xfck),{\xe9E\xfbW!\xffǹ\x8c\xfbY\xf5\x98\xa9\xe4mz\x8a\xf9J\xc8\\J\r\xca%\x87\xa9\x12\xd26\xfe\xdbr\x02\x1c\x8cs\x94`\x9dZj\x9c\xe7\x8f-\xe8,\xfe4QS\x89B#\t\b]*\xf0NsCr\x99`\x06\xf8:Rv\xe9\u007f\xbbzM\xbe\"'v\xed\xa7H\xfeS\xcaxJ\xd5\x17\xbc\xfd\xb1\xc6M\xd84LѢ4^'\x10h\xec+Ǫψ\x90D\x97\xd9<\xe04\xc5;\x14\x9cW\xfe\x86\x14^a\x1bX\xd3'\xc0\x9az\nֿiP\xbd\xe5\xea\xdf>\x80\\\xed\xe3\x06\xb3\xbc\xa9\xbdk\xc8P\xc8\x02\fͩ\xa1)\xc1\xb7R4\xaa#\xae\x1d\x85\x14\xda\xdd}\x14\x90\xb4\xa3a\xfeʎ\xc2Ǒ\xd2\x1a\xbec\xa2|t\xb7\x03\xfa;\x94o/\x11\x1c\xf1\xa1\xa4\x14\x892\x01B\x8b\x823W\xbeo\xad\xcb\xcbU\x8bt\xd3\xf6~\xd3\xd4D\xf1@9\x97V\xcdH\b\x8f+*r\xb9\xd8X\xbc5D\x81&Xō\x05w\x1c\xcem\x87-^vׇ\xf3\xd7v\xd8\xfa\xb8\xee9,!\xa1\xd0\xf8z\x1f$\v\xc5\x1a\xa4\x81j\x10l\x92\xf7\x93\xd3\tp\xa7\x1a\xba\x93\xa37ON\xb2W4ѩ\xaa$\xef_\xf2\xe2\x9d\xe4\xe0r\xe3\x03\x92,\xd8_\f\x8e\xf0\xe5\xbe8B\xefS\vG\xc9^\xf4O\x11Ge\x82\x86G\xd6qd\xd5\xc46\x8e,\xd8_\b\x8e\x92C\x10\x1a\xb2L.\x8a\x1b%\xa7,\xfe\xb0n\x88~\x0f\xaeNΉ\x17\xfd\xa5\x86\xae,r\xd4#\x11x\xbcF\xee'CU\xe3\xd2\x135N\xe6\xf9[\\\xd1@\xffOC\x85@\xae}\xb6\xa6W\xf8\xaf\xc6϶\x99/T\xc8<\x00\xfa\xa0\xd2Mf\x94cS\xa14\xba 봱\x0e\xb0\xc7}.\xe2z\xd3y8!\xa7\x0f\xbb\xaa\xe0/\t\x9e\x01\x12\xfa\xf3\xc9\x1c\x1a\xb5\xe3\xdd\x05\xbc;w_\xc6\xc2N\x02\x1c\xae\xc5Y=%$_\xe5!ve\xbf\x986]\xe9Ke\xbf\xa9\xda\"Y\x84\x83\xc8S+A\x15\xd4\xccψ\x02\x8e\x17\xf7\x02C\xbbw\x0e\xad\xe3\xb4}j,8p\x86\xb0q\xa8g3)\xd2.\xb1\xe3\xaa1,\x104\xe2)\xf2@\xcb\xe0\x8f\xbe\vĖ\xd0'\xe5S\x90\xe6Gn%\x95\xc73-\xaaf\xc7=\x13\xb9\xbf7\xd6B\xbew\x85\xa5\x9d=g\x97\xe1\xadO\x967\x99\xebK\U0008fd33Wm\x18\x19m\x1e\xed$\x88Mv\xd0q\xb4\x93`:v\xf0Ι\x8b\xa1\xa6Ҩ\xa7+\x9a8/V3\xd8Y! !\x975\x8c\x8a{\xfdM\xe0\x19\xb4,rD\x84\xec\xc5\xc9j\xce\x18h\xe0\xe8Þ\xaf\xf4\xf2\r\t\xeap\xb2J\xf5\xc0D.\x1f\xf4\xa1\xbc)\xdf;p\xc1t\xce,\xbb3L\xcc\x12R0j\x8f\n引\xa1w\b\x97J\xe0\x04U\xab\xd3M\xd7A\xb2\xcf\xde\x11sۗ\xd8\xdb\u007f\xb0ŽQ\xbb+\xe2\x9d);\xdc\x1b\xce]\x11\r\xf2\xe3\xb87f\vM_)\xfb]\xc3(\xbf-\xe2;\xfc\x90uZ\xfe\xe6\xcd\xedE\x1bd\x1agǼ^\xe5\xd4c\v\x93\xd0|\xc1\xb4fR\x90\a\x98̥\xbcO\x82{\x12R\xe7g\xcc\xcc\xcb\xc98\x93\x8bF\x16\xfdH\xb3\x99>\xf7'{d\xb1\x93\xd6\xe4\x84\t\x1en=8\x0f\xa10:D\f\xecbҴ\xac\n\xabH\x80\xbe٠Op\xddD\xfbuj\x91*\xbc\xb1\xf0\xc1U\xaaMR\xbcN,(\xfe\x049&\xe3\xc5W\x97iT{r\x84Y\xefK\x9a\xb8\xb5{\xe9B?\x1f\xbe\x8d\x803\xd52\xd0\xfd\xdb\b\xfc\xb5\x86Erp\xc5!\x12\xed>6m\xf5\xe4\xae\x15\x12\x17\xd1N\xb4%\x8f\xb1v\x9b\x9f\xe2q\xd3\xe9\x90Tǃ\x84\xa3\x82\xde&^\xcc\xe9\b\x1d\x04(o\xac@K\x82\x18\x8c\x9d\xb9\x14R\xb9\xe3mUz)\x12\xdav\xbb\x81\xfe+\x97o\x864\xeb\x15\x8d\xc6v\xbdJO\xf7\xb4ç\xc3az\x1b\xd6\x06\xb2j\x8bs줗\xa9\u007f`f\x8e\xed\x9b\xe6\xd0\xfa@:f\x15hLX\x12\x04\x94\x92\xca\xdf\x1b\t\x89\x06\xa9u\x95\x9d\xfe\x83\x97[,S\xa0\xf6_ǺO\x06-iu\x80\xb5\x1fЖ\xe3\xc0t\n\x19\x9a썝K\x02\xeeB4'u\xbf1\u007f5\xdc2!\xfb\xcd\xc4\xe3\xb5`\x8f\x16\x03M6\xd0\x13\v\xa1/V7\xc8\xd31!Wi\x86h\xb8\xd8}f9M\x13\xba\xbfY\x94J\n\xa2\xd5\\\x1a7ч\xf3\xd2$\x03`V\xaf\x9dQ\xbadHɷ ͜\x8b\x83\x88a̽\xf0\xc0\xec\x11\xf4L(\xd5'\xb6\x99\xbf\xb1\x91\x8f\x91\xe6\x1c[\xcf\xe1\b\xfe\xb1\xe4\x18\u008e\\\x0e\xc2\xe2ø\xc4\xe5L\x1d4\x9f\x83l\xc9\xe9H\xcfn\"ϝ\xe1D\x9e/\xdaL\x0e\x10q&\x1f%ʓv\xf1\xdbUt\xee\xd9\xe6\xf7\xb6\x01\xa5\xe1Ѵ\xaaG\xd4ڽ8uU\xed\xab\xaa\xd8|\x15\xaa\xf1\xb3\xff\x8e͙ow\x90\x17\xd2\x15\x1bh\x96\xba\xf7}M\xe3ԔR\x18\xc6C\xf0jQpk<\xb6f\x1c\x9d\r\x89\xb0\x1a\xfd\x86\xcf*d\xd4\xed\x8d}\xa1\xff\xb8\xf3\xf2_(\x86\xaa\x96ơ\x9e\xf7M\xf5)\x17\xfd\x88Ԁ}\ay,\xd9fd\x88\xb7\x91\x9cM\xa7\x10n8G\x8a\xbd\x82*\xba\xb0\x86\x83&>\xf5w\x023殙V\xaaUd\x84\xa2*\x12v\xe6\xd4=fȂ\xcd\xe6\xceKC(\x96\xa2\x8c/7i$\xe1\x92\xe6\x04\xb9\xb8T䁪\x85\xb5Xh6\xc7\xfa\x8dT\x90\xbc\x8c>\xf8\xd8In5҆\x1a \xb2\x00WR\xc2\xed\x8dŷ\xab\xae\x15G\xa6C\xf3\xe9\xa1\xf9\xf4\xdech>=4\x9f\x1e\x9aOǎ\xa1\xf9\xf4\xd0|z\xef14\x9f\x1e\x9aO\x0fͧ\xdd\x18\x9aO'\x8c\xa1\xf9\xf4\xb614\x9f\xdek\fͧ7\xc7\xd0|\xbas\fͧ;\xc6\xd0|z\xdf14\x9f\xae\xc6/\xa7\xe9\xd9\xd0|\xfaSmz64\x9f\xdeg|\x1e\xad\xe1\x86\xe6\xd3C\xf3逗\xa1\xf9t\xd4\x18\x9aO\xaf\x8d\xa1\xf9\xf4\xe7JTC\xf3\xe9\xa1\xf9\xf4\xd0|\xba\xfb\xbb\xbfv;lh>\xfd\xa9\xdaa\x9f\x87\x8514\x9f\x1e\x9aO\x0fͧ\x87\xe6\xd3C\xf3\xe9\xa1\xf9\xf4\xd0|zh>=4\x9f\xfe\x15y\x15\x13o\x8a\xe4,\xaae\xdb\x1e\xdd\x02Rj\x9f\x84ڝ\x96\x91\x95\xd3)(\x14\xbe8\xbb\xa0\x1c\xa5]\x02\v\x9d\xa1*\xd1\xed3b\xb1Q\xa0\x02\x9a\xbb\x9a\x17q~\xc1\xcei\x85\"\xa4ؾ\xcc\xddK\x8d\f\x0f\x90˷_\xd7NהV\ai\xb7\x03q=oE\x96~W\xa8&\x84\x8e\xea\xacq\xb8u\t\xf8\x19\x97\xdaߓEdgs*\x04p\xaft\xb38\xccΩ&\x13\x00Ad\x01©-\x94h&f\x1c\b5\x86f\xf3\xb1]A\x9c\xf7\xcc\x13\x81\xefZW\xcfT\x1b\x05t\xe1\x88A\xc1\"\xb6Ϡ\x9d\"\xa1\x99\x92Z\x93E\xc9\r+\xaaI\x12\rX*#2i\xe9jZo0&\x89\xd7\x17PϪUD\xcfѕAk\x9cyC\x959\xc3v\xb0\x8b¬\xdc]\xaa8\xc1\x87];\x956$\xe3\f\x84\xf1\xabv\xf5\x19q\x9eg$67\x1e\xaf\xef\xba]\xd0\x1e\xb5\"G\xafHa\xb4\xbb\xe9\x936Q?Ŝi\xef}\xd3g\x84\x9a (\xa3\x89>\xd0\x12\x92}P\xe0ܬ\xfdO\x89ӬK\xfa\xeb\xfa\xaaY\xcd\f\xa7\x9c\xc6)\x86\x81)\x9d\xb5j9\xd4\xf6!&\xb9#[\x8d\x02\x8be\x87\x1c\x16\xf0\xe0\bXZ\xfe\x01\x19\xb0%\xfa\x83,g\x8c\x82\xb8\xceE\x9f\x9d\x896t\xd77\xa05\x9d\xc1Md\x8a\xcd6\a1f\xd9\xd4\xc4\x15ipa52#\x1b:\\}\x01\xa5m\x81F\x81]\xb85V6\xe7\x83b\xc6\x00\x121v\xae\xc2\xcc\xc3\xc8<\xf0\x8d\xc95\xafǼ\t\x1ft\x1f\x8a\xa5Z\xabO\x89\xdc]\xea\x98\x00\x99(\x06S2e\x82r\u007f\x0f#\xee\xc2\x11\xf6\xb3\xa0ڒ&\xd5\x1a\x14\xfa\\\xbc\xdb)\xe0&\x8e`\xbf\xf7\x884\xaa\x14\x19mt\xb9\xc4\xeawlJfx\xd7#Ҙ\x98SA\xfe\xf5\xab\u007f\xff#\x99\xac\xac\x16\x8cƱ\x91\x86\xf2j\x039\x88Ydm\u007f/\x9e\xdau\xc8*J\xe0l\xc1b\xddB\xd6\x18\xf8\xdd\xfd\xa4\x1dh<\xcfayޠ\xcf\x11\x97\xb38\x9c\xbe\n\xf7+\xab;\x931\x8a|\x92k\xbf\x83\rHβU2#\b\xcds\xc8\\>8W^\xcf\x13[_q,dQr\x97\x92\xf1u\xa8,\x19\x05\xb2\u0530Y\r\xab\x93\x0f\xc6RC\x98\xdaz\x87pwe\xca/%Ni\xf1\x85\xe7|h\xbcꙃ~\xe2\xaf)\xe7\x13\x9a\xdd\xdf\xc9\xef\xe4L\xbf\x15\x97JE\xb6\xd9G\xea\x0f\xf8\xe0\xd4j1\xf3R\xdcc\xcbۺְ\x8c\x93\xb6\xb24Ei\xc2%\xef\xa6{7lft=\xc8JA\v\x9e\xe1zv\xf0h\xcf-\xbag\xe3\u0601/\xbe\xe3\xb8\v\x97\xb3j\xde:0\x83\xd8\x1bA\xbf\xfb\xea_\xffͱ,\"\x15\xf9\xb7\xaf\xf0ʨ>sB\fu\x03\xab\xc8.(\xe7\xb1\xc1\xac&\x83\xb1D?\xee`\x12\xcf\xce#L:;x\x16\x93\xfb\xee\xee\xefho3\xa3\x81O\xcf\\\xed\x91\xe0A\x8c\x02z\x8cJܱ\x97\xb2X\xe4\xe6#\x18\xb4K\xc9\xcb\x05\xbc\x86%\xcb\xe2\"\xfc-T\xb7\xa0\x84H\x10g\xda\x10\x19W\x05b\xc2evOr\x0f\xa8q7c\xbd\x8fu\ff\x12n\xa1l]]}\xff\x84\xc46#ZТ\xa8j9(\xfa\xd0Z,\xf2\x92\xe8\v(45P\x9d\x9e\xd5\xe1\xa6\x1b\xab\xb0\x87w\x1bX\xad\x01\x05\x82)b\xa5\x9f\x1b\xfe\xe6\xf5FC\xaa\xd0A/)\xd7\xc0\xef\x89\xd3\xd3\xec\xce!g\x8e\x0f\xaf\xf7HzH\xbb\xd3\xd3±\xa8r\x05\x16\xd4x\x9b&1\u007f\x06\xa9\xb6\x00\xa5\x99\xb6\n\xcc{<\x13\xaf8e\x8b\xf4\x1b\xfe)\r\tz\xb4\x80M\xc9K\x185\xe84\xf2\xc5hD\xf7\xaa{\x14w\xb7ű4l\xe9\x9b\xce\xf5od\xee\x01!\xabvm\x98\xad)\x1bM\x0e\xdb\n=\xf4R8\xfa\xb2\xfd\xf75\x8e\x9a\\߭3\xfe8\xe3\x01r0=\xb3\xff\x18\xec\x1b'\u007f\x00\xee\x8d|\xdb/\xa3oݹ\xa6\xc3\xc6\x13T\xc3\xf4\xf2>\x92\xb1ˍM\x00o)\xc8O\x8f\x1c\xbf<\xfe\xa0<ܡ[ɂ\xce\xd0\x1a\xe9\x89\xf5up\xfd\n\xcdZ3\x19!V=c\x10.\xe4Um\xf3$\xa0\xeeB}-\x87\x83\xf9\x84\x95\xc7\x12 >\xd0\x15\xa1J\x96\"w\xb1\x87:(\xf5f\r\x1d\xd7R\xa4L\xd9G\xbf}\xa5\xa9\xaa\xa6-\xa6\t0A^\x8c_|\xf5\xb9\t~\\ɚ\xe0O,\xfc\xdc\xe0[\x1f\x14\v\xa1e{OL\xbc\xf1.ֺ\xc3zR\xd9I\x17\x03B \x0f\x8a\x19O\xcd\x0fL\x039\x89\xf5\x9a\x87!U\xb3\x96\xe5iۥ\x97Ի\xbd_\xd1S]N\x9eA28\x86\x9e\x80\x1edB]\xbex\x9d\x0e\xb3C\xac4\x91~\x94\xd2\xe9\xe3\xc4\xcd\xe6\xd8U\xbd:\xfd\xa0\x87\xc4o\xd9\xe5c\x91\xd09\xae\xb5m\x97\x8f\x05E\xaf\u007fQ\xef_\xca9\xa9E\xf8\xf6\xfdK\x80\xbb]-\xf8\v\xcc\xe92I\xfei\xb6`\x9c*\x8e\xa9e\xb7\x0e\x93dR\x1a\x02bɔ\x14I\xb7/\bYRŰڸ\x02\xac\x05\x99\x81&_\x9e\xbc\xbfx\x87\x19\xda)\x85\xbb\\\x99N\xbf?\xa5v\xe5\xc5\xfbb\xb4\xb1\xc8\xf5CP\x93t\x02\\w\b\x02>-e\xa2\x06\x10\xf0K\x13R\x95\bY\x94\xa6\xa4\x1c\v\xb6e\xbc\xd4l\xf9!eQ\xaa\xe5X\xe9ڿ \xc3ї\f|͢\xf8\xcdZyĚ\x91oT \x8cN\xd8@e\xb0\xaepۙV\x13IǡAU3I\xd8;\xd4}\xf5Tw\x85\xd0\xf7|\x8bM]Z\xcb6X\xd0\xd9Gp\xad\xc7\xd2t\x14UF\xd3c\x1c%\xfa\xbc\xcf\xfd\xa6\xdeV\x8bݛ\xbe\xe7\x9a\xf3:.\xe8#&TR<\xae{\xaePNq\x16\xe4=pP2\x88\xa5\a\xcaLuߔ\tf\xa2;K\xa0\xe1\xe4\xea)\xefG\x00Q[\xbf\xf7\xbe\xec\xf9\xe0\xd3\xdb\xf6\x14\x99\xed$\xab'g\xb1\xeb\xfb;^f\"\xe3e\x0e\xafx\xa9\r\xa8w\xa0e\xa9:\xa3\x1fk\xd1\xe5η\x1a\x97J\x1f|\xc0)s\x8f\x8ct&\x8bN\xf6\xa0\xea\x97+}\xc6O*\x0f\x05'\xf0~ru\x93\xc6U\xf6\xd2F*\xd8RY[\x94\x9c\xaf]j\xec\xec\x9b`\x9f\xb3\xdaɖ\xbb]\xbb\xec\x870EkH\xea\x82\ue372\xc6\v.\x01_s\x96\xa1\xc3^\x84?\xb8\xff\xb2\xb3\xf6\x1f\xe9X\xa1\xdbK\x97\x84\x8ayY\x18\x9d=\xc3\xe4\nQ\u007f\xc1UPp\x1f\xde\\\xfeV\xa7\xe0\u0383\xb4\x17Һ\xe80L$\x92\xc8\xea\xe7\xd7\x10\x16(g\x1f|m\x92M\x13c5\r\xfa\xe7&4\xbb/\x8bO\v}\u0601\xfa\x168\xea\x06O\xa0\xee\xbb\xe6\xb3\x0em\v0t\xf9b\xdc\xfe\x8b\xb5\xad\x197\x98\x85ܩ\x9a=\xb8LH\x8b5w\xe1,gK\x96\x97\x94\xb7(\xb0\x81\xb3\x1a\xb5x!\x95\xf1\xae\x04),\x89\xeb\xdfoḺ0\x18}Vw{\x81\xd1\xf1c\xd5o\x9f\n\xdb͂\xdb\xeeŵW\x1c\x16}\x1c\u05f7\x03\xd7\x01\x8f\x9e\xb5[\xfbak\x9a\xed\x9d/H\x18\x9eÕ_\\\xbfަ\xde\xectٷ\xa6z\xb1c:\xfe\xccT\x1b\xbe\xab\v\x83W\xc4\xfc\x9d/}F(\xb9\x87ՙK~\x15\xbe\f\xbd\a\xe2\xba\x06{\xb5\xe1\x1e\xb6\xab*\xf6e\ao\x1bb\xf6q\xe0\xdf\xc3N\xdfW\v\x1d\xf7\xb0\xaa\xc2\xee\x88\x17\xfbC\b\x80֨\xf0m\xdcw\xcb\xfe\x9dQν\U0010d035\xbd\xa7_\xa1Y\x81%>G*v\r\xc7ڷj\x96B\xcfY\xf1Tr\fŔm9\rد\x9a\xf7:\xf0\x8e\xfe\xae\xc4\x19\xb9\x96\xc6\xfe\xcf\xe5#\xd3O\\ȱ{\xf9Z\x82\xbe\x96\x06\x9f\xee\x8d\x1c7\xb5\xbdQ\xe3\x1eG\x92\x16\x8eG\xe2%%\xfcF\xb5̫\xa7\xef\xbfW(f\x9a\\\t˨<\x0e\xaaˊڃo\xde1D\xae\xb6[\x13u\xdfn\xc1wh\xb5\xdfhb\xae\xf9\xa9\xdd(oM\xc3M\xc1y\xb4\xdd_0A\xbb\xe04\x83\xdc\xf7\x99\xb0\x1bo\x1450c\xbb\xdb\x0f,@\xcd0\xd1 \x9b\xefZ\xd5\x1e\xa1\xc3=\x15\xefC\xa8\xc8\xdbYͨB\xfbs\xa8\xd0^\x86\xa0\xf8܂\x8d\xd0I\x8c\xf2\x9b'9ړ\x18۔E\xee\xd3^\x98\xd3\xc2R\xfe\xffX\xf6\x8cD\xf4\xbf\xa4\xa0L\xe91\xb9\xf07T\xb6|\xb7\xf9\x86\xd7u\x9a\xc0-\\\xa6\x89݅%\xe5\xe0\n\x15SA`g\xf9\x159ݐ\x96g\xe4a.5J\x86:\x88tt\x0f\xab\xa3\xb3\xd6\t\xd9\x02\xd1>|%\x8eΪxY\xebPVr\nC\x18G\xf8\xb7\xa3\xf1\x86\x80\xdd\x02\xfb\t\xb1\xbb\x93Jv\xfc\xb1Һ߸Ԧ͝ߗ>v\xd2\xc6F\x05\xc6\xe67[\xc4\xd1T\x8e[fE\xd7'\xa9\x9a\x81\xe92A\xbcƌ\xa9\fcr!V\x1bp\xf1b\\\xa7\xca퍸\x8aΊV\xfb\"li\x89\x19\x12\rP>qIw\x1b\xc2\xf6\xc1\xcd]۱)(@\xd5\x12\xaee\x0e7Ru\xe5w\xb4\xe35\xeb\xcfwX\xb4\r\xa4H\x9ec\x9e=>\xda1_ԍ\xbd^|H\xe3\xd3\u007f\xff\xe6\xfdS\xebyW=\xb8{!\x14{k\xb8\xfd\xeaX\x87}\xdfݵ\x11\xb4\xd0si\xc8I\xb8ԞqY\xe6\xfef\xbf\xea\x88\xf7\xf4X\xa5\xce搗\x1c\xba\x9b\x0en\x94\xa9\f\x8f\x06ݯ\x14\xec\x9fe\xbbEo\xf0P\xf9\xa7\xbb\x0eB\x8d\x93ʴnxT-;\xfa\v\xeeg\xf8\x92\xb7\"=\xe4-\xa9\xf0M\x90\xee,Hm\xf0\x9e\x920\x8d\xa2k\xc1\xec\xcc|{\x0e\xffx\xe75\xbb\xb0\x86mǡ\x83}t\vב\xff\xeaFD|˱r\xb9\xf4m\x18]4w\xebr\xee3Z\x98R\x85\xf6ץ\xc2~`u\v\x13\x1a0\xe7Q\xd4\x02\xbb\xdd0\xf0~A&\xc5\x1d[\x806tQ\x18yw\x0e\x88\x0e\xa0wh\x9c\xa8%\xc6\x02\x02\x1c\xcc\xf7\x9dJE\xb0\xab^5\xf5M\x8a\bW\xc7sj`\xd4y\x93p\xaf\x93\xd8)u\\\x8f\xdc'\x10|\xe9\x1a\xe9\xa2\x04\xca0O\xccn/\xe7\xee\xedp\xf3\xc0_\xf5{\x00\x05d\x06¢\xb8\x93\xe3xUֵz\xb2\x88\xf5'\xb8r\xe0ܹ\xeeX%塅/V\xc0\tRe\xab\xcb\f\x1f\xe9\xbce\xb5\xeb\x02\xbd\xbf\xf1\xf1\x0e\xa8\xee\xca[j!\xe2\xeb\xe6\xb3\xdeVq8\xc0\xa5g\xd4\xf5\xc9s\x1dK\x99\x82N\xd2\xf7S\x92\xf8\xe5\x883NH1\xa7\xfa)vyc\x9f\xa9Zr5\x0ee\xc5)\xdfm\x99\x13\x88r\xb1\t|D\xae\xe1\xa1\xe3ׯ\x91\xe8\xdf\xfb\xb6\xca\x1dGiD\xaeč\x923\xd5U%v\x14\x0eV\a\x85\x8c\xc8\rU\x86Q\xceW_ww\xa3\t_\x8f\u009d\x9fʓZ\x82{\xacVD\x99p\xe7\xcfR*\x9d\x84^\xd5~c\x8fuM\xc7\x1d\x9b\x1c>:\xb6F(\x04G\x05k\x03\xc5\x14,mF0\x9dJe\x9c\xe2;\x1a\x116\xf5\xfc\xb3K\xf9\xa0\x8c\xa3\n\xe7\x82h\x84\x99\xda@\xac\x04\x92T\x84\x8a\x15QH\xac\xd8\xfakAW\xce\x05O\xb3\xac\xb4\xc7\xf3\\\x1b\xda%gz9\xe4Ш\xf4D\xb6\xc5\xdak\xfb\x82\x9b\xcfW\xdd\xf7\xab:%\bΡ\x0e;e;ΰ\xb5\x1a\x18\xde\xea\xaftPmOY\xb7%\xf2TQ\r\xbc\x13y\xb5\xdd@n\aܪ\x87\xc3\x02ܕʍeȦ\x8a\xbcݝ\xc8tx\xd5\xeeY6NJzf\xaed9\xabڥoc\xa0\xdb܊%^\xfa-x9\xb3d\xed\x1d}\xa6T\xa2a\xbdx\xd7_^Ow\x17\xd0\xdd(ܡ\xbb\xeb\x96\xc4{J\x01l=\xdcO\xb2W\xd7\xdd?]\x89\xbc\xacX\xea\xe5>\xb2\xf9\xfd\xda\xe3k\x81\x14+\xa5k\x88^\x9ev \xe7\x84M\x9d\xd74\xb3\xb3\xdeL\xde\xf9\xc0\x01\x91\a\xaa\x04\x13\xb3\xa7\x16\xff\xbd\u007f\xacC5\xf1\x10:\x94\x93\x8eET\xeaJ\x94r\x12&\xb9%קRXz\xa8'\x9dgh\xe3G$企d\xff%\xffK\xadֻ2\x17>P\xe9p{\xcfD\xfe2$\x04\x16\xbcT\x94\xfb\u007ffR8\xb6\xa0_\x92\x1f~\xfc\",\xe8=(]\xfd\xf8\xff\x03\x00\x00\xff\xff\xe2w\xf4\xcch\xec\x01\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec<\xcdn\xe4\xb8\xd1w?E\xc1\xdfa\xbe\x00\xee\xf6\x0e\xf6\x12\xf86\xeb\xf1\"\xc6Nf\acǗ \a\xb6Tm1\x96H\x85\xa4\xda\xee\x04y\xf7\xa0\x8a\xa2\xfeZjQ=\x1ed\xb30/vKd\xb1\xfeXU,\x96x\xb6Z\xad\xceD)\x1f\xd0X\xa9\xd5\x15\x88R\xe2\x8bCE\xbf\xec\xfa\xe9\x8fv-\xf5\xe5\xee\xfdٓT\xe9\x15\\W\xd6\xe9\xe2+Z]\x99\x04?\xe2V*\xe9\xa4Vg\x05:\x91\n'\xae\xce\x00\x84R\xda\tzl\xe9'@\xa2\x953:\xcfѬ\x1eQ\xad\x9f\xaa\rn*\x99\xa7h\x18x\x98z\xf7\xc3\xfa\xc7\xf5\x0fg\x00\x89A\x1e~/\v\xb4N\x14\xe5\x15\xa8*\xcf\xcf\x00\x94(\xf0\nl\x92aZ\xe5h\xd7;\xcc\xd1\xe8\xb5\xd4g\xb6Ąf{4\xba*\xaf\xa0}\xe1\a\u0558x*\xee\xea\xf1\xfc(\x97\xd6\xfd\xd2{\xfcIZǯʼ2\"\xef\xcc\xc7O\xadT\x8fU.L\xfb\xfc\f\xc0&\xba\xc4+\xf8LS\x95\"\xc1\xf4\f\xa0&\x8c\xa7^ը\xef\xde{\x18I\x86\x85\xf08\x01\xe8\x12Շ/\xb7\x0f?\xde\xf5\x1e\x03\xa4h\x13#K\xc7\xec\t聴 \xe0\x81\t\x04S\x8b\x02\\&\x1c\x18,\rZT\x8ez\x94\x06W\x01ô\x01\t\xa0\r\x94h\xa4Ne\x02?\x89\xe4\xa9*\xfd`\x9b\xe9*Oa\x83`*\xb5n\x06\x94F\x97h\x9c\f,\xf4\xad\xa32\x9d\xa7\x03\x8c\xdf\x11Q\xbe\x17\xa4\xa4+h\xc1e\x18\x18\x83i\xcd\a\xd0[p\x99\xb4-\xfe,\xfe\x1e`\xa0NB\x81\xde\xfc\x1d\x13\xb7\x86;4\x04&`\x9dh\xb5CC\x1cH\xf4\xa3\x92\xffl`[p\x9a'ͅ\xc3Z\xaem\x93ʡQ\"\x87\x9d\xc8+\xbc\x00\xa1R(\xc4\x1e\f\xd2,P\xa9\x0e<\xeeb\xd7\xf0gm\x10\xa4\xda\xea+Ȝ+\xed\xd5\xe5\xe5\xa3ta\xa9$\xba(*%\xdd\xfe\x92\xb5^n*\xa7\x8d\xbdLq\x87\xf9\xa5\x95\x8f+a\x92L:L\\e\xf0R\x94rŨ+^.\xeb\"\xfd\xbf Q\xfb\xae\x87\xabۓ~Yg\xa4z\xec\xbc`\x85>\"\x01\xd2l\xaf0~\xa8\xa7\xa2e4=\"\xee|\xbd\xb9\xbb\xef*\x93\xb4C\xee3\xdf;\x1a֊\x80\x18&\xd5\x16\x8d\x17\xe2\xd6\xe8\x82a\xa2JK-\x95\xe3\x1fI.Q\r\xd9o\xabM!\x1d\xc9\xfd\x1f\x15ZG\xb2Z\xc35\xdb\x0f\xd2êL\x85\xc3t\r\xb7\n\xaeE\x81\xf9\xb5\xb0\xf8\xdd\x05@\x9c\xb6+bl\x9c\b\xba\xa6o\xd8\xd9s\xad\xf3\"\x98\xa9\ty\x855~Wb\xd2[24Nne\xc2\v\x03\xb6ڴ&\xc0v\xadYh\xe3\xab\x16j\xd3C݇ϏZ\x9bk\xa3\x15\xe0\vɾ]ͤ;\xcf\x19*Za\xa6R\x84\xe7\x01L\xa8M\xcc\xfa\xe0\xcd\x047\xf9\x15\x16%-\xd7\x19\x14\xef\xebn\x84\"\xf1(mܑ7(ؘ7][580*<]\x86į\x9dLk\xabq\xc0\xcd\xe3\x1c\xf5\x88mE\x95\xbb\a\x9dW\x05\xda{\xfd\x15\xad\x93\xc9X\xcf\x01\x11\x1fG\a\x06y\xa3%\x0e\xbb\f\r-N~\xc1\xf6n\x14.\U0001ac58\xb2\xc9\x13O\b\x026\x9e\x03d;\xf3\x1cJ\x9d\xc2\xce\xcf\x04\x9b}@\xfaP6\xad|6Z\xe7(Ƹ\x86/I^\xa5\x986.o\x94/\x03jo\x0e\x06qp \xa4\"-#WL\xa8\xaa\xe6\xed\x04\x9d쯄A C!\x95\x87\t\x92U\xb0&y\x9c(鰘\xc0\xf3\xa8F\xfaFA\x88\xd8\xe4x\x05\xceTc\xba\x1e`\bc\xc4\xfe\b\xcfB\x00\xb5\x84e͘ڜ\xe72AbVc\xb4\x99k̚\t\xfa\xfe\a\x19\x96i\xfd\x14ä?Q\xbf\xd69A\xc2q*l0\x13;\xa9\x8d\x1dF8\xf8\x82I\xe5pj\x1d\t\a\xa9\xdcn\xd1\x10\xac2\x13\x16m0)ǘu\xdcDP3\xc7\x05\u007f@W+t\x12\x1esc\x8a\x146œP\x81\x11'\x8b]\x95 U*w2\xadD\x0eRY'T\xe2\xe9\x13\r~\xe3\xf4\xc1\x9cB\x1c\xe0\xef\rp\xa0\x82\xa4\xd4\xf3lZ!\x85\xa3\x856\xe3\xca\x11\xda!\x98i6l\x04Y@=\xe5\x8e\xdaf(\xa2\xafQI٥\xb6v碕\x94\x0f\ns\xb1\xc1\x1c,\xe6\x988m\xa6\xd9\x13\xa3\x04\xbe\xc5\xda\xcf\tΎX\xd2\xd6g\x90\xa2\xce\x1aѶ9\rϙL2\x1f\xbf\x91\x961,H5Z\xb6\x18\xa2,\xf3\xfd1\xa2!F3\xea\xc9\xe6\x8cF\xdb\"\xcc\xc7\x10\xee\x94!i[\xa4\rnی5\xees\xbdQ\x9b7\xa6\xf7\xd0Tߤ\xec\xb7\a\xc3__ىݒ\xf6w\xb7[\xc0\xa2t\xfb\v\x90.<\x8d\x81J\x01V\x8b\xc7\xefLp\xa7\xad\x96\xdb\xe1\xe8W_-\xaf\"\xb5\x06\x8d߉\xd0\xd8Y\xddվj\x91\xc0>uG^\x80\xdc6\x02K/`+s\x87\x1cK\xcd!\xda\ttf%\xf7\x9a\f\x8a\xf5\xbd\xd4\n\xe1\x92\xec\xa6\xd9\xd2F\x8c\x18\xf0j\b\xc0\xc7\xe5a\x0f\xc32\x88\x00\tMP\xc1Y\x10i\xb0\xf0ٕ{^\x1f\xed\x13\x8e\x00?|\xfe\x88\xe9\x1c\xcb ^S\x0f\x88\xfa0\x88t\xba(0\x81Q ;Dq\x98\xd6\xec\xf1|\x0e\xed\x02\x04<\xe1\xdeGV\xa3\x9b˱F\xa2\x15\rH\x83\x9c\xd0c3\xf2\x84{\x06Ug\xe8\xa2\xe0-Q\x15ߞp\x1f\xdbu\xc0T¯\xceQx\xee\xd2\x03\xa6\"f)\xb5\xadaj\xbdv\xc0\xe98ba\x99Q\n-p\xfcD\xb2\x1b\x81\xf5\xd2\xd2O\xb8\u007fg\xbd\xf8h\xd5d\xb2\\\xc0\x012\xd8`\x91WX\xc8\xc7>\x88\\\xa6\xcdd\xbcN\x16@\xbcU\x17\xf0Y;\xfas\xf3\"-\xa1\xa8R\xf8\xa8\xd1~֎\x9f|W\x16{\"Nd\xb0\x1f\xcc\xcbRy\xb7@|Y4\u007f\x8b\x03\xbbPR\xd1Fl\xd2\u00ad\xa2\xfd\x99\xe7\xcf\x121e\x18\x90\xf3h\x15\x95匮\xd2j\xc5n:̶\x00h\x17\xafZT\xda\xf4$u\xb1\x10\xe2(\x8a5z\xf7\xe4\xad\xfc\x9b\x83\\\xf8\xb1f\xb0\xccE\x82)\xa4\x15\xe7\xdb9\xf1.\x1c>\xca\x04\n4\x8f\b%\xf9\x8dx\xa5Z`\xc9};A\v\xe3C\x8b\xd0j\xb7\x90\xc6!\xb6\xa2U\x1f\xd93\x889\xaa\xfbD\x96\xfdx\xf78*ٽs<\x14\xc5}\x91\xa6\x9cz\x16\xf9\x97\x85\x9ee\xa1\xbc\x0ec\x10\x8f\xa4\x0f?\n\xc1\xc9\xde\u007f\x91{e\xf5\xfew\x9c7\x14\xd2\xd85|\xe0\xc3\xcd\x1c\xbb\xe3C\x96\xb03U\x14H\xc2DZ =ى\x9c\xc2\a2\xde\n0\xf7\xc1\x84\xde\x1eDPq&\xe69\xd3\xd6\xfb\xfc\xadĜO\xb7Οp\u007f~q`\xbd\xceo\xd5y\x1cL\xb2\xf9\aF\xab\x89Z\xb4\xca\xf7p\xce\xef\xce90[\xb2DN\b\xde\x16hutW>~^\xb2\x15\xa0\xbdv\x88ZhpsHK!\xfc\x1c\x15\xd1:]j\xeb\x16\xa1\xf5E[\xe7\x13\x80\xbdp{$C\x18\xb3\xfb\xab\xb3\x86 \xb6\x0e\rX\xa7M8\x10%\xb3;H\x90\x93\xe4\xed\xbc\xecI\xd4M6\xd2\x03\xa6M\xe6yk!\xbcM?\xf7'\xa5\xf4\xff<̄\x83%\x86]\x1a\x9d\xa0\xb5\xf3\xaa\x14\xe99f\x12\xb6M\xb2V\xf8\xcd\xdb6\xca4Ǥ\x92C[\x16\x8a\x13kO\xd8\xd8ܼt\xf2\xced\x86\xe8w\x8c*\x9f\x82#p\xd1KQ\x88\xe1\xe1|4\xba\xd7~tX\x8050\xbfa2\x8f\x15\x1b\x95eqs\xad\x92\xbf\xb5\xc0\xa3\x90\xea\x96'\x82\xf7\xdf-X\x81`\xca\xf1ԭ\xccu\x18\xdf\n\xa4y\x10\xbb\u007f\x85pԬ\xf9\xac\xc6`O\xb2\x87'\x19\xf1\x92\x02\n\xa6\x95v\xdddM=\xd3;\v[i\xack\x11^\x00UZ>N\xfe\xbe{Luc\xcc\xc9[\xcc_\xfd\xe8NZ1\xd3\xcfuaĒ\x8du`~&v\br\v\xd2\x01\xaaDW\x8a\x13^d.h\x9a\x05\x10\xbd\x10\xbd3\x89\xf4\x99\x9d\xc1\xaa*\xe2\x19\xb2b\xed\x94j6;\xd6\x1d\xf2\xb3\x90q\xd9)8M\xacN\x16\xa8\xabY\xd7\u07b6~e\x87\x1fݫ\x80)ċ,\xaa\x02DAbY\xb2o\xdc26M\xb9\x8c\x97\xf5\xb3\x90\x8e\x0f\xfd\b6\x89g\x995MtQ\xe6\xe8\x106\xb8Ն큕)6\xe1C-\xff\xd1z\x93\xa9&`+d^\x99\x056z\xb1d\x96\xee\xdbj\xf3\xf4\xfa\x9b\xb1xDV\xcc\xccȤ\xfb\x82\xa0y\xde\u007f\x94fY\xc8\xfc\xc5\xe0뇦\xa5\x91\xa4\xa5z.:\x9d\x85\xc9\xd1k?:\xad\x95W\xa8\xfdTx:\v\x951y\vO\x9b\xf6\x16\x9e\xbe\x85\xa7o\xe1頽\x85\xa7o\xe1\xe9[x:\xde\xde\xc2\xd3N{\vO\xa3\xfdG\f\x86\xfe\xab\xa3#\x1d\xa2\xb0\x8a,\xc1\x98C{f\xae\xba\xd2\xe8:\xaf\xacC\xb3\xa4B\xfav|\xe4H\r}⻬\xf8k\xad)\xadiKWZ\xa7הLӒ\f\x8b\xc9\u007f\x8b\x11\x11\x85G\x97AOW\xdb\xc7\x16\xd0͕\xcd\xf5kǛr5\xff\xdf\x04C\x9c\x0e\xd3\xd7\xd2\xf3\xdf\xf8tk\xae\xfa\xb5o\xbc\x0f\b\x18\xff&\xeb\xca#\xcb\xdaf\x8aَ\x17\xe2Oy\xf8\xc0\xcb\xc1\xe1B\x9f\x99\xa6W\xf8\xfd\x9b\xe6eD\xb5\xd9t\x8dY}j\x89N\xecޯ\xfbo\x9c\xae+\xce&({\x96.\xf3\xdf\x1f\xd1\xd6U=v\xcbڃ\x9e\xd6\xdf\xfe\ry<\x01Q\x1bP2\xf7\x02\b\x10z\xec\x87_K\xbfE>y\x9d\xcfo\xd4\xe2\xebҖV\xa35\xf5C\xf3^\xe5\x1bjЖ} 0[o\x16\x834\xc4T\x99\x8d\u05cf\xcd@]R[\x16\xbb\a\x8f\xa8#\x8b\xaf\x1e\x8bc\x0f\xf0\x17\xbb\xb15c\xd1Q[l}\xd8\xf7\xa9\n\x8b\xac\x05\xebTx͂<\xb1\x02,\x9aaq\xd5^\xd15^\x9dʭyn\x1d\xa9\xec\x1a\xafך\x059V\xcf\x15S\xa5\x15\x85ktmVSq5\x9fI\xfc\xa6\x8a\xacׯ\xfd~\xcd8\xffx}UTUU\xd4^`\x1e稺\xa9\xa5\xd5RQ\\]Z\x19\xd5T=\x1d\x998\xaa\x1e\xea\xb0\xd6\xe9\x18)\xb3UP\xd3\x15N\xc7\xc0\x8e\xd5>E\xd45\x1d\x01٭xZ\x1c\x06\xccj\xd3L\x87\xf1\xaf\xeaC\x9b\xf7\xb5\xf9\u007fC\x03\xbf\x95hmR4\xb3\xbb\x92%\xa8Ϣ\xdd\xcfW\x0e\xe6\x1f|\xae\x13>&\xa7^\xdd\x1d\xcfT\x14\xa5\x9b\xcfG\x12\xf8E\xaa\xd4k\x12-\x96NL\xc37Tp\x81Y\x13fMWܶ\x11\xed`\xb7e\xb1\x14d\xd4S\xd8\xec}VȮ\xe1F$Y\xd3q\x02\"Ϝ\tK;\xfbB88o\xb6\xb1\x97a$=9_\x03\xfc\xac\x9b\fB\xe7\xf3\xd0\t\xb8V\x16e\xbe\x87\xca\"\x9c\xf7\x01}\xdb.lRw\xac\x12\xa5\xcdt\xb8I b#v\xd7\x1f1\x92/\t\xf7\b$\xb9\xae\xd2f\x86#\xe2\x16j\x0f_\x1e8\x92㯧\x93\xf6+\xf3:R\v\xfb\xaa\xc1G\xe8\x13 \xa7.\x8fXIJ鬊uڈG\xfc\xa4\xfd\xbd\x1a1<\xeb\x8f\xe8]\xadR\xdbՐc\xad\x8b&'5\xd9\xd36\x04\xd8\x1e\xbdԫ\xadMB\x11\xb6S&wf\x9d;\x97G\x10w\u007f\xff\xc9\x13\xe4d\x81돕\xcfp\xadJa,\x12\xa7\x03\xa1~\xd0f\xda\x12f\xfa\x19r]\xf3\xe1\xa7!\x1d\x06\xf9\xa8\x87\x93i'Q㯰\b\xea\x1bX\x17\xa3\xf2\x0f\xe3#;\x9b\xe5\x8e\x10\x8f\xe5\xc4\xf4v\x12\x96\xb0V'\x92m\x11\xa7(\xf8\x84\xe5\xfbݱp,\";b2*\x8b\xbf>+4_\xc3B\xb5\xb7\xcaKj\xe6֕\xbf\x1c\f\f\x02\x1e3\x1fd\xff\x06\xdd\xc7\xfc\x9e\xaa\x19d\xfd\xdd_ތ3\xe3\xc2=4\x87\xac\x9bY\xff\xd3k\u007f<\xa2^\x8d_\xfd\xb2jn\xa39\x8b\xe0\xacu\xc2U6\xe6\x82\x1f\xee\b\x89(]ej\xf7\x9aT\x86/\x9c \xe8\xefc8튟\\X\x17%\xcbOM\xc76\xc3`\x9d?\x8f\n\x06\n\x9e\x85\xe5\xbbs\xfciԨkn.\v\x9a\xbc=\xc7{\xd7+H\x85\xc3\x15\xc1?M\x9c\xa3\xeb\x80/蘡\xf4\v\xf5iN\xc7kF\xf3\xc0p\xb1\xc7\xdd\x14\xea\xe3ǝ+\xf8\x8c\xcf#Oo\x14\x11q\xb8\x19\xf5g\x9a\x98r\x86b\xecz\xb3\xa3$\xee\x9aQ|\xa0\xfc\xe8\xde\xfew~\xce?\xc2\xe5~\xfc3\xd1\xca\xc7\xd4\xf6\n\xfe\xfa\xb73\xa8}\xedC\xb8\xc1\x8f\x1e\xfe'\x00\x00\xff\xffa\r\b,+Q\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4V͎\xe44\x10\xbe\xe7)J\xcba/$\xbd\xab\xbd\xa0\xdc\xd0\xc0a\x05\x8cFӫ\xb9 \x0en\xa7\xd2mƱCU\xb9\x87\x06\xf1\xee\xc8vҝN\xd2̀\x84o\xb1\xeb端~REY\x96\x85\xea\xcd\x13\x12\x1b\xefjP\xbd\xc1\xdf\x05]\xfc\xe2\xea\xf9\x1b\xae\x8c\xdf\x1c?\x16\xcf\xc655\xdc\x05\x16\xdf=\"\xfb@\x1a\xbf\xc3\xd68#ƻ\xa2CQ\x8d\x12U\x17\x00\xca9/*^s\xfc\x04\xd0\xde\tyk\x91\xca=\xba\xea9\xecp\x17\x8cm\x90\x92\xf1\xd1\xf5\xf1C\xf5\xa9\xfaP\x00h¤\xfe\xc5tȢ\xba\xbe\x06\x17\xac-\x00\x9c\xea\xb0\x06F\x8aJ\xa2$0\xe1o\x01Y\xb8:\xa2E\xf2\x95\xf1\x05\xf7\xa8\xa3\xe3=\xf9\xd0\xd7py\xc8\xfa\x03\xa8\x1c\xd06\x99\xda&S\x8f\xd9Tz\xb5\x86\xe5\x87[\x12?\x9aA\xaa\xb7\x81\x94]\a\x94\x04\xf8\xe0I\xee/NK`\xa6\xfcb\xdc>XE\xab\xca\x05\x00k\xdfc\rI\xb7W\x1a\x9b\x02``*\xd9*\a.\x8e\x1f\xb39}\xc0Ne'\x00\xbeG\xf7\xed\xc3\xe7\xa7O۫k\x80\x06Y\x93\xe9%\xf1\xbd\x12\x19\x18\x06\x05\x03\n\x10\x0fJkd\x06\x1d\x88\xd0\td\x94`\\\xeb\xa9K9:\x9b\x06P;\x1f\x04\xe4\x80\xf0\x94(\x1f\"\xab\xce\"=\xf9\x1eI\xcc\xc8Ơv\xa9\xbe\xc9\xed\f\xeb\xfb\x18N\x96\x82&\x96\x1dr\xf24P\x82\xcd\xc0\x00\xf8\x16\xe4`\x18\b{BF's\x94\x89\x9f\x16\x94\x03\xbf\xfb\x15\xb5T\x03\x0f\x1c\x93\x15l\x13\xab\xf5\x88$@\xa8\xfdޙ?ζ9\x12\x12\x9dZ%c\x9d\\\x8eq\x82䔅\xa3\xb2\x01\xbf\x06\xe5\x1a\xe8\xd4\t\b\xa3\x17\bnb/\x89p\x05?y\xc2Df\r\a\x91\x9e\xeb\xcdfod\xec:\xed\xbb.8#\xa7Mj \xb3\v\xe2\x897\r\x1e\xd1n\xd8\xecKE\xfa`\x04\xb5\x04\u008d\xeaM\x99\xa0\xbb\xd4yU\xd7|EC\x9f\xf2\xfb+\xacr\x8a\x95\xc5B\xc6\xed'\x0f\xa9!\xfe!\x03\xb1\x1dr}d\xd5\x1cŅ\xe8x\x15\xd9y\xfc~\xfb\x05F\xd7)\x19s\xf6\x13\xef\x17E\xbe\xa4 \x12f\\\x8b\x94\x93ؒ\xef\x92MtM\xef\x8d\xcbե\xadA7\xa7\x9fî3\xc2c\xed\xc6\\Up\x97F\x11\xec\x10B\xdf(\xc1\xa6\x82\xcf\x0e\xeeT\x87\xf6N1\xfe\xef\t\x88Ls\x19\x89}[\n\xa6St.\x9cY\x9b<\x8cc\xeeF\xbeV\xba{ۣ\x8e\x19\x8c$Fm\xd3\x1a\x9d\xda\x03ZO\xa0\xd6T\xaa7!I\x1a\xff\x12\xcb0I2\x9a\xd9|\x89\xfd\xf9:\x9a\xf5q\x92^\x0e\x8aq~9\xc3\xf4\x10e\xe6\xfe\xadiQ\x9f\xb4\xc5l\"O\x13|\x1dJ<\xe8B\xb7\xf4Y\xc2=\xbe\xac\xdc>\x90\x8f\x935\xcd\xf5\xebs\xa36 \xffo\xf6\xc6-\u009dG\x96\xa5\xd2?l:\xaa'\x03z0\x04\x14\x9c\x8b}\xbb\x98\x90\t\xc8|\x92/d\x8c`\xb7\x82f\x15\xcfg\xd7\xfa\xb4\t\xa8\xe8XI\xee'\x1c\x92=\xf8ɸV\f\xde\xceu>\xcb\xe1\xf5&B\xf3I\u007f\xd2\xff\xa6\x1cǍ!\\\xf5]&T\xab\x0f\xd1\xe3\x1a\xe3\xeb\xfd5\xa0\f֪\x9d\xc5\x1a\x84\xc2R;\xeb*\"u\x9aW\xcdXj\x97}\xea\x95\x02Z(\xc4>y9\xa0\xbb\xd5\r\xf0\xa2\xe6S\xfe\xca3\xecN\xb7T\xef\xce\xcbᲥr\xe9\xd6\x10gw)f\x85\xb37\x91\xb2\x9a\xbd\\ҫ\x9bǂ\x90\xedTv\x9c\x19W\xad1.\"\xcb\x18nBXM\xf6\xe22\x99o&\xe1\xb1xR\xfbi\xc0\x1cv\xe7?\xfd\x18\xc80\x92\xe1Ͽ\x8a\xcbt\x8e\xcb\\/\xd8\xdcϷ\xe0w\xef\xae\xd6\xd9\xf4\xa9\xbdkL^\xe2\xe1\xe7_\x8a\xec\x18\x9b\xa7q\a\x8d\x97\u007f\a\x00\x00\xff\xff!\xec@\xb2>\f\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4VM\x8f\xdb6\x10\xbd\xebW\f\xd2C.\x95\x9c \x97B\xb7\xc0\xed!h\x1a,\xe2ԗ\xa2\a\x9a\x1c\xd9ӥH\x963t\xbb\xfd\xf5\x05)j\xfd\xb1\xf26\v4\xbaq8|\xf3\xe6͇ݴmۨ@[\x8cL\xde\xf5\xa0\x02\xe1߂.\x9f\xb8\xbb\xff\x81;\xf2\xab\xe3\xdb果\xe9a\x9dX\xfc\xf8\x19٧\xa8\xf1G\x1cȑ\x90w͈\xa2\x8c\x12\xd57\x00\xca9/*\x9b9\x1f\x01\xb4w\x12\xbd\xb5\x18\xdb=\xba\xee>\xedp\x97\xc8\x1a\x8c\x05|\x0e}|ӽ\xeb\xde4\x00:by\xfe\x85FdQc\xe8\xc1%k\x1b\x00\xa7F\xec\xe1\xe8m\x1a\x91\x9d\n|\xf0b\xbd\x9e\x82uG\xb4\x18}G\xbe\xe1\x80:\xc7\xdeG\x9fB\x0f\xa7\x8b\t\xa2\xf2\x9ar\xda\x16\xb4ME\xfbXъ\x83%\x96\x9f\x9fq\xfaH,\xc51\xd8\x14\x95\xbdɬ\xf80\xb9}\xb2*\xde\xf2j\x00X\xfb\x80=|\xca\x14\x83\xd2h\x1a\x80*O\xa1\xdc\xce\x02\xbc\x9d\x10\xf5\x01G5\xe5\x02\xe0\x03\xba\xf7w\x1f\xb6\xef6\x17f\x00\x83\xac#\x05)\"/'\x02Ġ`f\x02\u007f\x1d0\"l\x8bj\xc0\xe2#r%\xfd\b\n0\xf3\xe7\xee\xd1\x18\xa2\x0f\x18\x85f\x81\xa7\ufb3dάW\xbc^g\xea\x93\x17\x98\xdcW\xc8 \a\x9c\xd3GS\xb3\x05?\x80\x1c\x88!b\x88\xc8\xe8\xe4T\xae\xd3\xe7\aP\x0e\xfc\xee\x0f\xd4\xd2\xc1\x06c\x86\x01>\xf8dMn\xc7#F\x81\x88\xda\xef\x1d\xfd\xf3\x88\xcd \xbe\x04\xb5J\xb0V\xf6\xf4\x91\x13\x8cNY8*\x9b\xf0{P\xce\xc0\xa8\x1e b\x8e\x02ɝ\xe1\x15\x17\xee\xe0\x17\x1f\x11\xc8\r\xbe\x87\x83H\xe0~\xb5ړ\xccc\xa5\xfd8&G\xf2\xb0*\x13B\xbb$>\xf2\xca\xe0\x11\xed\x8aiߪ\xa8\x0f$\xa8%E\\\xa9@m\xa1\xee\xa6n\x1f\xcdw\xb1\x0e\"\xbf\xbe\xe0*\x0f\xb9\x8bX\"\xb9\xfd\xd9Ei\xf7g*\x90;}j\x84\xe9\xe9\x94\xc5I\xe8l\xca\xea|\xfei\xf3\x05\xe6Х\x18\xd7\xea\x17\xddO\x0f\xf9T\x82,\x18\xb9\x01\xe3T\xc4!\xfa\xb1`\xa23\xc1\x93\x93rЖ\xd0]\xcb\xcfi7\x92\xe4\xba\xff\x99\x90%ת\x83u\xd95\xb0CH\xc1(A\xd3\xc1\a\ak5\xa2]+\xc6o^\x80\xac4\xb7Yد+\xc1\xf9\x9a\xbcv\x9eT;\x1f\xb0\xba\xc4n\xd4ky\x927\x01\xf5\xc5\x00e\x14\x1a\xa8N\xf6\xe0㕮j\x9e\xf3e\xbc\xee\xc2}y\xc0a\xda\xf1\x03\xed\xaf\xad\x00ʘ\xf2\v\xa1\xec\xddͷ\xcf\b\xb6\x90\xf7\xbaDʍ:\xf8\x98\x19\x1d\xc9`l\xe7<+\x93\x14k\u0084\xd6p\xf7\x04\xf2\x86\xe65\xc9\x02\xf9\x94\xe6\x05\x8f\xbbꖙd\xa1\xe7gӆº0\xcb\xfaT{\xbc\xc5`!\xe3\xdc\xe1\x14\xf1jV\xdb\xc7\x00_\xd5;\xa2$\xf1˻\xa7<\xab\x9e\xbb\xdaA:ňN*\xe6¦\xfd\u007f:(\x1c\x14\xe3\u007fh\xbe\x1c\xe1.\xbf\x9c\xcb`i@\xfd\xa0-N\x80\xe0\x87\x85n{\x11\xe5\xfc\xa1K\xe3Sn-\xbc?*\xb2jgq\xe1\xeeW\xa7n\xde\xde,\xfeb=\x9f\x189\xafSӃ\xc44a\xd7.\xab\x96S\xf5\x95\xd6\x18\x04ͧ\xeb\u007f=\xaf^]\xfcq)G\xed\xdd4\xac\xdc\xc3o\xbf7\x13*\x9a\xed\xfc\x0f$\x1b\xff\r\x00\x00\xff\xff2\x1e\xaa\xc01\n\x00\x00"), diff --git a/config/crd/v1beta1/bases/velero.io_restores.yaml b/config/crd/v1beta1/bases/velero.io_restores.yaml index b900f8b13..8f3b01439 100644 --- a/config/crd/v1beta1/bases/velero.io_restores.yaml +++ b/config/crd/v1beta1/bases/velero.io_restores.yaml @@ -202,12 +202,14 @@ spec: is not provided. Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable cannot be resolved, the reference - in the input string will be unchanged. The - $(VAR_NAME) syntax can be escaped with a - double $$, ie: $$(VAR_NAME). Escaped references - will never be expanded, regardless of whether - the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' + in the input string will be unchanged. Double + $$ are reduced to a single $, which allows + for escaping the $(VAR_NAME) syntax: i.e. + "$$(VAR_NAME)" will produce the string literal + "$(VAR_NAME)". Escaped references will never + be expanded, regardless of whether the variable + exists or not. Cannot be updated. More info: + https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array @@ -218,12 +220,14 @@ spec: references $(VAR_NAME) are expanded using the container''s environment. If a variable cannot be resolved, the reference in the - input string will be unchanged. The $(VAR_NAME) - syntax can be escaped with a double $$, - ie: $$(VAR_NAME). Escaped references will - never be expanded, regardless of whether - the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' + input string will be unchanged. Double $$ + are reduced to a single $, which allows + for escaping the $(VAR_NAME) syntax: i.e. + "$$(VAR_NAME)" will produce the string literal + "$(VAR_NAME)". Escaped references will never + be expanded, regardless of whether the variable + exists or not. Cannot be updated. More info: + https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array @@ -240,17 +244,19 @@ spec: type: string value: description: 'Variable references $(VAR_NAME) - are expanded using the previous defined - environment variables in the container - and any service environment variables. - If a variable cannot be resolved, - the reference in the input string - will be unchanged. The $(VAR_NAME) - syntax can be escaped with a double - $$, ie: $$(VAR_NAME). Escaped references - will never be expanded, regardless - of whether the variable exists or - not. Defaults to "".' + are expanded using the previously + defined environment variables in the + container and any service environment + variables. If a variable cannot be + resolved, the reference in the input + string will be unchanged. Double $$ + are reduced to a single $, which allows + for escaping the $(VAR_NAME) syntax: + i.e. "$$(VAR_NAME)" will produce the + string literal "$(VAR_NAME)". Escaped + references will never be expanded, + regardless of whether the variable + exists or not. Defaults to "".' type: string valueFrom: description: Source for the environment @@ -792,6 +798,29 @@ spec: required: - port type: object + terminationGracePeriodSeconds: + description: Optional duration in seconds + the pod needs to terminate gracefully + upon probe failure. The grace period + is the duration in seconds after the + processes running in the pod are sent + a termination signal and the time when + the processes are forcibly halted with + a kill signal. Set this value longer + than the expected cleanup time for your + process. If this value is nil, the pod's + terminationGracePeriodSeconds will be + used. Otherwise, this value overrides + the value provided by the pod spec. + Value must be non-negative integer. + The value zero indicates stop immediately + via the kill signal (no opportunity + to shut down). This is a beta field + and requires enabling ProbeTerminationGracePeriod + feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds + is used if unset. + format: int64 + type: integer timeoutSeconds: description: 'Number of seconds after which the probe times out. Defaults @@ -991,6 +1020,29 @@ spec: required: - port type: object + terminationGracePeriodSeconds: + description: Optional duration in seconds + the pod needs to terminate gracefully + upon probe failure. The grace period + is the duration in seconds after the + processes running in the pod are sent + a termination signal and the time when + the processes are forcibly halted with + a kill signal. Set this value longer + than the expected cleanup time for your + process. If this value is nil, the pod's + terminationGracePeriodSeconds will be + used. Otherwise, this value overrides + the value provided by the pod spec. + Value must be non-negative integer. + The value zero indicates stop immediately + via the kill signal (no opportunity + to shut down). This is a beta field + and requires enabling ProbeTerminationGracePeriod + feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds + is used if unset. + format: int64 + type: integer timeoutSeconds: description: 'Number of seconds after which the probe times out. Defaults @@ -1002,7 +1054,7 @@ spec: resources: description: 'Compute Resources required by this container. Cannot be updated. More - info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' properties: limits: additionalProperties: @@ -1013,7 +1065,7 @@ spec: x-kubernetes-int-or-string: true description: 'Limits describes the maximum amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -1027,12 +1079,14 @@ spec: If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined - value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ + description: 'SecurityContext defines the + security options the container should be + run with. If set, the fields of SecurityContext + override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: @@ -1197,6 +1251,24 @@ spec: is the name of the GMSA credential spec to use. type: string + hostProcess: + description: HostProcess determines + if a container should be run as + a 'Host Process' container. This + field is alpha-level and will only + be honored by components that enable + the WindowsHostProcessContainers + feature flag. Setting this field + without the feature flag will result + in errors when validating the Pod. + All of a Pod's containers must have + the same effective HostProcess value + (it is not allowed to have a mix + of HostProcess containers and non-HostProcess + containers). In addition, if HostProcess + is true then HostNetwork must also + be set to true. + type: boolean runAsUserName: description: The UserName in Windows to run the entrypoint of the container @@ -1346,6 +1418,29 @@ spec: required: - port type: object + terminationGracePeriodSeconds: + description: Optional duration in seconds + the pod needs to terminate gracefully + upon probe failure. The grace period + is the duration in seconds after the + processes running in the pod are sent + a termination signal and the time when + the processes are forcibly halted with + a kill signal. Set this value longer + than the expected cleanup time for your + process. If this value is nil, the pod's + terminationGracePeriodSeconds will be + used. Otherwise, this value overrides + the value provided by the pod spec. + Value must be non-negative integer. + The value zero indicates stop immediately + via the kill signal (no opportunity + to shut down). This is a beta field + and requires enabling ProbeTerminationGracePeriod + feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds + is used if unset. + format: int64 + type: integer timeoutSeconds: description: 'Number of seconds after which the probe times out. Defaults diff --git a/config/crd/v1beta1/crds/crds.go b/config/crd/v1beta1/crds/crds.go index d16049295..dcbb0138f 100644 --- a/config/crd/v1beta1/crds/crds.go +++ b/config/crd/v1beta1/crds/crds.go @@ -36,7 +36,7 @@ var rawCRDs = [][]byte{ []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4Y\xdfs۸\xf1\u007f\xd7_\xb1\x93{\xf0\xf7fB\xea\x92\xfbN\xa7\xa3\xb7\x8b\xddt\xdc\xde9\x9eȗ\x97L\x1eV\xc4JD\r\x02(\x16\x94\xa2v\xfa\xbfw\x16 %Q\xa2e\xf9\xdaK\xf9b\x13\\,\xf6\xf7~\x16\x9a\x14E1A\xaf?Q`\xed\xec\f\xd0k\xfa\x1a\xc9\xca\x1b\x97\x8f\u007f\xe4R\xbb\xe9\xfa͂\"\xbe\x99\x94+\xd74\xad\xd5q;M\x01\xa9\x17mt\x81\xa7\x8a\xd6d\xa6\xacW\x05\x86\xaa֑\xaa\xd8\x06\x9a\xa2\xd7E\x12ܦH.\x1b\xf5]\xe8➯\x0e$\x8d[q\x1bǠ\xedj\xb7\x9c\x02\xecI\xbbK\x80\x81f\xc0n[\x96\u007fo^Y\x12\xab|\xfc\xd3\xfc\x01\xfaC\x93\v\x866O\xd6\xdeo\xe3\xbd\xe1\xc5P\xda.)d\xc7-\x83k\x12G\xb2\xca;mcz\xa9\x8c&;4:\xb7\x8bFG\xf1\xf4\xdf[\xe2(\xfe)\xe1:%4,\bZ\xaf0\x92*\xe1\xd6\xc256d\xae\x91\xe9w7\xbbX\x98\v1\xe9\xf3\x86?\xacCC\xc2l\xad\xddr_(F=t\x94\xfbsO\x95\xf8K\x8c&\xfb\xf4RW)\x05`\xe9\x02\xe01yy\xc0v,5\xe5\xc9Ua\x1e]\xc0\x15\xfd쪃$\u007fB\xa6wc;z\xa9\xa4\xb6\xe54\xa5\x8e5p\xa6\xf1\xacE\xe4YJ\x97\xb9\xc7X?{\xea\xd5\xed2\x1f\x93*Rt\x80\xe05U4(\xed\xa0-GB\x95\x17GX\x02H\xe2\x06\xea\xe8_\xe7\xfaӕ\xb9};\x10[\x03\xe6\xfe\x06\u007f\x99\u007f\xb8\x9b\xfe\xd9eYGybU\x11\v\x1b\x8cԐ\x8d\xaf\x81۪\x06dQA\aRs\xf9R6h\xf5\x928\x96\xdd\t\x14\xf8\xf3\xdb/c6\x03x\xef\x02\xd0Wl\xbc\xa1נ\xb3\x95w\x05\xb5\x0f\x10\xcd\xd9\x10;~\xb0ѱ\xd6㊣\x04R\xa7\xf0&)\x1a\xf1\x91\xc0u\x8a\xb6\x04F?\xd2\f^I\t9\x10\xf1\x9f\x92\r\xffz5\xca\xf3\xffr\x92\xbe\x12\x92WY\xb0]\xcfr\x0eO_\xacN\x8f+/\xedJW\xf3\x0e\xf9\x1c\uf514\xd8Ժ\xaa\xfb!a_=Gs\xa4A\x95K.\xda\xed\xef\x1e\xb6b\xc86\x88<ۢ\x1bC\v\xb4J\xfeg\xcdQ\xd6_l\xb9V_\x90\xa4\xbf\xde\xde|\x9b`n\xf5\x8b3r\x14\x10\xe7\x98\xf0\xeeV\x89\xf9\x96\x9a\xc2Y8\xf5q@\xda\x03\xbb\x11$\xb9\xa3\xb9\x18\xc9E\\\x9d\x00(T*]4\xa0\xb9?\x03\xb2\xce\xe8<\x10\xfe\x01W\f\x18\b\x10\x1a\xf4\xe2\xa7G\xda\x16\xb9I{\xd4\xd2c\xa5\x8dvxeA\x80\xde\x1b=\xd2N\xbbV\xdc\xc1\xc5\x0ey\xcbX\x8b+\x1e\xd7w\xc4\xeay\xf7Yk\xe7\xf1b\f>wGg\\\xb2\x83\xd0\xd1\xed\x81\xeai\xfc\x9e\x00\xd7'\xec&S\xa0\xa0\xabCъ\xf1\xd1e@!\x90~\xb0\xe0\x9d\x1a\xbc\x0f\xe3l\xf0)\xeb\xf3\xec\xf4\x161\xb6|\xf1\xfc\x96\xa8{\xeb\xe5z\x10;\x1e\t+\xfc\x96\t\xaer\x82\x1d\x87\xd7T\xe7\\x}J\x9f.D\x82\xcabE\xddH\xbd~\xc94y>\xec6\x00.\\\x1bw\x03\xe2 ů\xb8\x8b\x9e˧ӑ\x11l\x18\xb2(\x80\x99;\xf8hL\xdaq\x98\xd6\xfbK\xd4$ς\xc4-\xffi\x86\x03\xf8\x1a\xf9\xbcq\xee\x85b,yv5\xe8L\xf6@\x9a\b\xdb\xe6\xf8\x84\x02\xeehs\xb2vk\xef\x83[\x05\xe2\xe3\xd0(\xfa\xf89Q\xb6\x80\xf7)\xce/ַ;\xe0\xbc\xca\x1d\x11\xd4\xce\xf4\xe9\xe9\"\x1a\xb0m\xb3\xa0 z/\xb6\x91xX\x84Og\xfe4E\xec\x8dv\xb0\xbb\xbfB\xc8|\xba\xa1\xa8B\x9bn\xd9$g\xa2\x03\xa5\xd9\x1b<\x9d\x8az\x15\x12\x92\x90\x94\x91\x94\xdeGk\x9f\xa6\x9eB\xfa\xf4\x92[\x8a$͍\xb3\xa3\x18\xb7\xcfOm\xe3\x1f\xfe\xffIġm\xa4ՠ\xa8w_ŀ\xef\x84\xff\u007f\x9b\xf7\x93\x8d\x95-z\xae]\xbc\xbd9\xeb\xed\xf9\x8e\xac\x8f\xf2=hI\xb5+\xdd\xfbuD\xbdˇ--?9\f.N=\x8e\x18\xe2e\xcdc> }\xa6o$\xbe\xa4J\x98\x93ǀ\xf140\xd3}\xf0\xf5\xf1\xaf,\xaf\x81u\xba\x16\x13\xec\x93\xc1P\x1euYډ@;\x17r\xac\x9er\x1c4\x82A\xe1\x1f\x8a\xfe-j\xfeH<\x1c-\xed\u007frz\xb3\u007fKqYt?1\xa5\x0f\x9dZ\xea\xe0\xf0\xeeV\xb5[\xd9\xc3\x10\xac\x04\xb2\x93\xba;\xfe\x91\xe9U\xbe*\xe9\u007f5J\xaf\x95\xb3\x19\xcd\xf2\f>\u007f\x99@w\xd7\xfa\xa9\x97C\x16\xff\x1d\x00\x00\xff\xff\x81\x16-\x05\x9e\x1b\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4Y_s۸\x11\u007fק\xd8\xf1=\xb87\x13R\x97\\\xa7\xd3\xd1\u06dd\xddt\xdc\xde9\x9eȗ\x97L\x1e b)\xa2&\x01\x16\xbb\x90\xacv\xfa\xdd;\v\x90\x92(Q\xb2\x9c\xe9\xa5zI\b,\x16\xbf\xfd\xed\x1f,\xe0I\x96e\x13՚O\xe8\xc98;\x03\xd5\x1a|f\xb4\xf2E\xf9ӟ)7n\xbaz\xbb@Vo'O\xc6\xea\x19\xdc\x04b\xd7|Dr\xc1\x17x\x8b\xa5\xb1\x86\x8d\xb3\x93\x06Yi\xc5j6\x01P\xd6:V2L\xf2\tP8\xcb\xde\xd55\xfal\x896\u007f\n\v\\\x04Sk\xf4q\x87~\xff\xd5\x0f\xf9\x8f\xf9\x0f\x13\x80\xc2c\\\xfeh\x1a$VM;\x03\x1b\xeaz\x02`U\x833h\x9d^\xb9:4\xe8\x91\xd8y\xa4|\x855z\x97\x1b7\xa1\x16\v\xd9u\xe9]hg\xb0\x9bH\x8b;Dɚ\a\xa7?E=\x1f\x93\x9e8U\x1b⿏N\xffb\x88\xa3H[\a\xaf\xea\x11\x1cq\x96\x8c]\x86Z\xf9\xe3\xf9\t@\xeb\x91Я\xf07\xfbd\xddھ7Xk\x9aA\xa9j\x92i*\\\x8b3\xb8\x17\xa4\xad*PO\x00V\xaa6:\U00091c3b\x16\xedO\x0fw\x9f~\x9c\x17\x156*\r\x8afעgӛ(\xbf=\xefn\xc7\x004R\xe1M\x1b5µ\xa8J2\xa0şH\xc0\x15B\xe7\x15\xd4@q\x1bp%pe\bE\xe5\b-8[o\xc6\xd1:\xa8\xd4\n\x81\\\x83\xb0ƺ\xceR\xaf\xa0a\xad6b\u007f\xef.\x890\x05\xad\xf2<\xec\x06F\xb5>~\xb8\xfd0K\xa8$\x84\x96\xb1\x8e\xc9)S\x1a9\xf3\xe5\xb0O'\x97\xc4d\xa4#\xa4\xe0`\aE\xa5\xecHY\x83\xd84Dv\xcb gI~\xfd\xdal=<\xb6\xfb\xdf\xc8\xf1}X\x18\xfeO\x87\xe0Ef\xc5\xd6\xf9E\xb3\xee\xf7\xe2\xf9\xacY\xd2\xc4{\x8b\x8c\xd12\xed\n\x12\xa3\nl\x99\xa6n\x85~ep=];\xffd\xec2\x93@\xccR$\xd04\xb6\xe1\xd3\xef\xe2?_eE\xec\x8c/3%\x8a~\v{d\x1f\x9a\xbeڜ\xbe\xaf\xbb\xf4T\xba\x9ew\x8d\xc7\xe1JI\x89ue\x8a\xaao\xd2w\xd5s4G\x1a\xa5S\xc9Uv\U000fb1ed\x10\x19\xbc\xe0\xd9d\xdd]0SV\xcb\xff\xc9\x10\xcb\xf8\xab\x99\v\xe6\x82$\xfd\xed\xee\xf6\xdb\x04s0\xaf\xce\xc8ц4\xc5D\xeb\xee\xb4\xd0W\x1a\xf4g\xbb\xa9\x8f\x03Ѿ\v\x1c\xe9\xe3\xb62\x177rdUK\x95\xe3\xbb۳\b\xe6[\xb1~\xf7\x1d\xe5]\xfb\xd6k\x92\x10=ӷ\x9dD\x92ԜE\x91\xfa\xee\xb1.\xb8Ð:\x868\"\x1d\xe8W!\x91됴9\xfbH\xb2\xf1\x0e~ \xd1:=\xf8\x1e\xfaw0\xb5#}0\x9c\x8cx\xf12Ê\x03]~\x9d\x89\xe2=g)?\xb9S\x12\xcf\uebfa\xd0\x14N\x9a\xb9\xe1\xe3\xcd9\xcf\xdd\x1c\xcb\xc7\x17\x02\xaf\x13.6\r\xc6\xdbBD\x00kE\xfd\x16\xc7~\x83=mia\xac\x84\xa2\ful\xb6\xa4\x0f,\x95\xa9Q\xc3\xf6\xe9\b\x1e\xe5>\x17\xaf\xcc\xd7ǵ\xb2W\x13\bu\xbc\xe7\x8d\x00>\\U:\xdf(\x9e\x81\\\x933Qp0oC]\xabE\x8d3`\x1f\x0e'O\xa6A\x83Djy>\x0f~M2\xe9\x86\xd5-\x00\xb5p\x81\xb7W\xac.!:\xf3\xaf\xa9\xf3\xf8\xe5\x17\xbcJ\xd1y\x10\x0f\"1\x16Wۤ<\x17X\x10o/\xa19\xdc\"\x83{\\\x1f\x8d\xdd\xd9\a\xef\x96\x1e\xe9\xd0\aY﨣\xf6;\x83\xf71\x02.6\xb8\xdb\xe0\xbc͝\x10T\xae\xee#ױ\xaa\xc1\x86f\x81^\f_l\x18\xa9g\xa0O\xf4\xe3\x1bj\xecyw\xbc\xed\xd6\xf7\xd5*)\xea:\xf8B\xd9\xf8$#\xd1\xc9\x0e\xb4\xa1\xb6V\xc7-|oC<\xf6$8%Cvq\xd1g\x97\xa4t\x9c{͝:¹uv\xb4#\xebS\xc1X\xfe\xd3\x1fO\x9e\x8f\xc62.\a\xa5\xb0\x9b\x15\n\u007f\x16\xfd\xffk\xdd'\x0f_b\xe5\xf9\xb2\xd25\x1f\x88\xbeT\xb5\xa2ⱚ\xb5_~\x8e\xcb\xcdp\x93oQiF\xa89\x18\xda=ؿ\xdd}E\x17e\xdd\x03}\x9c\x80d\x96\xdeۼ{\x8c\xeaFv\a\x96*\xa4\xd7B}\u007f\xf8B\u007fu5xp\x8f\x9f\x85\xb3ڤ\xbf.\xc0\xe7/\x13螨>\xf58d\xf0\xbf\x01\x00\x00\xff\xff\x98\xaaEc\xdc\x18\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4W\xcdn\xe36\x10\xbe\xfb)\x06\xdb\xc3^*y\x83\xbd\x14\xba\xb5i\x17\b\x9a\x04\vg\x9bK\xd1\x03E\x8d\xeci(\x92\xe5\f\x9d\xbaO_\x90\x92lٖ\xbd\xc1\x02\xab\x1b\x87Ùo\xbe\xf9!\xb5(\x8ab\xa1<=c`r\xb6\x02\xe5\t\xff\x15\xb4i\xc5\xe5\xcbO\\\x92[noj\x14u\xb3x!\xdbTp\x1bY\\\xb7Bv1h\xfc\x15[\xb2$\xe4\xec\xa2CQ\x8d\x12U-\x00\x94\xb5NT\x12sZ\x02hg%8c0\x14k\xb4\xe5K\xac\xb1\x8ed\x1a\f\xd9\xc3\xe8\u007f\xfb\xa1\xfcX~X\x00\xe8\x80\xf9\xf8\x17\xea\x90Eu\xbe\x02\x1b\x8dY\x00X\xd5a\x05\x01YH\a\xf4\x8eI\\ \xe4r\x8b\x06\x83+\xc9-أNn\xd7\xc1E_\xc1a\xa3?=@\xea\xc3YeC\xab\xd1\xd0.o\x19b\xf9}v\xfb\x9eX\xb2\x8a71(3\a$o3\xd9u4*\x9c)$\a> c\xd8\xe2\x1f\xf6źW\xfb\x89\xd04\\A\xab\f\xe3\x02\x80\xb5\xf3X\xc1c\x82\xea\x95\xc6f\x01\xb0U\x86\x9a\xccH\x0f\xdey\xb4?\u007f\xbe{\xfe\xf8\xa47ة^\x98,;\x8fAh\x8c1}\x93\xfc\xeee\x00\r\xb2\x0e\xe4\xb3Ex\x9fL\xf5:Ф\x8c\"\x83l\x10\x86\xbc`\x03\x9c݀kA6\xc4\x100\xc7`\xfb\x1cO\xccBRQ\x16\\\xfd7j)\xe1)\xc5\x19\x18x\xe3\xa2iR\x19l1\b\x04\xd4nm\u9ffde\x06q٥Q\x82\x03\xc5\xe3GV0Xe\x12\t\x11\u007f\x04e\x1b\xe8\xd4\x0e\x02&\x1f\x10\xed\xc4ZV\xe1\x12\x1e\\@ ۺ\n6\"\x9e\xab\xe5rM2V\xb4v]\x17-\xc9n\x99\xeb\x92\xea(.\xf0\xb2\xc1-\x9a%ӺPAoHPK\f\xb8T\x9e\x8a\f\xdc\xe6\x82.\xbb\xe6\x870\x94?\xbf\x9f \x95]J\x1bK \xbbދs\x95]\xe4=\x15\x19\x10\x83\x1a\x8e\xf5\xf8\x0f\xf4&Qbe\xf5\xdb\xd3\x17\x18\x9d\xe6\x14\x1cs\x9e\xd9>\x1c\xe3\x03\xf1\x89(\xb2-\x86>qmp]\xb6\x88\xb6\xf1\x8e\xac\xe4\x856\x84\xf6\x98t\x8euG\x922\xfdOD\x96\x94\x9f\x12ns_C\x8d\x10}\xa3\x04\x9b\x12\xee,ܪ\x0eͭb\xfc\xee\xb4'\x86\xb9H\x94~\x9d\xf8\xe98:V\xec\xd9ڋ\xc7i1\x9b\xa1\xd3\xfe\u007f\xf2\xa8S\xc2\x12k\xe9 \xb5\xa4s\x0f@\xeb\x02\xa83\xfdrbx\xae9\xd3W+\xfd\x12\xfd\x93\xb8\xa0\xd6x\xef\xf4\xa4\xcd/\xa0\xfae\xee\xc4\b+\x8d\xb8\xbeQq^\xf1\xc42\x80l\x94L:T\x14\xd9}\x9b\xcf\xc4q\x91\xf2L\xbbJ\xedj\x95\xd5\xf8)\u05ceջ\xab\xb1<\xcc\x1cH\xa1l\xdc+\xb8V\xd0NM\x8e(k<\v\"D\xfbf\x90\xfdL\xbekRi\xb5\x84\xe1*\xc0Չ\xf2\xc8s\x1b\x8d\x19,\x15\xdau^\t\xd5\x06\xc7Fn]8\x83H\xbd\x8d]\xdf\xd5\xdf\xc6\xef֙\xd8\xe1\xfen\xb8\x8a\xfc\xf9XwZ \xbd`\x00\x91B\x80p|\x05N\xbf\xa1&\x18\xbck\x06\x00C\xd1r\x8a\xf3\x8d\xd8Sr)\xe0\xd14,\xe6\x8b\xffHc\xae\xa2\x8e\x14N\xb3y\xb4y\xc2\xd7W\x87\x81(\x89\xfc\xf6q\x90\xd5Gbu\f\x01\xad\fF\xf2M\xf8M\x03\xc1(\x96I[\xa47\xd0\xd5<ߟ돐\x92)\x90$\x98vѫ\xe2\xb9~i]\xe8\x94T\x90F{\x91\x0e\x9d\xec\xa7\x17\x98\xaa\rV !\x9en^\x9e\bȬ\xd6\xd7#x\xe8u\xfa\xabp8\x00\xaavQ.\x10\x9b/\xc5+\xd4^E\xe47\x8a\xaf\xe3\xf9\x9c4\xe6Ҋou\x8e6v\xa7.\nx\xc4\xd73\xd9\nUs\xdas\x05<:\x99۸\x10\xd3L-\x9f\x88\x0eO\xec\x9b\xc3*\xd7]1<\xa9\xf3\x06@~\x996\x93\x14sߛ\x83\xe4\xd0 Jk\xf4\x82\xcd\xe3\xe9\x93\xfaݻ\xa3\x17r^jg\x1b\xea\xff\a\xe0Ͽ\x16\xbdUl\x9eG\x1cI\xf8\u007f\x00\x00\x00\xff\xfflC\xbf\xee\x8e\f\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec}\xfds\x1c7r\xe8\xef\xfe+P<\xd7#\x99\xe3.\xa5\xbb\xe4*Q\xa5\x9e\x8b'Q>\x96-jK\xa4\xe5w\xe5s\x1c\xecL\xef.\xc2\x19`\x0e\xc0,\xb9\x89\xf3\xbf\xbfB\x03\x98\x8f\xdd\xd9\x0f`HJ\xf2\rR\x953W3=@\xa3\xd1\xdfݠ\x05\xfb\bR1\xc1_\x11Z0x\xd0\xc0\xcd_j|\xf7\xafj\xcc\xc4\xf9\xf2\xe5\x144}\xf9\xd5\x1d\xe3\xe9+\xf2\xbaTZ\xe4\x1f@\x89R&\xf0\x06f\x8c3\xcd\x04\xff*\aMS\xaa髯\b\xa1\x9c\vM\xcd\xcf\xca\xfcIH\"\xb8\x96\"\xcb@\x8e\xe6\xc0\xc7w\xe5\x14\xa6%\xcbR\x90\xf8\x05\xff\xfd\xe5\x8b\xf1\x1f\xc7/\xbe\"$\x91\x80\xaf߲\x1c\x94\xa6y\xf1\x8a\xf02˾\"\x84\xd3\x1c^\x11\tJ\v\tj\xbc\x84\f\xa4\x183\xf1\x95* 1\x1f\x9bKQ\x16\xafH\xfd\x0f\xf6\x1d7\x11\xbb\x88\x0f\xf6u\xfc%cJ\u007f\xd7\xfc\xf5{\xa64\xfeK\x91\x95\x92f\xf5\xc7\xf0G\xc5\xf8\xbc̨\xac~\xfe\x8a\x90B\x82\x02\xb9\x84\x1f\xf8\x1d\x17\xf7\xfc-\x83,U\xafȌf\xca\xfc\xb3JD\x01\xafȵ\x99EA\x13H\xbf\"dI3\x96\xe2\x12\xed\xbcD\x01\xfcbr\xf5\xf1\x8f7\xc9\x02rj\u007f$$\x05\x95HV\xe0s~~\x84)B\xc9G\\\x9f\x99\x04n\x04\xd1\v\xaa\x89\x04\x9c\n\u05ca\xe8\x05\x10Z\x14\x19K\xf0+D\xcc\x1cHR\xbd\xa3\xc8L\x8a\xbc\x865\xa5\xc9]Y\x10-\b%\x9a\xca9h\xf2]9\x05\xc9A\x83\"IV*\rr\xec\xc0\x14R\x14 5\xf3\x885\xa3AJ\xd5okk86\x8b\xb4ϐ\xd4\x10\x0fة:\x12\x80\x94(D\x00\x113\xa2\x17L\xd5K\xc2e4\xc0\x12\xf3\b\xe5DL\xff\v\x12=&7f\a\xa4\"j!\xca,5\x14\xb7\x04iP\x92\x889g\xff]AVf\x81\xe6\x93\x19\xd5\xe0v\xda\x0f\xc65HN3\xb3=%\x9c\x11\xcaS\x92\xd3\x15\x91`\xbeAJހ\x86\x8f\xa81y\x87[\xc2g\xe2\x15Yh]\xa8W\xe7\xe7s\xa6\xfd\xe1ID\x9e\x97\x9c\xe9\xd59\x1e\x016-\xb5\x90\xea<\x85%d\xe7\x8a\xcdGT&\v\xa6!ѥ\x84sZ\xb0\x11N\x9c\xe3\xd9\x19\xe7\xe9\xef\xaa\xcd:n\xccT\xaf\fA)-\x19\x9fW?#ioŻ!qK9\xf65;\xff\x1a\xbd\xe6'\x83\x95\x0f\x977\xb7M\xaab\xaa\x8ds\xc4v\x83\xd0j\xc4\x1bD1>\x03i7\x0ei\xcb@\x04\x9e\x16\x82q\x8d\u007f$\x19\x03\xdeF\xba*\xa79\xd3f\xa7\xff^\x822\xa4+\xc6\xe45\xb2\x102\x05R\x16)Ր\x8e\xc9\x15'\xafi\x0e\xd9k\xaa\xe0\xc9\xd1n0\xacF\x06\xa5\xfb\x11\xdf\xe4|\xed\a-\xb6\xaa\x9f=\x8b\xea\xdc!w\xbao\nHZ'ü\xc4f\xfe\x18τl\x1d~\xf3ʸ\x01\xb2\xebX\x9aa϶aA\xed\xdf\xd7&\xf1\xe7\xea1C+\xe6\xf3%g\u007f/\x01Y\xa8=\x93\xb0\xc9.d\x83\x9d6\x87!\x81\xf1گ\x9d\x184\x03\x1e\x92\xacL!\xadؤ\xda9\xd3ˍ\xc7Q\xc8P\xc6\r\x8d\x1b\xa6n\xa6\xcb\xeb\u007fE\x06I;fi\xe8\x8cq\v\x8d0\x8eK\xec\xc0\xac\x19LC\xbe1\xad\x1dk\"(\xb5\xe84\x83WD\xcbr\xfd\xdb\xf6=*%]u\xa2\xc2K\xd9\xc30Q=\xed\x8ey\xc6\x12ܲ\xea0#2\xbe$<,\x84\xb8۽\xf6\xbf\x98'jnD\x12\xd4N\xc8\x14\x16tɄt\xabu\"a\n\x04\x1e )5J\xe05\xa8%2E!I!\x94\u07b6\xeem\xa7\x8b4\xa5\xea\xe6?mE\xd8\xc6z\x1c\x13\xf0[i\x96\xd7b\b\x82\x83\x99cn\x98_\xfd\xac\x14\xa5}Vu~\x81l\xc3\x02\x99R\x05)\x11n\xaf\xcb\f\x94\xfbR\x8a\x8c\xa6>=g[\x00W\x8b\xb6\xb22\xa3SȈ\x82\f\x12-\xe4:\xf6\xf6\xe3Ў\xfd\x9c`\v\xf6:x\x82㞎\x976ف\xd8\n\x93\x90\xfb\x05K\x16V\x8c\x19\x1aD($\x15\xa0\xf0\x90\x18\xb5jս8\xb2{\xaf\xed\xd8qL\xea\xb1\xf3\xc0\xac\xc3\xda<:\xf5\xd8\xcbL걇\xad\xb4qYk\x91\xff0\xa8\xf4\xdc1\x980\xaf6^|L\xc2D5ߨ\xa2W3\x02y\xa1Wg\x84i\xff+\xaa\xf3h9mEO\xf5\xed/n#Bi\xfaj\xfd\xbdG\xa4鞻P}\xfa\x8b\xd9\x04d\xf67\x8e\xd7\x1f\xb8\x01\xdf7\xdf9#lVm@zFf,\xd3 \xd7vb\xd7r\xc5\xee\x9d苂\xfd\x92ʌ\x9c\xeadq\xf9`4\x10U;<\x0e\xc2\xc6\xfa\xabVq\xf3\xbak[\x98\xee\x84J\xd0xb\x12rk\x92\xdd\"\x06\xeb_\x8c\xbeG.\xae\xdf@\xba\x1d)\xe4\x10\n\xdbX\xc2\xc5\xda4\x9b\x9fuz\xe8a\vpJJ\xa5\xc3[\xf3\xfa\x8cPr\a+\xab]\x18c\xbf\x00I\xcdg\xcc\xc3{!J@\x1b\x1f\t\xea\x0eV\bę\xed{\xde=l\xeb\xed\xb8\x83\xd5\xfe\x87\xd6\xd0ff\xe3\f,\x8b?\xf3\x03\"\x00M\xbeCQF\xd0\xe9\xe29̾E\x91CY\x84\x1f\x1e\xdb\xc1˫\xb6\xa9\xe1\x90\u008dHG<\x94\x14b\xd3\xe5\xda5\x16T\x91)\x00\xf7H\xdbs\xe8\xedx:I\x9b3~\x85\xc0\xc9\xcbG\x95ˤFQ\xc4\xf6y\xe4V\x1bX\xfd`%ǡȾ_\x80\x84\x16\rl\xba\x88Q\xaf\xe3B7\xec\xf4\xc3\x10m\xe7q\xacȌI\xa5\x9b\x93T\xa4T\x87ml\xd0n\x99\x19߲\x1cD\xa9\x83qzY\xbfۊ\xbd\xe5\xf4\x81\xe5eNh.ʽB\xd7\x0e#\x03X^\x05\xc9\x1cF\xef)\xd3Ƞ\fT\xf4Tha\xb0^d\xa0\x0f\xd3;\xa703L$\x11\\\xb1\x14\xa4\x0f\xd7\xda}b\xc2\x1c\xbb\x19eY\xb9\x19\xb4\xe8\x1aaf \xbf\x942\xc2\n|o\xdfk\xf8\xd8\x16⾍\x98\x03\x97\xbe\xa0K lF\x98&\xc0\x13\xb3\x17 -\x83\xc5\x0f8$ J\xf6\xea1v\x1c\u008c\xcd\x00^\xe6\x87,|\x84\xe7\x92\xf1\x1d\xee\xa4\xe6\xc3o)\xdb\xe5\f\xf4#h\x9b\f\x8d\xc5\x1e\x80\x1f\xebw\x9f\xe1\x00\xd4\xcc`\xa72R\x8f)\x90\x0f@ӕ?\x05Tkc\x06\xe2\x8e\v\"K\xde\xe4b\x8fL\xff\x87\xdbP\xee\xfb\x8fe\x1e1\xce\xf6n\xe4\x9aw\x9b\xe9\xa6\xf6a\x00<\x99\xf6a\x80W\xa2(ܽq\xd5z\xdd\b\x05\xaf\xb4\xe2\xac+\n9X\x13\x99\x821\x00!\xb5\xee\xa2BTf\xbeM-\xe9\f\xe7v\xae\xebpeb\xcd\x11\xeaL\xb9f\xd2U\x83\xd0\x0f\xf1Wڱ\x12%\xb9\xa7\\{ҮԪB\x1cD\xdba\xfbh\a\x95\xf3\x83\x9f\xdd\xc8\xe8\xf2J\xa3O\xac\x02\xae\xe5\nS~\x0e\x9b\xae\x1d\xc6\xf0KErgT\x84\x9c\xce\xe1\xf8X\x91\xd7\xef\xdex}\xc1\xb0\xff\x83\xb9\xbb\x1d\xcc\xc6\x18\v)\x96,5\xaa\xccG*\x19\x9df\xc6\xc0\x9c\x81\x04\x9e\x80\"_\x9f|\xbc\xf8\xf0\xcb\xf5Ż\xcb\xd3\x00\xd0\xc6(\x85\x87\x82rCq\xa5\xf2Ҹ\xdao3y\xe0K&\x057\xa8\t\xc1\xc3ՌP\xb2\xf43M\xaa<(c\xd8dKH\xcf\\|ĭ \x04\x1f\x96M2^\x94\xda{\x12\xefY\x96a\x96\x15O\x16\x94\xcf\r\x96n\x17!@\x1b\xf8#j\xc55}0sF\x15R%\xb4\x80\x14\xe9\x97\xd0\x00\x90\xa9(\xcdҿ\xfe\xfa\x8c0xE\xben|bL.\x1d\xd4z\v\x03 \xe3j9,AZ\x1d\xd7n\xe0\x19\x910\xa72\xcd@)Á\xee\x17\xa0\x17p\x98\xd3\xd2\x0e\xeb\xfap[\x06\xde\xebi\xa8\xaf+\x93-\x00pG\x96\xdb]\x95\x929f\xe2<\x15\x89:\xd7TݩsƍH\x19\xa5T\xd3Q\x83\t\x9d[\x890r\xd2i\xe4m\xbcQE\xac翓%\xe7\x8c\xcfG\xb4z\x8a\xf1\x11\x1d\xa9\x05d\xd9\xf1\xc1\xd3\r`\x9d\x0ema\xd6X\xf3\xa5\xc3]\xd5A\x86\xb2\x1dm\xfevY\xb13\xfb\xd51\xb9\x16z{&\xd1\xf6Q1r\xc4븓\xe3]^\xdf~\xf8\xeb\xe4\xfd\xd5\xf5m\x18\xa3k\xb2\xc8\xed\x8c/\x00f7\x8b\xec`|\x81\xc7d+\x8bl3\xbe\x00\xa8{Y\xa4c|A\x9cr/\x8b\x8c\x14\x1c\xbbXd\x83\xf1\x85\xcc\xf5\x00\x16\x89k\b\x809\xb0\xc8\u007f0\x16\t|\x19\xc9\x1e\xbfwj{\xe3(W\xfb\x1c\"\x9a\xb5\xc0\x18/\xe3m.ы8\x82\xb1\xddv\n\xf1\xe5G\xda\x0ea\xf3\xe62\x03\xe0\x92\x9a\xf4}\xa6*\n\x82\xca\x02\n!\xf8p\xedގݑ\x8d\xee\xb1\x19\xefp9\xe0\xb1x \r\\\x8c\xc9;\x17ӥ\xe4\xf5/Wo.\xafo\xaf\xde^]~\bA\x06\x89=#ć\xe6{\xa1\xe4\xf8\xf1L\n;\xb6\x18\x16\x85\x84%\x13e\x95\x9e\x1b\f\xb7\xf3xn\x9c\xb6\xf0\xe9b\xe0`E\x14\xc8%K\xa0\xfb3\xa1\xfby\x80\r\x14\f\xb1K!h\x89\xf9`\x88\x8f\xaa\x16\xd8q\x80r\x10\f\xf3\t\xac(;\xf6\xdbR\xc1 k\xc5b\x8b\xba\x10\f\x11Ջ70\xa3ef\xfd\x13GG\xe3å\xb5\x1d\xfd\xd8\xcb[)\x0er 7G\x8b\xc5\xdc\xd8\xe2\r\xef;}\f\xc6{\xec\xd2\xebZ\xc2\xd5\x1a\x10\x110\xb3\x12\xbc\xc5\x11\x90\x9bS\x8fXyFl\x18m\xc6\xe6\xefh\xf1\x1d\xac>\xc0,\x1c\xc0:\xb21\xf3\xce%\xaba\x81a\x04Db亝V8\xeb\xeb\x87\x0frx>b\xd7h\xe1\xe2\xd6eM\xa2ff\xd0\x12\xb3\x18\xd2\xe7\x00\xf9\x11\xa3\xb9\xf8\xd1\x16\xd7M\x15\xc6\xf1\xbe\xe8e\x1djz$\x82'Phu.\x96FJ\xc2\xfd\xf9\xbd\x90wƖ0\x9c}d#\x01\xea\x1c\xd3\xf0\xcf\u007f\x87\xff\x13=\xa3\xdb\xf7o\u07bf\"\x17iJ\x04\xb2\xd1R\xc1\xac\xccl\x8aO\x84\x1c\xf6\xa3.\xec=\xc32\xd33R\xb2\xf4\x9bPF\xeaGoz\x10\x85\xcd\xf3z\x14\x9a\xb8\xc1\xe8\xe4*¤m\x0fCRչ7\xa6-\xd3\n\xcfO^\xaapV\xed\xc7\x14\xa2U>7-D\xf6T\x88\f(\x8f\x80qh\xf8\xabk\x1c\x92V\xd85\x0e\x0e\x91u\r\xa4\xf5ǐ\x05ǵ0\xb0)r\"\\:\x92:\x15\xe2\x15QeQ\b\xa9UU0<6\x87=\\\x97%\x8d\x9a\xe3qU\xbdsF\xfe\xb3\xfa\x11s\xca\xd5O\xc7\xc7\xff\xfe\xdd\xe5_\xff\xef\xf1\xf1\xcf\xff\x19\xf7\x95\x1ab\xa3\xa3C\u007f\xb0\xaa\x80d\xccE\n\x86\x1d\x9f\xd9?\x9d\x05q\x91`x\xff:\x1a1JS]\xaa\xf1B(}59\xf3\u007f\x16\"]\xffK\x05+\x82\xe4\x11\x84sw\x8b\x84\x90ѢQ\xdfJ\xc1\x8a\xb4h.\xe3z.\x18J\xc5\xe6\x15\x13\xaa\x17F\xa7\xbb\x97Lk\x88a\x1bv\x18;\vd\xae\x88\x98\x9d\x19>V\xab\xe1˗G\x9fL\x9d\x98\xf9%>\xca\x16 \xae\x9cJ\x81\x90\xe3%\x88W\xb4\xbc}Z\xe5\\E\x83\xbc\x98\\\xf9\xd6\x1a\x9f\b\xdd\xfd\xe4G\xb5U\xcf-E|\x1a\xe9\xdb'\x90&\x1ev\x9c\xee3k\xbbl^\xd9\xfc\xe9C\xea嶏\x8ca\a\x0e\xcaӺ\vlj\xfdq\x9c\x14e\x1c'v\xef\xe7\x90\v\xb9:\xf3\u007fB\xb1\x80\x1c$\xcdFJ\vI\xe7\x91l\xdeO\x13\xa7W\xffe?\x16Ǚ\x1b\x8bߜe\xb83\x878o^RJced+/\xff!\xfd$\x92\xa7\xa2\x98\xae& \x87\x8e6Iש\xa8},\xb4\x9aG\xa0\x93c)\xb22\auVi\xf9\xd1`\r4\xe0K\xb2\xa4R}2[%eK\xa6\x0eK\x9e\xec\x1a\x94\xaf\xdeG1\x1f\x82\xfc\xd3N\x9fq\r\xf3h\xd3f\xd4\x1f\t\x9d&\x97/\xba\x16\xa5.\xcax\vi&dNu\x15\x97x(\x84BǦoL\x11\r\xb8\xa5\xaf\xbc<\x8a\x84SP\xadA\xf2W\xe4?N\xfe\xf6\xfb_G\xa7ߜ\x9c\xfc\xf4b\xf4o?\xff\xfe\xe4oc\xfc\x8f\u007f:\xfd\xe6\xf4W\xff\xc7\xefOOON~\xfa\xeeݷ\xb7\x93˟\xd9\xe9\xaf?\xf12\xbf\xb3\u007f\xfdz\xf2\x13\\\xfe| \x90\xd3\xd3o\xbe\x8e\x9c\xf0è\xf6a\x8c\x18\xd7#!Gv\xeb\xf7\x94K\xef\x1a~;\x1e\x87\xef|\xf0:E?QJ\x9a:\xd7'b\x10\xfdԣ\x1e\xcb\xef\xa5\x1d)H$\xe8\xcf\xcb\xe7j\xe7Ԩ\x818Vuk\x8b߀\x1b\xb6\xaf\x89g\xd1S\xdb\x18\u061c\x8b`\b\xb6\x8fw\x8a\xdaV\x86\x1e\xfe\x1d\x04\xfb\xff\xfd\x18\xdcă\x9b\xb89~\xbbn\xe2\x1b{V\x06\x1f\xf1\xa7\xf1\x11G\xbe\x1a\xb3\xca\x112\xa5\x904\xa8\x98\xb9E\xe5{\x85\x05\xa6;s\xbe\xeafI\xa4\x10E\x99Q\x1d\x1b\x9fޞ\x922\xf6\x020&\xf7\xa5θ\xb5A\xf4\xbcw\xbe\xd1E\x96\x11ƭ\xc8\xc3I\xf94\x10\tֶ'T\x91\xa0C\x04K\xe0ڰ\x15\xbe^ͩ\x88\xd2Tj\xc6\xe7c\xf2\xe3\"\xc8\rku)\x977\xc18\xc9\xcbL\xb3\"\x03R\xb5뫪\xf5C\xa0*%\x12F\xb5OJ\xb1\xedk\x94\xf6\xe8E\\hz\x17\x02\xb3\x90\x90@\n<\x01\xec\xeaR6Z\x10NW\x84rrɗ\xf8\xb5\xa0է\xa5M\ued2aS5\xaf\xd6\xd7l\xeeC\x00\xd8O\x92\x82h\x8e\xa9K\x01iww\x0ebzn\x83\x8cr\xed[\xe9T\xb1\xca\x105\"V)\xae\xf24\"\f\x86\rm\xb8\x8e\xb2V\xdalx\x94P\x8a\xfc\x19\xf3TbUӧRK?/\x95\xf4\t\xd4\xd1\xc7SE{\xa9\xa1}T\xd0]\xeag\xb4)X\x9f\x1d/\v\xe3U\xc7>jc\xb4\xfaVH\x98\xb1\x87^<\xe4\x82W\xfbBX\n\\\xb3\x19\x8b\xd0\xe8\x8d\xd6#\xa1\x00\x8e5\xa7@\x93\x85m\xeb\xc6۩ \xe1\xf4\xfb\x89\xb3\xa2\xad%\xff\x18\x8c\xfa\xa6\xcb\xe70p݁\xeb\xee\x1f\xbf-\xae\xeb\x0e\xc2\x17\xc9r\x9f\xc9\"\xc5\n\xc8\xd8\x12\xcd7\x8d*J<\xf5\xcd\xfb!\x02\xd6zȩ\xac[\x13\x9c\xe3\xf7B\x0e\x1f6$\xf4\xfd\xd6j!d\x9b\x03\x8b{\xb2`sCf\x19,!$\xeci\xb5k\x92SN\xe7\xb6\xe5\x9b\x16>|E\x84$\x86\x91H\x96\x06\x15U\xd6f(.҈5Æ2A\xd3\xc6m>!\x8b\xcf\xd8\x1d\x907Pdb\xe5:\xbb\xf1\x94\xdch\xaa\r۹\x01\x1d\x92\x90\x15\xc1\x1ep\x1d\x932\xcb&\"cI\x80o\xbeMjWHcE\x99e\xa4@@c\xf2\x9e\xa3|\xb8\xc8\xee\xe9*(\xdex\rK\x90g\xe4jv-\xf4Ěv\xedj\x05\v2\x00\"\x9b\x91W\xf6^\x1b\xa2\xe9\x1c]\bu\u007fe![\x9f\n\x00\x8b\x02\xe2\x9e)輘\xe5\xf9\x8e\xda\xef\xf0\x9bF\x14ڿ\x9f\x94`26\x83d\x95d\xb1\\\xe9\"\xc1tɺ\xado\xe3|\xaa\x95\xd2\x10\xa2\n\xb96:\xe8\xc4`\xd8\x1e\xad\x10\\\x81m#\xe5\x8fj5\xe3P\xf7\x93\xeaUf\x19\xa7\xa2\x15B\xe9\x1bM\xe5A͊\xea\xd1>\x8d\x13\x0fĐzB\xb3\fR\xc2\xf2\x1cRF5d\xa1~e߭\xae\xe5\x83ë\xc8\\#\xb4p\xf9\xbf\xa0<\xcd@bo.\xe7ukA\xd7 s\xc6iX#\x01R\xa5+\xa1\x83\x10RB\x93D\xc8\xd4\xf5C\xf2\x1do\xa8\f\xf5\x8bT\x1c\r\xb5\x9d\x06\xbd\xaeg\x9d\x05\u009df\"\xb9S\xa4\xe4\x9aeu\v4\xdf\xff\xcc]\xa2\x15\b\xf3p=\xba\xc1F\xaa\xff\x1cUge\x84\xb7̜\xff\xae\xfe'\xfc!Li\x8d\xb7R\x0e\xe91\xb99\xd6\xfa\xac\x01\x92\x03&\x02\n\x0e\xf1\xa1\xe2\x990j\x88!\xa3\xba\x13`%@\xc6\xd8&/\x02j\xfb\x8e\x05\x8al\x11{\x05ѻ\x83Z2\xb5G\xbf\xb8|p/\x90\xe68\xa0\x8dfd\x04.c\x1c\x9a\xfd4\x19v\xf9k\x9f\xb9\xd8L&\x03\xc4Y\x90$e\x12;˯|=a$L\xdf0\x12\xfbj\v\xa1\xc9\xc9\xf1\xf9\xf1ix\xa3\x8d6L\xdf\x19\xc4\xe8\xc8\x19X\x19\x19ڏ\xa8k\x96F\rby\x91\xad\x10\xbf\xc7\xe9\x19a\xb1\xd1VW\xe8(K\xee\xf7ȵs9#\xea\xb0^v\x9bCK\xea;W[X\x06\xb4\x96\xa5\xd5\x1f\"\x81\x9e\x1c\xffz|F@'\xa7\xe4^\xf0c\x8d$0&\xb7\xc2\xd8\xf9\x910\xab\xa5\xaeDI8\xd8fk\xf0Pd,a:X\xda\xfaa\xc46\x11\xa5\xb6\xed\xc3\xf0\xa2*l\x8fs\xf9\x10\xbdK\xb6\xce\xc3\xf0\xc1\x17x>\xad\b'T\x91\x8c-\xe1|\x014Ӌ\xd8\xf9\x1a\x8a\u208f\xfe\x1b\xa4\xc0\xd6;\xdc\xc1\x8b\xf3\x99\x04G\x88\x9a\xa3w\x8eD\xb8\xa1\xbe\xfenT\bވ\xedo!P\xf5#\x1b\xb7\xbf\xdd\xdeN\xbe\x05\xdd\x160\x11h0\xb3\xf1\xb9\xdf\xe8\xd6\x059\x13r\xe3\xea\xc2\xfd\xa3\x9flZ\b\x15\x81\x11\xb2y'\x9eҶ\x1f\xb95\x0exL|\xcc\x0e-\xdae;.\xb3\x8e\\Mb\x93\x84\xfe*J\x83\xa5)\x9df\xab\xaaˡ\x02M\x8e̴c\x93l\x19\xc7=\xfc\v\xd0\x14\xbbIr\xa5\x81\x06u\x11\xaaG\xcf#\u0558\xc7c(\x19\xf6>Å[\u0601\xedR7G\xa3\xb5\x8e\xa3\xf31\x9e\x1e\xebw\x8a\x951\x12\n\xcbX\xdd\xfc>\x01\x03\xdc\xe0\a\x16\xf7\xee\xf7i\x8f\x1c9\xea/\x93\xb4\x8bs=FKգ\x1a\x8bq\x8bts\x00\xa2g\xd67/\x95\xf4̔$]\x91\x1e\x8b\xa3\x1e\x10]U^h\xba\xd4\xfax\x84J\x85ȶ@\xcd\xf1t\xe8\t\xcd\xd8Y\x1f\x8f\x80\x9f>\xc9~$&%\xae\xfdr\x1f\f\xf4\xcay'=\xb5%,\x05\x89,9\xdd,8Ղ\xd0$\xc1n|\xb1\xe5\xb9F\x18 ;»\xeb\x83Z\x905\x80\xf4#\xa8B\x84\xfa\xff\xfc\xe8Q\x18\xf5\x18eQ\x8fP\x14\xd5\xd1[M\x12^\xe6S\x90\xb1\xad\x06|\xb3\x01\xa9[\x04\xb2\x96Q\x19\t\xfa\xdaN\xcd\a1\xbd:A\xf9\x817gm\x8e\x97f\x96\u007f\xfa\x97\u007f\xf9㿌-\x02\xaa\xfc\xccX\x9a\xbe\xba\xb8\xbe\xf8\xe5\xe6\xe3k\xecs\x15\xb7\xd0'\xa8\u007f\xc2\xf2\xfaH\x89ҎG# \x83\xb5RaK\xa8xW\x8b\xb1\n\x9c\xbf\xd8:dU#\xf6\x14m. C\xf9\x04\x9c$^(\x8d\xf0\xb8<\xa7\xed\xab\x93\xe2F$w\xbd\xad\xdf\xe3\xdb\xd7\x13\v\xa86\x80#0O\xb9w\xc92\xbe\x14\xd9\xd2\xde\xf1t\xfbz\x82\x88\x89\xd9K\xf3.\xfa\xd0\xd1U\xb62\xf3\xf3\x95\xcf6\xe9$\x02&\xcb\vw\x9b\x19%\x12hƔf\t~)&\xe8凙exv\xcaga\xe5\x1f\xbf\xf7I.\xb5\xc1\x1f\u007fl\x1dC\xe82\xf8c\xcd\x14\xeb&\x88+\xfe\x19\xb4\x8aG\xd2*\x9c6!\xfd\xfdt\x83V\x113>G\xad\xe2ˑx\x91/\x16\x12n\xb4(ze\aX\x10\x8f\x92\x1b\xe0o\x1e\xda\x16\xbe'i\xf0&\xda[:/&W\x95\xefY\xb4\x82\ue61a\x11\bS\x95\xc9\xc2\xc798(u\x8ei\x00ea}N\xfe\x8a\xb0\xd0Pb!\x01\xef[\x12\xfc\xac\xaa9GD\x00\xb7?\x82NB\xcf\x05\xfaE\\v\x84\x8b\xaa\xf9M\xea\x97l\x90H\xaa\x16\x80\xdd\xe5\xe1\x81\xd5סS%\xb8\r{\xbaMc\xc1\xa63S\xa4\xa0J\xd9\xc0\x97\xae\x17`?1\x11\xe9\xf1q\xa8\n֘\f\x99K\x9a\x00)@2\x91\x12샖\x8a{N\xa60\xdf\u007f\x8b\xea\xfap\xf4j&鏁\xd1v\x00\xa3\xa1\xd5\xed~\x81@?\xb4.\x01p\xcd;\x12Q\xe7G;|\x84\xd2W;-\x06˵\x90\xf8K\x9ae\xab\xfa\x90\x05Bu\xd5\u007f\xbaښMd\x87\x9e\x03ܚgϏ1\xa4\x8c\xff\x16\x81֭\xf4\x857b\xd3d\x11N\x05\x81i\xecC\xfa͡cH\xbf\xd99\x86\xf4\x1b?\x86\xf4\x9b!\xfdfH\xbf\x19\xd2o\x86\xf4\x9b\xd6\xf8,\x1csC\xfa͐~\xb3>\x86\xf4\x9b\xe01\xa4\xdfl\x1fC\xfa\xcd\xce1\xa4\xdf\xec\x18C\xfaM\xf8\x18\xd2o6\xc6o-P6\xa4\xdf\xfcV\x03eC\xfa\xcda/\x0f\xe97{ǐ~3\xa4\xdf\f\xe97\a|{\xd0*\x86\xf4\x9b߶V\xf1\xe5H\xbc\x1e\xfd\x9b\x82^\xf2\x19'\x13)\xa6э\x9c&\x18\x9bf\x89KW\x11\xb3\xa8\x90\xba\x9fʸ\xbe`\xbdѧ\xd7\xf7\xcc\b\xba\xec\xd6^\xc2\xedSh:\xfb\xa5\x846\xb18<\x82\xee\x1b/\xa9\xf3B\xd8\xffW\xc7\xcf\x1b\x81s\xeb\xd7:\x9c\xe5\xc7\t\xd2\xf0\x88\xf9!\xd1\xf2:\xf6\x1d\x9a\xf0\xb4-R\x1e\xad\x95\xf5\x8d\x92\xc7\xeb'\xd1\xd1\U0006724c?UT|gD\xbc\x19ێ\x80\xbd\x11\r\xdf\x16\u05ceQ\xac\x1b\xb3{\xa4\x98\xf6\xcexv32\x1dc\xf6nIJ7\xa2\xd2\x11P\x9bq\xecΈt\x04\xcc:\x86\xbd-\x1a\x1d\x01\xf4\xf2\x81駋D?b\x14::\x00\xd3KY\x8d\xf5\xa5F\xea!.\xf1\xf4v!A-D\x16\xc8\xe3Z\xfc\xed\x1d\xe3,/ss\xb0\x95aLlY嵆r\f\xcfs\xacd\xb7!&\x03\x96\xa5\x80\xd7\xd1Q\x96\x857\xe6\xc2&b\v\x8a\x96\xbc*\x93\x04 52\xa9\xd1\xd7/\x10\xe2\x1f\xc7՚\xab\xdb\xf6_\x86љ\xbd$\r\xad\xa3?\xfe!b\xbfí\xaa\xa8\x14\x83\xfd\xe9\x05\b7\x10\u007f}S\v\xe2\x05z\x9c\xb3\xe1)\xd2\tv\xa4\x12\x90\xbf\x8a2\xc6\xcaߞF\xb0\x96\x10\x10#\x17cS\bz\xf0\xc4^\xa9\x03\xbb\xd3\x06\fn\xa2\xb0\xb05e\xa0\n\xfeǸ\xc0b\xd3\x05\xa2%\xd5Ӥ\tlO\x11 ,\xce\xd7\xd0/=\xa0oj\xc0\xa3\xdd_VǼ{\xdeH\xddǫ\xd9ד\xd6+\r\xe0i\xd0\xd1?\xf8\xfd\x89\ue24c\xdc\xc7\xf8p\u007f\xafP\u007f|\x98?.Ŀ;\xbc\x1f\xe9\x84\xef\x15\xda\xefA,q\xce\xf7H\xc7{_\xa7{O\x87\xfb\xee\x10~\xe4\xc6=\x81\xa3}\x87\x93\x1d\xdd\xe5\x11 \xbb\x1d\xec}]\xe5\x8f\xec&\x8f\r\xbc\xef\x0e\xba7\xc2\xe7Q\x8apG\xc0=>t\x1eM\xbfq\f=\"x\x10Ɋ\x19g\x9a\xd1\xec\rdtu\x03\x89\xe0i\xa0V\xb3v\x89Ju*\x95\x05f\xed\xe4\b\xd7l]'\xb8\xa0\xee\x86\x89\xf9n\x8b\x04\xfbo\xfc_\xc4=\x113\r\x9c\x9c0\xee\xf7\xfe4\x9c\xe79ý\xf6\xd6T\x87לݗ/<\xe8\xe0Z\xc6/α\x82.%\xa5\x9eʓ\xe6\xc0?\xb6+́\x9d\x95\xa1\x9e\xec\x96;\xcd:\xe4\xda|;p\xc3\xea\xeb\xb5^\xe2\x9c=\xc7@\x8f\xae+\x96\xff\xed\x13Qd\x12\xd4\xde\x04\xa8:\x9d)\x10\x85\x9d\xc9O\xedT\xa6@\x88\x1d\x89O\xddiL\x81p[IO\x11)L\x9fԛ\xf8HiK\xbbS\x96H!bl\xec\xa8t\xa5\xc1R:h\xecNK\x1a,\xa5Ok)}\ued80f9\x88R\u007f6f\xc0\xfd\x82%\x8b\xa6\xb6\xc1rPD\x94\xf1)\xd4F\x8fpS\xea\f\xb6=\xed\x055\xbf!\xcb!\x82\xc2\xc2\xdc\xde\x1d>\x9f\xb5\xde+u\"P\xc0z\xa9\"\x94\xbc\xb9\xbe\xf9\xe5\xfb\x8b?_~?&\x974Y4[=qB\x03\xc5\x1a\xf2\x9a\x05]\x02\xa1\xa4\xe4\xec諒\x99\x90\x9cT_9}\xa6;\xc8#$\x87\xe1,\x01\a\xbd\xb5)\xdf3\x85\rq\x10\x86kQ \x14\x84^\xfeږ%\xe4\xd2\x00\xb1\xfa!ʝ\x05H s\xb6\f2T\fL\x9b\xffChZ5}0\a՜\x12&8\xa1SQ\x06\xb1\xc6\x05\x10\x0eڜ\xe0\xca/%\xb8j\xf5\t+\x15\x04]\v8-\xf1:\xb3B\xb2\x9cJ\x96\xad\x9a\x13\xa4٘\\\v\xafq\xaf\xc2t\x81&\xea\u07bc\xbf\xbc!\xd7\xefoI!\xb1ՒͶ\xc1\u007f\x0fܨ)\x98m\xb1\x9b\x9c\x8e\xc9\x05_Y0\x96K3E\x8c\x9a\r\x1a/\xe5\xe3]\b\xd6\x1e\xbd\x9a\xf4ک\x1f\r\xd31p\fv\xb5 S\xc6\xd3(k\x04\x1e4H\xc3\xccݎ?\xdbm\xe9f\xf2\x9f\x1d\xc1\xda\xe8\xc6լy\xfb\xab\xfe\xbcH\x96\x98\xe9\xfdE(}\xed\x98O\xfb\xaeZ3\xdb`\x88\xa8r\xe5T'\x8b6g4\xea\xbb\xd25\x83\t\x87\x9c\n\xccӵ)\xae\v\x16\xecf\xfe4\a4&\xa1\xa4E\x97\x8fIAk&7\xfa[\x9d^l\x1b5\x86\xfb~,kvʺYl\xda\x10a1N\xa8-:\xbb\xf3\x1e\xc4\x14\xfc֥[\x86\xd3%\x94\xdb\x1a\x94\x19Hi\xfbwMó\x8f\x15\xc8%K \x98\b\xa3y\\!\x85\x16\x89\b\xbeO\xbf\x9dXဠ\xd7ݺw\xdfE\xd2\xd2\x0fo&g\xe4\xf6\xf5\x04\xaf\xb4\xbey};\xe9\x93]K\xc8\xd1\xed\xeb\xc9\xd13!3\xc6\xd53j\xabFAo\xfa\xad\v1i\x9e\xe7\xc2\xff5\x1f\x9a1\x12F9-Fw\xb0\nP\x1ccq\x13\x81\x99\xcd\xe9\xdaE\xe7\xf4Єd\t4e\x9fI\x8d\x9cc\"\xf5\x9c\xba\x8b\xe5r\xb1\f\xf2\xa3\xa0\x19\xe5a\x03O\v\xc1\x8c=\xe2Z:7+\xe8\x02\x80\xee\xbcs~\xa8\xa0\x1b*\xe8\xaa1T\xd0\r\x15tC\x05\xddPAw\xe0\x18*\xe8\x86\n\xba\xc3\x17:T\xd0\r\x15tC\x05ݎ1T\xd0\xed\x9d\xcfPA\xb7k\f\x15t\x8d1Tе\xc7PA\x17\xf8\xf2PA7\xe4\x85\xee\x19C\x05\xdd\xe7\x9c\x17:T\xd0\xed\x1a\x9f{\xd6\xecPA\xf7\x99x\xe9\xc9PA7T\xd05\xc6PA7T\xd0Uc\xa8\xa0\xdb:\x86\n:;\x86\n\xba-\xe3\x1f\xd7R\x1a*\xe8>/K\xe9s\xb7\x05\x86\n\xba\xa1\x82.\xe8\xad \n\xf3W\xf2\xc7Vl\x1d\xbf\x16yQj \x1f<\xa0\xea@\x85\xe5\xa7b\x86p\xa3h\xeb9\x9b\xa4'\x82\xcfؼ\x94X&un\xeff\x1f%va\xa3\nC\xa3jv\xe7O\x9d敱\x9c\x85\x14љQW\xa5M\xa2\x95\x9c(\xf9\xdaO\xba\xf6\x92\xad\x05\xd5\x1a$\u007fE\xfe\xe3\xe4o\xbf\xffut\xfa\xcd\xc9\xc9O/F\xff\xf6\xf3\xefO\xfe6\xc6\xff\xf8\xa7\xd3oN\u007f\xf5\u007f\xfc\xfe\xf4\xf4\xe4\xe4\xa7\xef\xde}{;\xb9\xfc\x99\x9d\xfe\xfa\x13/\xf3;\xfbׯ'?\xc1\xe5\xcf\a\x029=\xfd\xe6\xeb\xc0\x89>\xaa\xc4j\x1f\xc0\xef\x91V\xeah\x1e\xb2\xe6\x9c>\x18.\x1a\xba\xfd\xb9(\xb9\xb6i\xa1\xf6TW\xc4o#\x9f\xcfq\xe1\xffS\x9dD\x12/\x82]\fx8\x90{\xc7p \xc9\xf1\aG-\xebG\xd2*6\x8fx$\xbd\xa0\r=\x93W3R͑)\"r\xa6\x8d\x95>\x13\xb2Y\xe9\x1a\x9a\\\xcat\xcb\x14ul\t\xb3\xb7)\x16%G_7ߨ#\x12z\x01\xf2\x9e)trQ^\xfb\x14\x90a\x8cR\x981\x1e\x9c\x96\x81\xaaf\xb0\xc7\xf9sdU\x11/)HJ\xc9\xf4\xea\xb5\xe0\x1a\x1e\x02l\xf26\xd1\xdf80D\x146\xdb\xd5\xe78\xd9\x14\xf1\x10f[r\xac\xea\nސBd,Y\x9d\xfb\x05!\xe6\xe1A\x9f\a|\xfb\xb0/j\xaa\xee\xea\xfd\x87\x911\x19\xeam\xde\xf8\xfeS+\x8b(\x99'\x92-Y\x06s\xb8T\t͐&\xfb\x98\x8a\x17[`\x06\x9e,\x83\x02)2E\xee\x17`N.\xa1f\x8d\xe8\xb0H('s\x1a\x9c*\x94\x9b\x1d*\xfc\xc4\f\x99\x19.\xa0\x15)\xa8\x04\xae=\xf8P\x96\x88E\xd9S!2\x97\x13\x9f\xad깻\x02\x14.~\xe1p\xff\x8b\xf9v\xb0{>\xa3\xf3\xaa0F\x81\xde\xf0\xd6\xc4N{\xdb6\xd9t\xeb\x12\b\xcd\xee\xe9*t\xba\xf7\vX\x9f\x1fS\xaf\xc8\xcbS<\x9bT\x91ꋡ\x9c\xf6\x0f\xa7\x187|}1\xf9\xe5\xe6\xaf7\xbf\\\xbcywu\x1d\xc3\x16\xcdNAХp\t-\xe8\x94e,\\\t\xdb\xc8fj\x82B1\x94\xa6\xe7\xa9\x14\xa1\x89\xb1\x88eYr\xce\xf8\xbcQ_\xdc'W\xb9\xd9\xf6\x02\xc9l֞\xec\\R\x1e\x9e\xb58]\xad\x11\x83,\xb9f\xf9\xb3\x15\xe6дoQ\xceE\x9aB\xdaBE0\xbc\xc7ɾ|\xed\xa7\xb0\xaa;nD\xc0$d\xf2\xfe\xe6\xea\xff\xadQ⪈O\x16{\xe6:\x06B́鹫\x1fl\x85ᰯ\x9d\xe3K\xaaO\xa9\xe4y\x9fx\xfa\x87\x92\xb7\xbbn\x15\xb1R*\x17)\x8c\xc9ĊdPmX\xf1\xad \xa8\x04b\x00r\xcdh\x96\xad\x88\xb1ޖ4\x03\x9b\xc0\x8f\xb5s\xc1\nVw6Ռf*\x90=\xc7\xcaU\xa3\xb8\xbc3&j\x8f\x9d\xab`\x90\x14\xb8\xd0\xce^\x8e\xa0{1CX\xc4\xda̍\xa4\xb5\x96\xfc\x8aP\x0ek\xb1ʔ\xc7\xf4\xa4\x9a5FD\x02a\x96\nT\xb7X\xad\xac\xe8\x88\x1c\x10\t4\xc5\xdaނ\xea\x85ͪȩ\xba\x83\xd4\xfe\x10\xa5\x15;/\x83\x9dm\xb5\xe8\xdbU\x01d\x06T\x97\xc1\xa1\x19Ԇm\x8e\np:\xcdB\x1d\x18\xd1\xed\x13h\xfa\x9eg\xab\x0fB\xe8\xb7U)j\x0f\xb2\xfd\xd1\xd94\xedȅQpC\x19\x03\xcem\x84\x1b\x87l\xa0Q)\xeb\xa9-\xd4\x19\xa3\x9e\x93\tȒ_\xa8o\xa5(\x03E\xfa\x86j\xfd\xed\xd5\x1b䅥\xb5?\x80k\xb9\xc26\x00ጠ۾\"?\x98s\xe7NZ\xa8\xca\xe2Y\xc0\x8c\x94\\\x81\x1e\x93wtEh\xa6\x847낭\xd9\tf\xf95\xfd/ct\xcfY`d*t(_Y\x03\x87,`\xf3+\xa1\xbe=\x83L\x1b\x90\xad|qf~kPC\x81\xd2;P\xa4\x90\x90@\n<\t\xa4\xd5Fl\xf5O\xff\xfc,i[H\xe5ׂ\x1b\x06҃ίx\xca\x12j\xa5\x1c\xd5m:\rUTJ\xa5\xbdMN\xb1\"\x1a\xd9G\xa9@b\v/-K\x88\xd9\xea\xef\xca)d\xa0\xad\xcb\x02\xbbwQm[\x0f\xb0\x9c\x06\xdf\xeeNu%ڴ \xc0U)\xc19\x855I\x05\xc4䗹E\xffp\xf5\x86\xbc 'fէH\xea3\xca2,\xf9\xd34\xf8\xa2\xf45\x8f\xc7\xccO\x0fQ\x89'\x9e\x04wqB&|F\xb8 \xaaL\x16\x1e\x97L\xf0\xca\x1d\xe4rk#\"k\x1b\xccg\x1b;\tu\xb7\xd7\xcc\xe7\x1f\x87\x9d\xf4\x12}?(\x90=%\xdf\x0fO.\xf9\xe2\xddJ\x86\x9f\xb4w\n\xd9\x00\xc9AӔj\x1av\x1d>B\xe4\x8d~1\x03!\xaf\x01\xfd\xc2䢂\xef\x19/\x1flrk_\xe7\xea\xcd%\x02#.xb\xed\x84P\x81S\x14\x19\xb3-\xf2\xd6:A[F^\x85\x13{\t\b/Ӑ\x91\xd3,\x13F\xa8\x87k\xfe\x94\xa7\"\xdfX\xb61\xe6\xa0\xd5G|\x8c\x1c?\x14\xfep\xacj\xa0\xbd\x8eU\xbc\xfb:\x83%\x04\xb7?\\\xef\x8bn`\x18\xa3\xce\xd3\t\x02\x8d\xf0\nft\n\x99U\xbe\xec)Q\x9b\xa7$\xd2[\x18\xe5j\x94\"\xeb[\xa2\xf8Ad\x98'J+\xe4\x18\xa0\xbf\x01\xdc\xe0\xab\xfdp\x83^\x9a\x16n\"\xbdɟ\x1bn\xca`\x8d\x8b\xac\xe3\xc6(mm\xdc\x18\xa0_\xe7\xc3|/&\x9c'\\\xf3?_@I\x11\xd1\xc0S\xc6\xe7\xe8ݏi\x06)!\xa3Xx\xea\x18֝u\xfc\x1c\xe3\xa9s\x13\x8f\x00\xeb\x0f\xa9\xdf.ԍ\x99\xe0n\xf6\x82\a\xa7\x00\x12۽\x19U\xcf\x19\xf28ú\x8f\xbe\xf7\xe4\x15܃\xf9SK\xe6#\xbb\x86\xca\x17\x18\x13C2\xe3\x8e\xf1\xd4U\xf4\xb4P\xee\xdcK1\xa7\xccZOc\xf2\x11\xdb\xf6{6F%\xbc\"\u007f\xe3\xa4By\x04\xe8ў#\x1cs.ܑ\xda8\xc2\x1f\xacy\x16\x17>\xb1\x93\xdd\x19\x9e\x8b\x80藾>\xd5\x1f8\x9e\xb6\xf0\xc4U;M.: \xfb]\xdf\xe2:\xe8r\x06\x84\x06C7\\\a\x9f\xcc\x190\xcf\x15}-\xcd75\xa3\xd9M\x11\xda͛\xac\xd3\xe2\xb7\xefn.\xda\x00\xe3Z7\xdf\xe3\xcd^\x06\xd7\x06\"\xa1iΔ\xc28\x05L\x17B\xdcE\x80<\xf1)\xd4s\xa6\x17\xe5t\x9c\x88\xbc\x91M=Rl\xae\xceݙ\x1c\x19\xbc\x9cF|\x83\xf1\x8c\xf1F&\x05\xde`\xe5|\xe0f!\x11 \x93\n\x9bHp\xeer\x10\x97\x04\xb9\x89\xee\xeb\xb8\"~\xec\x85\xf7\xacJ\xcb&\xe9]G\xb5<\xdcC~\x91\xf8p\xfd\xd2\x1b5\xf1\x96\x10\xeb݈\xd1C\xcd\xfeY\xe3\xf3y\xbdZ>(\xf4\b\x18\xc6\xe0\x90\x03e8\x99\x13'>\xf1&\x134%\x86\x87\x06@\x15\x92\xdcS\x99\x13J\x12\x9a,\xe0̖[\xa5\xa5\xc4\xf6\xfa\x1ah\xba\x1a)\x1d\x16\xf74\xaa\xb3\xf3\x06a~i\xf2\x8c\x8d\x1e\x86\xbb|\xb6\x8f\xe1.\x9f\xe1.\x9f\xc6\x18\xee\xf2\xa9\xc6p\x97\xcfp\x97Ͼ\x97\x87\xbb|\x86\xbb|v\x8f\xe1.\x9f\xe1.\x9f\xce1\xdc\xe5\xd3\x1c\xc3]>\xbb\xc6p\x97\xcf!c\xb8˧9\x86\xbb|\x9ac\xb8\xcb\xe7\x901\xdc\xe5\xf3\x0fܡz\xb8\xcb\xe7\xf3\xeaP=\xdc\xe5\xb3k|\xee\xfd\xbb\x87\xbb|\x86\xbb|\x86\xbb|\xf6\x8e\xe1.\x1f7\x86\xbb|\xbe$\"\x1a\xee\xf2\x19\xee\xf2\x19\xee\xf2\xf9G\xb5\x94\x86\xbb|>/K\xe9s\xb7\x05\x86\xbb|\x86\xbb|\x82\xde\n\xccmLY@\xd7\xefC\x9a\xd9\x05wo\xf7\x8d0\b%\xd3r6\x03\x89\xba!\xcel#\x8f$\x00\xaco9\xec\xb3\r}\xbe\x87\x02}\x86\xdd\xf3l\x91K\x88\xf6\xdf9%\xdf\xcd㞮\x14\x91\xa0\xc2\n\xbd\x18'\x97\xef\xdf\xd6\x06Ux\x17\xbe\x986D\xb8\x92\xf7<\x89\xcdg\xad\xb7\xbe\xa3\xdc-\x04\xa36\x81,Ʉ\xb2\xb9M\x16\xc5ɂr\x0e\x99\xb3?\x82\x92{\x16T\x91)\x00'\xa2\x00n\x8b0(Q\x8c\xcf3 Tk\x9a,\xc6f\xf6!*\xb2\xdbv\xd7\x1e\xbd\x9e\xa5\xd2\x12hn\xb7_B\x1e֘\xdeL\x8f\xd0D\n\xa5H^f\x9a\x15\xd5\x04\x89\x02\xac\xa3Q\xa1\xa9\xbc~S1A\nl\x1a\x8f,\xe1\xac^\x81EJ\xc84\x9b\rr\xd1B;\xc3{9\xf2B\xaf\xaaL_ 3&\x83\xaa;\x93\x8c\xa1!\x80\xeb\xb5\xcd\x0fp\x8egh\tjls\x8e\x18\r\x91%\x16\xa5\x96C\x8dQ$\xdd\x14?\x1b>c\xf7rc\x8a\x8d\xee\xf9uZs\x88\x86\xe4\x99\x1dvL\xf5\xcc\xe4\xacyI\x8b\xaf\xbd\b\xf22`:X\xcd4\xdd\xfa\x91\xf49,\xcdه\x04\xd82\xe4\xec\xd3-\x9c\xefI\x19\x9f\x06\x993\x8e\xb9\xc4\xef@):\x87IP\xd8j\x9bA\x87\x91\xab\x9aD\x82Tz,\xc3բ\xa1Y\xd5i\x93Ǫ9\xe5\x00\xa0\xb9]]\x95#\u007f/\x99ր$\x8b\xad\x8e1N\x1f\xa4\xd3oL\xac\xd9r\xf6\x9d\xff\x9c\xfdL\x88\x00T\xa8\xe7\xf0\xd4\xe6\xccO\x81L%\x83\x19\x991N3\x97Cx\x86\xad\x10Ch\xcb:C\x942ƾ\xe0>E\xcdceL~\f\xaeuײ\xe4\t&0\xba\xba>,!g32ǼFi\xf3\xdc\xff\xf9ſ\xfd)\x00\xe8tetR\f\x92k\xa1iVm[\x06|n(\xca\n\b\x9a\x85x\xee\xea\x82\xe0j\xf7\xf1r@\x8b\xe0\x97\u007f\xb8\x9bF\xa9\xeaZ\x90\xf3\x14\x96\xe7\rz\x1ceb\xdeu\xed\xe2\xe1jr\x84a\xddq\x84\xf1\x16\x9f\xc8C\xec{\xab\x92\x85\xb8\xb7M\xc4{\x9d\xb7:%\xbe\x10E\x99\xd9`\xc6۪\xbdBXO\x9b\x8d\x12\xd5N\xee\x15f\x9a\xfbi\xad\xc9\x1b\x97\xac\xeb\x97\x11\xb4v\xac]sN檥j)aL\xde\xd2,\x9b\xd2\xe4\xeeV|/\xe6\xea=\xbf\x942\xa8\x1f\xaaǙ-ѡJ\x93dQ\xf2;{\xb7\x99\x9fz&B|2\xa2\xd4E\xa9}\xd9O\x03\xa3\xd5\xdamә\x90\xa3a\xd5!\xa7\xba4f\x06\x0fx\xea\xee\x999ʜ\x80Y}\x8807|!\x13\xf3jΪy\x90\xff\xf0\xe2\x9f\xff\xd52\x90\x90\xd5K\xf2\xaf/\xb0\xb8@\x9dY\x81\x83\xd2\xdb(\x8c9\xcd2\x90\xb1\xac\xc1\x90x\x17+xRN\xa0c\x0f\xfd\x13\x98\xae\xb7\xb7\u007fE\xbb\x95i\x05\xd9\xec\xcc\u058b\xfaF\xf8\x01 \x8fQ\xb5:v\xb2\xd0\xe8\xef\xcfm\x1c.EV\xe6\xf0\x06\x96,\xfe\x8e\xdf\x16\f_\r\x931\xa5\x89\b1i\xa6\x99H\xeeH\xea\xc04r\f\xd7/\x18:\x1c#\xc1y\x94[\xd7ո\xac\x91\x92\x9c\x16E\xa8s\x18+\xf8$\xbdo-\x13\xb9\x05v\xb8\x89r\xe6\xc6F8\xec\xc7Ôa\xfff\x03?5\x18\xbf\xe9\x05\rnHO|=\xceFg\xe2\xaa\xfd\xb9\xfdN0\\\xaf\x0f\x99\xddB.\x1a\xea|\x8e\x0e\x04\xc4䗶0\xcb+\x1fzN\xb5\xb3\x13\xa2\"HHu\x05HŔQ,>\"E\xbf\xce(˝k+\x18bx\xc8)\xfa>\x8ep_\xfd\xa8A\x93A\xaf\x05\"\xb7G5zH\xb6\xa5e@x\x9fJ,o\x9e\x88ԁA\x96jo\xbe1\xc6`\xe0\xe6o)\xee\xeb\xa3\x04\xf4c\xce\x1fkܴy\xb3\xf9%\x8a9[\x88\x9f\x88%\xe3\xb4{sd\xe4\xc5n\x01\xfd\xbav4\xdd\x1b\x8e\x80\x1a\xe6\x8e\xf3*\x8cm\x8eG0pC1nj\xe4\xf8\xd5\xf1\xb3\xf1e\x8bd)\n:\x8f\xb8\x01u\r\xd7\xeb\xc0H\n\xd6\xc0\x88(i0\xe6(\xc2S\xbe\x05)B\x85\xb4j\xcd\x15\x01\xd2\x16b\xd5\xf2ԛ,\xb6\xef\xc3}p\xce7!T\x8a\x92\xa7֧^\x87Wޭ!\xe2Z\xf0\xf0\xe92U\xb5\xd64\x8a/\x83\fK\u007f\xa7\xa0\xa9\x91T/\xc7/_|9\xe2\x1bװ&\xbe\xa3\xfa\x1e5\xf8ҳ\xad\xde߃\xd5\v\x03\xef\x9c۱\xbe\xb8\x8a\xc5]7c\xe73\xba\x97LC\xe3v\xef\x134\x8d\x8c\x85\xdb\xe8\xf6s\x1a\x9e]\xd0\xf3V\xbc\xf8{A\bQ\xe5\xf4\xd1\xf9\xbde\xd4\xc1X@&\xd3\xe5\x91V\xb1\x10;DE\x13\xd5G\xe1m'O\xecL\x8e\x15v\x1e\b\xde\xea\xe8\xe3\xe0\xb6\xe9\xf2\xa1\bn(\xdeڪˇ\x82\xa2\u07fbh\xefY0\"\x9c0\u07beg\xb1\x10;\xf6\xecϰ\xa0\xcb\by\xa6X\xce2*\xb3\x95\xd9\xec\x1b\x8bA2-5\x01\xbedR\xf0<\xe6\xfe\xd3%\x95\x8cN3 \x12\xb0\xc3N\x02\x8a|}\xf2\xf1\xe2\x03f\x16\x9d\x1a\xc9\x19\f\x13\xfc\xae\x94\x8a\xf1\xf9\x06\xf57\xa6ۏ\xb7\x1c\x1dm\x10\xb0Nj\xa1\xacpI\xcc\xd3\n\xafFc\xc8K]\xdaKC\x1f\x92\xacTl\xf9\\\xf2\"\xceJ\xab\xb4\xdd߀\x91\xe6\x1a\xac\xbca\x01\xfca\xad\x8dLMp\x1b\xddZ\x02\xc3\xc1\xa8\x94\xd5]\xbe:S6\x828\x84\xbf\u0530\xd9\xd8\xd59\x93]/)\x9b~\x1e\xde\f|#\xb5\x06;\xf9=\xaf[9\x8cz\x03(0\x90\xf6B\xa8\xce\xe5\b\x1e2\xe5\xb6Rj\xdfs\x8d\xb5\xad\xbf.\xa7\x0f\x98\x80G\xf1@\x1e\xb421\xb3I\x11\x1f!\x03)\xbcи\xa7LW\x95\t\x8c3\xfd:\xec\x16d4Tl\xff\xb8C\xb6;`\xa3\x0f܉\x83\x1e۷M\xbb\xc9i\a\xf9\xec\xf9\xfa\xf6\xefn}\x91\xf1$+Sx\x9d\x95J\x83\xfc\x00J\x94\xb2\xc3ÿ\x16\x1d\xed|\xa7Qtp\xefB)\x89}d\xa4\x12Qt\x1czY\xbfZ\xe9\x14nB\xa9/,\xc4z\x15k8W\xdd\x17\x94\x16\x12:\x13\xa1x\x99ek\xe9\xef\xb2\xdc \x15\xf3\x94\xd1\x10:3\x83\xb7k\xea~j\xc6DS\x05=\x10M\x8d\xc7\xed51*c\t\xba\xb1\xb9\xff\a\xfb_f\xb6\xee\x13\x1b\xeb\xb2;g\xf3l0y\x11\xa3\x8bg\xd8\xeb\x9b\xd7\xf0m\xbd\x9c\xfd\xec\xfa\xa2\xb7\xb8\xd1v\x1c\x91\x03дIk\xfe\xf3A\xa4T?\xbd\x86\"O!\xfb1\xb4I\x1cM\x1cՔ枛\xd2\xe4\xae,>\a\x84\xe1\xb5?7\x90\xa1\x1c߉\xac\xef\x9bOZD\xe5\xa0\xe9\xf2\xe5\xb8\xfd/\xc6Fe\x99\xc6,\xd4\x0e\xd5\xe9\xdef\xd2\x19<\x19\x15\x82\xf1\x94-YZҬEe\r,\xd5\xc8\xc4\x12\x05\x96m\x1a\xe7\xd8$̽\xdd\xc2)\xf1\xe9PAgp\x97w\x14]%F\x19v\t\x91]L\xb4\xed\x80[{\xc1b\xce\xc5\x1dݭK\xca\xe3αf\xa3\xc9o)]\xbcu\r`\xfcS\xb8ދ\xeb7\xdd\n\xc8\x0e\xe7uk\x92\x17;&\xe2\xceD\xb5\xbd\vZ\xb9E\xb7IM̔Wg\x84\x92;X\xd9\x04J\xca]\xcbL\x0f\x02/mq\x02\xfe\x0el\xaa\x82}\xaf{\xe1\xfb]\xd6w\xb0\xc3\x1b\xd4Z\xae\xf9\x9e\x0f\x00\xe3\xba\xcd\x0fU \xafZ\xaa\xbb\ak\x97<\xde\x11\xad;@\xfa{\x8c\x1c8\xed\n\x81\x12\f9\xd9\xed7s7\xd6\x1aށ#\xb8Z\xb0\x02\x8bpv\xcc\x1a\xef\x00\x9eylW7\xa4X\xe0\x96\xa2\xae\xf8\x19\xb9\x16\xda\xfc\xcf\xe5\x03SZ\xedi\xfc\xfcF\x80\xba\x16\x1a\x9f\xed\x85\x12;\xa9\x03\x11b\x1fF\x02喷a)\t¯\x96w5s\xb7H\xd8\xf5\xedX\x04S\xe4\x8a\x1b&\xe3V^u\xa8V\x0e\xb8\xaf\x17\u208f\x90#y\xe8;\x80V\x9bƔG\xa5\x90-|m\xf9\xd0\x0e\x98S \xee\xf3\xe8õ\xef`zn\x91\xd1\x04R\xdfۖ\x1a\\P\rs\x96\x90\x1c\xe4\xce;\xaf\vç\xb6o\xdd\xde0\xd8A\xcan_\xd5\xf4\x0e\xba\xdf\x1b\xed\xde\xdeh\xc5\xd5\xf1{\x14p\x9d\xab\xa7\xa9\xef\xc89\xd9ß\xf6\xe0gSf؏:AK\vC\xd9\xffc\xd8)\x12\xca\xff\x92\x822\xa9\xc6\xe4\xc2U\x12t~\xb3\xf9\xbc\xd3<\x9a\xa0\rT\xa6\x88\xc1\xf9\x92f`۶QN\xc0\x16\xc5v\x82\x14\xb3\r\x89f\fm\xa1,\x17\xafB\"Gw\xb0::k\x9d\xbcm\tlGW\xfc\xa8ʲo\x9f\x03/gl{\xe0#\xfc\xb7\xa3\xf1\x86\x10\xec\x04\xbbS0\ue808\xad\xffTi\xba\xeflb\xcd\xfa>\x1fF\v;\xe8`\xa3\u007fM\xf3k-Bh\xaa\xa5-\x15~\xf3sT\xceAw)\xfbNW\xc50\xfb\x98\\\xf0\xd5\x06\xd4\xee2\xeb\xcaD\xaa(\xaah\xb5=\x17\xd2%r7\x01\xb9\xb4\x19Es\v\u007f}O\xb6\"\x1d\x05\x9d\\µHa\"\xe4f\x86A;Ұ\xfet\x87U\xd8X\xba\xc8R̙\xc6G7\x16\x8az\xa8\xd3A\x1fDŽsߝ|ܽ\x8a\x0f\xd5c\xbb\xa7O\xb1\x9f\xafۍ\xc9\xc7-+P\x9c\x16j!49Y2\xea\xaaND\x99\xbaN\xf0r#F\x11\xb96\x95, -3\xe8\xba,d\xa3\x81\x8f\u007f\xd0ka%g\u007f/\xdb\xf7\xa6xύ{z\x93\xb0k\x83\xac\xc8JI3\xf7g\"\xb8\xe5\b\xea\x15\xf9\xe9篈\xc3\xc0G?\x0f\xf3\xe3\xff\x0f\x00\x00\xff\xff9\xa7\u007f\xb0\x93\xba\x01\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec}\xfds\x1c7r\xe8\xef\xfe+P<\xd7#\x99\xe3.\xa5\xbb\xe4*Q\xa5\x9e\x8b'Q>\x96-jK\xa4\xe5w\xe5s\x1c\xecL\xef.\xc2\x19`\x0e\xc0,\xb9\x89\xf3\xbf\xbfB\x03\x98\x8f\xdd\xd9\x0f`HJ\xf2\rR\x953W3=@\xa3\xd1\xe8\xef\xa6\x05\xfb\bR1\xc1_\x11Z0x\xd0\xc0\xcd_j|\xf7\xafj\xcc\xc4\xf9\xf2\xe5\x144}\xf9\xd5\x1d\xe3\xe9+\xf2\xbaTZ\xe4\x1f@\x89R&\xf0\x06f\x8c3\xcd\x04\xff*\aMS\xaa髯\b\xa1\x9c\vM\xcd\xcf\xca\xfcIH\"\xb8\x96\"\xcb@\x8e\xe6\xc0\xc7w\xe5\x14\xa6%\xcbR\x90\xf8\x05\xff\xfd\xe5\x8b\xf1\x1f\xc7/\xbe\"$\x91\x80\xaf߲\x1c\x94\xa6y\xf1\x8a\xf02˾\"\x84\xd3\x1c^\x11\tJ\v\tj\xbc\x84\f\xa4\x183\xf1\x95* 1\x1f\x9bKQ\x16\xafH\xfd\x0f\xf6\x1d7\x11\xbb\x88\x0f\xf6u\xfc%cJ\u007f\xd7\xfc\xf5{\xa64\xfeK\x91\x95\x92f\xf5\xc7\xf0G\xc5\xf8\xbc̨\xac~\xfe\x8a\x90B\x82\x02\xb9\x84\x1f\xf8\x1d\x17\xf7\xfc-\x83,U\xafȌf\xca\xfc\xb3JD\x01\xafȵ\x99EA\x13H\xbf\"dI3\x96\xe2\x12\xed\xbcD\x01\xfcbr\xf5\xf1\x8f7\xc9\x02rj\u007f$$\x05\x95HV\xe0s~~\x84)B\xc9G\\\x9f\x99\x04n\x04\xd1\v\xaa\x89\x04\x9c\n\u05ca\xe8\x05\x10Z\x14\x19K\xf0+D\xcc\x1cHR\xbd\xa3\xc8L\x8a\xbc\x865\xa5\xc9]Y\x10-\b%\x9a\xca9h\xf2]9\x05\xc9A\x83\"IV*\rr\xec\xc0\x14R\x14 5\xf3\x885\xa3AJ\xd5okk86\x8b\xb4ϐ\xd4\x10\x0fة:\x12\x80\x94(D\x00\x113\xa2\x17L\xd5K\xc2e4\xc0\x12\xf3\b\xe5DL\xff\v\x12=&7f\a\xa4\"j!\xca,5\x14\xb7\x04iP\x92\x889g\xff]AVf\x81\xe6\x93\x19\xd5\xe0v\xda\x0f\xc65HN3\xb3=%\x9c\x11\xcaS\x92\xd3\x15\x91`\xbeAJހ\x86\x8f\xa81y\x87[\xc2g\xe2\x15Yh]\xa8W\xe7\xe7s\xa6\xfd\xe1ID\x9e\x97\x9c\xe9\xd59\x1e\x016-\xb5\x90\xea<\x85%d\xe7\x8a\xcdGT&\v\xa6!ѥ\x84sZ\xb0\x11N\x9c\xe3\xd9\x19\xe7\xe9\xef\xaa\xcd:n\xccT\xaf\fA)-\x19\x9fW?#ioŻ!qK9\xf65;\xff\x1a\xbd\xe6'\x83\x95\x0f\x977\xb7M\xaab\xaa\x8ds\xc4v\x83\xd0j\xc4\x1bD1>\x03i7\x0ei\xcb@\x04\x9e\x16\x82q\x8d\u007f$\x19\x03\xdeF\xba*\xa79\xd3f\xa7\xff^\x822\xa4+\xc6\xe45\xb2\x102\x05R\x16)Ր\x8e\xc9\x15'\xafi\x0e\xd9k\xaa\xe0\xc9\xd1n0\xacF\x06\xa5\xfb\x11\xdf\xe4|\xed\a-\xb6\xaa\x9f=\x8b\xea\xdc!w\xbao\nHZ'ü\xc4f\xfe\x18τl\x1d~\xf3ʸ\x01\xb2\xebX\x9aa϶aA\xed\xdf\xd7&\xf1\xe7\xea1C+\xe6\xf3%g\u007f/\x01Y\xa8=\x93\xb0\xc9.d\x83\x9d6\x87!\x81\xf1گ\x9d\x184\x03\x1e\x92\xacL!\xadؤ\xda9\xd3ˍ\xc7\U0005284c\x1b\x1a7L\xddL\x97\xd7\xff\x8a\f\x92v\xcc\xd2\xd0\x19\xe3\x16\x1aa\x1c\x97\u0601Y3\x98\x86|cZ;\xd6D\xf0֢\xd3\f^\x11-\xcb\xf5o\xdb\xf7\xa8\x94tՉ\n\u007f\xcb\x1e\x86\x89\xeaiw\xcc3\x96\xe0\x96U\x87\x19\x91\xf1%\xe1a!\xc4\xdd\xee\xb5\xff\xc5c\xe9\xfb\x8a\x9f\x91k\xa1\xaf\xf86a\xb5=.\x1f\x982\xd3\xe2)y#@]\v\x8d\xbf<:\x12픃Qh_\xc3#\xc4-\x1b6\xebo\xdan\xf6\x12\xb1\x1dWVi\xaf\xb6\x84)rō\x12aqe\xado\xf6c\xbb\xb8}{\xe4\xa5B\xe3\f\x17|\x84\x97ݸ\xeb;\x0e\xc5\a\x12rs\x176\xa7U}\xd2~\xee \x88\xb7\xe6^\xb0o[KbF\x13H\xbd\xae\x87\x960\xaaa\xce\x12\x92\x83\x9co\xbf\b\x9a\xa30<\xfb\x90\xcf\x1f\xc4K\xed\b\xa2\xa7C\xaef?\x1c3N\xf7Mcd\xce\xe6\xdeg\xfc\xd6\xeey\xb0\xd3\xf4\xb5\xfd\xc1}\xeb\xc0K\x12\xe5\x86=ؤi\x8a\x9e\b\x9aM\x0e\xe6\xde\ac~\xf3\u07b6S\xb2w\\N\vs:\xff\xc7\\UH\xb4\xffK\n\xca\xe4\xde\x13z\x81\xee\x84\fZo:\xd3K\xf3#\x06>S\xc4\xec\xe6\x92f\xeb\x06Ԏe\t\xc35 \xb3װ\x98mH\x1ag\xe4~!\x94\xbd\x15g\f\xb2\x94\xb0]\x92\x96\x19Gw\xb0::\xdb8\xe3GW\xfc\xc8^\xcf\x1b'\xd6\xdf\xe5{\x00\v\x9e\xad\xc8\x11\xbey\x14/\xba\x1cDu\a<\xc4;L\xa4\xf5h\x91A\xd3LZ\xdbG\x9d(\xba}\xb6\a\xd0\\!\x94\xfeK\x97\xf1k\xcbL&\xfe\xf9\xb6\x04\xd9aMڣ\xd98\xcbP\xc5\"\x8d\xd45\xd3 \x9dA̲M/\x9b\xf7\xd0T\xf6\x19\xbd*\x83\x17\xf5\xa68D\xeaN\n\xb0\xa6\xf1\xfd\x93;\\\xba3\xd8\b\x92\x86/\x1f\x1a\xb6:s\x02\xcd\xdf\xcd\x05<\xa6ܙ\x88<\xa7|/oߘ\xe4k\xfb\x9e\xa7\\\a\xc6\ued5c\x97x\xea\x0e\x15\xcc<\xbd\xa0\xb3\xe7\x9e\xe9\x05\xe3\x84\xfa\x83\x0f\xd2\x11\x0f%\x85\xd84\xb9v\x8d\x05Ud\n\xc0=\xd2\xf6\x1cz;\x9e\xee\xa6\xcd\x19\xbfB\xe0\xe4\xe5\xa3\xdeˤFQ\xc4\xf6y\xe4V\x1bX\xfd`o\x8eC\x91}\xbf\x00\t-\x1a\xd84\x11\xa3\\Džn\xe8\xe9\x87!\xda\xce\xe3X\x91\x19\x93J7'\xa9H\xa9\x0e\xdbؠ\xdd23\xbee9\x88R\a\xe3\xf4\xb2~\xb7\xe5{\xcb\xe9\x03\xcb˜\xd0\\\x94{/];\xcc\x1d\xc0\xf2\xcaI\xe60zO\x99F\x06e\xa0\xa2\xa5B\v\x83\xf5\"\x03}\x98\xdc9\x85\x99a\"\x89\xe0\x8a\xa5 \xbd\xbb\xd6\xee\x13\x13\xe6\xd8\xcd(\xcb\xcaM\xa7E\xd7\bS\x03\xf9\xa5\x94\x11Z\xe0{\xfb^\xc3ƶ\x10\xf7m\xc4\x1c\xb8\xf4\x05]\x02a3\xc24\x01\x9e\x98\xbd\x00i\x19,~\xc0!\x01Q\xb2W\x8e\xb1\xe3\x10fl\x06\xf02?d\xe1#<\x97\x8c\xef0'5\x1f~K\xd9.c\xa0\x1fA\xdbdh,\xf6\x00\xfcX\xbf\xfb\f\a\xa0f\x06;\x85\x91zL\x81|\x00\x9a\xae\xfc)\xa0Z\x1b5\x10w\\\x10Y\xf2&\x17{d\xfa?\\\x87r\xdf\u007f,\xf5\x88q\xb6w#\u05ec\xdbL7\xa5\x0f\x03\xe0ɤ\x0f\x03\xbc\xba\x8a\xc2\xcd\x1bW\xad\xd7ͥ\xe0\x85V\x9cuE!\aK\"S0\n \xa4\xd6\\T\x88Jͷ\xa1%\x9d\xee\xdc\xceu\x1d.L\xac\x19B\x9d*\xd7\f\xbaj\x10\xfa!\xf6J;V\xa2$\xf7\x94kOڕXU\x88\x83h;l\x1f\xed\xa0r~\xf0\xb3\x1b\x11]^h\xf4\x81U\xc0\xb5\\a\xc8\xcfaӵ\xc3(~\xa9H\ue308\x90\xd39\x1c\x1f+\xf2\xfa\xdd\x1b//\x18\xf6\u007f0w\xb7\x83Y\x1fc!Œ\xa5F\x94\xf9H%\xa3\xd3\xcc(\x983\x90\xc0\x13P\xe4듏\x17\x1f~\xb9\xbexwy\x1a\x00\xda(\xa5\xf0PPn(\xaeT\xfe6\xae\xf6\xdbL\x1e\xf8\x92I\xc1\rjB\xf0p5#\x94,\xfdL\x93*\x0e\xca(6\xd9\x12\xd23\xe7\x1fq+\b\xc1\x87e\x93\x8c\x17\xa5\xf6\x96\xc4{\x96e\x18eœ\x05\xe5s\x83\xa57\xa2\x9cf!p\xbf\xfe\x1a\xf1!!-\x13\u007f\x00\xdda\xf8\xfa̹hh\x96\x89\xfb\x90\xcd3w\x05\xa8\x84\x16\x1e\xb7\x8d\x8d\"j\xc55}xE\xd8\xf8\xa03\xed\xc7\xd1\xd7\r Gv\xed\x85\x14f\xda\xd6\xeenq\x921\r\x92\x1er?׀\x1bp\xc7\xe4\xd2\xcc\x1b\xd2&\x99\xe1\xb78,\xe10[\xa8\x1dӚ\xc8Έ\x849\x95i\x06J\x19.y\xbf\x00\xbd\x00\xe9\x8c.\x96X\x02 \x83\xb7̚\x13\xd2\x19mW\xc7\xd7\x05\x80\xf5\x91xwU\xd8蘉\xf3T$\xea\\Su\xa7\xce\x197\xd7\xde(\xa5\x9a\x8e\x1a\x8c\xf2\xdc\xdeZ#w\x83\x8e\xbc\x1e:\xaa\x0e\xd4\xf9\xefd\xc99\xe3\xf3\x11\xad\x9eb|DGj\x01Yv|\xf0\x1c\x03ػ\x1d\x81\x1ac\xf3\xa5\xc3\xcd\xe9Aʼ\x1dm\x1e|Y\xb1\\\xfb\xd51\xb9\x16z{\xb4\xd3\xf6Q]6\x88\xd7q'W\xbe\xbc\xbe\xfd\xf0\xd7\xc9\xfb\xab\xeb\xdb0f\xdcd\xe3ۙs\x00\xccn6\xde\xc1\x9cC\xf6{\x17\x1bo3\xe7\x00\xa8{ٸc\xceA\xdc\xfc\x106N\xbe\xfe:\xf0Z\x1b\xd8\xf8\xc0\xc6\a6\xdex)\x84\x8d\x03_F\xb2\xf0\xef\x9d\xfa\xd3`7\x15E\x84\x1c8-\xd0W\xcex\x9b\x93u\x11\xc7\xd3a\xbbm\\\xe3ˏ\xb4\x1d\n\xc0\x9b\xcb\f\x80Kj\xc1\xd8G\xfc\xe2eUi\x92!l$\\K\xb2c\xb7\x87\xa8{l\xfa\x8d\\,},\x1eH\x03\x17c\xf2\xce\xf9\xc6)y\xfd\xcb՛\xcb\xeb۫\xb7W\x97\x1fB\x90Ab\xcf\b\xf1!\x0e\xbdPr\xfcx\xaa\x99\x1d[\x14\xb4B\u0092\x89Re\x87\x1e\xe8\xe6|m`t\xe7\x01\r\xbf\xbe\xedhxJ\xd0\x05\xb3\"\n\xe4\x92%\x8fC\x18j\xbcM\x9b\f\x06\xb9[l\xb1\xc2H0\xd0\xc7\x15^\xecx|\x11ƎC\x04\x99`\xa0F\xf0\xd9'\xce\xc4bՉ?[\x84\x9a\b\x02\xe8\x10\x82Z\xa2M\x04\xc8G\x14\x85\xecX\x13\x88\xde\xc0\x8c\x96\x99\xb5L\x1d\x1d\x8d\x0f\x97/\xec\xe8\xc7\x10\xdfJq\x90\xeb\xa09ZL\xf1Ʀ\xedx\xab\xf9cp\x84c\x17X\xd9\x12\a\xacZ\x16\x013+\xc1\xebq\x01QY\xf5\x88\xbd\x81\x89\xe5\x9c36\u007fG\x8b\xef`\xf5\x01f\xe1\x00֑\x8d1\x97.L\x11SK# \x12#\x89\xd8i\x85\xe2\x82\xf4\xc4\a9<\x12\xb5k\xb4pq\xeb\xe2eQ\x964h\x89Y\f\xe9s\x80\xfc\x88\x91\xb5\xfch\v\x18M\xa1\xcb\xf1\xb2\xe8e\x91\xae\xec\xd3\x0ee)\x11<\x81B\xabs\xb14\xb7:ܟ\xdf\vyg\xb4\x9f{\xa6\x17#\xeb\x03R瘀q\xfe;\xfc\x9f\xe8\x19ݾ\u007f\xf3\xfe\x15\xb9HS\"\x90\x8d\x96\nfef\x83\xbb\x0e\x8c\x14\xed\x1auJ\xf7\x19&\x18\x9f\x91\x92\xa5߄2R?zӃ(l\x84ߣ\xd0\xc4\r\xfa\xa5W\xfe\xe6\x89Ƒ!\xa9\xeaܛ\xbb\x87i\x85\xe7'/U8\xab\xf6c\n^\xe4\xec\x85\xec\xa9\x10\x19P\x1e\x01\xe3P\xc7g\xd78$\xa0\xb4k\x1c\xec\x1c\xed\x1aH\xeb\x8fq\x17\x1cח\x81\r\x8e\x14\xe1\xb7#\xa9\x83`^\x11U\x16\x85\x90ZU\xa9\xe2cs\xd8\xc3%&\xd2\xc86\x1fWy[g\xe4?\xab\x1f1\x9b@\xfdt|\xfc\xef\xdf]\xfe\xf5\xff\x1e\x1f\xff\xfc\x9fq_\xa9!6jy\xf4\a\xab\nH\xc6\\\xa4`\xd8\xf1\x99\xfd\xd3i<\x17\t\x06v\\G#Fi\xaaK5^\b\xa5\xaf&g\xfe\xcfB\xa4\xeb\u007f\xa9`A\x90<\xc2\xe5\xdc]\x1c#d\xb4h\xd4\x17ѰWZ4\x97q\xd56\f\xa5bْ\t\xd5\v#\xd3\xddK\xa65İ\r;\x8c^\b27\x92\xfd\x99\xe1c\xb5\x18\xbe|y\xf4\xc9ĉ\x99_\xe2\xa3l\x01\xe2ʉ\x14\b9\xfe\x06\xf1\x82\x96ק\xabh\xbbh\x90\x17\x93+_T\xe5\x13\xa1\xbb\xdf\xfdQm\xd5s\xdf\">\x80\xf8\xed\x13\xdc&\x1ev\x9c\xec3k\x9bt_\xd9\xc8\xf9C2%\xb7\x8f\x8ca\xed\x15\xcaӺ\xfeʉ\xfdq\x9c\x14e\x1c'v\xef\xe7\x90\v\xb9:\xf3\u007fB\xb1\x80\x1c$\xcdFJ\vI\xe7\x91l\xdeO\x13\xa7W\xffe?\x16Ǚ\x1b\x8bߜe\xb8\xed\x9183TRJ\xa3ed+\u007f\xffC\xfaIn\x9e\x8ab\xbaʿ\x1c:\xda$]\a!\xf7\xd1\xd0j\x1e\x81F\x8e\xa5\xc8\xca\x1c\xd4Y%\xe5G\x83Ec\x1d_\x92%\x95\xea\x93\xe9*)[2uX\xd8lנ|\xf5>\x8a\xf9\x10\xe4\x9fv\xfa\x8ck\x98G\xab6\xa3\xfeH\xe8T\xb9|\xba\xbd(u\x8c\xd9؏\x99\x909Օ'\xe5\xa1\x10\n\xbd\xb5\xbe$I4\xe0\x96\xbc\xf2\xf2(\x12NA\xb5\x06\xc9_\x91\xff8\xf9\xdb\xef\u007f\x1d\x9d~sr\xf2Ӌѿ\xfd\xfc\xfb\x93\xbf\x8d\xf1?\xfe\xe9\xf4\x9b\xd3_\xfd\x1f\xbf?==9\xf9\xe9\xbbw\xdf\xdeN.\u007ff\xa7\xbf\xfe\xc4\xcb\xfc\xce\xfe\xf5\xeb\xc9Op\xf9\xf3\x81@NO\xbf\t7\x9a\xdb\xf10\xaam\x18#\xc6\xf5Hȑ\xdd\xfa=\x89\xf2\xbb\x86ߎ\xc7\xe1;\x1f\xbcL\xd1\xef*%M\x99\xeb\x131\x88~\xe2Q\x8f\xe5\xf7\x92\x8e\x14$\x12\xf4\xe7es\xb5sjd\xbf\x1c\xab\xba\xa8\xc9o\xc0\f\xdbWų\xe8\xa9u\f,\xcbF\xd0i\xdc\xc7:Em\x11K\x0f\xff\x0e\x82\xed\xff~\ff\xe2\xc1L\xdc\x1c\xbf]3\xf1\x8d=+\x83\x8d\xf8\xd3؈#_\x8dY\xe5\b\x99RH\xe0V\xccܢ\"\xd4\xc2\x1cӝQju\x99,R\x88\xa2̨\x8e\xf5O\xaf\x87\xd04C\xd6\xdc\x05\xa8\"\x88\xbc\x8ec\xb6N\xf4\xbcw\x84\xd4E\x96\x11\xc6핇\x93\xf2a+\x12\xacnO\xa8\"A\x87\b\x96\xc0\xb5a+|=\x8fW\x11\xa5\xa9Ԍ\xcf\xc7\xe4\xc7E\x90\x19\xd6\xcaR.\x0e\x82q\x92\x97\x99fE\x06\xa4*\xd4X\xd5i\b\x81\xaa\x94H\x185\xab4\x98u\x85\x8b\x94\xf6\xe8E\\hz\x17\x02\xb3\x90\x90@\n<\x01\xac\xe7S6\x8aONW\x84rrɗ\xf8\xb5\xa0է\xa5\rG\xb5\xa2S5\xaf\xd6\xd7l\xecC\x00\xd8O\x124i\x8e\xa9\v\x01i\xd7\xf5\x0ebzn\x83\x8cp\xed\x8b(U\xbe\xca\x101\"V(\xae\xe24\"\x14\x86\ri\xb8\xf6\xb2V\xd2l\xb8\x97P\x8a\xfc\x19\xe3TbEӧ\x12K?/\x91\xf4\t\xc4\xd1\xc7\x13E{\x89\xa1}D\xd0]\xe2g\xb4*X\x9f\x1d\u007f\x17Ƌ\x8e}\xc4\xc6h\xf1\xad\x900c\xc1A\x96\xed$]^\xed\va)p\xcdf,B\xa27R\x8f\x84\x028\x86\x98\x02M\x16\xb6\xa0\x1fo\x87\x82\x84\xd3\xef'\x8e㶚\xfcc0\xea\x9b.\x9b\xc3\xc0u\a\xae\xbb\u007f\xfc\xb6\xb8\xae;\b_$\xcb}&\x8d\x14\xf3Jc\x13_\xdf4rS\xf1\xd4?~\xca[u*\xeb\xa2\x14\xe7\xf8\xbd\x90Ç\xa5(}\xa5\xbd\xfa\x12\xb2e\xa1\xc5=Y\xb0\xb9!\xb3\f\x96\x10\xe2\xf6\xb4\xd25\xc9)\xa7s[\xecO\v\xef\xbe\"B\x12\xc3H$K\x83RUk5\x14\x17i\xae5Æ2A\xd3F\x1f\xa7\x90\xc5g\xec\x0e\xc8\x1b(2\xb1r5\xfdxJn4Ն\xed܀\x0e\tȊ`\x0f\xb8\x8eI\x99e\x13\x91\xb1$\xc06\xdf&\xb5+\xa4\xb1\xa2\xcc2R \xa01y\xcf\xf1~\xb8\xc8\xee\xe9*\xc8\xdfx\rK\x90g\xe4jv-\xf4Īv\xedl\x05\v2\x00\"\x9b\x91W\xb6\xa3\x11\xd1t\x8e&\x84\xba\xb2\xb6\x90\xadO\x05\x80\xc5\v\xe2\x9e)x\x96\xec\xd2\xedG\xedw\xf8Ms\x15ڿ\x9f\x94`26\x83d\x95d\xb1\\\xe9\"\xc1pɺ\xa0s\xe3|\xaa\x95\xd2\x10\"\n\xb9\x02Jh\xc4`X\x18\xaf\x10\\\x81- \xe6\x8fj5\xe3P\xf3\x93\xea\x95\x18\x1a'\xa2\x15B\xe9\x1bM\xe5Ae\xaa\xea\xd1>\x8d\x13\x0fĐzB\xb3\fR\xc2\xf2\x1cRF5\x04\xa7\xf7\xf9:\x85-\x1b\x1c6\xa1s%\xf0\xc2\xef\xff\x05\xe5i\x06\x12\xab\xb29\xab[\v\xba\x06\x993N\xc3\xca3\x90*\\\t\r\x84\x90\x12\x9a$B\xa6\xae\x12\x96\xafuDe\xa8]\xa4\xe2h(\xed4\xe8u=\xea,\x10\xee4\x13ɝ\"%\xd7,\xab\x8b\xdf\xf9\xcaw\xae}Z \xcc\xc3\xe5\xe8\x06\x1b\xa9\xfesT\x9d\x95\x11\xf6\x17:\xff]\xfdO\xf8C\x98\xd0\x1a\xaf\xa5\x1cR]ts\xacU\xd8\x03$\a\f\x04\x14\x1c\xe2]\xc53a\xc4\x10CFu\r\xc8\xea\x02\x19c\x81\xc4\b\xa8\xed\xee\x1a\x14\xd9\"V\x89\xa2wA\x15\x1f\xec\xe8\xe7\x97\x0f\xae\xb0\xd2\x1c\a\x14P\x8d\xf4\xc0e\x8cC\xb3\x92*\xc3\xfa\x8e\xed3\x17\x1b\xc9d\x808\r\x92\xa4LbO\x81\x95\xcf'\x8c\x84\xe9K\x85bEu!499>?>\x8d\xcd\u007f\xf60}\xbd\x15##g`\xefH\xf4\xff\xf4\x9c\xa5\x11\x83X^d+\xc4\xefqzFX\xac\xb7\xd5%:ʒ\xfb=rErΈ:\xac\x8a\xe1\xe6В\xfa\x9a\xe5\x16\x96\x01\xadei\xe5\x87H\xa0'ǿ\x1e\x9f\x11\xd0\xc9)\xb9\x17\xfcX#\t\x8cɭ0z~$\xccj\xa9+Q\x12\x0e6\xb7\x1a\x1e\x8a\x8c%LG$\xd3\xdba\xaem\"Jm\v\xc7a\x8b2,:t\xf9\x10\xbdK6\xcf\xc3\xf0\xc1\x17x>\xed\x15N\xa8\"\x19[\xc2\xf9\x02h\xa6\x17\xb1\xf35\x14\xc5\x05\x1f\xfd7H\x81\x05\x8d\xb8\x83\x17g3\t\xf6\x105G\xef\x18\x89pE}\xfd\xdd(\x17\xbc\xb9\xb6\xbf\x85@яl\xf4\xfd\xbb\xbd\x9d|\v\xba}\xc1D\xa0\xc1\xcc\xc6\xc7~\xa3Y\x17\xe4Lȍ\xa6\x95\xfbG\xbf\xbbi!T\x04F\xc8f7D\xa5m%z\xab\x1c\xf0\x18\xff\x98\x1dZ\xb4\xd3v\\d\x1d\xb9\x9a\xc4\x06\t\xfdU\x94\x06KS:\xcdVU}K\x05\x9a\x1c\x99i\xc7\x06\xd92\x8e{\xf8\x17\xa0)\xd6\x11\xe5J\x03\r\xd0`\x9a\xa3\xe7\x91j\xcc\xe31\x84\f\xdb\xc9r\xe1\x16v`\xa1\xdc\xcd\xd1(\x06\xe4\xe8|\x8c\xa7'\xb6\x0e\x86\x1d\x12\n\xcbX\xdd\xfc>\x01\x03\xdc\xe0\a\x16\xf7\xee\xf7i\x8f\x189\xeaۈ\xdaŹ겥ꑍŸE\xba9\x00\xd13\xeb\x1b\x97JzFJ\x92.O\x8f\xc5Q\x0f\x88.+/4\\j}\x91\x91\xfb\x18\xef\xee\xef\xe5\xea\x8fw\xf3ǹ\xf8w\xbb\xf7#\x8d\xf0\xbd\\\xfb=\x88%\xce\xf8\x1eix\xefkt\xefip\xdf\xed\u008fܸ'0\xb4\xef0\xb2\xa3\xb9<\x02d\xb7\x81\xbd\xaf\xa9\xfc\x91\xcd䱎\xf7\xddN\xf7\x86\xfb\xa95\xf1\x91\u0096v\x87,\x91B\xc4\xe8\xd8Q\xe1J\x83\xa6t\xd0\xd8\x1d\x964hJ\x9fVS\xfa\xdcu\x81F\r\x89o%M`\xf2H¡gF$-%u1\xb0^\x90\x8b\xd0\f\n\x91\xa2\x13\xda\xf2!_4\xc4V\xbd\x98\x95Yp\x86tY\bޮ\x9bc\xeb\xbc4\xcbh\x84^s։ձ^'脟\xc4B\n+\xb0\x11YrnnPwj\f:\x8cF\x13\xd8닠e\xbdY6D\xb1\xb9\xd9$# aE\x11\x96\x03\xf6+\x8f٢j\xb2ff3!\x136\xcdVdA3\xdfT\xe8-\x94\xee\x15\xf8\x1a7\xf7L\xc1Ys\xbe\xbe\x95`\xcc\xf9\xb4\x10\n)\x96,\xb5\xed\xdd=\x99\x1a\xf91\x94\ac\xb3\xf8\x8a\xa3s\xc1G\x1c\xe6\x14u\x18w\xc9\xc6T\xa4\xb2s\xb4Q\x1d<\xc5\x16\xf2\x8a(,\"\x16]:l\xc9(\xae\xb4A\xa9\xe4\x84\v\"P8-9ӡ\x10\xb5 jQj\x92\x8a{~:\xb6m%\x99\"\x94LA\xd3('\x87m'\x86א\"\xc0\xe943\x9c\x04c9o;I,T=\x04\xaaK\tdN5t\x863X\x1a\xd8I\xce\xe1\xbc\xd6\xfa\x02g\xa4\xe4\n\x02s)\x1a:ٟ\xfe\xf9yt2\x96\x83(\xf5gcl\xbb_\xb0d\xd1\xd4\xe9Y\x0e\x8a\x882>Q\xc9h\xebnJ\xdd4\xf0\xa4m\xe0~C\xf6\xb9\b9.̹\xdc\xe1YY\xabpV\x87\xdb\x06\xac\x97\x1a\x1e\xf5\xe6\xfa\xe6\x97\xef/\xfe|\xf9\xfd\x98\\\xd2d\xd1,\xa8\xc8\t\rT\x1e\x91\xff/\xe8\x12\b%%g\u007f/m\xff_rR}\xe5\xd4\xc7j\a@\x8d\xe9\x82\x19\xa1\x9f\x19\xf6\x1fp\xd0[\x9b\xf2=SXv\x0ea\xb8B@BAh\x8b\xf5\xb6\xc6F.\r\x10k\x85A\xedn\x01\x86g\xb3e\xd0}o`\xda([BӪ\xb4\x929\xa8\xe6\x94\x18\x89\x92NE\x19\xa4\x80,\x80p\xd0\xe6\x04W\xde\x1f\xc1U\xab\x1ag\xa9 \xa8\xf9\xee\xb4Ħ\xa1\x85d9\x95,[5'hD\xc9k\xe1\xedZ\xab0\x8d\xbb\x89\xba7\xef/o\xc8\xf5\xfb[RH,hhcZ\xf1\xdf\x037j\nf[\xec&\xa7cr\xc1W\x16\x8c\xe5\xd2L\x91\x8c)\r\xc0\xa6\x99\xa5\xce@\x1d\xc7\xed{\xaf\x0e\xb5\xc1\x81Kk\x01\xf5nE\x13\x83p\t\x85ퟬ\b\rb\xf5\x9e\x80qېՙ\x93\x96EZLb͈Is1\xa1v\xacN3Ҭ2\x04Y\xea\f\xb6\xa5\b^\xab?\xe4j\xe2\x89\xcfɵ\x86\xc3\a\x834Tg$\v\x96\xda\xc9٠\x803\xf2\x82\xfc;y \xff\x8eF\xa1?\x85\xea\a\xf1\xb7|\xbcPh\xad\xbeW\x93^;\xf5\xa3a:\x06\x8e\xc1\xae\x16dʬ*\x1f\x8cVx\xd0 \r3w;\x1e\x8a\xc1h\x1b\xa6\x99\xfcgG\xb06\x86\xe0j\xd6챮?/\x92%fz\u007f\x11J_;\xe6\xd3\xee\bof\x1b\f\x11E\xae\x9c\xead\xd1\xe6\x8cF|W\xbaf0\xe1\x90S\x81\xd906\x91d\xc1\x82\x9d\xb9\x9f\xe6\x80Ƅm\xb6\xe8\xf21)hͰ\x8dz\xbd\x93\x8bm9\xe4p\x0f\x8be\xcdNX7\x8bM\x1bWX\x8c\xabg\x8b\xcc\xeel\xf41e5\xea\x04i\xc3\xe9\x12\xcam\xa6\xe7\f\xa4\xb4U2\xa7\xe19>\n\xe4\x92%\x10L\x84\xd1<\xae\x90B\x8bDd\xbdhi†\x99\xd2:Q\xdfE\xd2\xd2\x0fo&g\xe4\xf6\xf5\xe4\x8c\bIn^\xdfN\xfa\xe4\xb0\x10rt\xfbzr\xf4LȌq\xa8\x8cڢQЛ~\xebBT\x9a\xf8\xb4\xec\xb0\xc8ؖ\xa7\xca(\t\xa3\x9c\x16\xa3;X\x05\b\x8e\xb1\xb8\x89\xc0\xcc\xe6t\xed\xa2szhڏ\x04\x9a\xb2\xcf$\x13\xdd1\x91zN\xdd)\xe9\xb9X\x06\xd9QP\x8d\U000b0067\x85`F\x1fq\x8d\x13\x9ay\xea\x01@\xb7d\xb4\u007fz\vې\xa7\xde9\x86x@\x95\xd8\x1a\x96\x05\x82\x97I#5\xfa9\x1b~%\x82\xcf\xd8\xdc\t_\xe79\xe5t\x0e\xa3\n3\xa3:\xc5\xea\xfc\xa9\xa3\xa83\x96\xb3\x90\x1cu3\xea\xa4\xefI\xb4\r!J}\xed\xa7\xbc\xf6R]\v\xaa5H\xfe\x8a\xfc\xc7\xc9\xdf~\xff\xeb\xe8\xf4\x9b\x93\x93\x9f^\x8c\xfe\xed\xe7ߟ\xfcm\x8c\xff\xf1O\xa7ߜ\xfe\xea\xff\xf8\xfd\xe9\xe9\xc9\xc9O߽\xfb\xf6vr\xf93;\xfd\xf5'^\xe6w\xf6\xaf_O~\x82˟\x0f\x04rz\xfa\xcdׁ\x13}T\x85\xb0}\xf2\xbeGZ\xa9\x83e\x90'\xe7\xf4\xc1\xb0\xcf\xd0\xed\xcfEɵͺ\xb0ǹ\xa2~\x1bX\x14\x92\xfdmG\xa0\x97\xe4)\x8e \x89Wm]l\xd5p\x12\xf7\x8e\xe1$\x92\xe3\x0f\x8eZ\xd6Ϣ\x15e\x1e\xf1,\xfa\xab5\xf40^\xcdH5G\xa6\x88ș6\n\xac\xd1Yi|\xd2\x06\xd3-\x13\xaf\xe3G\x98\x15E\xb1\xd8G\x1d\xc0\x1f\x1a!P\xe7\xe7\n\xafo\xa2I\x91\u05f6z\xe4\x14\xa3\x14f\x8c\a\x87;\xa2p\x19\xec\xc9\xfd\xacxT\xc4K\n\x92R2\xbdz-\xb8\x86\x87\x00#w\x9b\xdao\xda`\x88\xdd\x02\x15h\xa3\xf2\x93!\xa2\xb0I(k\xe5\x8e|\xfeV\b\xd3.9ڊl\x91\x00\xd0\xd6|\x82j/\xe6z\xacM<\x00\xb27oX\xfb\xcf\xdfK\xb6\xa4\x19p݀=Au\xb4\t>\xe4\x8c\x1eF\x88\x9a\xaa\xbb\x9a\nadT\x95\nc\xe7\x1e\xa1\xf8\x13<\xe8'\x97UQ0\x98H\xb6d\x19\xcc\xe1R%4Ó\xd1GE\xbd\xd8\x023\xf0|\x1b\x14H\x91)r\xbf\x00\xc3?\b\xf5\x866\xccV\x9f\xd3\xe0@\xe0\xdc\xecP\xe1'\xa6\xac5а\xbb\x82JC\tގ\x17l[b\x8aL\x85\xc8\\\xc6[\xb6\xaa\xe7\xee\xd2K\xb9\xf8\x85\xc3\xfd/\xe6\xdb\xc1\xce\xf7\x8cΫ\xb4W\x05z\xc3\x17\x13;\xedm\xdbd\x93\xa9J 4\xbb\xa7\xab\xd0\xe9\xde/`}~L\xbd\"/O\xf1dSE\xaa/\x86\xf2\xfb?\x9cbT\xd0\xeb\x8b\xc9/7\u007f\xbd\xf9\xe5\xe2ͻ\xab\xeb\x18\x1emv\n\x82\x1a\xab'\xb4\xa0S\x96\xb1pQp#V\xb9\t\n/\xc34=O\xa5\bM{A,{\x9f@}g\xf5\xc9Dj\x16\xb5B2\x9b\xb5';\x97\x94\x87\xe7$8CpM\f\xb2\xe4\x9a\xe5ϖvKӾ)\xb7\x17i\ni\v\x15\xc1\xf0\x1e'\xb7ⵟª\xae\xa7\x15\x01\x93\x90\xc9\xfb\x9b\xab\xff\xb7F\x89\xab\">\x14\xfc\x99\xb3\x14\t1\a\xa6\xe7\xae~\xb0\xf5\x03\x86}\xed\x1c_R\xf6iu\x9f\xf7\x89\x96\xfbP\xf2vM\xcd\"\xf6\x96\xcaE\nc2\xa9|\xa1-X\U000457a8\x04b\x00r\xcdh\x96\xad\x9a\xf2\xab\x1663>X\xc0ꎕ\x9e\xd1L\x05\xb2\xe7\xd8{\xd5\b.\uf322\xdcc\xe7*\x18$\x05.\xb4\xd3\xda#\xe8^\xcc\x10\x16\xb1\x9a{#$\xbdu\u007fE\b\x87\xf5\xb5ʔ\xc7\xf4\xa4\x9a5zb\u009d\xb8몖\xbbV+]>T\xc8\x14\x12\xeb\xad`厂ꅍ\x99̩\xba\x83\xd4\xfe\x10%\x15WnG3\xdbjѷ\xab\x02\xbc\xd70F\x1a\xb6\x11\xa8\xe8\xc9\f5\xa3D\x17G\xa2\xe9{\x9e\xad>\b\xa1\xdfV\x85&z\x90\xed\x8fN\xa7i{L\x8c\x80\x1b\x1c$a\xe66\u008dC6Ш\x83\xe1\xa9-ܹ\xfa\x8cL@\x96\xfcB}+E\x19x\xa5o\x88\xd6\xdf^\xbdA^X\xba\b\x0f\xae\xe5\n\x8b\xfc\x843\x82n\xfd\x8a\xfc\xe0\"q\xccI\v\x15Y<\v\xf0\x0ek\xf2\x8e\xae\b͔\xf0j]\xb06\xdba\xad \xcehbn\x9d\xa9\b\x0e\xb8Y7\n\x19\x16\xb0\xf9\x95P\vc\x1d\x1eRY\x04\xcd\xfc\xe2\r9\b\x94ށ\"\x85\x84\x04R\xe0I \xad>\u007f\x00\x00R\xf9\xb5\xe0\x86\x81\xf4\xa0\xf3\xab*n\x05ͳ-:\r\x15TJ\xa5\xbdNN1\xc6\x06\xd9G\xa9@\xda@&YB\xccV\u007fWN!\x03mM\x16X\x9b\x93jksc9\x9d\x87\x9e\x1b\xaa\xab\xabM\v\x02\\\x95\x12\x9ciZ\x93T@L\xf4\xb8[\xf4\x0fWo\xc8\vrbV}\x8a\xa4>\xa3,\xc3\xf0\x1bM\x03c/׳\x97\xd8\xccO\x0fQ\x89'\x9e\x04\xd7hD&|F\xb8 \xaaL\x16\x1e\x97L\xf0\xca\x1c\xe42g\"\x1c{\x1b\xccg\x1b;\t5\xfa\xd7\xcc\xe7\x1f\x87\x9d\xf4\xba\xfa~P {\xde|?<\xf9\xcd\x17oV2\xfc\xa4\xbdS\xc8\x06H\x0e\x9a\xa6TS\xc2BI\xac\xe4\x8djp\x03!\xaf\x01\xfd\xc2\xeeE\x05\xdf3^>\xd8h\xf1\xbe\xc6՛K\x04F\x9c\xf3\xc4\xea\t\xa1\x17NQd\xcc\x16\xc0]\xeb\xf3`\x19y\xe5\xd4\xecuA\xf8;\r\x199\xcd2a.\xf5pɟ\xf2T\xe4\x1b\xcb6\xca\x1c\xb4\xba\x84\x8c\x91\xe3\x87\xc2\x1f\x8eU\r\xb4ױ\x8a7_g\xb0\x84\xe0\xe2\xc6\xeb]O\f\f\xa3\xd4y:A\xa0\x11V\xc1\x8cN!\xb3\u0097=%j\xf3\x94DZ\v\xa3L\x8dRd}\v\x10|\x10\x19\xd8\xe8j\x8f\x1c\x03\xf47\x80\x1b|\xb5\x1fn\xd0J\xd3\xc2M\xa45\xf9s\xc3M\x19,q\x91u\xdc\x18\xa1\xad\x8d\x1b\x03\xf4\x8b\xc7M\xa4\t^A\x92\x88\xbc\x98H1c\xa1Gr\xe3\x12w\xc0\xea\x90\x12\xb4\xc4Ƹ\x1d۱\xc8h\x19i\x81\x8e0\xc1W\t.T\xdb;\xccg\xb9\xfc\x9fh=\x1c\xb9\xf1ٚ|\xe0\x17\xefcV\"\xee@3+\a\xe6\xd9n+\x91\xd0\fێ\xc4P\x02Y\xa7\x86upu\xd6N\xc4A\xc3\xe0\x11\x84\xe2\xa2\xcdl/\x06\xfc%\xba\x10\x14\x17)4\xaaT\xdb\xe4\xaa[\x9bUa G\x80\xf4IOF\xd6\xf0AB\xa9\x8f\xf90ߋq\xe7\tW\xdaחG\xa0\x88h\xe0)\xe3s\xb4\xeeǔz\x96\x90ٔ,ǰ\xee\xac\xe1\xe7\x18O\x9d\x9bx\x04X\u007fH\xfdv\xa1l\xcc\x04w\xb3\x17<8\x10\x91\xd8\xde\f(zΐ\xc7\x19\xd6}\xf4\xbd'\xaf\xe0\x0e\v\x9f\xfaf>\xb2k\xa8l\x811>$3\xee\x18O]&Q\v\xe5q\xa9\x85\xa4֞\xc6\xe4#6\xe5\xf1l\x8cJxE\xfe\xc6I\x85\xf2\bУ=G8\xe6\\\xb8#\xb5q\x84?X\xf5,\xce}b'\xbb\xd3=\x17\x01\xd1/}}\xaa?pX$\x8d\x14q\xee\x19OŽz\x1c;ŏ\x16\x98WP\x13Ú4\xe3\xf3`\x89\xa4\xb6U\xd0,kŁ\xf57V\xf8\xb3\xeb\xdb\x0fv\xa8\xe6\x81P\xbd\xd5\xda\x12n\xdbS\xd5S?\xdfb:\xe82\x06\x84:C7L\a\x9f\xcc\x180\xcf\x15}-\xcd75\xa3\xd9M\x11ګ\x83\xac\xd3\xe2\xb7\xefn.\xda\x00\xe3\x1a3\xdcc\xdfN\x83k\x03\x91\xd04gJ\xa1\x9f\x02\xa6\v!\xee\"@\x9e\xf8\x10\xea9Ӌr:NDވ\xa6\x1e)6W\xe7\xeeL\x8e\f^N#\xbe\xc1x\xe6cޭ\xed\x8ck\xe5m\xe0f!\x11 \x93\n\x9bHp\xae\xf5\x97\v\x82\xdcD\xf7u\\\x89\x1e\x8cX\u007fV\xa1e\x93\xf4\xae\xa3\n\x1a\xef!\xbfH|\xb8\xca\x1b\x8d\x8a7\x96\x10\xeb݈\x91C\xcd\xfeY\xe5\xf3yK\x95[\x85'\x01շT\xf9_jH$\x05\x9b~\x1f\xa5;\xb1Y\xabGm-(XOj\x946v\x8c5\xaa\xdc\U0010e6ca\xfamL\x83Ew(\xd0&\x93\x15\v:B\xb5\x1a\xef\x05\xbcv\xe2Ն\x85\xe0\xc2&Bc.\x97\xe0\xc8&\xd0bc#\x90\"\x05O'\x0446\xe9u|\x17Ⱥ\b\xc3,\xa3s\xac\x95b\x04\nk\x04\x89-\x8c}\xcf\xf4\x02۵,\xa0\x05\xdebT\x82\x8a\x93d\x19' \xa5\x90\xcaF\xb1{\xb76\xce\x16\xa5\x8c\x98\xe2R\x17f\x8f\r\x99N\xb0#n-\n՝\x13#\xf7I\x19\xae\x02\xb3\x19$\xa8\xec6\x0fUl\x05\xed\x13\xa6}w \x97\x98k\x18\x8d\xeb\ue633\x87\b\x90b֚Yc\xfd\xbe\x9bM\xe3\x9fc.\xb6\n\xe0阐+^\xa5ɞ\x19\xee\xd0\x0f\xb6\xcf7ц\x1c\x9a\x8dWq\xebh\xa6bJ\x839\x85_\v\x84\x1d\xcb\xc1\xc3}\xfa\xa4\xe9\xd7\u007f\x84K\x12\xfd\xfb\x0e\x949:\x8em\xc4Y\x816#\x046|\xfeq\xaa\xe9F\x94\x00\x02m\xfb\xfe\xe3X\xc5F\xb4@\xcb\xff\x1f\x01\U000f0201\b\xc0\xbb\x15\x1a\x12ק\xedi\x94\x1a\xf2\x14\x8a\ryv\xcfCL\xfa\xac\xad\x02۫\xcd\xe5M\x03F\xc3\ngD\x82\x805\xbb\xcb\xceV\xba\xae*\xe8f+_\x9d\x9b\xfd\xb7ՒC\xfc0u\xc65\x176\xe9\xbaY\xfe\xda\xf5\xfa\v!\x96\x92k\x96yWJ^d\x80%\xb3\x1a\xb3\xadj\x9e\x05\x00m\xf4\xda<\xab\xd0P7\xf6te\xbfCl\x16\xff\x85\x17E\x95m\xe9\xeb\xfeN\xaa\x0fY\xbb|\xd0,]Gd,3\xa5\x85\xf7\xfc\x90\x94\xcdf\xe0\xb3E\xa7@\n*in\x84\xeb\x10\xd8.ts\nsfS\xf8*\xd1\xe5X\xd5\x05hC0\x80\xa2\x14\xd3$g\xf3\x85=Ȅb\x89<\xe2c'3ASbxh\x00T!\xc9=\x95\xb9\x91\xfei\xb2\xc0jq\x94\x93\xb4\x94\xd8\xffL\x03MW#\xa5\xc3BWD\x01\xd2\x19\xf41E y\xc6\x1aAC\xb3\xd5\xedch\xb6:4[m\x8c\xa1\xd9j5\x86f\xabC\xb3\xd5}/\x0f\xcdV\x87f\xab\xbb\xc7\xd0luh\xb6\xda9\x86f\xab\xcd14[\xdd5\x86f\xab\x87\x8c\xa1\xd9js\f\xcdV\x9bch\xb6z\xc8\x18\x9a\xad\xfe\x03\xb7\x10\x1a\x9a\xad~^-\x84\x86f\xab\xbb\xc6\xe7\xde`ih\xb6:4[\x1d\x9a\xad\xee\x1dC\xb3U7\x86f\xab_\x12\x11\r\xcdV\x87f\xabC\xb3\xd5\u007fTMih\xb6\xfayiJ\x9f\xbb.04[\x1d\x9a\xad\x0e\xcdV\x87f\xabC\xb3ա\xd9\xea\xd0lu\xdf\x18\x9a\xadn]\xe1\xd0lu\x03%\xcf\xd5lU\xe9\x94\x05\xb4G:\xa4\xea\xb7\r\xbd\rX\xae\xaf\x18h\x18U9\x9b\x81\xc4\xcb\x14g\xb6\x11\xad\x19\x00\xd6\xf7f\xa9\xaeV\x17U\x89m\xb8$\xd0\xd4V\x03\b\xb1\xb1uNɗ=\xbc\xa7+\x15\x9eG\xc88\xb9|\xff\xb66[\x86\x97+\x8f\xc9\xed\u0095\xbc\xe7Il\xd6H\xbd\xf5\x1duAB0jô\x93L(\x1bAlQ\x9c,(\xe7\x909\xe17(\x84vA\x15\x99\x02p\"\n\xe0V\x9c\xa0D1>πP\xadi\xb2\x18\x9bهH\xa9n\xdb\xeb\xbc>\xf7\x8b\xd2\x12h\xee\xf3G\xf3\xb0\x0e^fz\x84&R(E\xf22Ӭ\xa8&H\x14`\xc1\x01\x15\x9a0\xe37\x15Ð\xebt\xc1\xb3z\x05\x16)!\xd3lv\x12A;\xe8\x19\xb6Q\xcc\v\xbd\xaa\xf2i\x80̘\f*\x83\x93d\f\xcdm\xb8^[%\x0e\xe7x\xe6\xd5\t\xee0\x1ar\x97X\x94\xf2\x14-\x0f\x85V\x98\x1fҘ\xa4\xfbhʔ\xb3R\xa9\x900u\xaa\xfd\xd5g\xc4\xfd\n\xa3H\xba\xa9\x13\x94Bg\xec^nL\xb1\xd1f\xacN\x1e\n\x11Q<\xb3\xc3\xd4f\xcfL\xceZ\x19\uf576\x15\"\x85,\xa8n0M\xb7~$}\x0eKs\xf6!\x01\x16\x94\x96L\xb7p\xbe'e|\rI\xf2\x1d(E\xe70\t\n\x0e\xd9f6\xc5\xf8\x90\x9aD\x82\xd4u\xacW\xa4EC\xb2\xaa\x93\x13\x8eUs\xca\x01@s\xbb\xba*\x13\xed^2\xad\x01I\x16{\xc2`4\\\x90\xe5lcb\xcd\xde\x1c\xef\xfc\xe7\xecgB.@\x85r\x0eOmf\xda\x14\xc8T2\x98\x91\x193\n\x91\x8d\xd4?Ú\xf1!\xb4e]\x0eJ\x81D[\x853\xd4x\xac\x8cɏ\xc1*\xb0\x96%O0M\xc0i\xa8Xk\x8b\xcd\xc8\x1c\xb3\a\xa45\x10\xfc\xf3\x8b\u007f\xfbS\x00\xd0\xe9\xcaȤ\xa8bj\xa1iVm[\x06|n(\xca^\x104\v\xf1\x8f5\xd2\xe5\xfd\xeec\x13w\x8b\xe0\x97\u007f\xb8\x9bF\x89\xeaZ\x90\xf3\x14\x96\xe7\rz\x1ceb\xde\xd5\x17\xffp19\xc2|\xddq\x84EƒU\xe4!\xf6M(\xc8B\xdc[CV\xaf\xf3V'\x9e\x15\xa2(3\x1b2\xf0\xb6\xaaC\x17V\xfcs\xa3\x96O'\xf7\n3\x80\xfbi\xadw\xb7\xb5)1~\x19Ak\xc7\fq\xe7ʭzO\xa0]\xf4-Ͳ)M\xeen\xc5\xf7b\xae\xde\xf3K)\x83\x1aGx\x9c\xd9DX\xaa4I\x16%\xbf\xb3\xad\xa8\xfd\xd43\x11\xe2\xf9\x10\xa5.J\xed\x93k\x9b\x06M\xbfv[\x9d3\xe4hXq\xc8[B\xeb\x99\xc1\x03\xf3\x06LÏ\xb0PH\xc8en\xf8B&\xe6՜U\xf3 \xff\xe1\xc5?\xff\xabe !\xab\x97\xe4__`\n\x9f:\xb3\x17\x0e\xde\xdeF`\xcci\x96\x81\x8ce\r\x86ĻX\xc1\x93r\x02\x1d{\xe8\x9f@u\xbd\xbd\xfd+\xea\xadL+\xc8fg\xb6*\x83\xb7\x9d\x05\x80\xc5\x16U9}t~o\x19u0\x16\x90\xc9tY\xa4U,Ď\xab\xa2\x89\xea\xa3\xf0\xfa\xfc'v&\xc7\n\xeb\xfb\x04ou\xf4qp\xdbt\xf9P\x04w^jm\xd5\xe5CA\xd1\xee]\xb4\xf7,\x18\x11\xee2\u07beg\xb1\x10;\xf6\xecϰ\xa0ˈ\xfbL\xb1\x9ceTf+\xb3\xd97\x16\x83dZj\x02|ɤ\xe0yx<\"!K*\x19\x9df@$`\x1d\xbb\x04\x14\xf9\xfa\xe4\xe3\xc5\a\x8c\xdf=57g0L\xf0\xbbR*_ƷI\xfd\x8d\xe9\xf6\xe3-GG\x1b\x04\xec\xf1b(+\xfc&\xe6i\x85W#1\xe4\xa5.i\x86\xa5\xa8\x92\xacTl\xf9\\\xf7E\x9c\x96VI\xbb\xbf\x01%͕1{\xc3\x02\xf8\xc3Z\xb1\xb6\x9a\xe06j\xa2\x05\xba\x83Q(\xabkiv\x86l\x04q\b\xdf\xfd\xbd\xd9\x01\xc3\x19\x93]\xc5F\x9b\xe4\x15\xde5i#\xb4\x06\xeb\xe5>\xafY9\x8cz\x03(0\x90\xf6B\xa8\xce\xc5\b\x1e2\xe5\xb6Pj\xdfs\x1d\x88\xac\xbd.\xa7\x0f\x18\x80G\xf1@\x1e\xb421\xb3A\x11\x1f!\x03)\xfc\xa5qO\x99\xae\xf2\xff\x18g:\xb0\"<**\xb6J\xeb!\xdb\x1d\xb0\xd1\a\xee\xc4A\x8f\xedۦ\xdd䴃|\xf6|}\xfbw\xb7\xbe\xc8x\x92\x95)\xbc\xceJ\xa5A~\x00%J\xd9a\xe1_\xf3\x8ev\xbe\xd3H\xed\xbbw\xae\x94\xc4>2R\x89(:\x0e\xbd\xac_\xadd\n7\xa1ԧ\xefcVh\x95\x01ak\x1c)-$t\x06B\xf12\xcb֒\xcc:j\xa3\x9b\xa7\x8c\x84Й\u007f\xb3]R\xf7S3*\x9a*\xe8\x81hj\xdb\v%vR\a\"\xc4>\x8c\x04\xca-o\xc3T\x12\x84_-\xefj\xe6\xda\xed\xd9\xf5\xedX\x04S\xe4\x8a\x1b&\xe3V^\xa5\x82)\a\xbc\x99Å\x1c\xc9C\xdf\x01\xb4\xda4\xa6<*\x85l\xe1kˇv\xc0\x9c\x02q\x9fG\x1b\xae}\a\xc3s\x8b\x8c&\x90\xfa\n\xf2\xd4\xe0\x82j\x98\xb3\x84\xe4 \xe7\xbb\xe6Y\x18>\xb5}\xeb\xf6\xba\xc1\x0e\x12v\xfb\x8a\xa6w\xd0\xfd\xdeh\xf7\xf6F\v\xae\x8e\xdf\xe3\x05\u05f9zߥ\x87f\x93=\xfci\x0f~6\xef\f\xfbQw\xd1\xd2\xc2P\xf6\xff\x18v\x8a\x84\U000bf920L\xaa1\xb9p\x99\x04\x9d\xdfl>\xef$\x8f&h\x03\x95)bp\xbe\xa4\x19\xd8⨔\x13\xb0\xa5':A\x8a\xd9ƍf\x14m\xa1,\x17\xaf\\\"Gw\xb0::k\x9d\xbcm\x01lGW\xfc\xa8\x8a\xb2o\x9f\x03\u007f\xcf\xd8\"\xfcG\xf8oG\xe3\x8dK\xb0\x13\xec\u038bq\aEl\xfd\xa7J\xd2}g\x03k\xd6\xf7\xf90Z\xd8A\a\x1bU\xe2\x9a_k\x11BS,m\x89\U0001b7e3r\x0e\xbaK\xd8w\xb2*\xba\xd9\xc7䂯6\xa0v\x173\xa9T\xa4\x8a\xa2\x8aVs\x11l憾\xfb\x06 \x176\x83\xbd\xbe\xcc\xcf\xeb{\xb2\x15\xe9x\xd1\xc9%\\\x8b\x14&BnF\x18\xb4=\r\xebOwh\x85\x8d\xa5\x8b,Ři|tc\xa1(\x87:\x19\xf4qT8\xf7\xdd\xc9\xc7ݫ\xf8P=\xb6{\xfa\x14\xab\xe6\xbbݘ|ܲ\x02\xc5i\xa1\x16B\x93\x13\x9fޛd\xa2L]v\xb3\xdc\xf0QD\xaeM%\vH\xcb\f\xbaZrm\x94\xc9\xf3\x0fz)\xac\xe4\xec\xefe\xbb\xc1\xa4\xb7ܸ\xa77\t\xbb\xc6C\xa5\x966l\x8a\x86\x9d\xfc\x19\xf7\xce\u007f\xc7\xe9c\x0e\xae\xa1\xd8.\x8b@\x05\xd0ҶP\x1a\xf3H\xb8n\x14\x86\xf2\xea[\xe2\x8a\xf4\xbbǙ\xaaf\xdbM\xde\x1b\x87\xbe\xeb\xba\x1b9\xe8k\x9e\xd8\xce\x03b#\xa4\x9bow\xd1э\x8d\xa3Nh\xa1K\xe9۱\x96\x12{\xec\xd4m\a\xa8njCB\x03\xe86\xd1\xdb\xd9\u0098\xe0\xb7,\a\xa5i^\xec\xdc\xf9כ\xcf\x1b\xe4\n\x99\xaa\xba^CC\x8d\xae[\xd9lj\x91\xb4n\x98\x94\x8e\x1b\x90-\x10\x94\x85\f`H\t,\x81\x13\x97p\x81\xbe^\xab\xa2o\x80\xbcE\xd1_.\xd1\xc2\xed\xa1`d\xe7LH\x82=\xa9\xaai\xaf\x1f5\x9fV\x9bR\r\xa3\x8e\x84\xc3\x03\xceTǍ`\xbb8\xeeD\xe9\xa5m\xf4\x88wC\x82QFf+\xb3̾\xeb\xe3\xc7];\xcd{\x90@\xe6\xc0\rR;\xecaNh\xb4MT\f*\xddI\xac\x8c\x1a\xb7\xb6ߌ\xd1\xd5]\x83I\xac\xda\xe19\xfe6\x01\xcb<@\xe7[\xceDWB\xb1\x8b\xd5\xff\x00TmF\xbf\xb4\x96\xff\xb6\xf9\xa4\xd3\x03\xecʭ\x9aJmw)ۑ\x8fI\xe8 n7\x19\x81_=\xf0\xdc\x12R,\xa8\xda\xcd\xe6&扪\xb5M\xe3\xb8U\x1c\xeeC\xe7\\\x80\x97\xf9:\xe0\x11\xb9\x86\xfb\x8d\xdf\xde\"A\u007ft\xed=7\x0eɈ\\\xf1\x89\x14s\xb9Yer\xe4\x0f\xcc\x06\x15\x8cȄJ\xcdh\x96\xad\xdev\xf5\x94\xf0_=\x18On\x02{nm\xfbP-\xee1nO\x94\xa1B:\xf5=R\xdd\xe6\x1d\xab\x9aF76\xd2\u007fpl\x948\xf0J=k\x83Đ\x1d\xa5G0\x9b\t\xa9\xadp9\x1a\x116s]\xf5t\xae*0 0\x8b0\xdb)5\xb1\xce\xdaN\xe1\x1a\xf3\x99+iO\x99\xd3ӥz\xed.\x1a\x80\xf9eW\xdb\x14˶[\xa8z\xd4O\xdc&\xa7mL_4\xc5\xd0m&4\xa6\xfc\x8bf\x87\x92\x05V\xed\xd2\v)\xcayՐw\x1b\x1b\xec6\xa6\x95\x98.Yd\xe5ܐ\xaf3p\xe9R\xf2\x86V\xe0L^i=\xd5\xed w!n\xab\xac\xacZw\xd4n!\xac\xf5職\xb0\xb9u;\xb8\xbbM\b\xfe\f\xef\xcfe\xc5\x1a/\xf7ߤ\x1f\xd7\x1e^s\x05\x98;\xb5\x86\xe7\xef\xbf\x13\xb6\xe9\x04B\xababf\xbb\xde3\xff\x99L\xfa\xf7Tr\xc6绗\xfb\xa3{\xa8Ctp\xef?\x9d\xf0\xe0'\xd8\x16\x1f6@Z\n\x0f\x15\x1f:N\xc7\xdaOK\x90ʚ\x0f_\xd6\u007f!\xb6\xac\xef\xd3\xfd\x03\xb1Ԝ6p\xef\xa6\xe2~\xa9\xa5o\x9b\xdd\xef|m\x16\xedw\x8c\xa7\xaf|\x04Y\x91\x95\x92f\xee\xcfDp\xcb\x11\xd4+\xf2\xd3\xcf_\x11\x87\x81\x8f~\x1e\xe6\xc7\xff\x1f\x00\x00\xff\xff=C\x02\xc8\xfa\xd8\x01\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec`\x86F\xaf\xa5>\xb3\x05&\xb4ڽ\xd1eq\x05\xcd\x0f~R\xc0\xc4\xef\xe2[\x98\xcf]\x99\xb4\xee\xa7N\xf7'i\x1d\xffTd\xa5\x11Yk=\xee\xb5Rݗ\x990M\xff\x19@aТ9\xe0/\xeaA\xe9G\xf5\xa3\xc4,\xb5W\xb0\x13\x99\xa5\x9fm\xa2\v\xbc\x82τI!\x12L\xcf\x00\x0e\"\x93)\xef\xd3\xe3\xa6\vT\x1f\xbel\xee\xbe'aR:\x1c\xd6\x11\xe1 \x95\xbb\x1d\x1a\x82T\xec\x85E[\x19\x89q\xf2L\xa9=53\xc5\xe2\x93\xfd4\xec%F1\rƶ\xc0\xe6t\x04&0\xc2ds\xcb\x02\xa4J\xe5A\xa6\xa5\xc8@*\xeb\x84J\xfc\xbeD\x8d\xdbо`\x9a\xf5'\x98{3Z\xe1O|\xe9x$\xad\x10\xb4\x81\x9c\xdc\xef\xe9P;\xba\x06\x8cn\u007f+Ȟyc\r\x86\xe2\xe9\xb0X\xcaή\xb1\x17\x17\x13\xc0k\xee\xf8\xa0-\x13[\xcc\xc0b\x86\x89\xd3f\x8c,\xf3L\xf7-\xce\x16\x8e\xd0s\xc0*6v\x9f\xb6\xdclp\x12(\x90\xc9\u007f\xdc\xcbd\xef\xe3+\x92)\x86\x04\xa9F˶@\x14Ev\x1c\xdf,\xccKBXh\xda\x1c4m\xd60\xf4a\x0e\x9b\x88\xa6E\xd9Ӧ\xcdX\xd6.\x9dk\x11y#s\xe54\x9e%Л\x93\xc9/-\xd0D`Ig\xab\xcd\x0e0/\xdc\xf1\x02\xa4\xabz\xe7aR\x18\xd4\xe0\xf0\x87`\xd4s\xf4aӟ\xfb\xc2\xfa\xf0\x02\\\xaaQ\xf8\x9ff\x12;\x9bo\xc1\xd7,`Ч\xf6\xbc\v\x90\xbb\x9aA\xe9\x05\xecd\xe6\x90\xe3\x9ei\x14[\xaeo\x96S/E\x968\xafI-\x17.\xd9\xdf\xd4G\xc8\xd9\xf1=\n\xf5\xa7\xfbX\xb9:It\x9d\xfc,d\xe0\f\x834\x98\xfb\xbc\xc5-\xeb@\xd3Ñڇ\xcf\x1f1\x9d&\x14\xc4J\xe4\xc9v>\xf4Pn/\x1f\x8e\x01\xf1\x9b\t\x01U}\xc2\xf2\xf9\xa8\v\x10\xf0\x80G\x1f\x05\t\x05\xc4(AK\x8d\x1e$N\x89ĉ16\x11\x0fxd@!\xd7\x151?^4|{\xc0c\xdc\xc0\x1e)\t\xb3\x90\t\xf04\xa5\x0e&\b\xa7L\x96\x90\x118s\xc9\x1a\x02N\xc7l\x12\x96\x98\x9b\xaaU\x9cx\xd6vk6vҸ\x0fx|g=\xc3H;\xf6\xb2\x88\xde0\x19`\xb0\xc8zTe2\xefD&\xd3z)\xaf\x0f\x1b5\x15uw\xdbg\xed6\xea\x02n\x9e\xa4%\xf4T\n\x1f5\xda\xcf\xdaqϫ\x11֣\xff,\xb2\xfa\xa9\xaczʛy\xa2G;A\x1a%\xf4\xbem\xfc\t\xb3f\x95\xb4\xb0QtV\nt\xe147Ì\x17KF)/-gB\x95V+v\xb4끵\xa2a\x06\xf6h\xd3\xe1N\x1b\xbdֲ\xd1P\xe9@\xe7Q\xbb%\xdf\xe3!\xf8\xf4}&\x12L!-\x99\xa8\"\x1a\xa2uF8\xbc\x97\t\xe4h\xee\x11\n\xf2\x05\xb1܈\xb6Ͼ-\x96\xb9\xd8Рj\xc1Ч1(\xadH\xaf\xa3\xc6U\xec\x8f\x18<\x98\x8f\x9e\x1e\x1c\xb37v\xd0\x1c\xc7DP[\xa4)'lE\xf6e\x91\x97Xĝ\xd3\xf8\xc1\xa3\xe7\xfdk.8Q\xfaor\x91,\xec\xff\x81BH\x13\xa5\xe5\x1f\xf8\x8a/\xc3\xce\xec\x90uk/DkH\v\xc4\xf1\x83\xc8\xfa\xb7\x1d#[\xd4d\x810\xf3\xa1\x80ޝD>\x17\xf0\xb8\xd7\xd6{\xe4\x9dđ\xe4p\xb7I\v\xe7\x0fx<\xbf8\xb1K\xe7\x1bu\xeeC\x84\xbe\xd6G\x80\xad#\x0e\xad\xb2#\x9c\xf3\xec\xf3_\x17NEKg\xe4@\xbe\x0f\x8e\x0f\xc4\xe9$[E\x134\xb5\xbe|\xa4\x10z\x1a\xfbH\xd9,\xb4u\v\x10\xfa\xa2\xad\xf3\x19\xd1N\xc0\xbb,\xdf\x06^\xaeB\x9e\r\xc4Ρ\x01봩\xae\xfa\xc8H\xf6\xd2\xc6\xc4E;w\xe0 \xc6\xd6\xd9;\x0f\x96\x0es\xe7\x8d~{\xfb{\xee\xef\x00\xe9\xef9\x88\t\a0\f\xb90:Ak\xe7\xc4&\xca\xc2\xcf$6뤦\xf0\x87%\xbe[\x9b\x15ֹdkՖ\x84\xc2D\xce\xc5lj\x9b\xa7V^\x96\xcc\a\xfd?/\xb2˱\x03\xd6\xfa<\x17*ʁ\x9d z\xed\xe7V*\x16@\xf9#\x8a\xb9/\xd9\\,\x89\\\x83\xf0\xfd~\x82\x81\\\xaa\r/\x02\xef_%|\xa8\x8d.>\xef\xf8p]\xcdnXPw\f_\x92\x8e\xb5B\xf3}\x85\xc1\x0e'O\xb3\xfa\x8b\xc2f\xa5];\xf5A\x90\v\x9d\xbe\xb3\xb0\x93ƺ\x06\xd9h\x98\xd2\xf2%\xe9\xeb\x9d\xe5ԍ1\xcf<\xca\xfd\xec綒q{\xfdX_\xe8\x8f_\xfc\x0e5\xbe\x1eC\x90;\x90\x0eP%\xbaT\x9c4\"c\xc0\x8bxv\xc4\v2\xc4\xfa\xbd\xa6\xa1*\xf3XB\xacX\x12\xa5\x9a\xc9/\xb5'\xfc(d\xf6Zlt2G]\xce8\xe6\xa6u\xeb\x11\xfc\xdcN\xa5F.\x9ed^\xe6 rbD4\xc9)ڐ9ve\x00\x1e\x85t\xec\x91\b2\xbb'\xa7\xa3A&:/2t\b[\xdci\xc3\xfane\x8a\xb5\xeb\x0fr\xa1\xc7\xef\x1d\xfbM\xc0NȬ4\xd1Vw!7\x96\x9d\x90\x82\xe1yكO,\n+&_T:::\xa4\x9d\xf3\x04\x85Y\x12\xd0~1\xf8\xd2\xe1ca$ɢ\x9e\x8b g r|ٍ \x83\x88\nu\x1c\v!g`2\x16o!\xe4[\b\x19\a\xf7-\x84|\v!\xe7\xdb[\b\xf9\x16B\xc6Lx\v!\xdfB\xc8\xe5(\xfc\xf6!\xe4\x8dW<\x85\x1b9t\xe2\xf0~\xdd\xfd\xc5\xe9P\xff\x04\x8f\xd2\xed\a7\xc5ߠ\xd0qQݷ\v\xa3+Y\f\xdfx\xf5\xa9\nڀ\x92\xd9pM\x03\x11\xbc\x9a\xdf!7\xfc\\\xf8C\xe9\xb3\xf4w\xee\x98\x14[#\xf5\xecʨn\xddӨ\x81_~\x81\xb7\xa4\xac<\xbe\xf6i\xaeTiI\xc5S\xbb\x9ai\x02dl\x9dS܉w\xb6\xa6\xe9\x19\x95L\xd1u\x95/r]\x19W\xab\xf4\x1a\x15J\v꒺\xf5F3p\x97U#E\x92)\xa6\xf2hq\xbdQ\xa8\xed\x99\xd9OD\x95\xd1h\xf5\xd0\f\xe8\x81:\xa6\xf9\x9a\xa19\xf2wPy\x91J\xa1g\xd4\a\xbdl\x1d\xf1KE\xddS\xd5>\x115>\x11q\xf9\x1c\xa6\x11U<\xcbjw\"h\xf8\xcc:\x9d\xba\ngt\xed\xa5\xd59\xddڛQ\xb0159#\x157\xa30'+qb\xeblF\xa1Ϻ\xef\x19ə\xfcy\xe8\x9b\xe7\xaa\xcdy\xc9췕\xb4_\xb3MmR43g\x83x\x84g\x90\xed\xe6\xf8z+\xf7>ި>\xfa\xa5Q\xed3ǰ8\xe8\xfaӂ\x04~\x92*\xf5RD\xaaЊ>\xf8\x85\x00.\u007f\xaaC!V\xc6a\x1e\x86H\xb3wֱX\b2\xcb)l\x8f>\xc3b\xd7p#\x92}w\xe0 Ƚ\xb0t~΅\x83\xf3\xfa\xd8xYͣ\x9e\xf35\xc0\x8f\xba>\xa5\xb7?\xfa\xb32/\xb2a\xebVZ\x84\xf3.\x98矂F\xe4\xc4*Qؽ\xae\xbe\xf0\x9e=\b}\xeb\x8e\x1f\xc8DT\xdfw'\x99.\xd3\x1a\xfe({\x85:\u0097;\x8e\xb5\xf8\xbbפ\xf9\"8DS\xd5ɦ\xff\xc1\xf0\xf0\xc7\xfa\vH2\x96\x99\xb0N\x1bq\x8f\x9ft\xd2z\xcdd\x8a&\xdd\xf1\x9d\xc7*\x82-\xacr\x8f\xa1Ho\xf8\x14\x17v\xd4\a\xd7\\9\x04\xddi\xd27\x84鰙\x9c\xd4X\xe7\xb2\xd9M\xdd\xde~\xf2\x1bq2\xc7\xf5\xc7\xd2g\x85V\x850\x16\x89\xb6\xd5\x06\xfd\xa4\xed\x98\x15\xdb\xebG\xc8t\xd8\xfd\x0f}\xfc\r\xf2\xe5\x06\xa7\x9f\x16\xef\xc2?\x16P\tdE\xaey\x11\xbe\x1b\x9e\xd7:\x88\xb6\x98\xc6\xfa<&\xbbc\x90\x84\xb5:\x91lM\x1e\xa5\v_5\xbd\xc6\xf7\xed\xe3\xf1Ѩҗ\x16\u007f~Th\xbeV\xeaf7\xca\xf3e\xf2\x15\x8b_N\xa6U\xcc\x1c2\x00d\xb9z\xc3O=\x94\n$\xb1\xfe}$oz\x99T\xd5k\x1e}bM\xea\xf5\x98N\x0fE\xb2\xab\xa1'4V\xf5{\x1eg3t\xb4N\xb8\xd2\xce?\x88\xc2\xc3 \x11\x85+Mp\u007fIi\xf8\xe3~\x02\x81\xfe\x1b\xf8\xe5O\xa2dº\b\x9e}\xaa\x875\xe7t\xeb\xfc}Kel\xe0QX~s\xc4߶\xb4\x88\u007fj\x16\x87\u007f\xf0\x9e\xef\nR\xe1pE\xb0\x973m@\xbe\xf9\xf1\x83\xc9\xdd}\xa1\x11\xf5\x9dn +O\xab\x9eL\x18\xd9\xc9Х\xdd\n>\xe3\xe3Iߍ\"\xc4\xfb\xd9t\u007f/\x87\xe9]\xfd\xdeU즚\x17\xb2\xf8\x1a\xf4D\xe7\xbbf\xaa7\xb8\x97\xab\x15Yւ\xe7\xaf<-\xfc\xbf<\xf5-\x9c\x80Ih'\u007f\xea\xfd6bx&\x8cΰ\xc1\x19P\x92^W\xf3&\xda\xfb\xe6?^z\x15\xde@;\xf8\xea\x01~t,m\xc9Jpơ\xa7\xd1<\x91$X\xb8p\x17\xd0~\f\xed\xfc\x9c\xff\xa9\xde:\xe3\u007f\x13\xad|\xa8k\xaf\xe0o\u007f?\x83\xe08\xef*<\xa8\xf3\xbf\x01\x00\x00\xff\xff*\xdd\xe8w?N\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4VM\x8f\xe44\x13\xbe\xe7W\x94\xf6=\xec\xe5MzG{A\xb9\xa1\x06\xa4\x110\x1aM/sA\x1c\x1c\xa7\xd2mƱCU\xb9\x87\x06\xf1ߑ\xed\xa4?\xd2\xe9\x9d\xdd\x03\xbe\xa5\\\x1f\x8f\x9f\xfaH\x15eY\x16j0\xcfHl\xbc\xabA\r\x06\xff\x14t\U0004bad7o\xb82~\xb5\xbfkP\xd4]\xf1b\\[\xc3:\xb0\xf8\xfe\t\xd9\a\xd2\xf8\x1dv\xc6\x191\xde\x15=\x8aj\x95\xa8\xba\x00P\xceyQQ\xcc\xf1\x13@{'\xe4\xadE*\xb7誗\xd0`\x13\x8cm\x91R\x84)\xfe\xfeC\xf5\xb1\xfaP\x00h\xc2d\xfe\xc9\xf4Ȣ\xfa\xa1\x06\x17\xac-\x00\x9c\xea\xb1\x06F\x8aF\xa2$0\xe1\x1f\x01Y\xb8ڣE\xf2\x95\xf1\x05\x0f\xa8c\xe0-\xf90\xd4p\xba\xc8\xf6#\xa8\xfc\xa0Mr\xb5I\xae\x9e\xb2\xabtk\rˏ\xb74~2\xa3\xd6`\x03)\xbb\f()\xf0Γ<\x9c\x82\x96\xc0L\xf9Ƹm\xb0\x8a\x16\x8d\v\x80\x810]\xfc\xe2^\x9c\u007fu?\x18\xb4-\xd7\xd0)\xcbX\x00\xb0\xf6\x03\u0590\\\x0fJc\x1be\xa1\xa113c\xb8촆\xbf\xff)\x00\xf6ʚ6\xf1\x9a/\xfd\x80\xee\xdb\xc7\xfb\xe7\x8f\x1b\xbd\xc3^e!@\x8b\xac\xc9\fIo\xe9\xf1`\x18\x14\x8c@A<(\xad\x91\x19t B'cL0\xae\xf3ԧp\xa3c\x00\xd5\xf8 ;\x84甓\xf1\xe9ը0\x90\x1f\x90\xc4L\xe8\x93ɩ>\x8f\xb2\x19\xc6\xf7\xf1\x11Y\a\xdaX\x91\xc8)\xc6XW\xd8\x02\xa7\a\x82\xef@v\x86\x810\x91\xeb\xe4\x12]\xe2\xa4\x03\xe5\xc07\xbf\xa3\x96j|=\xc7,\x06\xdb\xc62\xde#\t\x10j\xbfu毣g\x8e4ĐV\xc9T@\xd31N\x90\x9c\xb2\x91\xfe\x80\xff\a\xe5Z\xe8\xd5\x01\bc\f\b\xee\xcc[R\xe1\n~\xf6\x84\x89\xc0\x1av\"\x03\u05eb\xd5\xd6\xc8ԑ\xda\xf7}pF\x0e\xab\xd4W\xa6\t\xe2\x89W-\xeeѮ\xd8lKEzg\x04\xb5\x04\u0095\x1aL\x99\x80\xbbԐU\xdf\xfe\xefX$\xefϐ\xca!\xd6\x13\v\x19\xb7=\x8aS\x8f\xdc\xe4=\xf6G\xae\x86l\x96\xf1\x9f荢\xc8\xca\xd3\xf7\x9bO0\x05M)\xb8\xe4<\xb1}2\xe3\x13\xf1\x91(\xe3:\xa4\x9c\xb8\x8e|\x9f<\xa2k\ao\\\xae%m\r\xbaK\xd294\xbd\x11\x9e\xaa4槂u\x9aK\xd0 \x84\xa1U\x82m\x05\xf7\x0e֪G\xbbV\x8c\xff9\xed\x91a.#\xa5o\x13\u007f>N/\x153[G\xf14\xeb\x163\xb4н\x9b\x01u\xccY$.ښ\xce\xe8\xd4\x06\xd0y\x02\xb5dR\xbd\x89!O\x99\xafA1Έ\x8cc69b\x0f\xbe\x85ciT$\xf9N1^\x8afh\x1e\xa3\xc6<\xb25\x1dꃶ\x98\x1d\xe4I\x81o\x81\x88\a]\xe8\xe7\xf1Jx\xc0\xd7+\xd9#\xf98'Ӥ>?\x8b\xf9\x87\xfcs\xd9\x1aǟ\u007fM\xd6I\xbf\xab\xf3\x91{6jG7@\xc1\xb9ؑ\xdeE\xf1\xcc)\\N\xe4٭\x11\xec\xafp,\"\xb9w\x9dO\xbf{\x15C*\xc9}\x82cR\xc7\x18\x19ѕ\xbb[9\xcdg>\x8a\xbe\x80\xc0|\xd2\xca\xf0\xf5\x86qt\x18\u0085\x98e² \x8e\x91\xaeċ\x1d3\"\v֪\xc6b\rBan\x99\xed\x14\x91:\\V\xc5TF\xa7\xe5\xe8\xb3\x05r\xa5\x1ek\xffu\x87\xeeV\x85ë\xe2\xa5\xdcd7\xd0\x1cn\x19\xae\x8f[\u07bcIrY\xd6\x10\xa7n)报/ b!K\xb9T\x17\xb6\x83+\x126\xe7\x9aS\xef_\x14\xfc\xb4,̑\xdf\b\xbe\x90ԙ\xe8\xb4\xd4ޝ\xbeRa\x97\xe3\x12\x9b.\xc6W\xb4g/g\xf1\xa4\xb6\x13\x17\xa7\xd9\x1a\u05ecA\xb0}\x98\xaf\xb0\xef\xde]\xec\xa2\xe9S{ך\xbc\x81ï\xbf\x15\xd9+\xb6\xcf\x13\x8e(\xfc7\x00\x00\xff\xff\xad\x01\x9a\xeb\x00\f\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4V\xc1\x8e\xdc6\f\xbd\xfb+\x88\xf4\x90K\xed\xc9\"\x97·`\xdb\x02A\xd3`\x91M\xe6R\xf4\xa0\x91\xe8\x19veI\x15)\xa7ۯ/$\xcb;\xe3ٙ\xa4E\x11\xdfDS\xe4\xe3\xe3#\xa1\xa6m\xdbF\x05\xdabd\xf2\xae\a\x15\b\xff\x12t\xf9\xc4\xdd\xc3\x0fܑ\xdfL7;\x14u\xd3<\x903=\xdc&\x16?~@\xf6)j\xfc\x11\ar$\xe4]3\xa2(\xa3D\xf5\r\x80r\u038b\xcaf\xceG\x00\xed\x9dDo-\xc6v\x8f\xae{H;\xdc%\xb2\x06cɰ\xe4\x9f^u\xaf\xbbW\r\x80\x8eX\xae\u007f\xa4\x11Y\xd4\x18zp\xc9\xda\x06\xc0\xa9\x11{\x98\xbcM#\xb2S\x81\x0f^\xac\xd7s\xb2nB\x8b\xd1w\xe4\x1b\x0e\xa8s\xee}\xf4)\xf4p\xfc1\x87\xa8\xb8暶%\xda}\x8d\xf6\xaeF+\x0e\x96X~\xf9\x82\xd3;b)\x8e\xc1\xa6\xa8\xecUdŇ\xc9\xed\x93U\xf1\x9aW\x03\x10\"2\xc6\t?\xb9\a\xe7?\xbb\x9f\t\xad\xe1\x1e\x06e\x19\x1b\x00\xd6>`\x0f\xefs\x05Ai4\r\xc0\xa4,\x99r\u007f\xae\xc9\ato\xee\xden_\xdf\xeb\x03\x8ej6\x02\x18d\x1d)\x14\xbf+\xc5\x001(X\xd0\xc0\xe7\x03F\x84ma\x0eX|D\xae\xc0kH\x80\xa5\x02\xee\xaa)D\x1f0\n-\x04\xe7\xefDaO\xb63_\x9b\xf1\x1f\xe9ͦ\xccʇ\x9f\xee?\u0092\xb4\xb4`\xcdya\xfbx\x8d\x8f\xc4g\xa2\xc8\r\x18\xe7\xc6\rя%\":\x13<9)\am\tݚtN\xbb\x91$w\xfaτ,\xb9?\x1dܖ\xcd\x02;\x84\x14\x8c\x124\x1d\xbcup\xabF\xb4\xb7\x8a\xf1\x9bӞ\x19\xe66S\xfau\xe2O\x17\xe2\xdaqf\xeb8DuU]\xec\xd0\xe5I\xbd\x0f\xa8W\x83\x92c\xd0@ur\a\x1fA\xadجS|9Zw\xe2zi\x80a\xde\xe0\x03\xed\xd76\x00eL\xd9\xfe\xca\xde]\xb9w\x95\x9e\v\xb5ޖ\x1cY\x8e\xb9\x80\x10\xfdD\x06c\xbb\xd4V1\xa4X\x8b,\xbb\xb1k.\xe5:c\xb8\x16V\u009d\xc3[!\xb8\xabN\x19C\xa6u\xb94\xef\x1d\xac\xeb\xaf,C\xb5\xc7˹\x9fՙ\x15L\x11WS\xd8>\x85\xfe\xaa:DI\xe2\xff\xaa\x8fr\xa9z\xee\xaaFt\x8a\x11\x9dԈ\xe0\x87\x15|\xf5\xff5\x12\x0e\x8a\xf1\x8b\xfc^\x8e}\x97\xef-\x94[\x1aP?j\x8bs\xb8\xb2Ο)\xea_C\xcd\x1f\xba4\x9e\xa3j\xe1ͤȪ\x9d\xc5g\u007f>9u\xe5ߕ\x06_\xe8ۙ\xe9\xf8¹9\x9e\n{\xed\U000a2e59\x9f\byk\x9a\x1e$\xa69y\x95Z\xb5\x1cŠ\xb4\xc6 hޟ?f^\xbcX\xbdG\xcaQ{7\xcf)\xf7\xf0\xdb\xef\xcd\x1c\x15\xcdv\xc1\x91\x8d\xff\x04\x00\x00\xff\xffJ\xbeWz\r\n\x00\x00"), diff --git a/go.mod b/go.mod index bfea33926..81d56baa5 100644 --- a/go.mod +++ b/go.mod @@ -4,45 +4,44 @@ go 1.16 require ( github.com/Azure/azure-sdk-for-go v42.0.0+incompatible - github.com/Azure/go-autorest/autorest v0.11.1 - github.com/Azure/go-autorest/autorest/azure/auth v0.4.2 + github.com/Azure/go-autorest/autorest v0.11.21 + github.com/Azure/go-autorest/autorest/azure/auth v0.5.8 github.com/Azure/go-autorest/autorest/to v0.3.0 github.com/Azure/go-autorest/autorest/validation v0.2.0 // indirect github.com/aws/aws-sdk-go v1.28.2 - github.com/docker/spdystream v0.0.0-20170912183627-bc6354cbbc29 // indirect - github.com/evanphx/json-patch v4.9.0+incompatible - github.com/fatih/color v1.10.0 + github.com/evanphx/json-patch v4.11.0+incompatible + github.com/fatih/color v1.13.0 github.com/gobwas/glob v0.2.3 github.com/gofrs/uuid v3.2.0+incompatible - github.com/golang/protobuf v1.4.3 + github.com/golang/protobuf v1.5.2 github.com/google/uuid v1.1.2 - github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd + github.com/hashicorp/go-hclog v0.12.0 github.com/hashicorp/go-plugin v0.0.0-20190610192547-a1bc61569a26 github.com/joho/godotenv v1.3.0 github.com/kubernetes-csi/external-snapshotter/client/v4 v4.0.0 github.com/onsi/ginkgo v1.16.4 - github.com/onsi/gomega v1.10.2 + github.com/onsi/gomega v1.16.0 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.7.1 + github.com/prometheus/client_golang v1.11.0 github.com/robfig/cron v1.1.0 - github.com/sirupsen/logrus v1.7.0 - github.com/spf13/afero v1.2.2 - github.com/spf13/cobra v1.1.1 + github.com/sirupsen/logrus v1.8.1 + github.com/spf13/afero v1.6.0 + github.com/spf13/cobra v1.2.1 github.com/spf13/pflag v1.0.5 - github.com/stretchr/testify v1.6.1 - github.com/vmware-tanzu/crash-diagnostics v0.3.4 - golang.org/x/mod v0.3.0 - golang.org/x/net v0.0.0-20201110031124-69a78807bb2b - google.golang.org/grpc v1.31.0 - k8s.io/api v0.20.9 - k8s.io/apiextensions-apiserver v0.19.12 - k8s.io/apimachinery v0.20.9 - k8s.io/cli-runtime v0.20.9 - k8s.io/client-go v0.20.9 + github.com/stretchr/testify v1.7.0 + github.com/vmware-tanzu/crash-diagnostics v0.3.7 + golang.org/x/mod v0.4.2 + golang.org/x/net v0.0.0-20210520170846-37e1c6afe023 + google.golang.org/grpc v1.40.0 + k8s.io/api v0.22.2 + k8s.io/apiextensions-apiserver v0.22.2 + k8s.io/apimachinery v0.22.2 + k8s.io/cli-runtime v0.22.2 + k8s.io/client-go v0.22.2 k8s.io/klog v1.0.0 k8s.io/kube-aggregator v0.19.12 - sigs.k8s.io/cluster-api v0.3.11-0.20210106212952-b6c1b5b3db3d - sigs.k8s.io/controller-runtime v0.7.1-0.20201215171748-096b2e07c091 + sigs.k8s.io/cluster-api v1.0.0 + sigs.k8s.io/controller-runtime v0.10.2 ) replace github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.2 diff --git a/go.sum b/go.sum index c4c9fdffb..9d7658615 100644 --- a/go.sum +++ b/go.sum @@ -13,8 +13,18 @@ cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bP cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0 h1:Dg9iHVQfrhq82rUNu9ZxUDrJLaxFUe/HlCVaLyRruq8= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= +cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= +cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= +cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= +cloud.google.com/go v0.93.3 h1:wPBktZFzYBcCZVARvwVKqH1uEj+aLXofJEtrb4oOsio= +cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -24,6 +34,7 @@ cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM7 cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/firestore v1.6.0/go.mod h1:afJwI0vaXwAG54kI7A//lP/lSPDkQORQuMkv56TxEPU= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -37,24 +48,27 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7 github.com/Azure/azure-sdk-for-go v42.0.0+incompatible h1:yz6sFf5bHZ+gEOQVuK5JhPqTTAmv+OvSLSaqgzqaCwY= github.com/Azure/azure-sdk-for-go v42.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= -github.com/Azure/go-autorest/autorest v0.9.3/go.mod h1:GsRuLYvwzLjjjRoWEIyMUaYq8GNUx2nRB378IPt/1p0= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= -github.com/Azure/go-autorest/autorest v0.11.1 h1:eVvIXUKiTgv++6YnWb42DUA1YL7qDugnKP0HljexdnQ= -github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= +github.com/Azure/go-autorest/autorest v0.11.17/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw= +github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= +github.com/Azure/go-autorest/autorest v0.11.21 h1:w77zY/9RnUAWcIQyDC0Fc89mCvwftR8F+zsR/OH6enk= +github.com/Azure/go-autorest/autorest v0.11.21/go.mod h1:Do/yuMSW/13ayUkcVREpsMHGG+MvV81uzSCFgYPj4tM= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= -github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= -github.com/Azure/go-autorest/autorest/adal v0.8.1/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= -github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= -github.com/Azure/go-autorest/autorest/adal v0.9.5 h1:Y3bBUV4rTuxenJJs41HU3qmqsb+auo+a3Lz+PlJPpL0= github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= -github.com/Azure/go-autorest/autorest/azure/auth v0.4.2 h1:iM6UAvjR97ZIeR93qTcwpKNMpV+/FTWjwEbuPD495Tk= -github.com/Azure/go-autorest/autorest/azure/auth v0.4.2/go.mod h1:90gmfKdlmKgfjUpnCEpOJzsUEjrWDSLwHIG73tSXddM= -github.com/Azure/go-autorest/autorest/azure/cli v0.3.1 h1:LXl088ZQlP0SBppGFsRZonW6hSvwgL5gRByMbvUbx8U= -github.com/Azure/go-autorest/autorest/azure/cli v0.3.1/go.mod h1:ZG5p860J94/0kI9mNJVoIoLgXcirM2gF5i2kWloofxw= +github.com/Azure/go-autorest/autorest/adal v0.9.11/go.mod h1:nBKAnTomx8gDtl+3ZCJv2v0KACFHWTB2drffI1B68Pk= +github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= +github.com/Azure/go-autorest/autorest/adal v0.9.14 h1:G8hexQdV5D4khOXrWG2YuLCFKhWYmWD8bHYaXN5ophk= +github.com/Azure/go-autorest/autorest/adal v0.9.14/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= +github.com/Azure/go-autorest/autorest/azure/auth v0.5.8 h1:TzPg6B6fTZ0G1zBf3T54aI7p3cAT6u//TOXGPmFMOXg= +github.com/Azure/go-autorest/autorest/azure/auth v0.5.8/go.mod h1:kxyKZTSfKh8OVFWPAgOgQ/frrJgeYQJPyR5fLFmXko4= +github.com/Azure/go-autorest/autorest/azure/cli v0.4.2 h1:dMOmEJfkLKW/7JsokJqkyoYSgmR08hi9KrhjZb+JALY= +github.com/Azure/go-autorest/autorest/azure/cli v0.4.2/go.mod h1:7qkJkT+j6b+hIpzMOwPChJhTqS8VbsqqgULzMNRugoM= github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= @@ -62,7 +76,6 @@ github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSY github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk= github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/to v0.3.0 h1:zebkZaadz7+wIQYgC7GXaz3Wb28yKYfVkkBKwc38VF8= @@ -70,66 +83,75 @@ github.com/Azure/go-autorest/autorest/to v0.3.0/go.mod h1:MgwOyqaIuKdG4TL/2ywSsI github.com/Azure/go-autorest/autorest/validation v0.2.0 h1:15vMO4y76dehZSq7pAaOLQxC6dZYsSrj2GQpflyM/L4= github.com/Azure/go-autorest/autorest/validation v0.2.0/go.mod h1:3EEqHnBxQGHXRYq3HT1WyXAvT7LLY3tl70hw6tQIbjI= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= -github.com/Azure/go-autorest/logger v0.2.0 h1:e4RVHVZKC5p6UANLJHkM4OfR1UKZPj8Wt8Pcx+3oqrE= github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= +github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= +github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= +github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alessio/shellescape v1.2.2/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/aws/aws-sdk-go v1.28.2 h1:j5IXG9CdyLfcVfICqo1PXVv+rua+QQHbkXuvuU/JF+8= github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= +github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/caddyserver/caddy v1.0.3 h1:i9gRhBgvc5ifchwWtSe7pDpsdS9+Q0Rw9oYQmYUTw1w= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= +github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/coredns/corefile-migration v1.0.11 h1:ptBYGW2ADXIB7ZEBPrhhTvNwJLQfxE3Q9IUMBhJCEeI= -github.com/coredns/corefile-migration v1.0.11/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= +github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= +github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= +github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= +github.com/coredns/caddy v1.1.0 h1:ezvsPrT/tA/7pYDBZxu0cT0VmWk75AfIaf6GSYCNMf0= +github.com/coredns/caddy v1.1.0/go.mod h1:A6ntJQlAWuQfFlsd9hvigKbo2WS0VUs2l1e2F+BawD4= +github.com/coredns/corefile-migration v1.0.13 h1:ld5RswmH1xjqBUEukw4QxC1PakLNNoVlsZEV8FGwoV8= +github.com/coredns/corefile-migration v1.0.13/go.mod h1:XnhgULOEouimnzgn0t4WPuFDN2/PJQcTxdWKC5eXNGE= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= @@ -138,27 +160,27 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dimchansky/utfbom v1.1.0 h1:FcM3g+nofKgUteL8dm/UpdRXNC9KmADgTpLKsu0TRo4= github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= +github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= +github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug= github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= -github.com/docker/spdystream v0.0.0-20170912183627-bc6354cbbc29 h1:llBx5m8Gk0lrAaiLud2wktkX/e8haX7Ru0oVfQqtZQ4= -github.com/docker/spdystream v0.0.0-20170912183627-bc6354cbbc29/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/drone/envsubst v1.0.3-0.20200709223903-efdb65b94e5a/go.mod h1:N2jZmlMufstn1KEqvbHjw40h1KyTmnVzHcSc9bFiJ2g= +github.com/drone/envsubst/v2 v2.0.0-20210615175204-7bf45dbf5372/go.mod h1:esf2rsHFNlZlxsqsZDojNBcnNs5REqIvRrWRHqX0vEU= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc= @@ -168,91 +190,71 @@ github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v0.0.0-20200808040245-162e5629780b/go.mod h1:NAJj0yf/KaRKURN6nyi7A9IZydMivZEm9oQLWNjfKDc= -github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= +github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch/v5 v5.1.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= +github.com/evanphx/json-patch v4.11.0+incompatible h1:glyUF9yIYtMHzn8xaKw5rMhdWcwsYV8dZHIq5567/xs= +github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg= -github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= +github.com/form3tech-oss/jwt-go v3.2.3+incompatible h1:7ZaBxOI7TMoYBfyA3cQHErNNyAWIKUMIwqxEtgHOs5c= +github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= +github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= +github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= +github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v0.2.1/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v0.3.0 h1:q4c+kbcR0d5rSurhBR8dIgieOaYpXtsdTYfx22Cu6rs= -github.com/go-logr/logr v0.3.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/zapr v0.2.0 h1:v6Ji8yBW77pva6NkJKQdHLAJKrIJKRHz0RXwPqCHSR4= -github.com/go-logr/zapr v0.2.0/go.mod h1:qhKdvif7YF5GI9NWEpyxTSSBdGmzkNguibrdCNVPunU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= +github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc= +github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/zapr v0.4.0 h1:uc1uML3hRYL9/ZZPdgHS/n8Nzo+eaYL/Efxkkamf7OM= +github.com/go-logr/zapr v0.4.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= +github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= +github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/gobuffalo/flect v0.2.2 h1:PAVD7sp0KOdfswjAw9BpLCU9hXo7wFSzgpQ+zNeks/A= -github.com/gobuffalo/flect v0.2.2/go.mod h1:vmkQwuZYhN5Pc4ljYQZzP+1sq+NEkK+lh20jmEmX3jc= +github.com/gobuffalo/flect v0.2.3 h1:f/ZukRnSNA/DUpSNDadko7Qc0PhGvsew35p/2tu+CRY= +github.com/gobuffalo/flect v0.2.3/go.mod h1:vmkQwuZYhN5Pc4ljYQZzP+1sq+NEkK+lh20jmEmX3jc= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -262,8 +264,9 @@ github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4er github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= @@ -271,7 +274,8 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -285,13 +289,16 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -299,9 +306,13 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-github/v33 v33.0.0/go.mod h1:GMdDnVZY/2TsWgp/lkYnpSAh6TrzhANBBwm6k6TTEXg= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -309,6 +320,8 @@ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -316,129 +329,150 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= -github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= +github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= -github.com/googleapis/gnostic v0.5.2 h1:YVUUPsHTL1setd3iy+OvO3cToQBzLmYat6N9iIh++Gc= -github.com/googleapis/gnostic v0.5.2/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= +github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw= +github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gosuri/uitable v0.0.4/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/api v1.10.1/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd h1:rNuUHR+CvK1IS89MMtcF0EpcVMZtjKfPRp4MEmt/aTs= github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= +github.com/hashicorp/go-hclog v0.12.0 h1:d4QkX8FRTYaKaCZBoXYY8zJX2BXjWxurN/GA2tkrmZM= +github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-plugin v0.0.0-20190610192547-a1bc61569a26 h1:sADP8l/FAtMyWJ9GIcQT/04Ae80ZZ75ogOrtW0DIZhc= github.com/hashicorp/go-plugin v0.0.0-20190610192547-a1bc61569a26/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb h1:b5rjCoWHc7eqmAS4/qyk21ZsHyb6Mxv/jykxvNTkU4M= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= +github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kubernetes-csi/external-snapshotter/client/v4 v4.0.0 h1:ipLtV9ubLEYx42YvwDa12eVPQvjuGZoPdbCozGzVNRc= github.com/kubernetes-csi/external-snapshotter/client/v4 v4.0.0/go.mod h1:YBCo4DoEeDndqvAn6eeu0vWM7QdXmHEeI9cFWplmBys= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= +github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= -github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.9 h1:sqDoxXbdeALODt0DAeJCVp38ps9ZogZEAXjus69YV3U= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -450,19 +484,26 @@ github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS4 github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= +github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= +github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -470,42 +511,45 @@ github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.10.2 h1:aY/nuoWlKJud2J6U0E3NWsjlg+0GtwXxgEqthRdzlcs= -github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= +github.com/onsi/gomega v1.16.0 h1:6gjqkI8iiRHMvdccRJM8rVKjCWk6ZIm6FTm3ddIe4/c= +github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.8.0/go.mod h1:D6yutnOGMveHEPV7VQOuvI/gXY61bv+9bAOTRnLElKs= +github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -514,51 +558,63 @@ github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6T github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.26.0 h1:iMAkS2TDoNWnKM+Kopnx/8tnEStIfpYA0ur0xQzzhMQ= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/robfig/cron v1.1.0 h1:jk4/Hud3TTdcrJgUOBgsqrZBarcxl6ADIjSC2iniwLY= github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sagikazarmark/crypt v0.1.0/go.mod h1:B/mN0msZuINBtQ1zZLEQcegFJJf9vnYIR88KRMEuODE= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= +github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/cobra v1.1.1 h1:KfztREH0tPxJJ+geloSLaAkaPkr4ki2Er5quFV1TDo4= -github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= +github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= +github.com/spf13/cobra v1.2.1 h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw= +github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= +github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= +github.com/spf13/viper v1.9.0/go.mod h1:+i6ajR7OX2XaiBkrcZJFK21htRk7eDeLg7+O6bhUPP4= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -568,71 +624,90 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vladimirvivien/echo v0.0.1-alpha.6 h1:L1elSMyiiqia7+5ikH24xKIkYAlecRXP6i4YmAF1tkc= -github.com/vladimirvivien/echo v0.0.1-alpha.6/go.mod h1:64h/A7+5GmiBaeztyIr8BVf/07B7knV6OAP06jX+oyE= -github.com/vmware-tanzu/crash-diagnostics v0.3.4 h1:ytpBTTDg9oBErLnwBsMAc+AcE8W3oIJhD7PagJ9xIAM= -github.com/vmware-tanzu/crash-diagnostics v0.3.4/go.mod h1:2+zhcACaLIZesMLGJrBV4GJwMel0KGid6dCFgt2TdP0= +github.com/vladimirvivien/gexe v0.1.1 h1:2A0SBaOSKH+cwLVdt6H+KkHZotZWRNLlWygANGw5DxE= +github.com/vladimirvivien/gexe v0.1.1/go.mod h1:LHQL00w/7gDUKIak24n801ABp8C+ni6eBht9vGVst8w= +github.com/vmware-tanzu/crash-diagnostics v0.3.7 h1:6gbv/3o1FzyRLS7Dz/+yVg1Lk1oRBQLyI3d1YTtlTT8= +github.com/vmware-tanzu/crash-diagnostics v0.3.7/go.mod h1:gO8670rd+qdjnJVol674snT/A46GQ27u085kKhZznlM= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= +github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= +go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= +go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= +go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= +go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= +go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE= +go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc= +go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= +go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= +go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= +go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= +go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= +go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= +go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= +go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= +go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.starlark.net v0.0.0-20201006213952-227f4aabceb5 h1:ApvY/1gw+Yiqb/FKeks3KnVPWpkR3xzij82XPKLjJVw= go.starlark.net v0.0.0-20201006213952-227f4aabceb5/go.mod h1:f0znQkUKRrkk36XxWbGjMqQM8wGv/xHBVE2qc3B5oFU= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.8.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.15.0 h1:ZZCA22JRF2gQE5FoNmhmrf7jeJJ2uhqDUNRYKm8dvmM= -go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= +go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= +go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE= +go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee h1:4yd7jl+vXjalO5ztz6Vc1VADv+S/80LGJmyl1ROJ2AI= -golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= +golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 h1:HWj/xjIHfjYU5nVXpTM0s39J9CbLn7Cc5a7IC5rwsMQ= +golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -654,8 +729,10 @@ golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= @@ -663,23 +740,21 @@ golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -691,7 +766,7 @@ golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -708,15 +783,35 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210520170846-37e1c6afe023 h1:ADo5wSpq2gqaCGQWzk7S5vd//0iyyLeAratkEoG5dLE= +golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43 h1:ld7aEMNHoBnnDAX15v1T6z31v8HwR2A9FYOuAhWqkwc= golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f h1:Qmd2pbz05z7z6lm0DrgQVVPuBm92jqujBKMHMOlOQEw= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -726,7 +821,8 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -734,12 +830,10 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -750,9 +844,12 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -761,6 +858,7 @@ golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -776,30 +874,61 @@ golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091 h1:DMyOG0U+gKfu8JZzg2UQe9MeaC1X+xQWlAKcRnjxjCw= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654 h1:id054HUawV2/6IGm2IV8KZQjqtwAOo2CYlOToYqa0d0= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d h1:SZxvLBoTP5yHO3Frd4z4vrF+DBX9vMVanchswa69toE= +golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac h1:7zkz7BUtwNFFqcowJ+RIgu2MaV/MapERkDIy+mwPyjs= +golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -810,15 +939,13 @@ golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -840,6 +967,7 @@ golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjs golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -848,16 +976,27 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gomodules.xyz/jsonpatch/v2 v2.1.0 h1:Phva6wqu+xR//Njw6iorylFFgn/z547tw5Ne3HZPQ+k= -gomodules.xyz/jsonpatch/v2 v2.1.0/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU= +gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY= +gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -874,6 +1013,18 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= +google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= +google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= +google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= +google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= +google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= +google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -903,15 +1054,40 @@ google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987 h1:PDIOdWxZ8eRizhKa1AAvY53xsvLB1cWorMjslvY3VA8= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= +google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71 h1:z+ErRPu0+KS02Td3fOAgdX+lnPDh/VyaABEJPD4JRQs= +google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -925,8 +1101,22 @@ google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0 h1:T7P4R73V3SSDPhH7WW7ATbfViLtmamH0DKrP3f9AuDI= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -936,20 +1126,25 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= +gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= @@ -958,98 +1153,94 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= +gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4 h1:UoveltGrhghAA7ePc+e+QYDHXrBps2PqFZiHkGR/xK8= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.19.0/go.mod h1:I1K45XlvTrDjmj5LoM5LuP/KYrhWbjUKT/SoPG0qTjw= -k8s.io/api v0.19.2/go.mod h1:IQpK0zFQ1xc5iNIQPqzgoOwuFugaYHK4iCknlAQP9nI= k8s.io/api v0.19.12/go.mod h1:EK+KvSq2urA6+CjVdZyAHEphXoLq2K2eW6lxOzTKSaY= -k8s.io/api v0.20.9 h1:BKGV+rmHIyEVaJvWDYfqyfvHqdL/PhZalNr4mM/932Q= -k8s.io/api v0.20.9/go.mod h1:wTKbf3LIlu+vuXqOk4Bi5drnSUtB10ou5XYrlgOuCdQ= -k8s.io/apiextensions-apiserver v0.19.2/go.mod h1:EYNjpqIAvNZe+svXVx9j4uBaVhTB4C94HkY3w058qcg= -k8s.io/apiextensions-apiserver v0.19.12 h1:wY1liMH0Q2XozYj/qFQp+MJR0BbuMBn/L8/IMDvDByo= -k8s.io/apiextensions-apiserver v0.19.12/go.mod h1:LXHRkG+7v33P+IzTKYVuqffGlB7Xg7K0VgfObTacbQg= -k8s.io/apimachinery v0.18.8/go.mod h1:6sQd+iHEqmOtALqOFjSWp2KZ9F0wlU/nWm0ZgsYWMig= +k8s.io/api v0.22.2 h1:M8ZzAD0V6725Fjg53fKeTJxGsJvRbk4TEm/fexHMtfw= +k8s.io/api v0.22.2/go.mod h1:y3ydYpLJAaDI+BbSe2xmGcqxiWHmWjkEeIbiwHvnPR8= +k8s.io/apiextensions-apiserver v0.22.2 h1:zK7qI8Ery7j2CaN23UCFaC1hj7dMiI87n01+nKuewd4= +k8s.io/apiextensions-apiserver v0.22.2/go.mod h1:2E0Ve/isxNl7tWLSUDgi6+cmwHi5fQRdwGVCxbC+KFA= k8s.io/apimachinery v0.19.0/go.mod h1:DnPGDnARWFvYa3pMHgSxtbZb7gpzzAZ1pTfaUNDVlmA= -k8s.io/apimachinery v0.19.2/go.mod h1:DnPGDnARWFvYa3pMHgSxtbZb7gpzzAZ1pTfaUNDVlmA= k8s.io/apimachinery v0.19.12/go.mod h1:9eb44nUQSsz9QZiilFRuMj3ZbTmoWolU8S2gnXoRMjo= -k8s.io/apimachinery v0.20.9 h1:3e+0NczVYKqsEDiuxA+0a50t27fCyhyI7vSrmfaMpLg= -k8s.io/apimachinery v0.20.9/go.mod h1:kQa//VOAwyVwJ2+L9kOREbsnryfsGSkSM1przND4+mw= -k8s.io/apiserver v0.19.2/go.mod h1:FreAq0bJ2vtZFj9Ago/X0oNGC51GfubKK/ViOKfVAOA= -k8s.io/apiserver v0.19.12 h1:xQjt/jLqdYszJTRTDDnHUnA0S+a1TZ/8rgWr0/xoa6I= +k8s.io/apimachinery v0.22.2 h1:ejz6y/zNma8clPVfNDLnPbleBo6MpoFy/HBiBqCouVk= +k8s.io/apimachinery v0.22.2/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0= k8s.io/apiserver v0.19.12/go.mod h1:ldZAZTNIKfMMv/UUEhk6UyTXC0/34iRdNFHo+MJOPc4= -k8s.io/cli-runtime v0.19.2/go.mod h1:CMynmJM4Yf02TlkbhKxoSzi4Zf518PukJ5xep/NaNeY= -k8s.io/cli-runtime v0.20.9 h1:KJ/z9I9r0Oyb7mjfsO4ZdasGCihIiTO7llXz+oZ0rgA= -k8s.io/cli-runtime v0.20.9/go.mod h1:MjEpWNIcmJL+gANS1+SVfvWpRSQRxOvTcx+vzvDTtTY= +k8s.io/apiserver v0.22.2 h1:TdIfZJc6YNhu2WxeAOWq1TvukHF0Sfx0+ln4XK9qnL4= +k8s.io/apiserver v0.22.2/go.mod h1:vrpMmbyjWrgdyOvZTSpsusQq5iigKNWv9o9KlDAbBHI= +k8s.io/cli-runtime v0.22.2 h1:fsd9rFk9FSaVq4SUq1fM27c8CFGsYZUJ/3BkgmjYWuY= +k8s.io/cli-runtime v0.22.2/go.mod h1:tkm2YeORFpbgQHEK/igqttvPTRIHFRz5kATlw53zlMI= k8s.io/client-go v0.19.0/go.mod h1:H9E/VT95blcFQnlyShFgnFT9ZnJOAceiUHM3MlRC+mU= -k8s.io/client-go v0.19.2/go.mod h1:S5wPhCqyDNAlzM9CnEdgTGV4OqhsW3jGO1UM1epwfJA= k8s.io/client-go v0.19.12/go.mod h1:BAGKQraZ6fDmXhT46pGXWZQQqN7P4E0BJux0+9O6Gt0= -k8s.io/client-go v0.20.9 h1:Th0Ccrpq8nEuVOzvgn7GhdjUSLCGB92AUxSfUURstDU= -k8s.io/client-go v0.20.9/go.mod h1:SjslwSB3f2wb/RwvGMfPIwsiBTPnD/Hp1xBGlz6U3t8= -k8s.io/cluster-bootstrap v0.19.2 h1:6/LI5EnKCcB0QiDKIsTxoCOdKZtsSwr8Xm/tEhiMv78= -k8s.io/cluster-bootstrap v0.19.2/go.mod h1:bzngsppPfdt9vAHUnDIEoMNsxD2b6XArVVH/W9PDDFk= +k8s.io/client-go v0.22.2 h1:DaSQgs02aCC1QcwUdkKZWOeaVsQjYvWv8ZazcZ6JcHc= +k8s.io/client-go v0.22.2/go.mod h1:sAlhrkVDf50ZHx6z4K0S40wISNTarf1r800F+RlCF6U= +k8s.io/cluster-bootstrap v0.22.2 h1:jP6Nkp3CdSfr50cAn/7WGsNS52zrwMhvr0V+E3Vkh/w= +k8s.io/cluster-bootstrap v0.22.2/go.mod h1:ZkmQKprEqvrUccMnbRHISsMscA1dsQ8SffM9nHq6CgE= k8s.io/code-generator v0.19.0/go.mod h1:moqLn7w0t9cMs4+5CQyxnfA/HV8MF6aAVENF+WZZhgk= -k8s.io/code-generator v0.19.2/go.mod h1:moqLn7w0t9cMs4+5CQyxnfA/HV8MF6aAVENF+WZZhgk= k8s.io/code-generator v0.19.12/go.mod h1:ADrDvaUQWGn4a8lX0ONtzb7uFmDRQOMSYIMk1qWIAx8= -k8s.io/component-base v0.19.2/go.mod h1:g5LrsiTiabMLZ40AR6Hl45f088DevyGY+cCE2agEIVo= -k8s.io/component-base v0.19.12 h1:pEsTceFc3Hs9qJX4h2XYXQDzRMCNzTO8MX34bhjq0Io= +k8s.io/code-generator v0.22.2/go.mod h1:eV77Y09IopzeXOJzndrDyCI88UBok2h6WxAlBwpxa+o= k8s.io/component-base v0.19.12/go.mod h1:tpwExE0sY3A7CwtlxGL7SnQOdQfUlnFybT6GmAD+z/s= -k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/component-base v0.22.2 h1:vNIvE0AIrLhjX8drH0BgCNJcR4QZxMXcJzBsDplDx9M= +k8s.io/component-base v0.22.2/go.mod h1:5Br2QhI9OTe79p+TzPe9JKNQYvEKbq9rTJDWllunGug= +k8s.io/component-helpers v0.22.2/go.mod h1:+N61JAR9aKYSWbnLA88YcFr9K/6ISYvRNybX7QW7Rs8= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= +k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.4.0 h1:7+X0fUguPyrKEC4WjH8iGDg3laWgMo5tMnRTIGTTxGQ= -k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= +k8s.io/klog/v2 v2.9.0 h1:D7HV+n1V57XeZ0m6tdRkfknthUaM06VFbWldOFh8kzM= +k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/kube-aggregator v0.19.12 h1:OwyNUe/7/gxzEnaLd3sC9Yrpx0fZAERzvFslX5Qq5g8= k8s.io/kube-aggregator v0.19.12/go.mod h1:K76wPd03pSHEmS1FgJOcpryac5C3va4cbCvSu+4EmE0= -k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd h1:sOHNzJIkytDF6qadMNKhhDRpc6ODik8lVC6nOur7B2c= -k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= -k8s.io/kubectl v0.19.2/go.mod h1:4ib3oj5ma6gF95QukTvC7ZBMxp60+UEAhDPjLuBIrV4= -k8s.io/metrics v0.19.2/go.mod h1:IlLaAGXN0q7yrtB+SV0q3JIraf6VtlDr+iuTcX21fCU= +k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e h1:KLHHjkdQFomZy8+06csTWZ0m1343QqxZhR2LJ1OxCYM= +k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= +k8s.io/kubectl v0.22.2/go.mod h1:BApg2j0edxLArCOfO0ievI27EeTQqBDMNU9VQH734iQ= +k8s.io/metrics v0.22.2/go.mod h1:GUcsBtpsqQD1tKFS/2wCKu4ZBowwRncLOJH1rgWs3uw= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20200912215256-4140de9c8800/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20201110183641-67b214c5f920 h1:CbnUZsM497iRC5QMVkHwyl8s2tB3g7yaSHkYPkpgelw= -k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b h1:wxEMGetGMur3J1xuGLQY7GEQYg9bZxKn3tKo5k/eYcs= +k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= -sigs.k8s.io/cluster-api v0.3.11-0.20210106212952-b6c1b5b3db3d h1:OwD6b5QiyY4JXWRu7bK0gxKv/x51akqGLPmD1kRJmmI= -sigs.k8s.io/cluster-api v0.3.11-0.20210106212952-b6c1b5b3db3d/go.mod h1:HwDMTKYusSK0SnTAr/P3htrxdiykBADqffkamkiUXhk= -sigs.k8s.io/controller-runtime v0.7.1-0.20201215171748-096b2e07c091 h1:tqrTDj7mJmM6TdpoM1rN2PzBRH9yzCReqKGMy4sp+f0= -sigs.k8s.io/controller-runtime v0.7.1-0.20201215171748-096b2e07c091/go.mod h1:pJ3YBrJiAqMAZKi6UVGuE98ZrroV1p+pIhoHsMm9wdU= -sigs.k8s.io/kind v0.9.0/go.mod h1:cxKQWwmbtRDzQ+RNKnR6gZG6fjbeTtItp5cGf+ww+1Y= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= -sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/cluster-api v1.0.0 h1:GcVA2ObQTXo/+jzSLWPy4Bd3NeiwJyAB8n19kyJIotA= +sigs.k8s.io/cluster-api v1.0.0/go.mod h1:V230kMSaYENTUcx1QRkoRCklb3vfphQGV3/z4ODNGWo= +sigs.k8s.io/controller-runtime v0.10.2 h1:jW8qiY+yMnnPx6O9hu63tgcwaKzd1yLYui+mpvClOOc= +sigs.k8s.io/controller-runtime v0.10.2/go.mod h1:CQp8eyUQZ/Q7PJvnIrB6/hgfTC1kBkGylwsLgOQi1WY= +sigs.k8s.io/kustomize/api v0.8.11/go.mod h1:a77Ls36JdfCWojpUqR6m60pdGY1AYFix4AH83nJtY1g= +sigs.k8s.io/kustomize/cmd/config v0.9.13/go.mod h1:7547FLF8W/lTaDf0BDqFTbZxM9zqwEJqCKN9sSR0xSs= +sigs.k8s.io/kustomize/kustomize/v4 v4.2.0/go.mod h1:MOkR6fmhwG7hEDRXBYELTi5GSFcLwfqwzTRHW3kv5go= +sigs.k8s.io/kustomize/kyaml v0.11.0/go.mod h1:GNMwjim4Ypgp/MueD3zXHLRJEjz7RvtPae0AwlvEMFM= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.1.2 h1:Hr/htKFmJEbtMgS/UD0N+gtgctAqz81t3nu+sPzynno= sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= +sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= +sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= diff --git a/hack/test.sh b/hack/test.sh index 7814d2753..bab638319 100755 --- a/hack/test.sh +++ b/hack/test.sh @@ -38,5 +38,10 @@ if [[ -n "${GOFLAGS:-}" ]]; then echo "GOFLAGS: ${GOFLAGS}" fi -go test -installsuffix "static" -short -timeout 60s "${TARGETS[@]}" +# After bumping up "sigs.k8s.io/controller-runtime" to v0.10.2, get the error "panic: mkdir /.cache/kubebuilder-envtest: permission denied" +# when running this script with "make test" command. This is caused by that "make test" runs inside a container with user and group specified, +# but the user and group don't exist inside the container, when the code(https://github.com/kubernetes-sigs/controller-runtime/blob/v0.10.2/pkg/internal/testing/addr/manager.go#L44) +# tries to get the cache directory, it gets the directory "/" and then get the permission error when trying to create directory under "/". +# Specifying the cache directory by environment variable "XDG_CACHE_HOME" to workaround it +XDG_CACHE_HOME=/tmp/ go test -installsuffix "static" -short -timeout 60s "${TARGETS[@]}" echo "Success!" diff --git a/pkg/controller/backup_sync_controller.go b/pkg/controller/backup_sync_controller.go index e4c8ff022..aeb848ac0 100644 --- a/pkg/controller/backup_sync_controller.go +++ b/pkg/controller/backup_sync_controller.go @@ -312,7 +312,7 @@ func (c *backupSyncController) run() { c.deleteOrphanedBackups(location.Name, backupStoreBackups, log) // update the location's last-synced time field - statusPatch := client.MergeFrom(location.DeepCopyObject()) + statusPatch := client.MergeFrom(location.DeepCopy()) location.Status.LastSyncedTime = &metav1.Time{Time: time.Now().UTC()} if err := c.kbClient.Status().Patch(context.Background(), &location, statusPatch); err != nil { log.WithError(errors.WithStack(err)).Error("Error patching backup location's last-synced time") diff --git a/pkg/plugin/clientmgmt/logrus_adapter.go b/pkg/plugin/clientmgmt/logrus_adapter.go index 77bc98424..3bb55d464 100644 --- a/pkg/plugin/clientmgmt/logrus_adapter.go +++ b/pkg/plugin/clientmgmt/logrus_adapter.go @@ -18,6 +18,7 @@ package clientmgmt import ( "fmt" + "io" "log" hclog "github.com/hashicorp/go-hclog" @@ -162,3 +163,37 @@ func (l *logrusAdapter) StandardLogger(opts *hclog.StandardLoggerOptions) *log.L func (l *logrusAdapter) SetLevel(_ hclog.Level) { return } + +// ImpliedArgs returns With key/value pairs +func (l *logrusAdapter) ImpliedArgs() []interface{} { + panic("not implemented") +} + +// Args are alternating key, val pairs +// keys must be strings +// vals can be any type, but display is implementation specific +// Emit a message and key/value pairs at a provided log level +func (l *logrusAdapter) Log(level hclog.Level, msg string, args ...interface{}) { + switch level { + case hclog.Trace: + l.Trace(msg, args...) + case hclog.Debug: + l.Debug(msg, args...) + case hclog.Info: + l.Info(msg, args...) + case hclog.Warn: + l.Warn(msg, args...) + case hclog.Error: + l.Error(msg, args...) + } +} + +// Returns the Name of the logger +func (l *logrusAdapter) Name() string { + return l.name +} + +// Return a value that conforms to io.Writer, which can be passed into log.SetOutput() +func (l *logrusAdapter) StandardWriter(opts *hclog.StandardLoggerOptions) io.Writer { + panic("not implemented") +} diff --git a/pkg/test/fake_namespace.go b/pkg/test/fake_namespace.go index 686e2a43a..0565151b4 100644 --- a/pkg/test/fake_namespace.go +++ b/pkg/test/fake_namespace.go @@ -24,6 +24,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/watch" + v1 "k8s.io/client-go/applyconfigurations/core/v1" corev1 "k8s.io/client-go/kubernetes/typed/core/v1" ) @@ -77,3 +78,13 @@ func (c *FakeNamespaceClient) UpdateStatus(ctx context.Context, namespace *corev args := c.Called(namespace) return args.Get(0).(*corev1api.Namespace), args.Error(1) } + +func (c *FakeNamespaceClient) Apply(ctx context.Context, namespace *v1.NamespaceApplyConfiguration, opts metav1.ApplyOptions) (result *corev1api.Namespace, err error) { + args := c.Called(namespace) + return args.Get(0).(*corev1api.Namespace), args.Error(1) +} + +func (c *FakeNamespaceClient) ApplyStatus(ctx context.Context, namespace *v1.NamespaceApplyConfiguration, opts metav1.ApplyOptions) (result *corev1api.Namespace, err error) { + args := c.Called(namespace) + return args.Get(0).(*corev1api.Namespace), args.Error(1) +} From 550efddd88f7612556d7f78948520467518a81e2 Mon Sep 17 00:00:00 2001 From: Scott Seago Date: Wed, 3 Nov 2021 18:11:32 -0400 Subject: [PATCH 037/136] Verify group before treating resource as cohabitating (#4126) Signed-off-by: Scott Seago --- changelogs/unreleased/4126-sseago | 1 + pkg/backup/backup_test.go | 24 ++++++++++ pkg/backup/item_collector.go | 20 ++++---- pkg/builder/testcr_builder.go | 77 +++++++++++++++++++++++++++++++ pkg/test/api_server.go | 1 + pkg/test/resources.go | 12 +++++ 6 files changed, 126 insertions(+), 9 deletions(-) create mode 100644 changelogs/unreleased/4126-sseago create mode 100644 pkg/builder/testcr_builder.go diff --git a/changelogs/unreleased/4126-sseago b/changelogs/unreleased/4126-sseago new file mode 100644 index 000000000..baefcbf48 --- /dev/null +++ b/changelogs/unreleased/4126-sseago @@ -0,0 +1 @@ +Verify group before treating resource as cohabitating diff --git a/pkg/backup/backup_test.go b/pkg/backup/backup_test.go index 351c60429..0747409bb 100644 --- a/pkg/backup/backup_test.go +++ b/pkg/backup/backup_test.go @@ -970,6 +970,30 @@ func TestBackupResourceCohabitation(t *testing.T) { "resources/deployments.apps/v1-preferredversion/namespaces/zoo/raz.json", }, }, + { + name: "when deployments exist that are not in the cohabitating groups those are backed up along with apps/deployments", + backup: defaultBackup().Result(), + apiResources: []*test.APIResource{ + test.VeleroDeployments( + builder.ForTestCR("Deployment", "foo", "bar").Result(), + builder.ForTestCR("Deployment", "zoo", "raz").Result(), + ), + test.Deployments( + builder.ForDeployment("foo", "bar").Result(), + builder.ForDeployment("zoo", "raz").Result(), + ), + }, + want: []string{ + "resources/deployments.apps/namespaces/foo/bar.json", + "resources/deployments.apps/namespaces/zoo/raz.json", + "resources/deployments.apps/v1-preferredversion/namespaces/foo/bar.json", + "resources/deployments.apps/v1-preferredversion/namespaces/zoo/raz.json", + "resources/deployments.velero.io/namespaces/foo/bar.json", + "resources/deployments.velero.io/namespaces/zoo/raz.json", + "resources/deployments.velero.io/v1-preferredversion/namespaces/foo/bar.json", + "resources/deployments.velero.io/v1-preferredversion/namespaces/zoo/raz.json", + }, + }, } for _, tc := range tests { diff --git a/pkg/backup/item_collector.go b/pkg/backup/item_collector.go index 6029d8f97..bb740b8ae 100644 --- a/pkg/backup/item_collector.go +++ b/pkg/backup/item_collector.go @@ -209,16 +209,18 @@ func (r *itemCollector) getResourceItems(log logrus.FieldLogger, gv schema.Group } if cohabitator, found := r.cohabitatingResources[resource.Name]; found { - if cohabitator.seen { - log.WithFields( - logrus.Fields{ - "cohabitatingResource1": cohabitator.groupResource1.String(), - "cohabitatingResource2": cohabitator.groupResource2.String(), - }, - ).Infof("Skipping resource because it cohabitates and we've already processed it") - return nil, nil + if gv.Group == cohabitator.groupResource1.Group || gv.Group == cohabitator.groupResource2.Group { + if cohabitator.seen { + log.WithFields( + logrus.Fields{ + "cohabitatingResource1": cohabitator.groupResource1.String(), + "cohabitatingResource2": cohabitator.groupResource2.String(), + }, + ).Infof("Skipping resource because it cohabitates and we've already processed it") + return nil, nil + } + cohabitator.seen = true } - cohabitator.seen = true } namespacesToList := getNamespacesToList(r.backupRequest.NamespaceIncludesExcludes) diff --git a/pkg/builder/testcr_builder.go b/pkg/builder/testcr_builder.go new file mode 100644 index 000000000..85bc83b1c --- /dev/null +++ b/pkg/builder/testcr_builder.go @@ -0,0 +1,77 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package builder + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" +) + +// CustomResourceBuilder builds objects based on velero APIVersion CRDs. +type TestCRBuilder struct { + object *TestCR +} + +// ForTestCR is the constructor for a TestCRBuilder. +func ForTestCR(crdKind, ns, name string) *TestCRBuilder { + return &TestCRBuilder{ + object: &TestCR{ + TypeMeta: metav1.TypeMeta{ + APIVersion: velerov1api.SchemeGroupVersion.String(), + Kind: crdKind, + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: ns, + Name: name, + }, + }, + } +} + +// Result returns the built TestCR. +func (b *TestCRBuilder) Result() *TestCR { + return b.object +} + +// ObjectMeta applies functional options to the TestCR's ObjectMeta. +func (b *TestCRBuilder) ObjectMeta(opts ...ObjectMetaOpt) *TestCRBuilder { + for _, opt := range opts { + opt(b.object) + } + + return b +} + +type TestCR struct { + metav1.TypeMeta `json:",inline"` + + // +optional + metav1.ObjectMeta `json:"metadata,omitempty"` + + // +optional + Spec TestCRSpec `json:"spec,omitempty"` + + // +optional + Status TestCRStatus `json:"status,omitempty"` +} + +type TestCRSpec struct { +} + +type TestCRStatus struct { +} diff --git a/pkg/test/api_server.go b/pkg/test/api_server.go index a18fbd2d0..06439bca1 100644 --- a/pkg/test/api_server.go +++ b/pkg/test/api_server.go @@ -57,6 +57,7 @@ func NewAPIServer(t *testing.T) *APIServer { {Group: "apiextensions.k8s.io", Version: "v1beta1", Resource: "customresourcedefinitions"}: "CRDList", {Group: "velero.io", Version: "v1", Resource: "volumesnapshotlocations"}: "VSLList", {Group: "extensions", Version: "v1", Resource: "deployments"}: "ExtDeploymentsList", + {Group: "velero.io", Version: "v1", Resource: "deployments"}: "VeleroDeploymentsList", }) discoveryClient = &DiscoveryClient{FakeDiscovery: kubeClient.Discovery().(*discoveryfake.FakeDiscovery)} ) diff --git a/pkg/test/resources.go b/pkg/test/resources.go index e83f171d4..69e8dbf90 100644 --- a/pkg/test/resources.go +++ b/pkg/test/resources.go @@ -108,6 +108,18 @@ func ExtensionsDeployments(items ...metav1.Object) *APIResource { } } +// test CRD +func VeleroDeployments(items ...metav1.Object) *APIResource { + return &APIResource{ + Group: "velero.io", + Version: "v1", + Name: "deployments", + ShortName: "deploy", + Namespaced: true, + Items: items, + } +} + func Namespaces(items ...metav1.Object) *APIResource { return &APIResource{ Group: "", From b2fe7fe3046a987666dd9c3356da9a96d4eb6af4 Mon Sep 17 00:00:00 2001 From: Alay Patel Date: Mon, 1 Nov 2021 18:21:55 -0400 Subject: [PATCH 038/136] - fix buggy pager func fix paging items in to use list options passed by the paging function The client-go pager sets the Limit options for the list call to paginate the request[1]. This PR fixes the paging function to use the options passed by the pager instead of shadowed options This is required for the pagination to work correctly. - simplify the pager list implementation by using pager.List() The List() function already implements a lot of the logic that was needed for paging here, using it simplifies the code. 1. https://github.com/kubernetes/kubernetes/blob/3f40906dd8a54fb91650553a6457496181f591bc/staging/src/k8s.io/client-go/tools/pager/pager.go#L219 Signed-off-by: Alay Patel --- pkg/backup/item_collector.go | 51 +++++++++++++++--------------------- 1 file changed, 21 insertions(+), 30 deletions(-) diff --git a/pkg/backup/item_collector.go b/pkg/backup/item_collector.go index 6029d8f97..3a44d5ffb 100644 --- a/pkg/backup/item_collector.go +++ b/pkg/backup/item_collector.go @@ -26,7 +26,7 @@ import ( "github.com/pkg/errors" "github.com/sirupsen/logrus" - apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/labels" @@ -293,7 +293,6 @@ func (r *itemCollector) getResourceItems(log logrus.FieldLogger, gv schema.Group if selector := r.backupRequest.Spec.LabelSelector; selector != nil { labelSelector = metav1.FormatLabelSelector(selector) } - listOptions := metav1.ListOptions{LabelSelector: labelSelector} log.Info("Listing items") unstructuredItems := make([]unstructured.Unstructured, 0) @@ -301,50 +300,42 @@ func (r *itemCollector) getResourceItems(log logrus.FieldLogger, gv schema.Group if r.pageSize > 0 { // If limit is positive, use a pager to split list over multiple requests // Use Velero's dynamic list function instead of the default - listFunc := pager.SimplePageFunc(func(opts metav1.ListOptions) (runtime.Object, error) { - list, err := resourceClient.List(listOptions) - if err != nil { - return nil, err - } - return list, nil - }) - listPager := pager.New(listFunc) + listPager := pager.New(pager.SimplePageFunc(func(opts metav1.ListOptions) (runtime.Object, error) { + return resourceClient.List(opts) + })) // Use the page size defined in the server config // TODO allow configuration of page buffer size listPager.PageSize = int64(r.pageSize) // Add each item to temporary slice - var items []unstructured.Unstructured - err := listPager.EachListItem(context.Background(), listOptions, func(object runtime.Object) error { - item, isUnstructured := object.(*unstructured.Unstructured) - if !isUnstructured { - // We should never hit this - log.Error("Got type other than Unstructured from pager func") - return nil + list, paginated, err := listPager.List(context.Background(), metav1.ListOptions{LabelSelector: labelSelector}) + if err != nil { + log.WithError(errors.WithStack(err)).Error("Error listing resources") + continue + } + if !paginated { + log.Infof("list for groupResource %s was not paginated", gr) + } + err = meta.EachListItem(list, func(object runtime.Object) error { + u, ok := object.(*unstructured.Unstructured) + if !ok { + log.WithError(errors.WithStack(fmt.Errorf("expected *unstructured.Unstructured but got %T", u))).Error("unable to understand entry in the list") + return fmt.Errorf("expected *unstructured.Unstructured but got %T", u) } - items = append(items, *item) + unstructuredItems = append(unstructuredItems, *u) return nil }) - if statusError, isStatusError := err.(*apierrors.StatusError); isStatusError && statusError.Status().Reason == metav1.StatusReasonExpired { - log.WithError(errors.WithStack(err)).Error("Error paging item list. Falling back on unpaginated list") - unstructuredList, err := resourceClient.List(listOptions) - if err != nil { - log.WithError(errors.WithStack(err)).Error("Error listing items") - continue - } - items = unstructuredList.Items - } else if err != nil { - log.WithError(errors.WithStack(err)).Error("Error paging item list") + if err != nil { + log.WithError(errors.WithStack(err)).Error("unable to understand paginated list") continue } - unstructuredItems = append(unstructuredItems, items...) } else { // If limit is not positive, do not use paging. Instead, request all items at once unstructuredList, err := resourceClient.List(metav1.ListOptions{LabelSelector: labelSelector}) - unstructuredItems = append(unstructuredItems, unstructuredList.Items...) if err != nil { log.WithError(errors.WithStack(err)).Error("Error listing items") continue } + unstructuredItems = append(unstructuredItems, unstructuredList.Items...) } log.Infof("Retrieved %d items", len(unstructuredItems)) From 569fc1dc5b4332a7ca0be096bd76e1ca7df2ee9e Mon Sep 17 00:00:00 2001 From: Alay Patel Date: Mon, 1 Nov 2021 18:30:27 -0400 Subject: [PATCH 039/136] add 4306 changelog Signed-off-by: Alay Patel --- changelogs/unreleased/4306-alaypatel07 | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelogs/unreleased/4306-alaypatel07 diff --git a/changelogs/unreleased/4306-alaypatel07 b/changelogs/unreleased/4306-alaypatel07 new file mode 100644 index 000000000..e11c33039 --- /dev/null +++ b/changelogs/unreleased/4306-alaypatel07 @@ -0,0 +1 @@ +fix buggy pager func \ No newline at end of file From e4019f26c1ab215c4dbe0e2fa5eb8b3101d298bf Mon Sep 17 00:00:00 2001 From: Bridget McErlean Date: Tue, 9 Nov 2021 20:04:58 -0500 Subject: [PATCH 040/136] Only set BSL credential field if provided (#4322) Previously, the BSL credential field would always be set when using the `create` command, even if no credential details were provided. This would result in an empty `SecretKeySelector` in the BSL which would cause operations using this BSL to fail as Velero would attempt to fetch a `Secret` with an empty name from the K8s API server. With this change, the `Credential` field is only set if credential details have been specified. This change also includes some refactoring to allow the change to be tested. Signed-off-by: Bridget McErlean --- changelogs/unreleased/4322-zubron | 1 + pkg/cmd/cli/backuplocation/create.go | 61 ++++++++++-------- pkg/cmd/cli/backuplocation/create_test.go | 78 +++++++++++++++++++++++ 3 files changed, 112 insertions(+), 28 deletions(-) create mode 100644 changelogs/unreleased/4322-zubron create mode 100644 pkg/cmd/cli/backuplocation/create_test.go diff --git a/changelogs/unreleased/4322-zubron b/changelogs/unreleased/4322-zubron new file mode 100644 index 000000000..fed1addc8 --- /dev/null +++ b/changelogs/unreleased/4322-zubron @@ -0,0 +1 @@ +Fixed an issue with the `backup-location create` command where the BSL Credential field would be set to an invalid empty SecretKeySelector when no credential details were provided. diff --git a/pkg/cmd/cli/backuplocation/create.go b/pkg/cmd/cli/backuplocation/create.go index a541d7589..d8403b842 100644 --- a/pkg/cmd/cli/backuplocation/create.go +++ b/pkg/cmd/cli/backuplocation/create.go @@ -1,5 +1,5 @@ /* -Copyright 2020 the Velero contributors. +Copyright the Velero contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -133,39 +133,22 @@ func (o *CreateOptions) Complete(args []string, f client.Factory) error { return nil } -func (o *CreateOptions) Run(c *cobra.Command, f client.Factory) error { - var backupSyncPeriod, validationFrequency *metav1.Duration - +func (o *CreateOptions) BuildBackupStorageLocation(namespace string, setBackupSyncPeriod, setValidationFrequency bool) (*velerov1api.BackupStorageLocation, error) { var caCertData []byte if o.CACertFile != "" { realPath, err := filepath.Abs(o.CACertFile) if err != nil { - return err + return nil, err } caCertData, err = ioutil.ReadFile(realPath) if err != nil { - return err + return nil, err } } - if c.Flags().Changed("backup-sync-period") { - backupSyncPeriod = &metav1.Duration{Duration: o.BackupSyncPeriod} - } - - if c.Flags().Changed("validation-frequency") { - validationFrequency = &metav1.Duration{Duration: o.ValidationFrequency} - } - - var secretName, secretKey string - for k, v := range o.Credential.Data() { - secretName = k - secretKey = v - break - } - backupStorageLocation := &velerov1api.BackupStorageLocation{ ObjectMeta: metav1.ObjectMeta{ - Namespace: f.Namespace(), + Namespace: namespace, Name: o.Name, Labels: o.Labels.Data(), }, @@ -178,15 +161,37 @@ func (o *CreateOptions) Run(c *cobra.Command, f client.Factory) error { CACert: caCertData, }, }, - Config: o.Config.Data(), - Credential: builder.ForSecretKeySelector(secretName, secretKey).Result(), - Default: o.DefaultBackupStorageLocation, - AccessMode: velerov1api.BackupStorageLocationAccessMode(o.AccessMode.String()), - BackupSyncPeriod: backupSyncPeriod, - ValidationFrequency: validationFrequency, + Config: o.Config.Data(), + Default: o.DefaultBackupStorageLocation, + AccessMode: velerov1api.BackupStorageLocationAccessMode(o.AccessMode.String()), }, } + if setBackupSyncPeriod { + backupStorageLocation.Spec.BackupSyncPeriod = &metav1.Duration{Duration: o.BackupSyncPeriod} + } + + if setValidationFrequency { + backupStorageLocation.Spec.ValidationFrequency = &metav1.Duration{Duration: o.ValidationFrequency} + } + + for secretName, secretKey := range o.Credential.Data() { + backupStorageLocation.Spec.Credential = builder.ForSecretKeySelector(secretName, secretKey).Result() + break + } + + return backupStorageLocation, nil +} + +func (o *CreateOptions) Run(c *cobra.Command, f client.Factory) error { + setBackupSyncPeriod := c.Flags().Changed("backup-sync-period") + setValidationFrequency := c.Flags().Changed("validation-frequency") + + backupStorageLocation, err := o.BuildBackupStorageLocation(f.Namespace(), setBackupSyncPeriod, setValidationFrequency) + if err != nil { + return err + } + if printed, err := output.PrintWithFormat(c, backupStorageLocation); printed || err != nil { return err } diff --git a/pkg/cmd/cli/backuplocation/create_test.go b/pkg/cmd/cli/backuplocation/create_test.go new file mode 100644 index 000000000..57977e7ea --- /dev/null +++ b/pkg/cmd/cli/backuplocation/create_test.go @@ -0,0 +1,78 @@ +/* +Copyright the Velero Contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package backuplocation + +import ( + "testing" + "time" + + "github.com/stretchr/testify/assert" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +func TestBuildBackupStorageLocationSetsNamespace(t *testing.T) { + o := NewCreateOptions() + + bsl, err := o.BuildBackupStorageLocation("velero-test-ns", false, false) + assert.NoError(t, err) + assert.Equal(t, "velero-test-ns", bsl.Namespace) +} + +func TestBuildBackupStorageLocationSetsSyncPeriod(t *testing.T) { + o := NewCreateOptions() + o.BackupSyncPeriod = 2 * time.Minute + + bsl, err := o.BuildBackupStorageLocation("velero-test-ns", false, false) + assert.NoError(t, err) + assert.Nil(t, bsl.Spec.BackupSyncPeriod) + + bsl, err = o.BuildBackupStorageLocation("velero-test-ns", true, false) + assert.NoError(t, err) + assert.Equal(t, &metav1.Duration{Duration: 2 * time.Minute}, bsl.Spec.BackupSyncPeriod) +} + +func TestBuildBackupStorageLocationSetsValidationFrequency(t *testing.T) { + o := NewCreateOptions() + o.ValidationFrequency = 2 * time.Minute + + bsl, err := o.BuildBackupStorageLocation("velero-test-ns", false, false) + assert.NoError(t, err) + assert.Nil(t, bsl.Spec.ValidationFrequency) + + bsl, err = o.BuildBackupStorageLocation("velero-test-ns", false, true) + assert.NoError(t, err) + assert.Equal(t, &metav1.Duration{Duration: 2 * time.Minute}, bsl.Spec.ValidationFrequency) +} + +func TestBuildBackupStorageLocationSetsCredential(t *testing.T) { + o := NewCreateOptions() + + bsl, err := o.BuildBackupStorageLocation("velero-test-ns", false, false) + assert.NoError(t, err) + assert.Nil(t, bsl.Spec.Credential) + + setErr := o.Credential.Set("my-secret=key-from-secret") + assert.NoError(t, setErr) + + bsl, err = o.BuildBackupStorageLocation("velero-test-ns", false, true) + assert.NoError(t, err) + assert.Equal(t, &v1.SecretKeySelector{ + LocalObjectReference: v1.LocalObjectReference{Name: "my-secret"}, + Key: "key-from-secret", + }, bsl.Spec.Credential) +} From 27f3a6d8d83964520fe57cf2c98696e4577c01c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Wed, 10 Nov 2021 09:13:30 +0800 Subject: [PATCH 041/136] Check the failed phases either when uploading the snapshot in E2E testing (#4162) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the snapshot uploading is failed, it should not be treat as completed and continue. This commit covers both the phases of in progress and failed when uploading snapshot with vSphere plugin Signed-off-by: Wenkai Yin(尹文开) --- test/e2e/velero_utils.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/test/e2e/velero_utils.go b/test/e2e/velero_utils.go index d60d2bb65..7e8a8bb6a 100644 --- a/test/e2e/velero_utils.go +++ b/test/e2e/velero_utils.go @@ -449,11 +449,12 @@ func waitForVSphereUploadCompletion(ctx context.Context, timeout time.Duration, // Canceled - the operation was canceled, the snapshot ID is not valid if len(comps) == 2 { phase := comps[1] - if phase == "New" || - phase == "InProgress" || - phase == "Snapshotted" || - phase == "Uploading" { + switch phase { + case "Uploaded": + case "New", "InProgress", "Snapshotted", "Uploading": complete = false + default: + return false, fmt.Errorf("unexpected snapshot phase: %s", phase) } } } From 983489073ff40d76560a0eb48bd0ef6e93a66287 Mon Sep 17 00:00:00 2001 From: Scott Seago Date: Tue, 9 Nov 2021 20:30:16 -0500 Subject: [PATCH 042/136] PV remapClaimRefNS was being skipped when there was no snapshot (#3708) Signed-off-by: Scott Seago --- changelogs/unreleased/3708-sseago | 1 + pkg/restore/restore.go | 6 ++ pkg/restore/restore_test.go | 113 +++++++++++++++++++++++++++++- 3 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/3708-sseago diff --git a/changelogs/unreleased/3708-sseago b/changelogs/unreleased/3708-sseago new file mode 100644 index 000000000..96c9f3cef --- /dev/null +++ b/changelogs/unreleased/3708-sseago @@ -0,0 +1 @@ +Handle namespace mapping for PVs without snapshots on restore diff --git a/pkg/restore/restore.go b/pkg/restore/restore.go index c874dd7c7..6e55a2a34 100644 --- a/pkg/restore/restore.go +++ b/pkg/restore/restore.go @@ -1102,6 +1102,12 @@ func (ctx *restoreContext) restoreItem(obj *unstructured.Unstructured, groupReso default: ctx.log.Infof("Restoring persistent volume as-is because it doesn't have a snapshot and its reclaim policy is not Delete.") + // Check to see if the claimRef.namespace field needs to be remapped, and do so if necessary. + _, err = remapClaimRefNS(ctx, obj) + if err != nil { + errs.Add(namespace, err) + return warnings, errs + } obj = resetVolumeBindingInfo(obj) // We call the pvRestorer here to clear out the PV's claimRef.UID, // so it can be re-claimed when its PVC is restored and gets a new UID. diff --git a/pkg/restore/restore_test.go b/pkg/restore/restore_test.go index 274397862..04fc2f5db 100644 --- a/pkg/restore/restore_test.go +++ b/pkg/restore/restore_test.go @@ -1811,6 +1811,8 @@ func TestRestorePersistentVolumes(t *testing.T) { volumeSnapshotLocations []*velerov1api.VolumeSnapshotLocation volumeSnapshotterGetter volumeSnapshotterGetter want []*test.APIResource + wantError bool + wantWarning bool }{ { name: "when a PV with a reclaim policy of delete has no snapshot and does not exist in-cluster, it does not get restored, and its PVC gets reset for dynamic provisioning", @@ -2191,6 +2193,95 @@ func TestRestorePersistentVolumes(t *testing.T) { ), }, }, + { + name: "when a PV without a snapshot is used by a PVC in a namespace that's being remapped, and the original PV exists in-cluster, the PV is not replaced and there is a restore warning", + restore: defaultRestore().NamespaceMappings("source-ns", "target-ns").Result(), + backup: defaultBackup().Result(), + tarball: test.NewTarWriter(t). + AddItems( + "persistentvolumes", + builder.ForPersistentVolume("source-pv"). + //ReclaimPolicy(corev1api.PersistentVolumeReclaimRetain). + AWSEBSVolumeID("source-volume"). + ClaimRef("source-ns", "pvc-1"). + Result(), + ). + AddItems( + "persistentvolumeclaims", + builder.ForPersistentVolumeClaim("source-ns", "pvc-1").VolumeName("source-pv").Result(), + ). + Done(), + apiResources: []*test.APIResource{ + test.PVs( + builder.ForPersistentVolume("source-pv"). + //ReclaimPolicy(corev1api.PersistentVolumeReclaimRetain). + AWSEBSVolumeID("source-volume"). + ClaimRef("source-ns", "pvc-1"). + Result(), + ), + test.PVCs(), + }, + want: []*test.APIResource{ + test.PVs( + builder.ForPersistentVolume("source-pv"). + AWSEBSVolumeID("source-volume"). + ClaimRef("source-ns", "pvc-1"). + Result(), + ), + test.PVCs( + builder.ForPersistentVolumeClaim("target-ns", "pvc-1"). + ObjectMeta( + builder.WithLabels("velero.io/backup-name", "backup-1", "velero.io/restore-name", "restore-1"), + ). + VolumeName("source-pv"). + Result(), + ), + }, + wantWarning: true, + }, + { + name: "when a PV without a snapshot is used by a PVC in a namespace that's being remapped, and the original PV does not exist in-cluster, the PV is not renamed", + restore: defaultRestore().NamespaceMappings("source-ns", "target-ns").Result(), + backup: defaultBackup().Result(), + tarball: test.NewTarWriter(t). + AddItems( + "persistentvolumes", + builder.ForPersistentVolume("source-pv"). + AWSEBSVolumeID("source-volume"). + ClaimRef("source-ns", "pvc-1"). + Result(), + ). + AddItems( + "persistentvolumeclaims", + builder.ForPersistentVolumeClaim("source-ns", "pvc-1").VolumeName("source-pv").Result(), + ). + Done(), + apiResources: []*test.APIResource{ + test.PVs(), + test.PVCs(), + }, + want: []*test.APIResource{ + test.PVs( + builder.ForPersistentVolume("source-pv"). + //ReclaimPolicy(corev1api.PersistentVolumeReclaimRetain). + ObjectMeta( + builder.WithLabels("velero.io/backup-name", "backup-1", "velero.io/restore-name", "restore-1"), + ). + // the namespace for this PV's claimRef should be the one that the PVC was remapped into. + ClaimRef("target-ns", "pvc-1"). + AWSEBSVolumeID("source-volume"). + Result(), + ), + test.PVCs( + builder.ForPersistentVolumeClaim("target-ns", "pvc-1"). + ObjectMeta( + builder.WithLabels("velero.io/backup-name", "backup-1", "velero.io/restore-name", "restore-1"), + ). + VolumeName("source-pv"). + Result(), + ), + }, + }, { name: "when a PV is renamed and the original PV does not exist in-cluster, the PV should be renamed", restore: defaultRestore().NamespaceMappings("source-ns", "target-ns").Result(), @@ -2423,7 +2514,16 @@ func TestRestorePersistentVolumes(t *testing.T) { tc.volumeSnapshotterGetter, ) - assertEmptyResults(t, warnings, errs) + if tc.wantWarning { + assertNonEmptyResults(t, "warning", warnings) + } else { + assertEmptyResults(t, warnings) + } + if tc.wantError { + assertNonEmptyResults(t, "error", errs) + } else { + assertEmptyResults(t, errs) + } assertAPIContents(t, h, wantIDs) assertRestoredItems(t, h, tc.want) }) @@ -2804,6 +2904,17 @@ func assertEmptyResults(t *testing.T, res ...Result) { } } +func assertNonEmptyResults(t *testing.T, typeMsg string, res ...Result) { + t.Helper() + total := 0 + for _, r := range res { + total += len(r.Cluster) + total += len(r.Namespaces) + total += len(r.Velero) + } + assert.Greater(t, total, 0, "Expected at least one "+typeMsg) +} + type harness struct { *test.APIServer From 4a1943f6c974739776a8bd1aa99afe68842b194b Mon Sep 17 00:00:00 2001 From: jxun Date: Mon, 15 Nov 2021 11:46:07 +0800 Subject: [PATCH 043/136] Fix: add init log option for velero controller-runtime manager. fix for issue #3737 add log option for velero controller-runtime manager to log return error in reconcile loop. Signed-off-by: Xun Jiang jxun@vmware.com Signed-off-by: jxun --- pkg/cmd/server/server.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/cmd/server/server.go b/pkg/cmd/server/server.go index 5ed3d9d0c..bbd0f346b 100644 --- a/pkg/cmd/server/server.go +++ b/pkg/cmd/server/server.go @@ -73,6 +73,7 @@ import ( ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/log/zap" "sigs.k8s.io/controller-runtime/pkg/manager" "github.com/vmware-tanzu/velero/internal/storage" @@ -302,6 +303,8 @@ func newServer(f client.Factory, config serverConfig, logger *logrus.Logger) (*s velerov1api.AddToScheme(scheme) corev1api.AddToScheme(scheme) + ctrl.SetLogger(zap.New()) + mgr, err := ctrl.NewManager(clientConfig, ctrl.Options{ Scheme: scheme, Namespace: f.Namespace(), From 130602d72341bbc0528e0e0e4469fb666cc507b6 Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Mon, 15 Nov 2021 20:20:27 +0800 Subject: [PATCH 044/136] Return the error if velero failed to detect S3 region for restic repo (#4343) The error should be returned explicitly, because when the default URL is used S3 will return a 301 and the response can't be handled by restic. Fixes #4178 Signed-off-by: Daniel Jiang --- changelogs/unreleased/4343-reasonerjt | 1 + pkg/restic/config.go | 5 ++--- pkg/restic/config_test.go | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 changelogs/unreleased/4343-reasonerjt diff --git a/changelogs/unreleased/4343-reasonerjt b/changelogs/unreleased/4343-reasonerjt new file mode 100644 index 000000000..1a8e548e6 --- /dev/null +++ b/changelogs/unreleased/4343-reasonerjt @@ -0,0 +1 @@ +Return the error if velero failed to detect S3 region for restic repo \ No newline at end of file diff --git a/pkg/restic/config.go b/pkg/restic/config.go index b5471fa37..4cde8336a 100644 --- a/pkg/restic/config.go +++ b/pkg/restic/config.go @@ -74,10 +74,9 @@ func getRepoPrefix(location *velerov1api.BackupStorageLocation) (string, error) region, err = getAWSBucketRegion(bucket) } if err != nil { - url = "s3.amazonaws.com" - } else { - url = fmt.Sprintf("s3-%s.amazonaws.com", region) + return "", errors.Wrapf(err, "failed to detect the region via bucket: %s", bucket) } + url = fmt.Sprintf("s3-%s.amazonaws.com", region) } return fmt.Sprintf("s3:%s/%s", url, path.Join(bucket, prefix)), nil diff --git a/pkg/restic/config_test.go b/pkg/restic/config_test.go index ad2413104..8418d6808 100644 --- a/pkg/restic/config_test.go +++ b/pkg/restic/config_test.go @@ -85,7 +85,8 @@ func TestGetRepoIdentifier(t *testing.T) { getAWSBucketRegion: func(string) (string, error) { return "", errors.New("no region found") }, - expected: "s3:s3.amazonaws.com/bucket/restic/repo-1", + expected: "", + expectedErr: "failed to detect the region via bucket: bucket: no region found", }, { name: "s3.s3-.amazonaws.com URL format is used if region can be determined for AWS BSL", From 7c4e03e9f9f682e714a030fa89b0d299e8aab97c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Mon, 15 Nov 2021 20:25:04 +0800 Subject: [PATCH 045/136] Ignore the `provided port is already allocated` error when restoring the `NodePort` service (#4336) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #2308 Signed-off-by: Wenkai Yin(尹文开) --- changelogs/unreleased/4336-ywk253100 | 1 + pkg/restore/restore.go | 34 +++++++++- pkg/restore/restore_test.go | 95 ++++++++++++++++++++++++++++ 3 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/4336-ywk253100 diff --git a/changelogs/unreleased/4336-ywk253100 b/changelogs/unreleased/4336-ywk253100 new file mode 100644 index 000000000..7efb628bb --- /dev/null +++ b/changelogs/unreleased/4336-ywk253100 @@ -0,0 +1 @@ +Ignore the `provided port is already allocated` error when restoring the `NodePort` service \ No newline at end of file diff --git a/pkg/restore/restore.go b/pkg/restore/restore.go index 6e55a2a34..846d71c78 100644 --- a/pkg/restore/restore.go +++ b/pkg/restore/restore.go @@ -1238,7 +1238,7 @@ func (ctx *restoreContext) restoreItem(obj *unstructured.Unstructured, groupReso ctx.log.Infof("Attempting to restore %s: %v", obj.GroupVersionKind().Kind, name) createdObj, restoreErr := resourceClient.Create(obj) - if apierrors.IsAlreadyExists(restoreErr) { + if isAlreadyExistsError(ctx, obj, restoreErr) { fromCluster, err := resourceClient.Get(name, metav1.GetOptions{}) if err != nil { ctx.log.Infof("Error retrieving cluster version of %s: %v", kube.NamespaceAndName(obj), err) @@ -1335,6 +1335,38 @@ func (ctx *restoreContext) restoreItem(obj *unstructured.Unstructured, groupReso return warnings, errs } +func isAlreadyExistsError(ctx *restoreContext, obj *unstructured.Unstructured, err error) bool { + if err == nil { + return false + } + if apierrors.IsAlreadyExists(err) { + return true + } + // the "invalid value" error rather than "already exists" error returns when restoring nodePort service + // that has nodePort preservation if the same nodePort service already exists. + // If this is the case, the function returns true to avoid reporting error. + // Refer to https://github.com/vmware-tanzu/velero/issues/2308 for more details + if obj.GetKind() != "Service" || !apierrors.IsInvalid(err) { + return false + } + statusErr, ok := err.(*apierrors.StatusError) + if !ok || statusErr.Status().Details == nil || len(statusErr.Status().Details.Causes) == 0 { + return false + } + // make sure all the causes are "port allocated" error + isAllocatedErr := true + for _, cause := range statusErr.Status().Details.Causes { + if !strings.Contains(cause.Message, "provided port is already allocated") { + isAllocatedErr = false + break + } + } + if isAllocatedErr { + ctx.log.Infof("ignore the provided port is already allocated error for service %s", kube.NamespaceAndName(obj)) + } + return isAllocatedErr +} + // shouldRenamePV returns a boolean indicating whether a persistent volume should // be given a new name before being restored, or an error if this cannot be determined. // A persistent volume will be given a new name if and only if (a) a PV with the diff --git a/pkg/restore/restore_test.go b/pkg/restore/restore_test.go index 04fc2f5db..35d72cfff 100644 --- a/pkg/restore/restore_test.go +++ b/pkg/restore/restore_test.go @@ -30,6 +30,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" corev1api "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" @@ -3021,3 +3022,97 @@ func Test_resetVolumeBindingInfo(t *testing.T) { }) } } + +func TestIsAlreadyExistsError(t *testing.T) { + tests := []struct { + name string + obj *unstructured.Unstructured + err error + expected bool + }{ + { + name: "The input error is IsAlreadyExists error", + err: apierrors.NewAlreadyExists(schema.GroupResource{}, ""), + expected: true, + }, + { + name: "The input obj isn't service", + obj: &unstructured.Unstructured{ + Object: map[string]interface{}{ + "kind": "Pod", + }, + }, + expected: false, + }, + { + name: "The input error isn't InvalidError", + obj: &unstructured.Unstructured{ + Object: map[string]interface{}{ + "kind": "Service", + }, + }, + err: apierrors.NewBadRequest(""), + expected: false, + }, + { + name: "The StatusError contains no causes", + obj: &unstructured.Unstructured{ + Object: map[string]interface{}{ + "kind": "Service", + }, + }, + err: &apierrors.StatusError{ + ErrStatus: metav1.Status{ + Reason: metav1.StatusReasonInvalid, + }, + }, + expected: false, + }, + { + name: "The causes contains not only port already allocated error", + obj: &unstructured.Unstructured{ + Object: map[string]interface{}{ + "kind": "Service", + }, + }, + err: &apierrors.StatusError{ + ErrStatus: metav1.Status{ + Reason: metav1.StatusReasonInvalid, + Details: &metav1.StatusDetails{ + Causes: []metav1.StatusCause{ + {Message: "provided port is already allocated"}, + {Message: "other error"}, + }, + }, + }, + }, + expected: false, + }, + { + name: "The causes contains only port already allocated error", + obj: &unstructured.Unstructured{ + Object: map[string]interface{}{ + "kind": "Service", + }, + }, + err: &apierrors.StatusError{ + ErrStatus: metav1.Status{ + Reason: metav1.StatusReasonInvalid, + Details: &metav1.StatusDetails{ + Causes: []metav1.StatusCause{ + {Message: "provided port is already allocated"}, + }, + }, + }, + }, + expected: true, + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + assert.Equal(t, test.expected, isAlreadyExistsError(&restoreContext{ + log: logrus.StandardLogger(), + }, test.obj, test.err)) + }) + } +} From 71d482360fe5080aa52ea3388163b85a812284ae Mon Sep 17 00:00:00 2001 From: Bruce Date: Tue, 16 Nov 2021 09:36:29 +0800 Subject: [PATCH 046/136] Use factory.Namespace() to replace hardcoded velero namespace (#4346) * Use factory.Namespace() to replace hardcoded velero namespace Signed-off-by: half-life666 * Add change log for pr 4346 Signed-off-by: half-life666 --- changelogs/unreleased/4346-half-life666 | 1 + pkg/restore/prioritize_group_version.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/4346-half-life666 diff --git a/changelogs/unreleased/4346-half-life666 b/changelogs/unreleased/4346-half-life666 new file mode 100644 index 000000000..09807f4b8 --- /dev/null +++ b/changelogs/unreleased/4346-half-life666 @@ -0,0 +1 @@ +Use factory.Namespace() to replace hardcoded velero namespace diff --git a/pkg/restore/prioritize_group_version.go b/pkg/restore/prioritize_group_version.go index a7a69e00a..e68b867d3 100644 --- a/pkg/restore/prioritize_group_version.go +++ b/pkg/restore/prioritize_group_version.go @@ -221,7 +221,7 @@ func userPriorityConfigMap() (*corev1.ConfigMap, error) { return nil, errors.Wrap(err, "getting Kube client") } - cm, err := kc.CoreV1().ConfigMaps("velero").Get( + cm, err := kc.CoreV1().ConfigMaps(fc.Namespace()).Get( context.Background(), "enableapigroupversions", metav1.GetOptions{}, From 5878a528435d8d7ef308b39fe1542d7c7d7d670b Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Thu, 11 Nov 2021 14:54:31 +0800 Subject: [PATCH 047/136] Read Availability zone from nodeAffinity requirements Velero to read the AZ info from `NodeAffinity` of a PV when it's taking the snapshot. Fixes #4332 Signed-off-by: Daniel Jiang --- changelogs/unreleased/4350-reasonerjt | 1 + pkg/backup/item_backupper.go | 35 +++++++++- pkg/backup/item_backupper_test.go | 82 ++++++++++++++++++++++++ pkg/builder/node_selector_builder.go | 64 ++++++++++++++++++ pkg/builder/persistent_volume_builder.go | 8 +++ 5 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/4350-reasonerjt create mode 100644 pkg/builder/node_selector_builder.go diff --git a/changelogs/unreleased/4350-reasonerjt b/changelogs/unreleased/4350-reasonerjt new file mode 100644 index 000000000..7fb91ec87 --- /dev/null +++ b/changelogs/unreleased/4350-reasonerjt @@ -0,0 +1 @@ +Read Availability zone from nodeAffinity requirements \ No newline at end of file diff --git a/pkg/backup/item_backupper.go b/pkg/backup/item_backupper.go index 4f5c7ca8b..72be1bd7f 100644 --- a/pkg/backup/item_backupper.go +++ b/pkg/backup/item_backupper.go @@ -33,6 +33,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" kubeerrs "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" "github.com/vmware-tanzu/velero/internal/hook" velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" @@ -395,7 +396,11 @@ func (ib *itemBackupper) volumeSnapshotter(snapshotLocation *velerov1api.VolumeS // on PVs const ( zoneLabelDeprecated = "failure-domain.beta.kubernetes.io/zone" - zoneLabel = "topology.kubernetes.io/zone" + // this is reused for nodeAffinity requirements + zoneLabel = "topology.kubernetes.io/zone" + + awsEbsCsiZoneKey = "topology.ebs.csi.aws.com/zone" + azureCsiZoneKey = "topology.disk.csi.azure.com/zone" ) // takePVSnapshot triggers a snapshot for the volume/disk underlying a PersistentVolume if the provided @@ -432,7 +437,14 @@ func (ib *itemBackupper) takePVSnapshot(obj runtime.Unstructured, log logrus.Fie log.Infof("label %q is not present on PersistentVolume, checking deprecated label...", zoneLabel) pvFailureDomainZone, labelFound = pv.Labels[zoneLabelDeprecated] if !labelFound { + var k string log.Infof("label %q is not present on PersistentVolume", zoneLabelDeprecated) + k, pvFailureDomainZone = zoneFromPVNodeAffinity(pv, awsEbsCsiZoneKey, azureCsiZoneKey, zoneLabel, zoneLabelDeprecated) + if pvFailureDomainZone != "" { + log.Infof("zone info from nodeAffinity requirements: %s, key: %s", pvFailureDomainZone, k) + } else { + log.Infof("zone info not available in nodeAffinity requirements") + } } } @@ -535,3 +547,24 @@ func resourceVersion(obj runtime.Unstructured) string { gvk := obj.GetObjectKind().GroupVersionKind() return gvk.Version } + +// zoneFromPVNodeAffinity iterates the node affinity requirement of a PV to +// get its availability zone, it returns the key merely for logging. +func zoneFromPVNodeAffinity(res *corev1api.PersistentVolume, topologyKeys ...string) (string, string) { + nodeAffinity := res.Spec.NodeAffinity + if nodeAffinity == nil { + return "", "" + } + keySet := sets.NewString(topologyKeys...) + for _, term := range nodeAffinity.Required.NodeSelectorTerms { + if term.MatchExpressions == nil { + continue + } + for _, exp := range term.MatchExpressions { + if keySet.Has(exp.Key) && exp.Operator == "In" && len(exp.Values) > 0 { + return exp.Key, exp.Values[0] + } + } + } + return "", "" +} diff --git a/pkg/backup/item_backupper_test.go b/pkg/backup/item_backupper_test.go index 192b0c585..580207a0f 100644 --- a/pkg/backup/item_backupper_test.go +++ b/pkg/backup/item_backupper_test.go @@ -20,6 +20,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + corev1api "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" @@ -45,3 +46,84 @@ func Test_resourceKey(t *testing.T) { }) } } + +func Test_zoneFromPVNodeAffinity(t *testing.T) { + keys := []string{ + awsEbsCsiZoneKey, + azureCsiZoneKey, + zoneLabel, + } + tests := []struct { + name string + pv *corev1api.PersistentVolume + wantKey string + wantValue string + }{ + { + name: "AWS CSI Volume", + pv: builder.ForPersistentVolume("awscsi").NodeAffinityRequired( + builder.ForNodeSelector( + *builder.NewNodeSelectorTermBuilder().WithMatchExpression("topology.ebs.csi.aws.com/zone", + "In", "us-east-2c").Result(), + ).Result(), + ).Result(), + wantKey: "topology.ebs.csi.aws.com/zone", + wantValue: "us-east-2c", + }, + { + name: "Azure CSI Volume", + pv: builder.ForPersistentVolume("azurecsi").NodeAffinityRequired( + builder.ForNodeSelector( + *builder.NewNodeSelectorTermBuilder().WithMatchExpression("topology.disk.csi.azure.com/zone", + "In", "us-central").Result(), + ).Result(), + ).Result(), + wantKey: "topology.disk.csi.azure.com/zone", + wantValue: "us-central", + }, + { + name: "AWS CSI Volume with multiple zone value, returns the first", + pv: builder.ForPersistentVolume("awscsi").NodeAffinityRequired( + builder.ForNodeSelector( + *builder.NewNodeSelectorTermBuilder().WithMatchExpression("topology.ebs.csi.aws.com/zone", + "In", "us-east-2c", "us-west").Result(), + ).Result(), + ).Result(), + wantKey: "topology.ebs.csi.aws.com/zone", + wantValue: "us-east-2c", + }, + { + name: "Volume with no matching key", + pv: builder.ForPersistentVolume("no-matching-pv").NodeAffinityRequired( + builder.ForNodeSelector( + *builder.NewNodeSelectorTermBuilder().WithMatchExpression("some-key", + "In", "us-west").Result(), + ).Result(), + ).Result(), + wantKey: "", + wantValue: "", + }, + { + name: "Volume with multiple valid keys, returns the first match", // it should never happen + pv: builder.ForPersistentVolume("multi-matching-pv").NodeAffinityRequired( + builder.ForNodeSelector( + *builder.NewNodeSelectorTermBuilder().WithMatchExpression("topology.disk.csi.azure.com/zone", + "In", "us-central").Result(), + *builder.NewNodeSelectorTermBuilder().WithMatchExpression("topology.ebs.csi.aws.com/zone", + "In", "us-east-2c", "us-west").Result(), + *builder.NewNodeSelectorTermBuilder().WithMatchExpression("topology.ebs.csi.aws.com/zone", + "In", "unknown").Result(), + ).Result(), + ).Result(), + wantKey: "topology.disk.csi.azure.com/zone", + wantValue: "us-central", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + k, v := zoneFromPVNodeAffinity(tt.pv, keys...) + assert.Equal(t, tt.wantKey, k) + assert.Equal(t, tt.wantValue, v) + }) + } +} diff --git a/pkg/builder/node_selector_builder.go b/pkg/builder/node_selector_builder.go new file mode 100644 index 000000000..11ce306b5 --- /dev/null +++ b/pkg/builder/node_selector_builder.go @@ -0,0 +1,64 @@ +package builder + +import corev1api "k8s.io/api/core/v1" + +// NodeSelectorBuilder builds NodeSelector objects +type NodeSelectorBuilder struct { + object *corev1api.NodeSelector +} + +// ForNodeSelector returns the NodeSelectorBuilder instance with given terms +func ForNodeSelector(term ...corev1api.NodeSelectorTerm) *NodeSelectorBuilder { + return &NodeSelectorBuilder{ + object: &corev1api.NodeSelector{ + NodeSelectorTerms: term, + }, + } +} + +// Result returns the built NodeSelector +func (b *NodeSelectorBuilder) Result() *corev1api.NodeSelector { + return b.object +} + +// NodeSelectorTermBuilder builds NodeSelectorTerm objects. +type NodeSelectorTermBuilder struct { + object *corev1api.NodeSelectorTerm +} + +// NewNodeSelectorTermBuilder initializes an instance of NodeSelectorTermBuilder +func NewNodeSelectorTermBuilder() *NodeSelectorTermBuilder { + return &NodeSelectorTermBuilder{ + object: &corev1api.NodeSelectorTerm{ + MatchExpressions: make([]corev1api.NodeSelectorRequirement, 0), + MatchFields: make([]corev1api.NodeSelectorRequirement, 0), + }, + } +} + +// WithMatchExpression appends the MatchExpression to the NodeSelectorTerm +func (ntb *NodeSelectorTermBuilder) WithMatchExpression(key string, op string, values ...string) *NodeSelectorTermBuilder { + req := corev1api.NodeSelectorRequirement{ + Key: key, + Operator: corev1api.NodeSelectorOperator(op), + Values: values, + } + ntb.object.MatchExpressions = append(ntb.object.MatchExpressions, req) + return ntb +} + +// WithMatchField appends the MatchField to the NodeSelectorTerm +func (ntb *NodeSelectorTermBuilder) WithMatchField(key string, op string, values ...string) *NodeSelectorTermBuilder { + req := corev1api.NodeSelectorRequirement{ + Key: key, + Operator: corev1api.NodeSelectorOperator(op), + Values: values, + } + ntb.object.MatchFields = append(ntb.object.MatchFields, req) + return ntb +} + +// Result returns the built NodeSelectorTerm +func (ntb *NodeSelectorTermBuilder) Result() *corev1api.NodeSelectorTerm { + return ntb.object +} diff --git a/pkg/builder/persistent_volume_builder.go b/pkg/builder/persistent_volume_builder.go index 648778bae..5fee88c19 100644 --- a/pkg/builder/persistent_volume_builder.go +++ b/pkg/builder/persistent_volume_builder.go @@ -94,3 +94,11 @@ func (b *PersistentVolumeBuilder) StorageClass(name string) *PersistentVolumeBui b.object.Spec.StorageClassName = name return b } + +// NodeAffinityRequired sets the PersistentVolume's NodeAffinity Requirement. +func (b *PersistentVolumeBuilder) NodeAffinityRequired(req *corev1api.NodeSelector) *PersistentVolumeBuilder { + b.object.Spec.NodeAffinity = &corev1api.VolumeNodeAffinity{ + Required: req, + } + return b +} From 7b8995003139479b0aa1620955fa793f67d53728 Mon Sep 17 00:00:00 2001 From: Xun Jiang Date: Tue, 16 Nov 2021 15:36:44 +0800 Subject: [PATCH 048/136] Fix: add init log option for velero controller-runtime manager. fix for issue #3737 add log option for velero controller-runtime manager to log return error in reconcile loop. Signed-off-by: Xun Jiang jxun@vmware.com Signed-off-by: Xun Jiang --- changelogs/unreleased/4341-jxun | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 changelogs/unreleased/4341-jxun diff --git a/changelogs/unreleased/4341-jxun b/changelogs/unreleased/4341-jxun new file mode 100644 index 000000000..3b346e565 --- /dev/null +++ b/changelogs/unreleased/4341-jxun @@ -0,0 +1,2 @@ +Add init log option for velero controller-runtime manager. +Fix https://github.com/vmware-tanzu/velero/issues/3737 \ No newline at end of file From 8eee35a62ead556149c7b1baa9d3cd9118d94f00 Mon Sep 17 00:00:00 2001 From: Xun Jiang Date: Tue, 16 Nov 2021 15:36:44 +0800 Subject: [PATCH 049/136] Fix: add init log option for velero controller-runtime manager. fix for issue #3737 add log option for velero controller-runtime manager to log return error in reconcile loop. Signed-off-by: Xun Jiang jxun@vmware.com Signed-off-by: Xun Jiang --- changelogs/unreleased/4341-jxun | 1 - 1 file changed, 1 deletion(-) diff --git a/changelogs/unreleased/4341-jxun b/changelogs/unreleased/4341-jxun index 3b346e565..ae3c58538 100644 --- a/changelogs/unreleased/4341-jxun +++ b/changelogs/unreleased/4341-jxun @@ -1,2 +1 @@ Add init log option for velero controller-runtime manager. -Fix https://github.com/vmware-tanzu/velero/issues/3737 \ No newline at end of file From 0a19b394e299cc724f4cfa4c21c11341e31151e6 Mon Sep 17 00:00:00 2001 From: Frangipani Gold <17328443+codegold79@users.noreply.github.com> Date: Tue, 16 Nov 2021 09:40:52 -0800 Subject: [PATCH 050/136] Design doc for delete associated backup and restic repos when BSL is deleted (#4297) * Update EnableAPIGroupVersion feature design doc as implemented Signed-off-by: F. Gold * Design doc for issue 2082 to delete associated resources when deleting BSLs Signed-off-by: F. Gold * Changes per @dsu-igeek review comments Signed-off-by: F. Gold --- ...-bsl-delete-associated-resources_design.md | 40 +++++++++++++++++++ ...ore-with-EnableAPIGroupVersions-feature.md | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 design/2082-bsl-delete-associated-resources_design.md rename design/{ => Implemented}/restore-with-EnableAPIGroupVersions-feature.md (99%) diff --git a/design/2082-bsl-delete-associated-resources_design.md b/design/2082-bsl-delete-associated-resources_design.md new file mode 100644 index 000000000..da5ac0bf0 --- /dev/null +++ b/design/2082-bsl-delete-associated-resources_design.md @@ -0,0 +1,40 @@ +# Delete Backup and Restic Repo Resources when BSL is Deleted + +## Abstract + +Issue #2082 requested that with the command `velero backup-location delete ` (implemented in Velero 1.6 with #3073), the following will be deleted: + +- associated Velero backups (to be clear, these are custom Kubernetes resources called "backups" that are stored in the API server) +- associated Restic repositories (custom Kubernetes resources called "resticrepositories") + +This design doc explains how the request will be implemented. + +## Background + +When a BSL resource is deleted from its Velero namespace, the associated custom Kubernetes resources, backups and Restic repositories, can no longer be used. +It makes sense to clean those resources up when a BSL is deleted. + +## Goals + +Update the `velero backup-location delete ` command to delete associated backup and Restic repository resources in the same Velero namespace. + +## Non Goals + +[It was suggested](https://github.com/vmware-tanzu/velero/issues/2082#issuecomment-827951311) to fix bug #2697 alongside this issue. +However, I think that should be fixed separately because although it is similar (restore objects are not being deleted), it is also quite different. +One is adding a command feature update (this issue) and the other is a bug fix and each affect different parts of the code base. + +## High-Level Design + +Update the `velero backup-location delete ` command to do the following: + +- find in the same Velero namespace from which the BSL was deleted the associated backup resources and Restic repositories, called "backups.velero.io" and "resticrepositories.velero.io" respectively +- delete the resources found + +The above logic will be added to [where BSLs are deleted](https://github.com/vmware-tanzu/velero/blob/main/pkg/cmd/cli/backuplocation/delete.go). + +## Alternative Considered + +I had considered deleting the backup files (the ones in json format and tarballs) in the BSL itself. +However, a standard use case is to back up a cluster and then restore into a new cluster. +Deleting the backup storage location in either location is not expected to remove all of the backups in the backup storage location and should not be done. diff --git a/design/restore-with-EnableAPIGroupVersions-feature.md b/design/Implemented/restore-with-EnableAPIGroupVersions-feature.md similarity index 99% rename from design/restore-with-EnableAPIGroupVersions-feature.md rename to design/Implemented/restore-with-EnableAPIGroupVersions-feature.md index eea929dfd..c5f9e1c15 100644 --- a/design/restore-with-EnableAPIGroupVersions-feature.md +++ b/design/Implemented/restore-with-EnableAPIGroupVersions-feature.md @@ -1,6 +1,6 @@ # Restore API Group Version by Priority Level When EnableAPIGroupVersions Feature is Set -Status: Draft +Status: Accepted ## Abstract From 5150ce489112926d9f25575dee2c7133e6038ddf Mon Sep 17 00:00:00 2001 From: "David L. Smith-Uchida" Date: Tue, 16 Nov 2021 13:13:31 -0800 Subject: [PATCH 051/136] ItemSnapshotter plugin APIs. Addresses #3753 (#4077) Added ItemSnapshotter.proto Added item_snapshotter Go interface Added framework components for item_snapshotter Updated plugins doc with ItemSnapshotter info Added SnapshotPhase to item_snapshotter.go ProgressOutputOutput now includes a phase as well as an error string for problems that occured Signed-off-by: Dave Smith-Uchida --- changelogs/unreleased/4077-dsmithuchida | 2 + pkg/plugin/clientmgmt/client_builder.go | 1 + pkg/plugin/clientmgmt/client_builder_test.go | 1 + pkg/plugin/clientmgmt/manager.go | 39 + .../restartable_item_snapshotter.go | 131 +++ .../restartable_item_snapshotter_test.go | 233 +++++ pkg/plugin/framework/item_snapshotter.go | 44 + .../framework/item_snapshotter_client.go | 240 +++++ .../framework/item_snapshotter_server.go | 311 +++++++ pkg/plugin/framework/plugin_kinds.go | 4 + pkg/plugin/framework/plugin_types_test.go | 1 + pkg/plugin/framework/util.go | 58 ++ pkg/plugin/generated/BackupItemAction.pb.go | 13 + pkg/plugin/generated/ItemSnapshotter.pb.go | 819 ++++++++++++++++++ pkg/plugin/generated/ObjectStore.pb.go | 30 +- pkg/plugin/generated/PluginLister.pb.go | 8 +- pkg/plugin/generated/RestoreItemAction.pb.go | 12 +- pkg/plugin/generated/Shared.pb.go | 14 +- pkg/plugin/generated/VolumeSnapshotter.pb.go | 28 +- pkg/plugin/mocks/manager.go | 46 + pkg/plugin/proto/ItemSnapshotter.proto | 94 ++ .../item_snapshotter/v1/item_snapshotter.go | 197 +++++ .../v1/mocks/item_snapshotter.go | 157 ++++ site/content/docs/main/custom-plugins.md | 6 +- 24 files changed, 2442 insertions(+), 47 deletions(-) create mode 100644 changelogs/unreleased/4077-dsmithuchida create mode 100644 pkg/plugin/clientmgmt/restartable_item_snapshotter.go create mode 100644 pkg/plugin/clientmgmt/restartable_item_snapshotter_test.go create mode 100644 pkg/plugin/framework/item_snapshotter.go create mode 100644 pkg/plugin/framework/item_snapshotter_client.go create mode 100644 pkg/plugin/framework/item_snapshotter_server.go create mode 100644 pkg/plugin/framework/util.go create mode 100644 pkg/plugin/generated/ItemSnapshotter.pb.go create mode 100644 pkg/plugin/proto/ItemSnapshotter.proto create mode 100644 pkg/plugin/velero/item_snapshotter/v1/item_snapshotter.go create mode 100644 pkg/plugin/velero/item_snapshotter/v1/mocks/item_snapshotter.go diff --git a/changelogs/unreleased/4077-dsmithuchida b/changelogs/unreleased/4077-dsmithuchida new file mode 100644 index 000000000..3c15e4da3 --- /dev/null +++ b/changelogs/unreleased/4077-dsmithuchida @@ -0,0 +1,2 @@ +Added ItemSnapshotter plugin definition and plugin framework - addresses #3533. +Part of the Upload Progress enhancement (#3533) diff --git a/pkg/plugin/clientmgmt/client_builder.go b/pkg/plugin/clientmgmt/client_builder.go index 60d278727..76e3b1985 100644 --- a/pkg/plugin/clientmgmt/client_builder.go +++ b/pkg/plugin/clientmgmt/client_builder.go @@ -73,6 +73,7 @@ func (b *clientBuilder) clientConfig() *hcplugin.ClientConfig { string(framework.PluginKindPluginLister): &framework.PluginListerPlugin{}, string(framework.PluginKindRestoreItemAction): framework.NewRestoreItemActionPlugin(framework.ClientLogger(b.clientLogger)), string(framework.PluginKindDeleteItemAction): framework.NewDeleteItemActionPlugin(framework.ClientLogger(b.clientLogger)), + string(framework.PluginKindItemSnapshotter): framework.NewItemSnapshotterPlugin(framework.ClientLogger(b.clientLogger)), }, Logger: b.pluginLogger, Cmd: exec.Command(b.commandName, b.commandArgs...), diff --git a/pkg/plugin/clientmgmt/client_builder_test.go b/pkg/plugin/clientmgmt/client_builder_test.go index e7fff7bef..e922c3d00 100644 --- a/pkg/plugin/clientmgmt/client_builder_test.go +++ b/pkg/plugin/clientmgmt/client_builder_test.go @@ -66,6 +66,7 @@ func TestClientConfig(t *testing.T) { string(framework.PluginKindPluginLister): &framework.PluginListerPlugin{}, string(framework.PluginKindRestoreItemAction): framework.NewRestoreItemActionPlugin(framework.ClientLogger(logger)), string(framework.PluginKindDeleteItemAction): framework.NewDeleteItemActionPlugin(framework.ClientLogger(logger)), + string(framework.PluginKindItemSnapshotter): framework.NewItemSnapshotterPlugin(framework.ClientLogger(logger)), }, Logger: cb.pluginLogger, Cmd: exec.Command(cb.commandName, cb.commandArgs...), diff --git a/pkg/plugin/clientmgmt/manager.go b/pkg/plugin/clientmgmt/manager.go index 411b3b0bd..b1a952ac5 100644 --- a/pkg/plugin/clientmgmt/manager.go +++ b/pkg/plugin/clientmgmt/manager.go @@ -20,6 +20,8 @@ import ( "strings" "sync" + v1 "github.com/vmware-tanzu/velero/pkg/plugin/velero/item_snapshotter/v1" + "github.com/sirupsen/logrus" "github.com/vmware-tanzu/velero/pkg/plugin/framework" @@ -52,6 +54,12 @@ type Manager interface { // GetDeleteItemAction returns the delete item action plugin for name. GetDeleteItemAction(name string) (velero.DeleteItemAction, error) + // GetItemSnapshotter returns the item snapshotter plugin for name + GetItemSnapshotter(name string) (v1.ItemSnapshotter, error) + + // GetItemSnapshotters returns all item snapshotter plugins + GetItemSnapshotters() ([]v1.ItemSnapshotter, error) + // CleanupClients terminates all of the Manager's running plugin processes. CleanupClients() } @@ -256,6 +264,37 @@ func (m *manager) GetDeleteItemAction(name string) (velero.DeleteItemAction, err return r, nil } +func (m *manager) GetItemSnapshotter(name string) (v1.ItemSnapshotter, error) { + name = sanitizeName(name) + + restartableProcess, err := m.getRestartableProcess(framework.PluginKindItemSnapshotter, name) + if err != nil { + return nil, err + } + + r := newRestartableItemSnapshotter(name, restartableProcess) + return r, nil +} + +func (m *manager) GetItemSnapshotters() ([]v1.ItemSnapshotter, error) { + list := m.registry.List(framework.PluginKindItemSnapshotter) + + actions := make([]v1.ItemSnapshotter, 0, len(list)) + + for i := range list { + id := list[i] + + r, err := m.GetItemSnapshotter(id.Name) + if err != nil { + return nil, err + } + + actions = append(actions, r) + } + + return actions, nil +} + // sanitizeName adds "velero.io" to legacy plugins that weren't namespaced. func sanitizeName(name string) string { // Backwards compatibility with non-namespaced Velero plugins, following principle of least surprise diff --git a/pkg/plugin/clientmgmt/restartable_item_snapshotter.go b/pkg/plugin/clientmgmt/restartable_item_snapshotter.go new file mode 100644 index 000000000..e211bcf28 --- /dev/null +++ b/pkg/plugin/clientmgmt/restartable_item_snapshotter.go @@ -0,0 +1,131 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package clientmgmt + +import ( + "context" + + "github.com/pkg/errors" + + isv1 "github.com/vmware-tanzu/velero/pkg/plugin/velero/item_snapshotter/v1" + + "github.com/vmware-tanzu/velero/pkg/plugin/framework" + "github.com/vmware-tanzu/velero/pkg/plugin/velero" +) + +type restartableItemSnapshotter struct { + key kindAndName + sharedPluginProcess RestartableProcess +} + +// newRestartableItemSnapshotter returns a new newRestartableItemSnapshotter. +func newRestartableItemSnapshotter(name string, sharedPluginProcess RestartableProcess) *restartableItemSnapshotter { + r := &restartableItemSnapshotter{ + key: kindAndName{kind: framework.PluginKindItemSnapshotter, name: name}, + sharedPluginProcess: sharedPluginProcess, + } + return r +} + +// getItemSnapshotter returns the item snapshotter for this restartableItemSnapshotter. It does *not* restart the +// plugin process. +func (r *restartableItemSnapshotter) getItemSnapshotter() (isv1.ItemSnapshotter, error) { + plugin, err := r.sharedPluginProcess.getByKindAndName(r.key) + if err != nil { + return nil, err + } + + itemSnapshotter, ok := plugin.(isv1.ItemSnapshotter) + if !ok { + return nil, errors.Errorf("%T is not an ItemSnapshotter!", plugin) + } + + return itemSnapshotter, nil +} + +// getDelegate restarts the plugin process (if needed) and returns the item snapshotter for this restartableItemSnapshotter. +func (r *restartableItemSnapshotter) getDelegate() (isv1.ItemSnapshotter, error) { + if err := r.sharedPluginProcess.resetIfNeeded(); err != nil { + return nil, err + } + + return r.getItemSnapshotter() +} + +func (r *restartableItemSnapshotter) Init(config map[string]string) error { + delegate, err := r.getDelegate() + if err != nil { + return err + } + + return delegate.Init(config) +} + +// AppliesTo restarts the plugin's process if needed, then delegates the call. +func (r *restartableItemSnapshotter) AppliesTo() (velero.ResourceSelector, error) { + delegate, err := r.getDelegate() + if err != nil { + return velero.ResourceSelector{}, err + } + + return delegate.AppliesTo() +} + +func (r *restartableItemSnapshotter) AlsoHandles(input *isv1.AlsoHandlesInput) ([]velero.ResourceIdentifier, error) { + delegate, err := r.getDelegate() + if err != nil { + return nil, err + } + + return delegate.AlsoHandles(input) +} + +func (r *restartableItemSnapshotter) SnapshotItem(ctx context.Context, input *isv1.SnapshotItemInput) (*isv1.SnapshotItemOutput, error) { + delegate, err := r.getDelegate() + if err != nil { + return nil, err + } + + return delegate.SnapshotItem(ctx, input) +} + +func (r *restartableItemSnapshotter) Progress(input *isv1.ProgressInput) (*isv1.ProgressOutput, error) { + delegate, err := r.getDelegate() + if err != nil { + return nil, err + } + + return delegate.Progress(input) +} + +func (r *restartableItemSnapshotter) DeleteSnapshot(ctx context.Context, input *isv1.DeleteSnapshotInput) error { + delegate, err := r.getDelegate() + if err != nil { + return err + } + + return delegate.DeleteSnapshot(ctx, input) +} + +func (r *restartableItemSnapshotter) CreateItemFromSnapshot(ctx context.Context, input *isv1.CreateItemInput) (*isv1.CreateItemOutput, error) { + delegate, err := r.getDelegate() + if err != nil { + return nil, err + } + + return delegate.CreateItemFromSnapshot(ctx, input) +} diff --git a/pkg/plugin/clientmgmt/restartable_item_snapshotter_test.go b/pkg/plugin/clientmgmt/restartable_item_snapshotter_test.go new file mode 100644 index 000000000..30b2aab43 --- /dev/null +++ b/pkg/plugin/clientmgmt/restartable_item_snapshotter_test.go @@ -0,0 +1,233 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package clientmgmt + +import ( + "context" + "testing" + "time" + + isv1 "github.com/vmware-tanzu/velero/pkg/plugin/velero/item_snapshotter/v1" + + "github.com/pkg/errors" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" + "github.com/vmware-tanzu/velero/pkg/plugin/velero/item_snapshotter/v1/mocks" + + "github.com/vmware-tanzu/velero/pkg/plugin/framework" + "github.com/vmware-tanzu/velero/pkg/plugin/velero" +) + +func TestRestartableGetItemSnapshotter(t *testing.T) { + tests := []struct { + name string + plugin interface{} + getError error + expectedError string + }{ + { + name: "error getting by kind and name", + getError: errors.Errorf("get error"), + expectedError: "get error", + }, + { + name: "wrong type", + plugin: 3, + expectedError: "int is not an ItemSnapshotter!", + }, + { + name: "happy path", + plugin: new(mocks.ItemSnapshotter), + }, + } + + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + p := new(mockRestartableProcess) + defer p.AssertExpectations(t) + + name := "pvc" + key := kindAndName{kind: framework.PluginKindItemSnapshotter, name: name} + p.On("getByKindAndName", key).Return(tc.plugin, tc.getError) + + r := newRestartableItemSnapshotter(name, p) + a, err := r.getItemSnapshotter() + if tc.expectedError != "" { + assert.EqualError(t, err, tc.expectedError) + return + } + require.NoError(t, err) + + assert.Equal(t, tc.plugin, a) + }) + } +} + +func TestRestartableItemSnapshotterGetDelegate(t *testing.T) { + p := new(mockRestartableProcess) + defer p.AssertExpectations(t) + + // Reset error + p.On("resetIfNeeded").Return(errors.Errorf("reset error")).Once() + name := "pvc" + r := newRestartableItemSnapshotter(name, p) + a, err := r.getDelegate() + assert.Nil(t, a) + assert.EqualError(t, err, "reset error") + + // Happy path + p.On("resetIfNeeded").Return(nil) + expected := new(mocks.ItemSnapshotter) + key := kindAndName{kind: framework.PluginKindItemSnapshotter, name: name} + p.On("getByKindAndName", key).Return(expected, nil) + + a, err = r.getDelegate() + assert.NoError(t, err) + assert.Equal(t, expected, a) +} + +func TestRestartableItemSnasphotterDelegatedFunctions(t *testing.T) { + b := new(v1.Backup) + + pv := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "color": "blue", + }, + } + + sii := &isv1.SnapshotItemInput{ + Item: pv, + Params: nil, + Backup: b, + } + + ctx := context.Background() + + pvToReturn := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "color": "green", + }, + } + + additionalItems := []velero.ResourceIdentifier{ + { + GroupResource: schema.GroupResource{Group: "velero.io", Resource: "backups"}, + }, + } + + sio := &isv1.SnapshotItemOutput{ + UpdatedItem: pvToReturn, + SnapshotID: "", + SnapshotMetadata: nil, + AdditionalItems: additionalItems, + HandledItems: nil, + } + + cii := &isv1.CreateItemInput{ + SnapshottedItem: nil, + SnapshotID: "", + ItemFromBackup: nil, + SnapshotMetadata: nil, + Params: nil, + Restore: nil, + } + + cio := &isv1.CreateItemOutput{ + UpdatedItem: nil, + AdditionalItems: nil, + SkipRestore: false, + } + + pi := &isv1.ProgressInput{ + ItemID: velero.ResourceIdentifier{}, + SnapshotID: "", + Backup: nil, + } + po := &isv1.ProgressOutput{ + Phase: isv1.SnapshotPhaseInProgress, + Err: "", + ItemsCompleted: 0, + ItemsToComplete: 0, + Started: time.Time{}, + Updated: time.Time{}, + } + dsi := &isv1.DeleteSnapshotInput{ + SnapshotID: "", + ItemFromBackup: nil, + SnapshotMetadata: nil, + Params: nil, + } + runRestartableDelegateTests( + t, + framework.PluginKindItemSnapshotter, + func(key kindAndName, p RestartableProcess) interface{} { + return &restartableItemSnapshotter{ + key: key, + sharedPluginProcess: p, + } + }, + func() mockable { + return new(mocks.ItemSnapshotter) + }, + restartableDelegateTest{ + function: "Init", + inputs: []interface{}{map[string]string{}}, + expectedErrorOutputs: []interface{}{errors.Errorf("reset error")}, + expectedDelegateOutputs: []interface{}{errors.Errorf("delegate error")}, + }, + restartableDelegateTest{ + function: "AppliesTo", + inputs: []interface{}{}, + expectedErrorOutputs: []interface{}{velero.ResourceSelector{}, errors.Errorf("reset error")}, + expectedDelegateOutputs: []interface{}{velero.ResourceSelector{IncludedNamespaces: []string{"a"}}, errors.Errorf("delegate error")}, + }, + restartableDelegateTest{ + function: "AlsoHandles", + inputs: []interface{}{&isv1.AlsoHandlesInput{}}, + expectedErrorOutputs: []interface{}{[]velero.ResourceIdentifier([]velero.ResourceIdentifier(nil)), errors.Errorf("reset error")}, + expectedDelegateOutputs: []interface{}{[]velero.ResourceIdentifier([]velero.ResourceIdentifier(nil)), errors.Errorf("delegate error")}, + }, + restartableDelegateTest{ + function: "SnapshotItem", + inputs: []interface{}{ctx, sii}, + expectedErrorOutputs: []interface{}{nil, errors.Errorf("reset error")}, + expectedDelegateOutputs: []interface{}{sio, errors.Errorf("delegate error")}, + }, + restartableDelegateTest{ + function: "CreateItemFromSnapshot", + inputs: []interface{}{ctx, cii}, + expectedErrorOutputs: []interface{}{nil, errors.Errorf("reset error")}, + expectedDelegateOutputs: []interface{}{cio, errors.Errorf("delegate error")}, + }, + restartableDelegateTest{ + function: "Progress", + inputs: []interface{}{pi}, + expectedErrorOutputs: []interface{}{nil, errors.Errorf("reset error")}, + expectedDelegateOutputs: []interface{}{po, errors.Errorf("delegate error")}, + }, + restartableDelegateTest{ + function: "DeleteSnapshot", + inputs: []interface{}{ctx, dsi}, + expectedErrorOutputs: []interface{}{errors.Errorf("reset error")}, + expectedDelegateOutputs: []interface{}{errors.Errorf("delegate error")}, + }, + ) +} diff --git a/pkg/plugin/framework/item_snapshotter.go b/pkg/plugin/framework/item_snapshotter.go new file mode 100644 index 000000000..6e6f91439 --- /dev/null +++ b/pkg/plugin/framework/item_snapshotter.go @@ -0,0 +1,44 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package framework + +import ( + plugin "github.com/hashicorp/go-plugin" + "golang.org/x/net/context" + "google.golang.org/grpc" + + proto "github.com/vmware-tanzu/velero/pkg/plugin/generated" +) + +// ItemSnapshotterPlugin is an implementation of go-plugin's Plugin +// interface with support for gRPC for the ItemSnapshotter +// interface. +type ItemSnapshotterPlugin struct { + plugin.NetRPCUnsupportedPlugin + *pluginBase +} + +// GRPCClient returns a clientDispenser for ItemSnapshotter gRPC clients. +func (p *ItemSnapshotterPlugin) GRPCClient(_ context.Context, _ *plugin.GRPCBroker, clientConn *grpc.ClientConn) (interface{}, error) { + return newClientDispenser(p.clientLogger, clientConn, newItemSnapshotterGRPCClient), nil +} + +// GRPCServer registers an ItemSnapshotter gRPC server. +func (p *ItemSnapshotterPlugin) GRPCServer(_ *plugin.GRPCBroker, server *grpc.Server) error { + proto.RegisterItemSnapshotterServer(server, &ItemSnapshotterGRPCServer{mux: p.serverMux}) + return nil +} diff --git a/pkg/plugin/framework/item_snapshotter_client.go b/pkg/plugin/framework/item_snapshotter_client.go new file mode 100644 index 000000000..dd341b966 --- /dev/null +++ b/pkg/plugin/framework/item_snapshotter_client.go @@ -0,0 +1,240 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package framework + +import ( + "context" + "encoding/json" + "time" + + isv1 "github.com/vmware-tanzu/velero/pkg/plugin/velero/item_snapshotter/v1" + + "github.com/pkg/errors" + "google.golang.org/grpc" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + + proto "github.com/vmware-tanzu/velero/pkg/plugin/generated" + "github.com/vmware-tanzu/velero/pkg/plugin/velero" +) + +// NewItemSnapshotterPlugin constructs a ItemSnapshotterPlugin. +func NewItemSnapshotterPlugin(options ...PluginOption) *ItemSnapshotterPlugin { + return &ItemSnapshotterPlugin{ + pluginBase: newPluginBase(options...), + } +} + +func newItemSnapshotterGRPCClient(base *clientBase, clientConn *grpc.ClientConn) interface{} { + return &ItemSnapshotterGRPCClient{ + clientBase: base, + grpcClient: proto.NewItemSnapshotterClient(clientConn), + } +} + +// ItemSnapshotterGRPCClient implements the ItemSnapshotter interface and uses a +// gRPC client to make calls to the plugin server. +type ItemSnapshotterGRPCClient struct { + *clientBase + grpcClient proto.ItemSnapshotterClient +} + +func (recv ItemSnapshotterGRPCClient) Init(config map[string]string) error { + req := &proto.ItemSnapshotterInitRequest{ + Plugin: recv.plugin, + Config: config, + } + + _, err := recv.grpcClient.Init(context.Background(), req) + return err +} + +func (recv ItemSnapshotterGRPCClient) AppliesTo() (velero.ResourceSelector, error) { + req := &proto.ItemSnapshotterAppliesToRequest{ + Plugin: recv.plugin, + } + + res, err := recv.grpcClient.AppliesTo(context.Background(), req) + if err != nil { + return velero.ResourceSelector{}, fromGRPCError(err) + } + + if res.ResourceSelector == nil { + return velero.ResourceSelector{}, nil + } + + return velero.ResourceSelector{ + IncludedNamespaces: res.ResourceSelector.IncludedNamespaces, + ExcludedNamespaces: res.ResourceSelector.ExcludedNamespaces, + IncludedResources: res.ResourceSelector.IncludedResources, + ExcludedResources: res.ResourceSelector.ExcludedResources, + LabelSelector: res.ResourceSelector.Selector, + }, nil +} + +func (recv ItemSnapshotterGRPCClient) AlsoHandles(input *isv1.AlsoHandlesInput) ([]velero.ResourceIdentifier, error) { + itemJSON, err := json.Marshal(input.Item.UnstructuredContent()) + if err != nil { + return nil, errors.WithStack(err) + } + + backupJSON, err := json.Marshal(input.Backup) + if err != nil { + return nil, errors.WithStack(err) + } + req := &proto.AlsoHandlesRequest{ + Plugin: recv.plugin, + Item: itemJSON, + Backup: backupJSON, + } + res, err := recv.grpcClient.AlsoHandles(context.Background(), req) + if err != nil { + return nil, errors.WithStack(err) + } + + handledItems := unpackResourceIdentifiers(res.HandledItems) + + return handledItems, nil +} + +func (recv ItemSnapshotterGRPCClient) SnapshotItem(ctx context.Context, input *isv1.SnapshotItemInput) (*isv1.SnapshotItemOutput, error) { + itemJSON, err := json.Marshal(input.Item.UnstructuredContent()) + if err != nil { + return nil, errors.WithStack(err) + } + + backupJSON, err := json.Marshal(input.Backup) + if err != nil { + return nil, errors.WithStack(err) + } + req := &proto.SnapshotItemRequest{ + Plugin: recv.plugin, + Item: itemJSON, + Backup: backupJSON, + } + res, err := recv.grpcClient.SnapshotItem(ctx, req) + if err != nil { + return nil, errors.WithStack(err) + } + var updatedItem unstructured.Unstructured + if err := json.Unmarshal(res.Item, &updatedItem); err != nil { + return nil, errors.WithStack(err) + } + + additionalItems := unpackResourceIdentifiers(res.AdditionalItems) + handledItems := unpackResourceIdentifiers(res.HandledItems) + + sio := isv1.SnapshotItemOutput{ + UpdatedItem: &updatedItem, + SnapshotID: res.SnapshotID, + SnapshotMetadata: res.SnapshotMetadata, + AdditionalItems: additionalItems, + HandledItems: handledItems, + } + return &sio, nil +} + +func (recv ItemSnapshotterGRPCClient) Progress(input *isv1.ProgressInput) (*isv1.ProgressOutput, error) { + backupJSON, err := json.Marshal(input.Backup) + if err != nil { + return nil, errors.WithStack(err) + } + req := &proto.ProgressRequest{ + Plugin: recv.plugin, + ItemID: resourceIdentifierToProto(input.ItemID), + SnapshotID: input.SnapshotID, + Backup: backupJSON, + } + + res, err := recv.grpcClient.Progress(context.Background(), req) + + if err != nil { + return nil, errors.WithStack(err) + } + // Validate phase + + phase, err := isv1.SnapshotPhaseFromString(res.Phase) + if err != nil { + return nil, errors.WithStack(err) + } + + up := isv1.ProgressOutput{ + Phase: phase, + Err: res.Err, + ItemsCompleted: res.ItemsCompleted, + ItemsToComplete: res.ItemsToComplete, + Started: time.Unix(res.Started, res.StartedNano), + Updated: time.Unix(res.Updated, res.UpdatedNano), + } + return &up, nil +} + +func (recv ItemSnapshotterGRPCClient) DeleteSnapshot(ctx context.Context, input *isv1.DeleteSnapshotInput) error { + req := &proto.DeleteItemSnapshotRequest{ + Plugin: recv.plugin, + Params: input.Params, + SnapshotID: input.SnapshotID, + } + _, err := recv.grpcClient.DeleteSnapshot(ctx, req) // Returns Empty as first arg so just ignore + + if err != nil { + return errors.WithStack(err) + } + return nil +} + +func (recv ItemSnapshotterGRPCClient) CreateItemFromSnapshot(ctx context.Context, input *isv1.CreateItemInput) (*isv1.CreateItemOutput, error) { + itemJSON, err := json.Marshal(input.SnapshottedItem.UnstructuredContent()) + if err != nil { + return nil, errors.WithStack(err) + } + itemFromBackupJSON, err := json.Marshal(input.ItemFromBackup.UnstructuredContent()) + if err != nil { + return nil, errors.WithStack(err) + } + restoreJSON, err := json.Marshal(input.Restore) + if err != nil { + return nil, errors.WithStack(err) + } + req := &proto.CreateItemFromSnapshotRequest{ + Plugin: recv.plugin, + Item: itemJSON, + SnapshotID: input.SnapshotID, + ItemFromBackup: itemFromBackupJSON, + SnapshotMetadata: input.SnapshotMetadata, + Params: input.Params, + Restore: restoreJSON, + } + + res, err := recv.grpcClient.CreateItemFromSnapshot(ctx, req) + if err != nil { + return nil, errors.WithStack(err) + } + + var updatedItem unstructured.Unstructured + if err := json.Unmarshal(res.Item, &updatedItem); err != nil { + return nil, errors.WithStack(err) + } + + additionalItems := unpackResourceIdentifiers(res.AdditionalItems) + + cio := isv1.CreateItemOutput{ + UpdatedItem: &updatedItem, + AdditionalItems: additionalItems, + SkipRestore: res.SkipRestore, + } + return &cio, nil +} diff --git a/pkg/plugin/framework/item_snapshotter_server.go b/pkg/plugin/framework/item_snapshotter_server.go new file mode 100644 index 000000000..166e6d07f --- /dev/null +++ b/pkg/plugin/framework/item_snapshotter_server.go @@ -0,0 +1,311 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ +package framework + +import ( + "context" + "encoding/json" + + isv1 "github.com/vmware-tanzu/velero/pkg/plugin/velero/item_snapshotter/v1" + + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + + api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" + + "github.com/pkg/errors" + + proto "github.com/vmware-tanzu/velero/pkg/plugin/generated" +) + +// ItemSnapshotterGRPCServer implements the proto-generated ItemSnapshotterServer interface, and accepts +// gRPC calls and forwards them to an implementation of the pluggable interface. +type ItemSnapshotterGRPCServer struct { + mux *serverMux +} + +func (recv *ItemSnapshotterGRPCServer) getImpl(name string) (isv1.ItemSnapshotter, error) { + impl, err := recv.mux.getHandler(name) + if err != nil { + return nil, err + } + + itemAction, ok := impl.(isv1.ItemSnapshotter) + if !ok { + return nil, errors.Errorf("%T is not an item snapshotter", impl) + } + + return itemAction, nil +} + +func (recv *ItemSnapshotterGRPCServer) Init(c context.Context, req *proto.ItemSnapshotterInitRequest) (response *proto.Empty, err error) { + defer func() { + if recoveredErr := handlePanic(recover()); recoveredErr != nil { + err = recoveredErr + } + }() + + impl, err := recv.getImpl(req.Plugin) + if err != nil { + return nil, newGRPCError(err) + } + + err = impl.Init(req.Config) + if err != nil { + return nil, newGRPCError(err) + } + + return &proto.Empty{}, nil +} + +func (recv *ItemSnapshotterGRPCServer) AppliesTo(ctx context.Context, req *proto.ItemSnapshotterAppliesToRequest) (response *proto.ItemSnapshotterAppliesToResponse, err error) { + defer func() { + if recoveredErr := handlePanic(recover()); recoveredErr != nil { + err = recoveredErr + } + }() + + impl, err := recv.getImpl(req.Plugin) + if err != nil { + return nil, newGRPCError(err) + } + + resourceSelector, err := impl.AppliesTo() + if err != nil { + return nil, newGRPCError(err) + } + + return &proto.ItemSnapshotterAppliesToResponse{ + &proto.ResourceSelector{ + IncludedNamespaces: resourceSelector.IncludedNamespaces, + ExcludedNamespaces: resourceSelector.ExcludedNamespaces, + IncludedResources: resourceSelector.IncludedResources, + ExcludedResources: resourceSelector.ExcludedResources, + Selector: resourceSelector.LabelSelector, + }, + }, nil +} + +func (recv *ItemSnapshotterGRPCServer) AlsoHandles(ctx context.Context, req *proto.AlsoHandlesRequest) (res *proto.AlsoHandlesResponse, err error) { + defer func() { + if recoveredErr := handlePanic(recover()); recoveredErr != nil { + err = recoveredErr + } + }() + + impl, err := recv.getImpl(req.Plugin) + if err != nil { + return nil, newGRPCError(err) + } + var item unstructured.Unstructured + var backup api.Backup + + if err := json.Unmarshal(req.Item, &item); err != nil { + return nil, newGRPCError(errors.WithStack(err)) + } + if err := json.Unmarshal(req.Backup, &backup); err != nil { + return nil, newGRPCError(errors.WithStack(err)) + } + ahi := isv1.AlsoHandlesInput{ + Item: &item, + Backup: &backup, + } + alsoHandles, err := impl.AlsoHandles(&ahi) + if err != nil { + return nil, newGRPCError(err) + } + res = &proto.AlsoHandlesResponse{} + + for _, item := range alsoHandles { + res.HandledItems = append(res.HandledItems, resourceIdentifierToProto(item)) + } + return res, nil +} + +func (recv *ItemSnapshotterGRPCServer) SnapshotItem(ctx context.Context, req *proto.SnapshotItemRequest) (res *proto.SnapshotItemResponse, err error) { + defer func() { + if recoveredErr := handlePanic(recover()); recoveredErr != nil { + err = recoveredErr + } + }() + + impl, err := recv.getImpl(req.Plugin) + if err != nil { + return nil, newGRPCError(err) + } + var item unstructured.Unstructured + var backup api.Backup + + if err := json.Unmarshal(req.Item, &item); err != nil { + return nil, newGRPCError(errors.WithStack(err)) + } + if err := json.Unmarshal(req.Backup, &backup); err != nil { + return nil, newGRPCError(errors.WithStack(err)) + } + sii := isv1.SnapshotItemInput{ + Item: &item, + Params: req.Params, + Backup: &backup, + } + sio, err := impl.SnapshotItem(ctx, &sii) + + // If the plugin implementation returned a nil updatedItem (meaning no modifications), reset updatedItem to the + // original item. + var updatedItemJSON []byte + if sio.UpdatedItem == nil { + updatedItemJSON = req.Item + } else { + updatedItemJSON, err = json.Marshal(sio.UpdatedItem.UnstructuredContent()) + if err != nil { + return nil, newGRPCError(errors.WithStack(err)) + } + } + res = &proto.SnapshotItemResponse{ + Item: updatedItemJSON, + SnapshotID: sio.SnapshotID, + SnapshotMetadata: sio.SnapshotMetadata, + } + res.AdditionalItems = packResourceIdentifiers(sio.AdditionalItems) + res.HandledItems = packResourceIdentifiers(sio.HandledItems) + return res, err +} + +func (recv *ItemSnapshotterGRPCServer) Progress(ctx context.Context, req *proto.ProgressRequest) (res *proto.ProgressResponse, err error) { + defer func() { + if recoveredErr := handlePanic(recover()); recoveredErr != nil { + err = recoveredErr + } + }() + impl, err := recv.getImpl(req.Plugin) + if err != nil { + return nil, newGRPCError(err) + } + var backup api.Backup + + if err := json.Unmarshal(req.Backup, &backup); err != nil { + return nil, newGRPCError(errors.WithStack(err)) + } + sipi := &isv1.ProgressInput{ + ItemID: protoToResourceIdentifier(req.ItemID), + SnapshotID: req.SnapshotID, + Backup: &backup, + } + + sipo, err := impl.Progress(sipi) + if err != nil { + return nil, newGRPCError(err) + } + + res = &proto.ProgressResponse{ + Phase: string(sipo.Phase), + ItemsCompleted: sipo.ItemsCompleted, + ItemsToComplete: sipo.ItemsToComplete, + Started: sipo.Started.Unix(), + StartedNano: sipo.Started.UnixNano(), + Updated: sipo.Updated.Unix(), + UpdatedNano: sipo.Updated.UnixNano(), + Err: sipo.Err, + } + return res, nil +} + +func (recv *ItemSnapshotterGRPCServer) DeleteSnapshot(ctx context.Context, req *proto.DeleteItemSnapshotRequest) (empty *proto.Empty, err error) { + defer func() { + if recoveredErr := handlePanic(recover()); recoveredErr != nil { + err = recoveredErr + } + }() + impl, err := recv.getImpl(req.Plugin) + if err != nil { + return nil, newGRPCError(err) + } + + var itemFromBackup unstructured.Unstructured + if err := json.Unmarshal(req.ItemFromBackup, &itemFromBackup); err != nil { + return nil, newGRPCError(errors.WithStack(err)) + } + + disi := isv1.DeleteSnapshotInput{ + SnapshotID: req.SnapshotID, + ItemFromBackup: &itemFromBackup, + SnapshotMetadata: req.Metadata, + Params: req.Params, + } + + err = impl.DeleteSnapshot(ctx, &disi) + if err != nil { + return nil, newGRPCError(err) + } + return +} + +func (recv *ItemSnapshotterGRPCServer) CreateItemFromSnapshot(ctx context.Context, req *proto.CreateItemFromSnapshotRequest) (res *proto.CreateItemFromSnapshotResponse, err error) { + defer func() { + if recoveredErr := handlePanic(recover()); recoveredErr != nil { + err = recoveredErr + } + }() + impl, err := recv.getImpl(req.Plugin) + if err != nil { + return nil, newGRPCError(err) + } + + var snapshottedItem unstructured.Unstructured + if err := json.Unmarshal(req.Item, &snapshottedItem); err != nil { + return nil, newGRPCError(errors.WithStack(err)) + } + + var itemFromBackup unstructured.Unstructured + if err := json.Unmarshal(req.Item, &itemFromBackup); err != nil { + return nil, newGRPCError(errors.WithStack(err)) + } + + var restore api.Restore + + if err := json.Unmarshal(req.Restore, &restore); err != nil { + return nil, newGRPCError(errors.WithStack(err)) + } + + cii := isv1.CreateItemInput{ + SnapshottedItem: &snapshottedItem, + SnapshotID: req.SnapshotID, + ItemFromBackup: &itemFromBackup, + SnapshotMetadata: req.SnapshotMetadata, + Params: req.Params, + Restore: &restore, + } + + cio, err := impl.CreateItemFromSnapshot(ctx, &cii) + if err != nil { + return nil, newGRPCError(err) + } + + var updatedItemJSON []byte + if cio.UpdatedItem == nil { + updatedItemJSON = req.Item + } else { + updatedItemJSON, err = json.Marshal(cio.UpdatedItem.UnstructuredContent()) + if err != nil { + return nil, newGRPCError(errors.WithStack(err)) + } + } + res = &proto.CreateItemFromSnapshotResponse{ + Item: updatedItemJSON, + SkipRestore: cio.SkipRestore, + } + res.AdditionalItems = packResourceIdentifiers(cio.AdditionalItems) + + return +} diff --git a/pkg/plugin/framework/plugin_kinds.go b/pkg/plugin/framework/plugin_kinds.go index 640ae30b8..f48f7f498 100644 --- a/pkg/plugin/framework/plugin_kinds.go +++ b/pkg/plugin/framework/plugin_kinds.go @@ -41,6 +41,9 @@ const ( // PluginKindDeleteItemAction represents a delete item action plugin. PluginKindDeleteItemAction PluginKind = "DeleteItemAction" + // PluginKindItemSnapshotter represents an item snapshotter plugin + PluginKindItemSnapshotter PluginKind = "ItemSnapshotter" + // PluginKindPluginLister represents a plugin lister plugin. PluginKindPluginLister PluginKind = "PluginLister" ) @@ -54,5 +57,6 @@ func AllPluginKinds() map[string]PluginKind { allPluginKinds[PluginKindBackupItemAction.String()] = PluginKindBackupItemAction allPluginKinds[PluginKindRestoreItemAction.String()] = PluginKindRestoreItemAction allPluginKinds[PluginKindDeleteItemAction.String()] = PluginKindDeleteItemAction + allPluginKinds[PluginKindItemSnapshotter.String()] = PluginKindItemSnapshotter return allPluginKinds } diff --git a/pkg/plugin/framework/plugin_types_test.go b/pkg/plugin/framework/plugin_types_test.go index f9b4d1f80..2ebb78104 100644 --- a/pkg/plugin/framework/plugin_types_test.go +++ b/pkg/plugin/framework/plugin_types_test.go @@ -30,6 +30,7 @@ func TestPluginImplementationsAreGRPCPlugins(t *testing.T) { new(ObjectStorePlugin), new(PluginListerPlugin), new(RestoreItemActionPlugin), + new(ItemSnapshotterPlugin), } for _, impl := range pluginImpls { diff --git a/pkg/plugin/framework/util.go b/pkg/plugin/framework/util.go new file mode 100644 index 000000000..2ac0b1938 --- /dev/null +++ b/pkg/plugin/framework/util.go @@ -0,0 +1,58 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package framework + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + + proto "github.com/vmware-tanzu/velero/pkg/plugin/generated" + "github.com/vmware-tanzu/velero/pkg/plugin/velero" +) + +func packResourceIdentifiers(resourcesIDs []velero.ResourceIdentifier) (protoIDs []*proto.ResourceIdentifier) { + for _, item := range resourcesIDs { + protoIDs = append(protoIDs, resourceIdentifierToProto(item)) + } + return +} + +func unpackResourceIdentifiers(protoIDs []*proto.ResourceIdentifier) (resourceIDs []velero.ResourceIdentifier) { + for _, itm := range protoIDs { + resourceIDs = append(resourceIDs, protoToResourceIdentifier(itm)) + } + return +} + +func protoToResourceIdentifier(proto *proto.ResourceIdentifier) velero.ResourceIdentifier { + return velero.ResourceIdentifier{ + GroupResource: schema.GroupResource{ + Group: proto.Group, + Resource: proto.Resource, + }, + Namespace: proto.Namespace, + Name: proto.Name, + } +} + +func resourceIdentifierToProto(id velero.ResourceIdentifier) *proto.ResourceIdentifier { + return &proto.ResourceIdentifier{ + Group: id.Group, + Resource: id.Resource, + Namespace: id.Namespace, + Name: id.Name, + } +} diff --git a/pkg/plugin/generated/BackupItemAction.pb.go b/pkg/plugin/generated/BackupItemAction.pb.go index 9e3afd9fc..937da01d0 100644 --- a/pkg/plugin/generated/BackupItemAction.pb.go +++ b/pkg/plugin/generated/BackupItemAction.pb.go @@ -7,6 +7,7 @@ Package generated is a generated protocol buffer package. It is generated from these files: BackupItemAction.proto DeleteItemAction.proto + ItemSnapshotter.proto ObjectStore.proto PluginLister.proto RestoreItemAction.proto @@ -21,6 +22,18 @@ It has these top-level messages: DeleteItemActionExecuteRequest DeleteItemActionAppliesToRequest DeleteItemActionAppliesToResponse + ItemSnapshotterAppliesToRequest + ItemSnapshotterAppliesToResponse + AlsoHandlesRequest + AlsoHandlesResponse + SnapshotItemRequest + SnapshotItemResponse + ProgressRequest + ProgressResponse + DeleteItemSnapshotRequest + CreateItemFromSnapshotRequest + CreateItemFromSnapshotResponse + ItemSnapshotterInitRequest PutObjectRequest ObjectExistsRequest ObjectExistsResponse diff --git a/pkg/plugin/generated/ItemSnapshotter.pb.go b/pkg/plugin/generated/ItemSnapshotter.pb.go new file mode 100644 index 000000000..dfcf73c87 --- /dev/null +++ b/pkg/plugin/generated/ItemSnapshotter.pb.go @@ -0,0 +1,819 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: ItemSnapshotter.proto + +package generated + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +type ItemSnapshotterAppliesToRequest struct { + Plugin string `protobuf:"bytes,1,opt,name=plugin" json:"plugin,omitempty"` +} + +func (m *ItemSnapshotterAppliesToRequest) Reset() { *m = ItemSnapshotterAppliesToRequest{} } +func (m *ItemSnapshotterAppliesToRequest) String() string { return proto.CompactTextString(m) } +func (*ItemSnapshotterAppliesToRequest) ProtoMessage() {} +func (*ItemSnapshotterAppliesToRequest) Descriptor() ([]byte, []int) { + return fileDescriptor2, []int{0} +} + +func (m *ItemSnapshotterAppliesToRequest) GetPlugin() string { + if m != nil { + return m.Plugin + } + return "" +} + +type ItemSnapshotterAppliesToResponse struct { + ResourceSelector *ResourceSelector `protobuf:"bytes,1,opt,name=ResourceSelector" json:"ResourceSelector,omitempty"` +} + +func (m *ItemSnapshotterAppliesToResponse) Reset() { *m = ItemSnapshotterAppliesToResponse{} } +func (m *ItemSnapshotterAppliesToResponse) String() string { return proto.CompactTextString(m) } +func (*ItemSnapshotterAppliesToResponse) ProtoMessage() {} +func (*ItemSnapshotterAppliesToResponse) Descriptor() ([]byte, []int) { + return fileDescriptor2, []int{1} +} + +func (m *ItemSnapshotterAppliesToResponse) GetResourceSelector() *ResourceSelector { + if m != nil { + return m.ResourceSelector + } + return nil +} + +type AlsoHandlesRequest struct { + Plugin string `protobuf:"bytes,1,opt,name=plugin" json:"plugin,omitempty"` + Item []byte `protobuf:"bytes,2,opt,name=item,proto3" json:"item,omitempty"` + Backup []byte `protobuf:"bytes,3,opt,name=backup,proto3" json:"backup,omitempty"` +} + +func (m *AlsoHandlesRequest) Reset() { *m = AlsoHandlesRequest{} } +func (m *AlsoHandlesRequest) String() string { return proto.CompactTextString(m) } +func (*AlsoHandlesRequest) ProtoMessage() {} +func (*AlsoHandlesRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{2} } + +func (m *AlsoHandlesRequest) GetPlugin() string { + if m != nil { + return m.Plugin + } + return "" +} + +func (m *AlsoHandlesRequest) GetItem() []byte { + if m != nil { + return m.Item + } + return nil +} + +func (m *AlsoHandlesRequest) GetBackup() []byte { + if m != nil { + return m.Backup + } + return nil +} + +type AlsoHandlesResponse struct { + HandledItems []*ResourceIdentifier `protobuf:"bytes,1,rep,name=handledItems" json:"handledItems,omitempty"` +} + +func (m *AlsoHandlesResponse) Reset() { *m = AlsoHandlesResponse{} } +func (m *AlsoHandlesResponse) String() string { return proto.CompactTextString(m) } +func (*AlsoHandlesResponse) ProtoMessage() {} +func (*AlsoHandlesResponse) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{3} } + +func (m *AlsoHandlesResponse) GetHandledItems() []*ResourceIdentifier { + if m != nil { + return m.HandledItems + } + return nil +} + +type SnapshotItemRequest struct { + Plugin string `protobuf:"bytes,1,opt,name=plugin" json:"plugin,omitempty"` + Item []byte `protobuf:"bytes,2,opt,name=item,proto3" json:"item,omitempty"` + Params map[string]string `protobuf:"bytes,3,rep,name=params" json:"params,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Backup []byte `protobuf:"bytes,4,opt,name=backup,proto3" json:"backup,omitempty"` +} + +func (m *SnapshotItemRequest) Reset() { *m = SnapshotItemRequest{} } +func (m *SnapshotItemRequest) String() string { return proto.CompactTextString(m) } +func (*SnapshotItemRequest) ProtoMessage() {} +func (*SnapshotItemRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{4} } + +func (m *SnapshotItemRequest) GetPlugin() string { + if m != nil { + return m.Plugin + } + return "" +} + +func (m *SnapshotItemRequest) GetItem() []byte { + if m != nil { + return m.Item + } + return nil +} + +func (m *SnapshotItemRequest) GetParams() map[string]string { + if m != nil { + return m.Params + } + return nil +} + +func (m *SnapshotItemRequest) GetBackup() []byte { + if m != nil { + return m.Backup + } + return nil +} + +type SnapshotItemResponse struct { + Item []byte `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` + SnapshotID string `protobuf:"bytes,2,opt,name=snapshotID" json:"snapshotID,omitempty"` + SnapshotMetadata map[string]string `protobuf:"bytes,3,rep,name=snapshotMetadata" json:"snapshotMetadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + AdditionalItems []*ResourceIdentifier `protobuf:"bytes,4,rep,name=additionalItems" json:"additionalItems,omitempty"` + HandledItems []*ResourceIdentifier `protobuf:"bytes,5,rep,name=handledItems" json:"handledItems,omitempty"` +} + +func (m *SnapshotItemResponse) Reset() { *m = SnapshotItemResponse{} } +func (m *SnapshotItemResponse) String() string { return proto.CompactTextString(m) } +func (*SnapshotItemResponse) ProtoMessage() {} +func (*SnapshotItemResponse) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{5} } + +func (m *SnapshotItemResponse) GetItem() []byte { + if m != nil { + return m.Item + } + return nil +} + +func (m *SnapshotItemResponse) GetSnapshotID() string { + if m != nil { + return m.SnapshotID + } + return "" +} + +func (m *SnapshotItemResponse) GetSnapshotMetadata() map[string]string { + if m != nil { + return m.SnapshotMetadata + } + return nil +} + +func (m *SnapshotItemResponse) GetAdditionalItems() []*ResourceIdentifier { + if m != nil { + return m.AdditionalItems + } + return nil +} + +func (m *SnapshotItemResponse) GetHandledItems() []*ResourceIdentifier { + if m != nil { + return m.HandledItems + } + return nil +} + +type ProgressRequest struct { + Plugin string `protobuf:"bytes,1,opt,name=plugin" json:"plugin,omitempty"` + ItemID *ResourceIdentifier `protobuf:"bytes,2,opt,name=itemID" json:"itemID,omitempty"` + SnapshotID string `protobuf:"bytes,3,opt,name=snapshotID" json:"snapshotID,omitempty"` + Backup []byte `protobuf:"bytes,4,opt,name=backup,proto3" json:"backup,omitempty"` +} + +func (m *ProgressRequest) Reset() { *m = ProgressRequest{} } +func (m *ProgressRequest) String() string { return proto.CompactTextString(m) } +func (*ProgressRequest) ProtoMessage() {} +func (*ProgressRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{6} } + +func (m *ProgressRequest) GetPlugin() string { + if m != nil { + return m.Plugin + } + return "" +} + +func (m *ProgressRequest) GetItemID() *ResourceIdentifier { + if m != nil { + return m.ItemID + } + return nil +} + +func (m *ProgressRequest) GetSnapshotID() string { + if m != nil { + return m.SnapshotID + } + return "" +} + +func (m *ProgressRequest) GetBackup() []byte { + if m != nil { + return m.Backup + } + return nil +} + +type ProgressResponse struct { + Phase string `protobuf:"bytes,1,opt,name=phase" json:"phase,omitempty"` + ItemsCompleted int64 `protobuf:"varint,2,opt,name=itemsCompleted" json:"itemsCompleted,omitempty"` + ItemsToComplete int64 `protobuf:"varint,3,opt,name=itemsToComplete" json:"itemsToComplete,omitempty"` + Started int64 `protobuf:"varint,4,opt,name=started" json:"started,omitempty"` + StartedNano int64 `protobuf:"varint,5,opt,name=startedNano" json:"startedNano,omitempty"` + Updated int64 `protobuf:"varint,6,opt,name=updated" json:"updated,omitempty"` + UpdatedNano int64 `protobuf:"varint,7,opt,name=updatedNano" json:"updatedNano,omitempty"` + Err string `protobuf:"bytes,8,opt,name=err" json:"err,omitempty"` +} + +func (m *ProgressResponse) Reset() { *m = ProgressResponse{} } +func (m *ProgressResponse) String() string { return proto.CompactTextString(m) } +func (*ProgressResponse) ProtoMessage() {} +func (*ProgressResponse) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{7} } + +func (m *ProgressResponse) GetPhase() string { + if m != nil { + return m.Phase + } + return "" +} + +func (m *ProgressResponse) GetItemsCompleted() int64 { + if m != nil { + return m.ItemsCompleted + } + return 0 +} + +func (m *ProgressResponse) GetItemsToComplete() int64 { + if m != nil { + return m.ItemsToComplete + } + return 0 +} + +func (m *ProgressResponse) GetStarted() int64 { + if m != nil { + return m.Started + } + return 0 +} + +func (m *ProgressResponse) GetStartedNano() int64 { + if m != nil { + return m.StartedNano + } + return 0 +} + +func (m *ProgressResponse) GetUpdated() int64 { + if m != nil { + return m.Updated + } + return 0 +} + +func (m *ProgressResponse) GetUpdatedNano() int64 { + if m != nil { + return m.UpdatedNano + } + return 0 +} + +func (m *ProgressResponse) GetErr() string { + if m != nil { + return m.Err + } + return "" +} + +type DeleteItemSnapshotRequest struct { + Plugin string `protobuf:"bytes,1,opt,name=plugin" json:"plugin,omitempty"` + SnapshotID string `protobuf:"bytes,2,opt,name=snapshotID" json:"snapshotID,omitempty"` + ItemFromBackup []byte `protobuf:"bytes,3,opt,name=itemFromBackup,proto3" json:"itemFromBackup,omitempty"` + Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Params map[string]string `protobuf:"bytes,5,rep,name=params" json:"params,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *DeleteItemSnapshotRequest) Reset() { *m = DeleteItemSnapshotRequest{} } +func (m *DeleteItemSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteItemSnapshotRequest) ProtoMessage() {} +func (*DeleteItemSnapshotRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{8} } + +func (m *DeleteItemSnapshotRequest) GetPlugin() string { + if m != nil { + return m.Plugin + } + return "" +} + +func (m *DeleteItemSnapshotRequest) GetSnapshotID() string { + if m != nil { + return m.SnapshotID + } + return "" +} + +func (m *DeleteItemSnapshotRequest) GetItemFromBackup() []byte { + if m != nil { + return m.ItemFromBackup + } + return nil +} + +func (m *DeleteItemSnapshotRequest) GetMetadata() map[string]string { + if m != nil { + return m.Metadata + } + return nil +} + +func (m *DeleteItemSnapshotRequest) GetParams() map[string]string { + if m != nil { + return m.Params + } + return nil +} + +type CreateItemFromSnapshotRequest struct { + Plugin string `protobuf:"bytes,1,opt,name=plugin" json:"plugin,omitempty"` + Item []byte `protobuf:"bytes,2,opt,name=item,proto3" json:"item,omitempty"` + SnapshotID string `protobuf:"bytes,3,opt,name=snapshotID" json:"snapshotID,omitempty"` + ItemFromBackup []byte `protobuf:"bytes,4,opt,name=itemFromBackup,proto3" json:"itemFromBackup,omitempty"` + SnapshotMetadata map[string]string `protobuf:"bytes,5,rep,name=snapshotMetadata" json:"snapshotMetadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Params map[string]string `protobuf:"bytes,6,rep,name=params" json:"params,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Restore []byte `protobuf:"bytes,7,opt,name=restore,proto3" json:"restore,omitempty"` +} + +func (m *CreateItemFromSnapshotRequest) Reset() { *m = CreateItemFromSnapshotRequest{} } +func (m *CreateItemFromSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*CreateItemFromSnapshotRequest) ProtoMessage() {} +func (*CreateItemFromSnapshotRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{9} } + +func (m *CreateItemFromSnapshotRequest) GetPlugin() string { + if m != nil { + return m.Plugin + } + return "" +} + +func (m *CreateItemFromSnapshotRequest) GetItem() []byte { + if m != nil { + return m.Item + } + return nil +} + +func (m *CreateItemFromSnapshotRequest) GetSnapshotID() string { + if m != nil { + return m.SnapshotID + } + return "" +} + +func (m *CreateItemFromSnapshotRequest) GetItemFromBackup() []byte { + if m != nil { + return m.ItemFromBackup + } + return nil +} + +func (m *CreateItemFromSnapshotRequest) GetSnapshotMetadata() map[string]string { + if m != nil { + return m.SnapshotMetadata + } + return nil +} + +func (m *CreateItemFromSnapshotRequest) GetParams() map[string]string { + if m != nil { + return m.Params + } + return nil +} + +func (m *CreateItemFromSnapshotRequest) GetRestore() []byte { + if m != nil { + return m.Restore + } + return nil +} + +type CreateItemFromSnapshotResponse struct { + Item []byte `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` + AdditionalItems []*ResourceIdentifier `protobuf:"bytes,2,rep,name=additionalItems" json:"additionalItems,omitempty"` + SkipRestore bool `protobuf:"varint,3,opt,name=skipRestore" json:"skipRestore,omitempty"` +} + +func (m *CreateItemFromSnapshotResponse) Reset() { *m = CreateItemFromSnapshotResponse{} } +func (m *CreateItemFromSnapshotResponse) String() string { return proto.CompactTextString(m) } +func (*CreateItemFromSnapshotResponse) ProtoMessage() {} +func (*CreateItemFromSnapshotResponse) Descriptor() ([]byte, []int) { + return fileDescriptor2, []int{10} +} + +func (m *CreateItemFromSnapshotResponse) GetItem() []byte { + if m != nil { + return m.Item + } + return nil +} + +func (m *CreateItemFromSnapshotResponse) GetAdditionalItems() []*ResourceIdentifier { + if m != nil { + return m.AdditionalItems + } + return nil +} + +func (m *CreateItemFromSnapshotResponse) GetSkipRestore() bool { + if m != nil { + return m.SkipRestore + } + return false +} + +type ItemSnapshotterInitRequest struct { + Plugin string `protobuf:"bytes,1,opt,name=plugin" json:"plugin,omitempty"` + Config map[string]string `protobuf:"bytes,2,rep,name=config" json:"config,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *ItemSnapshotterInitRequest) Reset() { *m = ItemSnapshotterInitRequest{} } +func (m *ItemSnapshotterInitRequest) String() string { return proto.CompactTextString(m) } +func (*ItemSnapshotterInitRequest) ProtoMessage() {} +func (*ItemSnapshotterInitRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{11} } + +func (m *ItemSnapshotterInitRequest) GetPlugin() string { + if m != nil { + return m.Plugin + } + return "" +} + +func (m *ItemSnapshotterInitRequest) GetConfig() map[string]string { + if m != nil { + return m.Config + } + return nil +} + +func init() { + proto.RegisterType((*ItemSnapshotterAppliesToRequest)(nil), "generated.ItemSnapshotterAppliesToRequest") + proto.RegisterType((*ItemSnapshotterAppliesToResponse)(nil), "generated.ItemSnapshotterAppliesToResponse") + proto.RegisterType((*AlsoHandlesRequest)(nil), "generated.AlsoHandlesRequest") + proto.RegisterType((*AlsoHandlesResponse)(nil), "generated.AlsoHandlesResponse") + proto.RegisterType((*SnapshotItemRequest)(nil), "generated.SnapshotItemRequest") + proto.RegisterType((*SnapshotItemResponse)(nil), "generated.SnapshotItemResponse") + proto.RegisterType((*ProgressRequest)(nil), "generated.ProgressRequest") + proto.RegisterType((*ProgressResponse)(nil), "generated.ProgressResponse") + proto.RegisterType((*DeleteItemSnapshotRequest)(nil), "generated.DeleteItemSnapshotRequest") + proto.RegisterType((*CreateItemFromSnapshotRequest)(nil), "generated.CreateItemFromSnapshotRequest") + proto.RegisterType((*CreateItemFromSnapshotResponse)(nil), "generated.CreateItemFromSnapshotResponse") + proto.RegisterType((*ItemSnapshotterInitRequest)(nil), "generated.ItemSnapshotterInitRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// Client API for ItemSnapshotter service + +type ItemSnapshotterClient interface { + Init(ctx context.Context, in *ItemSnapshotterInitRequest, opts ...grpc.CallOption) (*Empty, error) + AppliesTo(ctx context.Context, in *ItemSnapshotterAppliesToRequest, opts ...grpc.CallOption) (*ItemSnapshotterAppliesToResponse, error) + AlsoHandles(ctx context.Context, in *AlsoHandlesRequest, opts ...grpc.CallOption) (*AlsoHandlesResponse, error) + SnapshotItem(ctx context.Context, in *SnapshotItemRequest, opts ...grpc.CallOption) (*SnapshotItemResponse, error) + Progress(ctx context.Context, in *ProgressRequest, opts ...grpc.CallOption) (*ProgressResponse, error) + DeleteSnapshot(ctx context.Context, in *DeleteItemSnapshotRequest, opts ...grpc.CallOption) (*Empty, error) + CreateItemFromSnapshot(ctx context.Context, in *CreateItemFromSnapshotRequest, opts ...grpc.CallOption) (*CreateItemFromSnapshotResponse, error) +} + +type itemSnapshotterClient struct { + cc *grpc.ClientConn +} + +func NewItemSnapshotterClient(cc *grpc.ClientConn) ItemSnapshotterClient { + return &itemSnapshotterClient{cc} +} + +func (c *itemSnapshotterClient) Init(ctx context.Context, in *ItemSnapshotterInitRequest, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := grpc.Invoke(ctx, "/generated.ItemSnapshotter/Init", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *itemSnapshotterClient) AppliesTo(ctx context.Context, in *ItemSnapshotterAppliesToRequest, opts ...grpc.CallOption) (*ItemSnapshotterAppliesToResponse, error) { + out := new(ItemSnapshotterAppliesToResponse) + err := grpc.Invoke(ctx, "/generated.ItemSnapshotter/AppliesTo", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *itemSnapshotterClient) AlsoHandles(ctx context.Context, in *AlsoHandlesRequest, opts ...grpc.CallOption) (*AlsoHandlesResponse, error) { + out := new(AlsoHandlesResponse) + err := grpc.Invoke(ctx, "/generated.ItemSnapshotter/AlsoHandles", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *itemSnapshotterClient) SnapshotItem(ctx context.Context, in *SnapshotItemRequest, opts ...grpc.CallOption) (*SnapshotItemResponse, error) { + out := new(SnapshotItemResponse) + err := grpc.Invoke(ctx, "/generated.ItemSnapshotter/SnapshotItem", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *itemSnapshotterClient) Progress(ctx context.Context, in *ProgressRequest, opts ...grpc.CallOption) (*ProgressResponse, error) { + out := new(ProgressResponse) + err := grpc.Invoke(ctx, "/generated.ItemSnapshotter/Progress", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *itemSnapshotterClient) DeleteSnapshot(ctx context.Context, in *DeleteItemSnapshotRequest, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := grpc.Invoke(ctx, "/generated.ItemSnapshotter/DeleteSnapshot", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *itemSnapshotterClient) CreateItemFromSnapshot(ctx context.Context, in *CreateItemFromSnapshotRequest, opts ...grpc.CallOption) (*CreateItemFromSnapshotResponse, error) { + out := new(CreateItemFromSnapshotResponse) + err := grpc.Invoke(ctx, "/generated.ItemSnapshotter/CreateItemFromSnapshot", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for ItemSnapshotter service + +type ItemSnapshotterServer interface { + Init(context.Context, *ItemSnapshotterInitRequest) (*Empty, error) + AppliesTo(context.Context, *ItemSnapshotterAppliesToRequest) (*ItemSnapshotterAppliesToResponse, error) + AlsoHandles(context.Context, *AlsoHandlesRequest) (*AlsoHandlesResponse, error) + SnapshotItem(context.Context, *SnapshotItemRequest) (*SnapshotItemResponse, error) + Progress(context.Context, *ProgressRequest) (*ProgressResponse, error) + DeleteSnapshot(context.Context, *DeleteItemSnapshotRequest) (*Empty, error) + CreateItemFromSnapshot(context.Context, *CreateItemFromSnapshotRequest) (*CreateItemFromSnapshotResponse, error) +} + +func RegisterItemSnapshotterServer(s *grpc.Server, srv ItemSnapshotterServer) { + s.RegisterService(&_ItemSnapshotter_serviceDesc, srv) +} + +func _ItemSnapshotter_Init_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ItemSnapshotterInitRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ItemSnapshotterServer).Init(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/generated.ItemSnapshotter/Init", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ItemSnapshotterServer).Init(ctx, req.(*ItemSnapshotterInitRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ItemSnapshotter_AppliesTo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ItemSnapshotterAppliesToRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ItemSnapshotterServer).AppliesTo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/generated.ItemSnapshotter/AppliesTo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ItemSnapshotterServer).AppliesTo(ctx, req.(*ItemSnapshotterAppliesToRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ItemSnapshotter_AlsoHandles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AlsoHandlesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ItemSnapshotterServer).AlsoHandles(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/generated.ItemSnapshotter/AlsoHandles", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ItemSnapshotterServer).AlsoHandles(ctx, req.(*AlsoHandlesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ItemSnapshotter_SnapshotItem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SnapshotItemRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ItemSnapshotterServer).SnapshotItem(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/generated.ItemSnapshotter/SnapshotItem", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ItemSnapshotterServer).SnapshotItem(ctx, req.(*SnapshotItemRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ItemSnapshotter_Progress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ProgressRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ItemSnapshotterServer).Progress(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/generated.ItemSnapshotter/Progress", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ItemSnapshotterServer).Progress(ctx, req.(*ProgressRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ItemSnapshotter_DeleteSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteItemSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ItemSnapshotterServer).DeleteSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/generated.ItemSnapshotter/DeleteSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ItemSnapshotterServer).DeleteSnapshot(ctx, req.(*DeleteItemSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ItemSnapshotter_CreateItemFromSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateItemFromSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ItemSnapshotterServer).CreateItemFromSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/generated.ItemSnapshotter/CreateItemFromSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ItemSnapshotterServer).CreateItemFromSnapshot(ctx, req.(*CreateItemFromSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _ItemSnapshotter_serviceDesc = grpc.ServiceDesc{ + ServiceName: "generated.ItemSnapshotter", + HandlerType: (*ItemSnapshotterServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Init", + Handler: _ItemSnapshotter_Init_Handler, + }, + { + MethodName: "AppliesTo", + Handler: _ItemSnapshotter_AppliesTo_Handler, + }, + { + MethodName: "AlsoHandles", + Handler: _ItemSnapshotter_AlsoHandles_Handler, + }, + { + MethodName: "SnapshotItem", + Handler: _ItemSnapshotter_SnapshotItem_Handler, + }, + { + MethodName: "Progress", + Handler: _ItemSnapshotter_Progress_Handler, + }, + { + MethodName: "DeleteSnapshot", + Handler: _ItemSnapshotter_DeleteSnapshot_Handler, + }, + { + MethodName: "CreateItemFromSnapshot", + Handler: _ItemSnapshotter_CreateItemFromSnapshot_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "ItemSnapshotter.proto", +} + +func init() { proto.RegisterFile("ItemSnapshotter.proto", fileDescriptor2) } + +var fileDescriptor2 = []byte{ + // 887 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x5f, 0x8f, 0xdb, 0x44, + 0x10, 0x97, 0xe3, 0x5c, 0xee, 0x6e, 0x12, 0x7a, 0xd1, 0xf6, 0x5a, 0x19, 0x57, 0xbd, 0x46, 0x16, + 0xa0, 0x50, 0xa4, 0x08, 0x0e, 0x2a, 0x51, 0x90, 0x40, 0xd7, 0xb4, 0xf4, 0x4e, 0x2a, 0xa5, 0xf2, + 0xf5, 0xa1, 0xaf, 0xdb, 0x78, 0x9b, 0x98, 0xd8, 0x5e, 0xb3, 0xbb, 0x41, 0xba, 0x77, 0x5e, 0x79, + 0xe7, 0x8d, 0xef, 0xc1, 0xf7, 0x40, 0xe2, 0x1b, 0xf0, 0x2d, 0x10, 0xda, 0x3f, 0x0e, 0x1b, 0xc7, + 0x3e, 0xfb, 0xee, 0x78, 0xf3, 0xce, 0xce, 0xcc, 0xfe, 0x66, 0x7e, 0xb3, 0xb3, 0x63, 0xb8, 0x73, + 0x26, 0x48, 0x7a, 0x9e, 0xe1, 0x9c, 0x2f, 0xa8, 0x10, 0x84, 0x4d, 0x72, 0x46, 0x05, 0x45, 0xfb, + 0x73, 0x92, 0x11, 0x86, 0x05, 0x89, 0xfc, 0xc1, 0xf9, 0x02, 0x33, 0x12, 0xe9, 0x8d, 0xe0, 0x31, + 0x3c, 0x28, 0x59, 0x9c, 0xe4, 0x79, 0x12, 0x13, 0xfe, 0x9a, 0x86, 0xe4, 0xa7, 0x15, 0xe1, 0x02, + 0xdd, 0x85, 0x5e, 0x9e, 0xac, 0xe6, 0x71, 0xe6, 0x39, 0x23, 0x67, 0xbc, 0x1f, 0x9a, 0x55, 0xb0, + 0x84, 0x51, 0xbd, 0x29, 0xcf, 0x69, 0xc6, 0x09, 0x7a, 0x0e, 0xc3, 0x90, 0x70, 0xba, 0x62, 0x33, + 0x72, 0x4e, 0x12, 0x32, 0x13, 0x94, 0x29, 0x2f, 0xfd, 0xe3, 0x7b, 0x93, 0x35, 0xa4, 0x49, 0x59, + 0x25, 0xdc, 0x32, 0x0a, 0xde, 0x00, 0x3a, 0x49, 0x38, 0x3d, 0xc5, 0x59, 0x94, 0x10, 0xde, 0x00, + 0x0d, 0x21, 0xe8, 0xc6, 0x82, 0xa4, 0x5e, 0x67, 0xe4, 0x8c, 0x07, 0xa1, 0xfa, 0x96, 0xba, 0x6f, + 0xf1, 0x6c, 0xb9, 0xca, 0x3d, 0x57, 0x49, 0xcd, 0x2a, 0x78, 0x03, 0xb7, 0x37, 0x3c, 0x1b, 0xe4, + 0x27, 0x30, 0x58, 0x28, 0x51, 0x24, 0x83, 0xe4, 0x9e, 0x33, 0x72, 0xc7, 0xfd, 0xe3, 0xfb, 0x15, + 0xa8, 0xcf, 0x22, 0x92, 0x89, 0xf8, 0x5d, 0x4c, 0x58, 0xb8, 0x61, 0x12, 0xfc, 0xe5, 0xc0, 0xed, + 0x22, 0x3b, 0x52, 0x72, 0x1d, 0xd4, 0x4f, 0xa0, 0x97, 0x63, 0x86, 0x53, 0xee, 0xb9, 0x0a, 0xc0, + 0x43, 0x0b, 0x40, 0x85, 0xef, 0xc9, 0x2b, 0xa5, 0xfc, 0x2c, 0x13, 0xec, 0x22, 0x34, 0x96, 0x56, + 0xe4, 0x5d, 0x3b, 0x72, 0xff, 0x31, 0xf4, 0x2d, 0x75, 0x34, 0x04, 0x77, 0x49, 0x2e, 0x0c, 0x26, + 0xf9, 0x89, 0x0e, 0x61, 0xe7, 0x67, 0x9c, 0xac, 0x88, 0x42, 0xb4, 0x1f, 0xea, 0xc5, 0x57, 0x9d, + 0x2f, 0x9d, 0xe0, 0x9f, 0x0e, 0x1c, 0x6e, 0x1e, 0x6f, 0xd2, 0x56, 0xc4, 0xe0, 0x58, 0x31, 0x1c, + 0x01, 0xf0, 0x42, 0xf7, 0xa9, 0xf1, 0x65, 0x49, 0x10, 0x86, 0x61, 0xb1, 0xfa, 0x9e, 0x08, 0x1c, + 0x61, 0x81, 0x4d, 0xb4, 0x8f, 0x6a, 0xa3, 0xd5, 0xc7, 0xad, 0x85, 0x85, 0x9d, 0x0e, 0x7c, 0xcb, + 0x1d, 0x7a, 0x0e, 0x07, 0x38, 0x8a, 0x62, 0x11, 0xd3, 0x0c, 0x27, 0x9a, 0xd0, 0x6e, 0x1b, 0x42, + 0xcb, 0x56, 0x5b, 0x65, 0xb1, 0x73, 0xe5, 0xb2, 0xf0, 0xa7, 0x70, 0xa7, 0x12, 0xf6, 0x95, 0x08, + 0xf8, 0xcd, 0x81, 0x83, 0x57, 0x8c, 0xce, 0x19, 0xe1, 0x8d, 0xb7, 0xe1, 0x11, 0xf4, 0x24, 0x0f, + 0x26, 0xf7, 0x8d, 0x68, 0x8d, 0x72, 0x89, 0x36, 0x77, 0x8b, 0xb6, 0x9a, 0xb2, 0x0a, 0x7e, 0xe9, + 0xc0, 0xf0, 0x3f, 0x68, 0xa6, 0x2e, 0x0e, 0x61, 0x27, 0x5f, 0x60, 0x4e, 0x0c, 0x34, 0xbd, 0x40, + 0x1f, 0xc1, 0x2d, 0x79, 0x18, 0x9f, 0xd2, 0x34, 0x4f, 0x88, 0x20, 0x91, 0x42, 0xe8, 0x86, 0x25, + 0x29, 0x1a, 0xc3, 0x81, 0x92, 0xbc, 0xa6, 0x85, 0x4c, 0xe1, 0x71, 0xc3, 0xb2, 0x18, 0x79, 0xb0, + 0xcb, 0x05, 0x66, 0xd2, 0x55, 0x57, 0x69, 0x14, 0x4b, 0x34, 0x82, 0xbe, 0xf9, 0x7c, 0x89, 0x33, + 0xea, 0xed, 0xa8, 0x5d, 0x5b, 0x24, 0x6d, 0x57, 0x79, 0x24, 0xd3, 0xe2, 0xf5, 0xb4, 0xad, 0x59, + 0x4a, 0x5b, 0xf3, 0xa9, 0x6c, 0x77, 0xb5, 0xad, 0x25, 0x92, 0xdc, 0x11, 0xc6, 0xbc, 0x3d, 0xcd, + 0x1d, 0x61, 0x2c, 0xf8, 0xd5, 0x85, 0xf7, 0x9f, 0x12, 0x09, 0xca, 0xee, 0x92, 0x4d, 0x5c, 0x35, + 0xdd, 0x15, 0x93, 0xb1, 0xef, 0x18, 0x4d, 0x9f, 0xd8, 0xdd, 0xac, 0x24, 0x45, 0x2f, 0x61, 0x2f, + 0x2d, 0xee, 0x92, 0xae, 0xf4, 0x63, 0x8b, 0xf5, 0x5a, 0x5c, 0x93, 0xcd, 0x8b, 0xb4, 0xf6, 0x81, + 0x4e, 0xd7, 0x7d, 0x48, 0x57, 0xfc, 0xa7, 0xad, 0xbc, 0x55, 0x74, 0x23, 0xff, 0x6b, 0x78, 0xef, + 0xda, 0x65, 0x7f, 0x93, 0x96, 0xf5, 0xb7, 0x0b, 0xf7, 0xa7, 0x8c, 0x60, 0x8d, 0x54, 0xa6, 0xaa, + 0x2d, 0x27, 0x55, 0x7d, 0xb9, 0xe9, 0x72, 0x6c, 0xf3, 0xd4, 0xad, 0xe4, 0xe9, 0xc7, 0x8a, 0xde, + 0xa7, 0x33, 0xfc, 0x8d, 0x95, 0xe1, 0x4b, 0x71, 0xb7, 0x6e, 0x82, 0x2f, 0xd6, 0x1c, 0xf6, 0xd4, + 0x09, 0x5f, 0xb4, 0x3e, 0xa1, 0xea, 0x55, 0xf1, 0x60, 0x97, 0x11, 0x2e, 0x28, 0x23, 0xea, 0x3e, + 0x0c, 0xc2, 0x62, 0xf9, 0xbf, 0x34, 0xb8, 0x9b, 0x30, 0xfd, 0xbb, 0x03, 0x47, 0x75, 0xf1, 0x5c, + 0xf2, 0x4c, 0x55, 0xbc, 0x11, 0x9d, 0x6b, 0xbd, 0x11, 0xb2, 0xd3, 0x2c, 0xe3, 0x3c, 0x34, 0xd9, + 0x91, 0xc5, 0xb1, 0x17, 0xda, 0xa2, 0xe0, 0x0f, 0x07, 0xfc, 0xd2, 0xec, 0x74, 0x96, 0xc5, 0x8d, + 0x85, 0x78, 0x06, 0xbd, 0x19, 0xcd, 0xde, 0xc5, 0x73, 0x03, 0xec, 0x33, 0x0b, 0x58, 0xbd, 0xbb, + 0xc9, 0x54, 0xd9, 0x18, 0xf6, 0xb4, 0x03, 0x99, 0x5e, 0x4b, 0x7c, 0x95, 0xf4, 0x1e, 0xff, 0xd9, + 0x85, 0x83, 0xd2, 0x69, 0xe8, 0x5b, 0xe8, 0xca, 0x13, 0xd1, 0x87, 0xad, 0x10, 0xf9, 0x43, 0x4b, + 0xed, 0x59, 0x9a, 0x8b, 0x0b, 0x14, 0xc1, 0xfe, 0x7a, 0x7a, 0x44, 0x0f, 0xeb, 0xbd, 0x94, 0xa7, + 0x53, 0xff, 0x93, 0x56, 0xba, 0x86, 0xf6, 0x17, 0xd0, 0xb7, 0x66, 0x3d, 0x64, 0x13, 0xbb, 0x3d, + 0x5d, 0xfa, 0x47, 0x75, 0xdb, 0xc6, 0xdb, 0x0f, 0x30, 0xb0, 0x87, 0x12, 0x74, 0x74, 0xf9, 0x6c, + 0xe6, 0x3f, 0x68, 0x98, 0x66, 0xd0, 0x14, 0xf6, 0x8a, 0x87, 0x13, 0xf9, 0x96, 0x72, 0xe9, 0xa1, + 0xf7, 0xef, 0x55, 0xee, 0x19, 0x27, 0xa7, 0x70, 0x4b, 0x37, 0xe4, 0xe2, 0x08, 0xf4, 0x41, 0x9b, + 0x5e, 0x5d, 0xc1, 0x49, 0x0a, 0x77, 0xab, 0xaf, 0x11, 0x1a, 0xb7, 0xed, 0x1c, 0xfe, 0xc7, 0x2d, + 0x34, 0x35, 0xf0, 0xb7, 0x3d, 0xf5, 0x47, 0xf2, 0xf9, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x51, + 0xd9, 0x74, 0xbb, 0xc3, 0x0c, 0x00, 0x00, +} diff --git a/pkg/plugin/generated/ObjectStore.pb.go b/pkg/plugin/generated/ObjectStore.pb.go index 121d70d45..b22cf1379 100644 --- a/pkg/plugin/generated/ObjectStore.pb.go +++ b/pkg/plugin/generated/ObjectStore.pb.go @@ -27,7 +27,7 @@ type PutObjectRequest struct { func (m *PutObjectRequest) Reset() { *m = PutObjectRequest{} } func (m *PutObjectRequest) String() string { return proto.CompactTextString(m) } func (*PutObjectRequest) ProtoMessage() {} -func (*PutObjectRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0} } +func (*PutObjectRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{0} } func (m *PutObjectRequest) GetPlugin() string { if m != nil { @@ -66,7 +66,7 @@ type ObjectExistsRequest struct { func (m *ObjectExistsRequest) Reset() { *m = ObjectExistsRequest{} } func (m *ObjectExistsRequest) String() string { return proto.CompactTextString(m) } func (*ObjectExistsRequest) ProtoMessage() {} -func (*ObjectExistsRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{1} } +func (*ObjectExistsRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{1} } func (m *ObjectExistsRequest) GetPlugin() string { if m != nil { @@ -96,7 +96,7 @@ type ObjectExistsResponse struct { func (m *ObjectExistsResponse) Reset() { *m = ObjectExistsResponse{} } func (m *ObjectExistsResponse) String() string { return proto.CompactTextString(m) } func (*ObjectExistsResponse) ProtoMessage() {} -func (*ObjectExistsResponse) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{2} } +func (*ObjectExistsResponse) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{2} } func (m *ObjectExistsResponse) GetExists() bool { if m != nil { @@ -114,7 +114,7 @@ type GetObjectRequest struct { func (m *GetObjectRequest) Reset() { *m = GetObjectRequest{} } func (m *GetObjectRequest) String() string { return proto.CompactTextString(m) } func (*GetObjectRequest) ProtoMessage() {} -func (*GetObjectRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{3} } +func (*GetObjectRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{3} } func (m *GetObjectRequest) GetPlugin() string { if m != nil { @@ -144,7 +144,7 @@ type Bytes struct { func (m *Bytes) Reset() { *m = Bytes{} } func (m *Bytes) String() string { return proto.CompactTextString(m) } func (*Bytes) ProtoMessage() {} -func (*Bytes) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{4} } +func (*Bytes) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{4} } func (m *Bytes) GetData() []byte { if m != nil { @@ -163,7 +163,7 @@ type ListCommonPrefixesRequest struct { func (m *ListCommonPrefixesRequest) Reset() { *m = ListCommonPrefixesRequest{} } func (m *ListCommonPrefixesRequest) String() string { return proto.CompactTextString(m) } func (*ListCommonPrefixesRequest) ProtoMessage() {} -func (*ListCommonPrefixesRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{5} } +func (*ListCommonPrefixesRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{5} } func (m *ListCommonPrefixesRequest) GetPlugin() string { if m != nil { @@ -200,7 +200,7 @@ type ListCommonPrefixesResponse struct { func (m *ListCommonPrefixesResponse) Reset() { *m = ListCommonPrefixesResponse{} } func (m *ListCommonPrefixesResponse) String() string { return proto.CompactTextString(m) } func (*ListCommonPrefixesResponse) ProtoMessage() {} -func (*ListCommonPrefixesResponse) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{6} } +func (*ListCommonPrefixesResponse) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{6} } func (m *ListCommonPrefixesResponse) GetPrefixes() []string { if m != nil { @@ -218,7 +218,7 @@ type ListObjectsRequest struct { func (m *ListObjectsRequest) Reset() { *m = ListObjectsRequest{} } func (m *ListObjectsRequest) String() string { return proto.CompactTextString(m) } func (*ListObjectsRequest) ProtoMessage() {} -func (*ListObjectsRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{7} } +func (*ListObjectsRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{7} } func (m *ListObjectsRequest) GetPlugin() string { if m != nil { @@ -248,7 +248,7 @@ type ListObjectsResponse struct { func (m *ListObjectsResponse) Reset() { *m = ListObjectsResponse{} } func (m *ListObjectsResponse) String() string { return proto.CompactTextString(m) } func (*ListObjectsResponse) ProtoMessage() {} -func (*ListObjectsResponse) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{8} } +func (*ListObjectsResponse) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{8} } func (m *ListObjectsResponse) GetKeys() []string { if m != nil { @@ -266,7 +266,7 @@ type DeleteObjectRequest struct { func (m *DeleteObjectRequest) Reset() { *m = DeleteObjectRequest{} } func (m *DeleteObjectRequest) String() string { return proto.CompactTextString(m) } func (*DeleteObjectRequest) ProtoMessage() {} -func (*DeleteObjectRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{9} } +func (*DeleteObjectRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{9} } func (m *DeleteObjectRequest) GetPlugin() string { if m != nil { @@ -299,7 +299,7 @@ type CreateSignedURLRequest struct { func (m *CreateSignedURLRequest) Reset() { *m = CreateSignedURLRequest{} } func (m *CreateSignedURLRequest) String() string { return proto.CompactTextString(m) } func (*CreateSignedURLRequest) ProtoMessage() {} -func (*CreateSignedURLRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{10} } +func (*CreateSignedURLRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{10} } func (m *CreateSignedURLRequest) GetPlugin() string { if m != nil { @@ -336,7 +336,7 @@ type CreateSignedURLResponse struct { func (m *CreateSignedURLResponse) Reset() { *m = CreateSignedURLResponse{} } func (m *CreateSignedURLResponse) String() string { return proto.CompactTextString(m) } func (*CreateSignedURLResponse) ProtoMessage() {} -func (*CreateSignedURLResponse) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{11} } +func (*CreateSignedURLResponse) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{11} } func (m *CreateSignedURLResponse) GetUrl() string { if m != nil { @@ -353,7 +353,7 @@ type ObjectStoreInitRequest struct { func (m *ObjectStoreInitRequest) Reset() { *m = ObjectStoreInitRequest{} } func (m *ObjectStoreInitRequest) String() string { return proto.CompactTextString(m) } func (*ObjectStoreInitRequest) ProtoMessage() {} -func (*ObjectStoreInitRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{12} } +func (*ObjectStoreInitRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{12} } func (m *ObjectStoreInitRequest) GetPlugin() string { if m != nil { @@ -750,9 +750,9 @@ var _ObjectStore_serviceDesc = grpc.ServiceDesc{ Metadata: "ObjectStore.proto", } -func init() { proto.RegisterFile("ObjectStore.proto", fileDescriptor2) } +func init() { proto.RegisterFile("ObjectStore.proto", fileDescriptor3) } -var fileDescriptor2 = []byte{ +var fileDescriptor3 = []byte{ // 577 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xcd, 0x6e, 0xd3, 0x40, 0x10, 0xd6, 0xc6, 0x69, 0x54, 0x4f, 0x22, 0x61, 0xb6, 0x55, 0x30, 0x2e, 0x94, 0xb0, 0x02, 0x29, diff --git a/pkg/plugin/generated/PluginLister.pb.go b/pkg/plugin/generated/PluginLister.pb.go index 0f4fe7c87..a2d7957d9 100644 --- a/pkg/plugin/generated/PluginLister.pb.go +++ b/pkg/plugin/generated/PluginLister.pb.go @@ -26,7 +26,7 @@ type PluginIdentifier struct { func (m *PluginIdentifier) Reset() { *m = PluginIdentifier{} } func (m *PluginIdentifier) String() string { return proto.CompactTextString(m) } func (*PluginIdentifier) ProtoMessage() {} -func (*PluginIdentifier) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{0} } +func (*PluginIdentifier) Descriptor() ([]byte, []int) { return fileDescriptor4, []int{0} } func (m *PluginIdentifier) GetCommand() string { if m != nil { @@ -56,7 +56,7 @@ type ListPluginsResponse struct { func (m *ListPluginsResponse) Reset() { *m = ListPluginsResponse{} } func (m *ListPluginsResponse) String() string { return proto.CompactTextString(m) } func (*ListPluginsResponse) ProtoMessage() {} -func (*ListPluginsResponse) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{1} } +func (*ListPluginsResponse) Descriptor() ([]byte, []int) { return fileDescriptor4, []int{1} } func (m *ListPluginsResponse) GetPlugins() []*PluginIdentifier { if m != nil { @@ -142,9 +142,9 @@ var _PluginLister_serviceDesc = grpc.ServiceDesc{ Metadata: "PluginLister.proto", } -func init() { proto.RegisterFile("PluginLister.proto", fileDescriptor3) } +func init() { proto.RegisterFile("PluginLister.proto", fileDescriptor4) } -var fileDescriptor3 = []byte{ +var fileDescriptor4 = []byte{ // 201 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x0a, 0xc8, 0x29, 0x4d, 0xcf, 0xcc, 0xf3, 0xc9, 0x2c, 0x2e, 0x49, 0x2d, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, diff --git a/pkg/plugin/generated/RestoreItemAction.pb.go b/pkg/plugin/generated/RestoreItemAction.pb.go index 63a92b4c2..da06ffdac 100644 --- a/pkg/plugin/generated/RestoreItemAction.pb.go +++ b/pkg/plugin/generated/RestoreItemAction.pb.go @@ -28,7 +28,7 @@ func (m *RestoreItemActionExecuteRequest) Reset() { *m = RestoreItemActi func (m *RestoreItemActionExecuteRequest) String() string { return proto.CompactTextString(m) } func (*RestoreItemActionExecuteRequest) ProtoMessage() {} func (*RestoreItemActionExecuteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor4, []int{0} + return fileDescriptor5, []int{0} } func (m *RestoreItemActionExecuteRequest) GetPlugin() string { @@ -69,7 +69,7 @@ func (m *RestoreItemActionExecuteResponse) Reset() { *m = RestoreItemAct func (m *RestoreItemActionExecuteResponse) String() string { return proto.CompactTextString(m) } func (*RestoreItemActionExecuteResponse) ProtoMessage() {} func (*RestoreItemActionExecuteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor4, []int{1} + return fileDescriptor5, []int{1} } func (m *RestoreItemActionExecuteResponse) GetItem() []byte { @@ -101,7 +101,7 @@ func (m *RestoreItemActionAppliesToRequest) Reset() { *m = RestoreItemAc func (m *RestoreItemActionAppliesToRequest) String() string { return proto.CompactTextString(m) } func (*RestoreItemActionAppliesToRequest) ProtoMessage() {} func (*RestoreItemActionAppliesToRequest) Descriptor() ([]byte, []int) { - return fileDescriptor4, []int{2} + return fileDescriptor5, []int{2} } func (m *RestoreItemActionAppliesToRequest) GetPlugin() string { @@ -119,7 +119,7 @@ func (m *RestoreItemActionAppliesToResponse) Reset() { *m = RestoreItemA func (m *RestoreItemActionAppliesToResponse) String() string { return proto.CompactTextString(m) } func (*RestoreItemActionAppliesToResponse) ProtoMessage() {} func (*RestoreItemActionAppliesToResponse) Descriptor() ([]byte, []int) { - return fileDescriptor4, []int{3} + return fileDescriptor5, []int{3} } func (m *RestoreItemActionAppliesToResponse) GetResourceSelector() *ResourceSelector { @@ -241,9 +241,9 @@ var _RestoreItemAction_serviceDesc = grpc.ServiceDesc{ Metadata: "RestoreItemAction.proto", } -func init() { proto.RegisterFile("RestoreItemAction.proto", fileDescriptor4) } +func init() { proto.RegisterFile("RestoreItemAction.proto", fileDescriptor5) } -var fileDescriptor4 = []byte{ +var fileDescriptor5 = []byte{ // 332 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0xdd, 0x4e, 0xc2, 0x30, 0x14, 0x4e, 0x81, 0x80, 0x1c, 0x88, 0x3f, 0xbd, 0xd0, 0x06, 0x63, 0x9c, 0xbb, 0x30, 0xc4, 0x1f, diff --git a/pkg/plugin/generated/Shared.pb.go b/pkg/plugin/generated/Shared.pb.go index 29714972e..8f2716da5 100644 --- a/pkg/plugin/generated/Shared.pb.go +++ b/pkg/plugin/generated/Shared.pb.go @@ -18,7 +18,7 @@ type Empty struct { func (m *Empty) Reset() { *m = Empty{} } func (m *Empty) String() string { return proto.CompactTextString(m) } func (*Empty) ProtoMessage() {} -func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{0} } +func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{0} } type Stack struct { Frames []*StackFrame `protobuf:"bytes,1,rep,name=frames" json:"frames,omitempty"` @@ -27,7 +27,7 @@ type Stack struct { func (m *Stack) Reset() { *m = Stack{} } func (m *Stack) String() string { return proto.CompactTextString(m) } func (*Stack) ProtoMessage() {} -func (*Stack) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{1} } +func (*Stack) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{1} } func (m *Stack) GetFrames() []*StackFrame { if m != nil { @@ -45,7 +45,7 @@ type StackFrame struct { func (m *StackFrame) Reset() { *m = StackFrame{} } func (m *StackFrame) String() string { return proto.CompactTextString(m) } func (*StackFrame) ProtoMessage() {} -func (*StackFrame) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{2} } +func (*StackFrame) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{2} } func (m *StackFrame) GetFile() string { if m != nil { @@ -78,7 +78,7 @@ type ResourceIdentifier struct { func (m *ResourceIdentifier) Reset() { *m = ResourceIdentifier{} } func (m *ResourceIdentifier) String() string { return proto.CompactTextString(m) } func (*ResourceIdentifier) ProtoMessage() {} -func (*ResourceIdentifier) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{3} } +func (*ResourceIdentifier) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{3} } func (m *ResourceIdentifier) GetGroup() string { if m != nil { @@ -119,7 +119,7 @@ type ResourceSelector struct { func (m *ResourceSelector) Reset() { *m = ResourceSelector{} } func (m *ResourceSelector) String() string { return proto.CompactTextString(m) } func (*ResourceSelector) ProtoMessage() {} -func (*ResourceSelector) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{4} } +func (*ResourceSelector) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{4} } func (m *ResourceSelector) GetIncludedNamespaces() []string { if m != nil { @@ -164,9 +164,9 @@ func init() { proto.RegisterType((*ResourceSelector)(nil), "generated.ResourceSelector") } -func init() { proto.RegisterFile("Shared.proto", fileDescriptor5) } +func init() { proto.RegisterFile("Shared.proto", fileDescriptor6) } -var fileDescriptor5 = []byte{ +var fileDescriptor6 = []byte{ // 294 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0xc1, 0x4e, 0xb5, 0x30, 0x10, 0x85, 0xc3, 0x05, 0xee, 0xff, 0x33, 0xba, 0xd0, 0x46, 0x93, 0xc6, 0xb8, 0x20, 0xac, 0x58, diff --git a/pkg/plugin/generated/VolumeSnapshotter.pb.go b/pkg/plugin/generated/VolumeSnapshotter.pb.go index b814bae9a..ddb8a2d74 100644 --- a/pkg/plugin/generated/VolumeSnapshotter.pb.go +++ b/pkg/plugin/generated/VolumeSnapshotter.pb.go @@ -28,7 +28,7 @@ type CreateVolumeRequest struct { func (m *CreateVolumeRequest) Reset() { *m = CreateVolumeRequest{} } func (m *CreateVolumeRequest) String() string { return proto.CompactTextString(m) } func (*CreateVolumeRequest) ProtoMessage() {} -func (*CreateVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{0} } +func (*CreateVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{0} } func (m *CreateVolumeRequest) GetPlugin() string { if m != nil { @@ -72,7 +72,7 @@ type CreateVolumeResponse struct { func (m *CreateVolumeResponse) Reset() { *m = CreateVolumeResponse{} } func (m *CreateVolumeResponse) String() string { return proto.CompactTextString(m) } func (*CreateVolumeResponse) ProtoMessage() {} -func (*CreateVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{1} } +func (*CreateVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{1} } func (m *CreateVolumeResponse) GetVolumeID() string { if m != nil { @@ -90,7 +90,7 @@ type GetVolumeInfoRequest struct { func (m *GetVolumeInfoRequest) Reset() { *m = GetVolumeInfoRequest{} } func (m *GetVolumeInfoRequest) String() string { return proto.CompactTextString(m) } func (*GetVolumeInfoRequest) ProtoMessage() {} -func (*GetVolumeInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{2} } +func (*GetVolumeInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{2} } func (m *GetVolumeInfoRequest) GetPlugin() string { if m != nil { @@ -121,7 +121,7 @@ type GetVolumeInfoResponse struct { func (m *GetVolumeInfoResponse) Reset() { *m = GetVolumeInfoResponse{} } func (m *GetVolumeInfoResponse) String() string { return proto.CompactTextString(m) } func (*GetVolumeInfoResponse) ProtoMessage() {} -func (*GetVolumeInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{3} } +func (*GetVolumeInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{3} } func (m *GetVolumeInfoResponse) GetVolumeType() string { if m != nil { @@ -147,7 +147,7 @@ type CreateSnapshotRequest struct { func (m *CreateSnapshotRequest) Reset() { *m = CreateSnapshotRequest{} } func (m *CreateSnapshotRequest) String() string { return proto.CompactTextString(m) } func (*CreateSnapshotRequest) ProtoMessage() {} -func (*CreateSnapshotRequest) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{4} } +func (*CreateSnapshotRequest) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{4} } func (m *CreateSnapshotRequest) GetPlugin() string { if m != nil { @@ -184,7 +184,7 @@ type CreateSnapshotResponse struct { func (m *CreateSnapshotResponse) Reset() { *m = CreateSnapshotResponse{} } func (m *CreateSnapshotResponse) String() string { return proto.CompactTextString(m) } func (*CreateSnapshotResponse) ProtoMessage() {} -func (*CreateSnapshotResponse) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{5} } +func (*CreateSnapshotResponse) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{5} } func (m *CreateSnapshotResponse) GetSnapshotID() string { if m != nil { @@ -201,7 +201,7 @@ type DeleteSnapshotRequest struct { func (m *DeleteSnapshotRequest) Reset() { *m = DeleteSnapshotRequest{} } func (m *DeleteSnapshotRequest) String() string { return proto.CompactTextString(m) } func (*DeleteSnapshotRequest) ProtoMessage() {} -func (*DeleteSnapshotRequest) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{6} } +func (*DeleteSnapshotRequest) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{6} } func (m *DeleteSnapshotRequest) GetPlugin() string { if m != nil { @@ -225,7 +225,7 @@ type GetVolumeIDRequest struct { func (m *GetVolumeIDRequest) Reset() { *m = GetVolumeIDRequest{} } func (m *GetVolumeIDRequest) String() string { return proto.CompactTextString(m) } func (*GetVolumeIDRequest) ProtoMessage() {} -func (*GetVolumeIDRequest) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{7} } +func (*GetVolumeIDRequest) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{7} } func (m *GetVolumeIDRequest) GetPlugin() string { if m != nil { @@ -248,7 +248,7 @@ type GetVolumeIDResponse struct { func (m *GetVolumeIDResponse) Reset() { *m = GetVolumeIDResponse{} } func (m *GetVolumeIDResponse) String() string { return proto.CompactTextString(m) } func (*GetVolumeIDResponse) ProtoMessage() {} -func (*GetVolumeIDResponse) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{8} } +func (*GetVolumeIDResponse) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{8} } func (m *GetVolumeIDResponse) GetVolumeID() string { if m != nil { @@ -266,7 +266,7 @@ type SetVolumeIDRequest struct { func (m *SetVolumeIDRequest) Reset() { *m = SetVolumeIDRequest{} } func (m *SetVolumeIDRequest) String() string { return proto.CompactTextString(m) } func (*SetVolumeIDRequest) ProtoMessage() {} -func (*SetVolumeIDRequest) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{9} } +func (*SetVolumeIDRequest) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{9} } func (m *SetVolumeIDRequest) GetPlugin() string { if m != nil { @@ -296,7 +296,7 @@ type SetVolumeIDResponse struct { func (m *SetVolumeIDResponse) Reset() { *m = SetVolumeIDResponse{} } func (m *SetVolumeIDResponse) String() string { return proto.CompactTextString(m) } func (*SetVolumeIDResponse) ProtoMessage() {} -func (*SetVolumeIDResponse) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{10} } +func (*SetVolumeIDResponse) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{10} } func (m *SetVolumeIDResponse) GetPersistentVolume() []byte { if m != nil { @@ -313,7 +313,7 @@ type VolumeSnapshotterInitRequest struct { func (m *VolumeSnapshotterInitRequest) Reset() { *m = VolumeSnapshotterInitRequest{} } func (m *VolumeSnapshotterInitRequest) String() string { return proto.CompactTextString(m) } func (*VolumeSnapshotterInitRequest) ProtoMessage() {} -func (*VolumeSnapshotterInitRequest) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{11} } +func (*VolumeSnapshotterInitRequest) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{11} } func (m *VolumeSnapshotterInitRequest) GetPlugin() string { if m != nil { @@ -614,9 +614,9 @@ var _VolumeSnapshotter_serviceDesc = grpc.ServiceDesc{ Metadata: "VolumeSnapshotter.proto", } -func init() { proto.RegisterFile("VolumeSnapshotter.proto", fileDescriptor6) } +func init() { proto.RegisterFile("VolumeSnapshotter.proto", fileDescriptor7) } -var fileDescriptor6 = []byte{ +var fileDescriptor7 = []byte{ // 566 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xc1, 0x6e, 0xd3, 0x40, 0x10, 0xd5, 0xda, 0x6e, 0x44, 0x26, 0xa5, 0x0a, 0x9b, 0xa4, 0x58, 0x16, 0x04, 0xe3, 0x0b, 0x51, diff --git a/pkg/plugin/mocks/manager.go b/pkg/plugin/mocks/manager.go index ebf09de96..588f9b74d 100644 --- a/pkg/plugin/mocks/manager.go +++ b/pkg/plugin/mocks/manager.go @@ -5,6 +5,7 @@ package mocks import ( mock "github.com/stretchr/testify/mock" velero "github.com/vmware-tanzu/velero/pkg/plugin/velero" + isv1 "github.com/vmware-tanzu/velero/pkg/plugin/velero/item_snapshotter/v1" ) // Manager is an autogenerated mock type for the Manager type @@ -200,3 +201,48 @@ func (_m *Manager) GetVolumeSnapshotter(name string) (velero.VolumeSnapshotter, return r0, r1 } + +// GetItemSnapshotter provides a mock function with given fields: name +func (_m *Manager) GetItemSnapshotter(name string) (isv1.ItemSnapshotter, error) { + ret := _m.Called(name) + + var r0 isv1.ItemSnapshotter + if rf, ok := ret.Get(0).(func(string) isv1.ItemSnapshotter); ok { + r0 = rf(name) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(isv1.ItemSnapshotter) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(string) error); ok { + r1 = rf(name) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} +// GetItemSnapshotters provides a mock function with given fields: +func (_m *Manager) GetItemSnapshotters() ([]isv1.ItemSnapshotter, error) { + ret := _m.Called() + + var r0 []isv1.ItemSnapshotter + if rf, ok := ret.Get(0).(func() []isv1.ItemSnapshotter); ok { + r0 = rf() + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]isv1.ItemSnapshotter) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func() error); ok { + r1 = rf() + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} \ No newline at end of file diff --git a/pkg/plugin/proto/ItemSnapshotter.proto b/pkg/plugin/proto/ItemSnapshotter.proto new file mode 100644 index 000000000..8aa62a899 --- /dev/null +++ b/pkg/plugin/proto/ItemSnapshotter.proto @@ -0,0 +1,94 @@ +syntax = "proto3"; +package generated; + +import "Shared.proto"; + +message ItemSnapshotterAppliesToRequest { + string plugin = 1; +} + +message ItemSnapshotterAppliesToResponse { + ResourceSelector ResourceSelector = 1; +} + +message AlsoHandlesRequest { + string plugin = 1; + bytes item = 2; + bytes backup = 3; +} + +message AlsoHandlesResponse { + repeated ResourceIdentifier handledItems = 1; +} + +message SnapshotItemRequest { + string plugin = 1; + bytes item = 2; + map params = 3; + bytes backup = 4; +} + +message SnapshotItemResponse { + bytes item = 1; + string snapshotID = 2; + map snapshotMetadata = 3; + repeated ResourceIdentifier additionalItems = 4; + repeated ResourceIdentifier handledItems = 5; +} + +message ProgressRequest { + string plugin = 1; + ResourceIdentifier itemID = 2; + string snapshotID = 3; + bytes backup = 4; +} + +message ProgressResponse { + string phase = 1; + int64 itemsCompleted = 2; + int64 itemsToComplete = 3; + int64 started = 4; + int64 startedNano = 5; + int64 updated = 6; + int64 updatedNano = 7; + string err = 8; +} + +message DeleteItemSnapshotRequest { + string plugin = 1; + string snapshotID = 2; + bytes itemFromBackup = 3; + map metadata = 4; + map params = 5; +} + +message CreateItemFromSnapshotRequest { + string plugin = 1; + bytes item = 2; + string snapshotID = 3; + bytes itemFromBackup = 4; + map snapshotMetadata = 5; + map params = 6; + bytes restore = 7; +} + +message CreateItemFromSnapshotResponse { + bytes item = 1; + repeated ResourceIdentifier additionalItems = 2; + bool skipRestore = 3; +} + +message ItemSnapshotterInitRequest { + string plugin = 1; + map config = 2; +} + +service ItemSnapshotter { + rpc Init(ItemSnapshotterInitRequest) returns (Empty); + rpc AppliesTo(ItemSnapshotterAppliesToRequest) returns (ItemSnapshotterAppliesToResponse); + rpc AlsoHandles(AlsoHandlesRequest) returns (AlsoHandlesResponse); + rpc SnapshotItem(SnapshotItemRequest) returns (SnapshotItemResponse); + rpc Progress(ProgressRequest) returns (ProgressResponse); + rpc DeleteSnapshot(DeleteItemSnapshotRequest) returns (Empty); + rpc CreateItemFromSnapshot(CreateItemFromSnapshotRequest) returns (CreateItemFromSnapshotResponse); +} diff --git a/pkg/plugin/velero/item_snapshotter/v1/item_snapshotter.go b/pkg/plugin/velero/item_snapshotter/v1/item_snapshotter.go new file mode 100644 index 000000000..7d9ddcd00 --- /dev/null +++ b/pkg/plugin/velero/item_snapshotter/v1/item_snapshotter.go @@ -0,0 +1,197 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package v1 + +import ( + "context" + "fmt" + "time" + + "github.com/vmware-tanzu/velero/pkg/plugin/velero" + + "k8s.io/apimachinery/pkg/runtime" + + api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" +) + +type AlsoHandlesInput struct { + // Item is the item that will be snapshotted + Item runtime.Unstructured + // Backup is the representation of the backup resource being processed by Velero. + Backup *api.Backup +} + +type SnapshotItemInput struct { + // Item is the item to snapshot + Item runtime.Unstructured + // Params are parameters to the snapshot + Params map[string]string + // Backup is the representation of the backup resource being processed by Velero. + Backup *api.Backup +} + +type SnapshotItemOutput struct { + // UpdatedItem is the Item that should be included in the backup. It can optionally be modified during the Snapshot + UpdatedItem runtime.Unstructured + // SnapshotID identifies the snapshot that was taken + SnapshotID string + // SnapshotMetadata is information in addition to the SnapshotID that the + // plugin wants to store in the backup. SnapshotMetadata will be passed + // back in for DeleteSnapshot and CreateItemFromSnapshot + SnapshotMetadata map[string]string + // AdditionalItems are resources that need to be included in the backup to support this snapshhot + AdditionalItems []velero.ResourceIdentifier + // Items that were handled by this snapshot that should be excluded from the backup + HandledItems []velero.ResourceIdentifier +} + +// ProgressInput contains the input parameters for the ItemSnapshotter's Progress function. +type ProgressInput struct { + // ItemID is the id of item that was stored in the backup + ItemID velero.ResourceIdentifier + // SnapshotID is the snapshot ID returned by ItemSnapshotter + SnapshotID string + // Backup is the representation of the backup resource being processed by Velero. + Backup *api.Backup +} + +// SnapshotPhase is the lifecycle phase of a Velero item snapshot. +type SnapshotPhase string + +const ( + // SnapshotPhaseInProgress means the snapshot of the item has been taken and the point-in-time has been preserved, + // but the snapshot is not ready for use yet + SnapshotPhaseInProgress = SnapshotPhase("InProgress") + + // SnapshotPhaseCompleted means the item snapshot was successfully created and can be restored from + SnapshotPhaseCompleted = SnapshotPhase("Completed") + + // SnapshotPhaseFailed means the item snapshot was unable to be completed + SnapshotPhaseFailed = SnapshotPhase("Failed") +) + +func SnapshotPhaseFromString(phase string) (SnapshotPhase, error) { + switch phase { + case string(SnapshotPhaseInProgress): + return SnapshotPhaseInProgress, nil + case string(SnapshotPhaseCompleted): + return SnapshotPhaseCompleted, nil + case string(SnapshotPhaseFailed): + return SnapshotPhaseFailed, nil + default: + return SnapshotPhase(""), fmt.Errorf("%s is not a valid SnapshotPhase", phase) + } +} + +type ProgressOutput struct { + // Phase of the snapshot. If the phase is SnapshotPhaseFailed, the error will be in the Err string + Phase SnapshotPhase + // Err is a message about the error(s) that occurred during the processing of the snapshot + Err string + // ItemsCompleted is the number of items that have been completed in processing of the snapshot + // This is simply to show progress, when Phase goes to SnapshotPhaseCompleted ItemsCompleted and ItemsToComplete + // should be the same. This could be blocks to copy, files to copy, or anything else. + ItemsCompleted int64 + // ItemsToComplete is the number of items that need to be completed + ItemsToComplete int64 + // Started indicates when processing on the snapshot began (usually the time the snapshot was taken) + Started time.Time + // Updated indicates the time the status was last updated. Time 0 (time.Unix(0, 0)) is returned if unknown. + Updated time.Time +} + +type DeleteSnapshotInput struct { + // SnapshotID is the snapshot to delete + SnapshotID string + // ItemFromBackup is the resource that was included in the backup + ItemFromBackup runtime.Unstructured + // SnapshotMetadata is the metadata that was returned when the snapshot was originally taken + SnapshotMetadata map[string]string + // Params are parameters to the deletion + Params map[string]string +} + +type CreateItemInput struct { + // The snapshotted item at this stage of the restore (RestoreItemActions may + // have modified the item prior to CreateItemFromSnapshot being called) + SnapshottedItem runtime.Unstructured + // SnapshotID is the snapshot to create the item from + SnapshotID string + // ItemFromBackup is the snapshotted item that was stored in the backup + ItemFromBackup runtime.Unstructured + // SnapshotMetadata is the metadata that was returned when the snapshot was originally taken + SnapshotMetadata map[string]string + // Params are parameters to the deletion + Params map[string]string + // Restore is the representation of the restore resource being processed by Velero. + Restore *api.Restore +} + +type CreateItemOutput struct { + // UpdatedItem is the item being restored mutated by ItemAction. + UpdatedItem runtime.Unstructured + + // AdditionalItems is a list of additional related items that should + // be restored. + AdditionalItems []velero.ResourceIdentifier + + // SkipRestore tells velero to stop executing further actions + // on this item, and skip the restore step. When this field's + // value is true, AdditionalItems will be ignored. + SkipRestore bool +} + +// ItemSnapshotter handles snapshots on an individual item being backed up. +type ItemSnapshotter interface { + + // Init prepares the ItemSnapshotter for usage using the provided map of + // configuration key-value pairs. It returns an error if the ItemSnapshotter + // cannot be initialized from the provided config. + Init(config map[string]string) error + + // AppliesTo returns information about which resources this action should be invoked for. + // An ItemSnapshotter's SnapshotItem method will only be invoked on items that match the returned + // selector. A zero-valued ResourceSelector matches all resources. + AppliesTo() (velero.ResourceSelector, error) + + // AlsoHandles is called for each item this ItemSnapshotter should handle and returns any items + // which will be handled by this plugin when snapshotting the item. These items will be excluded from the + // items being backed up. AlsoHandles will be called before SnapshotItem is called. For example, a database may expose + // a database resource that can be snapshotted. If the database uses a PVC that will be snapshotted/backed up as + // part of the database snapshot, that PVC should be returned when AlsoHandles is invoked. This is different from + // AdditionalItems (returned in SnapshotItemOutput and CreateItemOutput) which are specifying additional resources + // that Velero should store in the backup or create. + AlsoHandles(input *AlsoHandlesInput) ([]velero.ResourceIdentifier, error) + + // SnapshotItem causes the ItemSnapshotter to snapshot the specified item. It may also + // perform arbitrary logic with the item being backed up, including mutating the item itself prior to backup. + // The item (unmodified or modified) should be returned, along with an optional slice of ResourceIdentifiers specifying + // additional related items that should be backed up. + // A caller can pass a context that includes a timeout. If the time to take the snapshot exceeds the + // time in the context, the plugin may abort the snapshot. The context timeout does not apply to upload + // time that occurs after SnapshotItem returns + SnapshotItem(ctx context.Context, input *SnapshotItemInput) (*SnapshotItemOutput, error) + + // Progress will return the progress of a snapshot that is being uploaded + Progress(input *ProgressInput) (*ProgressOutput, error) + + // DeleteSnapshot removes a snapshot + DeleteSnapshot(ctx context.Context, input *DeleteSnapshotInput) error + + // CreateItemFromSnapshot creates a new item from the snapshot + CreateItemFromSnapshot(ctx context.Context, input *CreateItemInput) (*CreateItemOutput, error) +} diff --git a/pkg/plugin/velero/item_snapshotter/v1/mocks/item_snapshotter.go b/pkg/plugin/velero/item_snapshotter/v1/mocks/item_snapshotter.go new file mode 100644 index 000000000..940b85426 --- /dev/null +++ b/pkg/plugin/velero/item_snapshotter/v1/mocks/item_snapshotter.go @@ -0,0 +1,157 @@ +// Code generated by mockery v0.0.0-dev. DO NOT EDIT. + +package mocks + +import ( + context "context" + mock "github.com/stretchr/testify/mock" + v1 "github.com/vmware-tanzu/velero/pkg/plugin/velero/item_snapshotter/v1" + + velero "github.com/vmware-tanzu/velero/pkg/plugin/velero" +) + +// ItemSnapshotter is an autogenerated mock type for the ItemSnapshotter type +type ItemSnapshotter struct { + mock.Mock +} + +// AlsoHandles provides a mock function with given fields: input +func (_m *ItemSnapshotter) AlsoHandles(input *v1.AlsoHandlesInput) ([]velero.ResourceIdentifier, error) { + ret := _m.Called(input) + + var r0 []velero.ResourceIdentifier + if rf, ok := ret.Get(0).(func(*v1.AlsoHandlesInput) []velero.ResourceIdentifier); ok { + r0 = rf(input) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]velero.ResourceIdentifier) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(*v1.AlsoHandlesInput) error); ok { + r1 = rf(input) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// AppliesTo provides a mock function with given fields: +func (_m *ItemSnapshotter) AppliesTo() (velero.ResourceSelector, error) { + ret := _m.Called() + + var r0 velero.ResourceSelector + if rf, ok := ret.Get(0).(func() velero.ResourceSelector); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(velero.ResourceSelector) + } + + var r1 error + if rf, ok := ret.Get(1).(func() error); ok { + r1 = rf() + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// CreateItemFromSnapshot provides a mock function with given fields: ctx, input +func (_m *ItemSnapshotter) CreateItemFromSnapshot(ctx context.Context, input *v1.CreateItemInput) (*v1.CreateItemOutput, error) { + ret := _m.Called(ctx, input) + + var r0 *v1.CreateItemOutput + if rf, ok := ret.Get(0).(func(context.Context, *v1.CreateItemInput) *v1.CreateItemOutput); ok { + r0 = rf(ctx, input) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*v1.CreateItemOutput) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *v1.CreateItemInput) error); ok { + r1 = rf(ctx, input) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// DeleteSnapshot provides a mock function with given fields: ctx, input +func (_m *ItemSnapshotter) DeleteSnapshot(ctx context.Context, input *v1.DeleteSnapshotInput) error { + ret := _m.Called(ctx, input) + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context, *v1.DeleteSnapshotInput) error); ok { + r0 = rf(ctx, input) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// Init provides a mock function with given fields: config +func (_m *ItemSnapshotter) Init(config map[string]string) error { + ret := _m.Called(config) + + var r0 error + if rf, ok := ret.Get(0).(func(map[string]string) error); ok { + r0 = rf(config) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// Progress provides a mock function with given fields: input +func (_m *ItemSnapshotter) Progress(input *v1.ProgressInput) (*v1.ProgressOutput, error) { + ret := _m.Called(input) + + var r0 *v1.ProgressOutput + if rf, ok := ret.Get(0).(func(*v1.ProgressInput) *v1.ProgressOutput); ok { + r0 = rf(input) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*v1.ProgressOutput) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(*v1.ProgressInput) error); ok { + r1 = rf(input) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// SnapshotItem provides a mock function with given fields: ctx, input +func (_m *ItemSnapshotter) SnapshotItem(ctx context.Context, input *v1.SnapshotItemInput) (*v1.SnapshotItemOutput, error) { + ret := _m.Called(ctx, input) + + var r0 *v1.SnapshotItemOutput + if rf, ok := ret.Get(0).(func(context.Context, *v1.SnapshotItemInput) *v1.SnapshotItemOutput); ok { + r0 = rf(ctx, input) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*v1.SnapshotItemOutput) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *v1.SnapshotItemInput) error); ok { + r1 = rf(ctx, input) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} diff --git a/site/content/docs/main/custom-plugins.md b/site/content/docs/main/custom-plugins.md index 1789f68f9..3e2d72832 100644 --- a/site/content/docs/main/custom-plugins.md +++ b/site/content/docs/main/custom-plugins.md @@ -54,10 +54,14 @@ 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 -- **Volume Snapshotter** - creates volume snapshots (during backup) and restores volumes from snapshots (during restore) +- **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. - **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 From 2c240c2830dbbb439aed14433476281f6d4e5eda Mon Sep 17 00:00:00 2001 From: Xun Jiang Date: Wed, 17 Nov 2021 18:04:56 +0800 Subject: [PATCH 052/136] Use logrusr instead of zap. logrusr is a open source convertor, which can convert logrus logger into logr. By using logrusr, velero can use exsiting formatted logrus logger, other than introducing zap as a new logger. Signed-off-by: Xun Jiang --- go.mod | 1 + go.sum | 3 +++ pkg/cmd/server/server.go | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 81d56baa5..df883ede5 100644 --- a/go.mod +++ b/go.mod @@ -9,6 +9,7 @@ require ( github.com/Azure/go-autorest/autorest/to v0.3.0 github.com/Azure/go-autorest/autorest/validation v0.2.0 // indirect github.com/aws/aws-sdk-go v1.28.2 + github.com/bombsimon/logrusr v1.1.0 github.com/evanphx/json-patch v4.11.0+incompatible github.com/fatih/color v1.13.0 github.com/gobwas/glob v0.2.3 diff --git a/go.sum b/go.sum index 9d7658615..5084b6c5b 100644 --- a/go.sum +++ b/go.sum @@ -128,6 +128,8 @@ github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqO github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/bombsimon/logrusr v1.1.0 h1:Y03FI4Z/Shyrc9jF26vuaUbnPxC5NMJnTtJA/3Lihq8= +github.com/bombsimon/logrusr v1.1.0/go.mod h1:Jq0nHtvxabKE5EMwAAdgTaz7dfWE8C4i11NOltxGQpc= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= @@ -427,6 +429,7 @@ github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8 github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= diff --git a/pkg/cmd/server/server.go b/pkg/cmd/server/server.go index bbd0f346b..5a00648c4 100644 --- a/pkg/cmd/server/server.go +++ b/pkg/cmd/server/server.go @@ -27,6 +27,7 @@ import ( "strings" "time" + "github.com/bombsimon/logrusr" "github.com/pkg/errors" "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/sirupsen/logrus" @@ -73,7 +74,6 @@ import ( ctrl "sigs.k8s.io/controller-runtime" - "sigs.k8s.io/controller-runtime/pkg/log/zap" "sigs.k8s.io/controller-runtime/pkg/manager" "github.com/vmware-tanzu/velero/internal/storage" @@ -303,7 +303,7 @@ func newServer(f client.Factory, config serverConfig, logger *logrus.Logger) (*s velerov1api.AddToScheme(scheme) corev1api.AddToScheme(scheme) - ctrl.SetLogger(zap.New()) + ctrl.SetLogger(logrusr.NewLogger(logger)) mgr, err := ctrl.NewManager(clientConfig, ctrl.Options{ Scheme: scheme, From fc2929455257ab13ee051a18a9eb774c5a9e5d2a Mon Sep 17 00:00:00 2001 From: Xun Jiang/Bruce Jiang <59276555+blackpiglet@users.noreply.github.com> Date: Wed, 17 Nov 2021 22:26:49 +0800 Subject: [PATCH 053/136] =?UTF-8?q?fix:=20modify=20generated=20from=20sche?= =?UTF-8?q?dule's=20backup=20name=20timestamp=20to=20UTC=20ti=E2=80=A6=20(?= =?UTF-8?q?#4353)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: modify generated from schedule's backup name timestamp to UTC timezone fix #4279 When backup is created from schedule, and the backup name is not specified, a containing-timestamp generated name will be used. Due to velero client not set timezone to UTC, a local timezone will be used for the generated name. Signed-off-by: Xun Jiang * fix: modify generated from schedule's backup name timestamp to UTC timezone fix #4279 When backup is created from schedule, and the backup name is not specified, a containing-timestamp generated name will be used. Due to velero client not set timezone to UTC, a local timezone will be used for the generated name. Signed-off-by: Xun Jiang * fix: modify generated from schedule's backup name timestamp to UTC timezone fix #4279 When backup is created from schedule, and the backup name is not specified, a containing-timestamp generated name will be used. Due to velero client not set timezone to UTC, a local timezone will be used for the generated name. Signed-off-by: Xun Jiang * modify changelog description Reword the changelog description according to comments. Signed-off-by: Xun Jiang Co-authored-by: jxun Co-authored-by: Xun Jiang --- changelogs/unreleased/4353-jxun | 1 + pkg/cmd/cli/backup/create.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/4353-jxun diff --git a/changelogs/unreleased/4353-jxun b/changelogs/unreleased/4353-jxun new file mode 100644 index 000000000..310a9e632 --- /dev/null +++ b/changelogs/unreleased/4353-jxun @@ -0,0 +1 @@ +Modify the timestamp in the name of a backup generated from schedule to use UTC. diff --git a/pkg/cmd/cli/backup/create.go b/pkg/cmd/cli/backup/create.go index 9c1d4ffe1..e0eb06b5c 100644 --- a/pkg/cmd/cli/backup/create.go +++ b/pkg/cmd/cli/backup/create.go @@ -322,7 +322,7 @@ func (o *CreateOptions) BuildBackup(namespace string) (*velerov1api.Backup, erro return nil, err } if o.Name == "" { - o.Name = schedule.TimestampedName(time.Now()) + o.Name = schedule.TimestampedName(time.Now().UTC()) } backupBuilder = builder.ForBackup(namespace, o.Name). FromSchedule(schedule) From e09837cc4c7d36740f05b7dd3435f88534b27208 Mon Sep 17 00:00:00 2001 From: danfengl Date: Thu, 18 Nov 2021 08:50:50 +0000 Subject: [PATCH 054/136] Fix snapshot e2e test issue of jsonpath Signed-off-by: danfengl --- changelogs/unreleased/4372-danfengliu | 1 + test/e2e/velero_utils.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/4372-danfengliu diff --git a/changelogs/unreleased/4372-danfengliu b/changelogs/unreleased/4372-danfengliu new file mode 100644 index 000000000..ca34a1b46 --- /dev/null +++ b/changelogs/unreleased/4372-danfengliu @@ -0,0 +1 @@ +Fix snapshot e2e test issue of jsonpath \ No newline at end of file diff --git a/test/e2e/velero_utils.go b/test/e2e/velero_utils.go index 7e8a8bb6a..09ef1407f 100644 --- a/test/e2e/velero_utils.go +++ b/test/e2e/velero_utils.go @@ -422,7 +422,7 @@ func veleroAddPluginsForProvider(ctx context.Context, veleroCLI string, veleroNa func waitForVSphereUploadCompletion(ctx context.Context, timeout time.Duration, namespace string) error { err := wait.PollImmediate(time.Minute, timeout, func() (bool, error) { checkSnapshotCmd := exec.CommandContext(ctx, "kubectl", - "get", "-n", namespace, "snapshots.backupdriver.cnsdp.vmware.com", "-o=jsonpath='{range .items[*]}{.spec.resourceHandle.name}{\"=\"}{.status.phase}{\"\\n\"}'") + "get", "-n", namespace, "snapshots.backupdriver.cnsdp.vmware.com", "-o=jsonpath='{range .items[*]}{.spec.resourceHandle.name}{\"=\"}{.status.phase}{\"\\n\"}{end}'") fmt.Printf("checkSnapshotCmd cmd =%v\n", checkSnapshotCmd) stdout, stderr, err := veleroexec.RunCommand(checkSnapshotCmd) if err != nil { From 748cf86aa78fb1f4b15954390b77850428cf17d4 Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Thu, 18 Nov 2021 16:39:49 +0800 Subject: [PATCH 055/136] Add the key for GKE zone for AZ collection Signed-off-by: Daniel Jiang --- changelogs/unreleased/4376-reasonerjt | 1 + pkg/backup/item_backupper.go | 3 ++- pkg/backup/item_backupper_test.go | 13 +++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/4376-reasonerjt diff --git a/changelogs/unreleased/4376-reasonerjt b/changelogs/unreleased/4376-reasonerjt new file mode 100644 index 000000000..73406dade --- /dev/null +++ b/changelogs/unreleased/4376-reasonerjt @@ -0,0 +1 @@ +Add the key for GKE zone for AZ collection \ No newline at end of file diff --git a/pkg/backup/item_backupper.go b/pkg/backup/item_backupper.go index 72be1bd7f..e02920c20 100644 --- a/pkg/backup/item_backupper.go +++ b/pkg/backup/item_backupper.go @@ -401,6 +401,7 @@ const ( awsEbsCsiZoneKey = "topology.ebs.csi.aws.com/zone" azureCsiZoneKey = "topology.disk.csi.azure.com/zone" + gkeCsiZoneKey = "topology.gke.io/zone" ) // takePVSnapshot triggers a snapshot for the volume/disk underlying a PersistentVolume if the provided @@ -439,7 +440,7 @@ func (ib *itemBackupper) takePVSnapshot(obj runtime.Unstructured, log logrus.Fie if !labelFound { var k string log.Infof("label %q is not present on PersistentVolume", zoneLabelDeprecated) - k, pvFailureDomainZone = zoneFromPVNodeAffinity(pv, awsEbsCsiZoneKey, azureCsiZoneKey, zoneLabel, zoneLabelDeprecated) + k, pvFailureDomainZone = zoneFromPVNodeAffinity(pv, awsEbsCsiZoneKey, azureCsiZoneKey, gkeCsiZoneKey, zoneLabel, zoneLabelDeprecated) if pvFailureDomainZone != "" { log.Infof("zone info from nodeAffinity requirements: %s, key: %s", pvFailureDomainZone, k) } else { diff --git a/pkg/backup/item_backupper_test.go b/pkg/backup/item_backupper_test.go index 580207a0f..819ca54d8 100644 --- a/pkg/backup/item_backupper_test.go +++ b/pkg/backup/item_backupper_test.go @@ -51,7 +51,9 @@ func Test_zoneFromPVNodeAffinity(t *testing.T) { keys := []string{ awsEbsCsiZoneKey, azureCsiZoneKey, + gkeCsiZoneKey, zoneLabel, + zoneLabelDeprecated, } tests := []struct { name string @@ -81,6 +83,17 @@ func Test_zoneFromPVNodeAffinity(t *testing.T) { wantKey: "topology.disk.csi.azure.com/zone", wantValue: "us-central", }, + { + name: "GCP CSI Volume", + pv: builder.ForPersistentVolume("gcpcsi").NodeAffinityRequired( + builder.ForNodeSelector( + *builder.NewNodeSelectorTermBuilder().WithMatchExpression("topology.gke.io/zone", + "In", "us-west1-a").Result(), + ).Result(), + ).Result(), + wantKey: "topology.gke.io/zone", + wantValue: "us-west1-a", + }, { name: "AWS CSI Volume with multiple zone value, returns the first", pv: builder.ForPersistentVolume("awscsi").NodeAffinityRequired( From 58325050ec029f8564faa2de4a223f74a36836e7 Mon Sep 17 00:00:00 2001 From: ming qiu Date: Mon, 22 Nov 2021 15:34:48 +0800 Subject: [PATCH 056/136] Adjust structure of e2e test codes Put every test moduels into seperate packages and all velero install parameters integrated into one struct Signed-off-by: Ming --- changelogs/unreleased/4386-mqiu | 1 + test/e2e/{backup_test.go => backup/backup.go} | 86 +++++---- .../enable_api_group_versions.go} | 72 +++----- test/e2e/e2e_suite_test.go | 77 ++++---- .../multiple_namespaces.go} | 109 ++++++----- test/e2e/types.go | 52 ++++++ test/e2e/upgrade/upgrade.go | 170 ++++++++++++++++++ test/e2e/upgrade_test.go | 164 ----------------- test/e2e/{ => util/k8s}/client.go | 24 +-- test/e2e/{ => util/k8s}/common.go | 14 +- test/e2e/{ => util/k8s}/namespace.go | 34 +++- test/e2e/{ => util/k8s}/serviceaccount.go | 12 +- .../e2e/{ => util/kibishii}/kibishii_utils.go | 41 ++--- test/e2e/{ => util/velero}/install.go | 54 +++--- test/e2e/{ => util/velero}/velero_utils.go | 162 ++++++++--------- 15 files changed, 571 insertions(+), 501 deletions(-) create mode 100644 changelogs/unreleased/4386-mqiu rename test/e2e/{backup_test.go => backup/backup.go} (51%) rename test/e2e/{enable_api_group_versions_test.go => basic/enable_api_group_versions.go} (86%) rename test/e2e/{multiple_namespaces_test.go => scale/multiple_namespaces.go} (50%) create mode 100644 test/e2e/types.go create mode 100644 test/e2e/upgrade/upgrade.go delete mode 100644 test/e2e/upgrade_test.go rename test/e2e/{ => util/k8s}/client.go (82%) rename test/e2e/{ => util/k8s}/common.go (85%) rename test/e2e/{ => util/k8s}/namespace.go (59%) rename test/e2e/{ => util/k8s}/serviceaccount.go (81%) rename test/e2e/{ => util/kibishii}/kibishii_utils.go (76%) rename test/e2e/{ => util/velero}/install.go (86%) rename test/e2e/{ => util/velero}/velero_utils.go (82%) diff --git a/changelogs/unreleased/4386-mqiu b/changelogs/unreleased/4386-mqiu new file mode 100644 index 000000000..568a1af77 --- /dev/null +++ b/changelogs/unreleased/4386-mqiu @@ -0,0 +1 @@ +Adjust structure of e2e test codes diff --git a/test/e2e/backup_test.go b/test/e2e/backup/backup.go similarity index 51% rename from test/e2e/backup_test.go rename to test/e2e/backup/backup.go index 9d5f92baf..e5ff9bf26 100644 --- a/test/e2e/backup_test.go +++ b/test/e2e/backup/backup.go @@ -13,7 +13,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. */ -package e2e +package backup import ( "context" @@ -23,98 +23,93 @@ import ( "github.com/google/uuid" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" + + . "github.com/vmware-tanzu/velero/test/e2e" + k8sutils "github.com/vmware-tanzu/velero/test/e2e/util/k8s" + kibishiiutils "github.com/vmware-tanzu/velero/test/e2e/util/kibishii" + veleroutils "github.com/vmware-tanzu/velero/test/e2e/util/velero" ) -var ( - uuidgen uuid.UUID -) - -// Test backup and restore of Kibishi using restic -var _ = Describe("[Restic] Velero tests on cluster using the plugin provider for object storage and Restic for volume backups", backup_restore_with_restic) - -var _ = Describe("[Snapshot] Velero tests on cluster using the plugin provider for object storage and snapshots for volume backups", backup_restore_with_snapshots) - -func backup_restore_with_snapshots() { - backup_restore_test(true) +func BackupRestoreWithSnapshots() { + BackupRestoreTest(true) } -func backup_restore_with_restic() { - backup_restore_test(false) +func BackupRestoreWithRestic() { + BackupRestoreTest(false) } -func backup_restore_test(useVolumeSnapshots bool) { +func BackupRestoreTest(useVolumeSnapshots bool) { var ( backupName, restoreName string ) - client, err := newTestClient() + client, err := k8sutils.NewTestClient() Expect(err).To(Succeed(), "Failed to instantiate cluster client for backup tests") BeforeEach(func() { - if useVolumeSnapshots && cloudProvider == "kind" { + if useVolumeSnapshots && VeleroCfg.CloudProvider == "kind" { Skip("Volume snapshots not supported on kind") } var err error flag.Parse() - uuidgen, err = uuid.NewRandom() + UUIDgen, err = uuid.NewRandom() Expect(err).To(Succeed()) - if installVelero { - Expect(veleroInstall(context.Background(), veleroCLI, veleroImage, resticHelperImage, plugins, veleroNamespace, cloudProvider, objectStoreProvider, useVolumeSnapshots, - cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, crdsVersion, "", registryCredentialFile)).To(Succeed()) + if VeleroCfg.InstallVelero { + Expect(veleroutils.VeleroInstall(context.Background(), &VeleroCfg, "", useVolumeSnapshots)).To(Succeed()) } }) AfterEach(func() { - if installVelero { - err = veleroUninstall(context.Background(), veleroCLI, veleroNamespace) + if VeleroCfg.InstallVelero { + err = veleroutils.VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) Expect(err).To(Succeed()) } }) When("kibishii is the sample workload", func() { It("should be successfully backed up and restored to the default BackupStorageLocation", func() { - backupName = "backup-" + uuidgen.String() - restoreName = "restore-" + uuidgen.String() + backupName = "backup-" + UUIDgen.String() + restoreName = "restore-" + UUIDgen.String() // Even though we are using Velero's CloudProvider plugin for object storage, the kubernetes cluster is running on // KinD. So use the kind installation for Kibishii. - Expect(runKibishiiTests(client, cloudProvider, veleroCLI, veleroNamespace, backupName, restoreName, "", useVolumeSnapshots, registryCredentialFile)).To(Succeed(), + Expect(kibishiiutils.RunKibishiiTests(client, VeleroCfg.CloudProvider, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backupName, restoreName, "", useVolumeSnapshots, VeleroCfg.RegistryCredentialFile)).To(Succeed(), "Failed to successfully backup and restore Kibishii namespace") }) It("should successfully back up and restore to an additional BackupStorageLocation with unique credentials", func() { - if additionalBSLProvider == "" { + if VeleroCfg.AdditionalBSLProvider == "" { Skip("no additional BSL provider given, not running multiple BackupStorageLocation with unique credentials tests") } - if additionalBSLBucket == "" { + if VeleroCfg.AdditionalBSLBucket == "" { Skip("no additional BSL bucket given, not running multiple BackupStorageLocation with unique credentials tests") } - if additionalBSLCredentials == "" { + if VeleroCfg.AdditionalBSLCredentials == "" { Skip("no additional BSL credentials given, not running multiple BackupStorageLocation with unique credentials tests") } - Expect(veleroAddPluginsForProvider(context.TODO(), veleroCLI, veleroNamespace, additionalBSLProvider, addBSLPlugins)).To(Succeed()) + Expect(veleroutils.VeleroAddPluginsForProvider(context.TODO(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, VeleroCfg.AdditionalBSLProvider, VeleroCfg.AddBSLPlugins)).To(Succeed()) // Create Secret for additional BSL - secretName := fmt.Sprintf("bsl-credentials-%s", uuidgen) - secretKey := fmt.Sprintf("creds-%s", additionalBSLProvider) + secretName := fmt.Sprintf("bsl-credentials-%s", UUIDgen) + secretKey := fmt.Sprintf("creds-%s", VeleroCfg.AdditionalBSLProvider) files := map[string]string{ - secretKey: additionalBSLCredentials, + secretKey: VeleroCfg.AdditionalBSLCredentials, } - Expect(createSecretFromFiles(context.TODO(), client, veleroNamespace, secretName, files)).To(Succeed()) + Expect(k8sutils.CreateSecretFromFiles(context.TODO(), client, VeleroCfg.VeleroNamespace, secretName, files)).To(Succeed()) // Create additional BSL using credential - additionalBsl := fmt.Sprintf("bsl-%s", uuidgen) - Expect(veleroCreateBackupLocation(context.TODO(), - veleroCLI, - veleroNamespace, + additionalBsl := fmt.Sprintf("bsl-%s", UUIDgen) + Expect(veleroutils.VeleroCreateBackupLocation(context.TODO(), + VeleroCfg.VeleroCLI, + VeleroCfg.VeleroNamespace, additionalBsl, - additionalBSLProvider, - additionalBSLBucket, - additionalBSLPrefix, - additionalBSLConfig, + VeleroCfg.AdditionalBSLProvider, + VeleroCfg.AdditionalBSLBucket, + VeleroCfg.AdditionalBSLPrefix, + VeleroCfg.AdditionalBSLConfig, secretName, secretKey, )).To(Succeed()) @@ -127,11 +122,10 @@ func backup_restore_test(useVolumeSnapshots bool) { // We limit the length of backup name here to avoid the issue of vsphere plugin https://github.com/vmware-tanzu/velero-plugin-for-vsphere/issues/370 // We can remove the logic once the issue is fixed if bsl == "default" { - backupName = fmt.Sprintf("%s-%s", backupName, uuidgen) - restoreName = fmt.Sprintf("%s-%s", restoreName, uuidgen) + backupName = fmt.Sprintf("%s-%s", backupName, UUIDgen) + restoreName = fmt.Sprintf("%s-%s", restoreName, UUIDgen) } - - Expect(runKibishiiTests(client, cloudProvider, veleroCLI, veleroNamespace, backupName, restoreName, bsl, useVolumeSnapshots, registryCredentialFile)).To(Succeed(), + Expect(kibishiiutils.RunKibishiiTests(client, VeleroCfg.CloudProvider, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backupName, restoreName, bsl, useVolumeSnapshots, VeleroCfg.RegistryCredentialFile)).To(Succeed(), "Failed to successfully backup and restore Kibishii namespace using BSL %s", bsl) } }) diff --git a/test/e2e/enable_api_group_versions_test.go b/test/e2e/basic/enable_api_group_versions.go similarity index 86% rename from test/e2e/enable_api_group_versions_test.go rename to test/e2e/basic/enable_api_group_versions.go index 68014f184..d9c13e280 100644 --- a/test/e2e/enable_api_group_versions_test.go +++ b/test/e2e/basic/enable_api_group_versions.go @@ -14,11 +14,12 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package basic import ( "context" "encoding/json" + "flag" "fmt" "os/exec" "strconv" @@ -34,46 +35,31 @@ import ( "github.com/vmware-tanzu/velero/pkg/builder" veleroexec "github.com/vmware-tanzu/velero/pkg/util/exec" + . "github.com/vmware-tanzu/velero/test/e2e" + k8sutils "github.com/vmware-tanzu/velero/test/e2e/util/k8s" + veleroutils "github.com/vmware-tanzu/velero/test/e2e/util/velero" ) -var _ = Describe("[APIGroup] Velero tests with various CRD API group versions", func() { +func APIGropuVersionsTest() { var ( resource, group string err error ctx = context.Background() ) - client, err := newTestClient() + client, err := k8sutils.NewTestClient() Expect(err).To(Succeed(), "Failed to instantiate cluster client for group version tests") BeforeEach(func() { resource = "rockbands" group = "music.example.io" - - uuidgen, err = uuid.NewRandom() + UUIDgen, err = uuid.NewRandom() Expect(err).NotTo(HaveOccurred()) - + flag.Parse() // TODO: install Velero once for the test suite once feature flag is // removed and velero installation becomes the same as other e2e tests. - if installVelero { - err = veleroInstall( - context.Background(), - veleroCLI, - veleroImage, - resticHelperImage, - plugins, - veleroNamespace, - cloudProvider, - objectStoreProvider, - false, - cloudCredentialsFile, - bslBucket, - bslPrefix, - bslConfig, - vslConfig, - crdsVersion, - "EnableAPIGroupVersions", // TODO: remove when feature flag is removed - registryCredentialFile) + if VeleroCfg.InstallVelero { + err = veleroutils.VeleroInstall(context.Background(), &VeleroCfg, "EnableAPIGroupVersions", false) Expect(err).NotTo(HaveOccurred()) } }) @@ -88,8 +74,8 @@ var _ = Describe("[APIGroup] Velero tests with various CRD API group versions", } Expect(err).NotTo(HaveOccurred()) - if installVelero { - err = veleroUninstall(ctx, veleroCLI, veleroNamespace) + if VeleroCfg.InstallVelero { + err = veleroutils.VeleroUninstall(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) Expect(err).NotTo(HaveOccurred()) } @@ -105,9 +91,9 @@ var _ = Describe("[APIGroup] Velero tests with various CRD API group versions", )).To(Succeed(), "Failed to successfully backup and restore multiple API Groups") }) }) -}) +} -func runEnableAPIGroupVersionsTests(ctx context.Context, client testClient, resource, group string) error { +func runEnableAPIGroupVersionsTests(ctx context.Context, client k8sutils.TestClient, resource, group string) error { tests := []struct { name string namespaces []string @@ -180,7 +166,7 @@ func runEnableAPIGroupVersionsTests(ctx context.Context, client testClient, reso }, tgtCrdYaml: "testdata/enable_api_group_versions/case-d-target-manually-added-mutations.yaml", tgtVer: "v2beta1", - cm: builder.ForConfigMap(veleroNamespace, "enableapigroupversions").Data( + cm: builder.ForConfigMap(VeleroCfg.VeleroNamespace, "enableapigroupversions").Data( "restoreResourcesVersionPriority", `rockbands.music.example.io=v2beta1,v2beta2,v2`, ).Result(), @@ -224,11 +210,11 @@ func runEnableAPIGroupVersionsTests(ctx context.Context, client testClient, reso for version, cr := range tc.srcCRs { ns := resource + "-src-" + version - if err := createNamespace(ctx, client, ns); err != nil { + if err := k8sutils.CreateNamespace(ctx, client, ns); err != nil { return errors.Wrapf(err, "create %s namespace", ns) } defer func(namespace string) { - if err = deleteNamespace(ctx, client, namespace, true); err != nil { + if err = k8sutils.DeleteNamespace(ctx, client, namespace, true); err != nil { fmt.Println(errors.Wrapf(err, "failed to delete the namespace %q", ns)) } }(ns) @@ -243,16 +229,16 @@ func runEnableAPIGroupVersionsTests(ctx context.Context, client testClient, reso // Restart Velero pods in order to recognize music-system CRD right away // instead of waiting for discovery helper to refresh. See // https://github.com/vmware-tanzu/velero/issues/3471. - if err := restartPods(ctx, veleroNamespace); err != nil { + if err := restartPods(ctx, VeleroCfg.VeleroNamespace); err != nil { return errors.Wrapf(err, "restart Velero pods") } - backup := "backup-rockbands-" + uuidgen.String() + "-" + strconv.Itoa(i) + backup := "backup-rockbands-" + UUIDgen.String() + "-" + strconv.Itoa(i) namespacesStr := strings.Join(tc.namespaces, ",") - err = veleroBackupNamespace(ctx, veleroCLI, veleroNamespace, backup, namespacesStr, "", false) + err = veleroutils.VeleroBackupNamespace(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backup, namespacesStr, "", false) if err != nil { - runDebug(context.Background(), veleroCLI, veleroNamespace, backup, "") + veleroutils.RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backup, "") return errors.Wrapf(err, "back up %s namespaces on source cluster", namespacesStr) } @@ -261,7 +247,7 @@ func runEnableAPIGroupVersionsTests(ctx context.Context, client testClient, reso } for _, ns := range tc.namespaces { - if err := deleteNamespace(ctx, client, ns, true); err != nil { + if err := k8sutils.DeleteNamespace(ctx, client, ns, true); err != nil { return errors.Wrapf(err, "delete %s namespace from source cluster", ns) } } @@ -275,23 +261,23 @@ func runEnableAPIGroupVersionsTests(ctx context.Context, client testClient, reso // Apply config map if there is one. if tc.cm != nil { - _, err := client.clientGo.CoreV1().ConfigMaps(veleroNamespace).Create(ctx, tc.cm, metav1.CreateOptions{}) + _, err := client.ClientGo.CoreV1().ConfigMaps(VeleroCfg.VeleroNamespace).Create(ctx, tc.cm, metav1.CreateOptions{}) if err != nil { return errors.Wrap(err, "create config map with user version priorities") } } // Reset Velero to recognize music-system CRD. - if err := restartPods(ctx, veleroNamespace); err != nil { + if err := restartPods(ctx, VeleroCfg.VeleroNamespace); err != nil { return errors.Wrapf(err, "restart Velero pods") } // Restore rockbands namespaces. - restore := "restore-rockbands-" + uuidgen.String() + "-" + strconv.Itoa(i) + restore := "restore-rockbands-" + UUIDgen.String() + "-" + strconv.Itoa(i) if tc.want != nil { - if err := veleroRestore(ctx, veleroCLI, veleroNamespace, restore, backup); err != nil { - runDebug(context.Background(), veleroCLI, veleroNamespace, "", restore) + if err := veleroutils.VeleroRestore(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, restore, backup); err != nil { + veleroutils.RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, "", restore) return errors.Wrapf(err, "restore %s namespaces on target cluster", namespacesStr) } @@ -329,7 +315,7 @@ func runEnableAPIGroupVersionsTests(ctx context.Context, client testClient, reso } else { // No custom resource should have been restored. Expect "no resource found" // error during restore. - err := veleroRestore(ctx, veleroCLI, veleroNamespace, restore, backup) + err := veleroutils.VeleroRestore(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, restore, backup) if err.Error() != "Unexpected restore phase got PartiallyFailed, expecting Completed" { return errors.New("expected error but not none") diff --git a/test/e2e/e2e_suite_test.go b/test/e2e/e2e_suite_test.go index 37e111703..825ce2938 100644 --- a/test/e2e/e2e_suite_test.go +++ b/test/e2e/e2e_suite_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package e2e_test import ( "flag" @@ -23,44 +23,59 @@ import ( . "github.com/onsi/ginkgo" "github.com/onsi/ginkgo/reporters" . "github.com/onsi/gomega" -) -var ( - veleroCLI, veleroImage, veleroVersion, cloudCredentialsFile, bslConfig, bslBucket, bslPrefix, vslConfig, cloudProvider, objectStoreProvider, veleroNamespace, crdsVersion string - additionalBSLProvider, additionalBSLBucket, additionalBSLPrefix, additionalBSLConfig, additionalBSLCredentials, registryCredentialFile, resticHelperImage string - upgradeFromVeleroVersion, upgradeFromVeleroCLI, plugins, addBSLPlugins string - installVelero bool + . "github.com/vmware-tanzu/velero/test/e2e" + . "github.com/vmware-tanzu/velero/test/e2e/backup" + . "github.com/vmware-tanzu/velero/test/e2e/basic" + . "github.com/vmware-tanzu/velero/test/e2e/scale" + . "github.com/vmware-tanzu/velero/test/e2e/upgrade" ) func init() { - flag.StringVar(&cloudProvider, "cloud-provider", "", "cloud that Velero will be installed into. Required.") - flag.StringVar(&objectStoreProvider, "object-store-provider", "", "provider of object store plugin. Required if cloud-provider is kind, otherwise ignored.") - flag.StringVar(&bslBucket, "bucket", "", "name of the object storage bucket where backups from e2e tests should be stored. Required.") - flag.StringVar(&cloudCredentialsFile, "credentials-file", "", "file containing credentials for backup and volume provider. Required.") - flag.StringVar(&veleroCLI, "velerocli", "velero", "path to the velero application to use.") - flag.StringVar(&veleroImage, "velero-image", "velero/velero:main", "image for the velero server to be tested.") - flag.StringVar(&plugins, "plugins", "", "provider plugins to be tested.") - flag.StringVar(&addBSLPlugins, "additional-bsl-plugins", "", "additional plugins to be tested.") - flag.StringVar(&veleroVersion, "velero-version", "main", "image version for the velero server to be tested with.") - flag.StringVar(&resticHelperImage, "restic-helper-image", "", "image for the velero restic restore helper to be tested.") - flag.StringVar(&upgradeFromVeleroCLI, "upgrade-from-velero-cli", "", "path to the pre-upgrade velero application to use.") - flag.StringVar(&upgradeFromVeleroVersion, "upgrade-from-velero-version", "v1.6.3", "image for the pre-upgrade velero server to be tested.") - flag.StringVar(&bslConfig, "bsl-config", "", "configuration to use for the backup storage location. Format is key1=value1,key2=value2") - flag.StringVar(&bslPrefix, "prefix", "", "prefix under which all Velero data should be stored within the bucket. Optional.") - flag.StringVar(&vslConfig, "vsl-config", "", "configuration to use for the volume snapshot location. Format is key1=value1,key2=value2") - flag.StringVar(&veleroNamespace, "velero-namespace", "velero", "namespace to install Velero into") - flag.BoolVar(&installVelero, "install-velero", true, "install/uninstall velero during the test. Optional.") - flag.StringVar(®istryCredentialFile, "registry-credential-file", "", "file containing credential for the image registry, follows the same format rules as the ~/.docker/config.json file. Optional.") + flag.StringVar(&VeleroCfg.CloudProvider, "cloud-provider", "", "cloud that Velero will be installed into. Required.") + flag.StringVar(&VeleroCfg.ObjectStoreProvider, "object-store-provider", "", "provider of object store plugin. Required if cloud-provider is kind, otherwise ignored.") + flag.StringVar(&VeleroCfg.BSLBucket, "bucket", "", "name of the object storage bucket where backups from e2e tests should be stored. Required.") + flag.StringVar(&VeleroCfg.CloudCredentialsFile, "credentials-file", "", "file containing credentials for backup and volume provider. Required.") + flag.StringVar(&VeleroCfg.VeleroCLI, "velerocli", "velero", "path to the velero application to use.") + flag.StringVar(&VeleroCfg.VeleroImage, "velero-image", "velero/velero:main", "image for the velero server to be tested.") + flag.StringVar(&VeleroCfg.Plugins, "plugins", "", "provider plugins to be tested.") + flag.StringVar(&VeleroCfg.AddBSLPlugins, "additional-bsl-plugins", "", "additional plugins to be tested.") + flag.StringVar(&VeleroCfg.VeleroVersion, "velero-version", "main", "image version for the velero server to be tested with.") + flag.StringVar(&VeleroCfg.ResticHelperImage, "restic-helper-image", "", "image for the velero restic restore helper to be tested.") + flag.StringVar(&VeleroCfg.UpgradeFromVeleroCLI, "upgrade-from-velero-cli", "", "path to the pre-upgrade velero application to use.") + flag.StringVar(&VeleroCfg.UpgradeFromVeleroVersion, "upgrade-from-velero-version", "v1.6.3", "image for the pre-upgrade velero server to be tested.") + flag.StringVar(&VeleroCfg.BSLConfig, "bsl-config", "", "configuration to use for the backup storage location. Format is key1=value1,key2=value2") + flag.StringVar(&VeleroCfg.BSLPrefix, "prefix", "", "prefix under which all Velero data should be stored within the bucket. Optional.") + flag.StringVar(&VeleroCfg.VSLConfig, "vsl-config", "", "configuration to use for the volume snapshot location. Format is key1=value1,key2=value2") + flag.StringVar(&VeleroCfg.VeleroNamespace, "velero-namespace", "velero", "namespace to install Velero into") + flag.BoolVar(&VeleroCfg.InstallVelero, "install-velero", true, "install/uninstall velero during the test. Optional.") + flag.StringVar(&VeleroCfg.RegistryCredentialFile, "registry-credential-file", "", "file containing credential for the image registry, follows the same format rules as the ~/.docker/config.json file. Optional.") // Flags to create an additional BSL for multiple credentials test - flag.StringVar(&additionalBSLProvider, "additional-bsl-object-store-provider", "", "Provider of object store plugin for additional backup storage location. Required if testing multiple credentials support.") - flag.StringVar(&additionalBSLBucket, "additional-bsl-bucket", "", "name of the object storage bucket for additional backup storage location. Required if testing multiple credentials support.") - flag.StringVar(&additionalBSLPrefix, "additional-bsl-prefix", "", "prefix under which all Velero data should be stored within the bucket for additional backup storage location. Optional.") - flag.StringVar(&additionalBSLConfig, "additional-bsl-config", "", "configuration to use for the additional backup storage location. Format is key1=value1,key2=value2") - flag.StringVar(&additionalBSLCredentials, "additional-bsl-credentials-file", "", "file containing credentials for additional backup storage location provider. Required if testing multiple credentials support.") - flag.StringVar(&crdsVersion, "crds-version", "v1", "CRD apiVersion for velero CRD creation.") + flag.StringVar(&VeleroCfg.AdditionalBSLProvider, "additional-bsl-object-store-provider", "", "Provider of object store plugin for additional backup storage location. Required if testing multiple credentials support.") + flag.StringVar(&VeleroCfg.AdditionalBSLBucket, "additional-bsl-bucket", "", "name of the object storage bucket for additional backup storage location. Required if testing multiple credentials support.") + flag.StringVar(&VeleroCfg.AdditionalBSLPrefix, "additional-bsl-prefix", "", "prefix under which all Velero data should be stored within the bucket for additional backup storage location. Optional.") + flag.StringVar(&VeleroCfg.AdditionalBSLConfig, "additional-bsl-config", "", "configuration to use for the additional backup storage location. Format is key1=value1,key2=value2") + flag.StringVar(&VeleroCfg.AdditionalBSLCredentials, "additional-bsl-credentials-file", "", "file containing credentials for additional backup storage location provider. Required if testing multiple credentials support.") + flag.StringVar(&VeleroCfg.CRDsVersion, "crds-version", "v1", "CRD apiVersion for velero CRD creation.") } +var _ = Describe("[APIGroup] Velero tests with various CRD API group versions", APIGropuVersionsTest) + +// Test backup and restore of Kibishi using restic +var _ = Describe("[Restic] Velero tests on cluster using the plugin provider for object storage and Restic for volume backups", BackupRestoreWithRestic) + +var _ = Describe("[Snapshot] Velero tests on cluster using the plugin provider for object storage and snapshots for volume backups", BackupRestoreWithSnapshots) + +var _ = Describe("[Basic] Backup/restore of 2 namespaces", BasicBackupRestore) + +var _ = Describe("[Scale] Backup/restore of 2500 namespaces", MultiNSBackupRestore) + +// Upgrade test by Kibishi using restic +var _ = Describe("[Upgrade][Restic] Velero upgrade tests on cluster using the plugin provider for object storage and Restic for volume backups", BackupUpgradeRestoreWithRestic) + +var _ = Describe("[Upgrade][Snapshot] Velero upgrade tests on cluster using the plugin provider for object storage and snapshots for volume backups", BackupUpgradeRestoreWithSnapshots) + func TestE2e(t *testing.T) { // Skip running E2E tests when running only "short" tests because: // 1. E2E tests are long running tests involving installation of Velero and performing backup and restore operations. diff --git a/test/e2e/multiple_namespaces_test.go b/test/e2e/scale/multiple_namespaces.go similarity index 50% rename from test/e2e/multiple_namespaces_test.go rename to test/e2e/scale/multiple_namespaces.go index bb6b71466..dd7832d3b 100644 --- a/test/e2e/multiple_namespaces_test.go +++ b/test/e2e/scale/multiple_namespaces.go @@ -1,40 +1,58 @@ -package e2e +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package scale import ( "context" "flag" "fmt" - "strings" "time" "github.com/google/uuid" + k8sutils "github.com/vmware-tanzu/velero/test/e2e/util/k8s" + veleroutils "github.com/vmware-tanzu/velero/test/e2e/util/velero" + . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" - "github.com/pkg/errors" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + . "github.com/vmware-tanzu/velero/test/e2e" ) -var _ = Describe("[Basic] Backup/restore of 2 namespaces", func() { +func BasicBackupRestore() { - client, err := newTestClient() + client, err := k8sutils.NewTestClient() Expect(err).To(Succeed(), "Failed to instantiate cluster client for multiple namespace tests") BeforeEach(func() { var err error flag.Parse() - uuidgen, err = uuid.NewRandom() + UUIDgen, err = uuid.NewRandom() Expect(err).To(Succeed()) - if installVelero { - Expect(veleroInstall(context.Background(), veleroCLI, veleroImage, resticHelperImage, plugins, veleroNamespace, cloudProvider, objectStoreProvider, false, - cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, crdsVersion, "", registryCredentialFile)).To(Succeed()) + if VeleroCfg.InstallVelero { + Expect(veleroutils.VeleroInstall(context.Background(), &VeleroCfg, "", false)).To(Succeed()) } }) AfterEach(func() { - if installVelero { - err := veleroUninstall(context.Background(), veleroCLI, veleroNamespace) + if VeleroCfg.InstallVelero { + err := veleroutils.VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) Expect(err).To(Succeed()) } @@ -42,34 +60,33 @@ var _ = Describe("[Basic] Backup/restore of 2 namespaces", func() { Context("When I create 2 namespaces", func() { It("should be successfully backed up and restored", func() { - backupName := "backup-" + uuidgen.String() - restoreName := "restore-" + uuidgen.String() + backupName := "backup-" + UUIDgen.String() + restoreName := "restore-" + UUIDgen.String() fiveMinTimeout, _ := context.WithTimeout(context.Background(), 5*time.Minute) - Expect(RunMultipleNamespaceTest(fiveMinTimeout, client, "nstest-"+uuidgen.String(), 2, + Expect(RunMultipleNamespaceTest(fiveMinTimeout, client, "nstest-"+UUIDgen.String(), 2, backupName, restoreName)).To(Succeed(), "Failed to successfully backup and restore multiple namespaces") }) }) -}) +} -var _ = Describe("[Scale] Backup/restore of 2500 namespaces", func() { +func MultiNSBackupRestore() { - client, err := newTestClient() + client, err := k8sutils.NewTestClient() Expect(err).To(Succeed(), "Failed to instantiate cluster client for multiple namespace tests") BeforeEach(func() { var err error flag.Parse() - uuidgen, err = uuid.NewRandom() + UUIDgen, err = uuid.NewRandom() Expect(err).To(Succeed()) - if installVelero { - Expect(veleroInstall(context.Background(), veleroCLI, veleroImage, resticHelperImage, plugins, veleroNamespace, cloudProvider, objectStoreProvider, false, - cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, crdsVersion, "", registryCredentialFile)).To(Succeed()) + if VeleroCfg.InstallVelero { + Expect(veleroutils.VeleroInstall(context.Background(), &VeleroCfg, "", false)).To(Succeed()) } }) AfterEach(func() { - if installVelero { - err := veleroUninstall(context.Background(), veleroCLI, veleroNamespace) + if VeleroCfg.InstallVelero { + err := veleroutils.VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) Expect(err).To(Succeed()) } @@ -77,22 +94,22 @@ var _ = Describe("[Scale] Backup/restore of 2500 namespaces", func() { Context("When I create 2500 namespaces", func() { It("should be successfully backed up and restored", func() { - backupName := "backup-" + uuidgen.String() - restoreName := "restore-" + uuidgen.String() + backupName := "backup-" + UUIDgen.String() + restoreName := "restore-" + UUIDgen.String() twoHourTimeout, _ := context.WithTimeout(context.Background(), 2*time.Hour) - Expect(RunMultipleNamespaceTest(twoHourTimeout, client, "nstest-"+uuidgen.String(), 2500, + Expect(RunMultipleNamespaceTest(twoHourTimeout, client, "nstest-"+UUIDgen.String(), 2500, backupName, restoreName)).To(Succeed(), "Failed to successfully backup and restore multiple namespaces") }) }) -}) +} -func RunMultipleNamespaceTest(ctx context.Context, client testClient, nsBaseName string, numberOfNamespaces int, backupName string, restoreName string) error { - defer cleanupNamespaces(context.Background(), client, nsBaseName) // Run at exit for final cleanup +func RunMultipleNamespaceTest(ctx context.Context, client k8sutils.TestClient, nsBaseName string, numberOfNamespaces int, backupName string, restoreName string) error { + defer k8sutils.CleanupNamespaces(context.Background(), client, nsBaseName) // Run at exit for final cleanup var excludeNamespaces []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 := client.clientGo.CoreV1().Namespaces().List(ctx, v1.ListOptions{}) + namespaces, err := client.ClientGo.CoreV1().Namespaces().List(ctx, v1.ListOptions{}) if err != nil { return errors.Wrap(err, "Could not retrieve namespaces") } @@ -104,30 +121,30 @@ func RunMultipleNamespaceTest(ctx context.Context, client testClient, nsBaseName fmt.Printf("Creating namespaces ...\n") for nsNum := 0; nsNum < numberOfNamespaces; nsNum++ { createNSName := fmt.Sprintf("%s-%00000d", nsBaseName, nsNum) - if err := createNamespace(ctx, client, createNSName); err != nil { + if err := k8sutils.CreateNamespace(ctx, client, createNSName); err != nil { return errors.Wrapf(err, "Failed to create namespace %s", createNSName) } } - if err := veleroBackupExcludeNamespaces(ctx, veleroCLI, veleroNamespace, backupName, excludeNamespaces); err != nil { - runDebug(context.Background(), veleroCLI, veleroNamespace, backupName, "") + if err := veleroutils.VeleroBackupExcludeNamespaces(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backupName, excludeNamespaces); err != nil { + veleroutils.RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backupName, "") return errors.Wrapf(err, "Failed to backup backup namespaces %s-*", nsBaseName) } - err = cleanupNamespaces(ctx, client, nsBaseName) + err = k8sutils.CleanupNamespaces(ctx, client, nsBaseName) if err != nil { return errors.Wrap(err, "Could cleanup retrieve namespaces") } - err = veleroRestore(ctx, veleroCLI, veleroNamespace, restoreName, backupName) + err = veleroutils.VeleroRestore(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, restoreName, backupName) if err != nil { - runDebug(context.Background(), veleroCLI, veleroNamespace, "", restoreName) + veleroutils.RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, "", restoreName) return errors.Wrap(err, "Restore failed") } // Verify that we got back all of the namespaces we created for nsNum := 0; nsNum < numberOfNamespaces; nsNum++ { checkNSName := fmt.Sprintf("%s-%00000d", nsBaseName, nsNum) - checkNS, err := getNamespace(ctx, client, checkNSName) + checkNS, err := k8sutils.GetNamespace(ctx, client, checkNSName) if err != nil { return errors.Wrapf(err, "Could not retrieve test namespace %s", checkNSName) } @@ -138,21 +155,3 @@ func RunMultipleNamespaceTest(ctx context.Context, client testClient, nsBaseName // Cleanup is automatic on the way out return nil } - -func cleanupNamespaces(ctx context.Context, client testClient, nsBaseName string) error { - namespaces, err := client.clientGo.CoreV1().Namespaces().List(ctx, v1.ListOptions{}) - if err != nil { - return errors.Wrap(err, "Could not retrieve namespaces") - } - - fmt.Printf("Cleaning up namespaces ...\n") - for _, checkNamespace := range namespaces.Items { - if strings.HasPrefix(checkNamespace.Name, nsBaseName) { - err = client.clientGo.CoreV1().Namespaces().Delete(ctx, checkNamespace.Name, v1.DeleteOptions{}) - if err != nil { - return errors.Wrapf(err, "Could not delete namespace %s", checkNamespace.Name) - } - } - } - return nil -} diff --git a/test/e2e/types.go b/test/e2e/types.go new file mode 100644 index 000000000..40e3ed05e --- /dev/null +++ b/test/e2e/types.go @@ -0,0 +1,52 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package e2e + +import ( + "github.com/google/uuid" +) + +var UUIDgen uuid.UUID + +var VeleroCfg VerleroConfig + +type VerleroConfig struct { + VeleroCLI string + VeleroImage string + VeleroVersion string + CloudCredentialsFile string + BSLConfig string + BSLBucket string + BSLPrefix string + VSLConfig string + CloudProvider string + ObjectStoreProvider string + VeleroNamespace string + CRDsVersion string + AdditionalBSLProvider string + AdditionalBSLBucket string + AdditionalBSLPrefix string + AdditionalBSLConfig string + AdditionalBSLCredentials string + RegistryCredentialFile string + ResticHelperImage string + UpgradeFromVeleroVersion string + UpgradeFromVeleroCLI string + Plugins string + AddBSLPlugins string + InstallVelero bool +} diff --git a/test/e2e/upgrade/upgrade.go b/test/e2e/upgrade/upgrade.go new file mode 100644 index 000000000..e5825b79d --- /dev/null +++ b/test/e2e/upgrade/upgrade.go @@ -0,0 +1,170 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ +package upgrade + +import ( + "context" + "flag" + "fmt" + "time" + + "github.com/google/uuid" + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "github.com/pkg/errors" + + . "github.com/vmware-tanzu/velero/test/e2e" + k8sutils "github.com/vmware-tanzu/velero/test/e2e/util/k8s" + kibishiiutils "github.com/vmware-tanzu/velero/test/e2e/util/kibishii" + veleroutils "github.com/vmware-tanzu/velero/test/e2e/util/velero" +) + +const ( + upgradeNamespace = "upgrade-workload" +) + +func BackupUpgradeRestoreWithSnapshots() { + BackupUpgradeRestoreTest(true) +} + +func BackupUpgradeRestoreWithRestic() { + BackupUpgradeRestoreTest(false) +} + +func BackupUpgradeRestoreTest(useVolumeSnapshots bool) { + var ( + backupName, restoreName, upgradeFromVeleroCLI string + ) + + client, err := k8sutils.NewTestClient() + Expect(err).To(Succeed(), "Failed to instantiate cluster client for backup tests") + + BeforeEach(func() { + if (len(VeleroCfg.UpgradeFromVeleroVersion)) == 0 { + Skip("An original velero version is required to run upgrade test, please run test with upgrade-from-velero-version=") + } + if useVolumeSnapshots && VeleroCfg.CloudProvider == "kind" { + Skip("Volume snapshots not supported on kind") + } + //Assume tag of velero server image is identical to velero CLI version + //Download velero CLI if it's empty according to velero CLI version + if (len(VeleroCfg.UpgradeFromVeleroCLI)) == 0 { + upgradeFromVeleroCLI, err = veleroutils.InstallVeleroCLI(VeleroCfg.UpgradeFromVeleroVersion) + Expect(err).To(Succeed()) + } + + var err error + flag.Parse() + UUIDgen, err = uuid.NewRandom() + Expect(err).To(Succeed()) + if VeleroCfg.InstallVelero { + //Set VeleroImage and ResticHelperImage to blank + //VeleroImage and ResticHelperImage should be the default value in originalCli + tmpCfg := VeleroCfg + tmpCfg.VeleroCLI = upgradeFromVeleroCLI + tmpCfg.VeleroImage = "" + tmpCfg.ResticHelperImage = "" + tmpCfg.Plugins = "" + tmpCfg.CRDsVersion = "" + Expect(veleroutils.VeleroInstall(context.Background(), &tmpCfg, "", useVolumeSnapshots)).To(Succeed()) + Expect(veleroutils.CheckVeleroVersion(context.Background(), upgradeFromVeleroCLI, tmpCfg.UpgradeFromVeleroVersion)).To(Succeed()) + } else { + Skip("Upgrade test is skipped since user don't want to install any other velero") + } + }) + + AfterEach(func() { + if VeleroCfg.InstallVelero { + err = veleroutils.VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) + Expect(err).To(Succeed()) + } + }) + + When("kibishii is the sample workload", func() { + It("should be successfully backed up and restored to the default BackupStorageLocation", func() { + backupName = "backup-" + UUIDgen.String() + restoreName = "restore-" + UUIDgen.String() + Expect(runUpgradeTests(client, &VeleroCfg, upgradeFromVeleroCLI, backupName, restoreName, "", useVolumeSnapshots)).To(Succeed(), + "Failed to successfully backup and restore Kibishii namespace") + }) + }) +} + +// runUpgradeTests runs upgrade test on the provider by kibishii. +func runUpgradeTests(client k8sutils.TestClient, veleroCfg *VerleroConfig, upgradeFromVeleroCLI, backupName, restoreName, backupLocation string, + useVolumeSnapshots bool) error { + if veleroCfg.VeleroCLI == "" { + return errors.New("empty") + } + oneHourTimeout, _ := context.WithTimeout(context.Background(), time.Minute*60) + if err := k8sutils.CreateNamespace(oneHourTimeout, client, upgradeNamespace); err != nil { + return errors.Wrapf(err, "Failed to create namespace %s to install Kibishii workload", upgradeNamespace) + } + defer func() { + if err := k8sutils.DeleteNamespace(context.Background(), client, upgradeNamespace, true); err != nil { + fmt.Println(errors.Wrapf(err, "failed to delete the namespace %q", upgradeNamespace)) + } + }() + if err := kibishiiutils.KibishiiPrepareBeforeBackup(oneHourTimeout, client, veleroCfg.CloudProvider, upgradeNamespace, veleroCfg.RegistryCredentialFile); err != nil { + return errors.Wrapf(err, "Failed to install and prepare data for kibishii %s", upgradeNamespace) + } + + if err := veleroutils.VeleroBackupNamespace(oneHourTimeout, upgradeFromVeleroCLI, veleroCfg.VeleroNamespace, backupName, upgradeNamespace, backupLocation, useVolumeSnapshots); err != nil { + // TODO currently, the upgrade case covers the upgrade path from 1.6 to main and the velero v1.6 doesn't support "debug" command + // TODO move to "veleroutils.RunDebug" after we bump up to 1.7 in the upgrade case + veleroutils.VeleroBackupLogs(context.Background(), upgradeFromVeleroCLI, veleroCfg.VeleroNamespace, backupName) + return errors.Wrapf(err, "Failed to backup kibishii namespace %s", upgradeNamespace) + } + + if veleroCfg.CloudProvider == "vsphere" && useVolumeSnapshots { + // Wait for uploads started by the Velero Plug-in for vSphere to complete + // TODO - remove after upload progress monitoring is implemented + fmt.Println("Waiting for vSphere uploads to complete") + if err := veleroutils.WaitForVSphereUploadCompletion(oneHourTimeout, time.Hour, upgradeNamespace); err != nil { + return errors.Wrapf(err, "Error waiting for uploads to complete") + } + } + fmt.Printf("Simulating a disaster by removing namespace %s\n", upgradeNamespace) + if err := k8sutils.DeleteNamespace(oneHourTimeout, client, upgradeNamespace, true); err != nil { + return errors.Wrapf(err, "failed to delete namespace %s", upgradeNamespace) + } + + // the snapshots of AWS may be still in pending status when do the restore, wait for a while + // to avoid this https://github.com/vmware-tanzu/velero/issues/1799 + // TODO remove this after https://github.com/vmware-tanzu/velero/issues/3533 is fixed + if veleroCfg.CloudProvider == "aws" && useVolumeSnapshots { + fmt.Println("Waiting 5 minutes to make sure the snapshots are ready...") + time.Sleep(5 * time.Minute) + } + + if err := veleroutils.VeleroInstall(context.Background(), veleroCfg, "", useVolumeSnapshots); err != nil { + return errors.Wrapf(err, "Failed to install velero from image %s", veleroCfg.VeleroImage) + } + if err := veleroutils.CheckVeleroVersion(context.Background(), veleroCfg.VeleroCLI, veleroCfg.VeleroVersion); err != nil { + return errors.Wrapf(err, "Velero install version mismatch.") + } + if err := veleroutils.VeleroRestore(oneHourTimeout, veleroCfg.VeleroCLI, veleroCfg.VeleroNamespace, restoreName, backupName); err != nil { + veleroutils.RunDebug(context.Background(), veleroCfg.VeleroCLI, veleroCfg.VeleroNamespace, "", restoreName) + return errors.Wrapf(err, "Restore %s failed from backup %s", restoreName, backupName) + } + + if err := kibishiiutils.KibishiiVerifyAfterRestore(client, upgradeNamespace, oneHourTimeout); err != nil { + return errors.Wrapf(err, "Error verifying kibishii after restore") + } + + fmt.Printf("Upgrade test completed successfully\n") + return nil +} diff --git a/test/e2e/upgrade_test.go b/test/e2e/upgrade_test.go deleted file mode 100644 index c647e7b31..000000000 --- a/test/e2e/upgrade_test.go +++ /dev/null @@ -1,164 +0,0 @@ -/* -Copyright the Velero contributors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -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. -*/ -package e2e - -import ( - "context" - "flag" - "fmt" - "time" - - "github.com/google/uuid" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - "github.com/pkg/errors" -) - -const ( - upgradeNamespace = "upgrade-workload" -) - -// Upgrade test by Kibishi using restic -var _ = Describe("[Upgrade][Restic] Velero upgrade tests on cluster using the plugin provider for object storage and Restic for volume backups", backup_upgrade_restore_with_restic) - -var _ = Describe("[Upgrade][Snapshot] Velero upgrade tests on cluster using the plugin provider for object storage and snapshots for volume backups", backup_upgrade_restore_with_snapshots) - -func backup_upgrade_restore_with_snapshots() { - backup_upgrade_restore_test(true) -} - -func backup_upgrade_restore_with_restic() { - backup_upgrade_restore_test(false) -} - -func backup_upgrade_restore_test(useVolumeSnapshots bool) { - var ( - backupName, restoreName string - ) - upgradeFromVeleroCLI := upgradeFromVeleroCLI - - client, err := newTestClient() - Expect(err).To(Succeed(), "Failed to instantiate cluster client for backup tests") - - BeforeEach(func() { - if (len(upgradeFromVeleroVersion)) == 0 { - Skip("An original velero version is required to run upgrade test, please run test with upgrade-from-velero-version=") - } - if useVolumeSnapshots && cloudProvider == "kind" { - Skip("Volume snapshots not supported on kind") - } - //Assume tag of velero server image is identical to velero CLI version - //Download velero CLI if it's empty according to velero CLI version - if (len(upgradeFromVeleroCLI)) == 0 { - upgradeFromVeleroCLI, err = installVeleroCLI(upgradeFromVeleroVersion) - Expect(err).To(Succeed()) - } - - var err error - flag.Parse() - uuidgen, err = uuid.NewRandom() - Expect(err).To(Succeed()) - if installVelero { - //Set veleroImage and resticHelperImage to blank - //veleroImage and resticHelperImage should be the default value in originalCli - Expect(veleroInstall(context.Background(), upgradeFromVeleroCLI, "", "", "", veleroNamespace, cloudProvider, objectStoreProvider, useVolumeSnapshots, - cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, "", "", registryCredentialFile)).To(Succeed()) - Expect(checkVeleroVersion(context.Background(), upgradeFromVeleroCLI, upgradeFromVeleroVersion)).To(Succeed()) - } else { - Skip("Upgrade test is skipped since user don't want to install any other velero") - } - }) - - AfterEach(func() { - if installVelero { - err = veleroUninstall(context.Background(), veleroCLI, veleroNamespace) - Expect(err).To(Succeed()) - } - }) - - When("kibishii is the sample workload", func() { - It("should be successfully backed up and restored to the default BackupStorageLocation", func() { - backupName = "backup-" + uuidgen.String() - restoreName = "restore-" + uuidgen.String() - Expect(runUpgradeTests(client, veleroImage, veleroVersion, cloudProvider, upgradeFromVeleroCLI, veleroNamespace, backupName, restoreName, "", useVolumeSnapshots, registryCredentialFile)).To(Succeed(), - "Failed to successfully backup and restore Kibishii namespace") - }) - }) -} - -// runUpgradeTests runs upgrade test on the provider by kibishii. -func runUpgradeTests(client testClient, upgradeToVeleroImage, upgradeToVeleroVersion, providerName, upgradeFromVeleroCLI, veleroNamespace, backupName, restoreName, backupLocation string, - useVolumeSnapshots bool, registryCredentialFile string) error { - oneHourTimeout, _ := context.WithTimeout(context.Background(), time.Minute*60) - if err := createNamespace(oneHourTimeout, client, upgradeNamespace); err != nil { - return errors.Wrapf(err, "Failed to create namespace %s to install Kibishii workload", upgradeNamespace) - } - defer func() { - if err := deleteNamespace(context.Background(), client, upgradeNamespace, true); err != nil { - fmt.Println(errors.Wrapf(err, "failed to delete the namespace %q", upgradeNamespace)) - } - }() - if err := kibishiiPrepareBeforeBackup(oneHourTimeout, client, providerName, upgradeNamespace, registryCredentialFile); err != nil { - return errors.Wrapf(err, "Failed to install and prepare data for kibishii %s", upgradeNamespace) - } - - if err := veleroBackupNamespace(oneHourTimeout, upgradeFromVeleroCLI, veleroNamespace, backupName, upgradeNamespace, backupLocation, useVolumeSnapshots); err != nil { - // TODO currently, the upgrade case covers the upgrade path from 1.6 to main and the velero v1.6 doesn't support "debug" command - // TODO move to "runDebug" after we bump up to 1.7 in the upgrade case - veleroBackupLogs(context.Background(), upgradeFromVeleroCLI, veleroNamespace, backupName) - return errors.Wrapf(err, "Failed to backup kibishii namespace %s", upgradeNamespace) - } - - if providerName == "vsphere" && useVolumeSnapshots { - // Wait for uploads started by the Velero Plug-in for vSphere to complete - // TODO - remove after upload progress monitoring is implemented - fmt.Println("Waiting for vSphere uploads to complete") - if err := waitForVSphereUploadCompletion(oneHourTimeout, time.Hour, upgradeNamespace); err != nil { - return errors.Wrapf(err, "Error waiting for uploads to complete") - } - } - fmt.Printf("Simulating a disaster by removing namespace %s\n", upgradeNamespace) - if err := deleteNamespace(oneHourTimeout, client, upgradeNamespace, true); err != nil { - return errors.Wrapf(err, "failed to delete namespace %s", upgradeNamespace) - } - - // the snapshots of AWS may be still in pending status when do the restore, wait for a while - // to avoid this https://github.com/vmware-tanzu/velero/issues/1799 - // TODO remove this after https://github.com/vmware-tanzu/velero/issues/3533 is fixed - if providerName == "aws" && useVolumeSnapshots { - fmt.Println("Waiting 5 minutes to make sure the snapshots are ready...") - time.Sleep(5 * time.Minute) - } - - if err := veleroInstall(context.Background(), veleroCLI, upgradeToVeleroImage, resticHelperImage, plugins, veleroNamespace, cloudProvider, objectStoreProvider, useVolumeSnapshots, - cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, crdsVersion, "", registryCredentialFile); err != nil { - return errors.Wrapf(err, "Failed to install velero from image %s", upgradeToVeleroImage) - } - if err := checkVeleroVersion(context.Background(), veleroCLI, upgradeToVeleroVersion); err != nil { - return errors.Wrapf(err, "Velero install version mismatch.") - } - if err := veleroRestore(oneHourTimeout, veleroCLI, veleroNamespace, restoreName, backupName); err != nil { - runDebug(context.Background(), veleroCLI, veleroNamespace, "", restoreName) - return errors.Wrapf(err, "Restore %s failed from backup %s", restoreName, backupName) - } - - if err := kibishiiVerifyAfterRestore(client, upgradeNamespace, oneHourTimeout); err != nil { - return errors.Wrapf(err, "Error verifying kibishii after restore") - } - - fmt.Printf("Upgrade test completed successfully\n") - return nil -} diff --git a/test/e2e/client.go b/test/e2e/util/k8s/client.go similarity index 82% rename from test/e2e/client.go rename to test/e2e/util/k8s/client.go index 0b1993934..839be2b83 100644 --- a/test/e2e/client.go +++ b/test/e2e/util/k8s/client.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package k8s import ( "k8s.io/client-go/kubernetes" @@ -23,10 +23,10 @@ import ( "github.com/vmware-tanzu/velero/pkg/client" ) -// testClient contains different API clients that are in use throughout +// TestClient contains different API clients that are in use throughout // the e2e tests. -type testClient struct { +type TestClient struct { kubebuilder kbclient.Client // clientGo returns a client-go API client. @@ -34,7 +34,7 @@ type testClient struct { // Deprecated, TODO(2.0): presuming all controllers and resources are converted to the // controller runtime framework by v2.0, it is the intent to remove all // client-go API clients. Please use the controller runtime to make API calls for tests. - clientGo kubernetes.Interface + ClientGo kubernetes.Interface // dynamicFactory returns a client-go API client for retrieving dynamic clients // for GroupVersionResources and GroupVersionKinds. @@ -45,35 +45,35 @@ type testClient struct { dynamicFactory client.DynamicFactory } -// newTestClient returns a set of ready-to-use API clients. -func newTestClient() (testClient, error) { +// k8sutils.NewTestClient returns a set of ready-to-use API clients. +func NewTestClient() (TestClient, error) { config, err := client.LoadConfig() if err != nil { - return testClient{}, err + return TestClient{}, err } f := client.NewFactory("e2e", config) clientGo, err := f.KubeClient() if err != nil { - return testClient{}, err + return TestClient{}, err } kb, err := f.KubebuilderClient() if err != nil { - return testClient{}, err + return TestClient{}, err } dynamicClient, err := f.DynamicClient() if err != nil { - return testClient{}, err + return TestClient{}, err } factory := client.NewDynamicFactory(dynamicClient) - return testClient{ + return TestClient{ kubebuilder: kb, - clientGo: clientGo, + ClientGo: clientGo, dynamicFactory: factory, }, nil } diff --git a/test/e2e/common.go b/test/e2e/util/k8s/common.go similarity index 85% rename from test/e2e/common.go rename to test/e2e/util/k8s/common.go index 25a2bd3ed..1e4a5eb91 100644 --- a/test/e2e/common.go +++ b/test/e2e/util/k8s/common.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package k8s import ( "fmt" @@ -32,11 +32,11 @@ import ( ) // ensureClusterExists returns whether or not a kubernetes cluster exists for tests to be run on. -func ensureClusterExists(ctx context.Context) error { +func EnsureClusterExists(ctx context.Context) error { return exec.CommandContext(ctx, "kubectl", "cluster-info").Run() } -func createSecretFromFiles(ctx context.Context, client testClient, namespace string, name string, files map[string]string) error { +func CreateSecretFromFiles(ctx context.Context, client TestClient, namespace string, name string, files map[string]string) error { data := make(map[string][]byte) for key, filePath := range files { @@ -49,17 +49,17 @@ func createSecretFromFiles(ctx context.Context, client testClient, namespace str } secret := builder.ForSecret(namespace, name).Data(data).Result() - _, err := client.clientGo.CoreV1().Secrets(namespace).Create(ctx, secret, metav1.CreateOptions{}) + _, err := client.ClientGo.CoreV1().Secrets(namespace).Create(ctx, secret, metav1.CreateOptions{}) return err } -// waitForPods waits until all of the pods have gone to PodRunning state -func waitForPods(ctx context.Context, client testClient, namespace string, pods []string) error { +// WaitForPods waits until all of the pods have gone to PodRunning state +func WaitForPods(ctx context.Context, client TestClient, namespace string, pods []string) error { timeout := 10 * time.Minute interval := 5 * time.Second err := wait.PollImmediate(interval, timeout, func() (bool, error) { for _, podName := range pods { - checkPod, err := client.clientGo.CoreV1().Pods(namespace).Get(ctx, podName, metav1.GetOptions{}) + checkPod, err := client.ClientGo.CoreV1().Pods(namespace).Get(ctx, podName, metav1.GetOptions{}) if err != nil { return false, errors.WithMessage(err, fmt.Sprintf("Failed to verify pod %s/%s is %s", namespace, podName, corev1api.PodRunning)) } diff --git a/test/e2e/namespace.go b/test/e2e/util/k8s/namespace.go similarity index 59% rename from test/e2e/namespace.go rename to test/e2e/util/k8s/namespace.go index 7ac2efdac..2c33e32d5 100644 --- a/test/e2e/namespace.go +++ b/test/e2e/util/k8s/namespace.go @@ -14,11 +14,12 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package k8s import ( "context" "fmt" + "strings" "time" "github.com/pkg/errors" @@ -27,26 +28,27 @@ import ( corev1api "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" waitutil "k8s.io/apimachinery/pkg/util/wait" "github.com/vmware-tanzu/velero/pkg/builder" ) -func createNamespace(ctx context.Context, client testClient, namespace string) error { +func CreateNamespace(ctx context.Context, client TestClient, namespace string) error { ns := builder.ForNamespace(namespace).Result() - _, err := client.clientGo.CoreV1().Namespaces().Create(ctx, ns, metav1.CreateOptions{}) + _, err := client.ClientGo.CoreV1().Namespaces().Create(ctx, ns, metav1.CreateOptions{}) if apierrors.IsAlreadyExists(err) { return nil } return err } -func getNamespace(ctx context.Context, client testClient, namespace string) (*corev1api.Namespace, error) { - return client.clientGo.CoreV1().Namespaces().Get(ctx, namespace, metav1.GetOptions{}) +func GetNamespace(ctx context.Context, client TestClient, namespace string) (*corev1api.Namespace, error) { + return client.ClientGo.CoreV1().Namespaces().Get(ctx, namespace, metav1.GetOptions{}) } -func deleteNamespace(ctx context.Context, client testClient, namespace string, wait bool) error { - if err := client.clientGo.CoreV1().Namespaces().Delete(ctx, namespace, metav1.DeleteOptions{}); err != nil { +func DeleteNamespace(ctx context.Context, client TestClient, namespace string, wait bool) error { + if err := client.ClientGo.CoreV1().Namespaces().Delete(ctx, namespace, metav1.DeleteOptions{}); err != nil { return errors.Wrap(err, fmt.Sprintf("failed to delete the namespace %q", namespace)) } if !wait { @@ -55,7 +57,7 @@ func deleteNamespace(ctx context.Context, client testClient, namespace string, w return waitutil.PollImmediateInfinite(5*time.Second, func() (bool, error) { - if _, err := client.clientGo.CoreV1().Namespaces().Get(context.TODO(), namespace, metav1.GetOptions{}); err != nil { + if _, err := client.ClientGo.CoreV1().Namespaces().Get(context.TODO(), namespace, metav1.GetOptions{}); err != nil { if apierrors.IsNotFound(err) { return true, nil } @@ -65,3 +67,19 @@ func deleteNamespace(ctx context.Context, client testClient, namespace string, w return false, nil }) } + +func CleanupNamespaces(ctx context.Context, client TestClient, nsBaseName string) error { + namespaces, err := client.ClientGo.CoreV1().Namespaces().List(ctx, v1.ListOptions{}) + if err != nil { + return errors.Wrap(err, "Could not retrieve namespaces") + } + for _, checkNamespace := range namespaces.Items { + if strings.HasPrefix(checkNamespace.Name, nsBaseName) { + err = client.ClientGo.CoreV1().Namespaces().Delete(ctx, checkNamespace.Name, v1.DeleteOptions{}) + if err != nil { + return errors.Wrapf(err, "Could not delete namespace %s", checkNamespace.Name) + } + } + } + return nil +} diff --git a/test/e2e/serviceaccount.go b/test/e2e/util/k8s/serviceaccount.go similarity index 81% rename from test/e2e/serviceaccount.go rename to test/e2e/util/k8s/serviceaccount.go index 30e46a85c..c7274e864 100644 --- a/test/e2e/serviceaccount.go +++ b/test/e2e/util/k8s/serviceaccount.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package k8s import ( "context" @@ -33,10 +33,10 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func waitUntilServiceAccountCreated(ctx context.Context, client testClient, namespace, serviceAccount string, timeout time.Duration) error { +func WaitUntilServiceAccountCreated(ctx context.Context, client TestClient, namespace, serviceAccount string, timeout time.Duration) error { return wait.PollImmediate(5*time.Second, timeout, func() (bool, error) { - if _, err := client.clientGo.CoreV1().ServiceAccounts(namespace).Get(ctx, serviceAccount, metav1.GetOptions{}); err != nil { + if _, err := client.ClientGo.CoreV1().ServiceAccounts(namespace).Get(ctx, serviceAccount, metav1.GetOptions{}); err != nil { if !apierrors.IsNotFound(err) { return false, err } @@ -46,7 +46,7 @@ func waitUntilServiceAccountCreated(ctx context.Context, client testClient, name }) } -func patchServiceAccountWithImagePullSecret(ctx context.Context, client testClient, namespace, serviceAccount, dockerCredentialFile string) error { +func PatchServiceAccountWithImagePullSecret(ctx context.Context, client TestClient, namespace, serviceAccount, dockerCredentialFile string) error { credential, err := ioutil.ReadFile(dockerCredentialFile) if err != nil { return errors.Wrapf(err, "failed to read the docker credential file %q", dockerCredentialFile) @@ -54,11 +54,11 @@ func patchServiceAccountWithImagePullSecret(ctx context.Context, client testClie secretName := "image-pull-secret" secret := builder.ForSecret(namespace, secretName).Data(map[string][]byte{".dockerconfigjson": credential}).Result() secret.Type = corev1.SecretTypeDockerConfigJson - if _, err = client.clientGo.CoreV1().Secrets(namespace).Create(ctx, secret, metav1.CreateOptions{}); err != nil { + if _, err = client.ClientGo.CoreV1().Secrets(namespace).Create(ctx, secret, metav1.CreateOptions{}); err != nil { return errors.Wrapf(err, "failed to create secret %q under namespace %q", secretName, namespace) } - if _, err = client.clientGo.CoreV1().ServiceAccounts(namespace).Patch(ctx, serviceAccount, types.StrategicMergePatchType, + if _, err = client.ClientGo.CoreV1().ServiceAccounts(namespace).Patch(ctx, serviceAccount, types.StrategicMergePatchType, []byte(fmt.Sprintf(`{"imagePullSecrets": [{"name": "%s"}]}`, secretName)), metav1.PatchOptions{}); err != nil { return errors.Wrapf(err, "failed to patch the service account %q under the namespace %q", serviceAccount, namespace) } diff --git a/test/e2e/kibishii_utils.go b/test/e2e/util/kibishii/kibishii_utils.go similarity index 76% rename from test/e2e/kibishii_utils.go rename to test/e2e/util/kibishii/kibishii_utils.go index b8efc35c1..3221f6da8 100644 --- a/test/e2e/kibishii_utils.go +++ b/test/e2e/util/kibishii/kibishii_utils.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package kibishii import ( "fmt" @@ -26,6 +26,8 @@ import ( "golang.org/x/net/context" veleroexec "github.com/vmware-tanzu/velero/pkg/util/exec" + k8sutils "github.com/vmware-tanzu/velero/test/e2e/util/k8s" + veleroutils "github.com/vmware-tanzu/velero/test/e2e/util/velero" ) const ( @@ -33,25 +35,24 @@ const ( jumpPadPod = "jump-pad" ) -// runKibishiiTests runs kibishii tests on the provider. -func runKibishiiTests(client testClient, providerName, veleroCLI, veleroNamespace, backupName, restoreName, backupLocation string, +// RunKibishiiTests runs kibishii tests on the provider. +func RunKibishiiTests(client k8sutils.TestClient, providerName, veleroCLI, veleroNamespace, backupName, restoreName, backupLocation string, useVolumeSnapshots bool, registryCredentialFile string) error { oneHourTimeout, _ := context.WithTimeout(context.Background(), time.Minute*60) - - if err := createNamespace(oneHourTimeout, client, kibishiiNamespace); err != nil { + if err := k8sutils.CreateNamespace(oneHourTimeout, client, kibishiiNamespace); err != nil { return errors.Wrapf(err, "Failed to create namespace %s to install Kibishii workload", kibishiiNamespace) } defer func() { - if err := deleteNamespace(context.Background(), client, kibishiiNamespace, true); err != nil { + if err := k8sutils.DeleteNamespace(context.Background(), client, kibishiiNamespace, true); err != nil { fmt.Println(errors.Wrapf(err, "failed to delete the namespace %q", kibishiiNamespace)) } }() - if err := kibishiiPrepareBeforeBackup(oneHourTimeout, client, providerName, kibishiiNamespace, registryCredentialFile); err != nil { + if err := KibishiiPrepareBeforeBackup(oneHourTimeout, client, providerName, kibishiiNamespace, registryCredentialFile); err != nil { return errors.Wrapf(err, "Failed to install and prepare data for kibishii %s", kibishiiNamespace) } - if err := veleroBackupNamespace(oneHourTimeout, veleroCLI, veleroNamespace, backupName, kibishiiNamespace, backupLocation, useVolumeSnapshots); err != nil { - runDebug(context.Background(), veleroCLI, veleroNamespace, backupName, "") + if err := veleroutils.VeleroBackupNamespace(oneHourTimeout, veleroCLI, veleroNamespace, backupName, kibishiiNamespace, backupLocation, useVolumeSnapshots); err != nil { + veleroutils.RunDebug(context.Background(), veleroCLI, veleroNamespace, backupName, "") return errors.Wrapf(err, "Failed to backup kibishii namespace %s", kibishiiNamespace) } @@ -59,12 +60,12 @@ func runKibishiiTests(client testClient, providerName, veleroCLI, veleroNamespac // Wait for uploads started by the Velero Plug-in for vSphere to complete // TODO - remove after upload progress monitoring is implemented fmt.Println("Waiting for vSphere uploads to complete") - if err := waitForVSphereUploadCompletion(oneHourTimeout, time.Hour, kibishiiNamespace); err != nil { + if err := veleroutils.WaitForVSphereUploadCompletion(oneHourTimeout, time.Hour, kibishiiNamespace); err != nil { return errors.Wrapf(err, "Error waiting for uploads to complete") } } fmt.Printf("Simulating a disaster by removing namespace %s\n", kibishiiNamespace) - if err := deleteNamespace(oneHourTimeout, client, kibishiiNamespace, true); err != nil { + if err := k8sutils.DeleteNamespace(oneHourTimeout, client, kibishiiNamespace, true); err != nil { return errors.Wrapf(err, "failed to delete namespace %s", kibishiiNamespace) } @@ -76,12 +77,12 @@ func runKibishiiTests(client testClient, providerName, veleroCLI, veleroNamespac time.Sleep(5 * time.Minute) } - if err := veleroRestore(oneHourTimeout, veleroCLI, veleroNamespace, restoreName, backupName); err != nil { - runDebug(context.Background(), veleroCLI, veleroNamespace, "", restoreName) + if err := veleroutils.VeleroRestore(oneHourTimeout, veleroCLI, veleroNamespace, restoreName, backupName); err != nil { + veleroutils.RunDebug(context.Background(), veleroCLI, veleroNamespace, "", restoreName) return errors.Wrapf(err, "Restore %s failed from backup %s", restoreName, backupName) } - if err := kibishiiVerifyAfterRestore(client, kibishiiNamespace, oneHourTimeout); err != nil { + if err := KibishiiVerifyAfterRestore(client, kibishiiNamespace, oneHourTimeout); err != nil { return errors.Wrapf(err, "Error verifying kibishii after restore") } @@ -144,19 +145,19 @@ func verifyData(ctx context.Context, namespace string, levels int, filesPerLevel return nil } -func waitForKibishiiPods(ctx context.Context, client testClient, kibishiiNamespace string) error { - return waitForPods(ctx, client, kibishiiNamespace, []string{"jump-pad", "etcd0", "etcd1", "etcd2", "kibishii-deployment-0", "kibishii-deployment-1"}) +func waitForKibishiiPods(ctx context.Context, client k8sutils.TestClient, kibishiiNamespace string) error { + return k8sutils.WaitForPods(ctx, client, kibishiiNamespace, []string{"jump-pad", "etcd0", "etcd1", "etcd2", "kibishii-deployment-0", "kibishii-deployment-1"}) } -func kibishiiPrepareBeforeBackup(oneHourTimeout context.Context, client testClient, providerName, kibishiiNamespace, registryCredentialFile string) error { +func KibishiiPrepareBeforeBackup(oneHourTimeout context.Context, client k8sutils.TestClient, providerName, kibishiiNamespace, registryCredentialFile string) error { serviceAccountName := "default" // wait until the service account is created before patch the image pull secret - if err := waitUntilServiceAccountCreated(oneHourTimeout, client, kibishiiNamespace, serviceAccountName, 10*time.Minute); err != nil { + if err := k8sutils.WaitUntilServiceAccountCreated(oneHourTimeout, client, kibishiiNamespace, serviceAccountName, 10*time.Minute); err != nil { return errors.Wrapf(err, "failed to wait the service account %q created under the namespace %q", serviceAccountName, kibishiiNamespace) } // add the image pull secret to avoid the image pull limit issue of Docker Hub - if err := patchServiceAccountWithImagePullSecret(oneHourTimeout, client, kibishiiNamespace, serviceAccountName, registryCredentialFile); err != nil { + if err := k8sutils.PatchServiceAccountWithImagePullSecret(oneHourTimeout, client, kibishiiNamespace, serviceAccountName, registryCredentialFile); err != nil { return errors.Wrapf(err, "failed to patch the service account %q under the namespace %q", serviceAccountName, kibishiiNamespace) } @@ -177,7 +178,7 @@ func kibishiiPrepareBeforeBackup(oneHourTimeout context.Context, client testClie return nil } -func kibishiiVerifyAfterRestore(client testClient, kibishiiNamespace string, oneHourTimeout context.Context) error { +func KibishiiVerifyAfterRestore(client k8sutils.TestClient, kibishiiNamespace string, oneHourTimeout context.Context) error { // wait for kibishii pod startup // TODO - Fix kibishii so we can check that it is ready to go fmt.Printf("Waiting for kibishii pods to be ready\n") diff --git a/test/e2e/install.go b/test/e2e/util/velero/install.go similarity index 86% rename from test/e2e/install.go rename to test/e2e/util/velero/install.go index 80c344c44..38c58f18a 100644 --- a/test/e2e/install.go +++ b/test/e2e/util/velero/install.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package velero import ( "bytes" @@ -35,6 +35,8 @@ import ( "github.com/vmware-tanzu/velero/pkg/cmd/cli/install" velerexec "github.com/vmware-tanzu/velero/pkg/util/exec" + . "github.com/vmware-tanzu/velero/test/e2e" + k8sutils "github.com/vmware-tanzu/velero/test/e2e/util/k8s" ) // we provide more install options other than the standard install.InstallOptions in E2E test @@ -44,53 +46,49 @@ type installOptions struct { ResticHelperImage string } -// TODO too many parameters for this function, better to make it a structure, we can introduces a structure `config` for the E2E to hold all configuration items -func veleroInstall(ctx context.Context, cli, veleroImage, resticHelperImage, providerPlugins, veleroNamespace, cloudProvider, objectStoreProvider string, useVolumeSnapshots bool, - cloudCredentialsFile string, bslBucket string, bslPrefix string, bslConfig string, vslConfig string, - crdsVersion string, features string, registryCredentialFile string) error { - - if cloudProvider != "kind" { - if objectStoreProvider != "" { +func VeleroInstall(ctx context.Context, veleroCfg *VerleroConfig, features string, useVolumeSnapshots bool) error { + if veleroCfg.CloudProvider != "kind" { + if veleroCfg.ObjectStoreProvider != "" { return errors.New("For cloud platforms, object store plugin cannot be overridden") // Can't set an object store provider that is different than your cloud } - objectStoreProvider = cloudProvider + veleroCfg.ObjectStoreProvider = veleroCfg.CloudProvider } else { - if objectStoreProvider == "" { + if veleroCfg.ObjectStoreProvider == "" { return errors.New("No object store provider specified - must be specified when using kind as the cloud provider") // Gotta have an object store provider } } - providerPluginsTmp, err := getProviderPlugins(ctx, cli, objectStoreProvider, providerPlugins) + providerPluginsTmp, err := getProviderPlugins(ctx, veleroCfg.VeleroCLI, veleroCfg.ObjectStoreProvider, veleroCfg.Plugins) if err != nil { return errors.WithMessage(err, "Failed to get provider plugins") } // TODO - handle this better - if cloudProvider == "vsphere" { - // We overrider the objectStoreProvider here for vSphere because we want to use the aws plugin for the + if veleroCfg.CloudProvider == "vsphere" { + // We overrider the ObjectStoreProvider here for vSphere because we want to use the aws plugin for the // backup, but needed to pick up the provider plugins earlier. vSphere plugin no longer needs a Volume // Snapshot location specified - objectStoreProvider = "aws" + veleroCfg.ObjectStoreProvider = "aws" } - err = ensureClusterExists(ctx) + err = k8sutils.EnsureClusterExists(ctx) if err != nil { return errors.WithMessage(err, "Failed to ensure Kubernetes cluster exists") } - veleroInstallOptions, err := getProviderVeleroInstallOptions(objectStoreProvider, cloudCredentialsFile, bslBucket, - bslPrefix, bslConfig, vslConfig, providerPluginsTmp, features) + veleroInstallOptions, err := getProviderVeleroInstallOptions(veleroCfg.ObjectStoreProvider, veleroCfg.CloudCredentialsFile, veleroCfg.BSLBucket, + veleroCfg.BSLPrefix, veleroCfg.BSLConfig, veleroCfg.VSLConfig, providerPluginsTmp, features) if err != nil { - return errors.WithMessagef(err, "Failed to get Velero InstallOptions for plugin provider %s", objectStoreProvider) + return errors.WithMessagef(err, "Failed to get Velero InstallOptions for plugin provider %s", veleroCfg.ObjectStoreProvider) } veleroInstallOptions.UseVolumeSnapshots = useVolumeSnapshots veleroInstallOptions.UseRestic = !useVolumeSnapshots - veleroInstallOptions.Image = veleroImage - veleroInstallOptions.CRDsVersion = crdsVersion - veleroInstallOptions.Namespace = veleroNamespace + veleroInstallOptions.Image = veleroCfg.VeleroImage + veleroInstallOptions.CRDsVersion = veleroCfg.CRDsVersion + veleroInstallOptions.Namespace = veleroCfg.VeleroNamespace - err = installVeleroServer(ctx, cli, &installOptions{ + err = installVeleroServer(ctx, veleroCfg.VeleroCLI, &installOptions{ InstallOptions: veleroInstallOptions, - RegistryCredentialFile: registryCredentialFile, - ResticHelperImage: resticHelperImage, + RegistryCredentialFile: veleroCfg.RegistryCredentialFile, + ResticHelperImage: veleroCfg.ResticHelperImage, }) if err != nil { return errors.WithMessagef(err, "Failed to install Velero in the cluster") @@ -195,7 +193,7 @@ func createVelereResources(ctx context.Context, cli, namespace string, args []st return errors.Wrapf(err, "failed to unmarshal the resources: %s", string(stdout)) } - if err = patchResources(ctx, resources, namespace, registryCredentialFile, resticHelperImage); err != nil { + if err = patchResources(ctx, resources, namespace, registryCredentialFile, VeleroCfg.ResticHelperImage); err != nil { return errors.Wrapf(err, "failed to patch resources") } @@ -261,7 +259,7 @@ func patchResources(ctx context.Context, resources *unstructured.UnstructuredLis } // customize the restic restore helper image - if len(resticHelperImage) > 0 { + if len(VeleroCfg.ResticHelperImage) > 0 { restoreActionConfig := corev1.ConfigMap{ TypeMeta: metav1.TypeMeta{ Kind: "ConfigMap", @@ -276,7 +274,7 @@ func patchResources(ctx context.Context, resources *unstructured.UnstructuredLis }, }, Data: map[string]string{ - "image": resticHelperImage, + "image": VeleroCfg.ResticHelperImage, }, } @@ -337,7 +335,7 @@ func waitVeleroReady(ctx context.Context, namespace string, useRestic bool) erro return nil } -func veleroUninstall(ctx context.Context, cli, namespace string) error { +func VeleroUninstall(ctx context.Context, cli, namespace string) error { stdout, stderr, err := velerexec.RunCommand(exec.CommandContext(ctx, cli, "uninstall", "--force", "-n", namespace)) if err != nil { return errors.Wrapf(err, "failed to uninstall velero, stdout=%s, stderr=%s", stdout, stderr) diff --git a/test/e2e/velero_utils.go b/test/e2e/util/velero/velero_utils.go similarity index 82% rename from test/e2e/velero_utils.go rename to test/e2e/util/velero/velero_utils.go index 09ef1407f..d32c9f577 100644 --- a/test/e2e/velero_utils.go +++ b/test/e2e/util/velero/velero_utils.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package velero import ( "bytes" @@ -98,7 +98,7 @@ func getProviderVeleroInstallOptions( pluginProvider, credentialsFile, objectStoreBucket, - objectStorePrefix string, + objectStorePrefix, bslConfig, vslConfig string, plugins []string, @@ -134,7 +134,7 @@ func getProviderVeleroInstallOptions( return io, nil } -// checkBackupPhase uses veleroCLI to inspect the phase of a Velero backup. +// checkBackupPhase uses VeleroCLI to inspect the phase of a Velero backup. func checkBackupPhase(ctx context.Context, veleroCLI string, veleroNamespace string, backupName string, expectedPhase velerov1api.BackupPhase) error { checkCMD := exec.CommandContext(ctx, veleroCLI, "--namespace", veleroNamespace, "backup", "get", "-o", "json", @@ -178,7 +178,7 @@ func checkBackupPhase(ctx context.Context, veleroCLI string, veleroNamespace str return nil } -// checkRestorePhase uses veleroCLI to inspect the phase of a Velero restore. +// checkRestorePhase uses VeleroCLI to inspect the phase of a Velero restore. func checkRestorePhase(ctx context.Context, veleroCLI string, veleroNamespace string, restoreName string, expectedPhase velerov1api.RestorePhase) error { checkCMD := exec.CommandContext(ctx, veleroCLI, "--namespace", veleroNamespace, "restore", "get", "-o", "json", @@ -222,8 +222,8 @@ func checkRestorePhase(ctx context.Context, veleroCLI string, veleroNamespace st return nil } -// veleroBackupNamespace uses the veleroCLI to backup a namespace. -func veleroBackupNamespace(ctx context.Context, veleroCLI string, veleroNamespace string, backupName string, namespace string, backupLocation string, +// VeleroBackupNamespace uses the veleroCLI to backup a namespace. +func VeleroBackupNamespace(ctx context.Context, veleroCLI string, veleroNamespace string, backupName string, namespace string, backupLocation string, useVolumeSnapshots bool) error { args := []string{ "--namespace", veleroNamespace, @@ -246,71 +246,80 @@ func veleroBackupNamespace(ctx context.Context, veleroCLI string, veleroNamespac args = append(args, "--storage-location", backupLocation) } - backupCmd := exec.CommandContext(ctx, veleroCLI, args...) - backupCmd.Stdout = os.Stdout - backupCmd.Stderr = os.Stderr - fmt.Printf("backup cmd =%v\n", backupCmd) - err := backupCmd.Run() - if err != nil { - return err - } - err = checkBackupPhase(ctx, veleroCLI, veleroNamespace, backupName, velerov1api.BackupPhaseCompleted) - - return err + return VeleroBackupExec(ctx, veleroCLI, veleroNamespace, backupName, args) } -// veleroBackupExcludeNamespaces uses the veleroCLI to backup a namespace. -func veleroBackupExcludeNamespaces(ctx context.Context, veleroCLI string, veleroNamespace string, backupName string, excludeNamespaces []string) error { +// VeleroBackupExcludeNamespaces uses the veleroCLI to backup a namespace. +func VeleroBackupExcludeNamespaces(ctx context.Context, veleroCLI string, veleroNamespace string, backupName string, excludeNamespaces []string) error { namespaces := strings.Join(excludeNamespaces, ",") - backupCmd := exec.CommandContext(ctx, veleroCLI, "--namespace", veleroNamespace, "create", "backup", backupName, + args := []string{ + "--namespace", veleroNamespace, "create", "backup", backupName, "--exclude-namespaces", namespaces, - "--default-volumes-to-restic", "--wait") - backupCmd.Stdout = os.Stdout - backupCmd.Stderr = os.Stderr - fmt.Printf("backup cmd =%v\n", backupCmd) - err := backupCmd.Run() - if err != nil { - return err + "--default-volumes-to-restic", "--wait", } - err = checkBackupPhase(ctx, veleroCLI, veleroNamespace, backupName, velerov1api.BackupPhaseCompleted) - - return err + return VeleroBackupExec(ctx, veleroCLI, veleroNamespace, backupName, args) } -// veleroRestore uses the veleroCLI to restore from a Velero backup. -func veleroRestore(ctx context.Context, veleroCLI string, veleroNamespace string, restoreName string, backupName string) error { - restoreCmd := exec.CommandContext(ctx, veleroCLI, "--namespace", veleroNamespace, "create", "restore", restoreName, - "--from-backup", backupName, "--wait") +// VeleroBackupIncludeNamespaces uses the veleroCLI to backup a namespace. +func VeleroBackupIncludeNamespaces(ctx context.Context, veleroCLI string, veleroNamespace string, backupName string, includeNamespaces []string) error { + namespaces := strings.Join(includeNamespaces, ",") + args := []string{ + "--namespace", veleroNamespace, "create", "backup", backupName, + "--include-namespaces", namespaces, + "--default-volumes-to-restic", "--wait", + } + return VeleroBackupExec(ctx, veleroCLI, veleroNamespace, backupName, args) +} - restoreCmd.Stdout = os.Stdout - restoreCmd.Stderr = os.Stderr - fmt.Printf("restore cmd =%v\n", restoreCmd) - err := restoreCmd.Run() - if err != nil { +// VeleroRestore uses the VeleroCLI to restore from a Velero backup. +func VeleroRestore(ctx context.Context, veleroCLI string, veleroNamespace string, restoreName string, backupName string) error { + args := []string{ + "--namespace", veleroNamespace, "create", "restore", restoreName, + "--from-backup", backupName, "--wait", + } + return VeleroRestoreExec(ctx, veleroCLI, veleroNamespace, restoreName, args) +} + +func VeleroRestoreExec(ctx context.Context, veleroCLI, veleroNamespace, restoreName string, args []string) error { + if err := VeleroCmdExec(ctx, veleroCLI, args); err != nil { return err } return checkRestorePhase(ctx, veleroCLI, veleroNamespace, restoreName, velerov1api.RestorePhaseCompleted) } -func veleroBackupLogs(ctx context.Context, veleroCLI string, veleroNamespace string, backupName string) error { - describeCmd := exec.CommandContext(ctx, veleroCLI, "--namespace", veleroNamespace, "backup", "describe", backupName) - describeCmd.Stdout = os.Stdout - describeCmd.Stderr = os.Stderr - err := describeCmd.Run() - if err != nil { +func VeleroBackupExec(ctx context.Context, veleroCLI string, veleroNamespace string, backupName string, args []string) error { + if err := VeleroCmdExec(ctx, veleroCLI, args); err != nil { return err } - logCmd := exec.CommandContext(ctx, veleroCLI, "--namespace", veleroNamespace, "backup", "logs", backupName) - logCmd.Stdout = os.Stdout - logCmd.Stderr = os.Stderr - err = logCmd.Run() - if err != nil { - return err - } - return nil + return checkBackupPhase(ctx, veleroCLI, veleroNamespace, backupName, velerov1api.BackupPhaseCompleted) } -func runDebug(ctx context.Context, veleroCLI, veleroNamespace, backup, restore string) { +func VeleroCmdExec(ctx context.Context, veleroCLI string, args []string) error { + cmd := exec.CommandContext(ctx, veleroCLI, args...) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + fmt.Printf("velero cmd =%v\n", cmd) + err := cmd.Run() + if err != nil { + return err + } + return err +} + +func VeleroBackupLogs(ctx context.Context, veleroCLI string, veleroNamespace string, backupName string) error { + args := []string{ + "--namespace", veleroNamespace, "backup", "describe", backupName, + } + if err := VeleroCmdExec(ctx, veleroCLI, args); err != nil { + return err + } + args = []string{ + "--namespace", veleroNamespace, "backup", "logs", backupName, + } + return VeleroCmdExec(ctx, veleroCLI, args) +} + +func RunDebug(ctx context.Context, veleroCLI, veleroNamespace, backup, restore string) { output := fmt.Sprintf("debug-bundle-%d.tar.gz", time.Now().UnixNano()) args := []string{"debug", "--namespace", veleroNamespace, "--output", output, "--verbose"} if len(backup) > 0 { @@ -319,26 +328,21 @@ func runDebug(ctx context.Context, veleroCLI, veleroNamespace, backup, restore s if len(restore) > 0 { args = append(args, "--restore", restore) } - - cmd := exec.CommandContext(ctx, veleroCLI, args...) - cmd.Stdout = os.Stdout - cmd.Stdin = os.Stdin - fmt.Printf("debug cmd=%s\n", cmd.String()) fmt.Printf("Generating the debug tarball at %s\n", output) - if err := cmd.Run(); err != nil { + if err := VeleroCmdExec(ctx, veleroCLI, args); err != nil { fmt.Println(errors.Wrapf(err, "failed to run the debug command")) } } -func veleroCreateBackupLocation(ctx context.Context, - veleroCLI string, - veleroNamespace string, - name string, - objectStoreProvider string, - bucket string, - prefix string, - config string, - secretName string, +func VeleroCreateBackupLocation(ctx context.Context, + veleroCLI, + veleroNamespace, + name, + objectStoreProvider, + bucket, + prefix, + config, + secretName, secretKey string, ) error { args := []string{ @@ -359,12 +363,7 @@ func veleroCreateBackupLocation(ctx context.Context, if secretName != "" && secretKey != "" { args = append(args, "--credential", fmt.Sprintf("%s=%s", secretName, secretKey)) } - - bslCreateCmd := exec.CommandContext(ctx, veleroCLI, args...) - bslCreateCmd.Stdout = os.Stdout - bslCreateCmd.Stderr = os.Stderr - - return bslCreateCmd.Run() + return VeleroCmdExec(ctx, veleroCLI, args) } func getProviderPlugins(ctx context.Context, veleroCLI, objectStoreProvider, providerPlugins string) ([]string, error) { @@ -385,9 +384,9 @@ func getProviderPlugins(ctx context.Context, veleroCLI, objectStoreProvider, pro return plugins, nil } -// veleroAddPluginsForProvider determines which plugins need to be installed for a provider and +// VeleroAddPluginsForProvider determines which plugins need to be installed for a provider and // installs them in the current Velero installation, skipping over those that are already installed. -func veleroAddPluginsForProvider(ctx context.Context, veleroCLI string, veleroNamespace string, provider string, addPlugins string) error { +func VeleroAddPluginsForProvider(ctx context.Context, veleroCLI string, veleroNamespace string, provider string, addPlugins string) error { plugins, err := getProviderPlugins(ctx, veleroCLI, provider, addPlugins) if err != nil { return errors.WithMessage(err, "Failed to get plugins") @@ -417,9 +416,9 @@ func veleroAddPluginsForProvider(ctx context.Context, veleroCLI string, veleroNa return nil } -// waitForVSphereUploadCompletion waits for uploads started by the Velero Plug-in for vSphere to complete +// WaitForVSphereUploadCompletion waits for uploads started by the Velero Plug-in for vSphere to complete // TODO - remove after upload progress monitoring is implemented -func waitForVSphereUploadCompletion(ctx context.Context, timeout time.Duration, namespace string) error { +func WaitForVSphereUploadCompletion(ctx context.Context, timeout time.Duration, namespace string) error { err := wait.PollImmediate(time.Minute, timeout, func() (bool, error) { checkSnapshotCmd := exec.CommandContext(ctx, "kubectl", "get", "-n", namespace, "snapshots.backupdriver.cnsdp.vmware.com", "-o=jsonpath='{range .items[*]}{.spec.resourceHandle.name}{\"=\"}{.status.phase}{\"\\n\"}{end}'") @@ -447,6 +446,7 @@ func waitForVSphereUploadCompletion(ctx context.Context, timeout time.Duration, // status will move to Canceling. The snapshot ID will be removed from the status status if has been filled in // and the snapshot ID will not longer be valid for a Clone operation // Canceled - the operation was canceled, the snapshot ID is not valid + // Canceled - the operation was canceled, the snapshot ID is not valid if len(comps) == 2 { phase := comps[1] switch phase { @@ -497,7 +497,7 @@ func getVeleroVersion(ctx context.Context, veleroCLI string, clientOnly bool) (s return versionMatches[1], nil } -func checkVeleroVersion(ctx context.Context, veleroCLI string, expectedVer string) error { +func CheckVeleroVersion(ctx context.Context, veleroCLI string, expectedVer string) error { tag := expectedVer tagInstalled, err := getVeleroVersion(ctx, veleroCLI, false) if err != nil { @@ -510,7 +510,7 @@ func checkVeleroVersion(ctx context.Context, veleroCLI string, expectedVer strin return nil } -func installVeleroCLI(version string) (string, error) { +func InstallVeleroCLI(version string) (string, error) { name := "velero-" + version + "-" + runtime.GOOS + "-" + runtime.GOARCH postfix := ".tar.gz" tarball := name + postfix From 48d185985ab044a46dc91864a2fbd1f6430f56ee Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Tue, 23 Nov 2021 01:01:24 +0800 Subject: [PATCH 057/136] Update issue template to reference velero debug (#4384) Signed-off-by: Daniel Jiang --- .github/ISSUE_TEMPLATE/bug_report.md | 7 +++++-- pkg/cmd/cli/bug/bug.go | 9 +++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 131b6ccb5..18cd57a9a 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -10,10 +10,13 @@ about: Tell us about a problem you are experiencing **What did you expect to happen:** +**The following information will help us better understand what's going on**: -**The output of the following commands will help us better understand what's going on**: -(Pasting long output into a [GitHub gist](https://gist.github.com) or other pastebin is fine.) +_If you are using velero v1.7.0+:_ +Please use `velero debug --backup --restore ` to generate the support bundle, and attach to this issue, more options please refer to `velero debug --help` +_If you are using earlier versions:_ +Please provide the output of the following commands (Pasting long output into a [GitHub gist](https://gist.github.com) or other pastebin is fine.) - `kubectl logs deployment/velero -n velero` - `velero backup describe ` or `kubectl get backup/ -n velero -o yaml` - `velero backup logs ` diff --git a/pkg/cmd/cli/bug/bug.go b/pkg/cmd/cli/bug/bug.go index e5d0952aa..ea775ec31 100644 --- a/pkg/cmd/cli/bug/bug.go +++ b/pkg/cmd/cli/bug/bug.go @@ -55,10 +55,15 @@ about: Tell us about a problem you are experiencing **What did you expect to happen:** +**The following information will help us better understand what's going on**: -**The output of the following commands will help us better understand what's going on**: -(Pasting long output into a [GitHub gist](https://gist.github.com) or other pastebin is fine.) +_If you are using velero v1.7.0+:_ +Please use ` + "`velero debug --backup --restore ` " + + `to generate the support bundle, and attach to this issue, more options please refer to ` + + "`velero debug --help` " + ` +_If you are using earlier versions:_ +Please provide the output of the following commands (Pasting long output into a [GitHub gist](https://gist.github.com) or other pastebin is fine.) - ` + "`kubectl logs deployment/velero -n velero`" + ` - ` + "`velero backup describe ` or `kubectl get backup/ -n velero -o yaml`" + ` - ` + "`velero backup logs `" + ` From 303d3dcad3d2a5bf7a903802bd7944e6df29f4e5 Mon Sep 17 00:00:00 2001 From: Xun Jiang Date: Thu, 18 Nov 2021 22:25:37 +0800 Subject: [PATCH 058/136] feat: migrate kubebuilder from v2 to v3 1. remove config/crd/v1beta1 2. remove PROJECT file 3. update controller-gen and kubebuilder version 4. generate client and CRD file 5. add changelog and remove v1beta1 CRD generated code. 6. add kubebuilder test bundle setup command. 7. due to apiextensions.k8s.io/v1beta1 is not supported, only k8s after v1.16 is supported, so remove v1.15 check. 8. add CRD and k8s suppored version update in changelog. Signed-off-by: Xun Jiang --- .github/workflows/crds-verify-kind.yaml | 1 - PROJECT | 7 - changelogs/unreleased/4382-jxun | 4 + config/crd/v1/bases/velero.io_backups.yaml | 2 +- .../velero.io_backupstoragelocations.yaml | 2 +- .../bases/velero.io_deletebackuprequests.yaml | 2 +- .../v1/bases/velero.io_downloadrequests.yaml | 2 +- .../v1/bases/velero.io_podvolumebackups.yaml | 2 +- .../v1/bases/velero.io_podvolumerestores.yaml | 2 +- .../bases/velero.io_resticrepositories.yaml | 2 +- config/crd/v1/bases/velero.io_restores.yaml | 3 +- config/crd/v1/bases/velero.io_schedules.yaml | 2 +- .../bases/velero.io_serverstatusrequests.yaml | 2 +- .../velero.io_volumesnapshotlocations.yaml | 2 +- config/crd/v1/crds/crds.go | 22 +- .../crd/v1beta1/bases/velero.io_backups.yaml | 439 ---- .../velero.io_backupstoragelocations.yaml | 179 -- .../bases/velero.io_deletebackuprequests.yaml | 73 - .../bases/velero.io_downloadrequests.yaml | 96 - .../bases/velero.io_podvolumebackups.yaml | 162 -- .../bases/velero.io_podvolumerestores.yaml | 145 -- .../bases/velero.io_resticrepositories.yaml | 89 - .../crd/v1beta1/bases/velero.io_restores.yaml | 1765 ----------------- .../v1beta1/bases/velero.io_schedules.yaml | 401 ---- .../bases/velero.io_serverstatusrequests.yaml | 89 - .../velero.io_volumesnapshotlocations.yaml | 74 - config/crd/v1beta1/crds/crds.go | 69 - config/crd/v1beta1/crds/doc.go | 4 - hack/build-image/Dockerfile | 18 +- hack/crd-gen/v1beta1/main.go | 136 -- hack/update-generated-crd-code.sh | 35 +- hack/verify-generated-crd-code.sh | 17 +- .../versioned/fake/clientset_generated.go | 5 +- .../clientset/versioned/fake/register.go | 2 +- pkg/generated/listers/velero/v1/backup.go | 5 + .../velero/v1/backupstoragelocation.go | 5 + .../listers/velero/v1/deletebackuprequest.go | 5 + .../listers/velero/v1/downloadrequest.go | 5 + .../listers/velero/v1/podvolumebackup.go | 5 + .../listers/velero/v1/podvolumerestore.go | 5 + .../listers/velero/v1/resticrepository.go | 5 + pkg/generated/listers/velero/v1/restore.go | 5 + pkg/generated/listers/velero/v1/schedule.go | 5 + .../listers/velero/v1/serverstatusrequest.go | 5 + .../velero/v1/volumesnapshotlocation.go | 5 + pkg/install/resources.go | 6 - 46 files changed, 120 insertions(+), 3796 deletions(-) delete mode 100644 PROJECT create mode 100644 changelogs/unreleased/4382-jxun delete mode 100644 config/crd/v1beta1/bases/velero.io_backups.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_backupstoragelocations.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_deletebackuprequests.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_downloadrequests.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_podvolumebackups.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_podvolumerestores.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_resticrepositories.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_restores.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_schedules.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_serverstatusrequests.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_volumesnapshotlocations.yaml delete mode 100644 config/crd/v1beta1/crds/crds.go delete mode 100644 config/crd/v1beta1/crds/doc.go delete mode 100644 hack/crd-gen/v1beta1/main.go diff --git a/.github/workflows/crds-verify-kind.yaml b/.github/workflows/crds-verify-kind.yaml index 41ba94440..45b6d71a9 100644 --- a/.github/workflows/crds-verify-kind.yaml +++ b/.github/workflows/crds-verify-kind.yaml @@ -57,7 +57,6 @@ jobs: matrix: # Latest k8s versions. There's no series-based tag, nor is there a latest tag. k8s: - - 1.15.12 - 1.16.15 - 1.17.17 - 1.18.15 diff --git a/PROJECT b/PROJECT deleted file mode 100644 index 88609cdaa..000000000 --- a/PROJECT +++ /dev/null @@ -1,7 +0,0 @@ -domain: io -repo: github.com/vmware-tanzu/velero -resources: -- group: velero - kind: BackupStorageLocation - version: v1 -version: "2" diff --git a/changelogs/unreleased/4382-jxun b/changelogs/unreleased/4382-jxun new file mode 100644 index 000000000..c2dd49743 --- /dev/null +++ b/changelogs/unreleased/4382-jxun @@ -0,0 +1,4 @@ +feat: migrate velero controller from kubebuilder v2 to v3 +From Velero v1.8, apiextesions.k8s.io/v1beta1 is no longer supported, +which means only CRD of apiextensions.k8s.io/v1 is supported, +and the supported Kubernetes version is updated to v1.16 and later. \ No newline at end of file diff --git a/config/crd/v1/bases/velero.io_backups.yaml b/config/crd/v1/bases/velero.io_backups.yaml index 9aeeb5d98..fec76fbee 100644 --- a/config/crd/v1/bases/velero.io_backups.yaml +++ b/config/crd/v1/bases/velero.io_backups.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: backups.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_backupstoragelocations.yaml b/config/crd/v1/bases/velero.io_backupstoragelocations.yaml index bdef97594..24ac9e945 100644 --- a/config/crd/v1/bases/velero.io_backupstoragelocations.yaml +++ b/config/crd/v1/bases/velero.io_backupstoragelocations.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: backupstoragelocations.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_deletebackuprequests.yaml b/config/crd/v1/bases/velero.io_deletebackuprequests.yaml index d267d7310..761036ddb 100644 --- a/config/crd/v1/bases/velero.io_deletebackuprequests.yaml +++ b/config/crd/v1/bases/velero.io_deletebackuprequests.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: deletebackuprequests.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_downloadrequests.yaml b/config/crd/v1/bases/velero.io_downloadrequests.yaml index ed98240fd..17517342b 100644 --- a/config/crd/v1/bases/velero.io_downloadrequests.yaml +++ b/config/crd/v1/bases/velero.io_downloadrequests.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: downloadrequests.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_podvolumebackups.yaml b/config/crd/v1/bases/velero.io_podvolumebackups.yaml index 1e318061b..80364ecbe 100644 --- a/config/crd/v1/bases/velero.io_podvolumebackups.yaml +++ b/config/crd/v1/bases/velero.io_podvolumebackups.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: podvolumebackups.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_podvolumerestores.yaml b/config/crd/v1/bases/velero.io_podvolumerestores.yaml index 444c1fc98..2ca79c571 100644 --- a/config/crd/v1/bases/velero.io_podvolumerestores.yaml +++ b/config/crd/v1/bases/velero.io_podvolumerestores.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: podvolumerestores.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_resticrepositories.yaml b/config/crd/v1/bases/velero.io_resticrepositories.yaml index 4a67f1ee8..65ff08eb3 100644 --- a/config/crd/v1/bases/velero.io_resticrepositories.yaml +++ b/config/crd/v1/bases/velero.io_resticrepositories.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: resticrepositories.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_restores.yaml b/config/crd/v1/bases/velero.io_restores.yaml index 56192b814..09df605e5 100644 --- a/config/crd/v1/bases/velero.io_restores.yaml +++ b/config/crd/v1/bases/velero.io_restores.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: restores.velero.io spec: @@ -892,6 +892,7 @@ spec: by services. type: string protocol: + default: TCP description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". diff --git a/config/crd/v1/bases/velero.io_schedules.yaml b/config/crd/v1/bases/velero.io_schedules.yaml index fd76c5c3a..afb7b14a0 100644 --- a/config/crd/v1/bases/velero.io_schedules.yaml +++ b/config/crd/v1/bases/velero.io_schedules.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: schedules.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_serverstatusrequests.yaml b/config/crd/v1/bases/velero.io_serverstatusrequests.yaml index 7ac36c8e8..7efbd9694 100644 --- a/config/crd/v1/bases/velero.io_serverstatusrequests.yaml +++ b/config/crd/v1/bases/velero.io_serverstatusrequests.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: serverstatusrequests.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_volumesnapshotlocations.yaml b/config/crd/v1/bases/velero.io_volumesnapshotlocations.yaml index 4a63234c3..56ef139d2 100644 --- a/config/crd/v1/bases/velero.io_volumesnapshotlocations.yaml +++ b/config/crd/v1/bases/velero.io_volumesnapshotlocations.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: volumesnapshotlocations.velero.io spec: diff --git a/config/crd/v1/crds/crds.go b/config/crd/v1/crds/crds.go index 29a5d369b..fde97d2ca 100644 --- a/config/crd/v1/crds/crds.go +++ b/config/crd/v1/crds/crds.go @@ -29,17 +29,17 @@ import ( ) var rawCRDs = [][]byte{ - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec<]o#9r\xef\xfe\x15\x05\xe7a\xee\x00K\xbeŽ\x04~\x9b\xf5x\x11a7sƎ\xe3<\x04y\xa0\xbaK\x12\xcf\xddd\x87dˣ\x04\xf9\xefA\x15\xc9\xfeR\u007fP^\xcf\xdd^0|\x99q\x8b,\x16\xab\x8a\xf5\xc5\"\xafV\xabՕ\xa8\xe43\x1a+\xb5\xba\x03QI\xfc\xeaP\xd1_v\xfd\xf2\xcfv-\xf5\xed\xf1\x87\xab\x17\xa9\xf2;\xb8\xaf\xad\xd3\xe5\xafhum2\xfc\x84;\xa9\xa4\x93Z]\x95\xe8D.\x9c\xb8\xbb\x02\x10Ji'賥?\x012\xad\x9c\xd1E\x81f\xb5G\xb5~\xa9\xb7\xb8\xade\x91\xa3a\xe0q\xea\xe3\x9f\xd6\u007f^\xff\xe9\n 3\xc8ßd\x89։\xb2\xba\x03U\x17\xc5\x15\x80\x12%\xde\xc1Vd/ue\xd7G,\xd0\xe8\xb5\xd4W\xb6\u008c\xe6\xda\x1b]Ww\xd0\xfe\xe0\x87\x04<\xfc\x1a~\xe4\xd1\xfc\xa1\x90\xd6\xfd\xdc\xf9\xf8\x8b\xb4\x8e\u007f\xa8\x8aڈ\xa2\x99\x89\xbfY\xa9\xf6u!L\xfcz\x05`3]\xe1\x1d|\xa6)*\x91a~\x05\x10\x96\xc3S\xae\x02\xc2\xc7\x1f<\x84쀥\xf0\xb8\x00\xe8\n\xd5\xc7\xc7\xcd\xf3\x9f\xbf\xf4>\x03\xe4h3#+\xc7D\U00048074 \xe0\x99\x97\x05&\x90\x1f\xdcA80X\x19\xb4\xa8\x9c\x05w@\xc8D\xe5j\x83\xa0w\xf0s\xbdE\xa3Сm@\x03dEm\x1d\x1a\xb0N8\x04\xe1@@\xa5\xa5r \x158Y\"\xfc\xe1\xe3\xe3\x06\xf4\xf6\xaf\x989\vB\xe5 \xacՙ\x14\x0es8\xea\xa2.я\xfd㺁Z\x19]\xa1q2\xd2ٷ\x8eTu\xbe\x0e\x96\xf7\x81(\xe0{AN\xe2\x84~\x19\x81\x8a\x98\a\xa2\xd1z\xdcA\xdav\xb9,!=\xc0@\x9d\x84\nȯ\xe1\v\x1a\x02\x03\xf6\xa0\xeb\"')<\xa2!\x82ez\xaf\xe4\u007f7\xb0-8͓\x16\xc2a\x10\x80\xb6I\xe5\xd0(Q\xc0Q\x145\xde0IJq\x02\x834\vԪ\x03\x8f\xbb\xd85\xfc\xab6\bR\xed\xf4\x1d\x1c\x9c\xab\xec\xdd\xed\xed^\xba\xb8\x9b2]\x96\xb5\x92\xeet\xcb\x1bCnk\xa7\x8d\xbd\xcd\xf1\x88ŭ\x95\xfb\x950\xd9A:̈\x91\xb7\xa2\x92+F]\xf1\x8eZ\x97\xf9?E\x01\xb0\x1fz\xb8\xba\x13\t\xa3uF\xaa}\xe7\a\x96\xfa\x19\x0e\xd0\x06\xf0\xf2\xe5\x87\xfaU\xb4\x84\xa6OD\x9d_\x1f\xbe\xe9_\xd1:\x99\r{\r\x90\xfa4:(\"\x85\x16^\x0f\xe8\x0ehH~\xf8\aޒg0\x81Yj1\xe7\x1d)^\x10D\xc0\x9e\xb7vQ@\xa5\xa3\x16\xb2\xb0=Ed\xd7g\x90~\xfe\x84\xf9\x1cy M\xf2\xce\x16\xf2q\x80lw\xea\xe0\x94\xa7.#\xb8>M|\xe3S\x1a7 \xe0\x05O\xdec\x11\n\x889\x82&\x9a\x88tΉù\x15\x16\xb2\x17<1\x98\x90,Y\x1c\x9d*\n\xbe\xbd\xe0)\xa5ۀ\x80\x84\x93\xb4!\tD\x94\xa4\x0fL\b\x8e\xadӉ\a\x9c\xf8\x8a\xbahyq\x90\xaeHb\x8b\xb4\u007f\xc32\x1b\xb6u\x92\x86\xcc\xd8\x0fֳ\x88v\xc1AV\x89\v%3\a\x16y\xb7\xc4\xd4׳(d\xdeL\xe4\xe5~\xa3\xa6\xbd\xe1~\xfb\xac\xddF\xdd\xc0\xc3WiC\xf6\xf1\x93F\xfbY;\xfe\xf2M\xc8\xe9\x11\u007f\x031\xfd@\xde^ʫm\xa2C7\x87\x96 ܾm|\x84װGZ\xd8(\x8a[\x02=8#\ua9db\xb7\x0f\xfdV֖\x93dJ\xab\x15\x9b\xca\xf5\xd8L\x9e؉ \xb5\xe9q\xe4\x1c\xb5fR?a\"\xd8'\xb2$~\xbc\xcf\xf1\x16\"\xc3\x1c\xf2\x9a\x89əI\xe1p/3(\xd1\xec\xe7\fG\xb7U\xa4\xdf\xd3PHԺ\xbe](ai\xa6=\xb6\xa0\xba\xf3edV\xb4s\x13zEf/v\x9dHHNw]^\x11\x9bX\xf6?\x16\xa9+\xf2\x9cϒD\xf1x\x81ƿ\x80\x17\xe7\xb6\xdf#\xe6-d)8\xc9\xf8?d\xe6X\xa0\xff\x17*!M\xc2\x1e\xfe\xc8GC\x05\xf6Ɔ,Vw\x1a\x9aAZ \xfe\x1eEq\x9e\xea\x1eY\x9c&݂\x857\xe4zw\xe6\xb1\xdc\xc0\xebA[oSw\x12GS\xaa\xfd&-\\\xbf\xe0\xe9\xfa\xe6L\x0f\\oԵ7\xf0\x17\xab\x9b\xc6[Ъ8\xc15\x8f\xbd\xfe-NP\xa2$&u\xe3#\xb8TW\x99b\xc9\xe8\t\xd0\xc0\xe6܉\xdc\xdc9\xac\x93\xe4\xb0\xd2\xd6%\xa3\xf2\xa8\xad\xf3\x99Ş[zI\x16\v\xbc\f\x85\xec\x15\x88\x9d?\xf9\xd3&\x9e\xe9\x90\xda\x1b$\\\x89kv^\xc3\x12\x1b\x9b\x8c\x98\aJ\x81\xd5u\xbb\x83\xbd>\xbd\xf6\a=<\x89\xc8عX\x84[\x19\x9d\xa1\xb5\xf3\"\x92\xa0\xad\x17\x92\x84M\x82P\xf8\x00\xc6\x1f\x98\xcc'%cKwH\x89H\x17\xba\xf2\x0f_;\xd9K\xda\xfc\xf4\xf7\x92\xf0]\x8a\x17\xf0\x9e-K1<\x19LB\xf1ޏ\x8c\xdb$\x00\xf2\xa1\x81\xd9\u05fc\xd5\xd3=\xc8 H\xbf\a3]J\xb5\xe1\t\xe0\x87w7덒ķ8\xee\xf7qlK\xf4\xe6\x03\xef\xdeT\x8fHs\xe6\xde`\x8fs\xe7ynr\x14\x13A*\xed\xba\xe9\x04\x82[\xe9\xfc\x83\x85\x9d4\xd6u\x11M\x15\x8aza\xf7\xb7\xed\xd2\xc8I=\x18\xf3\xa6\xc0\xe9/~d'\x91uЯ\xf1|u\xf20s\xac\xf1\xa1\x10\x82܁t\x80*ӵ\xe2\xf4\vmu\x9e³\xc0+\xe8d\x92\xa5)\bj\xa8\xea2\x8d\x00+\x96:\xa9f\xf34\xdd\xee?\tY|\v\xb69Y\xa2\xaeg\rg\xdbzl{\xf2#{\a\xe5\xa5\xf8*˺\x04Q\x12\xe9SÞ\x9d/\x8e\xe9q\x1c^\x85tl9\b.\x9b\x11\xa7iSU\x05\xba\xd4\x1d\xb9ŝ6\xbc\x9f\xaḏ1\xccA\n\xb4\x02\x01;!\x8b\xda$jȋh{I\xac\x11\x94\xc5\xfb\x05\x11i\x93\xaf\x98\x14\t\x89\xd8Dgq^[W&\xddU|4\x98\xe6\x9e-%\xa5\xa3{V\x19I\xb2\xa4\xdf\xdbC\v\"&\xd4黋v־\xbbh\v\xed\xbb\x8b6پ\xbbh\xcb\xed\xbb\x8b\x16\xdaw\x17-\xb6\xef.\xdaw\x17m\xaeۜ\xb6^\xc2\xc8W\xdcO\xfc\xb8\x88E\xc2\xf1\xf4\x1c\x8a3\xf0C5Ž\xaf\xbeO\xad\xb0܌\x8f\x1a\xa9\xab\re\xfd+\xbe\x910&\x01m\xd1EkJ\x9a\x92K\xda Q\xbc}\x01\xf1B\x11fR9\xe5x\xf5mJ\xc1\xcfR\x99O\xbfδ)\xb3\x89\x85\xa6:N2B\x87x\xb3\x81\xdc\xden\rI\xbf^\x87\xfd܈\xe9߽\x065\xa1\x14g\xa1\x00g\xbe0w\x8e^\x83УO0\xd3+\x18\xfd\xdd\xd0k\xa1Jf\xba6&\x9c\x04\xa1\x13\xc7\x1f\xd6\xfd_\x9c\x0e\x952\xf0*\xddad)\xaf\aT|\x86\xa5\xf6ݲ\xd7(o\xe1\x8aɐ\x8e\xa0\r(Y09g\xa4\xb5G^\xf8K\xe5C\xb8\x8b\xf7\xe5|\xf8\x91VK\xf3\xe6\n\x9a~\x85̄\x8a\xbe\xf4\xc8(\xbdP8\xbdFf\xbe\xa8\xe5\x92ʘa\xdd\xcb$\xd0\xe5z\x98\x94\xc8q\xa1\xf6\xe5\r\x15/\x89Վ\xbf\xf9`,\xa5\xa6\xe5M\x95,\x8b\x05\x81\x89\xf5+\xfdʔy\x90\x17T\xad$\x11g\xb9B\xe5⺔P\a2\xbb\x8e\xe4j\x94\x91:\x93Y\xc0\x935(s\xd5%\vY\xa9\xf3ʓ\xf4\x9a\x92Y\xd0\\o\xb2\\I\xf2~\xf5\xa2\xef\xe1\x03O\xab\x9a\xc5j\x90E\x1fy\x1e\xbf\xc5z\x8fK\xaa<\x16)\xf6Ɗ\x8e\xa6bcb\xdeK\xeb8\xfau\x1a\x13@S\xaa7&\xaa3& \xce\xd6l\xa4\xd6dL\xc0^0\xbb\xb3R2\xf3\xe3\xf8EHX\xb4o\xc5\xdfJ\xa2\u07ba0mr4\xb3\x1ez*\x9a\xb3(\xf63^\x839\ae\xf6\xf1\xe2$\xf5\xeaz\xfdc,\xd7MIx\x06?K\x95{9!A\xef\xf8\t|Q\x98\x8bb\x1aw\xa5\xf5\xf7Ɓ\x0e\"\r\x8b\x950|\x93|{\xf2\xd9\n\xbb\x86\a\x91\x1d\xfa\x1d\xe1 ,Ť\xe5\xa8\x1bv݄i\xb7q\x14}\xb9^\x03\xfc\xa4\x9bH\xb8{\xcd\xcaʲ*NP[\x84\xeb\xfe\x90\xb7\xc5\x1c\xa3\x12`\x95\xa8\xecA\xc7;\xb0\vaǗ~\uf448>ހ\xcd\n]\xe7\r\xf4\t\xe6\tu\x82\xc7g\xf6}\xf8\xee`\xd6ޣ\f\xfeM\x8c$\x86\xd7,\u007f|\xff\b\xdf:m\xc4\x1e\u007f\xd1\xfe2\xf2\x12%\xfa\xbd{7у\x0e\x8b\x19\xb7X\x90%F\x88\x10\xaeE\x0f\x80\xb5\x89\xf4\xb0\x1b\xda\xe4\aa9\xa6\xdef\xf6\x9fs\xc5\xc2b\x9e\x9e~\xf1\vp\xb2\xc4\xf5\xa7\xdagSV\x950\x16\x89\x9aqa~Ж\xfe{Яc\nO\x875\xff8\xc4\xdb '\xeb9is\x11\xf6\xfe\xdat\x14\xbcH\xa2%A}\x1e\x1f\xd5\t\xf4:L\xf2\xbb\\\x8f\x9dKL\xc1\xe9\xbc.A\x81\xb5/\xb6{\u07fb\xbfS\x1e\xcb\xd4\xfd{'\\m\x97o\xe0s\xb7\xf8\xdeF8\xf2\xa9\r_\xdc\xf5 \xfcE\xd77]\xc2\x0f\x19\xea\xde\x1b(\xf3|\xba?\x1f\xc1/]\x98ܣƹ\xf1\xe66\xfd\xab\xb0M\x16|\xd4ķ\xe0\xfcH\xf6\xa0\t\x1a\xe6\x80GT\xa0\x15'\xbd\xf9J\xac\u007f\x8de8f,\x99ԁ\x12\xb2\xeauUh\x91\xc7\x1d\x1emVx\xc1\xe3\x89\xf5\x979\xa2\xf9`g`\xf2\x8b\x01;mƈp\xae0\xbda\xb9\x83\\8\\\x8d\x02M\xd2}\xa3\xc2\xc6\xe7C\x8b\xf7湓\xdfA|\xb8\x14\x1f7\xf0\xa7K%Z+\xf6\xf1\xc2\xfc+)\xb0=*d\xbb9\xb2\xfe\x10ϴ\xa7\x11\xfd\xeb\xe2>\xa5\"2W\x8b0A\xcc&uz}\x183+\x85\xde\xc3N\x16\xdc5<\xed\x114\xfb\x94ڑ\xca\xe1\x1e\x87\xee*~\xad\xa4I\xb1\x04\x0fMG\xa2\r\xe7\xd3X\x1b\xb4O\xe0`!\xf7\x92\xd4(1{/\xccV\xecq\x95\xe9\xa2@.]8\xc7\xeb[\xf2\xda\xc3\x1e}\xe2\xe6li?u\xfbF\u007f*\b\xbb\x87\x13_\xbc\xb9\t\x16z\xdcA-\xc5_\xb5\xb9\x81R*\xfa\x87\xdc0\x8eL\xe3\xe0\x8b\xec\x01\xbf.\xb0\x80\xf7#\xf5i\x0e\xb4;\xda\r\xa3\x98M\xf9\x0f㇘+\xf8\x8c\xe7\xe6ΟKbι\x97\xb1w}\xa8\xcbF=\x1a\xbd\xa7\xd0i\xe4\xc7\xfb\xa8\xcbF~{\x14\xc6IQ\x14'?\xc9\xe4\xec#?|B\xd2&\x93&e\x9c\xac\x01\xcb%ʆnm\x9c&\x95\x97\x04>Q\xdc\xea\xda\xf56h\xbb\xc1G\xc4\"ι\x86\xcf\xdaaL\xe3\xc9>L\xb2\xabh\xdd\nw;m\x9c\x0f\vW+\x90\xbb`\xa2F\xe0\x92\x86\xe7Ե\u007ff\a\xa4k\xd3'\xad\xf4\xb2\xf7iPX\x96^Ǐ\xfd\xf0\xe9\x92\xc82\xf2\x80\xf0\xd6:Q\x8ch\x8dߔ\xadf_\x80\xa4\x0f\xf3\u007f\x1b1\x8eg\x04\xdft\xfb7%\xfeu\xb9\xf5\xd1\x11\x83\xf3\x94\xe3\xd3\u007f\xaf1\x8b\xa9<\xca\x16Q\xc1\xab\x91Α\x96\xea\xe6\xf6\xc1\x91^*\n\xb0\x1avb\xe2A\x879}ɿk'\x8a\xcdtN\xa9\xeft6\x9d\xe3\xb2x\xf8\xf9\xe24\xb1e\xcb$\x98X\x96\xaf.\x936\x8e%Vf\a\xa1\xf6$TF\xd7\xfbC\x94\xcb\t{3\x95\x89\xaf\t)\xa8\x8azO\xa2\x1er\xe3\xae6\xaa\x13\x17\x87ly\xdeAWd/\x93\x98\x86\xec`|\xea\xed6<Ѱ\xda\x19]\xae\x02/8op\x13\xe2U#59e\x14]M\x00m\xefB\xb3\x18T\x15*\x106\xe0\x93P\xfa6\xcfֹ\xe0\xd1\t\xe3R]\xbd/\xbd\xce\v^\x1eC\x1e\xc7\xf7K\x88\xc6}\t\xe0\xfd\xf0\xd1=\x8a\x9bU|e\xceG\xfb^\x14,9\u007f\x069\x80\x1a=\xaf8s\xdbzNZ\x1f\xfd\xbf\xad\u007fvl,\xccC\x8a\xa7\xf6<\xe8>8G\xa5]\xdeB\f\xde\xd5\b=\xfe w\xfe %#\xac\xff\xf8w?\x1f=&\xf9,\x1ff\xdd\x15\xf6D\x1a\xbf\x03>ae0\xa3\xdd;\xb6\x8c\xc7\x02ɏ\xb0\x88}O\xe8\xc3E\x8ed?\x80\xb5\x1f\x9dò\x1a\x9dq&\x82m\x87M)K\x11;\x8c,$>\x80\x18\x81\x85Ң\x99\x90\xf5\x82\x055N\xcce\vj\x86M-\xc8\xd6\x19)\xad]=nΚ8\xf0\x9dW\xf7*\x8c\x92j\xbf\xb4\xc7\xfe=t\x1b\x89\x87\x02\x84\x91\x88hd\x19M\x8c\xb4\x18\x11u\x02\xa2\x88\xe3Ļd\x83 \xe9\x9dB\xa2Q;p\xf6\x91\x15h\xde\xd9\xdba\xa6\xf0\xa5\xcdR\x88,C\x12\xd7\xcfÇN\xaf\xaf\xf9\x8f\xf8\x96)\xff\x99i\xe5ͭ\xbd\x83\xff\xf8\xcf+\bi\xb0\xe7\xf8h)}\xfc\xbf\x00\x00\x00\xff\xff\bB\tb\x14V\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4YK\x8f\xe3\xb8\x11\xbe\xfbW\x14f\x0f}\x19˳\xd9K\xe0K\xe0\xf1$\xc0 =ۍq\xa7sH\x02,M\x96lnS\xa4BR\xf6:A\xfe{P|H\xb2$\xb7݃d\x97\x97n\xf3Q\xac\xfa\xeaM\xcd\xe6\xf3\xf9\x8c\xd5\xf2\x19\xad\x93F/\x81\xd5\x12\u007f\xf1\xa8\xe9\x97+^~\xef\ni\x16\x87\xefg/R\x8b%\xac\x1b\xe7M\xf5\x15\x9di,\xc7OXJ-\xbd4zV\xa1g\x82y\xb6\x9c\x010\xad\x8dg4\xed\xe8'\x007\xda[\xa3\x14\xda\xf9\x0eu\xf1\xd2lq\xdbH%\xd0\x06\xe2\xf9\xeaÇ\xe2\x87\xe2\xc3\f\x80[\fǟd\x85γ\xaa^\x82n\x94\x9a\x01hV\xe1\x12\xb6\x8c\xbf4\xb5\xf3Ʋ\x1d*\xc3\xe3]\xc5\x01\x15ZSH3s5r\xbazgMS/\xa1[\x88\x14\x12[Q\xa4\x8f\x81\xd8&\x12\xbbO\xc4º\x92\xce\xff\xf9\xf2\x9e{\xe9|\xd8W\xab\xc62u\x89\xad\xb0\xc5\xed\x8d\xf5?vW\xcfa\xebT\\\x91z\xd7(f/\x1c\x9f\x018nj\\B8]3\x8eb\x06\x900\v\xd4\xe6\xc0\x84\bZ`\xea\xd1J\xedѮ\x8dj*\xdd\xde%\xd0q+k\x1fP\x8e\xb2@\x12\x06\xb24\xe0<\xf3\x8d\x03\xd7\xf0=0\a\xab\x03\x93\x8am\x15.\xfe\xa2Y\xfe?\xd0\x03\xf8\xd9\x19\xfd\xc8\xfc~\tE\xfc\xe0J\xa2\x1e\xc2\xef\x9am%=\xe9\xfd\x9f\r:O\xba*`\x1d2\x16l\x11\x9a:\xf8}\x01\x9f5\xacY\x85j\xcd\x1c\xfe\xdf\x15@H\xbb9\x01{\x9b\n\xfa\xc9v\xb89\xa2\xd6[ȹ\xf0\x82\xbe&\xbdxS#?\xf3\x1f\x81NZ\xb2p\xcf<\x06\xbf\x18\xe0\x9a\\\xfcr2\xcdcڹi0\xceѹ/F\xe0pe\xc0\xf2\xaa\xddx\xc6c\x8d\xb6\x92.\xa4E(\x8d\x1df\f\xd6F\xe0\xfeȑ\xaa\x18\xad\xa1n\xaa1#s\xf8\x8aL\x86\x8d\x19\xe3x\x8cxi\x1c\x86\xe0{\x8d\r\xb8n㜭\xd1\xde\xc2\xcbzE\x1b\xdb4\xc9`\xbd\x82m\xa3\x85\xc2\xcc\xd1q\x8f\x9a:\x04Y\x9e\xa6\xef\xa2\xf1t\xbfɨ\x86\n#\xd5\xf8\x19\xdbi\x19b\f_\xc2\xf64Q\x13\xdc dm\xb1\x94\xbf\xdc \xe4cؘ\x01\xaf\x99߃\xd4N\n\x046\x01\u007f,\xd6.\b\xda\xe6\xff\x87\x14E\xbeA=\xafy{d\xe7-\x0e\x9f1\xbe\xe2?\x8fi[\x8bB\xfe\x9d\"\xffy-xɏ'%:\xb4\x0f\x06\u007f\x8a\x15\x16\x9fH\x95g\xcc<\x8fO\xbcR\xa9\xe5g\x8b)g\xa6\xba\xc0X\x8b\xae6ZP\xf3t[\x9dֱ\xfc\xbf\xab֦\xd5:?\x8fr\x83\xb5\xac\x85\x9bZ\x95\xf0D\xf3\xe6f%>\\\xf5[\x01\xb3u\xd4)v\xfd\xca@\xc6_\xa5My\xd7\xebS\xa8\x1f\xd6\xd0\xe8P\xa9\x85\x8c_\xc0\xdf5|\xa2ޖ\xb2\x93X\x12\xdfv\xca\x00\xa4\x03m\x8et\xbcG/\x90\x00\xa3c\xbe\xa6n\x8di\x91\x9a\xe1\xb0t\x94JQƶX\x99\xc3dƦBӢ:\x01sd:\x87\xdf\x15\x1f\x8aw\xbfY\x17\xa4\x98\xf3\xd4Ԡ\xf8\x8a\a9~\xe5\x19\xa3{?:\x91\x1d\xbfu\a\xfa\xf1Sn\x96\x176m\xfbi\x02\x8cR*\xaa\x05'\xe2DW1\x8c\xdf#?n\xee\xef\\(\xe1Q\xfb\xa9\xb2\xef\x88\x16CDŽ\x82\xaax\x93\xde%\x1a\xe7\xd1N\x18@\xab\xbd\xa0sPF\xef\x06\x8e\x13Gz\xa5\xa0\n-\x1a\x94\xb1 \xd0Sj\xd2;\xe0{\xa6wؽB%\xfe_\xe7\x94\xccg`3\x9d\x85H}\xc9\xa6-n\x13\xf5\x0e\xb9\x14\x9f\x8e>|h?\xb5\x1f\x1a\x00\xcbXҿҀ\xa2f\x88\x1b\xf0\xa9\xef\x1b\x00o\x06܀\xc3\x1e\x15\xb7\xc6>\xa6\xc8\xf8gBQi\x0f\xd8#\x87\x96B#\x11m>x\xcf!\xc5\r\x1c\x1d5\u007f\x04U/\xf4\xb9\x94\xfa\xa9\x94\xba\xab\xa5\x8a\xb7'џ_\x8b\xf8\x85ƨ\xd8'6\xfd2\xa0\x12 \xe4\xf7\xa97\xbc\x18\xd2\x00\x88\r\x117p\x93aEc\xd15\x00#\x1f\x05\xe6j\xbc\xf1\xe1c-g;\x1cL\xc5\x0f\x10\"\xfa\x1fo\xaf\x1f>ݟ\x99\x01\x1c\x8ae\x8aZX]\xc0\x0f$``D\x01\x1aFp\x10\xa3\xacQ\xe0rϠ\x80v8\xdd\x14\xddx1\b;Ў\x04\x18#\xa3\xa0\xaf]tV\x18r\x90\xf1\x10\xb6\u007f\xa0\xd5\x16\xee\x91s\x19\x90.\xa4\xde\xe5V; +0ڰ\xf7\xf4\xf7Km\xc9\xf7̇\xf6F'\x91\x8f\x0fyE\xf6\xa6\x87\x83\xe9\x13~\x0f\xc6;\x18\xcc30\xe6S \xf9\x93z%DZ\xf85\xd3D~\x176ЩF٬\xd7{\xd2idl\x18\x86\xe4I\x9fץ\xfbi\x9b4\xb0\xac\x1d\x1e\xb0_\v\xedW\x86mG\x8aV\x13\xe3\xdaDZ\x15辌M;\xb8\xefx\x1c2y\u007f\x86U\x9fsÈ2\xf9\xfd\x89\xa3t\xf37\x14Ƚ\\e\xaf\xa9\xf5\x16G\xa2\xb3)\xb3s\xf7\xe5\xfe+LG\x171\xe6\xec\x17ޏ\x89r\x94 \x13F~\x87\\E\xdcq\x18JM\xf4.\x06\xf2Z^lO\xe8\xe7\xf4K\xda\x0e\xa42\xb5d֪\x85\xab\xb2G`\x8b\x90\xa23\x8a\xae\x85k\x0fWf\xc0\xfe\xca\b\xfe\xef\x02d\xa6e\x95\x89}\x9b\x04\xa7+p\x1e\\Y;qL;\xea\x15\xbd\x16\x86\xf6>\xa2\xcd\nf\x12s6\xedȖ\xf1\x80]`x\xea\xc8v\xd3\xd0\xce\xd8}\x19\xf0\xf6̱<\xd0\xf9\xa9e\xf2R\x9a{^\xbd<\x14\xed\x88qօ\xab\x93bo\xe2E\x8d&\xf9\x8f̔\x9c\x89\x1b\x9b\x98\xd1\xebX\xa9l\x8b\xa5\xa4\xb7r\x81́/\xac3P_JP\xf9\xce\x19\xf2\x02\xc6?\x8f\x89\xa0\x9dQxB\xcec`C\xca{\x06\x1d\xb8t\xc1\xdfHK\x87U\xac,l\xe4`Q\xa4\xbd\x88#\xc5a\x01\xd37\xd4\xc9O\xfe\x86\x9am\x8f\x1bPN\xf8\x8a\xb2\x86\xd9<\xcf|\xb13\xb2\xd0\ng\x14\xdc\xe6\x98%\r\xb0nu\xfcw\x11\n\xdd>\r\x97'\xad\xe0\x06\x9f\x16\xac\xd7\xfe\x96ÞQ\xe6-\x9f\x9d\xb7\x95\xbd\xf2M}#K\x8bMya\x94\xbc\xef\xdc\t\x8b\xa2\x81\xcd~\xe2\xf5\xd8\xc2\xc6Z\x8c\x8a\xeef\xfe\xd7\xf1\xee\xdd\xd9\xefCy\xb5\xc1;\xaa?M\xf0\xdb\xefM\xad\x8a\xeea\xfa\x1b\xc8\xc6\u007f\x02\x00\x00\xff\xff~\x96\x80P\xae\t\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4WMo\xdc6\x10\xbd\xebW\f\xd2CZ \xd2&ȥ\xd8[\xeb\xe4\x104\r\x02;\xf5\xa5\xe8\x81K\xcdJ\xac)\x92\xe5\f\xd7q\x8b\xfe\xf7bHi?\xb4Z\xdb9T\xb7%\x87\xc3\xc7\xc7\xf7\x86\xb3U]ו\n\xe6\x16#\x19\xef֠\x82\xc1\xaf\x8cN~Qs\xf7#5Ưvo\xaa;\xe3\xda5\\%b?\\#\xf9\x145\xbeíq\x86\x8dwՀ\xacZ\xc5j]\x01(\xe7<+\x19&\xf9\t\xa0\xbd\xe3\xe8\xad\xc5Xw蚻\xb4\xc1M2\xb6Ř\x93O[\xef^7o\x9b\xd7\x15\x80\x8e\x98\x97\u007f1\x03\x12\xab!\xac\xc1%k+\x00\xa7\x06\\C\xeb\xef\x9d\xf5\xaa\x8d\xf8WBbjvh1\xfa\xc6\xf8\x8a\x02jٴ\x8b>\x855\x1c&\xca\xda\x11P9̻1\xcduI\x93g\xac!\xfeei\xf6\xa3\x19#\x82MQ\xd9s\x10y\x92\x8c\xeb\x92U\xf1l\xba\x02 \xed\x03\xae\xe1\x93\xc0\bJc[\x01\x8cgϰ\xea\xf1t\xbb7%\x95\xeeqP\x05/\x80\x0f\xe8~\xfa\xfc\xe1\xf6\xed\xcd\xc90@\x8b\xa4\xa3\t\x9c\x19\x9ca\x06C\xa0`D\x00\xec\xf7\xa0@9P\x91\xcdVi\x86m\xf4\x03l\x94\xbeKa\x9f\x15\xc0o\xfeD\xcd@\xec\xa3\xea\xf0\x15P\xd2=(\xc9WB\xc1\xfa\x0e\xb6\xc6b\xb3_\x14\xa2\x0f\x18\xd9L,\x97\xefH\\G\xa33\xe0/\xe5l%\nZQ\x15\x12p\x8f\x13?؎t\x80\xdf\x02\xf7\x86 b\x88H\xe8\x8a\xceN\x12\x83\x04)7\x9e\xa0\x81\x1b\x8c\x92\x06\xa8\xf7ɶ\"\xc6\x1dF\x86\x88\xdaw\xce\xfc\xbd\xcfM\u0090lj\x15Or8|\xc61F\xa7,\xec\x94M\xf8\n\x94kaP\x0f\x101\xf3\x94\xdcQ\xbe\x1cB\r\xfc\xea#\x82q[\xbf\x86\x9e9\xd0z\xb5\xea\fO\xa6\xd2~\x18\x923\xfc\xb0\xca\xfe0\x9b\xc4>Ҫ\xc5\x1d\xda\x15\x99\xaeVQ\xf7\x86Qs\x8a\xb8R\xc1\xd4\x19\xba\xcb\xc6j\x86\xf6\xbb8ڐ^\x9e`\xe5\a\x91\x19q4\xae;\x9aȚ\u007f\xe4\x06D\xf5E0ei9Łh\x19\x12v\xae\xdf\xdf|\x81i\xeb|\x19s\xf6\x8br\xf6\v\xe9p\x05B\x98q[\x8c\xe5\x12\xb3\xf2$'\xba6x\xe38\xff\xd0֠\x9b\xd3Oi3\x18\xa6I\xccrW\r\\\xe5J\x03\x1b\x84\x14Z\xc5\xd86\xf0\xc1\xc1\x95\x1a\xd0^)\xc2\xff\xfd\x02\x84i\xaa\x85\xd8\xe7]\xc1q\x91\x9c\a\x17֎&\xa6Jv\xe1\xbefV\xbf\t\xa8\xe5\xf6\x84@Yi\xb6Fgk\xc0\xd6GP\a\xe7\x8f\x046'\x99\x97\x9d\x9b\xc1\xa9\xd8!\xcfGgX\xbe\xe4 \xd9\xfe\xbeW\xa7\x85\xe6{l\xbaFj\x05\x8d@J\xf5\xf8\xa19\xcbx\x19\x03,\xaaw\x11\xc9$b\xa1Ax\x95R E\xea\x18\xd3\xf9\xd6\xf2\xa1K\xc3\xf2\x065\xfc\x9c1\u007f\xf4ݣ\xf3Wޱ\xc8\xfdѠ[oӀ7N\x05\xea\xfd\x13\xb1\xd33\xbb\u007fz\xce\x03\xafQ\n4^\x866\x06\\#%{a\xbb\vb\x9d\xbe\xfc(=ͼ/\xcc\xd7&\xf5\x88\xc8k\x93\xdd\xfd\xed\xf0E\xed&\xe2\x82t\xea,\xa9\x85a\x01\u007f6|\xc1\xa3\x976\xa8G\xdf<\xcb\xe7\xac8\xd178=\xc7OT\xeb\x14#:\x1e\xb3\xe4\x97o\xbe\xe0\xb9V\x9f\xfc\xf1\xdb\xf5\xc7'\xfc\xfe\xee\x10\x99{;e\\A\x13\"\xd6d:y\xafeN\x1c\x9f\x9dxNF\xf9N\xfb\x87S\xa2\x16o\x14\xbf\x06\x13s]{\x02\xe2\xfb}`)K\xe8ʓ3\xef\x90rB\xa4\xfc\x9ck5o$\xe4\xdb \xb4h\x91\xb1\x85\xcdC\xa9\xaf\x0f\xc48\x9c\xe3\xde\xfa8(^\x83`k\xe7\xa0;\xa5&\x00\x1a[\x9a\x835beT\xd7\xd2\x12\xcb\xe7\xce\xfa\xe9\x8a\x1493\x95f\xe2-\x95|i\xedLg\xe7\xb0\xdbHg\xb3@I\x99G#>F6\xef\"\x9b\xb8\xa3\xa4\x0f\u007f\x1f\xdb\xfdM\xfa\x10)\xac\xea\x1c\xaac!⦗\xba\xee\x14\xba\xa3\xed\t\x80/\x8d\xa59<\xb0\x18\x16K\x12\x13\x80\xac{\x14\xab\xc8ڭ~L\xacʆZL\xf2\x02\x18K\xfa\x97\xc7\xfb\x8f?/\x0e\x96\x01\xac3\x96\\\x90\xbdj\xe9\xdb\xf3\xe8\xde*\x80 _:iC\xb4\xf753LT ؕ\xe4!4\xd4\vE\"\xcb\x00\xa6\x82\xd0H\x0f\x8e\xac#O:9\xf7\x8010\x11j0\xcb\u007fR\x19\xa6\xb0 \xc7l\xc07\xa6S\x82#`E.\x80\xa3\xd2\xd4Z\xfe{\xcb\xdbC0\xf1R\x85\x81\xb2\x85w\x9fԁ\x9cF\x05+T\x1d\xdd\x00j\x01-n\xc0\x11\xdf\x02\x9d\xde\xe3\x17I\xfc\x14~7\x8e@\xea\xca̡\t\xc1\xfa\xf9lV\xcb\xd0Griڶ\xd32lf1(\xe5\xb2\v\xc6\xf9\x99\xa0\x15\xa9\x99\x97u\x81\xaeld\xa02t\x8efhe\x11E\xd71\x9a\xa7\xad\xf8\xce\xe5\xd8\xf7\xd7\a\xb2\x86\r\xfb\xd6\a'u\xbd\xb7\x11\x03\xed\x8c\a8\xd4@z\xc0|4i\xb134/\xb1u>\xfce\xf1\x04\xfd\xd5\xd1\x19C\xebG\xbb\xef\x0e\xfa\x9d\v\xd8`RW\xe4\x92\x13+g\xdaȓ\xb4\xb0F\xea\x10\xff(\x95$=4\xbf\uf5ad\f\xec\xf7\u007fu\xe4\x03\xfbj\n\xb71\xbdaI\xd0Y\x81\x81\xc4\x14\xee5\xdcbK\xea\x16=}u\a\xb0\xa5}\xc1\x86}\x99\v\xf6+Ӑ8Ymo\xa3/\x1f'\xfc5\xa8\t\vK%{\x8f\r\xc8'e%˘\x1aP\x19\a8$\x9f\x1e0\x1eO\\\xfeR\xc5X\x04㰦\xdfLb9$\x1aH\xf6n\xecL/\x1bו\x94Ĕ\x99\x83O\x94GL\x01T\u007fxݐ\xa3xƑ\x0f\xb2\xe4\xe02^\x06\xe36̘9\x90\x98\x1eq8\xe1\x06\xfe\xb4\x11tA\x8f\a#hLl>\n\xa1\xc1\x14\xad\x8f&f\x8d\xeb\xb4>\xbe\x85?\xa3_%\x985\xe2\x82\\\xf9F\x04G\x159Ҝ\x85\xa9pY\x13\xcb[@\xa9\xfblM\x85\x1f\x82\x19\x91l\x99\\@\x02\x86\x01\x01g\x83\x02\xceT\xf5Q\x89\u007fy\xbc\xef+yo\xc4,{8\xbe\xf7\x82}\xf8\xab$)\xf1\x88\xa1y\xc1\xdd\xd7\xf7U\xba,ִ`\x00\xc1J*\xe9\xa0I\x80\xd4>\x10\n0\xd5(G\x06\x12\xc0\x89\xef(\x9f\xb8I\x15,\x97\xca]ka\xdb\x03r\xed\x94\x02\xfe\xb6x\xff0\xfb\xeb\x98\xe9\xb7Z\x00\x96%yf\x84\x81Z\xd2\xe1\x06|W6\x80\x9eՐ\x8eĂw\xa6-jY\x91\x0f\xd3|\a9\xff\xe9\xa7\xcf\xe3\xd6\x03\xf8\xd58\xa0/\xd8ZE7 \x93ŷe\xb9\x0f\x1a\xe9\x939\xb6\x1ca-C#\x87\xcdtk\x01\x0e\xaf\xac\xf6:\xaa\x1b\xf0\x99\xc0du;\x02%\x9fi\x0eW\\~\xf6\xc4\xfc\x0f\xe7\xce\u007f\xafNp\xfdCJ\xed+&\xbaJ\xc2m\xfb\xf0~\xd2\xed\x84L\x99\xe7d]\x93\x8b\xc0e\xec\x8bM\x85K\xf5\xf7`\x1c[@\x9b=\x16\x911{/\x15J\x12GB\u007f\xfa\xe9\xf3I\x89\x0f\xed\x05R\v\xfa\x02?\x81\xd4\xc96ֈ\xef\xa7\xf0\x14\xa3c\xa3\x03~\xe1\x9b\xca\xc6x:eY\xa3ՆunpE\xe0MK\xb0&\xa5\x8a\x84\x83\x04\xacq\xc3V\xe8\x1d\xc7\xf1\x86`х\xb3\xd1ڣ\x9f\xa7\xf7w\xef\xe7I2\x0e\xa8:Vb\ue695d4\xc30&\xf5\xe2\x18\x8dGͼ\xff|\x97\xc2'\x18(\x1b\xd45%}\t\xaa\x8e\xbb\xe3\xf4\xfa-y|\fI\xfao\x04\x9a\f\v\xc7\xff\xad\xb9\xbfP\xb9\x88\xa0_\xa0\xdc\xc3^\x94\x9fU\x8eg\x15\xa7)P\xd4O\x98ҳj%\xd9\xe0gfEn%i=[\x1b\xf7,u]ph\x16)\x06\xfc,\x8e\x1b\xb3\xef\xe2?o\xd6%\x0e\n/U(\x12\u007f\v\xad\xf8\x1e?{\x93R=\x86}y\x1f\xbb^dd5<\xcbi\xb1nd\xd9\xf4\xc3I\xae\xb1'\x92I2\x12\x16\xa94\xa3\xde|\xf5Pf\x83v\x8e%\xda\x14y\x00.P\v\xfe\xbf\x97>\xf0\xfa\x9b,\xd8\xc9\x17\xa5\xef?\xee\xef\xbeM\x80w\xf2M\xb9z\x02\x80\xa7\x18\xb1\xe6^\xb0)+I\xee\x020\xfbp@\xdcC\xc7\x11ĺ\xa5y\x152\fX\x8f@1\x14\">{\xa0z<\v\xd8\xceZ\xe0@\x8d'\xac=\xa0#@hѲ\xe7\x9eiS\xa4\x16oQr\u007f\xe6\x16\x9c1ϒ\x00\xadUr\xb4\x15\xe7F\x9eAh\xc6\xfb\xea\x87\xc4\xe1\x82\xfdӀ3\x06ٳ\x00\t\xdfla{0\xb0\x1cK\xd13\xa0\xf8\xa4\x15y.e\xb4v(b1>@\rhx\xa0\x18,Y#\x06+\x87\x918\xd8L\xfa\xbdh\xaa\f\x18:\xff\x8a\xb92\xd2\xf76MU$d.\x11B\xbfu\xb2,\r\xa3\xd3ç\xb5\xf3\xee\xbd=>\x11\x1fq\x9cH\xc2\x05\xd9r\xcc\xe6([\xa3\xef\xef\x18\x1b\ra\x8f]:\x19\xeb6s#\x11\xa1##\xdb\n\xa5\"\x01\xfd\xdb\xde\xf0\xcc\b\xd7}.K\xaa\xb8\xc8uV\x19\x14\xfd@\x96\xc5\xdb\xc23\x9e\xd7\xe3\xebȵ?ó\xf3$\xe2$?b\x84c\xc8V\x19\xd7b\x98\x83\xc0@\xc5(S\xdd)\x85KEs\b\xae;\xde>S,Z\xf2\x1e\xebK\xa9\xf8{\xa2Jsj>\x02\xb84]\xd8\x0e\xaa\aE\xe1\xda\xe7\x98zݬ<:\x02\x1e\x8632D\xf7\x19\xaa*\x15\xcf\xec\x17\x82݃p\x94jI\xe3\xad\xee-5\x01\xc06\xe8/\x99\xea\x91i\xc6\x12l[\xbd\xcef\x18\u007f\xa4\xbb\xf6\xf8\x96\x02\x1eh=\xb2z\xaf\x1f\x9d\xa9\x1d\xf9\xe3\xc0)\xfa\xf8\x1a\xa9\xe6\x05\xfc\x1a\xb3\xe1U\xfa\xe7\x8b.\x99 \x93AcT\x9f\xcc&\xa0\x02ݵKrl\x87\xe5&\x90?,\xe7c\xaf\x12q\x9aٙq\xef|\xef\xbf\xc4)\x0fh%\xea\xf8z\xc8\xd9\x15\f\b\xe9\xad\xc2\xcd\b\xe3^\x91\x88X8\xb9\xb8\x04\xec\xe2\xb9OjK.n\xbd\xf65%\xcatg\xf4\t|\xdd\xe7\xb3\xd4\xe1O\u007f<\x83o\xa4\x0eT\x0f\x9aC\xdegs\xbe\xe3[\xbe\xce\rgZ\xb7\xd7h}c\xc2\xfd݅(Xl\t\xfbl\xd8\x01\xa5X\xfb\xe2\xdbf&ʡ0\xe6\xaammyU\xaa\xfa\x80.\xbc\xb4\x15-\x0e\x88/t\xa1\xc8y\xbc\a-Ȣ\xe3L\x8f/\xe1\xb7\xc3ߚn\xc0\xcb\xf8\xbc\xc7x+\x01\xb04|{nN\f,\x8d\xa3\x91\x92\t\xc7m堉\x1c\x8a\xff-\xfb\xc7h\x9c\x1c-F\xc9\xc5\x1e\xef\xfcD\x9cWv\x18\x06K\x9e\x0eH<\f\u007fO\xbbJ\xaf7\xfd\x0fd\xf1\xcf\xd2\xe8\x04\x95\xfd\x1c>}\x9e@~6\xfe\xd8\xff\xeeŋ\xff\v\x00\x00\xff\xff~\xe4\xff\xab\x84\x1c\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4YKo\xe3\xc8\x11\xbe\xebW\x14\xbc\ag\x81!\xb5;\x1b\x04\x81n\xbbv6P\xb2\xeb1F\xce\\\x06sh\xb1\x8bb\xc5d7\xd3]\x94\xac\x04\xf9\xefAu\xb3\xf5\xa4\x1e60\x13^l\xf5\xa3\xfa\xab\xaf\x1e]E\x8e\xb2,\x1b\xa9\x96>\xa1\xf3d\xcd\x04TK\xf8\xc2h\xe4\x97ϟ\xff\xecs\xb2\xe3口g2z\x02w\x9dg\xdb|Do;W\xe0=\x96d\x88ɚQ\x83\xac\xb4b5\x19\x01(c,+\x19\xf6\xf2\x13\xa0\xb0\x86\x9d\xadkt\xd9\x02M\xfe\xdc\xcdq\xdeQ\xad\xd1\x05\xe1\xe9\xe8\xe5\x0f\xf9O\xf9\x0f#\x80\xc2a\xd8\xfeD\rzVM;\x01\xd3\xd5\xf5\b\xc0\xa8\x06'\xd0Z\xbd\xb4uנC\xcf֡ϗX\xa3\xb39ّo\xb1\x90S\x17\xcev\xed\x04\xb6\x13qs\x8f(j\xf3h\xf5\xa7 \xe7c\x94\x13\xa6j\xf2\xfc\xf7\xc1\xe9\xdf\xc8sX\xd2֝S\xf5\x00\x8e0\xeb\xc9,\xbaZ\xb9\xe3\xf9\x11\x80/l\x8b\x13x\x10(\xad*P\x8f\x00z\x02\x02\xb4\xacWq\xf9c\x94UTب\x88\x19\xc0\xb6h~~\x9c~\xfai\xb67\f\xd0:ۢcJ\xea\xc5gǬ;\xa3\x00\x1a}\xe1\xa8\xe5@\xfa\xad\b\x8c\xab@\x8b=\xd1\x03W\x98@\xa1\xee1\x80-\x81+\xf2\xe0\xb0u\xe8\xd1D\v\xef\t\x06Y\xa4\f\xd8\xf9?\xb1\xe0\x1cf\xe8D\f\xf8\xcav\xb5\x167X\xa2cpX\u0605\xa1\u007fod{`\x1b\x0e\xad\x15c\xcf\xf1\xf6!\xc3茪a\xa9\xea\x0e߁2\x1a\x1a\xb5\x06\x87r\ntfG^X\xe2s\xf8\xdd:\x042\xa5\x9d@\xc5\xdc\xfa\xc9x\xbc N\xee\\ئ\xe9\f\xf1z\x1c<\x93\xe6\x1d[\xe7\xc7\x1a\x97X\x8f=-2劊\x18\v\xee\x1c\x8eUKY\x80n\x82K\xe7\x8d\xfe\xce\xf5\x01\xe0o\xf7\xb0\xf2Zl\xebّY\xecL\x04g;c\x01\xf16 \x0f\xaa\xdf\x1a\xb5\xd8\x12-C\xc2\xceǿ̞ \x1d\x1d\x8cq\xc8~\xe0}\xbb\xd1oM \x84\x91)\xd1E#\x96\xce6A&\x1a\xddZ2\x1c~\x145\xa19\xa4\xdfw\xf3\x86X\xec\xfe\xaf\x0e=\x8b\xadr\xb8\v1\x0es\x84\xaeՊQ\xe705p\xa7\x1a\xac\xef\x94ǯn\x00a\xdagB\xecu&\xd8MO\x87\x8b#k;\x13)\x85\x9c\xb0\xd7aZ\x98\xb5X\x88\xf9\x84A\xd9J%\x15!6\xa0\xb4\x0e\xd4\xd1\xfa|O\xf4p\xe8\xca3W\xc5s\xd7\xce\xd8:\xb5\xc0\xdfl\x94y\xb8\xe8\x00\xdb/C{\x128\xc9,1\x8c\xb1\x17\x0e>\xae<\x12\nP\xa7ͫ\n\x1d\x86=\x92Ũ\x10\xf7\xb2\x9eغ\xb5\b\x0e*\xe9\xfcH\xc2\tC\x04\x95\xad\xbe\xa0ƣ\xed\x03\xc2a\x89\x0e\x8d\xb8{\xcc\x10\xad\ry\x84\x15\x99\x14\x161\xc5\x02\xdb\x01-\xe6\x11\xf50\xc4\xd3\xd4Ù\xec9\b\xf8\xe7\xc7iʘ\x89\xe1\x1e:\x1f\x9f{\x81\x1eyJ\xc2Z?*\xae\xae8\xfbvZ\xc6\xc3B\xee`\v\nZ\xc2\x02\xf7\x921\x90\xf1\x8cJ\x83-\a%ʭ\r\x12`\x0e\xfb\x1d\xefb\xa6\xe8S\xd26\x85\v\xf5\xa0$G\x91\x86\xbf\xcd><\x8c\xff:\xc4\xfcF\vPE\x81^\x04)\xc6\x06\r\xbf\x03\xdf\x15\x15(/j\x90C=\x93\x99\xbcQ\x86J\xf4\x9c\xf7g\xa0\xf3\x9f\xdf\u007f\x19f\x0f\xe0W\xeb\x00_T\xd3\xd6\xf8\x0e(2\xbeI\u007f\xc9g\xc8G:6\x12aE\\\xd1\u1975a@\xbc\xabW{\x15\xd4e\xf5\x8c`{u;\x84\x9a\x9eq\x027\x12\xe5;0\xff#\x81\xf5ߛ\x13R\xff\x10\x03\xe8F\x16\xddDp\x9b\xfbn7\"\xb7 \xb9R\f\xech\xb1@\x17\n\x84\xa1'$oI\x89߃u\u0080\xb1;\"\x82`\xb1^\xccG\xa8\x8f@\u007f~\xff\xe5$\xe2}\xbe\x80\x8c\xc6\x17x\x0fd\"7\xad\xd5\xdf\xe7\xf0\x14\xbccmX\xbd\xc8IEe=\x9eb֚z-:Wj\x89\xe0m\x83\xb0º\xceb\xbd\xa1a\xa5\xd6\xc2B2\x9c\xf8\x9b\x82V9>뭩\xcax\xfap\xffa\x12\x91\x89C-B\xbe\x93۩$\xa9\x1a\xa4\\\x88w^\xf0ƣK3=\xbe\x8b\xee\xc3\x16\x8aJ\x99\x05F}\x11\xcaNn\xa1\xfc\xf6-q||\xf5\xa7g\xa0\x048L\x1c\xff\xb7K\xf4J\xe5B\xa5z\x85r\x0f;^~V9i\f\x9cAƠ\x9f\xb6\x85\x17\xd5\nlُ\xed\x12ݒp5^Y\xf7Lf\x91\x89kf\xd1\a\xfc8\x94\xf6\xe3\xef\u009f7\xeb\x12\n\xf2k\x15\n\x8b\xbf\x85Vr\x8e\x1f\xbfI\xa9T+^\u007f\x8f\xdd\xce\xfa\x02\xe6p\xaf\x84Ū\xa2\xa2JM@\x9fcO\x04\x13IũcjVf\xfd\xd5]Y\b\xed\x9c Zg}\xb7\x99)\xa3\xe5\u007fO\x9ee\xfcM\fvtU\xf8\xfecz\xffm\x1c\xbc\xa37\xc5\xea\x89B7\xfaHk\xa7Z\xa8,\t݅\xba\xec\xe3\xde\xe2TW\x0eԅ\x9b5\xaf*\f\xbdQ\xad\xaf,O\xef/\xe0\x98m\x16&\f[\x03\xf4\xe5`\x92%\x8e{\xb6\n<\x83'\x8a\xba\x80%\xd6\xf6C5v\x8f$\xd6\x1caD\xeaڀg8X_\x8bPZ2)\xa0\xf6\x11fÝ\xc3\xc1\x9a\xd6ꃑ}O8\x98ܚ\xe6`\"*yU[Ŋ;\xff\x9a\xc6*lH\xcc\xc6\xf8\xe6^L(n\xdf\xdcZ\x15V\n\xc7\xfdWL\xe7\xad|w\xbc#\xbc\xc7p:\xa2cj0\xf4+\x01\a\xac\x94O\x87\fY\x14v\xe4ŭ!\xa7\x8a8ԡ\xac\x93\xaa\xb3TT\xa3\x86\xcdK.x\x92\x0e34\xf4\xb7CUL\x12\xd4yԡ\xf7\x1c\x00}\xbc\xaf\xb4\xaeQ<\x01i\xe33\x11q\xb4\xc2tu\xad\xe65N\x80]w<}&\x80\x1a\xf4^-.E\xd0\xefqU\xec\xf8\xfa-\xa0\xe6\xb6\xe3M\xcbׇROŭ\xef\xbd\xe0umg\xa5\xfc%(\x8f\xb2f\xc8\xe36A}\xde\xe5\xe4A\xd35\xc7\xc7d\xf0\x80\xab\x81ѩytv\xe1\xd0\x1f[&K\x06\x1ch\x022\xf85xǫ\b\xe8\x0f\xba\xc4A\xbf\f*['ﶬj0]3G'D\xcc\u05cc>1\x92R\xc3P\x0f\x1dj\xef-\x93[\t)\xdbEQ}7Q(\x13^)\x89\xff\xb2\x05M\xbe\xad\xd5z@n\xd2$\\\xaf\xe2\xbe\x12G[\x8fIQ(\xe1\x1f\xe6^\xdb\xfb\aP\xf7֜\xa8\x06SȐ\xe1?\xfd\xf1\xccmL\x86qq\x90J\xfby!\xf4\x179\xe5\xeb\x9cp\xe6\xc2\xf7\xac\x1c_\x9b\xf6f{\x8b/e\xbc z8\xdf\xed\xa6\xae\xe3D\xb5\u007f̷\xccQ\x83D\x1d\r\x06\xe4zGv\xffެ\x1f\xd9\xdel\xaa\x90b\x0e\xf5\xc3ᧆ\x9b\x9b\xbd/\a\xe1ga\x8d\xa6\xf8\x99\x04>\u007f\x19A\xff.\xedS\xfa\x1c \x83\xff\v\x00\x00\xff\xff\xb9\xf7H\xe3\xa0\x19\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4W\xc1n\xe36\x10\xbd\xfb+\x06\xdb\xc3^*y\x17{)tk\xd3\x16\b\x9a\x04\vg\x91K\xd1\x03E\x8d\xeci(\x92%\x87Nݯ/\x86\x92bYV\xe2\xcd\x02\xab\x9bə\xc77\xf3f\x86\xf4\xaa(\x8a\x95\xf2\xf4\x80!\x92\xb3\x15(O\xf8/\xa3\x95_\xb1|\xfc)\x96\xe4\xd6\xfb\x8f\xabG\xb2M\x05W)\xb2\xeb6\x18]\n\x1a\u007fŖ,19\xbb\xea\x90U\xa3XU+\x00e\xadc%\xcbQ~\x02hg98c0\x14[\xb4\xe5c\xaa\xb1Nd\x1a\f\x19|\xb0e\xf1\xff\x00\x00\x00\xff\xff\x1b\xa0}D\xf4\f\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec}\xfds#\xb7\x91\xe8\xef\xfe+P\x8a\xebI\xba\x88\x947\xb9\xa4\xee\xb6R/\xa5\xecʎ\xca^\xadj\xa5\xac_\xca\xf1\xf9\xc0\x99&\x89\x13\bL\x00\f%\xde\xf9\xfe\xf7Wh\x00\xf3A\x0e)\x02C\xed\x87=\xb8\xaa\x8b\x97\x9a\xe9\x01\x1a\x8d\xfeF7-\xd8{P\x9aI\xf1\x92Ђ\xc1\xa3\x01a\xff\xa5\xc7\xf7\xff\xa6\xc7L\x9e/_|q\xcfD\xfe\x92\xbc*\xb5\x91\x8bw\xa0e\xa92x\rS&\x98aR|\xb1\x00Csj\xe8\xcb/\b\xa1BHC\xed\xcf\xda\xfe\x93\x90L\n\xa3$\xe7\xa0F3\x10\xe3\xfbr\x02\x93\x92\xf1\x1c\x14\x02\x0f\x9f^~5\xfe\xfd\xf8\xab/\b\xc9\x14\xe0\xebwl\x01\xda\xd0E\U00052212\xf3/\b\x11t\x01/\x89\x02m\xa4\x02=^\x02\a%\xc7L~\xa1\v\xc8\xec\xc7fJ\x96\xc5KR\xff\xc1\xbd\xe3'\xe2\x16\xf1ν\x8e\xbfp\xa6ͷ\xcd_\xbfc\xda\xe0_\n^*\xca\xeb\x8fᏚ\x89Yɩ\xaa~\xfe\x82\x10\x9d\xc9\x02^\x92k\xfb\x99\x82f\x90\u007fA\x88_\x13~v\xe4g\xbd|\xe1@dsXP7\x1fBd\x01\xe2\xe2\xe6\xea\xfd\xefo[?\x13\x92\x83\xce\x14+\fb\xc6ύ0M(y\x8fk\xb3\x13\xc0M fN\rQP(\xd0 \x8c&f\x0e\x84\x16\x05g\x19\"\xb1\x82H\x88\x9cVoi2UrQC\x9b\xd0\xec\xbe,\x88\x91\x84\x12C\xd5\f\f\xf9\xb6\x9c\x80\x12`@\x93\x8c\x97ڀ\x1aW\xb0\n%\vP\x86\x05ĺѠ\xa3Ưkk9\xb6\xcbuO\x91\xdc\x12\x10\xb8){\x94A\xee1dgk\xe6L\xd7K[_\x8e_\x12\x15DN\xfe\v23&\xb7\xa0,\x18\xa2\xe7\xb2乥\xbb%(\x8b\x9cL\xce\x04\xfb\xef\n\xb6\xb6\v\xb5\x1f\xe5Ԁ\xdf\xefz0a@\t\xcaɒ\xf2\x12\xce\b\x159Y\xd0\x15Q`\xbfBJр\x87\x8f\xe81y\x83\xdb#\xa6\xf2%\x99\x1bS\xe8\x97\xe7\xe73f\xc2\xf9\xc9\xe4bQ\nfV\xe7x\x14ؤ4R\xe9\xf3\x1c\x96\xc0\xcf5\x9b\x8d\xa8\xca\xe6\xcc@fJ\x05\xe7\xb4`#\x9c\xba\xc034^俩\xb6\xed\xb85W\xb3\xb2\x94\xa7\x8dbb\xd6\xf8\x03\x92\xf9\x8e\x1d\xb0\x04\xefhɽ\xeaVQ#\xda\xfed\xb1\xf3\xee\xf2\xf6\xaeIgL\xafc\x1f\xf1\xde \xbez\v,\u0098\x98\x82r\x9b\x88\xd4fa\x82\xc8\vɄ\xc1\u007fd\x9c\x81XG\xbf.'\vf\xec\xbe\xff\xb3\x04m\tZ\x8e\xc9+d*d\x02\xa4,rj \x1f\x93+A^\xd1\x05\xf0WTóo\x80Ŵ\x1eY\xc4\xee\xb7\x05M~\xb8\xfe\xb0\xc3Z\xe3\x0f\x81ym\xd9/\u007f\xfao\v\xc8Z'ƾƦ\xfe\x98\x93\xa9T-\xe6`_\x19\xb7\x80v\x1fZ;\xdc\xe9\xb7\x1cl\xfd/kS\xf9K\xf5\xa0\xa5\x1f;\x89R\xb0\u007f\x96\x80,ΝX\xd8`)\x1b I\x98\x1f\x92\xc5x\xe3\xef[pj\a2m\xa7&r\xf2Z\x82\xbe\x96\x06\u007fy\x16t\xba\x89' ӽ\x88\xc7K8\xb6m\xf1\xd0\xf47\xedA\xdcn\\9\xb7B\xb5=L\x93+a\r\x17\x8f\x0f\xf4\x1e\xba\xcf\xed\x96\x0f\xed\xb1(5:\x94\x84\x14#\x14\x95\xe3\xae/9d\xef\tR\xaa֎lN\xad\xfa\xa8\xfb\xe0\x9e`\xef\xac$q\xef;\u007f(\xa7\x19\xe4\xc1\xdaD/\x1e50c\x19Y\x80\x9a\xed\x12\x1c\xcdQX\xfe\xbe\xdf\x14\xf6\xe4\xbanDR\xd8~\xa2=\fϺ\xf3\xa7'3\xb2'w\x8f\xa7\xc2f?\xf9\xe8\x16\xe7\xdd\xf6G\x9f^\x11\x8aX\xd4?\x9e\xc4.\xcds\x8c\xb4P~\x13\xc1\xf1#\xf6bS\xf6\xbb\x899\t\xb9\xa0\x85=\xbf\xffc\xc5\x1c\x12\xf4\xff\x92\x822\xb5\xc7\x19\xbe\xc0\xa0\t\x87ֻ\xdeM\xd4\xfc\x8c\xfd\x02\xd3\xc4\xee\xef\x92\xf2M\xb7p\xc7\xe2\xa4\xe5-\xc0\x9d \x97\xd3\r\x8d\xe5\x8c<̥v2uʀw\xb9lڃirt\x0f\xab\xa3\xb3\r>pt%\x8e\x9c\x80\x8ff7\x95\xb6 \x05_\x91#|\xf7\xa8\x8f\x12\xb4'%\xee\xf5\x98\xe8t\xfa֣E\x16M\xc7o\xed\xf1\xf5j\xee\xaeY\xefE\x87\x85\xd4\xe6\xaf\xdd\x0e\xbb-\xf3\xb9\to\xb4u\xd3\x0e\xbfד:\xbb\xf7aUL\xd5jrS\x03\xca;\xf1\x1c\xa3\r\x16@O\xdb\xe8)']堣\x95\xa3\xdc\"\xf8\t\xaap\x01\x80}\xa6\x18\xa35Z\xbcD\xeaۗ\x8f\r\x1f\xa3=\xa1\xf6\xdfͅ\x1cZ\xab\xcd\xe4bA\xd7C^{M\xf5\x95{3д\a\xe4v_\xcdJ<\x97\xfb\xab{\x81\x860\xd8\xf5\xc0̜\tB\xc3\xf1\a\xe5\t\x8a\x92B>͉ܘSM&\x00\"\xa0\xefI\xd6\xe0\xc6\xf3\xca\xeb\x05\x13W\xf8\x01\xf2\xe2\xe0\xf2\x9d\xd4\xe8J\xda\u0380\xeajC\xab\x1fP\xe2\xec\xab\x1aɜ<\xccAA\x8b*6\x1d\xdeVc\xdc\x13\xa4\x90\xa6\xe9W\xb0p\v\x99\x1fk2eJ\x9b\xe6D\xf7%\xb8R\xefK\x0e\x91;lWw\xc7\x16 K\x93\xb0\a\x97\xf5ۭh\xe5\x82>\xb2E\xb9 t!\xcb=\x84\xbb\x1bV\xbe\xb0E\x15R\xf4;\xf0@\x99Avgᢇ\xc5H\xbbK\x05\a\xb3\xef\x16O`j\xd9Q&\x85f9\xa8\x10\xf2v;ˤ=\xb8S\xcax\xd9\x15\xbe\xe9\x1a\xb1f\xaa\xb8T*\xc9J}\xeb\xdelx\r\xe7\U000a1360\xbdQ0\xa7K lJ\x98! 2\xbb/\xa0\x1c\xcb\xc6Oxd j\xf6&\xcb\xfd\x18\xbc\x1d \xca\xc5~\b\x18\xe1\xc9fb\xa7S\xac\xf9\xf8ה\xf1\xe7\xd86Ky\xe9G\xe3\xfb\xfa\xed\x0fr4*\xa6\xb2\xbf\b\x9b\x00y\a4_\x85\xf3A\x8d\xb1\xa6*Ҁ$\xaa\x14M\x8e\xf8\f'#ƾ\xf3\xb38\xa4\xe1\xc6\x04\xdbcc\xd7\xfc\xf9\xcc4\xb5\x1d\v\xe2Y\xb5\x1d\xfb\x81JХ\xb8f\xaeZ\x00\xac\xa8\f\x8a3ν\xa2\x9a\b\xcdg\x02\xd6@\x85\xdc9\xbd\xac\xf8\xf4z\xb4K\xe4\xd9\x12\x06\xef\\]\x8c\xea\xb2\xe6\xe6\xf5\x86f#\xf9-\xfa\bx\a\xefJ\x96\xe4\x81\n\x13\x88\xbeR\xe6\n\xb9'\xd5\xc7\xee\xaa\x1bT\xcd\"\x9e\xdeȬ\v*kHo\x03a\xd4\nӭ\xf6\x9d\xb4\x1b\xd64\xcdevoՑ\x05\x9d\xc1\xf1\xb1&\xaf\u07bc\xb6\xa4b\xb5\x0e+2\"$\x82\x1b\xccEb\v%\x97,\xb7\xaa\xd3{\xaa\x18\x9dpk\x04OA\x81\xc8@\x93/O\xde_\xbc\xfb\xe9\xfa\xe2\xcd\xe5i\x14pk:\xc3cA\x85\xa5\xc1R\ai^\xed\xbe]\x00\x88%SRX\x04\xc5a\xe3jJ(Y\x86\xd9fU&\x9a5\xb5\xf8\xd2ksQ\x10\xab\x15\aG\b\x13Ei\x82w\xf4\x81qN&q\x10K\x91ͩ\x98Y\xbc\xbe\x96\xa5\x9d\xe7\x97_\"V\x14\xe4e\xe6\x0ff\x14D\u007f\x98\xbe<\xf3\xe1,ʹ|\xd0([@g\xb4\xf08\x8e\x82\xd9\xd8^\xa2W\xc2\xd0Ǘ\x84\x8daL\x8e\xbel\xfc\xe9(\n&b\xabP\xd2.\xd3\xc5#\x1c\x1693\xa0('GM\xc8q\x1b\u007fi\xd7\ty\x93@\xf1k\x02\x96\xa0\x9c\x1d\xe0Hn_\a\xbe\x1b\nfT\xe5\x1c\xb4\xb6<\xf7a\x0ef\x0eʻ\x95<\x91A\x8c\xd7\xd9\r\xa9\xec\xf9\xea̔\xacs#\xa3 \x86<\xca\xfb*\x11x\xcc\xe4y.3}n\xa8\xbe\xd7\xe7LX\x91:ʩ\xa1\xa3\x06\xd3=w\xd2p\xe4\xe5\xf3(Xң\xea8\x9e\xffF\x95B01\x1b\xd1\xea)&Ft\xa4\xe7\xc0\xf9q\xc4,\xa3ą\x1b\xd1\xf6n\xf3\xb5\x98\x00C\xa4c\u008d6G\xbf\xac\x18\xb8\xfb\xf2\x98\\K\xb3+\x03m\xfb\xa8D\x18\xe2x\xdc\xc9\xe3/\xaf\xef\xde\xfd\xfd\xe6\xed\xd5\xf5],ko\x8a\x85\xed\xac>\x8dI\xb6\xc4B\a\xab\x8f\xdb\xfd]b\xa1\xcd\xea\xa3\xe0n\x11\v\x1b\xac>\x0e\xb1\x1dba\x93\xd5DZ\xe0M\xb1\xb0\x85\xd5G\x81]\x17\v[Y}\x14ԶX\xd8\xc6\xea\xa3@v\x8b\x85\x0eV\x1f/\x846\xc5B\x9b\xd5\xc7A\xdc.\x16\xd6X}\x14\xd8n\xb10\xb0\xfa\x8e\xd7\xe2X=\x88e2\x9b\xffΛ_\rVT\xedy\x1c\x1d\x1a\x89\x19\aL\xb4\xf9\\\x97V\xf0\xbc\x98o\xbb\x04\xc5\xf2=m\xa7U\x88\xe6b\xa3 \x93\xfa8\x84\x8cm\x14k\x95E\x1b\xc7bR\xac47\x9e\x8a\x9cu\x8f\xcdx\x9a\xbf5\x91\x8e\x0f\xd2\xc0ɘ\xbc\xf1\x19\x06\x94\xbc\xfa\xe9\xea\xf5\xe5\xf5\xdd\xd5\xd7W\x97\xef\xe2\x90B\xd2\xcf\x0e\tI#=Qs\xdca\x1e&\xe0e\xb7\xe6\x10-\x90\xdd(\x14,\x99,5_U\xe9\xed\xfd\x8f\xae\x1b\xeb'ק\x94\xad\x88\x06\xb5dY\xcal;\xa7\xd6G\xd5q\xe3I\x85'}\xf5O\xa8=\t\x80\xb7\xdb\xc4^\xf9I!\xadCZ\xc6\x1e\xe43\xd8\xc7n\xfb\x19uX\x8b\x9e\xb4%\x91~\a+\x8c4\xed.\x8c\xb6*\xd3P\xf3\x92!V\xfe\x10\xb3\xaf\xe1\x96I\x91Aa\xf4\xb9\\Z\xdd\x01\x1e\xce\x1f\xa4\xba\xb7\x96\xd8\x033\U000d12c7\xe9s\xbc\x86s\xfe\x1b\xfc\x9f\x1e\xb3\xbb{\xfb\xfa\xedKr\x91\xe7D\"\xab-5LK\xee\xd2\xee\xf6\xce\xf4\xed\x1auQ\x813\xbc\xd8~FJ\x96\xff9\x9eنq\x00ڐ\x85\xcb\xc4<\x10}\xdcb$\u007f\x15\xa4T\x0f\\Y\x16^q\x04\"\x15\x86\xdf\xf6I\x83\xdd>B²Wt{\xa2}\"%\a\xba^\xc4a\xbf\xb1\u007fh\xb8k\xec\x97\x0e\xdc5\"\xc2\xc7]\x03O\xc0a\xa4\xc6q-6\xf6Kg\xed\x1e\xde\xe0,d\xfe\x92\xe8\xb2(\xa42\xba*X0\xb6\x8c .\x9eQ\x8f\x16\x10\xbc\xdbwF\xfe\xb3\xfa\x11\xef\x8e\xe8\x1f\x8e\x8f\xff\xf4\xed\xe5\xdf\xff\xef\xf1\xf1\x8f\xff\x99\xfa\x9d\x1af\xa3\xd6\xcc!\x00\xeb\x02\xb2\xb1\x909X\x96}\xe6\xfe\xe9-\xaf\x8b\f\x13d\xae{\xa0G\x1bjJ=\x9eKm\xaen\xce\xc2?\v\x99_\xdd\xf4\x04\x890t\x82\nJ\x0e\xa2\x04l+\xfc\x123Z\x94\x1e\n\xc4\xf4\x16\x9a\xbe\x96\x8c\xa5\xf7\xaf푹\xa1f\xbe\u007f\x8a]\xd7xP\xcc\x18\x10h\xab\x82Zh\"\xa7g\x96;\xa2)ЇwKr\xb4|\x11\x19\xa1l\x01\xe8/ئ\x01E\a\xdaFĶg7}8\x16\t\xaeM\xcb\xfe\x82\x97\xa0ʦ\xec\x01\xf4\xe2\xe6*\x14\x1e\xfa\x88\x88\xef+٪m\xfb\x18\xf2-$\x9c\u007f\xfd,r.@\xef'\xea\xea\x9cbw\ac\xbf\x9b\xbc\xdb\agX\xa1\x88\x8a\xbc\xaeRt\xe2~\x1cgE\x99\xca\xcc=\x84\x05,\xa4Z\x9d\x85\u007fB1\x87\x05(\xcaG\xdaHEg\xc9\xe2'L\x15\xa7X\xff\xcb}.\x95\xf37P\xb09Ӹ$\x9e\x06T\x05$+\x95\xb5v\xf8*\xe8(\x90\u007f4\xf9V\xd1Ow\x89\xa4}G\x9b\xc8\xebd\xf5~\xb6f\xcd?Ѝ\xb3\x94\xbc\\\x80>\xab\xac\x94\x1e\x80ѥ)\x96dI\x95\xfe\xa8\x16WΖL\xef\x9b.\xdd5\xa8X\xbdMdM\x04y\xac[\x04\x13\x06f=L\xb4\xd1!\x90\xd1i>\xfa\xf2\x11=6[\x96\xa6(1yxAM\x15\x95z,d\x9a\xe7.\x8cFA\x9f\xbc\xe90}\x91\xe2\xc6v\xa3\xa0ƀ\x12/\xc9\u007f\x9c\xfc\xe3\xb7?\x8fN\xff|r\xf2\xc3W\xa3\u007f\xff\xf1\xb7'\xff\x18\xe3\u007f\xfc\xcb\xe9\x9fO\u007f\x0e\xff\xf8\xed\xe9\xe9\xc9\xc9\x0f߾\xf9\xe6\xee\xe6\xf2Gv\xfa\xf3\x0f\xa2\\ܻ\u007f\xfd|\xf2\x03\\\xfe\xb8'\x90\xd3\xd3?\u007f\x99<\xe5\xc7Q\xed\xa1\x191aFR\x8d\x1c\x11\x82\x9b\xb9n\xe4\x82s\u0084\x13\x92\xf8\xb1\a\xc6\xe3\xec`Lkr^\aB]\xbe\xe2Ң\xe1a\x0e\"\xe9n\xa5\x1bL\x13m\xa82L\xcc\xc6\xe4{\v\xcbic>\x17\x85\t\xb2(\xb9aEdBReaU\xb5I\b\xd5Zf\x8c\x1a\x8f\xe1h\x81ʩ6aK0-\xc7\xd0{̸\xcc \a\x91\x01ֲ*#\xe5`\xd8\xf3\xc9\xcab\xf4R,\xdd\xdc(\xc9K\x97R\f\xd1ܧ{n\x1f;\xdd\xd5\x1e_\x9fZSg\xbdF2E\xf4q;\x18rZ\x97\x12\xab\xe2\xbbq\xf0\xd2U\xec*\xfb%\xc9\f\xd9Э\xeb\xf8t\xa5\x19\xa7DU\x95\\|\xe0,\xa0t5w\xab\x8a[+\xaa\x89\xfa§\xa6\xde>\x8bj{H\xb5\xb6\xa7J\xdbO\x9dݥ\xca\xf6\xb0x\xea\x13u\x88d\x8d~\nh\x0f%\xb0P0e\x8f=9̅\xa8\xf6\x88\xb0\x1c\x84aS\x96d'X\x9dIA\x01\x02ӄ\x81fsW\x06S\xb4\x93lRh\xfa\x13\xc8\xd0w\x9e\x83\xc30\xf4\xdb5?\xc7\xc0\xcd\an\xbec\f\xdc|\xf7\xf0\xc7\xe93f\xe5\x1f\xd0Rƛ\xcb\xe9\u05eb_7\xee?#Gx\x8e\xbb\xf2\xd5y\xad\v\xab\x9c\xe3\x17\xe3\x8e%\x16\x81ţg\xad\xc8Jȹb\xfa\xf2\x81\xcc\xd9,\xd6#\xc6a\t\xdc\xeb\xf7dA\x05\x9d\xb9R\x9aF\x86P]\xec\xed\b˒\x14\xcb[\x85\xd7p\xa9VpZ6\xc5%\x8d\xa3\xe5\xbaw\x9c&\x9c\xdd\x03y\r\x05\x97+_1S\xe4\xe4\xd6Pc\xd9\xd2-\x98\xb8\x04\xb8$恫\xb9)9\xbf\x91\x9ceQ1\x876\xe9]!\xcd\x15%\xe7\xa4@Pc\xf2V@lX\xe6\x82?Е>#װ\x04uF\xae\xa6\xd7\xd2\xdc8s\xb3\xbe\x9f\x12wx\xa5\aJؔ\xbct\xfdш\xa13t]T\xf5\xeb\xe2\x88B\xb5&\xe6\x84\xc9\x03\xd3}\xed\xf4h\x81\xb9q\x00\u007f\x83_\xb5\xa2\xd3\xfd\xfb\xd9ɇ\xb3)d\xab\x8c\xa7\xf3\xac\x8b\f\x93]\xeb\xf2\xeb\xf5\xb9\x8ds\x19\xad\xb4\x81E(\x1b\x86\x0e\x14\x86e&\v)4\xb8\x82z)\x1e\xaej\x85\xcea\xa6{\xeeq\xaa\x92WHmn\rU{\x96i\xabG\xfb\x94\xde\x040\x96\xfc3\xca9\xe4\x84-\x16\x903j\x80\xc7\xfb\xc9C\x05\xd0f\xb9G\xd7\xee\xd2\x15\x93L\xd2\x1b\xe6T\xe4\x1c\x14\xd6+\xf4>\xc0\x16|\x03j\xc1\x04\x8d-\x18B\xaa\xf4.tYBNh\x96I\x95\xfbZp\xa1\xb2\x17U\xf1\x1a\u007f\xc5\xf1PWjH\x9e\xf5|\xbdh\xc8\x13.\xb3{MJa\x18\xaf\xcbC\x86ڐ\xbeQc4\xd4$\x16S\xfd\xe7\xa8:\x13#\xecGv\xfe\x9b\xfaO\xf8C\xac\xf2\xdb\xc7\xf2ٯ\x9e\xef\xe6X\xabA\tH\x1a\x98L)\xe3\xc5V\x18\x98\x17,\xad\xfab\x89\xaa\xae\xafZ\t\x9a4#\x03\v\x10\xb7\xbb\xeaPd\x9bX\x17\x8d\xdeGV!q\xa3o\x8eBB-\xa0\xe6\xd8Q\xb689\xd6\x18\n\xdbr&\xa0Y\xbf\x98aM\xd4\xf4\x10f\xf3\x04;~\xe4-\xd4\xf4 0S\xd8cdըm\xe9\xe6\xde'\x99_Ii\xc8\xc9\xf1\xf9\xf1\xe9FP\xeb8\x1d\xea\x94qp\xd2\xd5\x15Yʪ\xcdJ\x06\xa9٢\xe0+ܟ\xe3\x1c;:\xf9밪L\x8b\x11\x13djv\x97CA\xa83\xa2%1\x8a\x86.\x03\xe9s\xb5\xd0,p\xa3J\xaf\xab\x9c\x1c\xff||F\xc0d\xa9\xf9\xc0\x84=\xfaʿ\xb9\xd4I\x98!\x9b\xfdZ\xb5q\xdd'\x9c\x91\"\xd2|\xcen\x18\xd9NK\xf6\x19\x8d\xe4\xea&=\x11\xebﲴؚ\xd0\t_UUd5\x18rd\xa7\x9e\x9e\xf6\xcc\x04\xee\xe7_\x81\xe6X\xb7Wh\x034QE:\xc0Qk\xcc\xe50J\x8d\xeb\xbb;w {\xech\xb3\x04\x96\xa7\xfd1\x9e\xa9t6\xe9*\xbc((\x1c\xfb\xf5s\xfcHLr\x83W\xb8]\xf0\xbfOz\xe5&\xd2\xd0\xfe\xd8-\xd1\xd7vN,\xde\x11\x06\x138M<\x14=f\xd7?K\x98\xf4\xceV%]\x110\x87\xab^0\xfd\xdd\xcb\xf8\xb4\xb4\xf5q\x90\xfb%\xc9%\xbc\x9a\xe39ф\xd3\xfb\xf8x\xea\x97jI\xd2\x12\x11ۯ\xf7\xc3D\xcf\x1b\n\xa4\xb7\xbe\x85\x97y\x92\xaf\x1bo^66\x92\xd0,K+\x14\xe5\x86\xef^\x8e\fK\x83Z\xc6&8֣7\x89\x152\xde\u007f\x19F\xaf\vo\x87\xb9\xeev\x90\xcbn\x1d\xf5\x12\x15\x11\xe5b҃\x93T\x050\x94\xa9\t\xc6o|\x0fgJUl\xf3\x1a\xa7\x17B\xb8}\xf4=Ta\xa8\x98\x01yag\xfa\xc7?\xfc\xe1\xf7\u007f\x18#\x1a\x92\xa1\x86\xc02\x15\xe4\xea\xe2\xfa\xe2\xa7\xdb\xf7\xaf\xb0\x88[*\x95?\xcb\xcd6,ې,\u007fڑy\x04e\xb1Wj,t\xd6g\x87\xad\xad\xe1\xfd\xdfι\xacS\xe3l\xcda$\xb2\x9b\x8f\xc4g\xfa\b\xb1\x11\x1e\xa2\x0fmg\x9b\xac\xb8\x95\xd9\xfd\x01,\xed\xe3\xbbW7\x0eTml'\xed\x02\x15\xc1\xc5\xcc\xc4R\xf2\xa5\xeb\x17x\xf7\xea\x06\x11\x94\xb6\xb3\xf6m\x8c\x0f\xa0\xaboe\xe7\x18n»Ԝ$\xa8lQ\xf8\x8e\x99\x94(\xa0\x9ci\xc32\xfcV\x15\xa6H\xb4\xef\xe5}J\x16\xcf'\xe3W8~\x1bҁ\xd0Ő|\x9a\xd7\\\x13-\x17C\x1f\x16\xd1pM\xa4^\xe9\x1a4\x92\x83k$N\xd4K\xd5O\x8f\x1f4\x92O[#\xf9\xdcdd\U000ab142[#\x8b\x9eY\x13\x0eȁr&B'\xbamI\r$O\xd8R\xd7;\xfa\xe2\xe6\xaa\xf2\x8e\xcbV\"\x02&\xafDC\xd5e6\x0f\xb1\x19\x01Z\x9fczDY8\xcfWh(\x19\x1f\xb1*\x14`\x17>)Ϊ\x8a\x04\x88\x0e\x10\xeeG0Y\xfciA\x9f\x8c\xcf\x1d\xf1\xf1İ]}\xd302E\xf5\x1c\xb0S\x05<2\xa3C\xb7k\xaa\xa5p!\\\xbf}L\xc6\a0\x99&\x05\xd5\xda\x05\xeeL\xbd\b\xf7\x91\x1b\x99\x1f'Do\x1b\x13\"3E3 \x05(&s\x82U\xffr\xf9\x10?\xcf\t̘Ё~\xedD\xc3\xc1\xb0\xba\x12$E\x84\xebγ\xefZ]\xa4\xb0]yi2\x99\xc0\x87\xfd\xeb\x1e\x8b\xeb\tD\xd1W'q\x9a\xf6\xf8\x94\x94\xf3U}P\xc3MOs\xf8M\xda\xcc$JEB\xbd\xee\xf5L\xa2\xf8h`+\xf3\xc8\x1e\x85:+\xa9\x0f\xf9\xb7\xa8\x93i{\xaa\xb2y\x8f6_$>}yHmzr\f\xa9M{\x8f!\xb5iHm\x1aR\x9b\x86Ԧ!\xb5i/\x10CjS5\xa3!\xb5i\xc7\x18R\x9b\x86Ԧ\xa7ǐ\xda4\xa46\xd5cHm\xdak\f\xa9M{\x8c!\xb5iHm\xda:\x86@\xe2\x90\xda\xf4k\f$\x0e\xa9Mq\xaf\x0f\xa9M\x11cHm\x1aR\x9b\xc2\x18R\x9b\"Ǡ\x91\f\xa9M\xbfF\x8d\xe4s\x93\x91\xbd\xaa\x8bE\xbe\x16\xf2xn\x94\x9c\xf4(3v\x83\xb1z\x96\xf94 9M\xae\xad\xe3\xa63&\xafZ\xe9\x19\xbe\t\xbf\xab\xd2\x12\x05\xd1'\xfa\xd4\xe9I}\xeb\xf5D\xd7d\nE\xc1\xf4y!\xdd\xff\xabs\n\x1a\xc9\x04ο\x16#\x1cR\x85oJ\x16\xc1S\x19\x04I\xbcnw\xf6\x00f\x02D\xc3|\x84\xff\x19\xa2\xfb\x87\x8f\xec\xef\x88ꓕ,\x93`n\x89\xe8\xfb\xc8|\"mvF\xf3CT>\rfw$\xbf\x15\x91O%\xa6^Q\xfc\x1e\xc1\xa9\x9e\xcau\xba'9YS\xf2\xc9\xc6ws\x05z.y4\xafm\xf1\xd97L\xb0E\xb9\xb0lB[\xf6ȖU6s<\x8d\x84<'\xa7u\xb80\x9c\x05\xccr\xc0&\x96\x94\xf1\x94RuXZoN\xd1?\xa1\xcb,\x03ȭ\x9c|]\x87\xc0\xa3a\xfe~\\\xad\xdcu\xd5`\x9a\xbc\x88\xa5<\xd7P\x11\xed\xbb\xdf\xff.i\xf7S,\xc3Ą\x8d\xa7\x935\x10r4&\xfb'j\xf4Q7R\x1d)ϓ\x9c\xb1#1\x83\xfc=Q4\xecH\xca ,M\xcc\x1e(!\xa3\x17\xe7왈\xb1#\t\xc3\xe3(Q\x01\xd9L\xc0XO\xa4HCyz\xf2E\x0f\xd9\xf6\\I\x17\xdb\x13.RI\x92\xf4N\xb6\xe8\x9fhq\xc0n\x87u\xe6@\xef\xee\xf8\xbd\\t\a\xf0\x1c\xf6L\xaax.\xb4\x1c\"\x85\xe0#v\x9fM\xde\xd5>\xc9\x13=\x13'\xfa$M\xa4&L\xecH\x96\xe8\xe3i\xee\x99(ы|R\xc3\x11ɡ\x88\xfea\x88\xde!\x88\x1d\t\x11}z\xc2v\x86\x1eR\xfb\x17\x86\xd1\x0e;\xac\x85\x0f\x12\xd5\xc2f\xc8ᠡ\x83\x83\x87\rғ\x18v'04\x12\x11Rq\xb8\x99\xbc\xd0'\t\xa1\aE\xa72\xff\xa4\xa0J2\xd3f\x82\x19F\xf9k\xe0tu\v\x99\x14y\xb4f\xb4\xd6\x10\xa9:\xafځs\x96y|&D\xeb6\xe6\x9c\xfaΙ\x90\x87\v\xb5!\x1a\x12\xcfZQ}$\x14\xe3\x14v\xf5\xa6}{\xf2\xe3\xc6-\xc8Gs\x19\xb8+\xa5\x87 \x82\xbf\xca\a\"\xa7\x06\x049a\"\xd0A\xbc\x1f\xb5v\x16\xd4\xfe\xa2\xeaXۿ\xbe\xf8*\x9es\xb9\xc9|\xbe\x8e\x1dtmi\xfd|~=\xff\x81\xc3;\xf6<\xe0i\x19\xef\xa3o9\xf7\x9c\x83\xb0\xcdߣ7\xafn\xc3\xf7\x02\xe7\x1d\xb8\tz\xa9}ن\x04\x98\x9f)Q%\xa7\x9d=\x99rF\x12:\x8f\xedJ7\xabSǢ\xc1nI5\xab\xd3\xc6\xe2'\xba-\xcd,)e\xec\xa3{8\xd7\xd2\xc4\xd2\xcd\xcf-)b^=KT\xe2\x93\xd3\xc3\x06;,r\xecH\x03\x1b\xec\xb0O\xc8\x0e\xfb<,\x8cF\xad\x93o\x14\xcd\xe0\xe6`jf`W$/\x15\xf5\"#(xI\xf6\x86e2\x02 w\x9c\xaa*\\\x83\x15W\xa6%O(^U\x16R\xb4\xab?\xb9\x9c\x8af\x11\x97h\xa0>ۥc\xd5^QJ9\xa1\x85\x92N\xed#\xaa\x14\xc2J]\u007f\x96,R\xac\xad\xa4\xd3$d\xb3f\x8ff3\xbb]V\xc5\xc2*8,A\xbe<\xccA\x04-\xd3O\xd8\xcen*U\xc6&|E攧\x84_\x1e\x98\x99\x13J\xee\x19\xe7~\x9acr\v\x86\x989Ӊ\xceT.\xc5\f7\x83\xba\t\xc3c\x01\x99U;2\x0eT\x94E\xda\xfa\xad\xb2\xba\x92\xa5\n\xeb\xf7m\xe3\xc2,S\x926\x04\xe3ga\xab\x8f\xf5\xee\x03\x9b\x80X\x97\xa0Xj\bu\x9a\x1e\x98\x86\xb3>\x98\rmF\xdd9p\xeb.\x94\\\xb2\x1cr2Y\xa5ѿ\xccQk\x1d\x93\xf7\b/\xf0}!\xc5H\xc0\x8cZ\xdb(\xfe\xa4:!\xeeμ\x9b\xa7\xabG!r\x96Q\x93`ci,\xacW\x97\xd3#KF\x11\v\rʍ\x06z\"$\x91\xa8\x14\x97\x82\x99\x15\xc6F\xe7\xa5!\xb9|\x10\xa7cl=\x9b¤(\x99\x80\xa1\xfe^\xabk%\x88\x02K\x13\x10t\xc2S\x94\x13\xccĽ\xeb$P2\x05jʄ\xee~3j\xa0\xd3\x1f\xe0\xe8\xe1\xb0ǁi\x1f\x01\x9d\x92Rh\x88\xbe?Ӱ\x0f\xff\xf8\xaf\x1f\xce>d\v\x90\xa5\xf9\xa4\x1c\x84\x0fs\x96͛\xfe\x06\xb6\x00Md\xd9\xe7ښ\x91䅟V7E\x99\xacáZB\xc7\x18\xaa%l\x1dC\xb5\x84\xa1Z\xc2P-a\xa8\x96\xd0=\x86j\tC\xb5\x84\xcf*\xffy\xa8\x96\xd0\x18C\xb5\x84\x841TK\xd86\x86j\t{\x8d\xa1Z\xc2\xe6\x18\xaa%t\x8e\xa1ZB\xc7\x18\xaa%\xec;\x86j\t\xd5\xf8\xe5\xdc\xd2\x19\xaa%|\xaa\xb7t\x86j\t\xfb\x8c\xcf\xe3.\xd3P-a\xa8\x96\x10\xf02TK\x88\x1aC\xb5\x84\xb51TK\xf8\\\x89j\xa8\x960TK\x18\xaa%t\u007f\xf7\xd7n\x87\r\xd5\x12>U;\xec\xf3\xb00\x86j\tC\xb5\x84\xa1Z\xc2P-a\xa8\x960TK\x18\xaa%\f\xd5\x12\x86j\t\xbf\"\xafb\x92֨@\xcbReqvp\x9b\xc8^\xc9EQ\x1a \xef\x02\xa8JY\x8eZ8\xca\x12\xa6\x9b\x97\xf2?l3\xc1L\x8a)\x9byE\xef|A\x05\x9d\xc1\xa8\xc2Ϩ\xbeBw\xfe!r\xe39[\xb0\xb8:\tv\xd4E\anzx8\x12\r\xea\xbe\xe6tOc\xba\xa0ƀ\x12/\xc9\u007f\x9c\xfc\xe3\xb7?\x8fN\xff|r\xf2\xc3W\xa3\u007f\xff\xf1\xb7'\xff\x18\xe3\u007f\xfc\xcb\xe9\x9fO\u007f\x0e\xff\xf8\xed\xe9\xe9\xc9\xc9\x0f߾\xf9\xe6\xee\xe6\xf2Gv\xfa\xf3\x0f\xa2\\ܻ\u007f\xfd|\xf2\x03\\\xfe\xb8'\x90\xd3\xd3?\u007f\x19=\xd5\x03\x1b\xa7\xed\xf3\xf8\x1dRN\x9dR\x84|{A\x1f-\x83\x8d'\x85\x85,\x85q\xb7l\xdc1\xafN\x84KÊ=\x94\xe4S9\x98\xa4\x8f\xa1\xed\xf3ц\xf3\x191\x86\xf3\xe9\xce\xe7;O;\xed\x13\x1a=DžW\x99v\x9c\xd0h\x98Ap\xa3\xa1[͓i\"\x17\xccXs:\xe5\xa6p\xa3\x16\n^Ii\xba\xa8\x1d\xaf\x8a\xd7\xf2\xa6\xee6\x05\xd3\xcd\v\x1a\x8d{\xdd2ؾ)j)\x15u\x9c\x02y\xce(\x87)\x13\x90;\xf5\xf4\xd7\xc7\xef\x92^Ӑ\x95\x8a\x99\xd5+)\f\xe5Cú\x19\xe7\x85q\xe5eH\n\xfa+\xa09֔)\xa8\x99\xbb<\xd5\x05\xd5\xf7\x90\xbb\x1f\x12u\xec*$kg\\-\xfdnU@r<\x15uk\x97\xfd\x8bq\xdexol\x8f\xf2^4\u007f+\xf8Ꝕ\xe6몌I/B\xfe\xde[K\xed8P4R\xe6Xy\xdb\xceo\x84\x9b\x88e[\x9a\x95V<\xf5\xa5X\t\x1f\x98A\xa8R\\\xe8o\x94,\xa3U\x81\re\xfd\x9b\xab\xd7\xc8/K\x9f!#\x8cZai\xaa\x14&\xd1>s\x95=\xf67\x9fӔ\x94mS\xb1\x87\x10\xae'o\xe8\x8aP\xae\xa57\x1c\x13\x82\xc1]\x1e\x12\xe2]5)7\xa3'\xd2\xcc\xd7}:\xc8\x1e6\xbf\x13_\xc0\xa8N\xb0\xa9<\x99v\t}\\H\b\x96ރ&\x85\x82\fr\x10Y4\xf5~\x9c4\b\xa4\xfck),{\xe9E\xfbW!\xffǹ\x8c\xfbY\xf5\x98\xa9\xe4mz\x8a\xf9J\xc8\\J\r\xca%\x87\xa9\x12\xd26\xfe\xdbr\x02\x1c\x8cs\x94`\x9dZj\x9c\xe7\x8f-\xe8,\xfe4QS\x89B#\t\b]*\xf0NsCr\x99`\x06\xf8:Rv\xe9\u007f\xbbzM\xbe\"'v\xed\xa7H\xfeS\xcaxJ\xd5\x17\xbc\xfd\xb1\xc6M\xd84LѢ4^'\x10h\xec+Ǫψ\x90D\x97\xd9<\xe04\xc5;\x14\x9cW\xfe\x86\x14^a\x1bX\xd3'\xc0\x9az\nֿiP\xbd\xe5\xea\xdf>\x80\\\xed\xe3\x06\xb3\xbc\xa9\xbdk\xc8P\xc8\x02\fͩ\xa1)\xc1\xb7R4\xaa#\xae\x1d\x85\x14\xda\xdd}\x14\x90\xb4\xa3a\xfeʎ\xc2Ǒ\xd2\x1a\xbec\xa2|t\xb7\x03\xfa;\x94o/\x11\x1c\xf1\xa1\xa4\x14\x892\x01B\x8b\x823W\xbeo\xad\xcb\xcbU\x8bt\xd3\xf6~\xd3\xd4D\xf1@9\x97V\xcdH\b\x8f+*r\xb9\xd8X\xbc5D\x81&Xō\x05w\x1c\xcem\x87-^vׇ\xf3\xd7v\xd8\xfa\xb8\xee9,!\xa1\xd0\xf8z\x1f$\v\xc5\x1a\xa4\x81j\x10l\x92\xf7\x93\xd3\tp\xa7\x1a\xba\x93\xa37ON\xb2W4ѩ\xaa$\xef_\xf2\xe2\x9d\xe4\xe0r\xe3\x03\x92,\xd8_\f\x8e\xf0\xe5\xbe8B\xefS\vG\xc9^\xf4O\x11Ge\x82\x86G\xd6qd\xd5\xc46\x8e,\xd8_\b\x8e\x92C\x10\x1a\xb2L.\x8a\x1b%\xa7,\xfe\xb0n\x88~\x0f\xaeNΉ\x17\xfd\xa5\x86\xae,r\xd4#\x11x\xbcF\xee'CU\xe3\xd2\x135N\xe6\xf9[\\\xd1@\xffOC\x85@\xae}\xb6\xa6W\xf8\xaf\xc6϶\x99/T\xc8<\x00\xfa\xa0\xd2Mf\x94cS\xa14\xba 봱\x0e\xb0\xc7}.\xe2z\xd3y8!\xa7\x0f\xbb\xaa\xe0/\t\x9e\x01\x12\xfa\xf3\xc9\x1c\x1a\xb5\xe3\xdd\x05\xbc;w_\xc6\xc2N\x02\x1c\xae\xc5Y=%$_\xe5!ve\xbf\x986]\xe9Ke\xbf\xa9\xda\"Y\x84\x83\xc8S+A\x15\xd4\xccψ\x02\x8e\x17\xf7\x02C\xbbw\x0e\xad\xe3\xb4}j,8p\x86\xb0q\xa8g3)\xd2.\xb1\xe3\xaa1,\x104\xe2)\xf2@\xcb\xe0\x8f\xbe\vĖ\xd0'\xe5S\x90\xe6Gn%\x95\xc73-\xaaf\xc7=\x13\xb9\xbf7\xd6B\xbew\x85\xa5\x9d=g\x97\xe1\xadO\x967\x99\xebK\U0008fd33Wm\x18\x19m\x1e\xed$\x88Mv\xd0q\xb4\x93`:v\xf0Ι\x8b\xa1\xa6Ҩ\xa7+\x9a8/V3\xd8Y! !\x975\x8c\x8a{\xfdM\xe0\x19\xb4,rD\x84\xec\xc5\xc9j\xce\x18h\xe0\xe8Þ\xaf\xf4\xf2\r\t\xeap\xb2J\xf5\xc0D.\x1f\xf4\xa1\xbc)\xdf;p\xc1t\xce,\xbb3L\xcc\x12R0j\x8f\n引\xa1w\b\x97J\xe0\x04U\xab\xd3M\xd7A\xb2\xcf\xde\x11sۗ\xd8\xdb\u007f\xb0ŽQ\xbb+\xe2\x9d);\xdc\x1b\xce]\x11\r\xf2\xe3\xb87f\vM_)\xfb]\xc3(\xbf-\xe2;\xfc\x90uZ\xfe\xe6\xcd\xedE\x1bd\x1agǼ^\xe5\xd4c\v\x93\xd0|\xc1\xb4fR\x90\a\x98̥\xbcO\x82{\x12R\xe7g\xcc\xcc\xcb\xc98\x93\x8bF\x16\xfdH\xb3\x99>\xf7'{d\xb1\x93\xd6\xe4\x84\t\x1en=8\x0f\xa10:D\f\xecbҴ\xac\n\xabH\x80\xbe٠Op\xddD\xfbuj\x91*\xbc\xb1\xf0\xc1U\xaaMR\xbcN,(\xfe\x049&\xe3\xc5W\x97iT{r\x84Y\xefK\x9a\xb8\xb5{\xe9B?\x1f\xbe\x8d\x803\xd52\xd0\xfd\xdb\b\xfc\xb5\x86Erp\xc5!\x12\xed>6m\xf5\xe4\xae\x15\x12\x17\xd1N\xb4%\x8f\xb1v\x9b\x9f\xe2q\xd3\xe9\x90Tǃ\x84\xa3\x82\xde&^\xcc\xe9\b\x1d\x04(o\xac@K\x82\x18\x8c\x9d\xb9\x14R\xb9\xe3mUz)\x12\xdav\xbb\x81\xfe+\x97o\x864\xeb\x15\x8d\xc6v\xbdJO\xf7\xb4ç\xc3az\x1b\xd6\x06\xb2j\x8bs줗\xa9\u007f`f\x8e\xed\x9b\xe6\xd0\xfa@:f\x15hLX\x12\x04\x94\x92\xca\xdf\x1b\t\x89\x06\xa9u\x95\x9d\xfe\x83\x97[,S\xa0\xf6_ǺO\x06-iu\x80\xb5\x1fЖ\xe3\xc0t\n\x19\x9a썝K\x02\xeeB4'u\xbf1\u007f5\xdc2!\xfb\xcd\xc4\xe3\xb5`\x8f\x16\x03M6\xd0\x13\v\xa1/V7\xc8\xd31!Wi\x86h\xb8\xd8}f9M\x13\xba\xbfY\x94J\n\xa2\xd5\\\x1a7ч\xf3\xd2$\x03`V\xaf\x9dQ\xbadHɷ ͜\x8b\x83\x88a̽\xf0\xc0\xec\x11\xf4L(\xd5'\xb6\x99\xbf\xb1\x91\x8f\x91\xe6\x1c[\xcf\xe1\b\xfe\xb1\xe4\x18\u008e\\\x0e\xc2\xe2ø\xc4\xe5L\x1d4\x9f\x83l\xc9\xe9H\xcfn\"ϝ\xe1D\x9e/\xdaL\x0e\x10q&\x1f%ʓv\xf1\xdbUt\xee\xd9\xe6\xf7\xb6\x01\xa5\xe1Ѵ\xaaG\xd4ڽ8uU\xed\xab\xaa\xd8|\x15\xaa\xf1\xb3\xff\x8e͙ow\x90\x17\xd2\x15\x1bh\x96\xba\xf7}M\xe3ԔR\x18\xc6C\xf0jQpk<\xb6f\x1c\x9d\r\x89\xb0\x1a\xfd\x86\xcf*d\xd4\xed\x8d}\xa1\xff\xb8\xf3\xf2_(\x86\xaa\x96ơ\x9e\xf7M\xf5)\x17\xfd\x88Ԁ}\ay,\xd9fd\x88\xb7\x91\x9cM\xa7\x10n8G\x8a\xbd\x82*\xba\xb0\x86\x83&>\xf5w\x023殙V\xaaUd\x84\xa2*\x12v\xe6\xd4=fȂ\xcd\xe6\xceKC(\x96\xa2\x8c/7i$\xe1\x92\xe6\x04\xb9\xb8T䁪\x85\xb5Xh6\xc7\xfa\x8dT\x90\xbc\x8c>\xf8\xd8In5҆\x1a \xb2\x00WR\xc2\xed\x8dŷ\xab\xae\x15G\xa6C\xf3\xe9\xa1\xf9\xf4\xdech>=4\x9f\x1e\x9aOǎ\xa1\xf9\xf4\xd0|z\xef14\x9f\x1e\x9aO\x0fͧ\xdd\x18\x9aO'\x8c\xa1\xf9\xf4\xb614\x9f\xdek\fͧ7\xc7\xd0|\xbas\fͧ;\xc6\xd0|z\xdf14\x9f\xae\xc6/\xa7\xe9\xd9\xd0|\xfaSmz64\x9f\xdeg|\x1e\xad\xe1\x86\xe6\xd3C\xf3逗\xa1\xf9t\xd4\x18\x9aO\xaf\x8d\xa1\xf9\xf4\xe7JTC\xf3\xe9\xa1\xf9\xf4\xd0|\xba\xfb\xbb\xbfv;lh>\xfd\xa9\xdaa\x9f\x87\x8514\x9f\x1e\x9aO\x0fͧ\x87\xe6\xd3C\xf3\xe9\xa1\xf9\xf4\xd0|zh>=4\x9f\xfe\x15y\x15\x13o\x8a\xe4,\xaae\xdb\x1e\xdd\x02Rj\x9f\x84ڝ\x96\x91\x95\xd3)(\x14\xbe8\xbb\xa0\x1c\xa5]\x02\v\x9d\xa1*\xd1\xed3b\xb1Q\xa0\x02\x9a\xbb\x9a\x17q~\xc1\xcei\x85\"\xa4ؾ\xcc\xddK\x8d\f\x0f\x90˷_\xd7NהV\ai\xb7\x03q=oE\x96~W\xa8&\x84\x8e\xea\xacq\xb8u\t\xf8\x19\x97\xdaߓEdgs*\x04p\xaft\xb38\xccΩ&\x13\x00Ad\x01©-\x94h&f\x1c\b5\x86f\xf3\xb1]A\x9c\xf7\xcc\x13\x81\xefZW\xcfT\x1b\x05t\xe1\x88A\xc1\"\xb6Ϡ\x9d\"\xa1\x99\x92Z\x93E\xc9\r+\xaaI\x12\rX*#2i\xe9jZo0&\x89\xd7\x17PϪUD\xcfѕAk\x9cyC\x959\xc3v\xb0\x8b¬\xdc]\xaa8\xc1\x87];\x956$\xe3\f\x84\xf1\xabv\xf5\x19q\x9eg$67\x1e\xaf\xef\xba]\xd0\x1e\xb5\"G\xafHa\xb4\xbb\xe9\x936Q?Ŝi\xef}\xd3g\x84\x9a (\xa3\x89>\xd0\x12\x92}P\xe0ܬ\xfdO\x89ӬK\xfa\xeb\xfa\xaaY\xcd\f\xa7\x9c\xc6)\x86\x81)\x9d\xb5j9\xd4\xf6!&\xb9#[\x8d\x02\x8be\x87\x1c\x16\xf0\xe0\bXZ\xfe\x01\x19\xb0%\xfa\x83,g\x8c\x82\xb8\xceE\x9f\x9d\x896t\xd77\xa05\x9d\xc1Md\x8a\xcd6\a1f\xd9\xd4\xc4\x15ipa52#\x1b:\\}\x01\xa5m\x81F\x81]\xb85V6\xe7\x83b\xc6\x00\x121v\xae\xc2\xcc\xc3\xc8<\xf0\x8d\xc95\xafǼ\t\x1ft\x1f\x8a\xa5Z\xabO\x89\xdc]\xea\x98\x00\x99(\x06S2e\x82r\u007f\x0f#\xee\xc2\x11\xf6\xb3\xa0ڒ&\xd5\x1a\x14\xfa\\\xbc\xdb)\xe0&\x8e`\xbf\xf7\x884\xaa\x14\x19mt\xb9\xc4\xeawlJfx\xd7#Ҙ\x98SA\xfe\xf5\xab\u007f\xff#\x99\xac\xac\x16\x8cƱ\x91\x86\xf2j\x039\x88Ydm\u007f/\x9e\xdau\xc8*J\xe0l\xc1b\xddB\xd6\x18\xf8\xdd\xfd\xa4\x1dh<\xcfayޠ\xcf\x11\x97\xb38\x9c\xbe\n\xf7+\xab;\x931\x8a|\x92k\xbf\x83\rHβU2#\b\xcds\xc8\\>8W^\xcf\x13[_q,dQr\x97\x92\xf1u\xa8,\x19\x05\xb2\u0530Y\r\xab\x93\x0f\xc6RC\x98\xdaz\x87pwe\xca/%Ni\xf1\x85\xe7|h\xbcꙃ~\xe2\xaf)\xe7\x13\x9a\xdd\xdf\xc9\xef\xe4L\xbf\x15\x97JE\xb6\xd9G\xea\x0f\xf8\xe0\xd4j1\xf3R\xdcc\xcbۺְ\x8c\x93\xb6\xb24Ei\xc2%\xef\xa6{7lft=\xc8JA\v\x9e\xe1zv\xf0h\xcf-\xbag\xe3\u0601/\xbe\xe3\xb8\v\x97\xb3j\xde:0\x83\xd8\x1bA\xbf\xfb\xea_\xffͱ,\"\x15\xf9\xb7\xaf\xf0ʨ>sB\fu\x03\xab\xc8.(\xe7\xb1\xc1\xac&\x83\xb1D?\xee`\x12\xcf\xce#L:;x\x16\x93\xfb\xee\xee\xefho3\xa3\x81O\xcf\\\xed\x91\xe0A\x8c\x02z\x8cJܱ\x97\xb2X\xe4\xe6#\x18\xb4K\xc9\xcb\x05\xbc\x86%\xcb\xe2\"\xfc-T\xb7\xa0\x84H\x10g\xda\x10\x19W\x05b\xc2evOr\x0f\xa8q7c\xbd\x8fu\ff\x12n\xa1l]]}\xff\x84\xc46#ZТ\xa8j9(\xfa\xd0Z,\xf2\x92\xe8\v(45P\x9d\x9e\xd5\xe1\xa6\x1b\xab\xb0\x87w\x1bX\xad\x01\x05\x82)b\xa5\x9f\x1b\xfe\xe6\xf5FC\xaa\xd0A/)\xd7\xc0\xef\x89\xd3\xd3\xec\xce!g\x8e\x0f\xaf\xf7HzH\xbb\xd3\xd3±\xa8r\x05\x16\xd4x\x9b&1\u007f\x06\xa9\xb6\x00\xa5\x99\xb6\n\xcc{<\x13\xaf8e\x8b\xf4\x1b\xfe)\r\tz\xb4\x80M\xc9K\x185\xe84\xf2\xc5hD\xf7\xaa{\x14w\xb7ű4l\xe9\x9b\xce\xf5od\xee\x01!\xabvm\x98\xad)\x1bM\x0e\xdb\n=\xf4R8\xfa\xb2\xfd\xf75\x8e\x9a\\߭3\xfe8\xe3\x01r0=\xb3\xff\x18\xec\x1b'\u007f\x00\xee\x8d|\xdb/\xa3oݹ\xa6\xc3\xc6\x13T\xc3\xf4\xf2>\x92\xb1ˍM\x00o)\xc8O\x8f\x1c\xbf<\xfe\xa0<ܡ[ɂ\xce\xd0\x1a\xe9\x89\xf5up\xfd\n\xcdZ3\x19!V=c\x10.\xe4Um\xf3$\xa0\xeeB}-\x87\x83\xf9\x84\x95\xc7\x12 >\xd0\x15\xa1J\x96\"w\xb1\x87:(\xf5f\r\x1d\xd7R\xa4L\xd9G\xbf}\xa5\xa9\xaa\xa6-\xa6\t0A^\x8c_|\xf5\xb9\t~\\ɚ\xe0O,\xfc\xdc\xe0[\x1f\x14\v\xa1e{OL\xbc\xf1.ֺ\xc3zR\xd9I\x17\x03B \x0f\x8a\x19O\xcd\x0fL\x039\x89\xf5\x9a\x87!U\xb3\x96\xe5iۥ\x97Ի\xbd_\xd1S]N\x9eA28\x86\x9e\x80\x1edB]\xbex\x9d\x0e\xb3C\xac4\x91~\x94\xd2\xe9\xe3\xc4\xcd\xe6\xd8U\xbd:\xfd\xa0\x87\xc4o\xd9\xe5c\x91\xd09\xae\xb5m\x97\x8f\x05E\xaf\u007fQ\xef_\xca9\xa9E\xf8\xf6\xfdK\x80\xbb]-\xf8\v\xcc\xe92I\xfei\xb6`\x9c*\x8e\xa9e\xb7\x0e\x93dR\x1a\x02bɔ\x14I\xb7/\bYRŰڸ\x02\xac\x05\x99\x81&_\x9e\xbc\xbfx\x87\x19\xda)\x85\xbb\\\x99N\xbf?\xa5v\xe5\xc5\xfbb\xb4\xb1\xc8\xf5CP\x93t\x02\\w\b\x02>-e\xa2\x06\x10\xf0K\x13R\x95\bY\x94\xa6\xa4\x1c\v\xb6e\xbc\xd4l\xf9!eQ\xaa\xe5X\xe9ڿ \xc3ї\f|͢\xf8\xcdZyĚ\x91oT \x8cN\xd8@e\xb0\xaepۙV\x13IǡAU3I\xd8;\xd4}\xf5Tw\x85\xd0\xf7|\x8bM]Z\xcb6X\xd0\xd9Gp\xad\xc7\xd2t\x14UF\xd3c\x1c%\xfa\xbc\xcf\xfd\xa6\xdeV\x8bݛ\xbe\xe7\x9a\xf3:.\xe8#&TR<\xae{\xaePNq\x16\xe4=pP2\x88\xa5\a\xcaLuߔ\tf\xa2;K\xa0\xe1\xe4\xea)\xefG\x00Q[\xbf\xf7\xbe\xec\xf9\xe0\xd3\xdb\xf6\x14\x99\xed$\xab'g\xb1\xeb\xfb;^f\"\xe3e\x0e\xafx\xa9\r\xa8w\xa0e\xa9:\xa3\x1fk\xd1\xe5η\x1a\x97J\x1f|\xc0)s\x8f\x8ct&\x8bN\xf6\xa0\xea\x97+}\xc6O*\x0f\x05'\xf0~ru\x93\xc6U\xf6\xd2F*\xd8RY[\x94\x9c\xaf]j\xec\xec\x9b`\x9f\xb3\xdaɖ\xbb]\xbb\xec\x870EkH\xea\x82\ue372\xc6\v.\x01_s\x96\xa1\xc3^\x84?\xb8\xff\xb2\xb3\xf6\x1f\xe9X\xa1\xdbK\x97\x84\x8ayY\x18\x9d=\xc3\xe4\nQ\u007f\xc1UPp\x1f\xde\\\xfeV\xa7\xe0\u0383\xb4\x17Һ\xe80L$\x92\xc8\xea\xe7\xd7\x10\x16(g\x1f|m\x92M\x13c5\r\xfa\xe7&4\xbb/\x8bO\v}\u0601\xfa\x168\xea\x06O\xa0\xee\xbb\xe6\xb3\x0em\v0t\xf9b\xdc\xfe\x8b\xb5\xad\x197\x98\x85ܩ\x9a=\xb8LH\x8b5w\xe1,gK\x96\x97\x94\xb7(\xb0\x81\xb3\x1a\xb5x!\x95\xf1\xae\x04),\x89\xeb\xdfoḺ0\x18}Vw{\x81\xd1\xf1c\xd5o\x9f\n\xdb͂\xdb\xeeŵW\x1c\x16}\x1c\u05f7\x03\xd7\x01\x8f\x9e\xb5[\xfbak\x9a\xed\x9d/H\x18\x9eÕ_\\\xbfަ\xde\xectٷ\xa6z\xb1c:\xfe\xccT\x1b\xbe\xab\v\x83W\xc4\xfc\x9d/}F(\xb9\x87ՙK~\x15\xbe\f\xbd\a\xe2\xba\x06{\xb5\xe1\x1e\xb6\xab*\xf6e\ao\x1bb\xf6q\xe0\xdf\xc3N\xdfW\v\x1d\xf7\xb0\xaa\xc2\xee\x88\x17\xfbC\b\x80֨\xf0m\xdcw\xcb\xfe\x9dQν\U0010d035\xbd\xa7_\xa1Y\x81%>G*v\r\xc7ڷj\x96B\xcfY\xf1Tr\fŔm9\rد\x9a\xf7:\xf0\x8e\xfe\xae\xc4\x19\xb9\x96\xc6\xfe\xcf\xe5#\xd3O\\ȱ{\xf9Z\x82\xbe\x96\x06\x9f\xee\x8d\x1c7\xb5\xbdQ\xe3\x1eG\x92\x16\x8eG\xe2%%\xfcF\xb5̫\xa7\xef\xbfW(f\x9a\\\t˨<\x0e\xaaˊڃo\xde1D\xae\xb6[\x13u\xdfn\xc1wh\xb5\xdfhb\xae\xf9\xa9\xdd(oM\xc3M\xc1y\xb4\xdd_0A\xbb\xe04\x83\xdc\xf7\x99\xb0\x1bo\x1450c\xbb\xdb\x0f,@\xcd0\xd1 \x9b\xefZ\xd5\x1e\xa1\xc3=\x15\xefC\xa8\xc8\xdbYͨB\xfbs\xa8\xd0^\x86\xa0\xf8܂\x8d\xd0I\x8c\xf2\x9b'9ړ\x18۔E\xee\xd3^\x98\xd3\xc2R\xfe\xffX\xf6\x8cD\xf4\xbf\xa4\xa0L\xe91\xb9\xf07T\xb6|\xb7\xf9\x86\xd7u\x9a\xc0-\\\xa6\x89݅%\xe5\xe0\n\x15SA`g\xf9\x159ݐ\x96g\xe4a.5J\x86:\x88tt\x0f\xab\xa3\xb3\xd6\t\xd9\x02\xd1>|%\x8eΪxY\xebPVr\nC\x18G\xf8\xb7\xa3\xf1\x86\x80\xdd\x02\xfb\t\xb1\xbb\x93Jv\xfc\xb1Һ߸Ԧ͝ߗ>v\xd2\xc6F\x05\xc6\xe67[\xc4\xd1T\x8e[fE\xd7'\xa9\x9a\x81\xe92A\xbcƌ\xa9\fcr!V\x1bp\xf1b\\\xa7\xca퍸\x8aΊV\xfb\"li\x89\x19\x12\rP>qIw\x1b\xc2\xf6\xc1\xcd]۱)(@\xd5\x12\xaee\x0e7Ru\xe5w\xb4\xe35\xeb\xcfwX\xb4\r\xa4H\x9ec\x9e=>\xda1_ԍ\xbd^|H\xe3\xd3\u007f\xff\xe6\xfdS\xebyW=\xb8{!\x14{k\xb8\xfd\xeaX\x87}\xdfݵ\x11\xb4\xd0si\xc8I\xb8ԞqY\xe6\xfef\xbf\xea\x88\xf7\xf4X\xa5\xce搗\x1c\xba\x9b\x0en\x94\xa9\f\x8f\x06ݯ\x14\xec\x9fe\xbbEo\xf0P\xf9\xa7\xbb\x0eB\x8d\x93ʴnxT-;\xfa\v\xeeg\xf8\x92\xb7\"=\xe4-\xa9\xf0M\x90\xee,Hm\xf0\x9e\x920\x8d\xa2k\xc1\xec\xcc|{\x0e\xffx\xe75\xbb\xb0\x86mǡ\x83}t\vב\xff\xeaFD|˱r\xb9\xf4m\x18]4w\xebr\xee3Z\x98R\x85\xf6ץ\xc2~`u\v\x13\x1a0\xe7Q\xd4\x02\xbb\xdd0\xf0~A&\xc5\x1d[\x806tQ\x18yw\x0e\x88\x0e\xa0wh\x9c\xa8%\xc6\x02\x02\x1c\xcc\xf7\x9dJE\xb0\xab^5\xf5M\x8a\bW\xc7sj`\xd4y\x93p\xaf\x93\xd8)u\\\x8f\xdc'\x10|\xe9\x1a\xe9\xa2\x04\xca0O\xccn/\xe7\xee\xedp\xf3\xc0_\xf5{\x00\x05d\x06¢\xb8\x93\xe3xUֵz\xb2\x88\xf5'\xb8r\xe0ܹ\xeeX%塅/V\xc0\tRe\xab\xcb\f\x1f\xe9\xbce\xb5\xeb\x02\xbd\xbf\xf1\xf1\x0e\xa8\xee\xca[j!\xe2\xeb\xe6\xb3\xdeVq8\xc0\xa5g\xd4\xf5\xc9s\x1dK\x99\x82N\xd2\xf7S\x92\xf8\xe5\x883NH1\xa7\xfa)vyc\x9f\xa9Zr5\x0ee\xc5)\xdfm\x99\x13\x88r\xb1\t|D\xae\xe1\xa1\xe3ׯ\x91\xe8\xdf\xfb\xb6\xca\x1dGiD\xaeč\x923\xd5U%v\x14\x0eV\a\x85\x8c\xc8\rU\x86Q\xceW_ww\xa3\t_\x8f\u009d\x9fʓZ\x82{\xacVD\x99p\xe7\xcfR*\x9d\x84^\xd5~c\x8fuM\xc7\x1d\x9b\x1c>:\xb6F(\x04G\x05k\x03\xc5\x14,mF0\x9dJe\x9c\xe2;\x1a\x116\xf5\xfc\xb3K\xf9\xa0\x8c\xa3\n\xe7\x82h\x84\x99\xda@\xac\x04\x92T\x84\x8a\x15QH\xac\xd8\xfakAW\xce\x05O\xb3\xac\xb4\xc7\xf3\\\x1b\xda%gz9\xe4Ш\xf4D\xb6\xc5\xdak\xfb\x82\x9b\xcfW\xdd\xf7\xab:%\bΡ\x0e;e;ΰ\xb5\x1a\x18\xde\xea\xaftPmOY\xb7%\xf2TQ\r\xbc\x13y\xb5\xdd@n\aܪ\x87\xc3\x02ܕʍeȦ\x8a\xbcݝ\xc8tx\xd5\xeeY6NJzf\xaed9\xabڥoc\xa0\xdb܊%^\xfa-x9\xb3d\xed\x1d}\xa6T\xa2a\xbdx\xd7_^Ow\x17\xd0\xdd(ܡ\xbb\xeb\x96\xc4{J\x01l=\xdcO\xb2W\xd7\xdd?]\x89\xbc\xacX\xea\xe5>\xb2\xf9\xfd\xda\xe3k\x81\x14+\xa5k\x88^\x9ev \xe7\x84M\x9d\xd74\xb3\xb3\xdeL\xde\xf9\xc0\x01\x91\a\xaa\x04\x13\xb3\xa7\x16\xff\xbd\u007f\xacC5\xf1\x10:\x94\x93\x8eET\xeaJ\x94r\x12&\xb9%קRXz\xa8'\x9dgh\xe3G$企d\xff%\xffK\xadֻ2\x17>P\xe9p{\xcfD\xfe2$\x04\x16\xbcT\x94\xfb\u007ffR8\xb6\xa0_\x92\x1f~\xfc\",\xe8=(]\xfd\xf8\xff\x03\x00\x00\xff\xff\xe2w\xf4\xcch\xec\x01\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec<\xcdn\xe4\xb8\xd1w?E\xc1\xdfa\xbe\x00\xee\xf6\x0e\xf6\x12\xf86\xeb\xf1\"\xc6Nf\acǗ \a\xb6Tm1\x96H\x85\xa4\xda\xee\x04y\xf7\xa0\x8a\xa2\xfeZjQ=\x1ed\xb30/vKd\xb1\xfeXU,\x96x\xb6Z\xad\xceD)\x1f\xd0X\xa9\xd5\x15\x88R\xe2\x8bCE\xbf\xec\xfa\xe9\x8fv-\xf5\xe5\xee\xfdٓT\xe9\x15\\W\xd6\xe9\xe2+Z]\x99\x04?\xe2V*\xe9\xa4Vg\x05:\x91\n'\xae\xce\x00\x84R\xda\tzl\xe9'@\xa2\x953:\xcfѬ\x1eQ\xad\x9f\xaa\rn*\x99\xa7h\x18x\x98z\xf7\xc3\xfa\xc7\xf5\x0fg\x00\x89A\x1e~/\v\xb4N\x14\xe5\x15\xa8*\xcf\xcf\x00\x94(\xf0\nl\x92aZ\xe5h\xd7;\xcc\xd1\xe8\xb5\xd4g\xb6Ąf{4\xba*\xaf\xa0}\xe1\a\u0558x*\xee\xea\xf1\xfc(\x97\xd6\xfd\xd2{\xfcIZǯʼ2\"\xef\xcc\xc7O\xadT\x8fU.L\xfb\xfc\f\xc0&\xba\xc4+\xf8LS\x95\"\xc1\xf4\f\xa0&\x8c\xa7^ը\xef\xde{\x18I\x86\x85\xf08\x01\xe8\x12Շ/\xb7\x0f?\xde\xf5\x1e\x03\xa4h\x13#K\xc7\xec\t聴 \xe0\x81\t\x04S\x8b\x02\\&\x1c\x18,\rZT\x8ez\x94\x06W\x01ô\x01\t\xa0\r\x94h\xa4Ne\x02?\x89\xe4\xa9*\xfd`\x9b\xe9*Oa\x83`*\xb5n\x06\x94F\x97h\x9c\f,\xf4\xad\xa32\x9d\xa7\x03\x8c\xdf\x11Q\xbe\x17\xa4\xa4+h\xc1e\x18\x18\x83i\xcd\a\xd0[p\x99\xb4-\xfe,\xfe\x1e`\xa0NB\x81\xde\xfc\x1d\x13\xb7\x86;4\x04&`\x9dh\xb5CC\x1cH\xf4\xa3\x92\xffl`[p\x9a'ͅ\xc3Z\xaem\x93ʡQ\"\x87\x9d\xc8+\xbc\x00\xa1R(\xc4\x1e\f\xd2,P\xa9\x0e<\xeeb\xd7\xf0gm\x10\xa4\xda\xea+Ȝ+\xed\xd5\xe5\xe5\xa3ta\xa9$\xba(*%\xdd\xfe\x92\xb5^n*\xa7\x8d\xbdLq\x87\xf9\xa5\x95\x8f+a\x92L:L\\e\xf0R\x94rŨ+^.\xeb\"\xfd\xbf Q\xfb\xae\x87\xabۓ~Yg\xa4z\xec\xbc`\x85>\"\x01\xd2l\xaf0~\xa8\xa7\xa2e4=\"\xee|\xbd\xb9\xbb\xef*\x93\xb4C\xee3\xdf;\x1a֊\x80\x18&\xd5\x16\x8d\x17\xe2\xd6\xe8\x82a\xa2JK-\x95\xe3\x1fI.Q\r\xd9o\xabM!\x1d\xc9\xfd\x1f\x15ZG\xb2Z\xc35\xdb\x0f\xd2êL\x85\xc3t\r\xb7\n\xaeE\x81\xf9\xb5\xb0\xf8\xdd\x05@\x9c\xb6+bl\x9c\b\xba\xa6o\xd8\xd9s\xad\xf3\"\x98\xa9\ty\x855~Wb\xd2[24Nne\xc2\v\x03\xb6ڴ&\xc0v\xadYh\xe3\xab\x16j\xd3C݇ϏZ\x9bk\xa3\x15\xe0\vɾ]ͤ;\xcf\x19*Za\xa6R\x84\xe7\x01L\xa8M\xcc\xfa\xe0\xcd\x047\xf9\x15\x16%-\xd7\x19\x14\xef\xebn\x84\"\xf1(mܑ7(ؘ7][580*<]\x86į\x9dLk\xabq\xc0\xcd\xe3\x1c\xf5\x88mE\x95\xbb\a\x9dW\x05\xda{\xfd\x15\xad\x93\xc9X\xcf\x01\x11\x1fG\a\x06y\xa3%\x0e\xbb\f\r-N~\xc1\xf6n\x14.\U0001ac58\xb2\xc9\x13O\b\x026\x9e\x03d;\xf3\x1cJ\x9d\xc2\xce\xcf\x04\x9b}@\xfaP6\xad|6Z\xe7(Ƹ\x86/I^\xa5\x986.o\x94/\x03jo\x0e\x06qp \xa4\"-#WL\xa8\xaa\xe6\xed\x04\x9d쯄A C!\x95\x87\t\x92U\xb0&y\x9c(鰘\xc0\xf3\xa8F\xfaFA\x88\xd8\xe4x\x05\xceTc\xba\x1e`\bc\xc4\xfe\b\xcfB\x00\xb5\x84e͘ڜ\xe72AbVc\xb4\x99k̚\t\xfa\xfe\a\x19\x96i\xfd\x14ä?Q\xbf\xd69A\xc2q*l0\x13;\xa9\x8d\x1dF8\xf8\x82I\xe5pj\x1d\t\a\xa9\xdcn\xd1\x10\xac2\x13\x16m0)ǘu\xdcDP3\xc7\x05\u007f@W+t\x12\x1esc\x8a\x146œP\x81\x11'\x8b]\x95 U*w2\xadD\x0eRY'T\xe2\xe9\x13\r~\xe3\xf4\xc1\x9cB\x1c\xe0\xef\rp\xa0\x82\xa4\xd4\xf3lZ!\x85\xa3\x856\xe3\xca\x11\xda!\x98i6l\x04Y@=\xe5\x8e\xdaf(\xa2\xafQI٥\xb6v碕\x94\x0f\ns\xb1\xc1\x1c,\xe6\x988m\xa6\xd9\x13\xa3\x04\xbe\xc5\xda\xcf\tΎX\xd2\xd6g\x90\xa2\xce\x1aѶ9\rϙL2\x1f\xbf\x91\x961,H5Z\xb6\x18\xa2,\xf3\xfd1\xa2!F3\xea\xc9\xe6\x8cF\xdb\"\xcc\xc7\x10\xee\x94!i[\xa4\rnی5\xees\xbdQ\x9b7\xa6\xf7\xd0Tߤ\xec\xb7\a\xc3__ىݒ\xf6w\xb7[\xc0\xa2t\xfb\v\x90.<\x8d\x81J\x01V\x8b\xc7\xefLp\xa7\xad\x96\xdb\xe1\xe8W_-\xaf\"\xb5\x06\x8d߉\xd0\xd8Y\xddվj\x91\xc0>uG^\x80\xdc6\x02K/`+s\x87\x1cK\xcd!\xda\ttf%\xf7\x9a\f\x8a\xf5\xbd\xd4\n\xe1\x92\xec\xa6\xd9\xd2F\x8c\x18\xf0j\b\xc0\xc7\xe5a\x0f\xc32\x88\x00\tMP\xc1Y\x10i\xb0\xf0ٕ{^\x1f\xed\x13\x8e\x00?|\xfe\x88\xe9\x1c\xcb ^S\x0f\x88\xfa0\x88t\xba(0\x81Q ;Dq\x98\xd6\xec\xf1|\x0e\xed\x02\x04<\xe1\xdeGV\xa3\x9b˱F\xa2\x15\rH\x83\x9c\xd0c3\xf2\x84{\x06Ug\xe8\xa2\xe0-Q\x15ߞp\x1f\xdbu\xc0T¯\xceQx\xee\xd2\x03\xa6\"f)\xb5\xadaj\xbdv\xc0\xe98ba\x99Q\n-p\xfcD\xb2\x1b\x81\xf5\xd2\xd2O\xb8\u007fg\xbd\xf8h\xd5d\xb2\\\xc0\x012\xd8`\x91WX\xc8\xc7>\x88\\\xa6\xcdd\xbcN\x16@\xbcU\x17\xf0Y;\xfas\xf3\"-\xa1\xa8R\xf8\xa8\xd1~֎\x9f|W\x16{\"Nd\xb0\x1f\xcc\xcbRy\xb7@|Y4\u007f\x8b\x03\xbbPR\xd1Fl\xd2\u00ad\xa2\xfd\x99\xe7\xcf\x121e\x18\x90\xf3h\x15\x95匮\xd2j\xc5n:̶\x00h\x17\xafZT\xda\xf4$u\xb1\x10\xe2(\x8a5z\xf7\xe4\xad\xfc\x9b\x83\\\xf8\xb1f\xb0\xccE\x82)\xa4\x15\xe7\xdb9\xf1.\x1c>\xca\x04\n4\x8f\b%\xf9\x8dx\xa5Z`\xc9};A\v\xe3C\x8b\xd0j\xb7\x90\xc6!\xb6\xa2U\x1f\xd93\x889\xaa\xfbD\x96\xfdx\xf78*ٽs<\x14\xc5}\x91\xa6\x9cz\x16\xf9\x97\x85\x9ee\xa1\xbc\x0ec\x10\x8f\xa4\x0f?\n\xc1\xc9\xde\u007f\x91{e\xf5\xfew\x9c7\x14\xd2\xd85|\xe0\xc3\xcd\x1c\xbb\xe3C\x96\xb03U\x14H\xc2DZ =ى\x9c\xc2\a2\xde\n0\xf7\xc1\x84\xde\x1eDPq&\xe69\xd3\xd6\xfb\xfc\xadĜO\xb7Οp\u007f~q`\xbd\xceo\xd5y\x1cL\xb2\xf9\aF\xab\x89Z\xb4\xca\xf7p\xce\xef\xce90[\xb2DN\b\xde\x16hutW>~^\xb2\x15\xa0\xbdv\x88ZhpsHK!\xfc\x1c\x15\xd1:]j\xeb\x16\xa1\xf5E[\xe7\x13\x80\xbdp{$C\x18\xb3\xfb\xab\xb3\x86 \xb6\x0e\rX\xa7M8\x10%\xb3;H\x90\x93\xe4\xed\xbc\xecI\xd4M6\xd2\x03\xa6M\xe6yk!\xbcM?\xf7'\xa5\xf4\xff<̄\x83%\x86]\x1a\x9d\xa0\xb5\xf3\xaa\x14\xe99f\x12\xb6M\xb2V\xf8\xcd\xdb6\xca4Ǥ\x92C[\x16\x8a\x13kO\xd8\xd8ܼt\xf2\xced\x86\xe8w\x8c*\x9f\x82#p\xd1KQ\x88\xe1\xe1|4\xba\xd7~tX\x8050\xbfa2\x8f\x15\x1b\x95eqs\xad\x92\xbf\xb5\xc0\xa3\x90\xea\x96'\x82\xf7\xdf-X\x81`\xca\xf1ԭ\xccu\x18\xdf\n\xa4y\x10\xbb\u007f\x85pԬ\xf9\xac\xc6`O\xb2\x87'\x19\xf1\x92\x02\n\xa6\x95v\xdddM=\xd3;\v[i\xack\x11^\x00UZ>N\xfe\xbe{Luc\xcc\xc9[\xcc_\xfd\xe8NZ1\xd3\xcfuaĒ\x8du`~&v\br\v\xd2\x01\xaaDW\x8a\x13^d.h\x9a\x05\x10\xbd\x10\xbd3\x89\xf4\x99\x9d\xc1\xaa*\xe2\x19\xb2b\xed\x94j6;\xd6\x1d\xf2\xb3\x90q\xd9)8M\xacN\x16\xa8\xabY\xd7\u07b6~e\x87\x1fݫ\x80)ċ,\xaa\x02DAbY\xb2o\xdc26M\xb9\x8c\x97\xf5\xb3\x90\x8e\x0f\xfd\b6\x89g\x995MtQ\xe6\xe8\x106\xb8Ն큕)6\xe1C-\xff\xd1z\x93\xa9&`+d^\x99\x056z\xb1d\x96\xee\xdbj\xf3\xf4\xfa\x9b\xb1xDV\xcc\xccȤ\xfb\x82\xa0y\xde\u007f\x94fY\xc8\xfc\xc5\xe0뇦\xa5\x91\xa4\xa5z.:\x9d\x85\xc9\xd1k?:\xad\x95W\xa8\xfdTx:\v\x951y\vO\x9b\xf6\x16\x9e\xbe\x85\xa7o\xe1頽\x85\xa7o\xe1\xe9[x:\xde\xde\xc2\xd3N{\vO\xa3\xfdG\f\x86\xfe\xab\xa3#\x1d\xa2\xb0\x8a,\xc1\x98C{f\xae\xba\xd2\xe8:\xaf\xacC\xb3\xa4B\xfav|\xe4H\r}⻬\xf8k\xad)\xadiKWZ\xa7הLӒ\f\x8b\xc9\u007f\x8b\x11\x11\x85G\x97AOW\xdb\xc7\x16\xd0͕\xcd\xf5kǛr5\xff\xdf\x04C\x9c\x0e\xd3\xd7\xd2\xf3\xdf\xf8tk\xae\xfa\xb5o\xbc\x0f\b\x18\xff&\xeb\xca#\xcb\xdaf\x8aَ\x17\xe2Oy\xf8\xc0\xcb\xc1\xe1B\x9f\x99\xa6W\xf8\xfd\x9b\xe6eD\xb5\xd9t\x8dY}j\x89N\xecޯ\xfbo\x9c\xae+\xce&({\x96.\xf3\xdf\x1f\xd1\xd6U=v\xcbڃ\x9e\xd6\xdf\xfe\ry<\x01Q\x1bP2\xf7\x02\b\x10z\xec\x87_K\xbfE>y\x9d\xcfo\xd4\xe2\xebҖV\xa35\xf5C\xf3^\xe5\x1bjЖ} 0[o\x16\x834\xc4T\x99\x8d\u05cf\xcd@]R[\x16\xbb\a\x8f\xa8#\x8b\xaf\x1e\x8bc\x0f\xf0\x17\xbb\xb15c\xd1Q[l}\xd8\xf7\xa9\n\x8b\xac\x05\xebTx͂<\xb1\x02,\x9aaq\xd5^\xd15^\x9dʭyn\x1d\xa9\xec\x1a\xafך\x059V\xcf\x15S\xa5\x15\x85ktmVSq5\x9fI\xfc\xa6\x8a\xacׯ\xfd~\xcd8\xffx}UTUU\xd4^`\x1e稺\xa9\xa5\xd5RQ\\]Z\x19\xd5T=\x1d\x998\xaa\x1e\xea\xb0\xd6\xe9\x18)\xb3UP\xd3\x15N\xc7\xc0\x8e\xd5>E\xd45\x1d\x01٭xZ\x1c\x06\xccj\xd3L\x87\xf1\xaf\xeaC\x9b\xf7\xb5\xf9\u007fC\x03\xbf\x95hmR4\xb3\xbb\x92%\xa8Ϣ\xdd\xcfW\x0e\xe6\x1f|\xae\x13>&\xa7^\xdd\x1d\xcfT\x14\xa5\x9b\xcfG\x12\xf8E\xaa\xd4k\x12-\x96NL\xc37Tp\x81Y\x13fMWܶ\x11\xed`\xb7e\xb1\x14d\xd4S\xd8\xec}VȮ\xe1F$Y\xd3q\x02\"Ϝ\tK;\xfbB88o\xb6\xb1\x97a$=9_\x03\xfc\xac\x9b\fB\xe7\xf3\xd0\t\xb8V\x16e\xbe\x87\xca\"\x9c\xf7\x01}\xdb.lRw\xac\x12\xa5\xcdt\xb8I b#v\xd7\x1f1\x92/\t\xf7\b$\xb9\xae\xd2f\x86#\xe2\x16j\x0f_\x1e8\x92㯧\x93\xf6+\xf3:R\v\xfb\xaa\xc1G\xe8\x13 \xa7.\x8fXIJ鬊uڈG\xfc\xa4\xfd\xbd\x1a1<\xeb\x8f\xe8]\xadR\xdbՐc\xad\x8b&'5\xd9\xd36\x04\xd8\x1e\xbdԫ\xadMB\x11\xb6S&wf\x9d;\x97G\x10w\u007f\xff\xc9\x13\xe4d\x81돕\xcfp\xadJa,\x12\xa7\x03\xa1~\xd0f\xda\x12f\xfa\x19r]\xf3\xe1\xa7!\x1d\x06\xf9\xa8\x87\x93i'Q㯰\b\xea\x1bX\x17\xa3\xf2\x0f\xe3#;\x9b\xe5\x8e\x10\x8f\xe5\xc4\xf4v\x12\x96\xb0V'\x92m\x11\xa7(\xf8\x84\xe5\xfbݱp,\";b2*\x8b\xbf>+4_\xc3B\xb5\xb7\xcaKj\xe6֕\xbf\x1c\f\f\x02\x1e3\x1fd\xff\x06\xdd\xc7\xfc\x9e\xaa\x19d\xfd\xdd_ތ3\xe3\xc2=4\x87\xac\x9bY\xff\xd3k\u007f<\xa2^\x8d_\xfd\xb2jn\xa39\x8b\xe0\xacu\xc2U6\xe6\x82\x1f\xee\b\x89(]ej\xf7\x9aT\x86/\x9c \xe8\xefc8튟\\X\x17%\xcbOM\xc76\xc3`\x9d?\x8f\n\x06\n\x9e\x85\xe5\xbbs\xfciԨkn.\v\x9a\xbc=\xc7{\xd7+H\x85\xc3\x15\xc1?M\x9c\xa3\xeb\x80/蘡\xf4\v\xf5iN\xc7kF\xf3\xc0p\xb1\xc7\xdd\x14\xea\xe3ǝ+\xf8\x8c\xcf#Oo\x14\x11q\xb8\x19\xf5g\x9a\x98r\x86b\xecz\xb3\xa3$\xee\x9aQ|\xa0\xfc\xe8\xde\xfew~\xce?\xc2\xe5~\xfc3\xd1\xca\xc7\xd4\xf6\n\xfe\xfa\xb73\xa8}\xedC\xb8\xc1\x8f\x1e\xfe'\x00\x00\xff\xffa\r\b,+Q\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4V͎\xe44\x10\xbe\xe7)J\xcba/$\xbd\xab\xbd\xa0\xdc\xd0\xc0a\x05\x8cFӫ\xb9 \x0en\xa7\xd2mƱCU\xb9\x87\x06\xf1\xee\xc8vҝN\xd2̀\x84o\xb1\xeb端~REY\x96\x85\xea\xcd\x13\x12\x1b\xefjP\xbd\xc1\xdf\x05]\xfc\xe2\xea\xf9\x1b\xae\x8c\xdf\x1c?\x16\xcf\xc655\xdc\x05\x16\xdf=\"\xfb@\x1a\xbf\xc3\xd68#ƻ\xa2CQ\x8d\x12U\x17\x00\xca9/*^s\xfc\x04\xd0\xde\tyk\x91\xca=\xba\xea9\xecp\x17\x8cm\x90\x92\xf1\xd1\xf5\xf1C\xf5\xa9\xfaP\x00h¤\xfe\xc5tȢ\xba\xbe\x06\x17\xac-\x00\x9c\xea\xb0\x06F\x8aJ\xa2$0\xe1o\x01Y\xb8:\xa2E\xf2\x95\xf1\x05\xf7\xa8\xa3\xe3=\xf9\xd0\xd7py\xc8\xfa\x03\xa8\x1c\xd06\x99\xda&S\x8f\xd9Tz\xb5\x86\xe5\x87[\x12?\x9aA\xaa\xb7\x81\x94]\a\x94\x04\xf8\xe0I\xee/NK`\xa6\xfcb\xdc>XE\xab\xca\x05\x00k\xdfc\rI\xb7W\x1a\x9b\x02``*\xd9*\a.\x8e\x1f\xb39}\xc0Ne'\x00\xbeG\xf7\xed\xc3\xe7\xa7O۫k\x80\x06Y\x93\xe9%\xf1\xbd\x12\x19\x18\x06\x05\x03\n\x10\x0fJkd\x06\x1d\x88\xd0\td\x94`\\\xeb\xa9K9:\x9b\x06P;\x1f\x04\xe4\x80\xf0\x94(\x1f\"\xab\xce\"=\xf9\x1eI\xcc\xc8Ơv\xa9\xbe\xc9\xed\f\xeb\xfb\x18N\x96\x82&\x96\x1dr\xf24P\x82\xcd\xc0\x00\xf8\x16\xe4`\x18\b{BF's\x94\x89\x9f\x16\x94\x03\xbf\xfb\x15\xb5T\x03\x0f\x1c\x93\x15l\x13\xab\xf5\x88$@\xa8\xfdޙ?ζ9\x12\x12\x9dZ%c\x9d\\\x8eq\x82䔅\xa3\xb2\x01\xbf\x06\xe5\x1a\xe8\xd4\t\b\xa3\x17\bnb/\x89p\x05?y\xc2Df\r\a\x91\x9e\xeb\xcdfod\xec:\xed\xbb.8#\xa7Mj \xb3\v\xe2\x897\r\x1e\xd1n\xd8\xecKE\xfa`\x04\xb5\x04\u008d\xeaM\x99\xa0\xbb\xd4yU\xd7|EC\x9f\xf2\xfb+\xacr\x8a\x95\xc5B\xc6\xed'\x0f\xa9!\xfe!\x03\xb1\x1dr}d\xd5\x1cŅ\xe8x\x15\xd9y\xfc~\xfb\x05F\xd7)\x19s\xf6\x13\xef\x17E\xbe\xa4 \x12f\\\x8b\x94\x93ؒ\xef\x92MtM\xef\x8d\xcbե\xadA7\xa7\x9fî3\xc2c\xed\xc6\\Up\x97F\x11\xec\x10B\xdf(\xc1\xa6\x82\xcf\x0e\xeeT\x87\xf6N1\xfe\xef\t\x88Ls\x19\x89}[\n\xa6St.\x9cY\x9b<\x8cc\xeeF\xbeV\xba{ۣ\x8e\x19\x8c$Fm\xd3\x1a\x9d\xda\x03ZO\xa0\xd6T\xaa7!I\x1a\xff\x12\xcb0I2\x9a\xd9|\x89\xfd\xf9:\x9a\xf5q\x92^\x0e\x8aq~9\xc3\xf4\x10e\xe6\xfe\xadiQ\x9f\xb4\xc5l\"O\x13|\x1dJ<\xe8B\xb7\xf4Y\xc2=\xbe\xac\xdc>\x90\x8f\x935\xcd\xf5\xebs\xa36 \xffo\xf6\xc6-\u009dG\x96\xa5\xd2?l:\xaa'\x03z0\x04\x14\x9c\x8b}\xbb\x98\x90\t\xc8|\x92/d\x8c`\xb7\x82f\x15\xcfg\xd7\xfa\xb4\t\xa8\xe8XI\xee'\x1c\x92=\xf8ɸV\f\xde\xceu>\xcb\xe1\xf5&B\xf3I\u007f\xd2\xff\xa6\x1cǍ!\\\xf5]&T\xab\x0f\xd1\xe3\x1a\xe3\xeb\xfd5\xa0\f֪\x9d\xc5\x1a\x84\xc2R;\xeb*\"u\x9aW\xcdXj\x97}\xea\x95\x02Z(\xc4>y9\xa0\xbb\xd5\r\xf0\xa2\xe6S\xfe\xca3\xecN\xb7T\xef\xce\xcbᲥr\xe9\xd6\x10gw)f\x85\xb37\x91\xb2\x9a\xbd\\ҫ\x9bǂ\x90\xedTv\x9c\x19W\xad1.\"\xcb\x18nBXM\xf6\xe22\x99o&\xe1\xb1xR\xfbi\xc0\x1cv\xe7?\xfd\x18\xc80\x92\xe1Ͽ\x8a\xcbt\x8e\xcb\\/\xd8\xdcϷ\xe0w\xef\xae\xd6\xd9\xf4\xa9\xbdkL^\xe2\xe1\xe7_\x8a\xec\x18\x9b\xa7q\a\x8d\x97\u007f\a\x00\x00\xff\xff!\xec@\xb2>\f\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4VM\x8f\xdb6\x10\xbd\xebW\f\xd2C.\x95\x9c \x97B\xb7\xc0\xed!h\x1a,\xe2ԗ\xa2\a\x9a\x1c\xd9ӥH\x963t\xbb\xfd\xf5\x05)j\xfd\xb1\xf26\v4\xbaq8|\xf3\xe6͇ݴmۨ@[\x8cL\xde\xf5\xa0\x02\xe1߂.\x9f\xb8\xbb\xff\x81;\xf2\xab\xe3\xdb果\xe9a\x9dX\xfc\xf8\x19٧\xa8\xf1G\x1cȑ\x90w͈\xa2\x8c\x12\xd57\x00\xca9/*\x9b9\x1f\x01\xb4w\x12\xbd\xb5\x18\xdb=\xba\xee>\xedp\x97\xc8\x1a\x8c\x05|\x0e}|ӽ\xeb\xde4\x00:by\xfe\x85FdQc\xe8\xc1%k\x1b\x00\xa7F\xec\xe1\xe8m\x1a\x91\x9d\n|\xf0b\xbd\x9e\x82uG\xb4\x18}G\xbe\xe1\x80:\xc7\xdeG\x9fB\x0f\xa7\x8b\t\xa2\xf2\x9ar\xda\x16\xb4ME\xfbXъ\x83%\x96\x9f\x9fq\xfaH,\xc51\xd8\x14\x95\xbdɬ\xf80\xb9}\xb2*\xde\xf2j\x00X\xfb\x80=|\xca\x14\x83\xd2h\x1a\x80*O\xa1\xdc\xce\x02\xbc\x9d\x10\xf5\x01G5\xe5\x02\xe0\x03\xba\xf7w\x1f\xb6\xef6\x17f\x00\x83\xac#\x05)\"/'\x02Ġ`f\x02\u007f\x1d0\"l\x8bj\xc0\xe2#r%\xfd\b\n0\xf3\xe7\xee\xd1\x18\xa2\x0f\x18\x85f\x81\xa7\ufb3dάW\xbc^g\xea\x93\x17\x98\xdcW\xc8 \a\x9c\xd3GS\xb3\x05?\x80\x1c\x88!b\x88\xc8\xe8\xe4T\xae\xd3\xe7\aP\x0e\xfc\xee\x0f\xd4\xd2\xc1\x06c\x86\x01>\xf8dMn\xc7#F\x81\x88\xda\xef\x1d\xfd\xf3\x88\xcd \xbe\x04\xb5J\xb0V\xf6\xf4\x91\x13\x8cNY8*\x9b\xf0{P\xce\xc0\xa8\x1e b\x8e\x02ɝ\xe1\x15\x17\xee\xe0\x17\x1f\x11\xc8\r\xbe\x87\x83H\xe0~\xb5ړ\xccc\xa5\xfd8&G\xf2\xb0*\x13B\xbb$>\xf2\xca\xe0\x11\xed\x8aiߪ\xa8\x0f$\xa8%E\\\xa9@m\xa1\xee\xa6n\x1f\xcdw\xb1\x0e\"\xbf\xbe\xe0*\x0f\xb9\x8bX\"\xb9\xfd\xd9Ei\xf7g*\x90;}j\x84\xe9\xe9\x94\xc5I\xe8l\xca\xea|\xfei\xf3\x05\xe6Х\x18\xd7\xea\x17\xddO\x0f\xf9T\x82,\x18\xb9\x01\xe3T\xc4!\xfa\xb1`\xa23\xc1\x93\x93rЖ\xd0]\xcb\xcfi7\x92\xe4\xba\xff\x99\x90%ת\x83u\xd95\xb0CH\xc1(A\xd3\xc1\a\ak5\xa2]+\xc6o^\x80\xac4\xb7Yد+\xc1\xf9\x9a\xbcv\x9eT;\x1f\xb0\xba\xc4n\xd4ky\x927\x01\xf5\xc5\x00e\x14\x1a\xa8N\xf6\xe0㕮j\x9e\xf3e\xbc\xee\xc2}y\xc0a\xda\xf1\x03\xed\xaf\xad\x00ʘ\xf2\v\xa1\xec\xddͷ\xcf\b\xb6\x90\xf7\xbaDʍ:\xf8\x98\x19\x1d\xc9`l\xe7<+\x93\x14k\u0084\xd6p\xf7\x04\xf2\x86\xe65\xc9\x02\xf9\x94\xe6\x05\x8f\xbbꖙd\xa1\xe7gӆº0\xcb\xfaT{\xbc\xc5`!\xe3\xdc\xe1\x14\xf1jV\xdb\xc7\x00_\xd5;\xa2$\xf1˻\xa7<\xab\x9e\xbb\xdaA:ňN*\xe6¦\xfd\u007f:(\x1c\x14\xe3\u007fh\xbe\x1c\xe1.\xbf\x9c\xcb`i@\xfd\xa0-N\x80\xe0\x87\x85n{\x11\xe5\xfc\xa1K\xe3Sn-\xbc?*\xb2jgq\xe1\xeeW\xa7n\xde\xde,\xfeb=\x9f\x189\xafSӃ\xc44a\xd7.\xab\x96S\xf5\x95\xd6\x18\x04ͧ\xeb\u007f=\xaf^]\xfcq)G\xed\xdd4\xac\xdc\xc3o\xbf7\x13*\x9a\xed\xfc\x0f$\x1b\xff\r\x00\x00\xff\xff2\x1e\xaa\xc01\n\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec<]o#9r\xef\xfe\x15\x05\xe7a\xee\x00K\xbeE\x1e\x12\xf8m\xd6\xe3E\x84\xdd\xcc\x19;\x8e\xf3\x10\xe4\x81\xea.Ib\x81F\xaf\xa5\xbe\xb2\x15f4\xd7\xde躺\x83\xf6\a?$\xe0\xe1\xd7\xf0#\x8f\xe6\x0f\x85\xb4\xee\xe7\xce\xc7_\xa4u\xfcCU\xd4F\x14\xcdL\xfc\xcdJ\xb5\xaf\va\xe2\xd7+\x00\x9b\xe9\n\xef\xe03MQ\x89\f\xf3+\x80\xb0\x1c\x9er\x15\x10>\xfe\xe0!d\a,\x85\xc7\x05@W\xa8>>n\x9e\xff\xf1K\xef3@\x8e63\xb2rL\x14\x8f\x18H\v\x02\x9eyY`\x02\xf9\xc1\x1d\x84\x03\x83\x95A\x8b\xcaYp\a\x84LT\xae6\bz\a?\xd7[4\n\x1d\xda\x064@V\xd4֡\x01\xeb\x84C\x10\x0e\x04TZ*\aR\x81\x93%\xc2\x1f>>n@o\xff\x82\x99\xb3 T\x0e\xc2Z\x9dI\xe10\x87\xa3.\xea\x12\xfd\xd8?\xae\x1b\xa8\x95\xd1\x15\x1a'#\x9d}\xebHU\xe7\xeb`y\x1f\x88\x02\xbe\x17\xe4$N\xe8\x97\x11\xa8\x88y \x1a\xad\xc7\x1d\xa4m\x97\xcb\x12\xd2\x03\f\xd4I\xa8\x80\xfc\x1a\xbe\xa0!0`\x0f\xba.r\x92\xc2#\x1a\"X\xa6\xf7J\xfew\x03ۂ\xd3\xa3\xc1`u\x0fg\x03ؤ\t\xa9hא\x11!\xf4T\xfb+)\xe6\x91\xc5\t\x83@r+\x95\x87\xc7:\xf7\x80\xa3\f\xa2&\x1d\x96#\xb8M\x8a\x99od*Ŷ\xc0;p\xa6\xc6\t\xca\bc\xc4i\x82.Ѽ\xa7\x92\xa5\xe9\x1f\xb4H!3\xb6?\x8d\xae`\xcaxk%\xcc9F\xf0{&\xcaA\xeb\x97%B\xfc\v\xf5i\xf5\x1ed\xec%\xc1\x16\x0f\xe2(\xb5\tK\x0ffh\x8b\x80_1\xab\x1d\x8eɿp\x90\xcb\xdd\x0e\r\xc1\xa9\x0e¢\xf5\xa6o\x9a \xd3[\x99\x9a\x99f\xe6\xd9:ZF\x92\xa4\xf2ʧP\xa7\r=\xdcW\xb1\x11\xa2d4\xc8mQ\xb9<ʼ\x16\x05He\x9dP\x99_\x8fh\xf0:_\x0f\xcc1\xf9\fg\xaf\x0e#\xe6ĉ\x9ej\xd4\nA\x1b(\xc9\x1e\x9cw\x1dZ\xb0\xb6M-{+H;i/\xa2\xa6.І\xa9rֹ\xad\x0e\xb8\x99\x04\xddp\xc4\xfb\x12\x85\xd8b\x01\x16\v̜6\xe3\xe4Xb\xb2o)zm\x82\x8a#\x1a\xae\xd5ݴ\xd4va3 \x81\xd4\xf6\xebAf\ao\xe6I\x82\x18\x0e\xe4\x1a-\xefrQU\xc5ij\x91\xb0\xc4\xf90\xc9\xdcFo\xdb\u0096\x1f\xc2\x1b\xdb\xfcmKЍm[В}\xca6\xe2\x00N\xcf.\xfb\xff'a\xa3\xda\u007f\x83\xd0nΆ\xbe\xaf\xd0\x12I%\xb9\xf3\x9b\x1d`Y\xb9\xd3\rH\x17\xbf.A$g\xa5\x9d\xff\xef\x981\x97K\xfcf8\xf2]%~\x96+K\x10\x89+\xcd\xf4\u007f\x87Lac\xf1%؊d\x86\xfc\xd2\x1du\x03r\xd70$\xbf\x81\x9d,\x1c\x9a\x01g~\xd3~y\x0fb\xa4\xd8;j\xa5p\xd9\xe1\xe1+y^\xb6M8%\xd2e8\xd8\xfb\xafџ\xef\x1b\xe6\x05\xb8\xc0\x01\xaa4X\xfa\xc0\xf7\x89\xa9\xd9~a\x8f\xea\xe3\xe7O\x98ϑ\a\xd2$\xefl!\x1f\a\xc8v\xa7\x0eNy\xea2\x82\xeb\xd3\xc47>\xa5q\x03\x02^\xf0\xe4=\x16\xa1\x80\x98#h\xa2\x89H\xe7\x9c8\x9c[a!{\xc1\x13\x83\tɒ\xc5ѩ\xa2\xe0\xdb\v\x9eR\xba\r\bH8I\x1b\x92@DI\xfa\xc0\x84\xe0\xd8:\x9dx\xc0\x89\xaf\xa8\x8b\x96\x17\a\xe9\x8a$\xb6H\xfb7,\xb3a['iȌ\xfd`=\x8bh\x17\x1cd\x95\xb8P2s`\x91wKL}=\x8bB\xe6\xcdD^\xee7j\xda\x1b\xee\xb7\xcf\xdam\xd4\r<|\x956d\x1f?i\xb4\x9f\xb5\xe3/߄\x9c\x1e\xf17\x10\xd3\x0f\xe4\xed\xa5\xbc\xda&:tsh\t\xc2\xed\xdb\xc6Gx\r{\xa4\x85\x8d\xa2\xb8%Ѓ3\xa2~\xbay\xfb\xd0oem9I\xa6\xb4Z\xb1\xa9\\\x8f\xcd䉝\bR\x9b\x1eG\xceQk&\xf5\x13&\x82}\"K\xe2\xc7\xfb\x1co!2\xcc!\xaf\x99\x98\x9c\x99\x14\x0e\xf72\x83\x12\xcd~\xcept[E\xfa=\r\x85D\xad\xebۅ\x12\x96f\xdac\v\xaa;_FfE;7\xa1Wd\xf6b\u05c9\x84\xe4t\xd7\xe5\x15\xb1\x89e\xffc\x91\xba\"\xcf\xf9,I\x14\x8f\x17h\xfc\vxqn\xfb=b\xdeB\x96\x82\x93\x8c\xffCf\x8e\x05\xfa\u007f\xa1\x12\xd2$\xec\xe1\x8f|4T`ol\xc8bu\xa7\xa1\x19\xa4\x05\xe2\xefQ\x14\xe7\xa9\xee\x91\xc5i\xd2-XxC\xaewg\x1e\xcb\r\xbc\x1e\xb4\xf56u'q4\xa5\xdao\xd2\xc2\xf5\v\x9e\xaeo\xce\xf4\xc0\xf5F]{\x03\u007f\xb1\xbai\xbc\x05\xad\x8a\x13\\\xf3\xd8\xeb\xdf\xe2\x04%JbR7>\x82Ku\x95)\x96\x8c\x9e\x00\rlΝ\xc8͝\xc3:I\x0e+m]2*\x8f\xda:\x9fY칥\x97d\xb1\xc0\xcbP\xc8^\x81\xd8\xf9\x93?m\xe2\x99\x0e\xa9\xbdA\u0095\xb8f\xe75,\xb1\xb1Ɉy\xa0\x14X]\xb7;\xd8\xeb\xd3k\u007f\xd0Ó\x88\x8c\x9d\x8bE\xb8\x95\xd1\x19Z;/\"\t\xdaz!I\xd8$\b\x85\x0f`\xfc\x81\xc9|R2\xb6t\x87\x94\x88t\xa1+\xff\U000354fd\xa4\xcdO\u007f/\tߥx\x01\xefٲ\x14Ó\xc1$\x14\xef\xfdȸM\x02 \x1f\x1a\x98}\xcd[=݃\f\x82\xf4{0ӥT\x1b\x9e\x00~xw\xb3\xde(I|\x8b\xe3~\x1fǶDo>\xf0\xeeM\xf5\x884g\xee\r\xf68w\x9e\xe7&G1\x11\xa4Ү\x9bN \xb8\x95\xce?X\xd8Ic]\x17\xd1T\xa1\xa8\x17v\u007f\xdb.\x8d\x9cԃ1o\n\x9c\xfe\xecGv\x12Y\a\xfd\x1a\xcfW'\x0f3\xc7\x1a\x1f\n!\xc8\x1dH\a\xa82]+N\xbf\xd0V\xe7)<\v\xbc\x82N&Y\x9a\x82\xa0\x86\xaa.\xd3\b\xb0b\xa9\x93j6O\xd3\xed\xfe\x93\x90ŷ`\x9b\x93%\xeaz\xd6p\xb6\xadǶ'?\xb2wP^\x8a\xaf\xb2\xacK\x10%\x91>5\xec\xd9\xf9\xe2\x98\x1e\xc7\xe1UHǖ\x83\xe0\xb2\x19q\x9a6UU\xa0Kݑ[\xdci\xc3\xfb\xd9\xca\x1c\x1b\xc3\x1c\xa4@+\x10\xb0\x13\xb2\xa8M\xa2\x86\xbc\x88\xb6\x97\xc4\x1aAY\xbc_\x10\x916\xf9\x8aI\x91\x90\x88Mt\x16\xe7\xb5ue\xd2]\xc5G\x83i\xee\xd9RR:\xbag\x95\x91$K\xfa\xbd=\xb4 bB\x9d\xbe\xbbhg\xed\xbb\x8b\xb6о\xbbh\x93\xed\xbb\x8b\xb6ܾ\xbbh\xa1}w\xd1b\xfb\xee\xa2}w\xd1\xe6\xba\xcdi\xeb%\x8c|\xc5\xfdď\x8bX$\x1cOϡ8\x03?TS\xdc\xfb\xea\xfb\xd4\n\xcb\xcd\xf8\xa8\x91\xba\xdaPֿ\xe2\x1b\tc\x12\xd0\x16]\xb4\xa6\xa4)\xb9\xa4\r\x12\xc5\xdb\x17\x10/\x14a&\x95S\x8eWߦ\x14\xfc,\x95\xf9\xf4\xebL\x9b2\x9bXh\xaa\xe3$#t\x887\x1b\xc8\xed\xed\u0590\xf4\xebu\xd8ύ\x98\xfe\xcdkP\x13Jq\x16\np\xe6\vs\xe7\xe85\b=\xfa\x043\xbd\x82\xd1\xdf\r\xbd\x16\xaad\xa6kc\xc2I\x10:q\xfca\xdd\xff\xc5\xe9P)\x03\xaf\xd2\x1dF\x96\xf2z@\xc5gXj\xdf-{\x8d\xf2\x16\xae\x98\f\xe9\bڀ\x92\x05\x93sFZ{\xe4\x85?W>\x84\xbbx_·\x1fi\xb54o\xae\xa0\xe9W\xc8L\xa8\xe8K\x8f\x8c\xd2\v\x85\xd3kd\xe6\x8bZ.\xa9\x8c\x19ֽL\x02]\xae\x87I\x89\x1c\x17j_\xdeP\xf1\x92X\xed\xf8\x9b\x0f\xc6RjZ\xdeTɲX\x10\x98X\xbfүL\x99\ayA\xd5J\x12q\x96+T.\xaeK\tu \xb3\xebH\xaeF\x19\xa93\x99\x05\xf0\xb4\xaaY\xac\x06Y\xf4\x91\xe7\xf1[\xac\xf7\xb8\xa4\xcac\x91bo\xac\xe8h*6&潴\x8e\xa3_\xa71\x014\xa5zc\xa2:c\x02\xe2l\xcdFjM\xc6\x04\xec\x05\xb3;+%3?\x8e_\x84\x84E\xfbV\xfc\xb5$\xea\xad\v\xd3&G3롧\xa29\x8bb?\xe35\x98sPf\x1f/NR\xaf\xae\xd7?\xc6rݔ\x84g\xf0\xb3T\xb9\x97\x13\x12\xf4\x8e\x9f\xc0\x17\x85\xb9(\xa6qWZ\u007fo\x1c\xe8 ҰX\t\xc37ɷ'\x9f\xad\xb0kx\x10١\xdf\x11\x0e\xc2RLZ\x8e\xbaa\xd7M\x98v\x1bGї\xeb5\xc0O\xba\x89\x84\xbb\u05ec\xac,\xab\xe2\x04\xb5E\xb8\xee\x0fy[\xcc1*\x01V\x89\xca\x1et\xbc\x03\xbb\x10v|\xe9\xf7\x1e\x89\xe8\xe3\rج\xd0u\xde@\x9f`\x9eP'x|f߇\xef\x0ef\xed=\xca\xe0\xdf\xc4Hbx\xcd\xf2\xc7\xf7\x8f\xf0\xad\xd3F\xec\xf1\x17\xed/#/Q\xa2\u07fbw\x13=谘q\x8b\x05Yb\x84\b\xe1Z\xf4\x00X\x9bH\x0f\xbb\xa1M~\x10\x96c\xeamf\xff9W,,\xe6\xe9\xe9\x17\xbf\x00'K\\\u007f\xaa}6eU\tc\x91\xa8\x19\x17\xe6\am\xe9\xbf\a\xfd:\xa6\xf0tX\xf3\x8fC\xbc\rr\xb2\x9e\x936\x17a\xef\xafMG\xc1\x8b$Z\x12\xd4\xe7\xf1Q\x9d@\xaf\xc3$\xbf\xcb\xf5ع\xc4\x14\x9c\xce\xeb\x12\x14X\xfbb\xbb\xf7\xbd\xfb;\xe5\xb1Lݿw\xc2\xd5v\xf9\x06>w\x8b\xefm\x84#\x9f\xda\xf0\xc5]\x0f\xc2_t}\xd3%\xfc\x90\xa1\uef412ϧ\xfb\xf3\x11\xfc҅\xc9=j\x9c\x1bonӿ\n\xdbd\xc1GM|\vΏd\x0f\x9a\xa0a\x0exD\x05Zqқ\xaf\xc4\xfa\xd7X\x86cƒI\x1d(!\xab^W\x85\x16y\xdc\xe1\xd1f\x85\x17<\x9eX\u007f\x99#\x9a\x0fv\x06&\xbf\x18\xb0\xd3f\x8c\b\xe7\n\xd3\x1b\x96;ȅ\xc3\xd5(\xd0$\xdd7*l|>\xb4xo\x9e;\xf9\x1dćK\xf1q\x03\u007f\xbaT\xa2\xb5b\x1f/̿\x92\x02ۣB\xb6\x9b#\xeb\x0f\xf1L{\x1aѿ.\xeeS*\"s\xb5\b\x13\xc4lR\xa7ׇ1\xb3R\xe8=\xecd\xc1]\xc3\xd3\x1eA\xb3O\xa9\x1d\xa9\x1c\xeeq\xe8\xae\xe2\xd7J\x9a\x14K\xf0\xd0t$\xdap>\x8d\xb5A\xfb\x04\x0e\x16r/I\x8d\x12\xb3\xf7\xc2l\xc5\x1eW\x99.\n\xe4҅s\xbc\xbe%\xaf=\xec\xd1'nΖ\xf6S\xb7o\xf4\xa7\x82\xb0{8\xf1ś\x9b`\xa1\xc7\x1d\xd4R\xfcE\x9b\x1b(\xa5\xa2\u007f\xc8\r\xe3\xc84\x0e\xbe\xc8\x1e\xf0\xeb\x02\vx?R\x9f\xe6@\xbb\xa3\xdd0\x8aٔ\xff0~\x88\xb9\x82\xcfxn\xee\xfc\xb9$\xe6\x9c{\x19{ׇ\xbalԣ\xd1{\n\x9dF~\xbc\x8f\xbal\xe4\xb7Ga\x9c\x14Eq\xf2\x93L\xce>\xf2\xc3'$m2iR\xc6\xc9\x1a\xb0\\\xa2l\xe8\xd6\xc6iRyI\xe0\x13ŭ\xae]o\x83\xb6\x1b|D,\xe2\x9ck\xf8\xac\x1d\xc64\x9e\xec\xc3$\xbb\x8a֭p\xb7\xd3\xc6\xf9\xb0p\xb5\x02\xb9\v&j\x04.ixN]\xfbgv@\xba6}\xd2J/{\x9f\x06\x85e\xe9u\xfc\xd8\x0f\x9f.\x89,#\x0f\bo\xad\x13ň\xd6\xf8M\xd9j\xf6\x05H\xfa0\xff\xb7\x11\xe3xF\xf0M\xb7\u007fS\xe2_\x97[\x1f\x1d18O9>\xfd\xf7\x1a\xb3\x98ʣl\x11\x15\xbc\x1a\xe9\x1ci\xa9nn\x1f\x1c饢\x00\xaba'&\x1et\x98ӗ\xfc\xbbv\xa2\xd8L\xe7\x94\xfaNg\xd39.\x8b\x87\x9f/N\x13[\xb6L\x82\x89e\xf9\xea2i\xe3Xbev\x10jOBet\xbd?D\xb9\x9c\xb07S\x99\xf8\x9a\x90\x82\xaa\xa8\xf7$\xea!7\xeej\xa3:qqȖ\xe7\x1dtE\xf62\x89i\xc8\x0eƧ\xden\xc3\x13\r\xab\x9d\xd1\xe5*\xf0\x82\xf3\x067!^5R\x93SF\xd1\xd5\x04\xd0\xf6.4\x8bAU\xa1\x02a\x03>\t\xa5o\xf3l\x9d\v\x1e\x9d0.\xd5\xd5\xfb\xd2\xeb\xbc\xe0\xe51\xe4q|\xbf\x84hܗ\x00\xde\x0f\x1fݣ\xb8Y\xc5W\xe6|\xb4\xefE\xc1\x92\xf3g\x90\x03\xa8\xd1\xf3\x8a3\xb7\xad\xe7\xa4\xf5\xd1\xff\xeb\xfag\xc7\xc6\xc2<\xa4xjσ\xee\x83sT\xda\xe5-\xc4\xe0]\x8d\xd0\xe3\x0fr\xe7\x0fR2\xc2\xfa\x8f\u007f\xf3\xf3\xd1c\x92\xcf\xf2a\xd6]aO\xa4\xf1;\xe0\x13V\x063ڽc\xcbx,\x90\xfc\b\x8b\xd8\xf7\x84>\\\xe4H\xf6\x03X\xfb\xd19,\xab\xd1\x19g\"\xd8vؔ\xb2\x14\xb1\xc3\xc8B\xe2\x03\x88\x11X(-\x9a\tY/XP\xe3\xc4\\\xb6\xa0f\xd8Ԃl\x9d\x91\xd2\xda\xd5\xe3欉\x03\xdfyu\xaf\xc2(\xa9\xf6K{\xec\xdfC\xb7\x91x(@\x18\x89\x88F\x96\xd1\xc4H\x8b\x11Q' \x8a8N\xbcK6\b\x92\xde)$\x1a\xb5\x03g\x1fY\x81杽\x1df\n_\xda,\x85\xc82$q\xfd<|\xe8\xf4\xfa\x9a\xff\x88o\x99\xf2\x9f\x99V\xde\xdc\xda;\xf8\x8f\xff\xbc\x82\x90\x06{\x8e\x8f\x96\xd2\xc7\xff\v\x00\x00\xff\xffy\x8fd\x10\x14V\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4YK\x8f\xe3\xb8\x11\xbe\xfbW\x14f\x0f}\x19˳\xc9!\x81/\x81Ǔ\x00\x83\xf4l7Ɲ\xce!\t\xb04Y\xb2\xb9M\x91\nI\xd9\xeb\x04\xf9\xefA\xf1!ɒ\xdcv\x0f\x92]^\xba\xcdG\xb1\xea\xab75\x9b\xcf\xe73V\xcbg\xb4N\x1a\xbd\x04VK\xfc٣\xa6_\xaex\xf9\xbd+\xa4Y\x1c\xbe\x9f\xbdH-\x96\xb0n\x9c7\xd5Wt\xa6\xb1\x1c?a)\xb5\xf4\xd2\xe8Y\x85\x9e\t\xe6\xd9r\x06\xc0\xb46\x9eѴ\xa3\x9f\x00\xdcho\x8dRh\xe7;\xd4\xc5K\xb3\xc5m#\x95@\x1b\x88\xe7\xab\x0f\x1f\x8a\xdf\x15\x1ff\x00\xdcb8\xfe$+t\x9eU\xf5\x12t\xa3\xd4\f@\xb3\n\x97\xb0e\xfc\xa5\xa9\x9d7\x96\xedP\x19\x1e\xef*\x0e\xa8КB\x9a\x99\xab\x91\xd3\xd5;k\x9az\t\xddB\xa4\x90؊\"}\f\xc46\x91\xd8}\"\x16֕t\xfeϗ\xf7\xdcK\xe7þZ5\x96\xa9Kl\x85-no\xac\xff\xa1\xbbz\x0e[\xa7\xe2\x8aԻF1{\xe1\xf8\f\xc0qS\xe3\x12\xc2\xe9\x9aq\x143\x80\x84Y\xa06\a&D\xd0\x02S\x8fVj\x8fvmTS\xe9\xf6.\x81\x8e[Y\xfb\x80r\x94\x05\x920\x90\xa5\x01\xe7\x99o\x1c\xb8\x86\xef\x819X\x1d\x98Tl\xabp\xf1\x17\xcd\xf2\xff\x81\x1e\xc0O\xce\xe8G\xe6\xf7K(⩢\xde3\x97W\xa3\x8e\x1e{3\xfeD\x028o\xa5\xdeM\xb1tϜ\u007ffJ\x8aV\xeb \x1d\xf8=\x82b\u0383\xa7\t\xfa\x15\x11\x02\x82\b!#\x04G\xe6\xd2=\x00\x87H%`4ͩ\x1a\xddu\xc66\xb1\x02\xcf\x03*\x91\u007f\x9aI\xdc\xf7\xc8f\xc3/FF{Fw\xb5\xc3K\xc4Π\xf8\x84%k\x94\xef\x8bJZR}\xbb<\x17\xabF^\x88x\xea\xec\xc6Ogs\xf1֭1\nY\xa4\x12w\x1d\xbe\x8fV\xc8\xf7X\xb1e\xdaljԫ\xc7\xcfϿݜMÔ!\r\x9c\x82\x14\xc7z\xba٣Ex\x0e\xfe\x17\xf5\xe6\x92h-M\x00\xb3\xfd\t\xb9\xef\x94X[S\xa3\xf52;K\x1c\xbd ՛\x1d\xf0tGl\xc7] (:a\xb4\xa3\xe4/(\x92\xa4`J\xf0{\xe9\xc0bmѡ\xf6}x[\xc6J`:\xb1W\xc0\x06-\x91!_n\x94\xa0\xa0v@\xeb\xc1\"7;-\xff\xd5\xd2v\xe0M2^\x8f\xce\x0fh\x06\xff\xd4L\x91\xa96\xf8\x1e\x98\x16P\xb1\x13X\xa4[\xa0\xd1=za\x8b+\xe0\vٻԥY\xc2\xde\xfb\xda-\x17\x8b\x9d\xf498sSU\x8d\x96\xfe\xb4\bqVn\x1bo\xac[\b<\xa0Z8\xb9\x9b3\xcb\xf7\xd2#\xf7\x8d\xc5\x05\xab\xe5<\xb0\xaecЬ\xc4w6\x85sww\xc6\xeb\xc8k\xe3\bQ\xf3\x15\rPČV\x10\x8fF):\xa0i\x8a\xd0\xf9\xfa\xc7\xcd\x13䫃2\x86\xe8\aܻ\x83\xaeS\x01\x01&u\x896*\xb1\xb4\xa6\n4Q\x8b\xdaH\xed\xc3\x0f\xae$\xea!\xfc\xae\xd9Vғ\xde\xff٠\xf3\xa4\xab\x02\xd6!c\xc1\x16\xa1\xa9\x83\xdf\x17\xf0YÚU\xa8\xd6\xcc\xe1\xff]\x01\x84\xb4\x9b\x13\xb0\xb7\xa9\xa0\x9fl\x87\x9b#j\xbd\x85\x9c\v/\xe8kҋ75\xf23\xff\x11\xe8\xa4%\v\xf7\xccc\xf0\x8b\x01\xae\xc9\xc5/'\xd3<\xa6\x9d\x9b\x06\xe3\x1c\x9d\xfbb\x04\x0eW\x06,\xafڍg<\xd6h+\xe9BZ\x84\xd2\xd8a\xc6`m\x04\xee\x8f\x1c\xa9\x8a\xd1\x1a\xea\xa6\x1a32\x87\xaf\xc8ăV\xa7\vK\u007f\xb5ҏ/\xba\xa0H\x1a\x91\xc5\xcdI\xf3G\xb4҈+\xc2\u007f\x1clo!؛#\x94\xc1\xac\xb5W'\x8aA\xee\xa4\xf98\xda\xe6\xb1z\xfc\x9c#ot\xa0\xe4o\t\xab\x02V\xc9sM\t\x1f@HG\x05\x80\vD\xc7`QyF\xebK\xf0\xb6y\x93\xf8\xdc\xe8R\xee\xc6B\xf7k\x9aK\x16s\x85\xf4\x00\xb9u\xb8\x89B\x13YGm\xcdA\n\xb4s\xf2\x0fYJ\x9e8il\xcc\\\xa5D%\xdcX\xd2\v^\x16D\xb1(ȫ\x99\xba\xa2\xc3u\xbb1\x94\xc6L\xeah\xc1\x1d\x81\x10ll\x95R\xaa\xf6\xa8E[\x8d\x9cqcB\xd4r(\xe0(\xfd>\x86C5\xe5w\xf0\xaa\xef\xd1x\xc1\xd3\xd4\xf4\x80\xf7\xa7=\xd2Θ@\x11\x1cr\x8b>X\x1b*2\x1f2\xa5\x02\xe0K\xe3B@\x1dƉ\x86\x8d\x19\xf0\x9a\xf9=H\xed\xa4@`\x13\xf0\xc7b킠m\xfe\u007fHQ\xe4\x1b\xd4\xf3\x9a\xb7Gv\xde\xe2\xf0\x19\xe3+\xfe\U000d8db5(\xe4\xdf)\xf2\x9fׂ\x97\xfcxR\xa2C\xfb`\xf0\xa7Xa\xf1\x89Ty\xc6\xcc\xf3\xf8\xc4+\x95Z~\xb6\x98rf\xaa\v\x8c\xb5\xe8j\xa3\x055O\xb7\xd5i\x1d\xcb\xff\xbbjmZ\xad\xf3\xf3(7X\xcbZ\xb8\xa9U\tO4onV\xe2\xc3U\xbf\x150[G\x9dbׯ\fd\xfcEڔw\xbd>\x85\xfaa\r\x8d\x0e\x95Z\xc8\xf8\x05\xfc]\xc3'\xeam);\x89%\xf1m\xa7\f@:\xd0\xe6H\xc7{\xf4\x02\t0:\xe6k\xea֘\x16\xa9\x19\x0eKG\xa9\x14el\x8b\x959Lfl*4-\xaa\x130G\xa6s\xf8M\xf1\xa1x\xf7\xabuA\x8a9OM\r\x8a\xafx\x90\xe3W\x9e1\xba\xf7\xa3\x13\xd9\xf1[w\xa0\x1f?\xe6fyaӶ\x1f'\xc0(\xa5\xa2Zp\"Nt\x15\xc3\xf8=\xf2\xe3\xe6\xfe΅\x12\x1e\xb5\x9f*\xfb\x8eh1tL(\xa8\x8a7\xe9]\xa2q\x1e\xed\x84\x01\xb4\xda\v:\ae\xf4n\xe08q\xa4W\n\xaaТA\x19\v\x02=\xa5&\xbd\x03\xbegz\x87\xdd+T\xe2\xffuN\xc9|\x066\xd3Y\x88ԗ\xcc\xe3&\x8d>ɩ2}\xf4\x02\xdcm\x9e~\xfd\xcd\xdcg\xcd^ls\xae\xe0>ڟ\xb34\x81:\xf7\u074bp7\xbe\xbd\xbd\x1d?7߀\xc4[\xdf\xc2_y׀#sݫ\xf8\xaf\x87C\xf8@p-\x81Ӟ,-o,\xb5i\u074bSp\xb8\xa9\xb8}\xfb\xd3\xcdj\xf0\x1d\xa3\xbf6\xfe\xcaq\x83\\\x93yl4\x19sQ\x0f\xb3\x14Z\xfa3Ͷ}\x85͜\xa7l\b\xff\xfeϬK\x8c\x94}j\x8f\xe2\x87\xe1g\xacw\xd19\xf3\xb7\xa8\xf0\x93S\xc5\x10\xbf\xc3\xc1\xdf\xfe1\x8b\x17\xa3x\xce\x1f\x8fh\xf2\xbf\x01\x00\x00\xff\xffHX\xbeK\x01\x1c\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4V=s\xe36\x10\xed\xf9+v.\xc55\x11u7)\x92Q\x97\xf8\xae\xf0$\xf1x\xec\x1b7\x99\x14\x10\xb0\x127&\x01dw!\xc7\xf9\xf5\x19\x00\xa4%Q\xf4\xc5)\u008e\xfb\x85\x87\xf7v\x97lV\xabUc\"= \v\x05\xbf\x01\x13\t\xffR\xf4\xf9M\xda\xc7\x1f\xa4\xa5\xb0>|l\x1eɻ\r\\%\xd10ܡ\x84\xc4\x16?\xe1\x8e<)\x05\xdf\f\xa8\xc6\x195\x9b\x06\xc0x\x1f\xd4d\xb3\xe4W\x00\x1b\xbcr\xe8{\xe4\xd5\x1e}\xfb\x98\xb6\xb8M\xd4;\xe4R|:\xfa\xf0\xa1\xfd\xbe\xfd\xd0\x00Xƒ\xfe\x85\x06\x145C܀O}\xdf\x00x3\xe0\x06\x1c\xf6\xa8\xb85\xf61E\xc6?\x13\x8aJ{\xc0\x1e9\xb4\x14\x1a\x89h\xf3\xc1{\x0e)n\xe0\xe8\xa8\xf9#\xa8z\xa1O\xa5\xd4O\xa5\xd4]-U\xbc=\x89\xfe\xfcZ\xc4/4F\xc5>\xb1\xe9\x97\x01\x95\x00!\xbfO\xbd\xe1Ő\x06@l\x88\xb8\x81\x9b\f+\x1a\x8b\xae\x01\x18\xf9(0W\xe3\x8d\x0f\x1fk9\xdb\xe1`*~\x80\x10\xd1\xffx{\xfd\xf0\xdd\xfd\x99\x19\xc0\xa1X\xa6\xa8\x85\xd5\x05\xfc@\x02\x06F\x14\xa0a\x04\a\xc1#\x04\x86!0BE*\xedK\xd1\xc8!\"+M\xfc\xd5\xe7\xa4uN\xac3\b\xef3\xca\x1a\x05.\xf7\f\nh\x87\xd3Mэ\x17\x83\xb0\x03\xedH\x8012\n\xfa\xdaEg\x85!\a\x19\x0fa\xfb\aZm\xe1\x1e9\x97\x01\xe9B\xea]n\xb5\x03\xb2\x02\xa3\r{O\u007f\xbfԖ|\xcf|hot\x12\xf9\xf8\x90Wdoz8\x98>\xe1\xb7`\xbc\x83\xc1<\x03c>\x05\x92?\xa9WB\xa4\x85_3M\xe4wa\x03\x9dj\x94\xcdz\xbd'\x9dFƆaH\x9e\xf4y]\xba\x9f\xb6I\x03\xcb\xda\xe1\x01\xfb\xb5\xd0~e\xd8v\xa4h51\xaeM\xa4U\x81\xee\xcbش\x83\xfb\x86\xc7!\x93\xf7gX\xf597\x8c(\x93ߟ8J7\u007fE\x81\xdc\xcbU\xf6\x9aZoq$:\x9b2;w\x9f\xef\xbf\xc0tt\x11c\xce~\xe1\xfd\x98(G\t2a\xe4w\xc8U\xc4\x1d\x87\xa1\xd4D\xefb \xaf\xe5\xc5\xf6\x84~N\xbf\xa4\xed@*SKf\xadZ\xb8*{\x04\xb6\b):\xa3\xe8Z\xb8\xf6pe\x06쯌\xe0\xff.@fZV\x99طIp\xba\x02\xe7\xc1\x95\xb5\x13Ǵ\xa3^\xd1kah\xef#ڬ`&1gӎl\x19\x0f\xd8\x05\x86\xa7\x8el7\r\xed\x8cݗ\x01o\xcf\x1c\xcb\x03\x9d\x9fZ&/\xa5\xb9\xe7\xd5\xcbCю\x18g]\xb8:)\xf6&^\xd4h\x92\xff\xc8Lə\xb8\xb1\x89\x19\xbd\x8e\x95ʶXJz+\x17\xc8\x1c\xf8\xc2:\x03\xf5\xb9\x04\x95\xef\x9c!/`\xfc\xf3\x98\b\xda\x19\x85'\xe4<\x066\xa4\xbcgЁK\x17\xfc\x8d\xb4tX\xc5\xca\xc2F\x0e\x16Eڋ8R\x1c\x160}E\x9d\xfc\xe4o\xa8\xd9\xf6\xb8\x01儯(k\x98\xcd\xf3\xcc\x17;#\v\xadpF\xc1m\x8eY\xd2\x00\xebV\xc7\u007f\x17\xa1\xd0\xed\xd3py\xd2\nn\xf0i\xc1z\xedo9\xec\x19e\xde\xf2\xd9y[\xd9+\xdf\xd47\xb2\xb4ؔ\x17F\xc9\xfbΝ\xb0(\x1a\xd8\xec'^\x8f-l\xacŨ\xe8n\xe6\u007f\x1d\xefޝ\xfd>\x94W\x1b\xbc\xa3\xfa\xd3\x04\xbf\xfd\xdeԪ\xe8\x1e\xa6\xbf\x81l\xfc'\x00\x00\xff\xff\x8c\xdb\x1fܮ\t\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4WMo\xdc6\x10\xbd\xebW\f\xd2CZ \xd2&\xe8\xa1\xc5\xdeZ'\x87\xa0i\x10ة/E\x0f\\jVbM\x91,g\xb8\x8e[\xf4\xbf\x17CJ\xfb\xa1\xd5\xdaΡ\xba-9\x1c>>\xbe7\x9c\xad꺮T0\xb7\x18\xc9x\xb7\x06\x15\f~at\U0008b6bb\x1f\xa91~\xb5{S\xdd\x19\u05ee\xe1*\x11\xfb\xe1\x1aɧ\xa8\xf1-n\x8d3l\xbc\xab\x06d\xd5*V\xeb\n@9\xe7Y\xc90\xc9O\x00\xed\x1dGo-ƺC\xd7ܥ\rn\x92\xb1-Ɯ|\xdaz\xf7\xba\xf9\xa1y]\x01\xe8\x88y\xf9g3 \xb1\x1a\xc2\x1a\\\xb2\xb6\x02pj\xc05\xb4\xfe\xdeY\xafڈ\u007f%$\xa6f\x87\x16\xa3o\x8c\xaf(\xa0\x96M\xbb\xe8SX\xc3a\xa2\xac\x1d\x01\x95ü\x1d\xd3\\\x974y\xc6\x1a\xe2_\x96f?\x981\"\xd8\x14\x95=\a\x91'ɸ.Y\x15Ϧ+\x00\xd2>\xe0\x1a>\n\x8c\xa04\xb6\x15\xc0x\xf6\f\xab\x1eO\xb7{SR\xe9\x1e\aU\xf0\x02\xf8\x80\xee\xa7O\xefo\xbf\xbf9\x19\x06h\x91t4\x813\x833\xcc`\b\x14\x8c\b\x80\xfd\x1e\x14(\a*\xb2\xd9*Ͱ\x8d~\x80\x8d\xd2w)\xec\xb3\x02\xf8͟\xa8\x19\x88}T\x1d\xbe\x02J\xba\a%\xf9J(X\xdf\xc1\xd6Xl\xf6\x8bB\xf4\x01#\x9b\x89\xe5\xf2\x1d\x89\xebht\x06\xfc\xa5\x9c\xadDA+\xaaB\x02\xeeq\xe2\aۑ\x0e\xf0[\xe0\xde\x10D\f\x11\t]\xd1\xd9Ib\x90 \xe5\xc6\x134p\x83Q\xd2\x00\xf5>\xd9Vĸ\xc3\xc8\x10Q\xfbΙ\xbf\xf7\xb9I\x18\x92M\xad\xe2I\x0e\x87\xcf8\xc6蔅\x9d\xb2\t_\x81r-\f\xea\x01\"f\x9e\x92;ʗC\xa8\x81_}D0n\xeb\xd7\xd03\aZ\xafV\x9d\xe1\xc9T\xda\x0fCr\x86\x1fV\xd9\x1ff\x93\xd8GZ\xb5\xb8C\xbb\"\xd3\xd5*\xea\xde0jN\x11W*\x98:Cw\xd9X\xcd\xd0~\x13G\x1b\xd2\xcb\x13\xac\xfc 2#\x8e\xc6uG\x13Y\xf3\x8f܀\xa8\xbe\b\xa6,-\xa78\x10-C\xc2\xce\xf5\xbb\x9b\xcf0m\x9d/c\xce~Q\xce~!\x1d\xae@\b3n\x8b\xb1\\bV\x9e\xe4D\xd7\x06o\x1c\xe7\x1f\xda\x1ats\xfa)m\x06\xc34\x89Y\uea81\xab\\i`\x83\x90B\xab\x18\xdb\x06\xde;\xb8R\x03\xda+E\xf8\xbf_\x800M\xb5\x10\xfb\xbc+8.\x92\xf3\xe0\xc2\xda\xd1\xc4T\xc9.\xdc\xd7\xcc\xea7\x01\xb5ܞ\x10(+\xcd\xd6\xe8l\r\xd8\xfa\b\xea\xe0\xfc\x91\xc0\xe6$\xf3\xb2s38\x15;\xe4\xf9\xe8\f\xcb\xe7\x1c$\xdb\xdf\xf7\xea\xb4\xd0|\x8bM\xd7H\xad\xa0\x11H\xa9\x1e\xdf5g\x19/c\x80E\xf5.\"\x99D,4\b\xafR\n\xa4H\x1dc:\xdfZ>tiXޠ\x86\x9f3\xe6\x0f\xbe{t\xfe\xca;\x16\xb9?\x1at\xebm\x1a\xf0Ʃ@\xbd\u007f\"vzf\xf7O\xcfy\xe05J\x81\xc6\xcb\xd0ƀk\xa4d/lwA\xacӗ\x1f\xa5\xa7\x99\x97gmb^\x96\x94J\x8d \x8f}t\xc8H\x87\xa2qo\xb8_\xcc\bp\xdf\x1b\xdd\xe7\x85\xf9ڤ\x1e\x11ym\xb2\xbb\xbf\x1e\xbe\xa8\xddD\\\x90N\x9d%\xb50,\xe0φ/x\xf4\xd2\x06\xf5\xe8\x9bg\xf9\x9c\x15'\xfa\n\xa7\xe7\xf8\x89j\x9dbD\xc7c\x96\xfc\xf2\xcd\x17<\xd7\xea\x93?~\xbb\xfe\xf0\x84\xdf\xdf\x1e\"so\xa7\x8c+hBĚL'\xef\xb5̉\xe3\xb3\x13\xcf\xc9(\xdfi\xffpJ\xd4\xe2\x8d\xe2\x97`b\xaekO@|\xb7\x0f,e\t]yr\xe6\x1dRN\x88\x94\x9fs\xad捄|\x1b\x84\x16-2\xb6\xb0y(\xf5\xf5\x81\x18\x87s\xdc[\x1f\a\xc5k\x90\xa7\xa8f\xb3 #\xe9b\xd5\xc6\xe2\x1a8\xa6K*[\xaa\f\xb8X\x05k\xf8\x88\xf7\v\xa3\x9f\xa2\xd7H\x84\xe76\xbax\x92E\x13\x9c\r\x92\xf4\v\xed\x11Kc\x1bz<\x926\xfb\xfegBwKZvR\tr\x91y\u007f\xf5\xea\x87韦?L\x00JG\xf1\xf8\x93l\xc9\al\xed\x1ct\xa7\xd4\x04@cKs\xb0F\xac\x8c\xeaZZb\xf9\xdcY?]\x91\"g\xa6\xd2L\xbc\xa5\x92/\xad\x9d\xe9\xec\x1cv\x1b\xe9l\x16()\xf3h\xc4\xc7\xc8\xe6]d\x13w\x94\xf4\xe1\xefc\xbb\xbfJ\x1f\"\x85U\x9dCu,D\xdc\xf4RםBw\xb4=\x01\xf0\xa5\xb14\x87\a\x16\xc3bIb\x02\x90u\x8fb\x15Y\xbbՏ\x89U\xd9P\x8bI^\x00cI\xff\xfcx\xff\xf1\xf7\x8b\x83e\x00\xeb\x8c%\x17d\xafZ\xfa\xf6<\xba\xb7\n ȗN\xda\x10\xed}\xcd\f\x13\x15\bv%y\b\r\xf5B\x91\xc82\x80\xa9 4҃#\xebȓN\xce=`\fL\x84\x1a\xcc\xf2\x9fT\x86),\xc81\x1b\xf0\x8d\xe9\x94\xe0\bX\x91\v\xe0\xa84\xb5\x96\xff\xde\xf2\xf6\x10L\xbcTa\xa0l\xe1\xdd'u \xa7Q\xc1\nUG7\x80Z@\x8b\x1bpķ@\xa7\xf7\xf8E\x12?\x85ߌ#\x90\xba2shB\xb0~>\x9b\xd52\xf4\x91\\\x9a\xb6\xed\xb4\f\x9bY\fJ\xb9\xec\x82q~&hEj\xe6e]\xa0+\x1b\x19\xa8\f\x9d\xa3\x19ZYD\xd1u\x8c\xe6i+\xbes9\xf6\xfd\xf5\x81\xacaþ\xf5\xc1I]\xefm\xc4@;\xe3\x01\x0e5\x90\x1e0\x1fMZ\xec\f\xcdKl\x9d\x0f\u007fY[S\xe1\x87`F$[&\x17\x90\x80a@\xc0٠\x803U}T\xe2\x9f\x1f\xef\xfbJ\xde\x1b1\xcb\x1e\x8e\xef\xbd`\x1f\xfe*IJ\xbc\x9ft;!S\xe69Y\xd7\xe4\"p\x19\xfbbS\xe1R\xfd=\x18\xc7\x16\xd0f\x8fEd\xcc\xdeK\x85\x92đП~\xfa|R\xe2C{\x81Ԃ\xbe\xc0O u\xb2\x8d5\xe2\xfb)<\xc5\xe8\xd8\xe8\x80_\xf8\xa6\xb21\x9eNY\xd6h\xb5a\x9d\x1b\\\x11x\xd3\x12\xacI\xa9\"\xe1 \x01kܰ\x15z\xc7q\xbc!Xt\xe1l\xb4\xf6\xe8\xe7\xe9\xfd\xdd\xfby\x92\x8c\x03\xaa\x8e\x95\x98\xbbf%\x19\xcd0\x8cI\xbd8F\xe3Q3\xef?ߥ\xf0\t\x06\xca\x06uMI_\x82\xaa\xe3\xee8\xbd~K\x1e\x1fC\x92\xfe\x1b\x81&\xc3\xc2\xf1\u007fk\xee/T.\"\xe8\x17(\xf7\xb0\x17\xe5g\x95\xe3Y\xc5i\n\x14\xf5\x13\xa6\xf4\xacZI6\xf8\x99Y\x91[IZ\xcf\xd6\xc6=K]\x17\x1c\x9aE\x8a\x01?\x8b\xe3\xc6\xec\xbb\xf8ϛu\x89\x83\xc2K\x15\x8a\xc4\xdfB+\xbe\xc7\xcfޤT\x8fa_\xdeǮ\x17\x19Y\r\xcfrZ\xac\x1bY6\xfdp\x92k\xec\x89d\x92\x8c\x84E*ͨ7_=\x94٠\x9dc\x896E\x1e\x80\vԂ\xff\xef\xa5\x0f\xbc\xfe&\vv\xf2E\xe9\xfb\x8f\xfb\xbbo\x13\xe0\x9d|S\xae\x9e\x00\xe0)F\xac\xb9\x17l\xcaJ\x92\xbb\x00\xcc>\x1c\x10\xf7\xd0q\x04\xb1ni^\x85\f\x03\xd6#P\f\x85\x88\xcf\x1e\xa8\x1e\xcf\x02\xb6\xb3\x168P\xe3\tk\x0f\xe8\b\x10Z\xb4\xec\xb9g\xda\x14\xa9\xc5[\x94ܟ\xb9\x05g̳$@k\x95\x1cmŹ\x91g\x10\x9a\xf1>\x0f\xdaX\xfbS\xba\x8f\xfa!q\xb8`\xff4\xe0\x8cA\xf6,@\xc27[\xd8\x1e\f,\xc7R\xf4\f(>iE\x9eK\x19\xad\x1d\x8aX\x8c\x0fP\x03\x1a\x1e(\x06Kֈ\xc1\xcaa$\x0e6\x93~/\x9a*\x03\x86οb\xae\x8c\xf4\xbdMS\x15\t\x99K\x84\xd0o\x9d,K\xc3\xe8\xf4\xf0i\xed\xbc{o\x8fO\xc4G\x1c'\x92pA\xb6\x1c\xb39\xca\xd6\xe8\xfb;\xc6FC\xd8c\x97Nƺ\xcd\xdcHD\xe8\xc8ȶB\xa9H@\xff\xb67<3\xc2u\x9f˒*.r\x9dU\x06E?\x90e\xf1\xb6\xf0\x8c\xe7\xf5\xf8:r\xed\xcf\xf0\xec<\x898ɏ\x18\xe1\x18\xb2UƵ\x18\xe6 0P1\xcaTwJ\xe1R\xd1\x1c\x82뎷\xcf\x14\x8b\x96\xbc\xc7\xfaR*\xfe\x96\xa8Ҝ\x9a\x8f\x00.M\x17\xb6\x83\xeaAQ\xb8\xf69\xa6^7+\x8f\x8e\x80\x87\xe1\x8c\f\xd1}\x86\xaaJ\xc53\xfb\x85`\xf7 \x1c\xa5Z\xd2x\xab{KM\x00\xb0\r\xfaK\xa6zd\x9a\xb1\x04\xdbV\xaf\xb3\x19\xc6\x1f\xe9\xae=\xbe\xa5\x80\aZ\x8f\xac\xde\xebGgjG\xfe8p\x8a>\xbeF\xaay\x01\xbf\xc4lx\x95\xfe\xf9\xa2K&\xc8d\xd0\x18\xd5'\xb3\t\xa8@w\xed\x92\x1c\xdba\xb9\t\xe4\x0f\xcb\xf9ثD\x9cfvf\xdc;\xdf\xfb/q\xca\x03Z\x89:\xbe\x1erv\x05\x03Bz\xabp3¸W$\"\x16N..\x01\xbbx\xee\x93ڒ\x8b[\xaf}M\x892\xdd\x19}\x02_\xf7\xf9,u\xf8\xe3\x1f\xce\xe0\x1b\xa9\x03Ճ\xe6\x90\xf7ٜ\xef\xf8\x96\xafsÙ\xd6\xed5Zߘp\u007fw!\n\x16[\xc2>\x1bv@)־\xf8\xb6\x99\x89r(\x8c\xb9j[[^\x95\xaa>\xa0\v/mE\x8b\x03\xe2\v](r\x1e\xefA\v\xb2\xe88\xd3\xe3K\xf8\xed\xf0\xb7\xa6\x1b\xf02>\xef1\xdeJ\x00,\rߞ\x9b\x13\x03K\xe3h\xa4d\xc2q[9h\"\x87\xe2\u007f\xcb\xfe1\x1a'G\x8bQr\xb1\xc7;?\x11\xe7\x95\x1d\x86\xc1\x92\xa7\x03\x12\x0f\xc3\xdfӮ\xd2\xebM\xff\x03Y\xfc\xb34:Ae?\x87O\x9f'\x90\x9f\x8d?\xf6\xbf{\xf1\xe2\xff\x02\x00\x00\xff\xffTTw\xa4\x84\x1c\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4YKs\xe3\xb8\x11\xbe\xebWty\x0f\xceV\r\xa9\xddI*I\xe9\xb6kgSJv=\xae\x913\x97\xa99@DS\xec\x98\x04\x18\xa0)YI忧\x1a \xf4\xa4\x1ev\xd5Lx\xb1\x85G\xe3\xeb\xaf\x1f\xe8&GY\x96\x8dTK\x9f\xd0y\xb2f\x02\xaa%|a4\xf2\xcb\xe7\xcf\u007f\xf69\xd9\xf1\xf2\xc7\xd13\x19=\x81\xbbγm>\xa2\xb7\x9d+\xf0\x1eK2\xc4dͨAVZ\xb1\x9a\x8c\x00\x941\x96\x95\f{\xf9\tPX\xc3\xce\xd65\xbal\x81&\u007f\xee\xe68\xef\xa8\xd6\xe8\x82\xf0t\xf4\xf2\x87\xfcO\xf9\x0f#\x80\xc2a\xd8\xfeD\rzVM;\x01\xd3\xd5\xf5\b\xc0\xa8\x06'\xd0Z\xbd\xb4uנC\xcf֡ϗX\xa3\xb39ّo\xb1\x90S\x17\xcev\xed\x04\xb6\x13qs\x8f(j\xf3h\xf5\xa7 \xe7c\x94\x13\xa6j\xf2\xfc\xf7\xc1\xe9_\xc9sX\xd2֝S\xf5\x00\x8e0\xeb\xc9,\xbaZ\xb9\xe3\xf9\x11\x80/l\x8b\x13x\x10(\xad*P\x8f\x00z\x02\x02\xb4\xacWq\xf9c\x94UTب\x88\x19\xc0\xb6h~z\x9c~\xfa\xfdlo\x18\xa0u\xb6EǔԋώYwF\x014\xfa\xc2Qˁ\xf4[\x11\x18W\x81\x16{\xa2\a\xae0\x81B\xddc\x00[\x02W\xe4\xc1a\xebУ\x89\x16\xde\x13\f\xb2H\x19\xb0\xf3\u007fb\xc19\xccЉ\x18\xf0\x95\xedj-n\xb0D\xc7ర\vC\xff\xde\xc8\xf6\xc06\x1cZ+ƞ\xe3\xedC\x86\xd1\x19U\xc3R\xd5\x1d\xbe\x03e44j\r\x0e\xe5\x14\xe8̎\xbc\xb0\xc4\xe7\xf0\x9bu\bdJ;\x81\x8a\xb9\xf5\x93\xf1xA\x9cܹ\xb0M\xd3\x19\xe2\xf58x&\xcd;\xb6Ώ5.\xb1\x1e{Zd\xca\x15\x151\x16\xdc9\x1c\xab\x96\xb2\x00\xdd\x04\x97\xce\x1b\xfd\x9d\xeb\x03\xc0\xdf\xeea\xe5\xb5\xd8ֳ#\xb3ؙ\b\xcev\xc6\x02\xe2m@\x1eT\xbf5j\xb1%Z\x86\x84\x9d\x8f\u007f\x99=A::\x18\xe3\x90\xfd\xc0\xfbv\xa3ߚ@\b#S\xa2\x8bF,\x9dm\x82L4\xba\xb5d8\xfc(jBsH\xbf\xef\xe6\r\xb1\xd8\xfd_\x1dz\x16[\xe5p\x17b\x1c\xe6\b]\xab\x15\xa3\xceaj\xe0N5X\xdf)\x8f_\xdd\x00´τ\xd8\xebL\xb0\x9b\x9e\x0e\x17G\xd6v&R\n9a\xafô0k\xb1\x10\xf3\t\x83\xb2\x95J*Bl@i\x1d\xa8\xa3\xf5\xf9\x9e\xe8\xe1Еg\xae\x8a箝\xb1uj\x81\xbf\xda(\xf3p\xd1\x01\xb6\x9f\x87\xf6$p\x92Yb\x18c/\x1c|\\y$\x14\xa0N\x9bW\x15:\f{$\x8bQ!\xeee=\xb1uk\x11\x1cT\xd2\xf9\x91\x84\x13\x86\b*[}A\x8dG\xdb\a\x84\xc3\x12\x1d\x1aq\xf7\x98!Z\x1b\xf2\b+2),b\x8a\x05\xb6\x03Z\xcc#\xeaa\x88\xa7\xa9\x873\xd9s\x10\xf0O\x8fӔ1\x13\xc3=t>>\xf7\x02=\U00094135~T\\]q\xf6\xed\xb4\x8c\x87\x85\xdc\xc1\x16\x14\xb4\x84\x05\xee%c \xe3\x19\x95\x06[\x0eJ\x94[\x1b$\xc0\x1c\xf6;\xde\xc5Lѧ\xa4m\n\x17\xeaAI\x8e\"\r\u007f\x9b}x\x18\xffu\x88\xf9\x8d\x16\xa0\x8a\x02\xbd\bR\x8c\r\x1a~\a\xbe+*P^\xd4 \x87z&3y\xa3\f\x95\xe89\xef\xcf@\xe7?\xbf\xff2\xcc\x1e\xc0/\xd6\x01\xbe\xa8\xa6\xad\xf1\x1dPd|\x93\xfe\x92ϐ\x8ftl$\u008a\xb8\xa2\xc3KkÀxW\xaf\xf6*\xa8\xcb\xea\x19\xc1\xf6\xeav\b5=\xe3\x04n$\xcaw`\xfeG\x02\xeb\xbf7'\xa4\xfe.\x06Ѝ,\xba\x89\xe06\xf7\xddnDnAr\xa5\x18\xd8\xd1b\x81.\x14\bCOHޒ\x12\xbf\a\xeb\x84\x01cwD\x04\xc1b\xbd\x98\x8fP\x1f\x81\xfe\xfc\xfe\xcbI\xc4\xfb|\x01\x19\x8d/\xf0\x1e\xc8DnZ\xab\xbf\xcf\xe1)x\xc7ڰz\x91\x93\x8a\xcaz<Ŭ5\xf5Zt\xae\xd4\x12\xc1\xdb\x06a\x85u\x9d\xc5zC\xc3J\xad\x85\x85d8\xf17\x05\xadr|\xd6[S\x95\xf1\xf4\xe1\xfe\xc3$\"\x13\x87Z\x84|'\xb7SIR5H\xb9\x10\xef\xbc\xe0\x8dG\x97fz|\x17݇-\x14\x952\v\x8c\xfa\"\x94\x9d\xdcB\xf9\xed[\xe2\xf8\xf8\xeaO\xcf@\tp\x988\xfeo\x97\xe8\x95ʅJ\xf5\n\xe5\x1ev\xbc\xfc\xacr\xd2\x188\x83\x8cA?m\v/\xaa\x15ز\x1f\xdb%\xba%\xe1j\xbc\xb2\xee\x99\xcc\"\x13\xd7̢\x0f\xf8q(\xed\xc7߅?o\xd6%\x14\xe4\xd7*\x14\x16\u007f\v\xad\xe4\x1c?~\x93R\xa9V\xbc\xfe\x1e\xbb\x9d\xf5\x05\xcc\xe1^\t\x8bUEE\x95\x9a\x80>Ǟ\b&\x92\x8aS\xc7Ԭ\xcc\xfa\xab\xbb\xb2\x10\xda9A\xb4\xce\xfan3SF\xcb\xff\x9e<\xcb\xf8\x9b\x18\xec\xe8\xaa\xf0\xfd\xc7\xf4\xfe\xdb8xGo\x8a\xd5\x13\x85n\xf4\x91\xd6N\xb5PY\x12\xba\vu\xd9ǽũ\xae\x1c\xa8\v7k^U\x18z\xa3Z_Y\x9e\xde_\xc01\xdb,L\x18\xb6\x06\xe8\xcb\xc1$K\x1c\xf7l\x15x\x06O\x14u\x01K\xac\xed\x87j\xec\x1eI\xac9\u0088Ե\x01\xcfp\xb0\xbe\x16\xa1\xb4dR@\xed#̆;\x87\x835\xad\xd5\a#\xfb\x9ep0\xb95\xcd\xc1DT\U000aad8a\x15w\xfe5\x8dUؐ\x98\x8d\xf1ͽ\x98Pܾ\xb9\xb5*\xac\x14\x8e\xfb\xaf\x98\xce[\xf9\xeexGx\x8f\xe1tD\xc7\xd4`\xe8W\x02\x0eX)\x9f\x0e\x19\xb2(\xecȋ[CN\x15q\xa8CY'Ug\xa9\xa8F\r\x9b\x97\\\xf0$\x1dfh\xe8o\x87\xaa\x98$\xa8\xf3\xa8C\xef9\x00\xfax_i]\xa3x\x02\xd2\xc6g\"\xe2h\x85\xe9\xeaZ\xcdk\x9c\x00\xbb\xeex\xfaL\x005\xe8\xbdZ\\\x8a\xa0\xdf\xe2\xaa\xd8\xf1\xf5[@\xcdmǛ\x96\xaf\x0f\xa5\x9e\x8a[\xdf{\xc1\xeb\xda\xceJ\xf9KP\x1ee͐\xc7m\x82\xfa\xbc\xcbɃ\xa6k\x8e\x8f\xc9\xe0\x01W\x03\xa3S\xf3\xe8\xec¡?\xb6L\x96\f8\xd0\x04d\xf0K\xf0\x8eW\x11\xd0\x1ft\x89\x83~\x19T\xb6N\xdemY\xd5`\xbaf\x8eN\x88\x98\xaf\x19}b$\xa5\x86\xa1\x1e:\xd4\xde[&\xb7\x12R\xb6\x8b\xa2\xfan\xa2P&\xbcR\x12\xffe\v\x9a|[\xab\xf5\x80ܤI\xb8^\xc5}%\x8e\xb6\x1e\x93\xa2P\xc2?̽\xb6\xf7\x0f\xa0\xee\xad9Q\r\xa6\x90!\xc3\u007f\xfcÙۘ\f\xe3\xe2 \x95\xf6\xf3B\xe8\xcfr\xca\xd79\xe1̅\xefY9\xbe6\xed\xcd\xf6\x16_\xcaxA\xf4p\xbe\xdbM]ljj\xff\x98o\x99\xa3\x06\x89:\x1a\f\xc8\xf5\x8e\xec\xfe\xbdY?\xb2\xbd\xd9T!\xc5\x1c\xea\x87\xc3O\r77{_\x0e\xc2\xcf\xc2\x1aM\xf13\t|\xfe2\x82\xfe]ڧ\xf49@\x06\xff\x17\x00\x00\xff\xffñ\x1b\xae\xa0\x19\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4W\xc1n\xe36\x10\xbd\xfb+\x06\xdb\xc3^*y\x17=\xb4ЭM[ h\x12,\x9cE.E\x0f\x145\xb2\xa7\xa1H\x96\x1c:u\xbf\xbe\x18J\x8aeY\x897\v\xacn&g\x1e\xdf̛\x19ҫ\xa2(V\xca\xd3\x03\x86H\xceV\xa0<ῌV~\xc5\xf2\xf1\xa7X\x92[\xef?\xae\x1e\xc96\x15\\\xa5Ȯ\xdb`t)h\xfc\x15[\xb2\xc4\xe4\xec\xaaCV\x8dbU\xad\x00\x94\xb5\x8e\x95,G\xf9\t\xa0\x9d\xe5\xe0\x8c\xc1Plі\x8f\xa9\xc6:\x91i0d\xf0\xf1\xe8\xfd\x87\xf2\xc7\xf2\xc3\n@\a\xcc\ue7e9\xc3Ȫ\xf3\x15\xd8d\xcc\n\xc0\xaa\x0e+\b\x18\x99t@\xef\"\xb1\v\x84\xb1ܣ\xc1\xe0Jr\xab\xe8Q˱\xdb\xe0\x92\xaf\xe0\xb8\xd1{\x0f\x94\xfap6\x19h3\x02\x1d\xf2\x96\xa1\xc8\u007f,n\xdfP\xe4l\xe2M\n\xca,\x11\xc9ۑ\xec6\x19\x15\xce\f䀨\x9d\xc7\n\ue10bW\x1a\x9b\x15\xc0\x90\x82̭\x18\x82\xdc\u007f\xec\xb1\xf4\x0e;Փ\x06p\x1e\xedϟ\xae\x1f~\xb8?Y\x06\xf0\xc1y\fLc|\xfd7\x11v\xb2\n\xd0`ԁ<紿\x17\xc0\xde\n\x1aQ\x14#\xf0\x0eGR\xd8\f\x1c\xc0\xb5\xc0;\x8a\x10\xd0\a\x8ch{\x8dO\x80A\x8c\x94\x05W\xff\x8d\x9aK\xb8\xc7 0\x10w.\x99F\na\x8f\x81!\xa0v[K\xff=cG`\x97\x0f5\x8aqH\xf2\xf1#\xcb\x18\xac2\xb0W&\xe1\xf7\xa0l\x03\x9d:@@9\x05\x92\x9d\xe0e\x93X\u00ad\v\bd[W\xc1\x8e\xd9\xc7j\xbd\xde\x12\x8f\x05\xad]\xd7%K|X\xe7ڤ:\xb1\vq\xdd\xe0\x1e\xcd:ҶPA\xef\x88Qs\n\xb8V\x9e\x8aL\xdd\xe6\xa2.\xbb\xe6\xbb0\xb4@|\u007f\u0095\x0f\xa2m\xe4@v;\xd9\xc8\xd5\xf6\x8a\x02Rn@\x11\xd4\xe0\xdaGqL\xb4,Iv6\xbf\xdd\u007f\x86\xf1\xe8,\xc6<\xfb9\xefG\xc7x\x94@\x12F\xb6\xc5Ћ\xd8\x06\xd7eL\xb4\x8dwd9\xffІ\xd0\xce\xd3\x1fS\xdd\x11\x8b\xee\xff$\x8c,Z\x95p\x95\xbb\x1cj\x84\xe4\x1b\xc5ؔpm\xe1Juh\xaeT\xc4o.\x80d:\x16\x92\xd8/\x93`:\xa0\xe6\xc6}\xd6&\x1b\xe3\fyA\xaf\xf9\\\xb8\xf7\xa8E>ɠ\xb8RK:\xf7\x06\xb4.\x80:\xb3/O\xa0\x97[W\xbeZ\xe9\xc7\xe4\xef\xd9\x05\xb5\xc5\x1b\xd7c\u038df\xdc~Y\xf2\x19\xc9\xc9d\xe9\xdb\x18\x97\rϰ\x01x\xa7xҿ\xac\xc8>\x8f\x81\xc5x^\x11!\v\xa1\xa4\x9d\xad\xb2\x1a\u007f\xcf\x15e\xf5\xe1BL\xb7\v.\x12\xd2\xce=\x81k\x19\xed\x14t\xe0\xba\x10I\x8d\x10\x92}\x13\xd9~~_7Rx-a\xb8@t33\x1f\xf3\xde&c\x06\xacB\xbb\xce+\xa6\xda\xe0\xf2\x91\xf2I\xd9P\x8fr\xe8{\xff\xeb\xf3\xbdw&u\xf8|\xdd\\\x88\xe0\xe1\xd4zZ8\xfd\xc2@EB\x81pzq\x9e~C\xadD\xf0\xae\x19H\f\x05\x1d%\xbe7\xc4 \x92S\xc0\xd9\x04-\x96\xdbcf\xb3Tm3\x93\xb9Ƴ\xedY\xfe\xbeh|\xb0\xe2\x14\xdf2@\xb2Øl\x9dB@\xcb\x03L\xbeQ\xbfz\x84\x18\x15y\xd2>\xf2\xa2\xbaP\x017\xe7\x1e#1\x01\x03\x96\x85i\xbf=\xa9\xf9-\x94E[\xea\xb4օNq\x05ra\x14\x02tf!\xef-\xacnP5\xe7}\\\xc0\x9d\xe3\xe5\xad\x17#\\슳\xc5(\xef\x92f\xa2s\xec\x1byX9\xf6\x90\xd2\x1a=cs7\u007f\xbd\xbf{w\xf2\x18\xcf?\xb5\xb3\r\xf5\u007f=\xe0ϿV=*6\x0f\xe3\x03[\x16\xff\x0f\x00\x00\xff\xff\x83\xf9\xd9\xe0\xf4\f\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec\xbd}s#\xb7\x910\xfe\xbf?\x05Jq\xfd$]Dʛ\\\xf2\xbb\xdbJ=)eWvT\xf6jU+e\xfd\xa4\x1c\x9f\x0f\x9ci\x928\x81\xc0\x04\xc0P\xe2\x9d\xef\xbb?\x85\x060/\xe4\x90\"0Ծ\u0603\xab\xbax\xa9\x99\x1e\xa0\xd1\xe8wtӂ\xbd\a\xa5\x99\x14/\t-\x18<\x1a\x10\xf6_z|\xffoz\xcc\xe4\xf9\xf2\xc5\x17\xf7L\xe4/ɫR\x1b\xb9x\aZ\x96*\x83\xd70e\x82\x19&\xc5\x17\v04\xa7\x86\xbe\xfc\x82\x10*\x844\xd4\xfe\xac\xed?\tɤ0Jr\x0ej4\x031\xbe/'0)\x19\xcfA!\xf0\xf0\xe9\xe5W\xe3\xff\u007f\xfc\xd5\x17\x84d\n\xf0\xf5;\xb6\x00m\xe8\xa2xID\xc9\xf9\x17\x84\b\xba\x80\x97D\x816R\x81\x1e/\x81\x83\x92c&\xbf\xd0\x05d\xf6c3%\xcb\xe2%\xa9\xff\xe0\xde\xf1\x13q\x8bx\xe7^\xc7_8\xd3\xe6\xdb\xe6\xaf\xdf1m\xf0/\x05/\x15\xe5\xf5\xc7\xf0G\xcdĬ\xe4TU?\u007fA\x88\xced\x01/ɵ\xfdLA3ȿ į\t?;\xf2\xb3^\xbep \xb29,\xa8\x9b\x0f!\xb2\x00qqs\xf5\xfe\xf7\xb7\xad\x9f\t\xc9Ag\x8a\x15\x061\xe3\xe7F\x98&\x94\xbcǵ\xd9\t\xe0&\x103\xa7\x86((\x14h\x10F\x133\aB\x8b\x82\xb3\f\x91XA$DN\xab\xb74\x99*\xb9\xa8\xa1Mhv_\x16\xc4HB\x89\xa1j\x06\x86|[N@\t0\xa0I\xc6Km@\x8d+X\x85\x92\x05(\xc3\x02b\xddh\xd0Q\xe3\u05f5\xb5\x1c\xdb座Hn\t\bܔ=\xca \xf7\x18\xb2\xb35s\xa6륭/\xc7/\x89\n\"'\xff\x05\x99\x19\x93[P\x16\f\xd1sY\xf2\xdc\xd2\xdd\x12\x94EN&g\x82\xfdw\x05[ۅڏrj\xc0\xefw=\x980\xa0\x04\xe5dIy\tg\x84\x8a\x9c,\xe8\x8a(\xb0_!\xa5h\xc0\xc3G\xf4\x98\xbc\xc1\xed\x11S\xf9\x92̍)\xf4\xcb\xf3\xf3\x193\xe1\xfcdr\xb1(\x053\xabs<\nlR\x1a\xa9\xf4y\x0eK\xe0\xe7\x9a\xcdFTesf 3\xa5\x82sZ\xb0\x11N]\xe0\x19\x1a/\xf2\xdfT\xdbvܚ\xabYY\xca\xd3F11k\xfc\x01\xc9|\xc7\x0eX\x82w\xb4\xe4^u\xab\xa8\x11m\u007f\xb2\xd8ywy{פ3\xa6ױ\x8fxo\x10_\xbd\x05\x16aLLA\xb9MDj\xb30A\xe4\x85d\xc2\xe0?2\xce@\xac\xa3_\x97\x93\x053v\xdf\xffY\x82\xb6\x04-\xc7\xe4\x152\x152\x01R\x1695\x90\x8fɕ \xaf\xe8\x02\xf8+\xaa\xe1\xd97\xc0bZ\x8f,b\xf7ۂ&?\\\u007f\xd8a\xad\xf1\x87\xc0\xbc\xb6\xec\x97?\xfd\xb7\x05d\xad\x13c_cS\u007f\xcc\xc9T\xaa\x16s\xb0\xaf\x8c[@\xbb\x0f\xad\x1d\xee\xf4[\x0e\xb6\xfe\x97\xb5\xa9\xfc\xa5z\xd0ҏ\x9dD)\xd8?K@\x16\xe7N,l\xb0\x94\r\x90$\xcc\x0f\xc9b\xbc\xf1\xf7-8\xb5\x03\x1e3^\xe6\x90W\xdcvc-k3\xbe\xdcx\x01\xc5\x11e\xc2ҿe\xffvڢ\xfe\xabe\xa7\x1d3\xa6\n\x88\xa5@&\x1c<\xc2\x04.\xb6\x13\xd3v0\x03\x8b\x8e\xc9\xed\\\x1dA9G'\x1c^\x12\xa3J\u0602\x19\xaa\x14]mAL\x90\xcd\xfb\xe2\xa5z\xde3\x04\xce2h\n\n\x87\x1a'd\xa8ڜ\x11\xf9\xa4\xb12\x97\xf2\xfe)L\xfc\xd5>S\xf30\x92\xa1\x8eC&0\xa7K&\x95_\xbb\x17)\x13 \xf0\bYiP\xcco\xc0-\x91\x9dJE\n\xa9\xcdv,l?\x89\xc4\x1d\x8em[\xb8\x13\x85\x1b+\xf3\x8c#l\xb1]h\x8b\x89H\x01v\xae\v{\x12\xebg\x95,ݳ\xebܾ\x81\xf0n\x8c\x90\tՐ\x13\xe9i\xa0\xe4\xa0\xfd\xb7rdO\xf5);\xdb\n\xbaZ\xbc\x93\xbb\x9cN\x80\x13\r\x1c2#\xd5&&\xf7\xc1\xa7\x1b\xfbp\x8e-x\xec\xe0!\x9e\xf7zN\\/l\aHb\x95\x8e\x879\xcb\xe6N$Z\xdaD8$\x97\xa0\xf1\x18Y\xb5m\xb5m\x91䩽\xf7\x1f\xd9u\x90\xea\xf1đZ\x87\xd7u\xb8\xea\xb1\a\xf3\xa9\xc7\x13l\xa8\x8d\xd9Z_\xed\x94#\xf5\xf8e\"6\xf0\xd5\x04\xa2\xbd\xdax\xf5\xb0D\x8b&\x86U}\xaf\xa6\x04\x16\x85Y\x9d\x11f¯OA\xa4\x9c7\xbe\xff\x19oL<\xc5_\xad\xbfyP\x8a߹+OA\xb4\xbbR}\xfe3\xdc\x14\x14\x16\xb7^V\xec\xbd!\xdf5\xdf:#lZmH~F\xa6\x8c\x1bPk;\xd3\xeb\xbc\x1c\x02\x19\xfb\xc8;;\x16\xd4d\xf3\xcbG\xab\xd9\xe8\xda\x1d\xb3'^\xd6_v\nbИۂ\xf9\t\xb8\x04\x8d9\xa6`\xe1\x8c\xc4;\xc4f\xfd\vj\xd7\x17ׯ!߅\x1e\xb2\x1f\xe5m,\xe4bm\xb2\xcdO{\xadw\xdfexէ\xb2 \x9c\xf9\u007fF(\xb9\x87\x95\xd3X\xa8 vs\xa8\xfd\xd0\x16[b\x139\xe8\x87@\"\xbb\x87\x15\x82\xf1\x8e\x85'\xdfޗ\x14ܸ\x87\xd5>\x8f\xad!\xd0\xceɛ{\x0e\x93\xf6\aD\x04\x9a\xa1\xfb#\x8f\xa0\x93(\xf0\xa2\xa7\x17G\xf6g$a\x04\xdc',\xb3ڶ\x863\r7\xf6X\xbb-\xb2\xa7`Ί=\x17\x8a\xbe4\rxZ\x82\x9b\xe8=\xe5,\xaf>\xe4\xe8\xfeJl׆\xdb\xe3Z\x9a+qF.\x1f\x99\xb6S\x139y-A_K\x83\xbf<\v:\xdd\xc4\x13\x90\xe9^\xc4\xe3%\x1c۶xh\xfa\x9b\xf6 n7\xae\x9c[\xa1\xda\x1e\xa6ɕ\xb0\x86\x8b\xc7\az\x0f\xdd\xe7vˇ\xf6X\x94\x1a\x1dJB\x8a\x11\x8a\xcaqח\x1c\xb2\xf7\x04)UkG6\xa7V}\xd4}pO\xb0wV\x92\xb8\xf7\x9d?\x94\xd3\f\xf2`m\xa2\x17\x8f\x1a\x98\xb1\x8c,@\xcdv\t\x8e\xe6(,\u007f\xdfo\n{r]7\")l?\xd1\x1e\x86g\xdd\xf9ӓ\x19ٓ\xbb\xc7Sa\xb3\x9f|t\x8b\xf3n\xfb\xa3O\xaf\bE,\xea\x1fOb\x97\xe69FZ(\xbf\x89\xe0\xf8\x11{\xb1)\xfb\xddĜ\x84\\\xd0\u009e\xdf\xff\xb1b\x0e\t\xfa\u007fIA\x99\xda\xe3\f_`ЄC\xeb]\xef&j~\xc6~\x81ib\xf7wI\xf9\xa6[\xb8cq\xd2\xf2\x16\xe0N\x90\xcb\xe9\x86\xc6rF\x1e\xe6R;\x99:e\xc0\xbb\\6\xed\xc149\xba\x87\xd5\xd1\xd9\x06\x1f8\xba\x12GN\xc0G\xb3\x9bJ[\x90\x82\xaf\xc8\x11\xbe{\xd4G\tړ\x12\xf7zLt:}\xeb\xd1\"\x8b\xa6\xe3\xb7\xf6\xf8z5w\u05ec\xf7\xa2\xc3Bj\xf3\xd7n\x87ݖ\xf9܄7ںi\x87\xdf\xebI\x9d\xdd\xfb\xb0*\xa6j5\xb9\xa9\x01\xe5\x9dx\x8e\xd1\x06\v\xa0\xa7m\xf4\x94\x93\xaer\xd0\xd1\xcaQn\x11\xfc\x04U\xb8\x00\xc0>S\x8c\xd1\x1a-^\"\xf5\xed\xcbdž\x8fўP\xfb\xef\xe6B\x0e\xad\xd5fr\xb1\xa0\xeb!\xaf\xbd\xa6\xfaʽ\x19h\xda\x03r\xbb\xaff%\x9e\xcb\xfdս@C\x18\xecz`f\xce\x04\xa1\xe1\xf8\x83\xf2\x04EI!\x9f\xe6Dn̩&\x13\x00\x11\xd0\xf7$kp\xe3y\xe5\xf5\x82\x89+\xfc\x00yqp\xf9Njt%mg@u\xb5\xa1\xd5\x0f(q\xf6U\x8ddN\x1e栠E\x15\x9b\x0eo\xab1\xee\tRH\xd3\xf4+X\xb8\x85̏5\x992\xa5Ms\xa2\xfb\x12\\\xa9\xf7%\x87\xc8\x1d\xb6\xab\xbbc\v\x90\xa5I\u0603\xcb\xfa\xedV\xb4rA\x1f٢\\\x10\xba\x90\xe5\x1e\xc2\xdd\r+_آ\n)\xfa\x1dx\xa0\xcc \xbb\xb3p\xd1\xc3b\xa4ݥ\x82\x83\xd9w\x8b'0\xb5\xec(\x93B\xb3\x1cT\by\xbb\x9de\xd2\x1e\xdc)e\xbc\xec\n\xdft\x8dX3U\\*\x95d\xa5\xbeuo6\xbc\x86s\xf9\xd0F\xd0\xde(\x98\xd3%\x106%\xcc\x10\x10\x99\xdd\x17P\x8ee\xe3'<2\x105{\x93\xe5~\f\xde\x0e\x10\xe5b?\x04\x8c\xf0d3\xb1\xd3)\xd6|\xfck\xca\xf8sl\x9b\xa5\xbc\xf4\xa3\xf1}\xfd\xf6\a9\x1a\x15S\xd9_\x84M\x80\xbc\x03\x9a\xaf\xc2\xf9\xa0\xc6XS\x15i@\x12U\x8a&G|\x86\x93\x11c\xdf\xf9Y\x1c\xd2pc\x82\xed\xb1\xb1k\xfe|f\x9aڎ\x05\xf1\xacڎ\xfd@%\xe8R\\3W-\x00VT\x06\xc5\x19\xe7^QM\x84\xe63\x01k\xa0B\xee\x9c^V|z=\xda%\xf2l\t\x83w\xae.FuYs\xf3zC\xb3\x91\xfc\x16}\x04\xbc\x83w%K\xf2@\x85\tD_)s\x85ܓ\xeacw\xd5\r\xaaf\x11Ood\xd6\x05\x955\xa4\xb7\x810j\x85\xe9V\xfbN\xda\rk\x9a\xe62\xbb\xb7\xeaȂ\xce\xe0\xf8X\x93Wo^[R\xb1Z\x87\x15\x19\x11\x12\xc1\r\xe6\"\xb1\x85\x92K\x96[\xd5\xe9=U\x8cN\xb85\x82\xa7\xa0@d\xa0ɗ'\xef/\xde\xfdt}\xf1\xe6\xf24\n\xb85\x9dᱠ\xc2\xd2`\xa9\x834\xafv\xdf.\x00Ē)),\x82\xe2\xb0q5%\x94,\xc3l\xb3*\x13͚Z|鵹(\x88Պ\x83#\x84\x89\xa24\xc1;\xfa\xc08'\x938\x88\xa5\xc8\xe6T\xcc,^_\xcb\xd2\xce\xf3\xcb/\x11+\n\xf22\xf3\a3\n\xa2?L_\x9e\xf9p\x16\xe5\\>h\x94-\xa03Zx\x1cG\xc1ll/\xd1+a\xe8\xe3K\xc2\xc60&G_6\xfet\x14\x05\x13\xb1U(i\x97\xe9\xe2\x11\x0e\x8b\x9c\x19P\x94\x93\xa3&不\xbf\xb4넼I\xa0\xf85\x01KP\xce\x0ep$\xb7\xaf\x03\xdf\r\x053\xaar\x0eZ[\x9e\xfb0\a3\a\xe5\xddJ\x9e\xc8 \xc6\xeb\xec\x86T\xf6|ufJֹ\x91Q\x10C\x1e\xe5}\x95\b7T\xdf\xebs&\xacH\x1d\xe5\xd4\xd0Q\x83\xe9\x9e;i8\xf2\xf2y\x14,\xe9Qu\x1c\xcf\u007f\xa3J!\x98\x98\x8dh\xf5\x14\x13#:\xd2s\xe0\xfc8b\x96Q\xe2\u008dh{\xb7\xf9ZL\x80!\xd21\xe1F\x9b\xa3_V\f\xdc}yL\xae\xa5ٕ\x81\xb6}T\"\fq<\xee\xe4\xf1\x97\xd7w\xef\xfe~\xf3\xf6\xea\xfa.\x96\xb57\xc5\xc2vV\x9f\xc6$[b\xa1\x83\xd5\xc7\xed\xfe.\xb1\xd0f\xf5Qp\xb7\x88\x85\rV\x1f\x87\xd8\x0e\xb1\xb0\xc9\xea\xe3X\xf0\xa6X\xd8\xc2\xea\xa3\xc0\xae\x8b\x85\xad\xac>\nj[,lc\xf5Q \xbb\xc5B\a\xab\x8f\x17B\x9bb\xa1\xcd\xea\xe3 n\x17\vk\xac>\nl\xb7X\x18X}\xc7kq\xac\x1e\xc42\x99\xcd\u007f\xe7ͯ\x06+\xaa\xf6<\x8e\x0e\x8dČ\x03&\xda|\xaeK+x^̷]\x82b\xf9\x9e\xb6\xd3*Ds\xb1Q\x90I}\x1cB\xc66\x8a\xb5ʢ\x8dc1)V\x9a\x1bOEκ\xc7f<\xcdߚH\xc7\ai\xe0dL\xde\xf8\f\x03J^\xfdt\xf5\xfa\xf2\xfa\xee\xea\xeb\xab\xcbwqH!\xe9g\x87\x84\xa4\x91\x9e\xa89\xee0\x0f\x13\xf0\xb2[s\x88\x16\xc8n\x14\n\x96L\x96\x9a\xaf\xaa\xf4\xf6\xfeG\u05cd\xf5\x93\xebS\xcaVD\x83Z\xb2,e\xb6\x9dS\xeb\xa3\xea\xb8\xf1\xa4\u0093\xbe\xfa'Ԟ\x04\xc0\xdbmb\xaf\xfc\xa4\x90\xd6!-c\x0f\xf2\x19\xecc7\x9e\xb0\x92\x13 \x1eV\x81j\xccr\xa7\x1a\x95\x00t\xb7\x8dM\xf6N\\l\x0eT\xbf^Ô\x96\xdcyێ\x8e\xc61\xba\x8c\x1b}Y\xec\xd7J\xee\x19@i\x8e\x16\x9b\xbdu\x97\xbcB\xc4\xe00B\xe8\xd8'ƶ\xd4\x0e\x1di\xaf\xba\xc1|\xeed\xb0)\xa3\xf2\xe6\xea\x91.\xe5\x89\vIO\xd9\xec\r-\xbe\x85\xd5;\x98\xa6\x80XG;\xe6\xcc\xfa\xf4\xd2XӠ\x1e\xa8\xf5\xb8\xa9\xa5pžx!1\x19\xc5]\xa3\x85\x93;\x9f\xfd\x8c:\xacEOڒH\xbf\x83\x15F\x9av\x17F[\x95i\xa8y\xc9\x10+\u007f\x88\xd9\xd7pˤȠ0\xfa\\.\xad\xee\x00\x0f\xe7\x0fR\xdd[K쁙\xf9\xc8\xc5\xc3\xf49^\xc39\xff\r\xfeO\x8f\xd9ݽ}\xfd\xf6%\xb9\xc8s\"\x91Ֆ\x1a\xa6%wiw{g\xfav\x8d\xba\xa8\xc0\x19^l?#%\xcb\xff\x1c\xcfl\xc38\x00m\xc8\xc2eb\x1e\x88>n1\x92\xbf\nR\xaa\a\xae,\v\xaf8\x02\x91\n\xc3o\xfb\xa4\xc1n\x1f!a\xd9+\xba=\xd1>\x91\x92\x03]/\xe2\xb0\xdf\xd8?4\xdc5\xf6K\a\xee\x1a\x11\xe1㮁'\xe00R\xe3\xb8\x16\x1b\xfb\xa5\xb3v\x0fop\x162\u007fItY\x14R\x19]\x15,\x18[F\x10\x17ϨG\v\b\xde\xed;#\xffY\xfd\x88wG\xf4\x0f\xc7\xc7\u007f\xfa\xf6\xf2\xef\xff\xe7\xf8\xf8\xc7\xffL\xfdN\r\xb3Qk\xe6\x10\x80u\x01\xd9X\xc8\x1c,\xcb>s\xff\xf4\x96\xd7E\x86\t2\xd7=У\r5\xa5\x1eϥ6W7gៅ̯nz\x82D\x18:A\x05%\aQ\x02\xb6\x15~\x89\x19-J\x0f\x05bz\vM_K\xc6\xd2\xfb\xd7\xf6\xc8\xdcP3\xdf?Ůk<(f\f\b\xb4UA-4\x91\xd33\xcb\x1d\xd1\x14\xe8û%9Z\xbe\x88\x8cP\xb6\x00\xf4\x17lӀ\xa2\x03m#b۳\x9b>\x1c\x8b\x04צe\u007f\xc1KPeS\xf6\x00zqs\x15\n\x0f}D\xc4\xf7\x95lն}\f\xf9\x16\x12ο~\x169\x17\xa0\xf7\x13uuN\xb1\xbb\x83\xb1\xdfM\xde\xed\x833\xacPDE^W):q?\x8e\xb3\xa2Le\xe6\x1e\xc2\x02\x16R\xad\xce\xc2?\xa1\x98\xc3\x02\x14\xe5#m\xa4\xa2\xb3d\xf1\x13\xa6\x8aS\xac\xff\xe5>\x97\xca\xf9\x1b(\u061ci\\\x12O\x03\xaa\x02\x92\x95\xcaZ;|\x15t\x14\xc8?\x9a|\xab觻DҾ\xa3M\xe4u\xb2z?[\xb3\xe6\x1f\xe8\xc6YJ^.@\x9fUVJ\x0f\xc0\xe8\xd2\x14K\xb2\xa4J\u007fT\x8b+gK\xa6\xf7M\x97\xee\x1aT\xac\xde&\xb2&\x82<\xd6-\x82\t\x03\xb3\x1e&\xda\xe8\x10\xc8\xe84\x1f}\xf9\x88\x1e\x9b-KS\x94\x98<\xbc\xa0\xa6\x8aJ=\x162\xcds\x17F\xa3\xa0O\xdet\x98\xbeHqc\xbbQPc@\x89\x97\xe4?N\xfe\xf1۟G\xa7\u007f>9\xf9\xe1\xabѿ\xff\xf8ۓ\u007f\x8c\xf1?\xfe\xe5\xf4ϧ?\x87\u007f\xfc\xf6\xf4\xf4\xe4\xe4\x87o\xdf|sws\xf9#;\xfd\xf9\aQ.\xeeݿ~>\xf9\x01.\u007f\xdc\x13\xc8\xe9響L\x9e\xf2\xe3\xa8\xf6Ќ\x980#\xa9F\x8e\b\x9e,\xf6\xb0k\x04\xe4\x1e\x8a'\xbd\v\x9aH_\xc1K\x9a\x1a\xdbGd\x1d}U\xab^h\xe8\xa9Yi\xc8\x14\x98O\xcf\xe7\xec\xe6\x15\xd4pw\x8b\xa92\xf8\u007f1n\xe8\xfe\xa6\xa7CSm\xb7`\xb1C\x82\x01\xfa\x1e`1\xb4\xbf\xc4:\x12\xfe\v\xf7\x90\x10\x11\tcp\x95\x0f\xae\xf2m\xe3\x97\xee*\xbfu\xe7\xa7\xf6\x93\xa3\xb7\xbb\xdf\xd9\x1c\xfc\xe4I\xd2.\xf9\xe5\xb4պ\x9a\xdcQ\xaf$\xce01\x9706\xb4ߙOX\x17\x92#\x85,JN\xf7\xbe\x1d[\xcdc3sh3\xb90\n\xa6\x17\xafua\xd0:/ݥ\"D\x1f\xc1\xcd\\7r\xc19a\xc2\tI\xfc\xd8\x03\xe3qv0\xa659\xaf\x03\xa1._qi\xd1\xf00\a\x91t\xb7\xd2\r\xa6\x896T\x19&fc\xf2\xbd\x85\xe5\xb41\x9f\x8b\xc2\x04Y\x94ܰ\"2!\xa9\xb2\xb0\xaa\xda$\x84j-3F\x8d\xc7p\xb4@\xe5T\x9b\xb0%\x98\x96c\xe8=f\\f\x90\x83\xc8\x00kY\x95\x91r0\xec\xf9de1z)\x96nn\x94\xe4\xa5K)\x86h\xee\xd3=\xb7\x8f\x9d\xeej\x8f\xafO\xad\xa9\xb3^#\x99\"\xfa\xb8\x1d\f9\xadK\x89U\xf1\xdd8x\xe9*v\x95\xfd\x92d\x86l\xe8\xd6u|\xbaҌS\xa2\xaaJ.>p\x16P\xba\x9a\xbbUŭ\x15\xd5D}\xe1SSo\x9fE\xb5=\xa4Z\xdbS\xa5\xed\xa7\xce\xeeRe{X<\xf5\x89:D\xb2F?\x05\xb4\x87\x12X(\x98\xb2Ǟ\x1c\xe6BT{DX\x0e°)K\xb2\x13\xacΤ\xa0\x00\x81i\xc2@\xb3\xb9+\x83)\xdaI6)4\xfd\td\xe8;\xcf\xc1a\x18\xfa횟c\xe0\xe6\x037\xdf1\x06n\xbe{\xf8\xe3\xf4\x19\xb3\xf2\x0fh)\xe3\xcd\xe5\xf4\xebկ\x1b\xf7\x9f\x91#<\xc7]\xf9\xea\xbcօU\xce\xf1\x8bq\xc7\x12\x8b\xc0\xe2ѳVd%\xe4\\1}\xf9@\xe6l\x16\xeb\x11\xe3\xb0\x04\xee\xf5{\xb2\xa0\x82\xce\\)M#C\xa8.\xf6v\x84eI\x8a\xe5\xad\xc2k\xb8T+8-\x9b\xe2\x92\xc6\xd1r\xdd;N\x13\xce\ue07c\x86\x82˕\xaf\x98)rrk\xa8\xb1l\xe9\x16L\\\x02\\\x12\xf3\xc0\xd5ܔ\x9c\xdfHβ\xa8\x98C\x9b\xf4\xae\x90抒sR \xa81y+ 6,s\xc1\x1f\xe8J\x9f\x91kX\x82:#W\xd3kin\x9c\xb9Y\xdfO\x89;\xbc\xd2\x03%lJ^\xba\xfeh\xc4\xd0\x19\xba.\xaa\xfauqD\xa1Z\x13s\xc2\xe4\x81\xe9\xbevz\xb4\xc0\xdc8\x80\xbf\xc1\xafZ\xd1\xe9\xfe\xfd\xec\xe4\xc3\xd9\x14\xb2U\xc6\xd3y\xd6E\x86ɮu\xf9\xf5\xfa\xdcƹ\x8cV\xda\xc0\"\x94\rC\a\n\xc32\x93\x85\x14\x1a\\A\xbd\x14\x0fW\xb5B\xe70\xd3=\xf78U\xc9+\xa46\xb7\x86\xaa=˴գ}Jo\x02\x18K\xfe\x19\xe5\x1cr\xc2\x16\v\xc8\x195\xc0\xe3\xfd\xe4\xa1\x02h\xb3ܣkw\xe9\x8aI&\xe9\rs*r\x0e\n\xeb\x15z\x1f`\v\xbe\x01\xb5`\x82\xc6\x16\f!Uz\x17\xba,!'4ˤ\xca}-\xb8Pً\xaax\x8d\xbf\xe2x\xa8+5$\xcfz\xbe^4\xe4\t\x97ٽ&\xa50\x8c\xd7\xe5!CmHߨ1\x1aj\x12\x8b\xa9\xfesT\x9d\x89\x11\xf6#;\xffM\xfd'\xfc!V\xf9\xedc\xf9\xecW\xcfws\xacՠ\x04$\rL\xa6\x94\xf1b+\f\xcc\v\x96V}\xb1DU\xd7W\xad\x04M\x9a\x91\x81\x05\x88\xdb]u(\xb2M\xac\x8bF\xef#\xab\x90\xb8\xd17G!\xa1\x16Ps\xec([\x9c\x1ck\f\x85m9\x13Ь_̰&jz\b\xb3y\x82\x1d?\xf2\x16jz\x10\x98)\xec1\xb2jԶts\xef\x93̯\xa44\xe4\xe4\xf8\xfc\xf8t#\xa8u\x9c\x0eu\xca88\xe9\xea\x8a,e\xd5f%\x83\xd4lQ\xf0\x15\xee\xcfq\x8e\x1d\x9d\xfcuXU\xa6ň\t25\xbbˡ \xd4\x19ђ\x18EC\x97\x81\xf4\xb9Zh\x16\xb8Q\xa5\xd7UN\x8e\u007f>>#`\xb2\xd4|`B\x1e\xa486HFcr'I\xa9\xeb\x89'\xc3\\ɒ\bpu\x00\xe0\xb1\xe0,c\x86\xafP\xcc'Ô\xa5q\xc5\x17\xb1A\"\x16ں|d\xc6\xdf\xd3I\a;%_\xe1iw\xaa\x02\xa1\xd6\x18Z\xc2\xf9\x1c(7\xf3\xf4\xfb}\x96.\x85\x14\xa3\xff\x06%\xb1\x8c\x97\xf0\x10S\xbd;\t\xb1\xb3\xe68@\xc6I\x8a\x1ba\xfd\xed\xc4$\x06\xab |\x03\xd1*'\xd9\xe8Hzww\xf3\r\x98\xb6\bKB\x87\x9dQ\xc8\xcfG\x976\xa8\xa9T\x1d-w\x9f\x1e}\xe5\xdf\\\xea$̐\xcd~\xadڸ\xee\x13\xceH\x11i>g7\x8cl\xa7%\xfb\x8cFru\x93\x9e\x88\xf5wYZlM脯\xaa*\xb2\x1a\f9\xb2SOO{f\x02\xf7\xf3\xaf@s\xac\xdb+\xb4\x01\x9a\xa8\"\x1d\xe0\xa85\xe6r\x18\xa5\xc6\xf5ݝ;\x90=v\xb4Y\x02\xcb\xd3\xfe\x18\xcfT:\x9bt\x15^\x14\x14\x8e\xfd\xfa9~$&\xb9\xc1+\xdc.\xf8\xdf'\xbdr\x13ih\u007f\xec\x96\xe8k;'\x16\xef\b\x83\t\x9c&\x1e\x8a\x1e\xb3\xeb\x9f%Lzg\xab\x92\xae\b\x98\xc3U/\x98\xfe\xeee|Z\xda\xfa8\xc8\xfd\x92\xe4\x12^\xcd\xf1\x9ch\xc2\xe9}|<\xf5K\xb5$i\x89\x88\xed\xd7\xfba\xa2\xe7\r\x05\xd2[\xdf\xc2\xcb<\xc9\u05cd7/\x1b\x1bIh\x96\xa5\x15\x8ar\xc3w/G\x86\xa5A-c\x13\x1c\xebћ\xc4\n\x19\xef\xbf\f\xa3ׅ\xb7\xc3\\w;\xc8e\xb7\x8ez\x89\x8a\x88r1\xe9\xc1I\xaa\x02\x18\xca\xd4\x04\xe37\xbe\x873\xa5*\xb6y\x8d\xd3\v!\xdc>\xfa\x1e\xaa0T̀\xbc\xb03\xfd\xe3\x1f\xfe\xf0\xfb?\x8c\x11\r\xc9PC`\x99\nruq}\xf1\xd3\xed\xfbWX\xc4-\x95ʟ\xe5f\x1b\x96mH\x96?\xed\xc8<\x82\xb2\xd8+5\x16:\xeb\xb3\xc3\xd6\xd6\xf0\xfeo\xe7\\֩q\xb6\xe60\x12\xd9\xcdG\xe23}\x84\xd8\b\x0fч\xb6\xb3MV\xdc\xca\xec\xfe\x00\x96\xf6\xf1ݫ\x1b\a\xaa6\xb6\x93v\x81\x8a\xe0bfb)\xf9\xd2\xf5\v\xbc{u\x83\bJ\xdbY\xfb6\xc6\a\xd0շ\xb2s\f7\xe1]jN\x12T\xb6(|\xc7LJ\x14Pδa\x19~\xab\nS$\xda\xf7\xf2>%\x8b\xe7\x93\xf1+\x1c\xbf\r\xe9@\xe8bH>\xcdk\xae\x89\x96\x8b\xa1\x0f\x8bh\xb8&R\xaft\r\x1a\xc9\xc15\x12'\xea\xa5\xea\xa7\xc7\x0f\x1aɧ\xad\x91|n22\xf9\xd5B\xc1\xad\x91EϬ\t\a\xe4@9\x13\xa1\x13ݶ\xa4\x06\x92'l\xa9\xeb\x1d}qsUy\xc7e+\x11\x01\x93W\xa2\xa1\xea2\x9b\x87،\x00\xad\xcf1=\xa2,\x9c\xe7+4\x94\x8c\x8fX\x15\n\xb0\v\x9f\x14gUE\x02D\a\b\xf7#\x98,\xfe\xb4\xa0O\xc6\xe7\x8e\xf8xbخ\xbei\x18\x99\xa2z\x0eة\x02\x1e\x99ѡ\xdb5\xd5R\xb8\x10\xae\xdf>&\xe3\x03\x98L\x93\x82j\xed\x02w\xa6^\x84\xfbȍ̏\x13\xa2\xb7\x8d\t\x91\x99\xa2\x19\x90\x02\x14\x939\xc1\xaa\u007f\xb9|\x88\x9f\xe7\x04fL\xe8@\xbfv\xa2\xe1`X]\t\x92\"\xc2u\xe7\xd9w\xad.Rخ\xbc4\x99L\xe0\xc3\xfeu\x8f\xc5\xf5\x04\xa2諓8M{|J\xca\xf9\xaa>\xa8ᦧ9\xfc&mf\x12\xa5\"\xa1^\xf7z&Q|4\xb0\x95yd\x8fB\x9d\x95ԇ\xfc[\xd4ɴ=UټG\x9b/\x12\x9f\xbe<\xa46=9\x86Ԧ\xbdǐ\xda4\xa46\r\xa9MCjӐڴ\x17\x88!\xb5\xa9\x9aѐڴc\f\xa9MCj\xd3\xd3cHm\x1aR\x9b\xea1\xa46\xed5\x86Ԧ=Ɛ\xda4\xa46m\x1dC qHm\xfa5\x06\x12\x87Ԧ\xb8ׇԦ\x881\xa46\r\xa9Ma\f\xa9M\x91c\xd0H\x86Ԧ_\xa3F\xf2\xb9\xc9\xc8^\xd5\xc5\"_\vy<7JNz\x94\x19\xbb\xc1X=\xcb|\x1a\x90\x9c&\xd7\xd6q\xd3\x19\x93W\xad\xf4\f߄\xdfUi\x89\x82\xe8\x13}\xea\xf4\xa4\xbe\xf5z\xa2k2\x85\xa2`\xfa\xbc\x90\xee\xff\xd59\x05\x8dd\x02\xe7_\x8b\x11\x0e\xa9\xc27%\x8b\xe0\xa9\f\x82$^\xb7;{\x003\x01\xa2a\x1e2s\xa0\x8fv\xd3#c`G\xb6@\x00\x9b\xc4\\\xbb3\x05\xd6\"\xfeɩ >K`3\xda\xdf'\xe1\x02S\xe16\"\xfd\x89\x10\xab\xec\x80mQ\xfe4\x95\\\x1f>\xc2\xff\f\xd1\xfd\xc3G\xf6wD\xf5\xc9J\x96I0\xb7D\xf4}d>\x916;\xa3\xf9!*\x9f\x06\xb3;\x92ߊȧ\x12S\xaf(~\x8f\xe0TO\xe5:ݓ\x9c\xac)\xf9d㻹\x02=\x97<\x9a\u05f6\xf8\xec\x1b&آ\\X6\xa1-{d\xcb*\x9b9\x9eFB\x9e\x93\xd3:\\\x18\xce\x02f9`\x13K\xcaxJ\xa9:,\xad7\xa7\xe8\x9f\xd0e\x96\x01\xe4VN\xbe\xaeC\xe0\xd10\u007f?\xaeV\xee\xbaj0M^\xc4R\x9ek\xa8\x88\xf6\xdd\xef\u007f\x97\xb4\xfb)\x96ab\xc2\xc6\xd3\xc9\x1a\b9\x1a\x93\xfd\x135\xfa\xa8\x1b\xa9\x8e\x94\xe7I\xceؑ\x98A\xfe\x9e(\x1av$e\x10\x96&f\x0f\x94\x90ыs\xf6L\xc4ؑ\x84\xe1q\x94\xa8\x80l&`\xac'R\xa4\xa1<=\xf9\xa2\x87l{\xae\xa4\x8b\xed\t\x17\xa9$Iz'[\xf4O\xb48`\xb7\xc3:s\xa0ww\xfc^.\xba\x03x\x0e{&U<\x17Z\x0e\x91B\xf0\x11\xbb\xcf&\xefj\x9f䉞\x89\x13}\x92&R\x13&v$K\xf4\xf14\xf7L\x94\xe8E>\xa9\xe1\x88\xe4PD\xff0D\xef\x10Ď\x84\x88>=a;C\x0f\xa9\xfd\v\xc3h\x87\x1d\xd6\xc2\a\x89ja3\xe4p\xd0\xd0\xc1\xc1\xc3\x06\xe9I\f\xbb\x13\x18\x1a\x89\b\xa98\xdcL^蓄Ѓ\xa2S\x99\u007fRP%\x99i3\xc1\f\xa3\xfc5p\xba\xba\x85L\x8a\x13\xa2u\x1bsN}\xe7L\xc8Å\xda\x10\r\x89g\xad\xa8>\x12\x8aq\n\xbbzӾ=\xf9q\xe3\x16䣹\fܕ\xd2C\x10\xc1_\xe5\x03\x91S\x03\x82\x9c0\x11\xe8 ޏZ;\vj\u007fQu\xac\xed__|\x15Ϲ\xdcd>_\xc7\x0e\xba\xb6\xb4~>\xbf\x9e\xff\xc0\xe1\x1d{\x1e\xf0\xb4\x8c\xf7ѷ\x9c{\xceA\xd8\xe6\xefћW\xb7\xe1{\x81\xf3\x0e\xdc\x04\xbdԾlC\x02\xccϔ\xa8\x92\xd3ΞL9#\t\x9d\xc7v\xa5\x9bթc\xd1`\xb7\xa4\x9a\xd5ic\xf1\x13ݖf\x96\x942\xf6\xd1=\x9ckib\xe9\xe6\xe7\x96\x141\xaf\x9e%*\xf1\xc9\xe9a\x83\x1d\x169v\xa4\x81\rv\xd8'd\x87}\x1e\x16F\xa3\xd6\xc97\x8afps053\xb0+\x92\x97\x8az\x91\x11\x14\xbc${\xc32\x19\x01\x90;NU\x15\xae\xc1\x8a+Ӓ'\x14\xaf*\v)\xda՟\\NE\xb3\x88K4P\x9f\xedұj\xaf(\xa5\x9c\xd0BI\xa7\xf6\x11U\na\xa5\xae?K\x16)\xd6V\xd2i\x12\xb2Y\xb3G\xb3\x99\xdd.\xabba\x15\x1c\x96 _\x1e\xe6 \x82\x96\xe9'lg7\x95*c\x13\xbe\"s\xcaS\xc2/\x0f\xcc\xcc\t%\xf7\x8cs?\xcd1\xb9\x05C̜\xe9Dg*\x97b\x86\x9bA݄᱀̪\x1d\x19\a*\xca\"m\xfdVY]\xc9R\x85\xf5\xfb\xb6qa\x96)I\x1b\x82\xf1\xb3\xb0\xd5\xc7z\xf7\x81M@\xacKP,5\x84:M\x0fL\xc3Y\x1f̆6\xa3\xee\x1c\xb8u\x17J.Y\x0e9\x99\xac\xd2\xe8_樵\x8e\xc9{\x84\x17\xf8\xbe\x90b$`F\xadm\x14\u007fR\x9d\x10wg\xde\xcd\xd3գ\x109˨I\xb0\xb14\x16֫\xcb\xe9\x91%\xa3\x88\x85\x06\xe5F\x03=\x11\x92HT\x8aK\xc1\xcc\nc\xa3\xf3Ґ\\>\x88\xd31\xb6\x9eMaR\x94L\xc0P\u007f\xafյ\x12D\x81\xa5\t\b:\xe1)\xca\tf\xe2\xdeu\x12(\x99\x025eBw\xbf\x195\xd0\xe9\x0fp\xf4p\xd8\xe3\xc0\xb4\x8f\x80NI)4Dߟi؇\u007f\xfc\xd7\x0fg\x1f\xb2\x05\xc8\xd2|R\x0e\u00879\xcb\xe6M\u007f\x03[\x80&\xb2\xecsm\xcdH\xf2\xc2O\xab\x9b\"\x9e\xb9}\xe4/Ϋ\x98\xa45Ɔ\xd8;\xe2F\xeb\xd5\xfc\xaa\xc4\xe9\xa8uS\xcb\xc3^_\xdf\xfe\xf4\xdd\xc5_.\xbf\x1b\x93K\x9a͛eH\x05\xa1VnD\xc1D\xb92\xa7K \x94\x94\x82\xfd\xb3t\x9d\xc7\xc9I\xf5\x9dӐ\x83\x1f\x057-_?\xc9R\xb4\x82\"\x8a\t\xb46\xe8;\xa6\xb1\xd1+B\xf1\xe9\xacR\x03\x99*\xb9\x88cJ-\xeb\x91\\Z0\xce[\x84\x96\xe6\x1c\x14\x90\x19[F\nY\v\xd57G\xa6yH*\xc6#lO\x8f\xd5b\xe9D\x96\x91&\xd0\x1c\x88\x00cOw\x15\xe1\x92B\xb7jږ\x1at\\~\xf9\xa4\xc4T\xeaB\xb1\x05U\x8c\xaf\x9a\x93\xb4\xea\xeb\xb5\f~\xb8U\xac\xa8m\xa2\xf0\xf5\xdb\xcb[r\xfd\xf6\x8e\x14\n\xcbz\xba\x9c\xe1h\v\xd2n/\x99\x80\xdd \xb7\xe1\xf9\x98\\\x88\x95\xfb\x90\xe3\xe5\x91Z\x06g\xda\x00Z*ޕ\x10\x9a\xd6\x1f}5\xc6\xff;\xb2;\xa8bCDUzy\xb6q\xc9\xc6y.\xd8$\xf2\x1e).\xbdA\x03=\xef\xd8$\xa4z\xad]\x9a\xf0뺱\xa8WP\xb8\xbe\xec\xb1ҒV$\x8d[\x88\xccО?\x9e\xec\xd3Iw\x80f\xcd%\xc5{\xdd:\x1d^\xd3\xcaa\xe5\xe85\xc1\xdf#Eì\xba\xba\t\xe4\xe84j\x94\x04\t@-\x1dZ\x9d\x84\xe5n\x82.A\xe2\x8c|E\xfeD\x1eɟ\x12 \xfe\xf1\x0f\u007f\xf8\xfd\x1f\xe3\xfdY}\xf4\x89>ʨ\xf3v_\xdd\xf4\xdc\xe7\xef-\x1b\xb3\x90\xec\xce\x18I&,鎋\xb3\xec\r(+&<\xc5\xc4㲇\xc7\xd6.\xe1\x93${\x97\x85q5\xad\x95/g\xf4'@\xac\x9c\xb0[\b?\xc5\x17K\xfe\xe4\t\xdfN\xf1\xafR\x9bk\xcfΘn\xcc8\x89\"\xfc\xe1&\vj\xb2y\x9b\xdfZ\x13\"\xe9\xd8\xd7\xe5\x97I.1\x96\xe5\xae\x03\xcdYB\xbe\xf0\xc7;\xbai\xe9\xb3-Jݤ\xa8>\xactͭ\x8f~\n\xaf\x97\xbb\x82\xe5\x89<\xa1\x90\xb97\x18\xec\x92\U000c640c\xb5\x18\xdc\xd8b7\xf8(EZ\xf1\x97\xfab\xbe\xe5\x85\x19\x15\xee&\xf1\x14\x94\u009bf)(]a\xc6$\xcb \x81,{p\xc1BI#3\xc9Sh\v\xb5Ɨ\xe4\xeeU|\x19\xc5v機\x03\xfah]\xb4\xfaM2a\xfe\xed\xf5͙\x9d\xd2\x19\x91\x8aܾ\xba\xbb\xe9w\x95\x89\x90\xa3\xbbW7G\x1fpOҢS\xa3\xb6.\x17\xf9n\xa0\x828\xeb\xacOE\x81\xd8D\xe7V\b\xd0Z0\xa3\x05-F\xf7\xb0\x8a\xd2yӱ\x94\x84\xa3\xcdI\xbb\xc5/\xe8\xfe7\xc1\x14М}B\xc5\x14<\x97\xaa\xe7\xd5]Ua!\x97\x91N#\xb4\xf6\x02t\x10y!\x990\xba\xab\xd4B\x14\xd8M\x93\xf1\x93IY\x1cJ-t\x8c\xa1\xd4\xc2\xd61\x94Z\x18J-\f\xa5\x16\x86R\v\xddc(\xb50\x94Z\xf8\xac\x92\xa7\x87R\v\x8d1\x94ZH\x18C\xa9\x85mc(\xb5\xb0\xd7\x18J-l\x8e\xa1\xd4B\xe7\x18J-t\x8c\xa1\xd4¾c(\xb5P\x8d_\xce\x15\x9f\xa1\xd4§z\xc5g(\xb5\xb0\xcf\xf8<.B\r\xa5\x16\x86R\v\x01/C\xa9\x85\xa81\x94ZX\x1bC\xa9\x85ϕ\xa8\x86R\vC\xa9\x85\xa1\xd4B\xf7w\u007f\xedv\xd8Pj\xe1S\xb5\xc3>\x0f\vc(\xb50\x94Z\x18J-\f\xa5\x16\x86R\vC\xa9\x85\xa1\xd4\xc2Pja(\xb5\xf0+\xf2*&i\x8d\n\xb4,U\x16g\a\xb7\x89\xec\x95\\\x14\xa5\x01\xf2.\x80\xaa\x94娅\xa3,a\xbay\xa3\xff\xc3v\"̤\x98\xb2\x99W\xf4\xce\x17T\xd0\x19\x8c*\xfc\x8c\xea\xfbw\xe7\x1f\"7\x9e\xb3\x05\x8b+\xb2`G]\xb1ই\x87#Ѡ\xeekN\xf74\xa6\vj\f(\xf1\x92\xfc\xc7\xc9?~\xfb\xf3\xe8\xf4\xcf''?|5\xfa\xf7\x1f\u007f{\xf2\x8f1\xfeǿ\x9c\xfe\xf9\xf4\xe7\xf0\x8fߞ\x9e\x9e\x9c\xfc\xf0\xed\x9bo\xeen.\u007fd\xa7?\xff \xcaŽ\xfb\xd7\xcf'?\xc0\xe5\x8f{\x029=\xfd\xf3\x97\xd1S=\xb0q\xda>\x8f\xdf!\xe5\xd4)Eȷ\x17\xf4\xd12\xd8xRX\xc8R\x18w\xcb\xc6\x1d\xf3\xeaD\xb84\xac\xd8CI>\x95\x83I\xfa\x18\xda>\x1fm8\x9f\x11c8\x9f\xee|\xbe\xf3\xb4\xd3>\xa1\xd1s\\x\x95i\xc7\t\x8d\x86\x19\x047\x1a\xba\xd5<\x99&r\xc1\x8c5\xa7S\xae\x197\n\xa9\xe0\x95\x94\xa6\x8b\xda\xf1\xaax-o\xeanS0ݼ\xa0Ѹ\x14.\x83훢\x96RQ\xc7)\x90\xe7\x8cr\x982\x01\xb9SO\u007f}\xfc.\xe95\rY\xa9\x98Y\xbd\x92\xc2\xc0c\x94c\xbf}^nۀ\x88ی\xf8C\x13&Dd\xe1\xae\x1d\xadU\bÛ\u007fq*+\x10U\n\xf4g\xb9:\x17`\x9cs\a\xcdp\xbcٳ6\xf9(\xf0\xc1\xf5\xe2\xa8)\xb6\xe4\xaeO)\xd7ь<]\x1a[E\xe6\x8d5\xdf{\xedb\x05\x85\xe4 \xa4\xf1\x1e\xbf\xa4\xd3 \xa7\b\x8d8\x9fB\xe3\xb2@K\xe2%)\x99\xb50f:\xe0\xfc\xa6\x9a9F\x98\xe2S>4\xac\x9bq^\x18W^\x86\xa4\xa0\xbf\x02\x9acM\x99\x82\x9a\xb9\xcbS]P}\x0f\xb9\xfb!QǮB\xb2v\xc6\xd5\xd2\xefV\x05$\xc7SQ\xb7vٿ\x18\xe7\x8d\xf7\xc6\xf6(\xefE\U000f70af\xdeIi\xbe\xaeʘ\xf4\"\xe4オԎ\x03E#e\x8ee\xbb\xed\xfcF\xb8\x89X\xb6\xa5Yi\xc5S_\x8a\x95\xf0\x81\x19\x84*Ņ\xfeF\xc92Z\x15\xd8Pֿ\xb9z\x8d\xfc\xb2\xf4\x192¨\x15\x96\xa6Ja\x12\xed3W\xd9c\u007f\xf39MI\xd96\x15{\b\xe1z\xf2\x86\xae\b\xe5Zz\xc31!\x18\xdc\xe5!!\xdeU\x93r3z\"\xcd|ݧ\x83\xeca\xf3;\xf1\x05\x8c\xea\x04\x9bʓi\x97\xd0Dž\x84`\xe9=hR(\xc8 \a\x91ES\xef\xc7I\x83@ʿ\x96²\x97^\xb4\u007f\x15\xf2\u007f\x9c˸\x9fU\x8f\x99Jަ\xa7\x98\xaf\x84̥Ԡ\\r\x98*!m\xe3\xbf-'\xc0\xc18G\t\x16\xb9\xa5\xc6y\xfe\u0602\xce\xe2O\x135\x95(4\x92\x80Х\x02\xef47$\x97\tf\x80\xaf#e\x97\xfe\xb7\xab\xd7\xe4+rb\xd7~\x8a\xe4?\xa5\x8c\xa7T}\xc1\xdb\x1fk܄M\xc3\x14-J\xe3u\x02\x81ƾr\xac\xfa\x8c\bIt\x99\xcd\x03NS\xbcC\xc1y\xe5oH\xe1\x15\xb6\x815}\x02\xac\xa9\xa7`\xfd\x9b\x06\xd5[\xae\xfe\xed\x03\xc8\xd5>n0˛ڻ\x86\f\x85,\xc0М\x1a\x9a\x12|+E\xa3:\xe2\xdaQH\xa1\xdd\xddG\x01I;\x1a\xe6\xaf\xec(|\x1c)\xad\xe1;&\xcaGw;\xa0\xbfC\xf9\xf6\x12\xc1\x11\x1fJJ\x91(\x13 \xb4(8s\xe5\xfb\xd6Z\xc4\\\xb5H7m\xef7MM\x14\x0f\x94siՌ\x84\xf0\xb8\xa2\"\x97\x8b\x8d\xc5[C\x14h\x82U\xdcXp\xc7\xe1\xdcv\xd8\xe2ew}8\u007fm\x87\xad\x8f\xeb\x9e\xc3\x12\x12\xaa\x94\xaf7Q\xb2P\xacA\x1a\xa8\x06\xc1&y?9\x9d\x00w\xaa\xa1;9z\xf3\xe4${E\x13\x9d\xaaJ\xf2\xfe%/\xdeI\x0e.7> ɂ\xfd\xc5\xe0\b_\xee\x8b#\xf4>\xb5p\x94\xecE\xff\x14qT&hxd\x1dGVMl\xe3Ȃ\xfd\x85\xe0(9\x04\xa1!\xcb䢸Qr\xca\xe2\x0f\xeb\x86\xe8\xf7\xe0\xea\xe4\x9cx\xd1_j\xe8\xca\"G=\x12\x81\xc7k\xe4~2T5.=Q\xe3d\x9e\xbf\xc5\x15\r\xf4\xffk\xa8\x10ȵ\xcf\xd6\xf4\n\xff\xd5\xf8\xd96\xf3\x85\n\x99\a@\x1fT\xbaɌr\xecH\x94F\x17d\x9d6\xd6\x01\xf6\xb8\xcfE\\c;\x0f'\xe4\xf4aK\x16\xfc%\xc13@Bs?\x99C\xa3v\xbc\xbb\x80w\xe7\xee\xcbX\xd8I\x80õ8\xab\xa7\x84\xe4\xab<Į\xec\x17Ӧ+}\xa9\xec7UO%\x8bp\x10yj%\xa8\x82\x9a\xf9\x19Q\xc0\xf1\xe2^`h\xf7Ρu\x9c\xb6O\x8d\x05\a\xce\x106\x0e\xf5l&E\xda%v\\5\x86\x05\x82F\x947\xe5{\a.\x98Ιew\x86\x89YB\nF\xedQ\xa1\x9c\xb72\xf4\x0e\xe1R\t\x9c\xa0ꓺ\xe9:H\xf6\xd9;bn\xfb\x12{\xfb\x0f\xb6\xb87jwE\xbc3e\x87{ù+\xa2A~\x1c\xf7\xc6l\xa1\xe9+e\xbfk\x18\xe5\xb7E|\x87\x1f\xb2N\xcb\u07fc\xb9\xbdh\x83L\xe3\xec\x98\u05eb\x9czla\x12\x9a/\x98\xd6L\n\xf2\x00\x93\xb9\x94\xf7IpOB\xea\xfc\x8c\x99y9\x19gr\xd1Ȣ\x1fi6\xd3\xe7\xfed\x8f,vҚ\x9c0\xc1í\a\xe7!\x14F\x87\x88\x81]L\x9a\x96Ua\x15\t\xd0w*\xf4\t\xae\x9bh\xbfN-R\x857\x16>\xb8J\xb5I\x8a\u05c9\x05ş \xc7d\xbc\xf8\xea2\x8djO\x8e0\xeb}I\x13\xb7v/]\xe8\xe7÷\x11p\xa6Z\x06\xba\u007f\x1b\x81\xbfְH\x0e\xae8D\xa2\xddǦ\xad\x86\u07b5B\xe2\"ډ\xb6\xe41\xd6n\xf3S\xe5\xa2\x1f\x91\x1a\xb0o?\x8f%ی\f\xf16\x92\xb3\xe9\x14\xc2\r\xe7H\xb1WPE\x17\xd6p\xd0ħ\xfeN`\xc6\xdc5\xd3J\xb5\x8a\x8cPTE\xc2Μ\xba\xc7\fY\xb0\xd9\xdcyi\b\xc5R\x94\xf1\xe5&\x8d$\\Ҝ \x17\x97\x8a=4\x9f\xde{\fͧ\x87\xe6\xd3C\xf3\xe9\xd814\x9f\x1e\x9aO\xef=\x86\xe6\xd3C\xf3\xe9\xa1\xf9\xb4\x1bC\xf3\xe9\x8414\x9f\xde6\x86\xe6\xd3{\x8d\xa1\xf9\xf4\xe6\x18\x9aOw\x8e\xa1\xf9t\xc7\x18\x9aO\xef;\x86\xe6\xd3\xd5\xf8\xe54=\x1b\x9aO\u007f\xaaMφ\xe6\xd3\xfb\x8cϣ5\xdc\xd0|zh>\x1d\xf024\x9f\x8e\x1aC\xf3\xe9\xb514\x9f\xfe\\\x89jh>=4\x9f\x1e\x9aOw\u007f\xf7\xd7n\x87\rͧ?U;\xec\xf3\xb00\x86\xe6\xd3C\xf3\xe9\xa1\xf9\xf4\xd0|zh>=4\x9f\x1e\x9aO\x0fͧ\x87\xe6ӿ\"\xafb\xe2M\x91\x9cE\xb5lۣ[@J\xed\x93P\xbb\xd32\xb2r:\x05\x85\xc2\x17g\x17\x94\xa3\xb4K`\xa13T%\xba}F,6\nT@sW\xf3\"\xce/\xd89\xadP\x84\x14ۗ\xb9{\xa9\x91\xe1\x01r\xf9\xf6\xeb\xda\xe9\x9a\xd2\xea \xedv \xae\xe7\xad\xc8\xd2\xef\nՄ\xd0Q\x9d5\x0e\xb7.\x01?\xe3R\xfb{\xb2\x88\xeclN\x85\x00\xee\x95n\x16\x87\xd99\xd5d\x02 \x88,@8\xb5\x85\x12\xcdČ\x03\xa1\xc6\xd0l>\xb6+\x88\xf3\x9ey\"\xf0]\xeb\xea\x99j\xa3\x80.\x1c1(X\xc4\xf6\x19\xb4S$4SRk\xb2(\xb9aE5I\xa2\x01KeD&-]M\xeb\r\xc6$\xf1\xfa\x02\xeaY\xb5\x8a\xe89\xba2h\x8d3o\xa82g\xd8\x0evQ\x98\x95\xbbK\x15'\xf8\xb0k\xa7҆d\x9c\x810~ծ>#\xce\xf3\x8c\xc4\xe6\xc6\xe3\xf5]\xb7\vڣV\xe4\xe8\x15)\x8cv7}\xd2&꧘3\xed\xbdo\xfa\x8cP\x13\x04e4\xd1\aZB\xb2\x0f\n\x9c\x9b\xb5\xff)q\x9auI\u007f]_5\xab\x99\xe1\x94\xd38\xc500\xa5\xb3V-\x87\xda>\xc4$wd\xabQ`\xb1\xec\x90\xc3\x02\x1e\x1c\x01K\xcb? \x03\xb6D\u007f\x90\xe5\x8cQ\x10\u05f9\xe8\xb33ц\xee\xfa\x06\xb4\xa63\xb8\x89L\xb1\xd9\xe6 \xc6,\x9b\x9a\xb8\"\r.\xacFfdC\x87\xab/\xa0\xb4-\xd0(\xb0\v\xb7\xc6\xca\xe6|P\xcc\x18@\"\xc6\xceU\x98y\x18\x99\a\xbe1\xb9\xe6\xf5\x987\xe1\x83\xeeC\xb1Tk\xf5)\x91\xbbK\x1d\x13 \x13\xc5`J\xa6LP\xee\xefa\xc4]8\xc2~\x16T[ҤZ\x83B\x9f\x8bw;\x05\xdc\xc4\x11\xec\xf7\x1e\x91F\x95\"\xa3\x8d.\x97X\xfd\x8eM\xc9\f\xefzD\x1a\x13s*ȿ~\xf5\xef\u007f$\x93\x95Ղ\xd186\xd2P^m \a1\x8b\xac\xed\xef\xc5S\xbb\x0eYE\t\x9c-X\xac[\xc8\x1a\x03\xbf\xbb\x9f\xb4\x03\x8d\xe79,\xcf\x1b\xf49\xe2r\x16\x87\xd3W\xe1~eug2F\x91Or\xedw\xb0\x01\xc9Y\xb6Jf\x04\xa1y\x0e\x99\xcb\a\xe7\xca\xebyb\xeb+\x8e\x85,J\xeeR2\xbe\x0e\x95%\xa3@\x96\x1a6\xabau\xf2\xc1Xj\bS[\xef\x10\xee\xaeL\xf9\xa5\xc4)-\xbe\xf0\x9c\x0f\x8dW=s\xd0O\xfc5\xe5|B\xb3\xfb;\xf9\x9d\x9c\xe9\xb7\xe2R\xa9\xc86\xfbH\xfd\x01\x1f\x9cZ-f^\x8a{ly[\xd7\x1a\x96q\xd2V\x96\xa6(M\xb8\xe4\xddt\xef\x86͌\xae\aY)h\xc13\\\xcf\x0e\x1e\xed\xb9E\xf7l\x1c;\xf0\xc5w\x1cw\xe1rV\xcd[\af\x10{#\xe8w_\xfd\xeb\xbf9\x96E\xa4\"\xff\xf6\x15^\x19\xd5gN\x88\xa1n`\x15\xd9\x05\xe5<6\x98\xd5d0\x96\xe8\xc7\x1dL\xe2\xd9y\x84Ig\a\xcfbr\xdf\xdd\xfd\x1d\xedmf4\xf0陫=\x12<\x88Q@\x8fQ\x89;\xf6R\x16\x8b\xdc|\x04\x83v)y\xb9\x80װdY\\\x84\xbf\x85\xea\x16\x94\x10\t\xe2L\x1b\"\xe3\xaa@L\xb8\xcc\xeeI\xee\x015\xeef\xac\xf7\xb1\x8e\xc1L\xc2-\x94\xad\xab\xab\uf7d0\xd8fD\vZ\x14U-\aE\x1fZ\x8bE^\x12}\x01\x85\xa6\x06\xaaӳ:\xdctc\x15\xf6\xf0n\x03\xab5\xa0@0E\xac\xf4s\xc3\u07fc\xdehH\x15:\xe8%\xe5\x1a\xf8=qz\x9a\xdd9\xe4\xcc\xf1\xe1\xf5\x1eI\x0fiwzZ8\x16U\xae\xc0\x82\x1ao\xd3$\xe6\xcf \xd5\x16\xa04\xd3V\x81y\x8fg\xe2\x15\xa7l\x91~\xc3?\xa5!A\x8f\x16\xb0)y\t\xa3\x06\x9dF\xbe\x18\x8d\xe8^u\x8f\xe2\xee\xb68\x96\x86-}ӹ\xfe\x8d\xcc= dծ\r\xb35e\xa3\xc9a[\xa1\x87^\nG_\xb6\xff\xbe\xc6Q\x93\xeb\xbbu\xc6\x1fg<@\x0e\xa6g\xf6\x1f\x83}\xe3\xe4\x0f\xc0\xbd\x91o\xfbe\xf4\xad;\xd7t\xd8x\x82j\x98^\xdeG2v\xb9\xb1\t\xe0-\x05\xf9\xe9\x91\xe3\x97\xc7\x1f\x94\x87;t+Y\xd0\x19Z#=\xb1\xbe\x0e\xae_\xa1Yk&#Īg\f\u0085\xbc\xaam\x9e\x04\xd4]\xa8\xaf\xe5p0\x9f\xb0\xf2X\x02\xc4\a\xba\"T\xc9R\xe4.\xf6P\a\xa5ެ\xa1\xe3Z\x8a\x94)\xfb路4Uմ\xc54\x01&ȋ\xf1\x8b\xaf>7\xc1\x8f+Y\x13\xfc\x89\x85\x9f\x1b|\xeb\x83b!\xb4l\uf2497\xde\xc5ZwXO*;\xe9b@\b\xe4A1\xe3\xa9\xf9\x81i '\xb1^\xf30\xa4jֲ\x0e\xfc{\xd8\xe9\xfbj\xa1\xe3\x1eVU\xd8\x1d\xf1b\u007f\b\x01\xd0\x1a\x15\xbe\x8d\xfbnٿ3ʹ\x97\xbe\x11\xb0\xb6\xf7\xf4+4+\xb0\xc4\xe7HŮ\xe1X\xfbV\xcdR\xe89+\x9eJ\x8e\xa1\x98\xb2-\xa7\x01\xfbU\xf3^\a\xde\xd1ߕ8#\xd7\xd2\xd8\xff\xb9|d\xfa\x89\v9v/_K\xd0\xd7\xd2\xe0ӽ\x91㦶7j\xdc\xe3H\xd2\xc2\xf1H\xbc\xa4\x84ߨ\x96y\xf5\xf4\xfd\xf7\n\xc5L\x93+a\x19\x95\xc7AuYQ{\xf0\xcd;\x86\xc8\xd5vk\xa2\xee\xdb-\xf8\x0e\xad\xf6\x1bM\xcc5?\xb5\x1b\xe5\xadi\xb8)8\x8f\xb6\xfb\v&h\x17\x9cf\x90\xfb>\x13v㍢\x06flw\xfb\x81\x05\xa8\x19&\x1ad\xf3]\xab\xda#t\xb8\xa7\xe2}\b\x15y;\xab\x19Uh\u007f\x0e\x15\xda\xcb\x10\x14\x9f[\xb0\x11:\x89Q~\xf3$G{\x12c\x9b\xb2\xc8}\xda\vsZX\xca\xff\x1f˞\x91\x88\xfe\x97\x14\x94)=&\x17\xfe\x86ʖ\xef6\xdf\xf0\xbaN\x13\xb8\x85\xcb4\xb1\xbb\xb0\xa4\x1c\\\xa1b*\b\xec,\xbf\"\xa7\x1b\xd2\xf2\x8c<̥F\xc9P\a\x91\x8e\xeeaut\xd6:![ ڇ\xaf\xc4\xd1Y\x15/k\x1d\xcaJNa\b\xe3\b\xffv4\xde\x10\xb0[`?!vwRɎ?VZ\xf7\x1b\x97ڴ\xb9\xf3\xfb\xd2\xc7N\xdaب\xc0\xd8\xfcf\x8b8\x9a\xcaqˬ\xe8\xfa$U30]&\x88ט1\x95aL.\xc4j\x03.^\x8c\xebT\xb9\xbd\x11W\xd1Y\xd1j_\x84--1C\xa2\x01\xca'.\xe9nC\xd8>\xb8\xb9k;6\x05\x05\xa8Zµ\xcc\xe1F\xaa\xae\xfc\x8ev\xbcf\xfd\xf9\x0e\x8b\xb6\x81\x14\xc9s̳\xc7G;拺\xb1\u05cb\x0fi|\xfa\xef\u07fc\u007fj=\xef\xaa\aw/\x84bo\r\xb7_\x1d\xeb\xb0ﻻ6\x82\x16z.\r9\t\x97\xda3.\xcb\xdc\xdf\xecW\x1d\xf1\x9e\x1e\xab\xd4\xd9\x1c\xf2\x92Cw\xd3\xc1\x8d2\x95\xe1Ѡ\xfb\x95\x82\xfd\xb3l\xb7\xe8\r\x1e*\xfft\xd7A\xa8qR\x99\xd6\r\x8f\xaaeG\u007f\xc1\xfd\f_\xf2V\xa4\x87\xbc%\x15\xbe\tҝ\x05\xa9\r\xdeS\x12\xa6Qt-\x98\x9d\x99o\xcf\xe1\x1f\xef\xbcf\x17ְ\xed8t\xb0\x8fn\xe1:\xf2_݈\x88o9V.\x97\xbe\r\xa3\x8b\xe6n]\xce}F\vS\xaa\xd0\xfe\xbaT\xd8\x0f\xacnaB\x03\xe6<\x8aZ`\xb7\x1b\x06\xde/Ȥ\xb8c\vІ.\x8a'(\xe4\xd5\xe6\x1bv\x03\xa4\xcauU\xe9\xa4\xe9\"\xa8\x9bnuYŴn\xf5\x96\x8f\x1b\xb0\x1d\x18\xd4\xc9,h\xc8\t,A\x10\u007f\xc9\a#\xef\xce\x01\xd1\x01\xf4\x0e\x8d\x13\xb5\xc4X@\x80\x83\xf9\xbeS\xa9\bvի\xa6\xbeI\x11\xe1\xeaxN\r\x8c:o\x12\xeeu\x12;\xa5\x8e\xeb\x91\xfb\x04\x82/]#]\x94@\x19\xe6\x89\xd9\xed\xe5ܽ\x1dn\x1e\xf8\xab~\x0f\xa0\x80\xcc@X\x14wr\x1c\xafʺVO\x16\xb1\xfe\x04W\x0e\x9c;\xd7\x1d\xab\xa4<\xb4\xf0\xc5\n8A\xaalu\x99\xe1#\x9d\xb7\xacv]\xa0\xf77>\xde\x01\xd5]yK-D|\xdd|\xd6\xdb*\x0e\a\xb8\xf4\x8c\xba>y\xaec)S\xd0I\xfa~J\x12\xbf\x1cq\xc6\t)\xe6T?\xc5.o\xec3UK\xaeơ\xac8\xe5\xbb-s\x02Q.6\x81\x8f\xc85\xb3%&4ۣ\xd1Uy\x05\xed\v?\xa8\xc6\xc4SqW\x8f\xe7G\xb9\xb4\xee\xe7\xde\xe3O\xd2:~U\xe6\x95\x11yg>~j\xa5z\xacra\xda\xe7g\x006\xd1%^\xc1g\x9a\xaa\x14\t\xa6g\x005a<\xf5\xaaF}\xf7\xde\xc3H2,\x84\xc7\t@\x97\xa8>|\xb9}\xf8\xfd]\xef1@\x8a61\xb2t̞\x80\x1eH\v\x02\x1e\x98@0\xb5(\xc0e\u0081\xc1ҠE\xe5\xa8Gip\x150L\x1b\x90\x00\xda@\x89F\xeaT&\xf0\xa3H\x9e\xaa\xd2\x0f\xb6\x99\xae\xf2\x146\b\xa6R\xebf@it\x89\xc6\xc9\xc0B\xdf:*\xd3y:\xc0\xf8\x1d\x11\xe5{AJ\xba\x82\x16\\\x86\x811\x98\xd6|\x00\xbd\x05\x97I\xdb\xe2\xcf\xe2\xef\x01\x06\xea$\x14\xe8\xcd\xdf1qk\xb8CC`\x02։V;4āD?*\xf9\xcf\x06\xb6\x05\xa7y\xd2\\8\xac\xe5\xda6\xa9\x1c\x1a%r؉\xbc\xc2\v\x10*\x85B\xec\xc1 \xcd\x02\x95\xea\xc0\xe3.v\r\u007f\xd6\x06A\xaa\xad\xbe\x82̹\xd2^]^>J\x17\x96J\xa2\x8b\xa2R\xd2\xed/Y\xeb\xe5\xa6r\xda\xd8\xcb\x14w\x98_Z\xf9\xb8\x12&ɤ\xc3\xc4U\x06/E)W\x8c\xba\xe2\xe5\xb2.\xd2\xff\v\x12\xb5\xefz\xb8\xba=\xe9\x97uF\xaa\xc7\xce\vV\xe8#\x12 \xcd\xf6\n\xe3\x87z*ZF\xd3#\xe2\xceכ\xbb\xfb\xae2I;\xe4>\xf3\xbd\xa3a\xad\b\x88aRm\xd1x!n\x8d.\x18&\xaa\xb4\xd4R9\xfe\x91\xe4\x12Ր\xfd\xb6\xda\x14ґ\xdc\xffQ\xa1u$\xab5\\\xb3\xfd =\xac\xcaT8L\xd7p\xab\xe0Z\x14\x98_\v\x8b\xdf]\x00\xc4i\xbb\"\xc6Ɖ\xa0k\xfa\x86\x9d=\xd7:/\x82\x99\x9a\x90WX\xe3w%&\xbd%C\xe3\xe4V&\xbc0`\xabMk\x02lך\x856\xbej\xa16=\xd4}\xf8\xfc\xa8\xb5\xb96Z\x01\xbe\x90\xec\xdb\xd5L\xba\U000dc862\x15f*Ex\x1e\xc0\x84\xdaĬ\x0f\xdeLp\x93_aQ\xd2r\x9dA\xf1\xbe\xeeF(\x12\x8f\xd2\xc6\x1dy\x83\x82\x8dyӵU\x83\x03\xa3\xc2\xd3eH\xfc\xdaɴ\xb6\x1a\a\xdc<\xceQ\x8f\xd8VT\xb9{\xd0yU\xa0\xbd\xd7_\xd1:\x99\x8c\xf5\x1c\x10\xf1qt`\x907Z\xe2\xb0\xcb\xd0\xd0\xe2\xe4\x17l\xefF\xe1\x02\xaf\x19\x8b)\x9b<\xf1\x84 `\xe39@\xb63ϡ\xd4)\xec\xfcL\xb0\xd9\a\xa4\x0fe\xd3\xcag\xa3u\x8eb\x8ck\xf8\x92\xe4U\x8ai\xe3\xf2F\xf92\xa0\xf6\xe6`\x10\a\aB*\xd22rń\xaaj\xdeN\xd0\xc9\xfeJ\x18\x042\x14Ry\x98 Y\x05k\x92lj\x92\x0e\x8b\t<\x8fj\xa4o\x14\x84\x88M\x8eW\xe0L5\xa6\xeb\x01\x860F\xec\x8f\xf0,\x04PKX\u058c\xa9\xcdy.\x13$f5F\x9b\xb9Ƭ\x99\xa0\xef\u007f\x90a\x99\xd6O1L\xfa\x13\xf5k\x9d\x13$\x1c\xa7\xc2\x063\xb1\x93\xda\xd8a\x84\x83/\x98T\x0e\xa7֑p\x90\xca\xed\x16\r\xc1*3a\xd1\x06\x93r\x8cY\xc7M\x045s\\\xf0\at\xb5B'\xe117\xa6HaS<\t\x15\x18q\xb2\xd8U\tR\xa5r'\xd3J\xe4 \x95uB%\x9e>\xd1\xe07N\x1f\xcc)\xc4\x01\xfe\xde\x00\a*HJ=Ϧ\x15R8Zh3\xae\x1c\xa1\x1d\x82\x99f\xc3F\x90\x05\xd4S\xee\xa8m\x86\"\xfa\x1a\x95\x94]jkw.ZI\xf9\xa00\x17\x1b\xcc\xc1b\x8e\x89\xd3f\x9a=1J\xe0[\xac\xfd\x9c\xe0\xec\x88%m}\x06)\xea\xac\x11m\x9b\xd3\xf0\x9c\xc9$\xf3\xf1\x1bi\x19ÂT\xa3e\x8b!\xca2\xdf\x1f#\x1ab4\xa3\x9el\xceh\xb4-\xc2|\f\xe1N\x19\x92\xb6E\xda\xe0\xb6\xcdX\xe3>\xd7\x1b\xb5ycz\x0fM\xf5M\xca~{0\xfc\xf5\x95\x9d\xd8-i\u007fw\xbb\x05,J\xb7\xbf\x00\xe9\xc2\xd3\x18\xa8\x14`\xb5x\xfc\xc6\x04w\xdaj\xb9\x1d\x8e~\xf5\xd5\xf2*Rk\xd0\xf8\x8d\b\x8d\x9d\xd5]\xed\xab\x16\t\xecSw\xe4\x05\xc8m#\xb0\xf4\x02\xb62wȱ\xd4\x1c\xa2\x9d@gVr\xafɠX\xdfK\xad\x10.\xc9n\x9a-mĈ\x01\xaf\x86\x00|\\\x1e\xf60,\x83\b\x90\xd0\x04\x15\x9c\x05\x91\x06\v\x9f]\xb9\xe7\xf5\xd1>\xe1\b\xf0\xc3珘α\f\xe25\xf5\x80\xa8\x0f\x83H\xa7\x8b\x02\x13\x18\x05\xb2C\x14\x87i\xcd\x1e\xcf\xe7\xd0.@\xc0\x13\xee}d5\xba\xb9\x1ck$Zр4\xc8\t=6#O\xb8gPu\x86.\n\xde\x12U\xf1\xed\t\xf7\xb1]\aL%\xfc\xea\x1c\x85\xe7.=`*b\x96R\xdb\x1a\xa6\xd6k\a\x9c\x8e#\x16\x96\x19\xa5\xd0\x02\xc7O$\xbb\x11X/-\xfd\x84\xfbw\u058b\x8fVM&\xcb\x05\x1c \x83\r\x16y\x85\x85|\xec\x83\xc8e\xdaL\xc6\xebd\x01\xc4[u\x01\x9f\xb5\xa3?7/\xd2\x12\x8a*\x85\x8f\x1a\xedg\xed\xf8\xc9we\xb1'\xe2D\x06\xfb\xc1\xbc,\x95w\vėE\xf3\xb78\xb0\v%\x15m\xc4&-\xdc*ڟy\xfe,\x11S\x86\x019\x8fVQY\xce\xe8*\xadV\xec\xa6\xc3l\v\x80v\xf1\xaaE\xa5MOR\x17\v!\x8e\xa2X\xa3wO\xdeʿ9ȅ\x1fk\x06\xcb\\$\x98BZq\xbe\x9d\x13\xef\xc2\xe1\xa3L\xa0@\xf3\x88P\x92߈W\xaa\x05\x96ܷ\x13\xb40>\xb4\b\xadv\vi\x1cb+Z\xf5\x91=\x83\x98\xa3\xbaOdُw\x8f\xa3\x92\xdd;\xc7CQ\xdc\x17iʩg\x91\u007fY\xe8Y\x16\xca\xeb0\x06\xf1H\xfa\xf0\xa3\x10\x9c\xec\xfd\x17\xb9WV\xef\u007f\xc7yC!\x8d]\xc3\a>\xdc̱;>d\t;SE\x81$L\xa4\x05ғ\x9d\xc8)| \xe3\xad\x00s\x1fL\xe8\xedA\x04\x15gb\x9e3m\xbd\xcf\xdfJ\xcc\xf9t\xeb\xfc\t\xf7\xe7\x17\a\xd6\xeb\xfcV\x9d\xc7\xc1$\x9b\u007f`\xb4\x9a\xa8E\xab|\x0f\xe7\xfc\xee\x9c\x03\xb3%K\xe4\x84\xe0m\x81VGw\xe5\xe3\xe7%[\x01\xdak\x87\xa8\x85\x067\x87\xb4\x14\xc2\xcfQ\x11\xadӥ\xb6n\x11Z_\xb4u>\x01\xd8\v\xb7G2\x841\xbb\xbf:k\bb\xebЀuڄ\x03Q2\xbb\x83\x049I\xde\xce˞D\xddd#=`\xdad\x9e\xb7\x16\xc2\xdb\xf4s\u007fRJ\xff\xcf\xc3L8Xbإ\xd1\tZ;\xafJ\x91\x9ec&a\xdb$k\x85\u07fcm\xa3LsL*9\xb4e\xa18\xb1\xf6\x84\x8d\xcd\xcdK'\xefLf\x88~Ǩ\xf2)8\x02\x17\xbd\x14\x85\x18\x1e\xceG\xa3{\xedG\x87\x05X\x03\xf3\x1b&\xf3X\xb1QY\x167\xd7*\xf9k\v<\n\xa9ny\"x\xff݂\x15\b\xa6\x1cO\xdd\xca\\\x87\xf1\xad@\x9a\a\xb1\xfbW\bG͚\xcfj\f\xf6${x\x92\x11/)\xa0`Zi\xd7M\xd6\xd43\xbd\xb3\xb0\x95ƺ\x16\xe1\x05P\xa5\xe5\xe3\xe4\xef\xbb\xc7T7Ɯ\xbc\xc5\xfcŏ\xee\xa4\x153\xfd\\\x17F,\xd9X\a\xe6gb\x87 \xb7 \x1d\xa0Jt\xa58\xe1E悦Y\x00\xd1\v\xd1;\x93H\x9f\xd9\x19\xac\xaa\"\x9e!+\xd6N\xa9f\xb3c\xdd!?\t\x19\x97\x9d\x82\xd3\xc4\xead\x81\xba\x9au\xedm\xebWv\xf8ѽ\n\x98B\xbcȢ*@\x14$\x96%\xfb\xc6-cӔ\xcbxY?\v\xe9\xf8Џ`\x93x\x96Y\xd3D\x17e\x8e\x0ea\x83[m\xd8\x1eX\x99b\x13>\xd4\xf2\x1f\xad7\x99j\x02\xb6B\xe6\x95Y`\xa3\x17Kf龭6O\xaf\xbf\x19\x8bGd\xc5̌L\xba/\b\x9a\xe7\xfdGi\x96\x85\xcc_\f\xbe~hZ\x1aIZ\xaa\xe7\xa2\xd3Y\x98\x1c\xbd\xf6\xa3\xd3Zy\x85\xdaO\x85\xa7\xb3P\x19\x93\xb7\xf0\xb4io\xe1\xe9[x\xfa\x16\x9e\x0e\xda[x\xfa\x16\x9e\xbe\x85\xa7\xe3\xed-<\xed\xb4\xb7\xf04\xda\u007f\xc4`\xe8\xbf::\xd2!\n\xab\xc8\x12\x8c9\xb4g\xe6\xaa+\x8d\xae\xf3\xca:4K*\xa4o\xc7G\x8e\xd4\xd0'\xbeˊ\xbf֚Қ\xb6t\xa5uzM\xc94-ɰ\x98\xfc\xb7\x18\x11Qxt\x19\xf4t\xb5}l\x01\xdd\\\xd9\\\xbfv\xbc)W\xf3\xffM0\xc4\xe90}-=\xff\x8dO\xb7\xe6\xaa_\xfb\xc6\xfb\x80\x80\U0006fcae<\xb2\xacm\xa6\x98\xedx!\xfe\x94\x87\x0f\xbc\x1c\x1c.\xf4\x99iz\x85߿j^FT\x9bMטէ\x96\xe8\xc4\xee\xfd\xba\xff\xc6\xe9\xba\xe2l\x82\xb2g\xe92\xff\xfd\x11m]\xd5c\xb7\xac=\xe8i\xfd\xedߐ\xc7\x13\x10\xb5\x01%s/\x80\x00\xa1\xc7~\xf8\xa5\xf4[\xe4\x93\xd7\xf9\xfcF-\xbe.mi5ZS?4\xefU\xbe\xa1\x06m\xd9\a\x02\xb3\xf5f1HCL\x95\xd9x\xfd\xd8\f\xd4%\xb5e\xb1{\xf0\x88:\xb2\xf8\xea\xb18\xf6\x00\u007f\xb1\x1b[3\x16\x1d\xb5\xc5և}\x9f\xaa\xb0\xc8Z\xb0N\x85\xd7,\xc8\x13+\xc0\xa2\x19\x16W\xed\x15]\xe3թܚ\xe7֑ʮ\xf1z\xadY\x90c\xf5\\1UZQ\xb8F\xd7f5\x15W\xf3\x99\xc4o\xaa\xc8z\xfd\xda\xef\u05cc\xf3\x8f\xd7WEUUE\xed\x05\xe6q\x8e\xaa\x9bZZ-\x15\xc5ե\x95QM\xd5ӑ\x89\xa3\xea\xa1\x0ek\x9d\x8e\x912[\x055]\xe1t\f\xecX\xedSD]\xd3\x11\x90݊\xa7\xc5a\xc0\xac6\xcdt\x18\xff\xaa>\xb4y_\x9b\xff74\xf0[\x89\xd6&E3\xbb+Y\x82\xfa,\xda\xfd|\xe5`\xfe\xc1\xe7:\xe1cr\xea\xd5\xdd\xf1LEQ\xba\xf9|$\x81\x9f\xa5J\xbd&\xd1b\xe9\xc44|C\x05\x17\x985a\xd6t\xc5m\x1b\xd1\x0ev[\x16KAF=\x85\xcd\xdeg\x85\xec\x1anD\x925\x1d' \xf2̙\xb0\xb4\xb3/\x84\x83\xf3f\x1b{\x19Fғ\xf35\xc0O\xba\xc9 t>\x0f\x9d\x80keQ\xe6{\xa8,\xc2y\x1fз\xed\xc2&u\xc7*Q\xdaL\x87\x9b\x04\"6bw\xfd\x11#\xf9\x92p\x8f@\x92\xeb*mf8\"n\xa1\xf6\xf0\xe5\x81#9\xfez:i\xbf2\xaf#\xb5\xb0\xaf\x1a|\x84>\x01r\xea\xf2\x88E,\x9bΪX\xa7\x8dx\xc4O\xda߫\x11ó\xfe\x88\xde\xd5*\xb5]\r9ֺhrR\x93=mC\x80\xed\xd1K\xbd\xda\xda$\x14a;ergֹsy\x04q\xf7\xf7\x9f\xb2\xb3Y\xee\b\xf1XNLo'a\tku\"\xd9\x16q\x8a\x82OX\xbe\xdf\x1d\v\xc7\"\xb2#&\xa3\xb2\xf8˳B\xf35,T{\xab\xbc\xa4fn]\xf9\xcb\xc1\xc0 \xe01\xf3A\xf6o\xd0}\xcc署A\xd6\xdf\xfd\xe5\xcd83.\xdcCsȺ\x99\xf5?\xbd\xf6\xc7#\xea\xd5\xf8\xd5/\xab\xe66\x9a\xb3\b\xceZ'\\ec.\xf8᎐\x88\xd2U\xa6v\xafIe\xf8\xc2\t\x02\x82\xfe>\x86Ӯ\xf8ɅuQ\xb2\xfc\xd4tl3\f\xd6\xf9\xf3\xa8`\xa0\xe0YX\xbe;ǟF\x8d\xba\xe6沠\xc9\xdbs\xbcw\xbd\x82T8\\\x11\xfc\xd3\xc49\xba\x0e\xf8\x82\x8e\x19J\xbfP\x9f\xe6t\xbcf4\x0f\f\x17{\xdcM\xa1>~ܹ\x82\xcf\xf8<\xf2\xf4F\x11\x11\x87\x9bQ\u007f\xa6\x89)g(Ʈ7;J\xe2\xae\x19\xc5\a\xca#֢o\xe6\x06\xdd\a\x99j\x91\xe7\x1d\x88\xfe\xf0xL\xac\xff/\xb7>m\x94\x10M\xbf;\xe81i\xb8\x8e\x1a\xad)\x835\xba\xa4\x0e\x1eZ4;L;JR\xfb\xf0\xfaI\xbb\x00E\x92`\xe9\xeaÏ\xee\xed\u007f\xe7\xe7\xfc#\\\xee\xc7?\x13\xad|Lm\xaf\xe0\xaf\u007f;\x83\xda\xd7>\x84\x1b\xfc\xe8\xe1\u007f\x02\x00\x00\xff\xff_q\xf0n+Q\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4V͎\xe44\x10\xbe\xe7)J\xcba/$\xbd+\x0e\xa0\xdc\xd0\xc0a\x05\x8cFӫ\xb9 \x0en\xa7\xd2mƱCU\xb9\x87\x06\xf1\xee\xc8vҝN\xd2̀\x84o\xb1\xeb端~REY\x96\x85\xea\xcd\x13\x12\x1b\xefjP\xbd\xc1\xdf\x05]\xfc\xe2\xea\xf9\x1b\xae\x8c\xdf\x1c?\x16\xcf\xc655\xdc\x05\x16\xdf=\"\xfb@\x1a\xbf\xc3\xd68#ƻ\xa2CQ\x8d\x12U\x17\x00\xca9/*^s\xfc\x04\xd0\xde\tyk\x91\xca=\xba\xea9\xecp\x17\x8cm\x90\x92\xf1\xd1\xf5\xf1C\xf5u\xf5\xa1\x00ЄI\xfd\xb3\xe9\x90Eu}\r.X[\x008\xd5a\r\x8c\x14\x95DI`\xc2\xdf\x02\xb2puD\x8b\xe4+\xe3\v\xeeQG\xc7{\xf2\xa1\xaf\xe1\xf2\x90\xf5\aP9\xa0m2\xb5M\xa6\x1e\xb3\xa9\xf4j\r\xcb\x0f\xb7$~4\x83To\x03)\xbb\x0e(\t\xf0\xc1\x93\xdc_\x9c\x96\xc0L\xf9Ÿ}\xb0\x8aV\x95\v\x00־\xc7\x1a\x92n\xaf46\x05\xc0\xc0T\xb2U\x0e\\\x1c?fs\xfa\x80\x9d\xcaN\x00|\x8f\xeeۇOO_m\xaf\xae\x01\x1adM\xa6\x97\xc4\xf7Jd`\x18\x14\f(@<(\xad\x91\x19t B'\x90Q\x82q\xad\xa7.\xe5\xe8l\x1a@\xed|\x10\x90\x03\xc2S\xa2|\x88\xac:\x8b\xf4\xe4{$1#\x1b\x83ڥ\xfa&\xb73\xac\xefc8Y\n\x9aXv\xc8\xc9\xd3@\t6\x03\x03\xe0[\x90\x83a \xec\t\x19\x9d\xccQ&~ZP\x0e\xfc\xeeW\xd4R\r9\xb8S\x1d\xda;\xc5\xf8\xbf' 2\xcde$\xf6m)\x98Nѹpfm\xf20\x8e\xb9\x1b\xf9Z\xe9\xeem\x8f:f0\x92\x18\xb5Mktj\x0fh=\x81ZS\xa9ބ$i\xfcK,\xc3$\xc9hf\xf3%\xf6\xe7\xebh\xd6\xc7Iz9(\xc6\xf9\xe5\f\xd3C\x94\x99\xfb\xb7\xa6E}\xd2\x16\xb3\x89N\xd64ׯύڀ\xfc\xbf\xd9\x1b\xb7\bw\x1eY\x96J\xff\xb0騞\f\xe8\xc1\x10Pp.\xf6\xedbB& \xf3I\xbe\x901\x82\xdd\n\x9aU<\x9f\\\xeb\xd3&\xa0\xa2c%\xb9\x9fpH\xf6\xe0'\xe3Z1x;\xd7\xf9,\x87כ\b\xcd'\xfdI\xff\x9br\x1c7\x86p\xd5w\x99P\xad>D\x8fk\x8c\xaf\xf7׀2X\xabv\x16k\x10\nK\xed\xac\xab\x88\xd4i^5c\xa9]\xf6\xa9W\nh\xa1\x10\xfb\xe4\xe5\x80\xeeV7\xc0\x8b\x9aO\xf9+ϰ;\xddR\xbd;/\x87˖ʥ[C\x9cݥ\x98\x15\xce\xdeD\xcaj\xf6rI\xafn\x1e\vB\xb6S\xd9qf\\\xb5Ƹ\x88,c\xb8\ta5ً\xcbd\xbe\x99\x84\xc7\xe2I\xed\xa7\x01s\u061d\xff\xf4c \xc3H\x86?\xff*.\xd39.s\xbd`s?߂߽\xbbZgӧ\xf6\xae1y\x89\x87\x9f\u007f)\xb2cl\x9e\xc6\x1d4^\xfe\x1d\x00\x00\xff\xff;,8\xce>\f\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4VM\x8f\xdb6\x10\xbd\xebW\f\xd2C.\x95\x9c\xa0\x87\x16\xba\x05n\x0fA\xd3`\x11\xa7\xbe\x14=\xd0\xe4Ȟ.E\xb2\x9c\xa1\xdb\xed\xaf/HQ돕\xb7Y\xa0э\xc3\xe1\x9b7o>\xec\xa6m\xdbF\x05\xdabd\xf2\xae\a\x15\b\xff\x16t\xf9\xc4\xdd\xfd\x0fܑ_\x1d\xdf6\xf7\xe4L\x0f\xeb\xc4\xe2\xc7O\xc8>E\x8d?\xe2@\x8e\x84\xbckF\x14e\x94\xa8\xbe\x01P\xceyQ\xd9\xcc\xf9\b\xa0\xbd\x93\xe8\xad\xc5\xd8\xee\xd1u\xf7i\x87\xbbD\xd6`,\xe0s\xe8\xe3\x9b\xee\xfb\xeeM\x03\xa0#\x96\xe7\x9fiD\x165\x86\x1e\\\xb2\xb6\x01pj\xc4\x1e\x8eަ\x11٩\xc0\a/\xd6\xeb)XwD\x8b\xd1w\xe4\x1b\x0e\xa8s\xec}\xf4)\xf4p\xba\x98 *\xaf)\xa7mA\xdbT\xb4\x0f\x15\xad8Xb\xf9\xf9\x19\xa7\x0f\xc4R\x1c\x83MQٛ̊\x0f\x93\xdb'\xab\xe2-\xaf\x06\x80\xb5\x0f\xd8\xc3\xc7L1(\x8d\xa6\x01\xa8\xf2\x14\xca\xed,\xc0\xdb\tQ\x1fpTS.\x00>\xa0{w\xf7~\xfb\xdd\xe6\xc2\f`\x90u\xa4 E\xe4\xe5D\x80\x18\x14\xccL\xe0\xaf\x03F\x84mQ\rX|D\xae\xa4\x1fA\x01f\xfe\xdc=\x1aC\xf4\x01\xa3\xd0,\xf0\xf4\x9d\xb5י\xf5\x8a\xd7\xebL}\xf2\x02\x93\xfb\n\x19\xe4\x80s\xfahj\xb6\xe0\a\x90\x031D\f\x11\x19\x9d\x9c\xcau\xfa\xfc\x00ʁ\xdf\xfd\x81Z:\xd8`\xcc0\xc0\a\x9f\xac\xc9\xedx\xc4(\x10Q\xfb\xbd\xa3\u007f\x1e\xb1\x19ė\xa0V\t\xd6ʞ>r\x82\xd1)\vGe\x13~\v\xca\x19\x18\xd5\x03D\xccQ \xb93\xbc\xe2\xc2\x1d\xfc\xe2#\x02\xb9\xc1\xf7p\x10\tܯV{\x92y\xac\xb4\x1f\xc7\xe4H\x1eVeBh\x97\xc4G^\x19<\xa2]1\xed[\x15\xf5\x81\x04\xb5\xa4\x88+\x15\xa8-\xd4\xdd\xd4\xed\xa3\xf9&\xd6A\xe4\xd7\x17\\\xe5!w\x11K$\xb7?\xbb(\xed\xfeL\x05r\xa7O\x8d0=\x9d\xb28\t\x9dMY\x9dO?m>\xc3\x1c\xba\x14\xe3Z\xfd\xa2\xfb\xe9!\x9fJ\x90\x05#7`\x9c\x8a8D?\x16Lt&xrR\x0e\xda\x12\xbak\xf99\xedF\x92\\\xf7?\x13\xb2\xe4Zu\xb0.\xbb\x06v\b)\x18%h:x\xef`\xadF\xb4k\xc5\xf8\xd5\v\x90\x95\xe66\v\xfbe%8_\x93\xd7Γj\xe7\x03V\x97؍z-O\xf2&\xa0\xbe\x18\xa0\x8cB\x03\xd5\xc9\x1e|\xbc\xd2U\xcds\xbe\x8c\xd7]\xb8/\x0f8L;~\xa0\xfd\xb5\x15@\x19S~!\x94\xbd\xbb\xf9\xf6\x19\xc1\x16\xf2^\x97H\xb9Q\a\x1f3\xa3#\x19\x8c\xed\x9cge\x92bM\x98\xd0\x1a\xee\x9e@\xdeм&Y \x9fҼ\xe0qW\xdd2\x93,\xf4\xfcl\xdaPX\x17fY\x9fj\x8f\xb7\x18,d\x9c;\x9c\"^\xcdj\xfb\x18\xe0\x8bzG\x94$~y\xf7\x94g\xd5sW;H\xa7\x18\xd1I\xc5\\ش\xffO\a\x85\x83b\xfc\x0f͗#\xdc\xe5\x97s\x19,\r\xa8\x1f\xb4\xc5\t\x10\xfc\xb0\xd0m/\xa2\x9c?ti|ʭ\x85wGEV\xed,.\xdc\xfd\xea\xd4\xcdۛ\xc5_\xac\xe7\x13#\xe7ujz\x90\x98&\xec\xdae\xd5r\xaa\xbe\xd2\x1a\x83\xa0\xf9x\xfd\xaf\xe7ի\x8b?.娽\x9b\x86\x95{\xf8\xed\xf7fBE\xb3\x9d\xff\x81d\xe3\xbf\x01\x00\x00\xff\xff\xbf\xca\xff\xa71\n\x00\x00"), } var CRDs = crds() diff --git a/config/crd/v1beta1/bases/velero.io_backups.yaml b/config/crd/v1beta1/bases/velero.io_backups.yaml deleted file mode 100644 index 860731487..000000000 --- a/config/crd/v1beta1/bases/velero.io_backups.yaml +++ /dev/null @@ -1,439 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: backups.velero.io -spec: - group: velero.io - names: - kind: Backup - listKind: BackupList - plural: backups - singular: backup - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - description: Backup is a Velero resource that represents the capture of Kubernetes - cluster state at a point in time (API objects and associated volume state). - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: BackupSpec defines the specification for a Velero backup. - properties: - defaultVolumesToRestic: - description: DefaultVolumesToRestic specifies whether restic should - be used to take a backup of all pod volumes by default. - type: boolean - excludedNamespaces: - description: ExcludedNamespaces contains a list of namespaces that are - not included in the backup. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources is a slice of resource names that are - not included in the backup. - items: - type: string - nullable: true - type: array - hooks: - description: Hooks represent custom behaviors that should be executed - at different phases of the backup. - properties: - resources: - description: Resources are hooks that should be executed when backing - up individual instances of a resource. - items: - description: BackupResourceHookSpec defines one or more BackupResourceHooks - that should be executed based on the rules defined for namespaces, - resources, and label selector. - properties: - excludedNamespaces: - description: ExcludedNamespaces specifies the namespaces to - which this hook spec does not apply. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources specifies the resources to - which this hook spec does not apply. - items: - type: string - nullable: true - type: array - includedNamespaces: - description: IncludedNamespaces specifies the namespaces to - which this hook spec applies. If empty, it applies to all - namespaces. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources specifies the resources to - which this hook spec applies. If empty, it applies to all - resources. - items: - type: string - nullable: true - type: array - labelSelector: - description: LabelSelector, if specified, filters the resources - to which this hook spec applies. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, - Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. - If the operator is In or NotIn, the values array - must be non-empty. If the operator is Exists or - DoesNotExist, the values array must be empty. - This array is replaced during a strategic merge - patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. - type: object - type: object - name: - description: Name is the name of this hook. - type: string - post: - description: PostHooks is a list of BackupResourceHooks to - execute after storing the item in the backup. These are - executed after all "additional items" from item actions - are processed. - items: - description: BackupResourceHook defines a hook for a resource. - properties: - exec: - description: Exec defines an exec hook. - properties: - command: - description: Command is the command and arguments - to execute. - items: - type: string - minItems: 1 - type: array - container: - description: Container is the container in the pod - where the command should be executed. If not specified, - the pod's first container is used. - type: string - onError: - description: OnError specifies how Velero should - behave if it encounters an error executing this - hook. - enum: - - Continue - - Fail - type: string - timeout: - description: Timeout defines the maximum amount - of time Velero should wait for the hook to complete - before considering the execution a failure. - type: string - required: - - command - type: object - required: - - exec - type: object - type: array - pre: - description: PreHooks is a list of BackupResourceHooks to - execute prior to storing the item in the backup. These are - executed before any "additional items" from item actions - are processed. - items: - description: BackupResourceHook defines a hook for a resource. - properties: - exec: - description: Exec defines an exec hook. - properties: - command: - description: Command is the command and arguments - to execute. - items: - type: string - minItems: 1 - type: array - container: - description: Container is the container in the pod - where the command should be executed. If not specified, - the pod's first container is used. - type: string - onError: - description: OnError specifies how Velero should - behave if it encounters an error executing this - hook. - enum: - - Continue - - Fail - type: string - timeout: - description: Timeout defines the maximum amount - of time Velero should wait for the hook to complete - before considering the execution a failure. - type: string - required: - - command - type: object - required: - - exec - type: object - type: array - required: - - name - type: object - nullable: true - type: array - type: object - includeClusterResources: - description: IncludeClusterResources specifies whether cluster-scoped - resources should be included for consideration in the backup. - nullable: true - type: boolean - includedNamespaces: - description: IncludedNamespaces is a slice of namespace names to include - objects from. If empty, all namespaces are included. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources is a slice of resource names to include - in the backup. If empty, all resources are included. - items: - type: string - nullable: true - type: array - labelSelector: - description: LabelSelector is a metav1.LabelSelector to filter with - when adding individual objects to the backup. If empty or nil, all - objects are included. Optional. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: A label selector requirement is a selector that contains - values, a key, and an operator that relates the key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: operator represents a key's relationship to a - set of values. Valid operators are In, NotIn, Exists and - DoesNotExist. - type: string - values: - description: values is an array of string values. If the operator - is In or NotIn, the values array must be non-empty. If the - operator is Exists or DoesNotExist, the values array must - be empty. This array is replaced during a strategic merge - patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator is - "In", and the values array contains only "value". The requirements - are ANDed. - type: object - type: object - metadata: - properties: - labels: - additionalProperties: - type: string - type: object - type: object - orderedResources: - additionalProperties: - type: string - description: OrderedResources specifies the backup order of resources - of specific Kind. The map key is the Kind name and value is a list - of resource names separated by commas. Each resource name has format - "namespace/resourcename". For cluster resources, simply use "resourcename". - nullable: true - type: object - snapshotVolumes: - description: SnapshotVolumes specifies whether to take cloud snapshots - of any PV's referenced in the set of objects included in the Backup. - nullable: true - type: boolean - storageLocation: - description: StorageLocation is a string containing the name of a BackupStorageLocation - where the backup should be stored. - type: string - ttl: - description: TTL is a time.Duration-parseable string describing how - long the Backup should be retained for. - type: string - volumeSnapshotLocations: - description: VolumeSnapshotLocations is a list containing names of VolumeSnapshotLocations - associated with this backup. - items: - type: string - type: array - type: object - status: - description: BackupStatus captures the current status of a Velero backup. - properties: - completionTimestamp: - description: CompletionTimestamp records the time a backup was completed. - Completion time is recorded even on failed backups. Completion time - is recorded before uploading the backup object. The server's time - is used for CompletionTimestamps - format: date-time - nullable: true - type: string - errors: - description: Errors is a count of all error messages that were generated - during execution of the backup. The actual errors are in the backup's - log file in object storage. - type: integer - expiration: - description: Expiration is when this Backup is eligible for garbage-collection. - format: date-time - nullable: true - type: string - formatVersion: - description: FormatVersion is the backup format version, including major, - minor, and patch version. - type: string - phase: - description: Phase is the current state of the Backup. - enum: - - New - - FailedValidation - - InProgress - - Completed - - PartiallyFailed - - Failed - - Deleting - type: string - progress: - description: Progress contains information about the backup's execution - progress. Note that this information is best-effort only -- if Velero - fails to update it during a backup for any reason, it may be inaccurate/stale. - nullable: true - properties: - itemsBackedUp: - description: ItemsBackedUp is the number of items that have actually - been written to the backup tarball so far. - type: integer - totalItems: - description: TotalItems is the total number of items to be backed - up. This number may change throughout the execution of the backup - due to plugins that return additional related items to back up, - the velero.io/exclude-from-backup label, and various other filters - that happen as items are processed. - type: integer - type: object - startTimestamp: - description: StartTimestamp records the time a backup was started. Separate - from CreationTimestamp, since that value changes on restores. The - server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - validationErrors: - description: ValidationErrors is a slice of all validation errors (if - applicable). - items: - type: string - nullable: true - type: array - version: - description: 'Version is the backup format major version. Deprecated: - Please see FormatVersion' - type: integer - volumeSnapshotsAttempted: - description: VolumeSnapshotsAttempted is the total number of attempted - volume snapshots for this backup. - type: integer - volumeSnapshotsCompleted: - description: VolumeSnapshotsCompleted is the total number of successfully - completed volume snapshots for this backup. - type: integer - warnings: - description: Warnings is a count of all warning messages that were generated - during execution of the backup. The actual warnings are in the backup's - log file in object storage. - type: integer - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_backupstoragelocations.yaml b/config/crd/v1beta1/bases/velero.io_backupstoragelocations.yaml deleted file mode 100644 index 86bc003e0..000000000 --- a/config/crd/v1beta1/bases/velero.io_backupstoragelocations.yaml +++ /dev/null @@ -1,179 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: backupstoragelocations.velero.io -spec: - additionalPrinterColumns: - - JSONPath: .status.phase - description: Backup Storage Location status such as Available/Unavailable - name: Phase - type: string - - JSONPath: .status.lastValidationTime - description: LastValidationTime is the last time the backup store location was - validated - name: Last Validated - type: date - - JSONPath: .metadata.creationTimestamp - name: Age - type: date - - JSONPath: .spec.default - description: Default backup storage location - name: Default - type: boolean - group: velero.io - names: - kind: BackupStorageLocation - listKind: BackupStorageLocationList - plural: backupstoragelocations - shortNames: - - bsl - singular: backupstoragelocation - preserveUnknownFields: false - scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: BackupStorageLocation is a location where Velero stores backup - objects - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: BackupStorageLocationSpec defines the desired state of a Velero - BackupStorageLocation - properties: - accessMode: - description: AccessMode defines the permissions for the backup storage - location. - enum: - - ReadOnly - - ReadWrite - type: string - backupSyncPeriod: - description: BackupSyncPeriod defines how frequently to sync backup - API objects from object storage. A value of 0 disables sync. - nullable: true - type: string - config: - additionalProperties: - type: string - description: Config is for provider-specific configuration fields. - type: object - credential: - description: Credential contains the credential information intended - to be used with this location - properties: - key: - description: The key of the secret to select from. Must be a valid - secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object - default: - description: Default indicates this location is the default backup storage - location. - type: boolean - objectStorage: - description: ObjectStorageLocation specifies the settings necessary - to connect to a provider's object storage. - properties: - bucket: - description: Bucket is the bucket to use for object storage. - type: string - caCert: - description: CACert defines a CA bundle to use when verifying TLS - connections to the provider. - format: byte - type: string - prefix: - description: Prefix is the path inside a bucket to use for Velero - storage. Optional. - type: string - required: - - bucket - type: object - provider: - description: Provider is the provider of the backup storage. - type: string - validationFrequency: - description: ValidationFrequency defines how frequently to validate - the corresponding object storage. A value of 0 disables validation. - nullable: true - type: string - required: - - objectStorage - - provider - type: object - status: - description: BackupStorageLocationStatus defines the observed state of BackupStorageLocation - properties: - accessMode: - description: "AccessMode is an unused field. \n Deprecated: there is - now an AccessMode field on the Spec and this field will be removed - entirely as of v2.0." - enum: - - ReadOnly - - ReadWrite - type: string - lastSyncedRevision: - description: "LastSyncedRevision is the value of the `metadata/revision` - file in the backup storage location the last time the BSL's contents - were synced into the cluster. \n Deprecated: this field is no longer - updated or used for detecting changes to the location's contents and - will be removed entirely in v2.0." - type: string - lastSyncedTime: - description: LastSyncedTime is the last time the contents of the location - were synced into the cluster. - format: date-time - nullable: true - type: string - lastValidationTime: - description: LastValidationTime is the last time the backup store location - was validated the cluster. - format: date-time - nullable: true - type: string - phase: - description: Phase is the current state of the BackupStorageLocation. - enum: - - Available - - Unavailable - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_deletebackuprequests.yaml b/config/crd/v1beta1/bases/velero.io_deletebackuprequests.yaml deleted file mode 100644 index 05ecbdfc2..000000000 --- a/config/crd/v1beta1/bases/velero.io_deletebackuprequests.yaml +++ /dev/null @@ -1,73 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: deletebackuprequests.velero.io -spec: - group: velero.io - names: - kind: DeleteBackupRequest - listKind: DeleteBackupRequestList - plural: deletebackuprequests - singular: deletebackuprequest - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - description: DeleteBackupRequest is a request to delete one or more backups. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DeleteBackupRequestSpec is the specification for which backups - to delete. - properties: - backupName: - type: string - required: - - backupName - type: object - status: - description: DeleteBackupRequestStatus is the current status of a DeleteBackupRequest. - properties: - errors: - description: Errors contains any errors that were encountered during - the deletion process. - items: - type: string - nullable: true - type: array - phase: - description: Phase is the current state of the DeleteBackupRequest. - enum: - - New - - InProgress - - Processed - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_downloadrequests.yaml b/config/crd/v1beta1/bases/velero.io_downloadrequests.yaml deleted file mode 100644 index e7b4832d7..000000000 --- a/config/crd/v1beta1/bases/velero.io_downloadrequests.yaml +++ /dev/null @@ -1,96 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: downloadrequests.velero.io -spec: - group: velero.io - names: - kind: DownloadRequest - listKind: DownloadRequestList - plural: downloadrequests - singular: downloadrequest - preserveUnknownFields: false - scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: DownloadRequest is a request to download an artifact from backup - object storage, such as a backup log file. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DownloadRequestSpec is the specification for a download request. - properties: - target: - description: Target is what to download (e.g. logs for a backup). - properties: - kind: - description: Kind is the type of file to download. - enum: - - BackupLog - - BackupContents - - BackupVolumeSnapshots - - BackupResourceList - - RestoreLog - - RestoreResults - type: string - name: - description: Name is the name of the kubernetes resource with which - the file is associated. - type: string - required: - - kind - - name - type: object - required: - - target - type: object - status: - description: DownloadRequestStatus is the current status of a DownloadRequest. - properties: - downloadURL: - description: DownloadURL contains the pre-signed URL for the target - file. - type: string - expiration: - description: Expiration is when this DownloadRequest expires and can - be deleted by the system. - format: date-time - nullable: true - type: string - phase: - description: Phase is the current state of the DownloadRequest. - enum: - - New - - Processed - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_podvolumebackups.yaml b/config/crd/v1beta1/bases/velero.io_podvolumebackups.yaml deleted file mode 100644 index 094dd3e16..000000000 --- a/config/crd/v1beta1/bases/velero.io_podvolumebackups.yaml +++ /dev/null @@ -1,162 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: podvolumebackups.velero.io -spec: - group: velero.io - names: - kind: PodVolumeBackup - listKind: PodVolumeBackupList - plural: podvolumebackups - singular: podvolumebackup - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: PodVolumeBackupSpec is the specification for a PodVolumeBackup. - properties: - backupStorageLocation: - description: BackupStorageLocation is the name of the backup storage - location where the restic repository is stored. - type: string - node: - description: Node is the name of the node that the Pod is running on. - type: string - pod: - description: Pod is a reference to the pod containing the volume to - be backed up. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: 'If referring to a piece of an object instead of an - entire object, this string should contain a valid JSON/Go field - access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen only - to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change - in the future.' - type: string - kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - resourceVersion: - description: 'Specific resourceVersion to which this reference is - made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' - type: string - uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' - type: string - type: object - repoIdentifier: - description: RepoIdentifier is the restic repository identifier. - type: string - tags: - additionalProperties: - type: string - description: Tags are a map of key-value pairs that should be applied - to the volume backup as tags. - type: object - volume: - description: Volume is the name of the volume within the Pod to be backed - up. - type: string - required: - - backupStorageLocation - - node - - pod - - repoIdentifier - - volume - type: object - status: - description: PodVolumeBackupStatus is the current status of a PodVolumeBackup. - properties: - completionTimestamp: - description: CompletionTimestamp records the time a backup was completed. - Completion time is recorded even on failed backups. Completion time - is recorded before uploading the backup object. The server's time - is used for CompletionTimestamps - format: date-time - nullable: true - type: string - message: - description: Message is a message about the pod volume backup's status. - type: string - path: - description: Path is the full path within the controller pod being backed - up. - type: string - phase: - description: Phase is the current state of the PodVolumeBackup. - enum: - - New - - InProgress - - Completed - - Failed - type: string - progress: - description: Progress holds the total number of bytes of the volume - and the current number of backed up bytes. This can be used to display - progress information about the backup operation. - properties: - bytesDone: - format: int64 - type: integer - totalBytes: - format: int64 - type: integer - type: object - snapshotID: - description: SnapshotID is the identifier for the snapshot of the pod - volume. - type: string - startTimestamp: - description: StartTimestamp records the time a backup was started. Separate - from CreationTimestamp, since that value changes on restores. The - server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_podvolumerestores.yaml b/config/crd/v1beta1/bases/velero.io_podvolumerestores.yaml deleted file mode 100644 index 43a738e5f..000000000 --- a/config/crd/v1beta1/bases/velero.io_podvolumerestores.yaml +++ /dev/null @@ -1,145 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: podvolumerestores.velero.io -spec: - group: velero.io - names: - kind: PodVolumeRestore - listKind: PodVolumeRestoreList - plural: podvolumerestores - singular: podvolumerestore - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: PodVolumeRestoreSpec is the specification for a PodVolumeRestore. - properties: - backupStorageLocation: - description: BackupStorageLocation is the name of the backup storage - location where the restic repository is stored. - type: string - pod: - description: Pod is a reference to the pod containing the volume to - be restored. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: 'If referring to a piece of an object instead of an - entire object, this string should contain a valid JSON/Go field - access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen only - to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change - in the future.' - type: string - kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - resourceVersion: - description: 'Specific resourceVersion to which this reference is - made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' - type: string - uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' - type: string - type: object - repoIdentifier: - description: RepoIdentifier is the restic repository identifier. - type: string - snapshotID: - description: SnapshotID is the ID of the volume snapshot to be restored. - type: string - volume: - description: Volume is the name of the volume within the Pod to be restored. - type: string - required: - - backupStorageLocation - - pod - - repoIdentifier - - snapshotID - - volume - type: object - status: - description: PodVolumeRestoreStatus is the current status of a PodVolumeRestore. - properties: - completionTimestamp: - description: CompletionTimestamp records the time a restore was completed. - Completion time is recorded even on failed restores. The server's - time is used for CompletionTimestamps - format: date-time - nullable: true - type: string - message: - description: Message is a message about the pod volume restore's status. - type: string - phase: - description: Phase is the current state of the PodVolumeRestore. - enum: - - New - - InProgress - - Completed - - Failed - type: string - progress: - description: Progress holds the total number of bytes of the snapshot - and the current number of restored bytes. This can be used to display - progress information about the restore operation. - properties: - bytesDone: - format: int64 - type: integer - totalBytes: - format: int64 - type: integer - type: object - startTimestamp: - description: StartTimestamp records the time a restore was started. - The server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_resticrepositories.yaml b/config/crd/v1beta1/bases/velero.io_resticrepositories.yaml deleted file mode 100644 index 727e66bdf..000000000 --- a/config/crd/v1beta1/bases/velero.io_resticrepositories.yaml +++ /dev/null @@ -1,89 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: resticrepositories.velero.io -spec: - group: velero.io - names: - kind: ResticRepository - listKind: ResticRepositoryList - plural: resticrepositories - singular: resticrepository - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ResticRepositorySpec is the specification for a ResticRepository. - properties: - backupStorageLocation: - description: BackupStorageLocation is the name of the BackupStorageLocation - that should contain this repository. - type: string - maintenanceFrequency: - description: MaintenanceFrequency is how often maintenance should be - run. - type: string - resticIdentifier: - description: ResticIdentifier is the full restic-compatible string for - identifying this repository. - type: string - volumeNamespace: - description: VolumeNamespace is the namespace this restic repository - contains pod volume backups for. - type: string - required: - - backupStorageLocation - - maintenanceFrequency - - resticIdentifier - - volumeNamespace - type: object - status: - description: ResticRepositoryStatus is the current status of a ResticRepository. - properties: - lastMaintenanceTime: - description: LastMaintenanceTime is the last time maintenance was run. - format: date-time - nullable: true - type: string - message: - description: Message is a message about the current status of the ResticRepository. - type: string - phase: - description: Phase is the current state of the ResticRepository. - enum: - - New - - Ready - - NotReady - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_restores.yaml b/config/crd/v1beta1/bases/velero.io_restores.yaml deleted file mode 100644 index 8f3b01439..000000000 --- a/config/crd/v1beta1/bases/velero.io_restores.yaml +++ /dev/null @@ -1,1765 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: restores.velero.io -spec: - group: velero.io - names: - kind: Restore - listKind: RestoreList - plural: restores - singular: restore - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - description: Restore is a Velero resource that represents the application of - resources from a Velero backup to a target Kubernetes cluster. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: RestoreSpec defines the specification for a Velero restore. - properties: - backupName: - description: BackupName is the unique name of the Velero backup to restore - from. - type: string - excludedNamespaces: - description: ExcludedNamespaces contains a list of namespaces that are - not included in the restore. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources is a slice of resource names that are - not included in the restore. - items: - type: string - nullable: true - type: array - hooks: - description: Hooks represent custom behaviors that should be executed - during or post restore. - properties: - resources: - items: - description: RestoreResourceHookSpec defines one or more RestoreResrouceHooks - that should be executed based on the rules defined for namespaces, - resources, and label selector. - properties: - excludedNamespaces: - description: ExcludedNamespaces specifies the namespaces to - which this hook spec does not apply. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources specifies the resources to - which this hook spec does not apply. - items: - type: string - nullable: true - type: array - includedNamespaces: - description: IncludedNamespaces specifies the namespaces to - which this hook spec applies. If empty, it applies to all - namespaces. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources specifies the resources to - which this hook spec applies. If empty, it applies to all - resources. - items: - type: string - nullable: true - type: array - labelSelector: - description: LabelSelector, if specified, filters the resources - to which this hook spec applies. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, - Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. - If the operator is In or NotIn, the values array - must be non-empty. If the operator is Exists or - DoesNotExist, the values array must be empty. - This array is replaced during a strategic merge - patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. - type: object - type: object - name: - description: Name is the name of this hook. - type: string - postHooks: - description: PostHooks is a list of RestoreResourceHooks to - execute during and after restoring a resource. - items: - description: RestoreResourceHook defines a restore hook - for a resource. - properties: - exec: - description: Exec defines an exec restore hook. - properties: - command: - description: Command is the command and arguments - to execute from within a container after a pod - has been restored. - items: - type: string - minItems: 1 - type: array - container: - description: Container is the container in the pod - where the command should be executed. If not specified, - the pod's first container is used. - type: string - execTimeout: - description: ExecTimeout defines the maximum amount - of time Velero should wait for the hook to complete - before considering the execution a failure. - type: string - onError: - description: OnError specifies how Velero should - behave if it encounters an error executing this - hook. - enum: - - Continue - - Fail - type: string - waitTimeout: - description: WaitTimeout defines the maximum amount - of time Velero should wait for the container to - be Ready before attempting to run the command. - type: string - required: - - command - type: object - init: - description: Init defines an init restore hook. - properties: - initContainers: - description: InitContainers is list of init containers - to be added to a pod during its restore. - items: - description: A single application container that - you want to run within a pod. - properties: - args: - description: 'Arguments to the entrypoint. - The docker image''s CMD is used if this - is not provided. Variable references $(VAR_NAME) - are expanded using the container''s environment. - If a variable cannot be resolved, the reference - in the input string will be unchanged. Double - $$ are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal - "$(VAR_NAME)". Escaped references will never - be expanded, regardless of whether the variable - exists or not. Cannot be updated. More info: - https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' - items: - type: string - type: array - command: - description: 'Entrypoint array. Not executed - within a shell. The docker image''s ENTRYPOINT - is used if this is not provided. Variable - references $(VAR_NAME) are expanded using - the container''s environment. If a variable - cannot be resolved, the reference in the - input string will be unchanged. Double $$ - are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal - "$(VAR_NAME)". Escaped references will never - be expanded, regardless of whether the variable - exists or not. Cannot be updated. More info: - https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' - items: - type: string - type: array - env: - description: List of environment variables - to set in the container. Cannot be updated. - items: - description: EnvVar represents an environment - variable present in a Container. - properties: - name: - description: Name of the environment - variable. Must be a C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously - defined environment variables in the - container and any service environment - variables. If a variable cannot be - resolved, the reference in the input - string will be unchanged. Double $$ - are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: - i.e. "$$(VAR_NAME)" will produce the - string literal "$(VAR_NAME)". Escaped - references will never be expanded, - regardless of whether the variable - exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment - variable's value. Cannot be used if - value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a - ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. - apiVersion, kind, uid?' - type: string - optional: - description: Specify whether - the ConfigMap or its key must - be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of - the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' - properties: - apiVersion: - description: Version of the - schema the FieldPath is written - in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field - to select in the specified - API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory - and requests.ephemeral-storage) - are currently supported.' - properties: - containerName: - description: 'Container name: - required for volumes, optional - for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource - to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a - secret in the pod's namespace - properties: - key: - description: The key of the - secret to select from. Must - be a valid secret key. - type: string - name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. - apiVersion, kind, uid?' - type: string - optional: - description: Specify whether - the Secret or its key must - be defined - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - envFrom: - description: List of sources to populate environment - variables in the container. The keys defined - within a source must be a C_IDENTIFIER. - All invalid keys will be reported as an - event when the container is starting. When - a key exists in multiple sources, the value - associated with the last source will take - precedence. Values defined by an Env with - a duplicate key will take precedence. Cannot - be updated. - items: - description: EnvFromSource represents the - source of a set of ConfigMaps - properties: - configMapRef: - description: The ConfigMap to select - from - properties: - name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. - apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the - ConfigMap must be defined - type: boolean - type: object - prefix: - description: An optional identifier - to prepend to each key in the ConfigMap. - Must be a C_IDENTIFIER. - type: string - secretRef: - description: The Secret to select from - properties: - name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. - apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the - Secret must be defined - type: boolean - type: object - type: object - type: array - image: - description: 'Docker image name. More info: - https://kubernetes.io/docs/concepts/containers/images - This field is optional to allow higher level - config management to default or override - container images in workload controllers - like Deployments and StatefulSets.' - type: string - imagePullPolicy: - description: 'Image pull policy. One of Always, - Never, IfNotPresent. Defaults to Always - if :latest tag is specified, or IfNotPresent - otherwise. Cannot be updated. More info: - https://kubernetes.io/docs/concepts/containers/images#updating-images' - type: string - lifecycle: - description: Actions that the management system - should take in response to container lifecycle - events. Cannot be updated. - properties: - postStart: - description: 'PostStart is called immediately - after a container is created. If the - handler fails, the container is terminated - and restarted according to its restart - policy. Other management of the container - blocks until the hook completes. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' - properties: - exec: - description: One and only one of the - following should be specified. Exec - specifies the action to take. - properties: - command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The - command is simply exec'd, it - is not run inside a shell, so - traditional shell instructions - ('|', etc) won't work. To use - a shell, you need to explicitly - call out to that shell. Exit - status of 0 is treated as live/healthy - and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the - http request to perform. - properties: - host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to - set in the request. HTTP allows - repeated headers. - items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes - properties: - name: - description: The header - field name - type: string - value: - description: The header - field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on - the HTTP server. - type: string - port: - anyOf: - - type: integer - - type: string - description: Name or number of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. - type: string - required: - - port - type: object - tcpSocket: - description: 'TCPSocket specifies - an action involving a TCP port. - TCP hooks not yet supported TODO: - implement a realistic TCP lifecycle - hook' - properties: - host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: Number or name of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - description: 'PreStop is called immediately - before a container is terminated due - to an API request or management event - such as liveness/startup probe failure, - preemption, resource contention, etc. - The handler is not called if the container - crashes or exits. The reason for termination - is passed to the handler. The Pod''s - termination grace period countdown begins - before the PreStop hooked is executed. - Regardless of the outcome of the handler, - the container will eventually terminate - within the Pod''s termination grace - period. Other management of the container - blocks until the hook completes or until - the termination grace period is reached. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' - properties: - exec: - description: One and only one of the - following should be specified. Exec - specifies the action to take. - properties: - command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The - command is simply exec'd, it - is not run inside a shell, so - traditional shell instructions - ('|', etc) won't work. To use - a shell, you need to explicitly - call out to that shell. Exit - status of 0 is treated as live/healthy - and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the - http request to perform. - properties: - host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to - set in the request. HTTP allows - repeated headers. - items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes - properties: - name: - description: The header - field name - type: string - value: - description: The header - field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on - the HTTP server. - type: string - port: - anyOf: - - type: integer - - type: string - description: Name or number of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. - type: string - required: - - port - type: object - tcpSocket: - description: 'TCPSocket specifies - an action involving a TCP port. - TCP hooks not yet supported TODO: - implement a realistic TCP lifecycle - hook' - properties: - host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: Number or name of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - type: object - livenessProbe: - description: 'Periodic probe of container - liveness. Container will be restarted if - the probe fails. Cannot be updated. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - properties: - exec: - description: One and only one of the following - should be specified. Exec specifies - the action to take. - properties: - command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it - is not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. - format: int32 - type: integer - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in httpHeaders - instead. - type: string - httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes - properties: - name: - description: The header field - name - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the - HTTP server. - type: string - port: - anyOf: - - type: integer - - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - format: int32 - type: integer - periodSeconds: - description: How often (in seconds) to - perform the probe. Default to 10 seconds. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: 'TCPSocket specifies an action - involving a TCP port. TCP hooks not - yet supported TODO: implement a realistic - TCP lifecycle hook' - properties: - host: - description: 'Optional: Host name - to connect to, defaults to the pod - IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time when - the processes are forcibly halted with - a kill signal. Set this value longer - than the expected cleanup time for your - process. If this value is nil, the pod's - terminationGracePeriodSeconds will be - used. Otherwise, this value overrides - the value provided by the pod spec. - Value must be non-negative integer. - The value zero indicates stop immediately - via the kill signal (no opportunity - to shut down). This is a beta field - and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - format: int32 - type: integer - type: object - name: - description: Name of the container specified - as a DNS_LABEL. Each container in a pod - must have a unique name (DNS_LABEL). Cannot - be updated. - type: string - ports: - description: List of ports to expose from - the container. Exposing a port here gives - the system additional information about - the network connections a container uses, - but is primarily informational. Not specifying - a port here DOES NOT prevent that port from - being exposed. Any port which is listening - on the default "0.0.0.0" address inside - a container will be accessible from the - network. Cannot be updated. - items: - description: ContainerPort represents a - network port in a single container. - properties: - containerPort: - description: Number of port to expose - on the pod's IP address. This must - be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the - external port to. - type: string - hostPort: - description: Number of port to expose - on the host. If specified, this must - be a valid port number, 0 < x < 65536. - If HostNetwork is specified, this - must match ContainerPort. Most containers - do not need this. - format: int32 - type: integer - name: - description: If specified, this must - be an IANA_SVC_NAME and unique within - the pod. Each named port in a pod - must have a unique name. Name for - the port that can be referred to by - services. - type: string - protocol: - description: Protocol for port. Must - be UDP, TCP, or SCTP. Defaults to - "TCP". - type: string - required: - - containerPort - - protocol - type: object - type: array - x-kubernetes-list-map-keys: - - containerPort - - protocol - x-kubernetes-list-type: map - readinessProbe: - description: 'Periodic probe of container - service readiness. Container will be removed - from service endpoints if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - properties: - exec: - description: One and only one of the following - should be specified. Exec specifies - the action to take. - properties: - command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it - is not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. - format: int32 - type: integer - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in httpHeaders - instead. - type: string - httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes - properties: - name: - description: The header field - name - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the - HTTP server. - type: string - port: - anyOf: - - type: integer - - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - format: int32 - type: integer - periodSeconds: - description: How often (in seconds) to - perform the probe. Default to 10 seconds. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: 'TCPSocket specifies an action - involving a TCP port. TCP hooks not - yet supported TODO: implement a realistic - TCP lifecycle hook' - properties: - host: - description: 'Optional: Host name - to connect to, defaults to the pod - IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time when - the processes are forcibly halted with - a kill signal. Set this value longer - than the expected cleanup time for your - process. If this value is nil, the pod's - terminationGracePeriodSeconds will be - used. Otherwise, this value overrides - the value provided by the pod spec. - Value must be non-negative integer. - The value zero indicates stop immediately - via the kill signal (no opportunity - to shut down). This is a beta field - and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - format: int32 - type: integer - type: object - resources: - description: 'Compute Resources required by - this container. Cannot be updated. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. - If Requests is omitted for a container, - it defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' - type: object - type: object - securityContext: - description: 'SecurityContext defines the - security options the container should be - run with. If set, the fields of SecurityContext - override the equivalent fields of PodSecurityContext. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' - properties: - allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation - controls whether a process can gain - more privileges than its parent process. - This bool directly controls if the no_new_privs - flag will be set on the container process. - AllowPrivilegeEscalation is true always - when the container is: 1) run as Privileged - 2) has CAP_SYS_ADMIN' - type: boolean - capabilities: - description: The capabilities to add/drop - when running containers. Defaults to - the default set of capabilities granted - by the container runtime. - properties: - add: - description: Added capabilities - items: - description: Capability represent - POSIX capabilities type - type: string - type: array - drop: - description: Removed capabilities - items: - description: Capability represent - POSIX capabilities type - type: string - type: array - type: object - privileged: - description: Run container in privileged - mode. Processes in privileged containers - are essentially equivalent to root on - the host. Defaults to false. - type: boolean - procMount: - description: procMount denotes the type - of proc mount to use for the containers. - The default is DefaultProcMount which - uses the container runtime defaults - for readonly paths and masked paths. - This requires the ProcMountType feature - flag to be enabled. - type: string - readOnlyRootFilesystem: - description: Whether this container has - a read-only root filesystem. Default - is false. - type: boolean - runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set in - PodSecurityContext. If set in both - SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. - format: int64 - type: integer - runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image - at runtime to ensure that it does not - run as UID 0 (root) and fail to start - the container if it does. If unset or - false, no such validation will be performed. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. - type: boolean - runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to - user specified in image metadata if - unspecified. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. - format: int64 - type: integer - seLinuxOptions: - description: The SELinux context to be - applied to the container. If unspecified, - the container runtime will allocate - a random SELinux context for each container. May - also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. - properties: - level: - description: Level is SELinux level - label that applies to the container. - type: string - role: - description: Role is a SELinux role - label that applies to the container. - type: string - type: - description: Type is a SELinux type - label that applies to the container. - type: string - user: - description: User is a SELinux user - label that applies to the container. - type: string - type: object - seccompProfile: - description: The seccomp options to use - by this container. If seccomp options - are provided at both the pod & container - level, the container options override - the pod options. - properties: - localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the - node should be used. The profile - must be preconfigured on the node - to work. Must be a descending path, - relative to the kubelet's configured - seccomp profile location. Must only - be set if type is "Localhost". - type: string - type: - description: "type indicates which - kind of seccomp profile will be - applied. Valid options are: \n Localhost - - a profile defined in a file on - the node should be used. RuntimeDefault - - the container runtime default - profile should be used. Unconfined - - no profile should be applied." - type: string - required: - - type - type: object - windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. - properties: - gmsaCredentialSpec: - description: GMSACredentialSpec is - where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA - credential spec named by the GMSACredentialSpecName - field. - type: string - gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. - type: string - hostProcess: - description: HostProcess determines - if a container should be run as - a 'Host Process' container. This - field is alpha-level and will only - be honored by components that enable - the WindowsHostProcessContainers - feature flag. Setting this field - without the feature flag will result - in errors when validating the Pod. - All of a Pod's containers must have - the same effective HostProcess value - (it is not allowed to have a mix - of HostProcess containers and non-HostProcess - containers). In addition, if HostProcess - is true then HostNetwork must also - be set to true. - type: boolean - runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. - type: string - type: object - type: object - startupProbe: - description: 'StartupProbe indicates that - the Pod has successfully initialized. If - specified, no other probes are executed - until this completes successfully. If this - probe fails, the Pod will be restarted, - just as if the livenessProbe failed. This - can be used to provide different probe parameters - at the beginning of a Pod''s lifecycle, - when it might take a long time to load data - or warm a cache, than during steady-state - operation. This cannot be updated. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - properties: - exec: - description: One and only one of the following - should be specified. Exec specifies - the action to take. - properties: - command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it - is not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. - format: int32 - type: integer - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in httpHeaders - instead. - type: string - httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes - properties: - name: - description: The header field - name - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the - HTTP server. - type: string - port: - anyOf: - - type: integer - - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - format: int32 - type: integer - periodSeconds: - description: How often (in seconds) to - perform the probe. Default to 10 seconds. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: 'TCPSocket specifies an action - involving a TCP port. TCP hooks not - yet supported TODO: implement a realistic - TCP lifecycle hook' - properties: - host: - description: 'Optional: Host name - to connect to, defaults to the pod - IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time when - the processes are forcibly halted with - a kill signal. Set this value longer - than the expected cleanup time for your - process. If this value is nil, the pod's - terminationGracePeriodSeconds will be - used. Otherwise, this value overrides - the value provided by the pod spec. - Value must be non-negative integer. - The value zero indicates stop immediately - via the kill signal (no opportunity - to shut down). This is a beta field - and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - format: int32 - type: integer - type: object - stdin: - description: Whether this container should - allocate a buffer for stdin in the container - runtime. If this is not set, reads from - stdin in the container will always result - in EOF. Default is false. - type: boolean - stdinOnce: - description: Whether the container runtime - should close the stdin channel after it - has been opened by a single attach. When - stdin is true the stdin stream will remain - open across multiple attach sessions. If - stdinOnce is set to true, stdin is opened - on container start, is empty until the first - client attaches to stdin, and then remains - open and accepts data until the client disconnects, - at which time stdin is closed and remains - closed until the container is restarted. - If this flag is false, a container processes - that reads from stdin will never receive - an EOF. Default is false - type: boolean - terminationMessagePath: - description: 'Optional: Path at which the - file to which the container''s termination - message will be written is mounted into - the container''s filesystem. Message written - is intended to be brief final status, such - as an assertion failure message. Will be - truncated by the node if greater than 4096 - bytes. The total message length across all - containers will be limited to 12kb. Defaults - to /dev/termination-log. Cannot be updated.' - type: string - terminationMessagePolicy: - description: Indicate how the termination - message should be populated. File will use - the contents of terminationMessagePath to - populate the container status message on - both success and failure. FallbackToLogsOnError - will use the last chunk of container log - output if the termination message file is - empty and the container exited with an error. - The log output is limited to 2048 bytes - or 80 lines, whichever is smaller. Defaults - to File. Cannot be updated. - type: string - tty: - description: Whether this container should - allocate a TTY for itself, also requires - 'stdin' to be true. Default is false. - type: boolean - volumeDevices: - description: volumeDevices is the list of - block devices to be used by the container. - items: - description: volumeDevice describes a mapping - of a raw block device within a container. - properties: - devicePath: - description: devicePath is the path - inside of the container that the device - will be mapped to. - type: string - name: - description: name must match the name - of a persistentVolumeClaim in the - pod - type: string - required: - - devicePath - - name - type: object - type: array - volumeMounts: - description: Pod volumes to mount into the - container's filesystem. Cannot be updated. - items: - description: VolumeMount describes a mounting - of a Volume within a container. - properties: - mountPath: - description: Path within the container - at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: mountPropagation determines - how mounts are propagated from the - host to container and the other way - around. When not set, MountPropagationNone - is used. This field is beta in 1.10. - type: string - name: - description: This must match the Name - of a Volume. - type: string - readOnly: - description: Mounted read-only if true, - read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: Path within the volume - from which the container's volume - should be mounted. Defaults to "" - (volume's root). - type: string - subPathExpr: - description: Expanded path within the - volume from which the container's - volume should be mounted. Behaves - similarly to SubPath but environment - variable references $(VAR_NAME) are - expanded using the container's environment. - Defaults to "" (volume's root). SubPathExpr - and SubPath are mutually exclusive. - type: string - required: - - mountPath - - name - type: object - type: array - workingDir: - description: Container's working directory. - If not specified, the container runtime's - default will be used, which might be configured - in the container image. Cannot be updated. - type: string - required: - - name - type: object - type: array - timeout: - description: Timeout defines the maximum amount - of time Velero should wait for the initContainers - to complete. - type: string - type: object - type: object - type: array - required: - - name - type: object - type: array - type: object - includeClusterResources: - description: IncludeClusterResources specifies whether cluster-scoped - resources should be included for consideration in the restore. If - null, defaults to true. - nullable: true - type: boolean - includedNamespaces: - description: IncludedNamespaces is a slice of namespace names to include - objects from. If empty, all namespaces are included. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources is a slice of resource names to include - in the restore. If empty, all resources in the backup are included. - items: - type: string - nullable: true - type: array - labelSelector: - description: LabelSelector is a metav1.LabelSelector to filter with - when restoring individual objects from the backup. If empty or nil, - all objects are included. Optional. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: A label selector requirement is a selector that contains - values, a key, and an operator that relates the key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: operator represents a key's relationship to a - set of values. Valid operators are In, NotIn, Exists and - DoesNotExist. - type: string - values: - description: values is an array of string values. If the operator - is In or NotIn, the values array must be non-empty. If the - operator is Exists or DoesNotExist, the values array must - be empty. This array is replaced during a strategic merge - patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator is - "In", and the values array contains only "value". The requirements - are ANDed. - type: object - type: object - namespaceMapping: - additionalProperties: - type: string - description: NamespaceMapping is a map of source namespace names to - target namespace names to restore into. Any source namespaces not - included in the map will be restored into namespaces of the same name. - type: object - preserveNodePorts: - description: PreserveNodePorts specifies whether to restore old nodePorts - from backup. - nullable: true - type: boolean - restorePVs: - description: RestorePVs specifies whether to restore all included PVs - from snapshot (via the cloudprovider). - nullable: true - type: boolean - scheduleName: - description: ScheduleName is the unique name of the Velero schedule - to restore from. If specified, and BackupName is empty, Velero will - restore from the most recent successful backup created from this schedule. - type: string - required: - - backupName - type: object - status: - description: RestoreStatus captures the current status of a Velero restore - properties: - completionTimestamp: - description: CompletionTimestamp records the time the restore operation - was completed. Completion time is recorded even on failed restore. - The server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - errors: - description: Errors is a count of all error messages that were generated - during execution of the restore. The actual errors are stored in object - storage. - type: integer - failureReason: - description: FailureReason is an error that caused the entire restore - to fail. - type: string - phase: - description: Phase is the current state of the Restore - enum: - - New - - FailedValidation - - InProgress - - Completed - - PartiallyFailed - - Failed - type: string - progress: - description: Progress contains information about the restore's execution - progress. Note that this information is best-effort only -- if Velero - fails to update it during a restore for any reason, it may be inaccurate/stale. - nullable: true - properties: - itemsRestored: - description: ItemsRestored is the number of items that have actually - been restored so far - type: integer - totalItems: - description: TotalItems is the total number of items to be restored. - This number may change throughout the execution of the restore - due to plugins that return additional related items to restore - type: integer - type: object - startTimestamp: - description: StartTimestamp records the time the restore operation was - started. The server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - validationErrors: - description: ValidationErrors is a slice of all validation errors (if - applicable) - items: - type: string - nullable: true - type: array - warnings: - description: Warnings is a count of all warning messages that were generated - during execution of the restore. The actual warnings are stored in - object storage. - type: integer - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_schedules.yaml b/config/crd/v1beta1/bases/velero.io_schedules.yaml deleted file mode 100644 index ffa190915..000000000 --- a/config/crd/v1beta1/bases/velero.io_schedules.yaml +++ /dev/null @@ -1,401 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: schedules.velero.io -spec: - group: velero.io - names: - kind: Schedule - listKind: ScheduleList - plural: schedules - singular: schedule - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - description: Schedule is a Velero resource that represents a pre-scheduled or - periodic Backup that should be run. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ScheduleSpec defines the specification for a Velero schedule - properties: - schedule: - description: Schedule is a Cron expression defining when to run the - Backup. - type: string - template: - description: Template is the definition of the Backup to be run on the - provided schedule - properties: - defaultVolumesToRestic: - description: DefaultVolumesToRestic specifies whether restic should - be used to take a backup of all pod volumes by default. - type: boolean - excludedNamespaces: - description: ExcludedNamespaces contains a list of namespaces that - are not included in the backup. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources is a slice of resource names that - are not included in the backup. - items: - type: string - nullable: true - type: array - hooks: - description: Hooks represent custom behaviors that should be executed - at different phases of the backup. - properties: - resources: - description: Resources are hooks that should be executed when - backing up individual instances of a resource. - items: - description: BackupResourceHookSpec defines one or more BackupResourceHooks - that should be executed based on the rules defined for namespaces, - resources, and label selector. - properties: - excludedNamespaces: - description: ExcludedNamespaces specifies the namespaces - to which this hook spec does not apply. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources specifies the resources - to which this hook spec does not apply. - items: - type: string - nullable: true - type: array - includedNamespaces: - description: IncludedNamespaces specifies the namespaces - to which this hook spec applies. If empty, it applies - to all namespaces. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources specifies the resources - to which this hook spec applies. If empty, it applies - to all resources. - items: - type: string - nullable: true - type: array - labelSelector: - description: LabelSelector, if specified, filters the - resources to which this hook spec applies. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, - NotIn, Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. - If the operator is In or NotIn, the values - array must be non-empty. If the operator is - Exists or DoesNotExist, the values array must - be empty. This array is replaced during a - strategic merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field - is "key", the operator is "In", and the values array - contains only "value". The requirements are ANDed. - type: object - type: object - name: - description: Name is the name of this hook. - type: string - post: - description: PostHooks is a list of BackupResourceHooks - to execute after storing the item in the backup. These - are executed after all "additional items" from item - actions are processed. - items: - description: BackupResourceHook defines a hook for a - resource. - properties: - exec: - description: Exec defines an exec hook. - properties: - command: - description: Command is the command and arguments - to execute. - items: - type: string - minItems: 1 - type: array - container: - description: Container is the container in the - pod where the command should be executed. - If not specified, the pod's first container - is used. - type: string - onError: - description: OnError specifies how Velero should - behave if it encounters an error executing - this hook. - enum: - - Continue - - Fail - type: string - timeout: - description: Timeout defines the maximum amount - of time Velero should wait for the hook to - complete before considering the execution - a failure. - type: string - required: - - command - type: object - required: - - exec - type: object - type: array - pre: - description: PreHooks is a list of BackupResourceHooks - to execute prior to storing the item in the backup. - These are executed before any "additional items" from - item actions are processed. - items: - description: BackupResourceHook defines a hook for a - resource. - properties: - exec: - description: Exec defines an exec hook. - properties: - command: - description: Command is the command and arguments - to execute. - items: - type: string - minItems: 1 - type: array - container: - description: Container is the container in the - pod where the command should be executed. - If not specified, the pod's first container - is used. - type: string - onError: - description: OnError specifies how Velero should - behave if it encounters an error executing - this hook. - enum: - - Continue - - Fail - type: string - timeout: - description: Timeout defines the maximum amount - of time Velero should wait for the hook to - complete before considering the execution - a failure. - type: string - required: - - command - type: object - required: - - exec - type: object - type: array - required: - - name - type: object - nullable: true - type: array - type: object - includeClusterResources: - description: IncludeClusterResources specifies whether cluster-scoped - resources should be included for consideration in the backup. - nullable: true - type: boolean - includedNamespaces: - description: IncludedNamespaces is a slice of namespace names to - include objects from. If empty, all namespaces are included. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources is a slice of resource names to include - in the backup. If empty, all resources are included. - items: - type: string - nullable: true - type: array - labelSelector: - description: LabelSelector is a metav1.LabelSelector to filter with - when adding individual objects to the backup. If empty or nil, - all objects are included. Optional. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: A label selector requirement is a selector that - contains values, a key, and an operator that relates the - key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, Exists - and DoesNotExist. - type: string - values: - description: values is an array of string values. If the - operator is In or NotIn, the values array must be non-empty. - If the operator is Exists or DoesNotExist, the values - array must be empty. This array is replaced during a - strategic merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator - is "In", and the values array contains only "value". The requirements - are ANDed. - type: object - type: object - metadata: - properties: - labels: - additionalProperties: - type: string - type: object - type: object - orderedResources: - additionalProperties: - type: string - description: OrderedResources specifies the backup order of resources - of specific Kind. The map key is the Kind name and value is a - list of resource names separated by commas. Each resource name - has format "namespace/resourcename". For cluster resources, simply - use "resourcename". - nullable: true - type: object - snapshotVolumes: - description: SnapshotVolumes specifies whether to take cloud snapshots - of any PV's referenced in the set of objects included in the Backup. - nullable: true - type: boolean - storageLocation: - description: StorageLocation is a string containing the name of - a BackupStorageLocation where the backup should be stored. - type: string - ttl: - description: TTL is a time.Duration-parseable string describing - how long the Backup should be retained for. - type: string - volumeSnapshotLocations: - description: VolumeSnapshotLocations is a list containing names - of VolumeSnapshotLocations associated with this backup. - items: - type: string - type: array - type: object - useOwnerReferencesInBackup: - description: UseOwnerReferencesBackup specifies whether to use OwnerReferences - on backups created by this Schedule. - nullable: true - type: boolean - required: - - schedule - - template - type: object - status: - description: ScheduleStatus captures the current state of a Velero schedule - properties: - lastBackup: - description: LastBackup is the last time a Backup was run for this Schedule - schedule - format: date-time - nullable: true - type: string - phase: - description: Phase is the current phase of the Schedule - enum: - - New - - Enabled - - FailedValidation - type: string - validationErrors: - description: ValidationErrors is a slice of all validation errors (if - applicable) - items: - type: string - type: array - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_serverstatusrequests.yaml b/config/crd/v1beta1/bases/velero.io_serverstatusrequests.yaml deleted file mode 100644 index 379cc09f9..000000000 --- a/config/crd/v1beta1/bases/velero.io_serverstatusrequests.yaml +++ /dev/null @@ -1,89 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: serverstatusrequests.velero.io -spec: - group: velero.io - names: - kind: ServerStatusRequest - listKind: ServerStatusRequestList - plural: serverstatusrequests - shortNames: - - ssr - singular: serverstatusrequest - preserveUnknownFields: false - scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: ServerStatusRequest is a request to access current status information - about the Velero server. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ServerStatusRequestSpec is the specification for a ServerStatusRequest. - type: object - status: - description: ServerStatusRequestStatus is the current status of a ServerStatusRequest. - properties: - phase: - description: Phase is the current lifecycle phase of the ServerStatusRequest. - enum: - - New - - Processed - type: string - plugins: - description: Plugins list information about the plugins running on the - Velero server - items: - description: PluginInfo contains attributes of a Velero plugin - properties: - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - nullable: true - type: array - processedTimestamp: - description: ProcessedTimestamp is when the ServerStatusRequest was - processed by the ServerStatusRequestController. - format: date-time - nullable: true - type: string - serverVersion: - description: ServerVersion is the Velero server version. - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_volumesnapshotlocations.yaml b/config/crd/v1beta1/bases/velero.io_volumesnapshotlocations.yaml deleted file mode 100644 index 1f281fa61..000000000 --- a/config/crd/v1beta1/bases/velero.io_volumesnapshotlocations.yaml +++ /dev/null @@ -1,74 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: volumesnapshotlocations.velero.io -spec: - group: velero.io - names: - kind: VolumeSnapshotLocation - listKind: VolumeSnapshotLocationList - plural: volumesnapshotlocations - singular: volumesnapshotlocation - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - description: VolumeSnapshotLocation is a location where Velero stores volume - snapshots. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: VolumeSnapshotLocationSpec defines the specification for a - Velero VolumeSnapshotLocation. - properties: - config: - additionalProperties: - type: string - description: Config is for provider-specific configuration fields. - type: object - provider: - description: Provider is the provider of the volume storage. - type: string - required: - - provider - type: object - status: - description: VolumeSnapshotLocationStatus describes the current status of - a Velero VolumeSnapshotLocation. - properties: - phase: - description: VolumeSnapshotLocationPhase is the lifecycle phase of a - Velero VolumeSnapshotLocation. - enum: - - Available - - Unavailable - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/crds/crds.go b/config/crd/v1beta1/crds/crds.go deleted file mode 100644 index dcbb0138f..000000000 --- a/config/crd/v1beta1/crds/crds.go +++ /dev/null @@ -1,69 +0,0 @@ -/* -Copyright the Velero contributors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -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. -*/ - -// Code generated by crds_generate.go; DO NOT EDIT. - -package crds - -import ( - "bytes" - "compress/gzip" - "io/ioutil" - - apiextinstall "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install" - apiextv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" - "k8s.io/client-go/kubernetes/scheme" -) - -var rawCRDs = [][]byte{ - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec~\xe2\xc6\xd2\x0f\x85(5\x13\xd5L\xf4\xcdp\xb9+\x05\xd3\xf1\xeb\x19@\xa1Ѡ>\xe0/\xf2I\xaag\xf9\x91\xa3H\xcd5dL\x18<\x030\x89*\xf0\x1a>;\f\n\x96`z\x06p`\x82\xa7\xb4:\x8f\x93*P\xbe\xbf\xdb<~\u007f\x9f\xec1g\xfe#@\x8a&Ѽ\xa0~\x019\xe0\x06\x18<\xd2\xd2@\a\x16\x80\xdd3\v\x1a\t\x13i\r\xd8=B\xc2\n[j\x04\x95\xc1\x8f\xe5\x16\xb5D\x8b&\x00\x06HDi,j0\x96Y\x04f\x81A\xa1\xb8\xb4\xc0%X\x9e#|\xf3\xfen\x03j\xfb+&\xd6\x00\x93)0cT\u0099\xc5\x14\x0eJ\x949\xfa\xb1߮\x03\xccB\xab\x02\xb5\xe5\x91ή5\x04\xab\xfa\xd6Yօ[\xb7\xef\x03\xa9\x13%\xf4\xe8\a\x81\xc0\x14\f\xd1ĭ\xc3\uee69\x97I\xf4k\x80\x05ׅɀ\xf4\x1a\xee\x1dS\xb4\x01\xb3W\xa5H\x9d\xfc\x1dP;2%j'\xf9\xbf*\xc8\x06\xac\xa2)\x05\xb3\x18X\x1f\x1b\x97\x16\xb5d\xc2q\xac\xc4K\"DΎ\xa0\xd1\xcd\x01\xa5l@\xa3.f\r\xff\xaf4\x02\x97\x99\xba\x86\xbd\xb5\x85\xb9\xbe\xba\xdaq\x1b\xb7R\xa2\xf2\xbc\x94\xdc\x1e\xafhC\xf0mi\x956W)\x1eP\\\x19\xbe[1\x9d\xec\xb9\xc5\xc41\xef\x8a\x15|E\x88K\xdaI\xeb<\xfd\x9f\xc8ts\xd1\xc0\xd4\x1e\x9d\x8c\x19\xab\xb9\xdcU\x9fI\xd2G\xe9\xeeD\xdeK\x93\x1f\xe6\xf1\xaf\xc9\xeb>9\xaa\xfc|{\xffД4n\xda4'j7\x84\xaf&\xbc#\x14\x97\x19jϸL\xab\x9c \xa2L\xbd\xac\x91\x98\n\x8e\xb2MtSnsn\x1d\xa7\xffY\xa2q\xe2\xac\xd6pC\n\x05\xb6\be\x91:)\\\xc3F\xc2\r\xcbQ\xdc0\x83\xbf;\xd9\x1d\x85\xcdʑt\x9e\xf0M=\xd8\xee\xe8\xa9U}\x8e\x1ak\x90C~\xc3\xdf\x17\x98\xb46\x86\x1b\xc33\x9e\x90\xf8C\xa6t\xad\x0f\xbcJZ7\x00\x0emJ?Q\xc6Ja\x1fi#\x9b\a\xf53\x1a˓v\x9f\x0e:\x1f\x06\x87Dt\xd0\xc0\xf3\x1e\xed\x1e\xb5\x93\x15\xfa\x81\xb6]\a\"\x10\x03\r\xa6\xb4\xe7\xd8\x13\x02\vX\xd3\xe6\x15\x02\n\x15\xf5\x8b\x81\xed1\"\xba\xee\xc0\xf1\xd4\xdc*%\x90\xb5u\x00\xbe$\xa2L1\xad\xf4\xad\x99\\\xd5m\xaf;\x19*ƥ\xdb\x19\xce48\xc4d\xfd+\xa9Z\xa6\xb1\xb70'\x9d\\zh\xa4E\xf78\xc0\x10\u05f8ż\x87Ո(\x05إ\x10l+\xf0\x1a\xac.\xbbS\xfbqLkv\x1c\xa4D4\xd4\xcb\bQ\xf5\x0e\xbaA\xf0\x84lH\xa5\x01\x88\x16\u007f\"2\xec\x95z\x9a^\xfa\xff\xb9\x1e\xb5\x06\x83\x84\xfc\x1b\xd8\xe2\x9e\x1d\xb8\xd2a\xb1\xc1\x8cl\x11\xf0\x05\x93\xd2b_\xb6\x99\x85\x94g\x19j\a\xa5\xd83\x83ƛ\xad1\x12\x8cmO\xd7\xf4\x18\xdbz\xf8\xd7,c\x1a\xfdz\xc7Pv\x9bT\x122}\xea\xfa\xe6\\\f\x99\xf2\x03OK&\x80Kc\x99L\xfc:X\x85Sw\x1d0\xce\xce\x1e\xb6^\xadE\x9c\x1d\xed[*NI\x04\xa5!wڼ\xdf\xd5\f\u0087\xd1\xe5n\x99\xd35ʋ\xa1.\x05\x9a0QJ\x9a\xb3\xdeח#\x80+.x\xdb/\xd8\x16\x05\x18\x14\x98X\xa5\x87\xc80\xcdT\xdf\xe6u\xd4\b\xed\x06\xb4U\xad\u007f\xdd\x12\x9b\x8aJ\x8d\xc2\x04x\xde\xf3d\xefͲ\x93\x17\x82\x02\xa9BC\xfb\x97\x15\x858\x0e/\x0e\xa69\xed\xdb\xc4\x16\xae\xdb\xe4f\xee\xc2\xeao\xeb\xba\xcd깺\xcdh\xbc6-+\xd6\xffuH\x19\x15\xf7ɂ\xb9\xe9\r|K\xc1tD\xe4ε\xded\x80ya\x8f\x97\xc0m\xfc\xea<\tFq\xe1(y\xaa\xb9\xfft\x8c8U\xa67\xddqo(ӿ\x91\v\xd5\xd4\u007f\x1a&\x90\xb2\xbf\x0f\xba~!\x03>5\xc7\\\x02\xcf*\x06\xa4\x97\x90qaQw81\xb5\\5͉\xdfJ\x82yK\xe5Z\xcel\xb2\xbf}qޑ\xa9\xd39\x8b\xa8\xd1\x1d\xea}\xca\xe8U\xb7\x8d\xe9$T\xa0`\x90k\xcc}\x88\xf9@\x14\xac\xbf\x90\xe7\xf3\xfe\xf3\aLlj\x02K$\xac\xb7\x84\xf7\x1d4\x9b\xd3\x06\x17y\xd9\x02\x82\x93RE\x17>]p\t\f\x9e\xf0\xe8\xbd\v&\xc11\x84\xb9i\\\xe7Y\x88\x1a)gA\x02\xf5\x84G\x02\x12\xd2\x103c\x97\xb1\u07b7'<\xcew\xea\x90\xcda\xc3MH\xab8\xfa\xb9\x0fD\x00\x8aa\x97\x92\f(\x89\x145\xccܢ`\xa9\x8a\x88-R\xfb\xe4\xe5Ulj$݈\x91\x17\xc63\xc5I\xfb\x9e\x17\x8b\x16\xe8T'\x18\xa4=\x11\x93H\x8fL\xf0\xb4\x9a\xc6\xcb\xf7F^\xc2ge7r\xccYm\xb7\xdb\x17nB\xee\xee\x83B\xf3YY\xfa\xf2\xe6D\xf4(\x9fLB?\x8c\xb6\x90\xf4jح\xbf\x99\x8b\x9a\x15b\xdf6>ªX\xc2\rl\xa4\x8b!<\xad|6\xd1O6\xa5\xed\xdb-/\r%\x9b\xa4\x92+2v\xeb\xa1y\x02\x89\x17\nr\x93\v}\xb4\xaa)\xfdt\x8b >8\xbb\xe0G\xfb̨`\t\xa6\x90\x96DD\xca\xec1\x8b;\x9e@\x8ez7n\b\x9a\xadp:{\xc9\xf4\x8bt\xa9o'\xc9\xd3\x12\xd3\x1c[P\xc6\xe9\x1c\x1a+\xb77g\xfbD\xd6\xcet\x1cL\xe5\x8dw\x9c[\a\x19I\xf2\x1bf\xa8\xc9Ҕ\xceY\x98\xb8[\xac\xbd\x17S\xbeo\xb7=J\xde\xc6\xe5\x8c\x12t\xffv\xa6\x8a\x84\xf6?P0\xaegw\xe8{:0\x11\xd8\x1a\x19\xb2B\xcdI\x1c|n\xc0q\xf3\xc0D7!<\xb0,\xe5\xb4\x06\no\x86U\xd6\xf34.\xe1y\xaf\x8c\xb7\x8a\x19G\x91\x02\x9f\xf2\xb4\\;\u007f\xc2\xe3\xf9eo\x8f\x9fo\xe4\xb97Ͻ\x1d\x1bm\xf9\f`%\xc5\x11\xcei\xe4\xf9\xeb]\x97ER\xb7\xa0\x13\x9d\x9e-sf]4\x17\xad\xb8\x1bV\x9d\xc18Wt\x1c\xdb\x052W(c\x17\"q\xa7\x8c\xf5\x19\xba\x96\xf38\x90\x1b\x9a\x8eiBN\bX\xe6Ͻ\x94\x8e'\x1cN\x91uR\x95\x8eK\x06\a\x13\x9c=\x88i\x00Ʉ\x80\xf3z\x8fz\xfdx\xee\x8f=h\n\x96\x90[0\x01щB\xa1U\x82\xc6L\x89ì\xe6\x9dI\xb8U\xc96\xe6\x83\n\u007f\x880\x95܋m\xa9\xdb\xe8Hs\x92\x9b}\xfb\xd2\xc8\x01\xba\xad\xed\xfe\x9f\x16\xb3\xd30\x02:\x82\xces&g\x8dE\x0f\xb9\x1b?.n\x85\x00ƻ\xeczW\xd26^\xea\xe9\x05\xa1\xf9\xb2\x066\xe7rC\xc0\xe1ݛ\x9ac\x88*\x11Ow\xa9o\xe2Ț\xcc\xd5\a\xbf7\v\xd5O\xb9\x0f\xb5\xe7=jlq\xaa\x9f\x19&wN*\xdb\bϗ\x11\xda\xe3qa \xe3\xda\xd8&\x92\x86\x0e\xb6\xde>F\x91\xb7Z\xbf\"D\xf9ɏk$\x80\xf6\xea9\x9e\x14\x8e\x1c\xce\r5:\x06A\xe0\x19p\v(\x13UJJb\xb8MJ\x13x\x92ze:kd}[\xb2\xb1]CY\xe6K\x16\xbe\"\xe9\xe1r\"\xd7\xd1\xec\xfc\x91\xf1\xa9LUl'\xb1\xc9\xf2\x1cU9a\xd4\xea\xd6bӃ\x1f\xd7:\xe2\xcd\xd9\v\xcf\xcb\x1cX\ue23d\x88\xa2\xce2\xf3\x1c\xdb\xfc\x85g\xc6-iw\a\x95T\xbdUnS\x14\x02\xed\xb2h`\x8b\x99Ҵ\x17\rO\xb12\x99\x81\xe7J\x02\x83\x8cqQ\xeaE\x1a\xed\x04\x8a.\xf7\xec\xc3&\u007f\x1b\xa7}ɴ+Z\xfel\x9ar\x91\xab6\xa5U\v\xbd\xd4Q\xbb\xd3\xf8\x96.R\xa1\xb9\x93\x19\xf5\xb6^R\x10%&\x8f_ݤ\x06m\xbe\xbaI\xbd\xf6\xd5Mj\xb5\xafn\xd2W7i\xb2}u\x93\xbe\xbaI\u007fU7i\x1a\x93\x15\xe5\xad\x06\u007f\x9a\x99}\xf6\bu\x1c\xb1Q\xc8\xe1T\xff\xc6\xd7^/\xab\xcb\xdb\f\x8f\x19\xa8\xbb\f%\xdd+*8\xef\xf3\xb9>\xfa\xaf\xd5|U\xa8\xe7\x84?\n\xaf/,\x9d,\xdd[P\x887T\x9b9_^2WTҮI\xac\n;bQ\xa2\x8aS\xf4V\x1f+ٝ\x9b٬``B4kS\x98\xae\x89\xf2\x85\xea\x15gK?f\n>\xa6\xcb6\xc7)\xd4q\xed\xdb$ҭ\x12\xc3/L\xa1ɺ\x8c\xf1j\x8cp\x92\x81\x96\x1dޭۿX\x15j3\xe0\x99\xdb}o\x01T4\xe9B\x16\xb9k\x16GF\x99\n\xd7\a\xba\x94\x03\xa5Arq9X\x17Sݬh\x92\x13~*|Pt\xd2~\x9br\xed\x97\xd4n\xbc\xbab\xa3]\x931\xa8dO;\xecXZB\xba\xbc&\xa3]s1bd\x16Tb\x9c\\i1\x1foMVU\xbc\xa2\x96\"\xd6IL\x19܉\n\x8a\x05>\xc7|\xb5īj$\xe80o\x02\xeb\x93*#\x1aU\x0f\x13 \x97\xd5C, \xc9\\\xed\xc3\xc9\x15\x0f\xdd*\x83\x89E\xcc\xd59\x8c\xd70L\x00\x1d\xacnXR\xb90\x01\xb3\xaaix\xc3z\x85\x99*\x85\xb7\xa9$\xfc\xad\xbe\xe7X\xcd\xc1L\xa5\xc1\x8cg:\x85\xd5L-\xc1\xf2\n\x82\x19\xfa\xbc\xb2Z\xa0\xaa\a\x18\x9c\xf3\xd4\x1a\x81v\x15\xc0 ȅ\x95\x01#g\xff\x83 \x17\xd4\x03̜\xf8\x0f\x82\x9d4\x8c\x13\x121\xfa\xd3\xd0%4\x98\xb1L\xe2\xf7\x97\x9c\xd7,E\xe9\x14\xf5\x84G\xbc\f\xb9\t\xc4\xda\x19\xa1\xcel\x9d\x12\xeax]\xcd\xf5jz\xd8}\xb6\xaa\xaa\xf87\x81\x1f\xb9L\xbd$81nXt\xba\x86I\xc5\x15\x95KQ\xfb\\C ;\x1e\xbd\xc1\x82i\xba\x95\xbb=\xfa\x18߬\xe1\x96%\xfbvG\xd83㢼|\xa0\xaa\xf4\xbc\n\x80\xae\xe2\x18\xf7\xe5|\r\xf0QUqe\xf3*\x8c\xe1y!\x8eP\x1a\x84\xf3\xf6\x90\xd3\xfd\xfb\x01~\x1b\xc9\n\xb3W\xf1\xaeᤋ\u007f\xdf\xee;\x10\x17Ǜ\x86\x89PeZ\xc1\x1ed\x17\x93G\xb8{$\xff\x84nq%\xf5\x1d\xb6\xe0\x85D\xbf\xbd{\xc5퇷\x8c\x93\x8dU\x9a\xed\xf0\x93J\x1aw\xc4\xc7\xd6\xdf\xeeۺ\xd1\x1b\xf4Q\xccF\xc5\x12\x1e\x16\xaf\x96\xb6\x87\x0e\x85=!A\x1cd\xbeN\x1c8\f\xfb\xaajt\x87Y+&\x17\xf1\xf0\xf0\xc9#ny\x8e\xeb\x0f\xa5\xcfA\xac\n\xa6\r:\xfa\xc5\x05\xf9A[\xf7\xe7^=\xf7\u0557\n+\xfd\xa1\x8b\xafFJ?S\xa2c1\xd6\xfe\x1aj\x14\xb0H\xa6iq|\x1c\x1e\xd3\b\xa3\x1aL\xf1;Xec\xa3z\vl\xdc\xc1w\x81\xaa/\xc6z\xabە\xc3~\xc5\xf0\xbde\xcbli\xe6n.S\xa7\xf8\x0eA8\xac(5]\x8e\xf4\x00\xbc0\x9e|y9df[oCL\xf1\xe4\xa6ߟ^\x01ЩG\x8a2\xc2\xd5=\xe4gf\xaa\xdc\xef\x801\xae\x81\xf9q\xe4\xc7:X\x98\x02\x1eP\x82\x92\x94\xea\xa5ˇ\xfe\x85\x8a\xee\x98~\xea\xa5\x01#d\x92\xcbB(\x96Ɲ\x1bmNx\xd9\xe0\x81\xf4\x91>\xa0\xbe0\xa3\x10\xe9\x96u\xa6\xf4\xd0\xf2\xbb\x92\xe5\r\xc35\xa4\xcc\xe2j\x00\xe0\x02=6 Rt\xee1s똺\xf8\xddAG&\xf1\x1a\xb8?3\xc9\xd1\x18\xb6\x8b\u05cd\x9f\x9d:ڡD\xb2w\xbd5\x87(\xa2ι\xb7\xaf\xde\xfad\x04Kl\xc9\x02\xf8\x98}i\xf4\xba\xe8\xef9\xa1v\x90qA\x1d\xc3c\aA?\x0f+\x12.-\xee\xb0\xed\xd9\xe3K\xc1\xf5\xbc.\xbf\xad\xba9\x8aP։vx\xfd\xf4\a\n\xbe\xe3N!:\xc6\xee\x98\u07b2\x1d\xae\x12%\x04ҡy\x17\xa3߇\xaf\x1e\xea\xc0\xc3\x1e\xbd\x05}l\xf6\x8c\x1eO\x10f\x0f%\xbe\xf3q\x19,\xaa\xe3`\xce~U\xba\u007fΘs\xa9\xb4\xf7\xbc)\xfa\x8bC\x17\xebs\xba\x91=\x89\xef\x9d\xebQ\x1d\xac6t\x15Fa\x1a\xb6\xf3C\ap+\xf8\x8c]\x13\xe5\xcf\xd40}\xac\xde\u007f\xe9u\xd8\xc8;\xadv.X\xe9\xfdt\x13\xb5R\xef\x97;\xa6-gB\x1c=\xf8\x91Y{\x9f?\xa0\xd3\v#\x86`\x88\x80\x01\xb3i\x1a\x86Nu4ĥ\xe75\x9d\x83mUi[\x1b\xaeް=\x8e\xc7\xf9\xd6\xf0YY\x8c)/ކ\xe8, \x1a\xbb\xc2,S\xda\xfa\xd0k\xb5\x02\x9e\x05\xc3҃\xea\xb43%m\xfdC\"\xc0m\x9d\x80\xa8e\x93|A\x8d̐lZz̄NLX\x928\xff\x04\xaf\x8ce\xa2\xa7\x03^\x9d\xa9%{\xed\xa4\v\xd3_z\xe6\xacG\xe4M\xb3wU\xa2]\xe6[\x1f\x93\x100O/:\x95\xf6ZO\fg#\xb6\x88\x12\x9e5\xb7\xd6\xe9\x9bf.\x1b\xac\xd30B\x80Q\x90\xb1\xc1\xeb\xee\xe3:\x8f~U\x96\x89\xcdX.\xa6\xed\x02V]\xe3rhp\u007fQʱaKK\x1f\\\x8e\xafK\xe2&\x8et\x8cK\xf6L\xee\x9c\x00iU\xee\xf6Q\x02G,\xc5p\xfe\xb9t\bA!ʝ\x13\xe9\x90\x13\xb6\xa5\x96\x8d\xe83d\x89\xd3\x06\xaa,y\x82\xb2\x18.\x9a\xf0\xcf\x1c\x85G\xaa\xae\xc25\xf6U\xa6U\xbe\n\xf4\xa7x\xfc2D\x86\x9a+\xe72QL\x13n\x92\x8e\x80%\xb6\x17\x05J`&\xe02[25\xc5\xc8\xf1@\xcd2m\x979a\xf7\xad\xae3\xfe\x17\xc1\xc5t\r\xf7!\xba\xedob\xadr\xb8\xe9>\x11\xe6\"S\x19\xdf\xc3\xf2\xb1\xb4g\xbdqn\x99F\n[\xfc\xf5\xd1\x1eĖC\xd5r\xa0ڨ\xff1\xbeS\xfdB\xd8\xed\xbc\x17\xf5\xd8\xe9\xdc9\x03t;\xb8\x86\x17}\x9fox֏/\x8aB\xf0\xc4a\xfb\xed\x17:\xdb;,\xf0*.&\x1d\n\xf2\x1e*\xdf\x00>`\xa11q\xbb\xb2\x8f\xfc\x9d@g\xef\rb\xdbS\xb9X\xecصCD\xf3\xdeZ̋\x81\xb9&b\xc4zИ\xe2c\xb1Co\x01\xf1!\xb6\b*\x14\xb1\x8c\x06\x85\x8b\x17R\xb9\x1a\xa7,\xa4\x1a4\xb6\x10S&N\x01e\xe5\x90)\xaab\xae7\\\xd53\xd3.О\xde=\u007f\v\x9d\x06\xa2\x900\xfem\xe3\x90F\x18\x12\xf1\xfb\x83\x02\x91\x01=\xde\xf9T?\xc3\xf8\xae\xfe\x8fȷ\n\xcf.\x1e|)$i˴\xb1\xb5\x03*\xe1K\x9d `I\x82Nv?w_`\x9a\xb2R\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xbcYKs\xe3\xb8\x11\xbe\xebWt\xcd\x1e|\x19Q3\xd9KJ\x97\x94F\xceVM\xe2\x19\xbbF^琤j!\xa2)!\x02\x01\x06\x0fi\x95T\xfe{\xaa\xf1\x10)\x92\x92\xec\xad\xdd\xe5\xc5&\xd9\x04\xbe\xfe\xfa\rM\xa6\xd3\xe9\x845\xe2\x05\x8d\x15Ź5\x02\u007fv\xa8\xe8\xce\x16\xbb?\xdaB\xe8\xd9\xfe\xe3\x1a\x1d\xfb8\xd9\t\xc5\xe7\xb0\xf4\xd6\xe9\xfa\x1bZ\xedM\x89\xf7X\t%\x9c\xd0jR\xa3c\x9c96\x9f\x000\xa5\xb4c\xf4\xd8\xd2-@\xa9\x953ZJ4\xd3\r\xaab\xe7\u05f8\xf6Br4a\x87\xbc\xff\xfeC\xf1}\xf1a\x02P\x1a\f\x9f?\x8b\x1a\xadcu3\a奜\x00(V\xe3\x1c֬\xdc\xf9\xc6:m\xd8\x06\xa5.\xe3^\xc5\x1e%\x1a]\b=\xb1\r\x96\x01\t\xe7\x01\x1e\x93OF(\x87f\xa9\xa5\xaf#\xac)\xfce\xf5\xf8\xf5\x89\xb9\xed\x1c\n\xeb\x98\xf3\xb6h\xb6\xccb\x80\xccіF4.\x00\xfb\x14\xf6\x83U\xdc\x10\x1eҎ\x10\xbf\x02\xeb\xcb-0\v\x8b=\x13\x92\xad%\xce~T,\xff\x1fV\x8b\xb0\x9fN\xab\xbbc\x83s\xb0\xce\b\xb5\xb9\x00E2\xeb^\x98\x14\xfc\xc4\xc4\x10\xd7\xc3@\x06\x84\x05\xb7E\xa0\xaf\xc1\xd1\x03\xba\x8b|\x01\x11\x86\x90\xf9\x82\x03\xb3aI\x80}\\\x03y\a,\xad\r/g/\"j\xba\xefc\xce\xd6/\x06\x96문\xd8\xe0\x8de\xc8l\x05NJy\xe9\x86\xda\xde\xc7\x17]m\xc8\x1aY\x9f\xceN\xf7\x9d%\xe2nk\xad%2\x92\xd9\x18\xed\x9b9\xb4\xbe\x12?J\x9e\x1a\xbd<\xda;\x99\xfb\xa1\xbb\xbe\x14\xd6\xfd\xf5\xb2̃\xb0q\xd7Fz\xc3\xe4%O\r\"v\xab\x8d\xfb\xdan=\x85\xb5\x95\xf1\x8dP\x1b/\x99\xb9\xf0\xf9\x04\xa01h\xd1\xec\xf1G\xb5S\xfa\xa0~\x10(\xb9\x9dC\xc5dp0[jR:,ް2\x98\xcf\xfa\xb5Ia\x9b6\x8c\x8e6\x87\xff\xfeorr\x01\":\xbc\xd4\r\xaa\xc5\xd3\xe7\x97\xefW\xe5\x16k6O\x9e2\x12\x16=\n\xc8\x03Y\xc7ɶh\x10^\x02\xdb\xd1\x01m\xd2*\xad\b\xa0\xd7\xff\xc2\xd2e_l\x8cn\xd08\x91Q\xd2\xd5IR\xa7g=,w\x046\xca\x00\xa7\xb4\x841\x10RrA\x0e6(\x02\xba\x02\xb7\x15\x16\f\x06\x12\x95k\x8d{\x02T\x01S\tV\x01+\"\xdaX\xb2\x97\x97\x9cr\xd9\x1e\x8d\x03\x83\xa5\xde(\xf1\x9f\xd3\xca\x16\x9cN\xb1\xe70\xb9A\xbeB\xeeQL\x12\xcd\x1e\xdf\x03S\x1cjv\x04\x83\xb4\ax\xd5Y-\x88\xd8\x02\xbeP\xb0\nU\xe99l\x9dk\xec|6\xdb\b\x97\xd3r\xa9\xeb\xda+Ꮃ\x90\\\xc5\xda;m\xec\x8c\xe3\x1e\xe5͔̊\x99r+\x1c\x96\xce\x1b\x9c\xb1FL\x03p\x153eͿ;9\xc3]\ai//\xc5+\xc4\xc4E\xde)\x1a\xa2\xcd\xe3g\x11\u007fK/=\"V\xbe\xfdy\xf5\fy\xd3`\x82s\xce\x03\xdb\xedg\xb6%\x9e\x88\x12\xaaB\x13\rW\x19]\x87\x15Q\xf1F\v\xe5\xc2M)\x05\xaasҭ_\xd7\u0091\xa5\xff\xed\xd1:\xb2O\x01\xcbP\x9c`\x8d\xe0\x9b\x90\xd9\n\xf8\xac`\xc9j\x94Kf\xf17\xa7\x9d\x18\xb6S\xa2\xf46\xf1ݚz.\x18\xd9:=\xce\xe5n\xd4B\xa3Q\xbaj\xb0<\x8b\x13\x8eV\x18\xf2e\xc7\x1c\x86\bHA{F\xe9\xe5\xc4x9xC\x00\x97%Z\xfbEs<\u007fރ\xba8\x89\x9dak\xd0\xd4\u0086\xae\x04*m\xfa%\x8d\xa5\xbaҽr\xfe)zoP\xf9\xba\x0fa\nߐ\xf1G%\x8f\xa3/\xfef\x84\xebo0j.\xba\"\xac\xd5Q\x95Oh\x84\xe6W\xd5\xfd\xd4\x13>)\xbd\xd5\a\xa8\x82\xdb*'\x8f\x94W\xecQ\x95\xfd\xbc\x99\xaf\xc5\xd3\xe7\x9cCcp\xa4XJ\xdc\x14\xb0H1\xa9+\xf8\x00\\XjKlX\xb2O\x0fuY\xf4v\x0e\xce\xf8W+]jU\x89M_\xd5n\xef5\xee\x15W\x17\xedq\xb5\f{P\xa2!\x0fh\x8c\xde\v\x8efJ\x9e/*Q&\f\xdeĪS\x85\x82\xd8\xd7n4v\x82\x02\x069\xc5(\x93W\xed\xb5<\x89\x85\x8e\x96\t\x15\xfd\xb3\xfd<$\x0eS\xa7B\xa8\x1c*\x9ez\xa73\x1c:\xe4\x1f\x8b\x1c\x0e\xc2mcZ\x93\xc3h\x82+\x11E\xd7\x0e\x8fÇ=\xcc\xcf[$\xb9X\xf6\x10,\x96\x06]\xf0(\x94\xe4$\xe40\x05\xc0\x17oCRd\xb1\x11\x18Y\x15\xf2\xb7;<\xf6\x89\xbda\xc8Ԗ݂zG\xfdJ\x06j\xb0B\x83ʍ&d\x1a \x8cB\x87!'s]ZJ\xc7%6\xce\xce\xf4\x1e\xcd^\xe0av\xd0f'\xd4fJ\x14OS|\xccB\xab7\xfb.\xfc\x19U\xf2\xf9\xf1\xfeq\x0e\v\xceA\xbb-\x1a\xb2R\xe5ev\xa8N'\xf2>\xd4\xc5\xf7\xe0\x05\xff\xd3\xdd[\xf9\xd0M\x8c\x8c\x9b\x9c\xac\x82\u007f\x1f\xa9\x8d\np\x88\x9aU\xb4\x836@Ս\x8c['\xeb\xc5\xfc1f\xbd~\x17ܽ(\xd1P\xee\x1f\xe6\xc5\x1d\xf6S\xe2\xc5\x10J]\xfb\xd5\xf8\xc9\r\xbcP\\\x94\xd4$\x9d{~\x9e]\xf8h\x9f\xff\xea\x14\u007fY\xd5\b;U\xaf\xabH\x1f\xbb\x92\xed\xb8\x17\x93M\xaaJ\x16\x1d57\x16\x14R\xd5b\xa6\xcfU\b\xf4R+Eq\xe64\xb0Sں\xb3\xfd\x1c\xfd\x86\xa8_\xfbr\x87\x03\xa2\a*|\nb\x99\xd3\xf8\x11\xa1\xf0\x16C\n\xbd\x0e\x00nypɖhn\xa3X.H\xecT\xd8\x18,\x17\xb0\xf6\x8aK\xccX\x0e[Tԥ\x8b\xeaH\xad\xe2\xf3\xc3j4.\x13\x8f\xa1\aH}vfs\f{\xcc\xc2sX\x1f\a\xb5\xfb\xa6j\x8d\xc1J\xfc|S\xb5\xa7 \x96\tn\x98ۂPVpJ\xa2C\xbaG\x9a\xa9|\x9d\xea\xf4c\xca\no4\xc6\xe5\xf8\x8d0^\x1b\u0099ϫ\x91\xf1\x94\x84Nz\xe7\xfb\x94\xb7σv<6G\xb4h\xc7\xcf\x1fb\xdfS\x0eJ\xdb\x19\x8c\x97\xa1\xfc\x95\xee)\x9fo\f\x03\x94\xaa\xb76\x06m\xa3\x15'\xff{]\xef\xd4\xc2\xfd5:\xa81\x03Nϳ\xd5ٛ\xcc\xf9ͱ \x0e\xf8o\x1b\f\xe2\x91V\xb7\xfd\xd6\xebp\xd6Й\r~\xe31\xe0]g\x0e\xa0\xc9R\x81W\xa1[\nU\xb8\x80\u007f(\xb8\xa79\x91j\b\x9f\x13F\xea\x10\x86\xf5\\\xe9\x03}\xdcY-,\x00Z\xc5:J3\x10M\xe2q\xac\f\xaf\x0eBJ\xaa\xa4\x06k\xbd\x1f\xa9\xa4\xd4\xe6\x19\x94G`\x96\x88\xd8\xff\xa1\xf8P\xbc\xfb\x9dg\fɬ\xa3\xa1\x01\xf97܋\xfe\xa9Ȑ͇\x81|\x0eޓk\xd3\xcdOyܜ\x99$\xf6\xd3@\xfdJH\xea\xc5F\"\xbd\xad\xe2\xc3\xe3\xc7O\xab\x87;\x1bZf\x1a\xec\a\x8b\x1e\xc8|6\x00\xa4\x9eY\xa7y\xde[\x87f\xc4\xd8'[\t\vJ\x83\xd4js\x16\n\xf1J\xd3=uI\xd1u\xb4\x01\x8e4\x98S\x94\x97[\xa66؞\xd8$\xec\x1d\x94\xe4\x18C\xa4\xe7\xde\xd1z\x83P\xe3\xae\xf0\n\x1b>\x8bak<8\xe4mE\xc7\x0fxO\xa8\x93-/\f\x137\xb8\xeeI\xe7\x1aJDN]>\x80n\xaf_6,\x0eϵoj\xff\x8b\x8f\xb8\x87\xea3\xdb\x1ev\xff\xfe\xba\x87\x9f\x17\xae\x97W\x92\xc8\x1a\x96\xde\xd0\b\xd4\xe6\xdd\x10Lc\xb9\xf7u\xc7\x1c\x8b\xb3\xdf$\xbao\xfa\xbfW\xdc\xd4e\xa4\xde\xf4\x1e\xb5\xbf\xea|l\xef\xd2\x0f/\xf1\x94>\xbc\xa0\xb1\x92\x8aK\x87ȔQғ\xb6\x88Q\xf5h\x1c\xf2\xaf\xfd\xe3\xfaw1\xec\xf2\x99{\xb8-\xa9\x9eǟ\xa0\xe0\xef\xff\x9c\xc4U\x91\xbfd\x1c\xf4\xf0\xff\x01\x00\x00\xff\xff\xed\x93\x00\x8d\x01\x1b\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4\x96\xcdn\xe46\f\x80\xef~\nb{\xd8Kdz\xc1^\n\xdf\xda\xec\x16\b\xda\x06A\xb2ͥ\xe8A#q\xc6ldI%\xa9Iӧ/$ۙ\x9f8\xc8\xf6\xb0\xbe\x89\xa2\xf8\xf3\x91\x94լV\xab\xc6$\xbaG\x16\x8a\xa1\x03\x93\b\xffQ\fe%\xed\xc3\x0f\xd2R\\\xef/6\xa8\xe6\xa2y\xa0\xe0:\xb8̢q\xb8E\x89\x99-~\xc2-\x05R\x8a\xa1\x19P\x8d3j\xba\x06\xc0\x84\x10\xd5\x14\xb1\x94%\x80\x8dA9z\x8f\xbc\xdaah\x1f\xf2\x067\x99\xbcC\xae\x1ef\xff\xfb\x0f\xed\xc7\xf6C\x03`\x19\xeb\xf1/4\xa0\xa8\x19R\a!{\xdf\x00\x043`\a\x0e=*n\x8c}ȉ\xf1\uf322\xd2\xee\xd1#ǖb#\tmq\xbc\xe3\x98S\a\x87\x8d\xf1\xfc\x14ԘЧj\xea\xa7j\xeav4Uw=\x89\xfe\xf2\x9aƯ4i%\x9f\xd9\xf8倪\x82P\xd8eoxQ\xa5\x01H\x8c\x82\xbc\xc7\xdf\xc3C\x88\x8f\xe1gB賈\xad\xf1\x82\r\x80ؘ\xb0\x83\xeb\x12u2\x16]\x03\xb07\x9e\\\xc53\xe6\x11\x13\x86\x1fo\xae\xee?\xde\xd9\x1e\a3\n\x01\x1c\x8aeJUo)\a \x01\x03S$\xa0q\n\x10b@\x88\fCd\x841Zi'\x93\x89cBV\x9a\t\x96\xef\xa8\u007f\x9eeg\xceߗ\xe8F\x1dp\xa5cP@{\x84\xa9\xee\xe8@j\xe4\x10\xb7\xa0=\t0V,a\xec\xa1#\xb3PTL\x80\xb8\xf9\v\xad\xb6pWб\x80\xf41{W\xdal\x8f\xac\xc0h\xe3.пϖ\xa5\xe4W\\z\xa3s\x81珂\"\a\xe3\v\u05cc߃\t\x0e\x06\xf3\x04\x8c\xc5\a\xe4pd\xad\xaaH\v\xbf\x158\x14\xb6\xb1\x83^5I\xb7^\xefH牱q\x18r }Z\u05fe\xa7M\xd6Ȳv\xb8G\xbf\x16ڭ\f۞\x14\xadfƵI\xb4\xaa\x81\x87:0\xed\xe0\xbe\xe3i\xbc\xe4\xfdQ\xa4\xfaT:A\x94)\xec\x9eŵ\x87_\xe5^\xfaw,\xf3xl\x8c\xff\x80\xb7\x88\n\x95\xdb\xcfw_`vZKpʼ\xd2>\x1c\x93\x03\xf8\x02\x8a\xc2\x16y,ܖ\xe3P-bp)Rк\xb0\x9e0\x9cB\x97\xbc\x19Hen\xbfR\x9f\x16.\xeb\xbd\x01\x1b\x84\x9c\x9cQt-\\\x05\xb84\x03\xfaK#\xf8ͱ\x17²*H\xdf\x06\u007f|ݝ*\x8e\xb4\x9e\xc5\xf3]\xb4X\xa1\x85\xb1\xbcKhK\xcd\n\xb8r\x96\xb6d\xeb\x18\xc062<\xf6d\xfby,O\x88>\x0fp{$^\x1a\xd8\xf2\x8d\x06ʭr*\u007f%Y\xa8u\"Ɠ^[\x1d\x99y\x93\x82\x1a\xcd\xf2\xbf8\xd4\x133\t\x9b\x991\xe8d\xa7\xde\x02K\x87\xbe&wd\x8e,\xe7y\x9f\x84\xf3\xb9\xaaԿ\x96\xa1 `\xc2\xd3t\f\xb47\n\x8fȥ\xc5m\xcc\xe5\xee@\a.\x9f\xf1\x9aP\xf48\x16\xa5\x94/q\xb4(Ҟi\x91\xe2\xf0\"\x9aW\xebP\xbe\xf2'4\x1b\x8f\x1d(g\\\xac\x9fa6O';\xa97\xf2\xa2\xd8'I\xdf\x14\x8d%\xde8\xde\xcb\xf8\x16\xf0\n7\xe4\xe1\xdc\xcb\n\xae\xf1\xf1\x85\xec*\xdcp\xdc1\x8a\xbcغ\x19I՟\xddW0Yh\xb83\xd1\xe1\x81qqXU\xe8\xab\xe9AQ7\x00\xea\xaf\xd8\x1d\x81\x15\x8dlv3\xeaC\x17\x1bk1)\xba\xeb\xf3\xe7Ļw'\uf0ba\xb418\x1a_C\xf0ǟ\xcdh\x15\xdd\xfd\x1cG\x11\xfe\x17\x00\x00\xff\xff\"\xf7\xf4 \x8c\t\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4WOoܶ\x13\xbd\xebS\f\xf2;\xe4W \xd2&ȥЭuR h\x1a\x04\xb6\xe3K\xd1\x03E\xceJ\xac)\x92\xe5\x90\xeb\xb8E\xbf{1\xa4\xb4\u007f\xb4Z;=to\x1a\x0e\x87\x8f\x8f\xef\r\xb9U]ו\xf0\xfa\x0e\x03ig[\x10^\xe3\u05c8\x96\xbf\xa8\xb9\xff\x9e\x1a\xed6\xbb7\x1dF\xf1\xa6\xba\xd7V\xb5p\x95(\xba\xf1\x1aɥ \xf1\x1dn\xb5\xd5Q;[\x8d\x18\x85\x12Q\xb4\x15\x80\xb0\xd6E\xc1a\xe2O\x00\xe9l\f\xce\x18\fu\x8f\xb6\xb9O\x1dvI\x1b\x85!\xaf0\xaf\xbf{ݼm^W\x002`\x9e~\xabG\xa4(F߂M\xc6T\x00V\x8c\u0602r\x0f\xd68\xa1\x02\xfe\x91\x90\"5;4\x18\\\xa3]E\x1e%/\xda\a\x97|\v\x87\x812w\x02T6\xf3n*s]\xca\xe4\x11\xa3)\xfe\xbc6\xfaQO\x19ޤ \xcc9\x88\x9cmp\x91w\xb6A\x91G\x99V\xf0\x1f\xe8\xe5\x10\xb3r\xfd\xfe\xe6\x16\xe6E\xf3\x11\x9cr^t\xb2\x9fF\a\xe2\x99(m\xb7\x18\xca\xc1e\x95qE\xb4\xca;mc\xfe\x90F\xa3=%\x9dR7\xeaH\xb3l\xf9|\x1a\xb8\xcam\a:\x84䕈\xa8\x1a\xf8`\xe1J\x8ch\xae\x04\xe1\u007fN;3L5S\xfa<\xf1\xc7\xdd\xf24\xb1\xb0\xb5\x0f\xcf\xedl\xf5\x84\x16V\xbe\xf1(\xf9\xbc\x984\x9e\xa7\xb7Zf\v\xc0\xd6\x05\x10\agO\xb45Gu\u05fc\x99A\x89\xd0c<\x8d-P\xdc\xe6\x14^\xf8a\x10\xa7-\xe4\xff\xd8\xf4\r\xf7\x01\x9a \x94\xce\xf0]\xb3\xa8wi\xf55\x8d\xaeb\x98\xa5\xca[g\x1e\xd9\xe8\xdcz\x8e\xd1,\x17\xe5\x1f\xda4\xae\x15\xaf\xe1nj\xf4\xa3\xeb\x9f\x18\xbdr6\xb2\xa0\x9fH\xb9s&\x8dxc\x85\xa7\xc1=\x999ߩ\xfb{f\x99v\x8d\xdcj\xf1\x12\xa4i\xf8\x1a)\x99ՅV\x858\xff\xf2\xbd\xfa\x1c\xcb|5\xcd,\xf3\x84\xd2q\x11\xf8>\x0f\x16#ҡ\r<\xe88\xc0à\xe5\xb0R\x15\xf2\xb4|@\xdc_\x88\x9c\xd4ٱ\xff\x0e6\xebX\a<\x93G\x9dEs\x16d\xc8\xd5Z\xf1\x85\xe7\xd6\vד\x17\x9eul\xb9\xa0\xbfճ9{&U\xa6\x10\xd0ƩF\xbe\xad\x96\x13\xbeŴ\xb3\xe2\xbf\\\u007f|ҹ\xef\x0ey\xf9\x89&\xb4-8|\xc0\x9at\xcfw+\x8f\xb1w\xb3\xb3\x96\x04\x94\xdf\xf1\x1d\xff\xec\xa9\xe1W\xaf\xc3ѓ\xe5\x02\xb4\xf7\xfb\xb4\xd2XЖ+b\xf9z\xc9\xe5\x90\xf2\xb5+\x85=\xc3\xd6!(4\x18QA\xf7X:\xe3#E\x1c\x97x\xb7.\x8c\"\xb6\xc0\x17G\x1d\xf5\x99P\xf8\xf9):\x83-Đ\xd6U\xb4\xb2Y?\b:\xb3\xd5\xc9>?s\xc6\xda\xf1\xef\xcd\xf5\xc4\xf9Å\x0eV\xc3'|8\x8b}\x0eN\"\x11.\x8dq\x01\xfd\x8a\xb8\x17\xa1û\xfd\xcd\xe1+K\xb1\x9e\xde\xe9y\x00 \xbfz\xd5\x11uӛq\x8a\x1c\x1c#\xa4D\x1fQ}Z\xbe\xd4_\xbc8yz\xe7O\xe9\xac\xd2\xe5O\x06\xfc\xfa[U\xaa\xa2\xba\x9bqp\xf0\x9f\x00\x00\x00\xff\xff]]l+\xe3\f\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4Y\xdfs۸\xf1\u007f\xd7_\xb1\x93{\xf0\xf7fB\xea\x92\xfbN\xa7\xa3\xb7\x8b\xddt\xdc\xde9\x9eȗ\x97L\x1eV\xc4JD\r\x02(\x16\x94\xa2v\xfa\xbfw\x16 %Q\xa2e\xf9\xdaK\xf9b\x13\\,\xf6\xf7~\x16\x9a\x14E1A\xaf?Q`\xed\xec\f\xd0k\xfa\x1a\xc9\xca\x1b\x97\x8f\u007f\xe4R\xbb\xe9\xfa͂\"\xbe\x99\x94+\xd74\xad\xd5q;M\x01\xa9\x17mt\x81\xa7\x8a\xd6d\xa6\xacW\x05\x86\xaa֑\xaa\xd8\x06\x9a\xa2\xd7E\x12ܦH.\x1b\xf5]\xe8➯\x0e$\x8d[q\x1bǠ\xedj\xb7\x9c\x02\xecI\xbbK\x80\x81f\xc0n[\x96\u007fo^Y\x12\xab|\xfc\xd3\xfc\x01\xfaC\x93\v\x866O\xd6\xdeo\xe3\xbd\xe1\xc5P\xda.)d\xc7-\x83k\x12G\xb2\xca;mcz\xa9\x8c&;4:\xb7\x8bFG\xf1\xf4\xdf[\xe2(\xfe)\xe1:%4,\bZ\xaf0\x92*\xe1\xd6\xc256d\xae\x91\xe9w7\xbbX\x98\v1\xe9\xf3\x86?\xacCC\xc2l\xad\xddr_(F=t\x94\xfbsO\x95\xf8K\x8c&\xfb\xf4RW)\x05`\xe9\x02\xe01yy\xc0v,5\xe5\xc9Ua\x1e]\xc0\x15\xfd쪃$\u007fB\xa6wc;z\xa9\xa4\xb6\xe54\xa5\x8e5p\xa6\xf1\xacE\xe4YJ\x97\xb9\xc7X?{\xea\xd5\xed2\x1f\x93*Rt\x80\xe05U4(\xed\xa0-GB\x95\x17GX\x02H\xe2\x06\xea\xe8_\xe7\xfaӕ\xb9};\x10[\x03\xe6\xfe\x06\u007f\x99\u007f\xb8\x9b\xfe\xd9eYGybU\x11\v\x1b\x8cԐ\x8d\xaf\x81۪\x06dQA\aRs\xf9R6h\xf5\x928\x96\xdd\t\x14\xf8\xf3\xdb/c6\x03x\xef\x02\xd0Wl\xbc\xa1נ\xb3\x95w\x05\xb5\x0f\x10\xcd\xd9\x10;~\xb0ѱ\xd6㊣\x04R\xa7\xf0&)\x1a\xf1\x91\xc0u\x8a\xb6\x04F?\xd2\f^I\t9\x10\xf1\x9f\x92\r\xffz5\xca\xf3\xffr\x92\xbe\x12\x92WY\xb0]\xcfr\x0eO_\xacN\x8f+/\xedJW\xf3\x0e\xf9\x1c\uf514\xd8Ժ\xaa\xfb!a_=Gs\xa4A\x95K.\xda\xed\xef\x1e\xb6b\xc86\x88<ۢ\x1bC\v\xb4J\xfeg\xcdQ\xd6_l\xb9V_\x90\xa4\xbf\xde\xde|\x9b`n\xf5\x8b3r\x14\x10\xe7\x98\xf0\xeeV\x89\xf9\x96\x9a\xc2Y8\xf5q@\xda\x03\xbb\x11$\xb9\xa3\xb9\x18\xc9E\\\x9d\x00(T*]4\xa0\xb9?\x03\xb2\xce\xe8<\x10\xfe\x01W\f\x18\b\x10\x1a\xf4\xe2\xa7G\xda\x16\xb9I{\xd4\xd2c\xa5\x8dvxeA\x80\xde\x1b=\xd2N\xbbV\xdc\xc1\xc5\x0ey\xcbX\x8b+\x1e\xd7w\xc4\xeay\xf7Yk\xe7\xf1b\f>wGg\\\xb2\x83\xd0\xd1\xed\x81\xeai\xfc\x9e\x00\xd7'\xec&S\xa0\xa0\xabCъ\xf1\xd1e@!\x90~\xb0\xe0\x9d\x1a\xbc\x0f\xe3l\xf0)\xeb\xf3\xec\xf4\x161\xb6|\xf1\xfc\x96\xa8{\xeb\xe5z\x10;\x1e\t+\xfc\x96\t\xaer\x82\x1d\x87\xd7T\xe7\\x}J\x9f.D\x82\xcabE\xddH\xbd~\xc94y>\xec6\x00.\\\x1bw\x03\xe2 ů\xb8\x8b\x9e˧ӑ\x11l\x18\xb2(\x80\x99;\xf8hL\xdaq\x98\xd6\xfbK\xd4$ς\xc4-\xffi\x86\x03\xf8\x1a\xf9\xbcq\xee\x85b,yv5\xe8L\xf6@\x9a\b\xdb\xe6\xf8\x84\x02\xeehs\xb2vk\xef\x83[\x05\xe2\xe3\xd0(\xfa\xf89Q\xb6\x80\xf7)\xce/ַ;\xe0\xbc\xca\x1d\x11\xd4\xce\xf4\xe9\xe9\"\x1a\xb0m\xb3\xa0 z/\xb6\x91xX\x84Og\xfe4E\xec\x8dv\xb0\xbb\xbfB\xc8|\xba\xa1\xa8B\x9bn\xd9$g\xa2\x03\xa5\xd9\x1b<\x9d\x8az\x15\x12\x92\x90\x94\x91\x94\xdeGk\x9f\xa6\x9eB\xfa\xf4\x92[\x8a$͍\xb3\xa3\x18\xb7\xcfOm\xe3\x1f\xfe\xffIġm\xa4ՠ\xa8w_ŀ\xef\x84\xff\u007f\x9b\xf7\x93\x8d\x95-z\xae]\xbc\xbd9\xeb\xed\xf9\x8e\xac\x8f\xf2=hI\xb5+\xdd\xfbuD\xbdˇ--?9\f.N=\x8e\x18\xe2e\xcdc> }\xa6o$\xbe\xa4J\x98\x93ǀ\xf140\xd3}\xf0\xf5\xf1\xaf,\xaf\x81u\xba\x16\x13\xec\x93\xc1P\x1euYډ@;\x17r\xac\x9er\x1c4\x82A\xe1\x1f\x8a\xfe-j\xfeH<\x1c-\xed\u007frz\xb3\u007fKqYt?1\xa5\x0f\x9dZ\xea\xe0\xf0\xeeV\xb5[\xd9\xc3\x10\xac\x04\xb2\x93\xba;\xfe\x91\xe9U\xbe*\xe9\u007f5J\xaf\x95\xb3\x19\xcd\xf2\f>\u007f\x99@w\xd7\xfa\xa9\x97C\x16\xff\x1d\x00\x00\xff\xff\x81\x16-\x05\x9e\x1b\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4Y_s۸\x11\u007fק\xd8\xf1=\xb87\x13R\x97\\\xa7\xd3\xd1\u06dd\xddt\xdc\xde9\x9eȗ\x97L\x1e b)\xa2&\x01\x16\xbb\x90\xacv\xfa\xdd;\v\x90\x92(Q\xb2\x9c\xe9\xa5zI\b,\x16\xbf\xfd\xed\x1f,\xe0I\x96e\x13՚O\xe8\xc98;\x03\xd5\x1a|f\xb4\xf2E\xf9ӟ)7n\xbaz\xbb@Vo'O\xc6\xea\x19\xdc\x04b\xd7|Dr\xc1\x17x\x8b\xa5\xb1\x86\x8d\xb3\x93\x06Yi\xc5j6\x01P\xd6:V2L\xf2\tP8\xcb\xde\xd55\xfal\x896\u007f\n\v\\\x04Sk\xf4q\x87~\xff\xd5\x0f\xf9\x8f\xf9\x0f\x13\x80\xc2c\\\xfeh\x1a$VM;\x03\x1b\xeaz\x02`U\x833h\x9d^\xb9:4\xe8\x91\xd8y\xa4|\x855z\x97\x1b7\xa1\x16\v\xd9u\xe9]hg\xb0\x9bH\x8b;Dɚ\a\xa7?E=\x1f\x93\x9e8U\x1b⿏N\xffb\x88\xa3H[\a\xaf\xea\x11\x1cq\x96\x8c]\x86Z\xf9\xe3\xf9\t@\xeb\x91Я\xf07\xfbd\xddھ7Xk\x9aA\xa9j\x92i*\\\x8b3\xb8\x17\xa4\xad*PO\x00V\xaa6:\U00091c3b\x16\xedO\x0fw\x9f~\x9c\x17\x156*\r\x8afעgӛ(\xbf=\xefn\xc7\x004R\xe1M\x1b5µ\xa8J2\xa0şH\xc0\x15B\xe7\x15\xd4@q\x1bp%pe\bE\xe5\b-8[o\xc6\xd1:\xa8\xd4\n\x81\\\x83\xb0ƺ\xceR\xaf\xa0a\xad6b\u007f\xef.\x890\x05\xad\xf2<\xec\x06F\xb5>~\xb8\xfd0K\xa8$\x84\x96\xb1\x8e\xc9)S\x1a9\xf3\xe5\xb0O'\x97\xc4d\xa4#\xa4\xe0`\aE\xa5\xecHY\x83\xd84Dv\xcb gI~\xfd\xdal=<\xb6\xfb\xdf\xc8\xf1}X\x18\xfeO\x87\xe0Ef\xc5\xd6\xf9E\xb3\xee\xf7\xe2\xf9\xacY\xd2\xc4{\x8b\x8c\xd12\xed\n\x12\xa3\nl\x99\xa6n\x85~ep=];\xffd\xec2\x93@\xccR$\xd04\xb6\xe1\xd3\xef\xe2?_eE\xec\x8c/3%\x8a~\v{d\x1f\x9a\xbeڜ\xbe\xaf\xbb\xf4T\xba\x9ew\x8d\xc7\xe1JI\x89ue\x8a\xaao\xd2w\xd5s4G\x1a\xa5S\xc9Uv\U000fb1ed\x10\x19\xbc\xe0\xd9d\xdd]0SV\xcb\xff\xc9\x10\xcb\xf8\xab\x99\v\xe6\x82$\xfd\xed\xee\xf6\xdb\x04s0\xaf\xce\xc8ц4\xc5D\xeb\xee\xb4\xd0W\x1a\xf4g\xbb\xa9\x8f\x03Ѿ\v\x1c\xe9\xe3\xb62\x177rdUK\x95\xe3\xbb۳\b\xe6[\xb1~\xf7\x1d\xe5]\xfb\xd6k\x92\x10=ӷ\x9dD\x92ԜE\x91\xfa\xee\xb1.\xb8Ð:\x868\"\x1d\xe8W!\x91됴9\xfbH\xb2\xf1\x0e~ \xd1:=\xf8\x1e\xfaw0\xb5#}0\x9c\x8cx\xf12Ê\x03]~\x9d\x89\xe2=g)?\xb9S\x12\xcf\uebfa\xd0\x14N\x9a\xb9\xe1\xe3\xcd9\xcf\xdd\x1c\xcb\xc7\x17\x02\xaf\x13.6\r\xc6\xdbBD\x00kE\xfd\x16\xc7~\x83=mia\xac\x84\xa2\ful\xb6\xa4\x0f,\x95\xa9Q\xc3\xf6\xe9\b\x1e\xe5>\x17\xaf\xcc\xd7ǵ\xb2W\x13\bu\xbc\xe7\x8d\x00>\\U:\xdf(\x9e\x81\\\x933Qp0oC]\xabE\x8d3`\x1f\x0e'O\xa6A\x83Djy>\x0f~M2\xe9\x86\xd5-\x00\xb5p\x81\xb7W\xac.!:\xf3\xaf\xa9\xf3\xf8\xe5\x17\xbcJ\xd1y\x10\x0f\"1\x16Wۤ<\x17X\x10o/\xa19\xdc\"\x83{\\\x1f\x8d\xdd\xd9\a\xef\x96\x1e\xe9\xd0\aY﨣\xf6;\x83\xf71\x02.6\xb8\xdb\xe0\xbc͝\x10T\xae\xee#ױ\xaa\xc1\x86f\x81^\f_l\x18\xa9g\xa0O\xf4\xe3\x1bj\xecyw\xbc\xed\xd6\xf7\xd5*)\xea:\xf8B\xd9\xf8$#\xd1\xc9\x0e\xb4\xa1\xb6V\xc7-|oC<\xf6$8%Cvq\xd1g\x97\xa4t\x9c{͝:¹uv\xb4#\xebS\xc1X\xfe\xd3\x1fO\x9e\x8f\xc62.\a\xa5\xb0\x9b\x15\n\u007f\x16\xfd\xffk\xdd'\x0f_b\xe5\xf9\xb2\xd25\x1f\x88\xbeT\xb5\xa2ⱚ\xb5_~\x8e\xcb\xcdp\x93oQiF\xa89\x18\xda=ؿ\xdd}E\x17e\xdd\x03}\x9c\x80d\x96\xdeۼ{\x8c\xeaFv\a\x96*\xa4\xd7B}\u007f\xf8B\u007fu5xp\x8f\x9f\x85\xb3ڤ\xbf.\xc0\xe7/\x13螨>\xf58d\xf0\xbf\x01\x00\x00\xff\xff\x98\xaaEc\xdc\x18\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4W\xcdn\xe36\x10\xbe\xfb)\x06\xdb\xc3^*y\x83\xbd\x14\xba\xb5i\x17\b\x9a\x04\vg\x9bK\xd1\x03E\x8d\xeci(\x92\xe5\f\x9d\xbaO_\x90\x92lٖ\xbd\xc1\x02\xab\x1b\x87Ùo\xbe\xf9!\xb5(\x8ab\xa1<=c`r\xb6\x02\xe5\t\xff\x15\xb4i\xc5\xe5\xcbO\\\x92[noj\x14u\xb3x!\xdbTp\x1bY\\\xb7Bv1h\xfc\x15[\xb2$\xe4\xec\xa2CQ\x8d\x12U-\x00\x94\xb5NT\x12sZ\x02hg%8c0\x14k\xb4\xe5K\xac\xb1\x8ed\x1a\f\xd9\xc3\xe8\u007f\xfb\xa1\xfcX~X\x00\xe8\x80\xf9\xf8\x17\xea\x90Eu\xbe\x02\x1b\x8dY\x00X\xd5a\x05\x01YH\a\xf4\x8eI\\ \xe4r\x8b\x06\x83+\xc9-أNn\xd7\xc1E_\xc1a\xa3?=@\xea\xc3YeC\xab\xd1\xd0.o\x19b\xf9}v\xfb\x9eX\xb2\x8a71(3\a$o3\xd9u4*\x9c)$\a> c\xd8\xe2\x1f\xf6źW\xfb\x89\xd04\\A\xab\f\xe3\x02\x80\xb5\xf3X\xc1c\x82\xea\x95\xc6f\x01\xb0U\x86\x9a\xccH\x0f\xdey\xb4?\u007f\xbe{\xfe\xf8\xa47ة^\x98,;\x8fAh\x8c1}\x93\xfc\xeee\x00\r\xb2\x0e\xe4\xb3Ex\x9fL\xf5:Ф\x8c\"\x83l\x10\x86\xbc`\x03\x9c݀kA6\xc4\x100\xc7`\xfb\x1cO\xccBRQ\x16\\\xfd7j)\xe1)\xc5\x19\x18x\xe3\xa2iR\x19l1\b\x04\xd4nm\u9ffde\x06q٥Q\x82\x03\xc5\xe3GV0Xe\x12\t\x11\u007f\x04e\x1b\xe8\xd4\x0e\x02&\x1f\x10\xed\xc4ZV\xe1\x12\x1e\\@ ۺ\n6\"\x9e\xab\xe5rM2V\xb4v]\x17-\xc9n\x99\xeb\x92\xea(.\xf0\xb2\xc1-\x9a%ӺPAoHPK\f\xb8T\x9e\x8a\f\xdc\xe6\x82.\xbb\xe6\x870\x94?\xbf\x9f \x95]J\x1bK \xbbދs\x95]\xe4=\x15\x19\x10\x83\x1a\x8e\xf5\xf8\x0f\xf4&Qbe\xf5\xdb\xd3\x17\x18\x9d\xe6\x14\x1cs\x9e\xd9>\x1c\xe3\x03\xf1\x89(\xb2-\x86>qmp]\xb6\x88\xb6\xf1\x8e\xac\xe4\x856\x84\xf6\x98t\x8euG\x922\xfdOD\x96\x94\x9f\x12ns_C\x8d\x10}\xa3\x04\x9b\x12\xee,ܪ\x0eͭb\xfc\xee\xb4'\x86\xb9H\x94~\x9d\xf8\xe98:V\xec\xd9ڋ\xc7i1\x9b\xa1\xd3\xfe\u007f\xf2\xa8S\xc2\x12k\xe9 \xb5\xa4s\x0f@\xeb\x02\xa83\xfdrbx\xae9\xd3W+\xfd\x12\xfd\x93\xb8\xa0\xd6x\xef\xf4\xa4\xcd/\xa0\xfae\xee\xc4\b+\x8d\xb8\xbeQq^\xf1\xc42\x80l\x94L:T\x14\xd9}\x9b\xcf\xc4q\x91\xf2L\xbbJ\xedj\x95\xd5\xf8)\u05ceջ\xab\xb1<\xcc\x1cH\xa1l\xdc+\xb8V\xd0NM\x8e(k<\v\"D\xfbf\x90\xfdL\xbekRi\xb5\x84\xe1*\xc0Չ\xf2\xc8s\x1b\x8d\x19,\x15\xdau^\t\xd5\x06\xc7Fn]8\x83H\xbd\x8d]\xdf\xd5\xdf\xc6\xef֙\xd8\xe1\xfen\xb8\x8a\xfc\xf9XwZ \xbd`\x00\x91B\x80p|\x05N\xbf\xa1&\x18\xbck\x06\x00C\xd1r\x8a\xf3\x8d\xd8Sr)\xe0\xd14,\xe6\x8b\xffHc\xae\xa2\x8e\x14N\xb3y\xb4y\xc2\xd7W\x87\x81(\x89\xfc\xf6q\x90\xd5Gbu\f\x01\xad\fF\xf2M\xf8M\x03\xc1(\x96I[\xa47\xd0\xd5<ߟ돐\x92)\x90$\x98vѫ\xe2\xb9~i]\xe8\x94T\x90F{\x91\x0e\x9d\xec\xa7\x17\x98\xaa\rV !\x9en^\x9e\bȬ\xd6\xd7#x\xe8u\xfa\xabp8\x00\xaavQ.\x10\x9b/\xc5+\xd4^E\xe47\x8a\xaf\xe3\xf9\x9c4\xe6Ҋou\x8e6v\xa7.\nx\xc4\xd73\xd9\nUs\xdas\x05<:\x99۸\x10\xd3L-\x9f\x88\x0eO\xec\x9b\xc3*\xd7]1<\xa9\xf3\x06@~\x996\x93\x14sߛ\x83\xe4\xd0 Jk\xf4\x82\xcd\xe3\xe9\x93\xfaݻ\xa3\x17r^jg\x1b\xea\xff\a\xe0Ͽ\x16\xbdUl\x9eG\x1cI\xf8\u007f\x00\x00\x00\xff\xfflC\xbf\xee\x8e\f\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec}\xfds\x1c7r\xe8\xef\xfe+P<\xd7#\x99\xe3.\xa5\xbb\xe4*Q\xa5\x9e\x8b'Q>\x96-jK\xa4\xe5w\xe5s\x1c\xecL\xef.\xc2\x19`\x0e\xc0,\xb9\x89\xf3\xbf\xbfB\x03\x98\x8f\xdd\xd9\x0f`HJ\xf2\rR\x953W3=@\xa3\xd1\xe8\xef\xa6\x05\xfb\bR1\xc1_\x11Z0x\xd0\xc0\xcd_j|\xf7\xafj\xcc\xc4\xf9\xf2\xe5\x144}\xf9\xd5\x1d\xe3\xe9+\xf2\xbaTZ\xe4\x1f@\x89R&\xf0\x06f\x8c3\xcd\x04\xff*\aMS\xaa髯\b\xa1\x9c\vM\xcd\xcf\xca\xfcIH\"\xb8\x96\"\xcb@\x8e\xe6\xc0\xc7w\xe5\x14\xa6%\xcbR\x90\xf8\x05\xff\xfd\xe5\x8b\xf1\x1f\xc7/\xbe\"$\x91\x80\xaf߲\x1c\x94\xa6y\xf1\x8a\xf02˾\"\x84\xd3\x1c^\x11\tJ\v\tj\xbc\x84\f\xa4\x183\xf1\x95* 1\x1f\x9bKQ\x16\xafH\xfd\x0f\xf6\x1d7\x11\xbb\x88\x0f\xf6u\xfc%cJ\u007f\xd7\xfc\xf5{\xa64\xfeK\x91\x95\x92f\xf5\xc7\xf0G\xc5\xf8\xbc̨\xac~\xfe\x8a\x90B\x82\x02\xb9\x84\x1f\xf8\x1d\x17\xf7\xfc-\x83,U\xafȌf\xca\xfc\xb3JD\x01\xafȵ\x99EA\x13H\xbf\"dI3\x96\xe2\x12\xed\xbcD\x01\xfcbr\xf5\xf1\x8f7\xc9\x02rj\u007f$$\x05\x95HV\xe0s~~\x84)B\xc9G\\\x9f\x99\x04n\x04\xd1\v\xaa\x89\x04\x9c\n\u05ca\xe8\x05\x10Z\x14\x19K\xf0+D\xcc\x1cHR\xbd\xa3\xc8L\x8a\xbc\x865\xa5\xc9]Y\x10-\b%\x9a\xca9h\xf2]9\x05\xc9A\x83\"IV*\rr\xec\xc0\x14R\x14 5\xf3\x885\xa3AJ\xd5okk86\x8b\xb4ϐ\xd4\x10\x0fة:\x12\x80\x94(D\x00\x113\xa2\x17L\xd5K\xc2e4\xc0\x12\xf3\b\xe5DL\xff\v\x12=&7f\a\xa4\"j!\xca,5\x14\xb7\x04iP\x92\x889g\xff]AVf\x81\xe6\x93\x19\xd5\xe0v\xda\x0f\xc65HN3\xb3=%\x9c\x11\xcaS\x92\xd3\x15\x91`\xbeAJހ\x86\x8f\xa81y\x87[\xc2g\xe2\x15Yh]\xa8W\xe7\xe7s\xa6\xfd\xe1ID\x9e\x97\x9c\xe9\xd59\x1e\x016-\xb5\x90\xea<\x85%d\xe7\x8a\xcdGT&\v\xa6!ѥ\x84sZ\xb0\x11N\x9c\xe3\xd9\x19\xe7\xe9\xef\xaa\xcd:n\xccT\xaf\fA)-\x19\x9fW?#ioŻ!qK9\xf65;\xff\x1a\xbd\xe6'\x83\x95\x0f\x977\xb7M\xaab\xaa\x8ds\xc4v\x83\xd0j\xc4\x1bD1>\x03i7\x0ei\xcb@\x04\x9e\x16\x82q\x8d\u007f$\x19\x03\xdeF\xba*\xa79\xd3f\xa7\xff^\x822\xa4+\xc6\xe45\xb2\x102\x05R\x16)Ր\x8e\xc9\x15'\xafi\x0e\xd9k\xaa\xe0\xc9\xd1n0\xacF\x06\xa5\xfb\x11\xdf\xe4|\xed\a-\xb6\xaa\x9f=\x8b\xea\xdc!w\xbao\nHZ'ü\xc4f\xfe\x18τl\x1d~\xf3ʸ\x01\xb2\xebX\x9aa϶aA\xed\xdf\xd7&\xf1\xe7\xea1C+\xe6\xf3%g\u007f/\x01Y\xa8=\x93\xb0\xc9.d\x83\x9d6\x87!\x81\xf1گ\x9d\x184\x03\x1e\x92\xacL!\xadؤ\xda9\xd3ˍ\xc7\U0005284c\x1b\x1a7L\xddL\x97\xd7\xff\x8a\f\x92v\xcc\xd2\xd0\x19\xe3\x16\x1aa\x1c\x97\u0601Y3\x98\x86|cZ;\xd6D\xf0֢\xd3\f^\x11-\xcb\xf5o\xdb\xf7\xa8\x94tՉ\n\u007f\xcb\x1e\x86\x89\xeaiw\xcc3\x96\xe0\x96U\x87\x19\x91\xf1%\xe1a!\xc4\xdd\xee\xb5\xff\xc5c\xe9\xfb\x8a\x9f\x91k\xa1\xaf\xf86a\xb5=.\x1f\x982\xd3\xe2)y#@]\v\x8d\xbf<:\x12픃Qh_\xc3#\xc4-\x1b6\xebo\xdan\xf6\x12\xb1\x1dWVi\xaf\xb6\x84)rō\x12aqe\xado\xf6c\xbb\xb8}{\xe4\xa5B\xe3\f\x17|\x84\x97ݸ\xeb;\x0e\xc5\a\x12rs\x176\xa7U}\xd2~\xee \x88\xb7\xe6^\xb0o[KbF\x13H\xbd\xae\x87\x960\xaaa\xce\x12\x92\x83\x9co\xbf\b\x9a\xa30<\xfb\x90\xcf\x1f\xc4K\xed\b\xa2\xa7C\xaef?\x1c3N\xf7Mcd\xce\xe6\xdeg\xfc\xd6\xeey\xb0\xd3\xf4\xb5\xfd\xc1}\xeb\xc0K\x12\xe5\x86=ؤi\x8a\x9e\b\x9aM\x0e\xe6\xde\ac~\xf3\u07b6S\xb2w\\N\vs:\xff\xc7\\UH\xb4\xffK\n\xca\xe4\xde\x13z\x81\xee\x84\fZo:\xd3K\xf3#\x06>S\xc4\xec\xe6\x92f\xeb\x06Ԏe\t\xc35 \xb3װ\x98mH\x1ag\xe4~!\x94\xbd\x15g\f\xb2\x94\xb0]\x92\x96\x19Gw\xb0::\xdb8\xe3GW\xfc\xc8^\xcf\x1b'\xd6\xdf\xe5{\x00\v\x9e\xad\xc8\x11\xbey\x14/\xba\x1cDu\a<\xc4;L\xa4\xf5h\x91A\xd3LZ\xdbG\x9d(\xba}\xb6\a\xd0\\!\x94\xfeK\x97\xf1k\xcbL&\xfe\xf9\xb6\x04\xd9aMڣ\xd98\xcbP\xc5\"\x8d\xd45\xd3 \x9dA̲M/\x9b\xf7\xd0T\xf6\x19\xbd*\x83\x17\xf5\xa68D\xeaN\n\xb0\xa6\xf1\xfd\x93;\\\xba3\xd8\b\x92\x86/\x1f\x1a\xb6:s\x02\xcd\xdf\xcd\x05<\xa6ܙ\x88<\xa7|/oߘ\xe4k\xfb\x9e\xa7\\\a\xc6\ued5c\x97x\xea\x0e\x15\xcc<\xbd\xa0\xb3\xe7\x9e\xe9\x05\xe3\x84\xfa\x83\x0f\xd2\x11\x0f%\x85\xd84\xb9v\x8d\x05Ud\n\xc0=\xd2\xf6\x1cz;\x9e\xee\xa6\xcd\x19\xbfB\xe0\xe4\xe5\xa3\xdeˤFQ\xc4\xf6y\xe4V\x1bX\xfd`o\x8eC\x91}\xbf\x00\t-\x1a\xd84\x11\xa3\\Džn\xe8\xe9\x87!\xda\xce\xe3X\x91\x19\x93J7'\xa9H\xa9\x0e\xdbؠ\xdd23\xbee9\x88R\a\xe3\xf4\xb2~\xb7\xe5{\xcb\xe9\x03\xcb˜\xd0\\\x94{/];\xcc\x1d\xc0\xf2\xcaI\xe60zO\x99F\x06e\xa0\xa2\xa5B\v\x83\xf5\"\x03}\x98\xdc9\x85\x99a\"\x89\xe0\x8a\xa5 \xbd\xbb\xd6\xee\x13\x13\xe6\xd8\xcd(\xcb\xcaM\xa7E\xd7\bS\x03\xf9\xa5\x94\x11Z\xe0{\xfb^\xc3ƶ\x10\xf7m\xc4\x1c\xb8\xf4\x05]\x02a3\xc24\x01\x9e\x98\xbd\x00i\x19,~\xc0!\x01Q\xb2W\x8e\xb1\xe3\x10fl\x06\xf02?d\xe1#<\x97\x8c\xef0'5\x1f~K\xd9.c\xa0\x1fA\xdbdh,\xf6\x00\xfcX\xbf\xfb\f\a\xa0f\x06;\x85\x91zL\x81|\x00\x9a\xae\xfc)\xa0Z\x1b5\x10w\\\x10Y\xf2&\x17{d\xfa?\\\x87r\xdf\u007f,\xf5\x88q\xb6w#\u05ec\xdbL7\xa5\x0f\x03\xe0ɤ\x0f\x03\xbc\xba\x8a\xc2\xcd\x1bW\xad\xd7ͥ\xe0\x85V\x9cuE!\aK\"S0\n \xa4\xd6\\T\x88Jͷ\xa1%\x9d\xee\xdc\xceu\x1d.L\xac\x19B\x9d*\xd7\f\xbaj\x10\xfa!\xf6J;V\xa2$\xf7\x94kOڕXU\x88\x83h;l\x1f\xed\xa0r~\xf0\xb3\x1b\x11]^h\xf4\x81U\xc0\xb5\\a\xc8\xcfaӵ\xc3(~\xa9H\ue308\x90\xd39\x1c\x1f+\xf2\xfa\xdd\x1b//\x18\xf6\u007f0w\xb7\x83Y\x1fc!Œ\xa5F\x94\xf9H%\xa3\xd3\xcc(\x983\x90\xc0\x13P\xe4듏\x17\x1f~\xb9\xbexwy\x1a\x00\xda(\xa5\xf0PPn(\xaeT\xfe6\xae\xf6\xdbL\x1e\xf8\x92I\xc1\rjB\xf0p5#\x94,\xfdL\x93*\x0e\xca(6\xd9\x12\xd23\xe7\x1fq+\b\xc1\x87e\x93\x8c\x17\xa5\xf6\x96\xc4{\x96e\x18eœ\x05\xe5s\x83\xa57\xa2\x9cf!p\xbf\xfe\x1a\xf1!!-\x13\u007f\x00\xdda\xf8\xfa̹hh\x96\x89\xfb\x90\xcd3w\x05\xa8\x84\x16\x1e\xb7\x8d\x8d\"j\xc55}xE\xd8\xf8\xa03\xed\xc7\xd1\xd7\r Gv\xed\x85\x14f\xda\xd6\xeenq\x921\r\x92\x1er?׀\x1bp\xc7\xe4\xd2\xcc\x1b\xd2&\x99\xe1\xb78,\xe10[\xa8\x1dӚ\xc8Έ\x849\x95i\x06J\x19.y\xbf\x00\xbd\x00\xe9\x8c.\x96X\x02 \x83\xb7̚\x13\xd2\x19mW\xc7\xd7\x05\x80\xf5\x91xwU\xd8蘉\xf3T$\xea\\Su\xa7\xce\x197\xd7\xde(\xa5\x9a\x8e\x1a\x8c\xf2\xdc\xdeZ#w\x83\x8e\xbc\x1e:\xaa\x0e\xd4\xf9\xefd\xc99\xe3\xf3\x11\xad\x9eb|DGj\x01Yv|\xf0\x1c\x03ػ\x1d\x81\x1ac\xf3\xa5\xc3\xcd\xe9Aʼ\x1dm\x1e|Y\xb1\\\xfb\xd51\xb9\x16z{\xb4\xd3\xf6Q]6\x88\xd7q'W\xbe\xbc\xbe\xfd\xf0\xd7\xc9\xfb\xab\xeb\xdb0f\xdcd\xe3ۙs\x00\xccn6\xde\xc1\x9cC\xf6{\x17\x1bo3\xe7\x00\xa8{ٸc\xceA\xdc\xfc\x106N\xbe\xfe:\xf0Z\x1b\xd8\xf8\xc0\xc6\a6\xdex)\x84\x8d\x03_F\xb2\xf0\xef\x9d\xfa\xd3`7\x15E\x84\x1c8-\xd0W\xcex\x9b\x93u\x11\xc7\xd3a\xbbm\\\xe3ˏ\xb4\x1d\n\xc0\x9b\xcb\f\x80Kj\xc1\xd8G\xfc\xe2eUi\x92!l$\\K\xb2c\xb7\x87\xa8{l\xfa\x8d\\,},\x1eH\x03\x17c\xf2\xce\xf9\xc6)y\xfd\xcb՛\xcb\xeb۫\xb7W\x97\x1fB\x90Ab\xcf\b\xf1!\x0e\xbdPr\xfcx\xaa\x99\x1d[\x14\xb4B\u0092\x89Re\x87\x1e\xe8\xe6|m`t\xe7\x01\r\xbf\xbe\xedhxJ\xd0\x05\xb3\"\n\xe4\x92%\x8fC\x18j\xbcM\x9b\f\x06\xb9[l\xb1\xc2H0\xd0\xc7\x15^\xecx|\x11ƎC\x04\x99`\xa0F\xf0\xd9'\xce\xc4bՉ?[\x84\x9a\b\x02\xe8\x10\x82Z\xa2M\x04\xc8G\x14\x85\xecX\x13\x88\xde\xc0\x8c\x96\x99\xb5L\x1d\x1d\x8d\x0f\x97/\xec\xe8\xc7\x10\xdfJq\x90\xeb\xa09ZL\xf1Ʀ\xedx\xab\xf9cp\x84c\x17X\xd9\x12\a\xacZ\x16\x013+\xc1\xebq\x01QY\xf5\x88\xbd\x81\x89\xe5\x9c36\u007fG\x8b\xef`\xf5\x01f\xe1\x00֑\x8d1\x97.L\x11SK# \x12#\x89\xd8i\x85\xe2\x82\xf4\xc4\a9<\x12\xb5k\xb4pq\xeb\xe2eQ\x964h\x89Y\f\xe9s\x80\xfc\x88\x91\xb5\xfch\v\x18M\xa1\xcb\xf1\xb2\xe8e\x91\xae\xec\xd3\x0ee)\x11<\x81B\xabs\xb14\xb7:ܟ\xdf\vyg\xb4\x9f{\xa6\x17#\xeb\x03R瘀q\xfe;\xfc\x9f\xe8\x19ݾ\u007f\xf3\xfe\x15\xb9HS\"\x90\x8d\x96\nfef\x83\xbb\x0e\x8c\x14\xed\x1auJ\xf7\x19&\x18\x9f\x91\x92\xa5߄2R?zӃ(l\x84ߣ\xd0\xc4\r\xfa\xa5W\xfe\xe6\x89Ƒ!\xa9\xeaܛ\xbb\x87i\x85\xe7'/U8\xab\xf6c\n^\xe4\xec\x85\xec\xa9\x10\x19P\x1e\x01\xe3P\xc7g\xd78$\xa0\xb4k\x1c\xec\x1c\xed\x1aH\xeb\x8fq\x17\x1cח\x81\r\x8e\x14\xe1\xb7#\xa9\x83`^\x11U\x16\x85\x90ZU\xa9\xe2cs\xd8\xc3%&\xd2\xc86\x1fWy[g\xe4?\xab\x1f1\x9b@\xfdt|\xfc\xef\xdf]\xfe\xf5\xff\x1e\x1f\xff\xfc\x9fq_\xa9!6jy\xf4\a\xab\nH\xc6\\\xa4`\xd8\xf1\x99\xfd\xd3i<\x17\t\x06v\\G#Fi\xaaK5^\b\xa5\xaf&g\xfe\xcfB\xa4\xeb\u007f\xa9`A\x90<\xc2\xe5\xdc]\x1c#d\xb4h\xd4\x17ѰWZ4\x97q\xd56\f\xa5bْ\t\xd5\v#\xd3\xddK\xa65İ\r;\x8c^\b27\x92\xfd\x99\xe1c\xb5\x18\xbe|y\xf4\xc9ĉ\x99_\xe2\xa3l\x01\xe2ʉ\x14\b9\xfe\x06\xf1\x82\x96ק\xabh\xbbh\x90\x17\x93+_T\xe5\x13\xa1\xbb\xdf\xfdQm\xd5s\xdf\">\x80\xf8\xed\x13\xdc&\x1ev\x9c\xec3k\x9bt_\xd9\xc8\xf9C2%\xb7\x8f\x8ca\xed\x15\xcaӺ\xfeʉ\xfdq\x9c\x14e\x1c'v\xef\xe7\x90\v\xb9:\xf3\u007fB\xb1\x80\x1c$\xcdFJ\vI\xe7\x91l\xdeO\x13\xa7W\xffe?\x16Ǚ\x1b\x8bߜe\xb8\xed\x9183TRJ\xa3ed+\u007f\xffC\xfaIn\x9e\x8ab\xbaʿ\x1c:\xda$]\a!\xf7\xd1\xd0j\x1e\x81F\x8e\xa5\xc8\xca\x1c\xd4Y%\xe5G\x83Ec\x1d_\x92%\x95\xea\x93\xe9*)[2uX\xd8lנ|\xf5>\x8a\xf9\x10\xe4\x9fv\xfa\x8ck\x98G\xab6\xa3\xfeH\xe8T\xb9|\xba\xbd(u\x8c\xd9؏\x99\x909Օ'\xe5\xa1\x10\n\xbd\xb5\xbe$I4\xe0\x96\xbc\xf2\xf2(\x12NA\xb5\x06\xc9_\x91\xff8\xf9\xdb\xef\u007f\x1d\x9d~sr\xf2Ӌѿ\xfd\xfc\xfb\x93\xbf\x8d\xf1?\xfe\xe9\xf4\x9b\xd3_\xfd\x1f\xbf?==9\xf9\xe9\xbbw\xdf\xdeN.\u007ff\xa7\xbf\xfe\xc4\xcb\xfc\xce\xfe\xf5\xeb\xc9Op\xf9\xf3\x81@NO\xbf\t7\x9a\xdb\xf10\xaam\x18#\xc6\xf5Hȑ\xdd\xfa=\x89\xf2\xbb\x86ߎ\xc7\xe1;\x1f\xbcL\xd1\xef*%M\x99\xeb\x131\x88~\xe2Q\x8f\xe5\xf7\x92\x8e\x14$\x12\xf4\xe7es\xb5sjd\xbf\x1c\xab\xba\xa8\xc9o\xc0\f\xdbWų\xe8\xa9u\f,\xcbF\xd0i\xdc\xc7:Em\x11K\x0f\xff\x0e\x82\xed\xff~\ff\xe2\xc1L\xdc\x1c\xbf]3\xf1\x8d=+\x83\x8d\xf8\xd3؈#_\x8dY\xe5\b\x99RH\xe0V\xccܢ\"\xd4\xc2\x1cӝQju\x99,R\x88\xa2̨\x8e\xf5O\xaf\x87\xd04C\xd6\xdc\x05\xa8\"\x88\xbc\x8ec\xb6N\xf4\xbcw\x84\xd4E\x96\x11\xc6핇\x93\xf2a+\x12\xacnO\xa8\"A\x87\b\x96\xc0\xb5a+|=\x8fW\x11\xa5\xa9Ԍ\xcf\xc7\xe4\xc7E\x90\x19\xd6\xcaR.\x0e\x82q\x92\x97\x99fE\x06\xa4*\xd4X\xd5i\b\x81\xaa\x94H\x185\xab4\x98u\x85\x8b\x94\xf6\xe8E\\hz\x17\x02\xb3\x90\x90@\n<\x01\xac\xe7S6\x8aONW\x84rrɗ\xf8\xb5\xa0է\xa5\rG\xb5\xa2S5\xaf\xd6\xd7l\xecC\x00\xd8O\x124i\x8e\xa9\v\x01i\xd7\xf5\x0ebzn\x83\x8cp\xed\x8b(U\xbe\xca\x101\"V(\xae\xe24\"\x14\x86\ri\xb8\xf6\xb2V\xd2l\xb8\x97P\x8a\xfc\x19\xe3TbEӧ\x12K?/\x91\xf4\t\xc4\xd1\xc7\x13E{\x89\xa1}D\xd0]\xe2g\xb4*X\x9f\x1d\u007f\x17Ƌ\x8e}\xc4\xc6h\xf1\xad\x900c\xc1A\x96\xed$]^\xed\va)p\xcdf,B\xa27R\x8f\x84\x028\x86\x98\x02M\x16\xb6\xa0\x1fo\x87\x82\x84\xd3\xef'\x8e㶚\xfcc0\xea\x9b.\x9b\xc3\xc0u\a\xae\xbb\u007f\xfc\xb6\xb8\xae;\b_$\xcb}&\x8d\x14\xf3Jc\x13_\xdf4rS\xf1\xd4?~\xca[u*\xeb\xa2\x14\xe7\xf8\xbd\x90Ç\xa5(}\xa5\xbd\xfa\x12\xb2e\xa1\xc5=Y\xb0\xb9!\xb3\f\x96\x10\xe2\xf6\xb4\xd25\xc9)\xa7s[\xecO\v\xef\xbe\"B\x12\xc3H$K\x83RUk5\x14\x17i\xae5Æ2A\xd3F\x1f\xa7\x90\xc5g\xec\x0e\xc8\x1b(2\xb1r5\xfdxJn4Ն\xed܀\x0e\tȊ`\x0f\xb8\x8eI\x99e\x13\x91\xb1$\xc06\xdf&\xb5+\xa4\xb1\xa2\xcc2R \xa01y\xcf\xf1~\xb8\xc8\xee\xe9*\xc8\xdfx\rK\x90g\xe4jv-\xf4Īv\xedl\x05\v2\x00\"\x9b\x91W\xb6\xa3\x11\xd1t\x8e&\x84\xba\xb2\xb6\x90\xadO\x05\x80\xc5\v\xe2\x9e)x\x96\xec\xd2\xedG\xedw\xf8Ms\x15ڿ\x9f\x94`26\x83d\x95d\xb1\\\xe9\"\xc1pɺ\xa0s\xe3|\xaa\x95\xd2\x10\"\n\xb9\x02Jh\xc4`X\x18\xaf\x10\\\x81- \xe6\x8fj5\xe3P\xf3\x93\xea\x95\x18\x1a'\xa2\x15B\xe9\x1bM\xe5Ae\xaa\xea\xd1>\x8d\x13\x0fĐzB\xb3\fR\xc2\xf2\x1cRF5\x04\xa7\xf7\xf9:\x85-\x1b\x1c6\xa1s%\xf0\xc2\xef\xff\x05\xe5i\x06\x12\xab\xb29\xab[\v\xba\x06\x993N\xc3\xca3\x90*\\\t\r\x84\x90\x12\x9a$B\xa6\xae\x12\x96\xafuDe\xa8]\xa4\xe2h(\xed4\xe8u=\xea,\x10\xee4\x13ɝ\"%\xd7,\xab\x8b\xdf\xf9\xcaw\xae}Z \xcc\xc3\xe5\xe8\x06\x1b\xa9\xfesT\x9d\x95\x11\xf6\x17:\xff]\xfdO\xf8C\x98\xd0\x1a\xaf\xa5\x1cR]ts\xacU\xd8\x03$\a\f\x04\x14\x1c\xe2]\xc53a\xc4\x10CFu\r\xc8\xea\x02\x19c\x81\xc4\b\xa8\xed\xee\x1a\x14\xd9\"V\x89\xa2wA\x15\x1f\xec\xe8\xe7\x97\x0f\xae\xb0\xd2\x1c\a\x14P\x8d\xf4\xc0e\x8cC\xb3\x92*\xc3\xfa\x8e\xed3\x17\x1b\xc9d\x808\r\x92\xa4LbO\x81\x95\xcf'\x8c\x84\xe9K\x85bEu!499>?>\x8d\xcd\u007f\xf60}\xbd\x15##g`\xefH\xf4\xff\xf4\x9c\xa5\x11\x83X^d+\xc4\xefqzFX\xac\xb7\xd5%:ʒ\xfb=rErΈ:\xac\x8a\xe1\xe6В\xfa\x9a\xe5\x16\x96\x01\xadei\xe5\x87H\xa0'ǿ\x1e\x9f\x11\xd0\xc9)\xb9\x17\xfcX#\t\x8cɭ0z~$\xccj\xa9+Q\x12\x0e6\xb7\x1a\x1e\x8a\x8c%LG$\xd3\xdba\xaem\"Jm\v\xc7a\x8b2,:t\xf9\x10\xbdK6\xcf\xc3\xf0\xc1\x17x>\xed\x15N\xa8\"\x19[\xc2\xf9\x02h\xa6\x17\xb1\xf35\x14\xc5\x05\x1f\xfd7H\x81\x05\x8d\xb8\x83\x17g3\t\xf6\x105G\xef\x18\x89pE}\xfd\xdd(\x17\xbc\xb9\xb6\xbf\x85@яl\xf4\xfd\xbb\xbd\x9d|\v\xba}\xc1D\xa0\xc1\xcc\xc6\xc7~\xa3Y\x17\xe4Lȍ\xa6\x95\xfbG\xbf\xbbi!T\x04F\xc8f7D\xa5m%z\xab\x1c\xf0\x18\xff\x98\x1dZ\xb4\xd3v\\d\x1d\xb9\x9a\xc4\x06\t\xfdU\x94\x06KS:\xcdVU}K\x05\x9a\x1c\x99i\xc7\x06\xd92\x8e{\xf8\x17\xa0)\xd6\x11\xe5J\x03\r\xd0`\x9a\xa3\xe7\x91j\xcc\xe31\x84\f\xdb\xc9r\xe1\x16v`\xa1\xdc\xcd\xd1(\x06\xe4\xe8|\x8c\xa7'\xb6\x0e\x86\x1d\x12\n\xcbX\xdd\xfc>\x01\x03\xdc\xe0\a\x16\xf7\xee\xf7i\x8f\x189\xeaۈ\xdaŹ겥ꑍŸE\xba9\x00\xd13\xeb\x1b\x97JzFJ\x92.O\x8f\xc5Q\x0f\x88.+/4\\j}\x91\x91\xfb\x18\xef\xee\xef\xe5\xea\x8fw\xf3ǹ\xf8w\xbb\xf7#\x8d\xf0\xbd\\\xfb=\x88%\xce\xf8\x1eix\xefkt\xefip\xdf\xed\u008fܸ'0\xb4\xef0\xb2\xa3\xb9<\x02d\xb7\x81\xbd\xaf\xa9\xfc\x91\xcd䱎\xf7\xddN\xf7\x86\xfb\xa95\xf1\x91\u0096v\x87,\x91B\xc4\xe8\xd8Q\xe1J\x83\xa6t\xd0\xd8\x1d\x964hJ\x9fVS\xfa\xdcu\x81F\r\x89o%M`\xf2H¡gF$-%u1\xb0^\x90\x8b\xd0\f\n\x91\xa2\x13\xda\xf2!_4\xc4V\xbd\x98\x95Yp\x86tY\bޮ\x9bc\xeb\xbc4\xcbh\x84^s։ձ^'脟\xc4B\n+\xb0\x11YrnnPwj\f:\x8cF\x13\xd8닠e\xbdY6D\xb1\xb9\xd9$# aE\x11\x96\x03\xf6+\x8f٢j\xb2ff3!\x136\xcdVdA3\xdfT\xe8-\x94\xee\x15\xf8\x1a7\xf7L\xc1Ys\xbe\xbe\x95`\xcc\xf9\xb4\x10\n)\x96,\xb5\xed\xdd=\x99\x1a\xf91\x94\ac\xb3\xf8\x8a\xa3s\xc1G\x1c\xe6\x14u\x18w\xc9\xc6T\xa4\xb2s\xb4Q\x1d<\xc5\x16\xf2\x8a(,\"\x16]:l\xc9(\xae\xb4A\xa9\xe4\x84\v\"P8-9ӡ\x10\xb5 jQj\x92\x8a{~:\xb6m%\x99\"\x94LA\xd3('\x87m'\x86א\"\xc0\xe943\x9c\x04c9o;I,T=\x04\xaaK\tdN5t\x863X\x1a\xd8I\xce\xe1\xbc\xd6\xfa\x02g\xa4\xe4\n\x02s)\x1a:ٟ\xfe\xf9yt2\x96\x83(\xf5gcl\xbb_\xb0d\xd1\xd4\xe9Y\x0e\x8a\x882>Q\xc9h\xebnJ\xdd4\xf0\xa4m\xe0~C\xf6\xb9\b9.̹\xdc\xe1YY\xabpV\x87\xdb\x06\xac\x97\x1a\x1e\xf5\xe6\xfa\xe6\x97\xef/\xfe|\xf9\xfd\x98\\\xd2d\xd1,\xa8\xc8\t\rT\x1e\x91\xff/\xe8\x12\b%%g\u007f/m\xff_rR}\xe5\xd4\xc7j\a@\x8d\xe9\x82\x19\xa1\x9f\x19\xf6\x1fp\xd0[\x9b\xf2=SXv\x0ea\xb8B@BAh\x8b\xf5\xb6\xc6F.\r\x10k\x85A\xedn\x01\x86g\xb3e\xd0}o`\xda([BӪ\xb4\x929\xa8\xe6\x94\x18\x89\x92NE\x19\xa4\x80,\x80p\xd0\xe6\x04W\xde\x1f\xc1U\xab\x1ag\xa9 \xa8\xf9\xee\xb4Ħ\xa1\x85d9\x95,[5'hD\xc9k\xe1\xedZ\xab0\x8d\xbb\x89\xba7\xef/o\xc8\xf5\xfb[RH,hhcZ\xf1\xdf\x037j\nf[\xec&\xa7cr\xc1W\x16\x8c\xe5\xd2L\x91\x8c)\r\xc0\xa6\x99\xa5\xce@\x1d\xc7\xed{\xaf\x0e\xb5\xc1\x81Kk\x01\xf5nE\x13\x83p\t\x85ퟬ\b\rb\xf5\x9e\x80qېՙ\x93\x96EZLb͈Is1\xa1v\xacN3Ҭ2\x04Y\xea\f\xb6\xa5\b^\xab?\xe4j\xe2\x89\xcfɵ\x86\xc3\a\x834Tg$\v\x96\xda\xc9٠\x803\xf2\x82\xfc;y \xff\x8eF\xa1?\x85\xea\a\xf1\xb7|\xbcPh\xad\xbeW\x93^;\xf5\xa3a:\x06\x8e\xc1\xae\x16dʬ*\x1f\x8cVx\xd0 \r3w;\x1e\x8a\xc1h\x1b\xa6\x99\xfcgG\xb06\x86\xe0j\xd6챮?/\x92%fz\u007f\x11J_;\xe6\xd3\xee\bof\x1b\f\x11E\xae\x9c\xead\xd1\xe6\x8cF|W\xbaf0\xe1\x90S\x81\xd906\x91d\xc1\x82\x9d\xb9\x9f\xe6\x80Ƅm\xb6\xe8\xf21)hͰ\x8dz\xbd\x93\x8bm9\xe4p\x0f\x8be\xcdNX7\x8bM\x1bWX\x8c\xabg\x8b\xcc\xeel\xf41e5\xea\x04i\xc3\xe9\x12\xcam\xa6\xe7\f\xa4\xb4U2\xa7\xe19>\n\xe4\x92%\x10L\x84\xd1<\xae\x90B\x8bDd\xbdhi†\x99\xd2:Q\xdfE\xd2\xd2\x0fo&g\xe4\xf6\xf5\xe4\x8c\bIn^\xdfN\xfa\xe4\xb0\x10rt\xfbzr\xf4LȌq\xa8\x8cڢQЛ~\xebBT\x9a\xf8\xb4\xec\xb0\xc8ؖ\xa7\xca(\t\xa3\x9c\x16\xa3;X\x05\b\x8e\xb1\xb8\x89\xc0\xcc\xe6t\xed\xa2szhڏ\x04\x9a\xb2\xcf$\x13\xdd1\x91zN\xdd)\xe9\xb9X\x06\xd9QP\x8d\U000b0067\x85`F\x1fq\x8d\x13\x9ay\xea\x01@\xb7d\xb4\u007fz\vې\xa7\xde9\x86x@\x95\xd8\x1a\x96\x05\x82\x97I#5\xfa9\x1b~%\x82\xcf\xd8\xdc\t_\xe79\xe5t\x0e\xa3\n3\xa3:\xc5\xea\xfc\xa9\xa3\xa83\x96\xb3\x90\x1cu3\xea\xa4\xefI\xb4\r!J}\xed\xa7\xbc\xf6R]\v\xaa5H\xfe\x8a\xfc\xc7\xc9\xdf~\xff\xeb\xe8\xf4\x9b\x93\x93\x9f^\x8c\xfe\xed\xe7ߟ\xfcm\x8c\xff\xf1O\xa7ߜ\xfe\xea\xff\xf8\xfd\xe9\xe9\xc9\xc9O߽\xfb\xf6vr\xf93;\xfd\xf5'^\xe6w\xf6\xaf_O~\x82˟\x0f\x04rz\xfa\xcdׁ\x13}T\x85\xb0}\xf2\xbeGZ\xa9\x83e\x90'\xe7\xf4\xc1\xb0\xcf\xd0\xed\xcfEɵͺ\xb0ǹ\xa2~\x1bX\x14\x92\xfdmG\xa0\x97\xe4)\x8e \x89Wm]l\xd5p\x12\xf7\x8e\xe1$\x92\xe3\x0f\x8eZ\xd6Ϣ\x15e\x1e\xf1,\xfa\xab5\xf40^\xcdH5G\xa6\x88ș6\n\xac\xd1Yi|\xd2\x06\xd3-\x13\xaf\xe3G\x98\x15E\xb1\xd8G\x1d\xc0\x1f\x1a!P\xe7\xe7\n\xafo\xa2I\x91\u05f6z\xe4\x14\xa3\x14f\x8c\a\x87;\xa2p\x19\xec\xc9\xfd\xacxT\xc4K\n\x92R2\xbdz-\xb8\x86\x87\x00#w\x9b\xdao\xda`\x88\xdd\x02\x15h\xa3\xf2\x93!\xa2\xb0I(k\xe5\x8e|\xfeV\b\xd3.9ڊl\x91\x00\xd0\xd6|\x82j/\xe6z\xacM<\x00\xb27oX\xfb\xcf\xdfK\xb6\xa4\x19p݀=Au\xb4\t>\xe4\x8c\x1eF\x88\x9a\xaa\xbb\x9a\nadT\x95\nc\xe7\x1e\xa1\xf8\x13<\xe8'\x97UQ0\x98H\xb6d\x19\xcc\xe1R%4Ó\xd1GE\xbd\xd8\x023\xf0|\x1b\x14H\x91)r\xbf\x00\xc3?\b\xf5\x866\xccV\x9f\xd3\xe0@\xe0\xdc\xecP\xe1'\xa6\xac5а\xbb\x82JC\tގ\x17l[b\x8aL\x85\xc8\\\xc6[\xb6\xaa\xe7\xee\xd2K\xb9\xf8\x85\xc3\xfd/\xe6\xdb\xc1\xce\xf7\x8cΫ\xb4W\x05z\xc3\x17\x13;\xedm\xdbd\x93\xa9J 4\xbb\xa7\xab\xd0\xe9\xde/`}~L\xbd\"/O\xf1dSE\xaa/\x86\xf2\xfb?\x9cbT\xd0\xeb\x8b\xc9/7\u007f\xbd\xf9\xe5\xe2ͻ\xab\xeb\x18\x1emv\n\x82\x1a\xab'\xb4\xa0S\x96\xb1pQp#V\xb9\t\n/\xc34=O\xa5\bM{A,{\x9f@}g\xf5\xc9Dj\x16\xb5B2\x9b\xb5';\x97\x94\x87\xe7$8CpM\f\xb2\xe4\x9a\xe5ϖvKӾ)\xb7\x17i\ni\v\x15\xc1\xf0\x1e'\xb7ⵟª\xae\xa7\x15\x01\x93\x90\xc9\xfb\x9b\xab\xff\xb7F\x89\xab\">\x14\xfc\x99\xb3\x14\t1\a\xa6\xe7\xae~\xb0\xf5\x03\x86}\xed\x1c_R\xf6iu\x9f\xf7\x89\x96\xfbP\xf2vM\xcd\"\xf6\x96\xcaE\nc2\xa9|\xa1-X\U000457a8\x04b\x00r\xcdh\x96\xad\x9a\xf2\xab\x1663>X\xc0ꎕ\x9e\xd1L\x05\xb2\xe7\xd8{\xd5\b.\uf322\xdcc\xe7*\x18$\x05.\xb4\xd3\xda#\xe8^\xcc\x10\x16\xb1\x9a{#$\xbdu\u007fE\b\x87\xf5\xb5ʔ\xc7\xf4\xa4\x9a5zb\u009d\xb8몖\xbbV+]>T\xc8\x14\x12\xeb\xad`厂ꅍ\x99̩\xba\x83\xd4\xfe\x10%\x15WnG3\xdbjѷ\xab\x02\xbc\xd70F\x1a\xb6\x11\xa8\xe8\xc9\f5\xa3D\x17G\xa2\xe9{\x9e\xad>\b\xa1\xdfV\x85&z\x90\xed\x8fN\xa7i{L\x8c\x80\x1b\x1c$a\xe66\u008dC6Ш\x83\xe1\xa9-ܹ\xfa\x8cL@\x96\xfcB}+E\x19x\xa5o\x88\xd6\xdf^\xbdA^X\xba\b\x0f\xae\xe5\n\x8b\xfc\x843\x82n\xfd\x8a\xfc\xe0\"q\xccI\v\x15Y<\v\xf0\x0ek\xf2\x8e\xae\b͔\xf0j]\xb06\xdba\xad \xcehbn\x9d\xa9\b\x0e\xb8Y7\n\x19\x16\xb0\xf9\x95P\vc\x1d\x1eRY\x04\xcd\xfc\xe2\r9\b\x94ށ\"\x85\x84\x04R\xe0I \xad>\u007f\x00\x00R\xf9\xb5\xe0\x86\x81\xf4\xa0\xf3\xab*n\x05ͳ-:\r\x15TJ\xa5\xbdNN1\xc6\x06\xd9G\xa9@\xda@&YB\xccV\u007fWN!\x03mM\x16X\x9b\x93jksc9\x9d\x87\x9e\x1b\xaa\xab\xabM\v\x02\\\x95\x12\x9ciZ\x93T@L\xf4\xb8[\xf4\x0fWo\xc8\vrbV}\x8a\xa4>\xa3,\xc3\xf0\x1bM\x03c/׳\x97\xd8\xccO\x0fQ\x89'\x9e\x04\xd7hD&|F\xb8 \xaaL\x16\x1e\x97L\xf0\xca\x1c\xe42g\"\x1c{\x1b\xccg\x1b;\t5\xfa\xd7\xcc\xe7\x1f\x87\x9d\xf4\xba\xfa~P {\xde|?<\xf9\xcd\x17oV2\xfc\xa4\xbdS\xc8\x06H\x0e\x9a\xa6TS\xc2BI\xac\xe4\x8djp\x03!\xaf\x01\xfd\xc2\xeeE\x05\xdf3^>\xd8h\xf1\xbe\xc6՛K\x04F\x9c\xf3\xc4\xea\t\xa1\x17NQd\xcc\x16\xc0]\xeb\xf3`\x19y\xe5\xd4\xecuA\xf8;\r\x199\xcd2a.\xf5pɟ\xf2T\xe4\x1b\xcb6\xca\x1c\xb4\xba\x84\x8c\x91\xe3\x87\xc2\x1f\x8eU\r\xb4ױ\x8a7_g\xb0\x84\xe0\xe2\xc6\xeb]O\f\f\xa3\xd4y:A\xa0\x11V\xc1\x8cN!\xb3\u0097=%j\xf3\x94DZ\v\xa3L\x8dRd}\v\x10|\x10\x19\xd8\xe8j\x8f\x1c\x03\xf47\x80\x1b|\xb5\x1fn\xd0J\xd3\xc2M\xa45\xf9s\xc3M\x19,q\x91u\xdc\x18\xa1\xad\x8d\x1b\x03\xf4\x8b\xc7M\xa4\t^A\x92\x88\xbc\x98H1c\xa1Gr\xe3\x12w\xc0\xea\x90\x12\xb4\xc4Ƹ\x1d۱\xc8h\x19i\x81\x8e0\xc1W\t.T\xdb;\xccg\xb9\xfc\x9fh=\x1c\xb9\xf1ٚ|\xe0\x17\xefcV\"\xee@3+\a\xe6\xd9n+\x91\xd0\fێ\xc4P\x02Y\xa7\x86upu\xd6N\xc4A\xc3\xe0\x11\x84\xe2\xa2\xcdl/\x06\xfc%\xba\x10\x14\x17)4\xaaT\xdb\xe4\xaa[\x9bUa G\x80\xf4IOF\xd6\xf0AB\xa9\x8f\xf90ߋq\xe7\tW\xdaחG\xa0\x88h\xe0)\xe3s\xb4\xeeǔz\x96\x90ٔ,ǰ\xee\xac\xe1\xe7\x18O\x9d\x9bx\x04X\u007fH\xfdv\xa1l\xcc\x04w\xb3\x17<8\x10\x91\xd8\xde\f(zΐ\xc7\x19\xd6}\xf4\xbd'\xaf\xe0\x0e\v\x9f\xfaf>\xb2k\xa8l\x811>$3\xee\x18O]&Q\v\xe5q\xa9\x85\xa4֞\xc6\xe4#6\xe5\xf1l\x8cJxE\xfe\xc6I\x85\xf2\bУ=G8\xe6\\\xb8#\xb5q\x84?X\xf5,\xce}b'\xbb\xd3=\x17\x01\xd1/}}\xaa?pX$\x8d\x14q\xee\x19OŽz\x1c;ŏ\x16\x98WP\x13Ú4\xe3\xf3`\x89\xa4\xb6U\xd0,kŁ\xf57V\xf8\xb3\xeb\xdb\x0fv\xa8\xe6\x81P\xbd\xd5\xda\x12n\xdbS\xd5S?\xdfb:\xe82\x06\x84:C7L\a\x9f\xcc\x180\xcf\x15}-\xcd75\xa3\xd9M\x11ګ\x83\xac\xd3\xe2\xb7\xefn.\xda\x00\xe3\x1a3\xdcc\xdfN\x83k\x03\x91\xd04gJ\xa1\x9f\x02\xa6\v!\xee\"@\x9e\xf8\x10\xea9Ӌr:NDވ\xa6\x1e)6W\xe7\xeeL\x8e\f^N#\xbe\xc1x\xe6cޭ\xed\x8ck\xe5m\xe0f!\x11 \x93\n\x9bHp\xae\xf5\x97\v\x82\xdcD\xf7u\\\x89\x1e\x8cX\u007fV\xa1e\x93\xf4\xae\xa3\n\x1a\xef!\xbfH|\xb8\xca\x1b\x8d\x8a7\x96\x10\xeb݈\x91C\xcd\xfeY\xe5\xf3yK\x95[\x85'\x01շT\xf9_jH$\x05\x9b~\x1f\xa5;\xb1Y\xabGm-(XOj\x946v\x8c5\xaa\xdc\U0010e6ca\xfamL\x83Ew(\xd0&\x93\x15\v:B\xb5\x1a\xef\x05\xbcv\xe2Ն\x85\xe0\xc2&Bc.\x97\xe0\xc8&\xd0bc#\x90\"\x05O'\x0446\xe9u|\x17Ⱥ\b\xc3,\xa3s\xac\x95b\x04\nk\x04\x89-\x8c}\xcf\xf4\x02۵,\xa0\x05\xdebT\x82\x8a\x93d\x19' \xa5\x90\xcaF\xb1{\xb76\xce\x16\xa5\x8c\x98\xe2R\x17f\x8f\r\x99N\xb0#n-\n՝\x13#\xf7I\x19\xae\x02\xb3\x19$\xa8\xec6\x0fUl\x05\xed\x13\xa6}w \x97\x98k\x18\x8d\xeb\ue633\x87\b\x90b֚Yc\xfd\xbe\x9bM\xe3\x9fc.\xb6\n\xe0阐+^\xa5ɞ\x19\xee\xd0\x0f\xb6\xcf7ц\x1c\x9a\x8dWq\xebh\xa6bJ\x839\x85_\v\x84\x1d\xcb\xc1\xc3}\xfa\xa4\xe9\xd7\u007f\x84K\x12\xfd\xfb\x0e\x949:\x8em\xc4Y\x816#\x046|\xfeq\xaa\xe9F\x94\x00\x02m\xfb\xfe\xe3X\xc5F\xb4@\xcb\xff\x1f\x01\U000f0201\b\xc0\xbb\x15\x1a\x12ק\xedi\x94\x1a\xf2\x14\x8a\ryv\xcfCL\xfa\xac\xad\x02۫\xcd\xe5M\x03F\xc3\ngD\x82\x805\xbb\xcb\xceV\xba\xae*\xe8f+_\x9d\x9b\xfd\xb7ՒC\xfc0u\xc65\x176\xe9\xbaY\xfe\xda\xf5\xfa\v!\x96\x92k\x96yWJ^d\x80%\xb3\x1a\xb3\xadj\x9e\x05\x00m\xf4\xda<\xab\xd0P7\xf6te\xbfCl\x16\xff\x85\x17E\x95m\xe9\xeb\xfeN\xaa\x0fY\xbb|\xd0,]Gd,3\xa5\x85\xf7\xfc\x90\x94\xcdf\xe0\xb3E\xa7@\n*in\x84\xeb\x10\xd8.ts\nsfS\xf8*\xd1\xe5X\xd5\x05hC0\x80\xa2\x14\xd3$g\xf3\x85=Ȅb\x89<\xe2c'3ASbxh\x00T!\xc9=\x95\xb9\x91\xfei\xb2\xc0jq\x94\x93\xb4\x94\xd8\xffL\x03MW#\xa5\xc3BWD\x01\xd2\x19\xf41E y\xc6\x1aAC\xb3\xd5\xedch\xb6:4[m\x8c\xa1\xd9j5\x86f\xabC\xb3\xd5}/\x0f\xcdV\x87f\xab\xbb\xc7\xd0luh\xb6\xda9\x86f\xab\xcd14[\xdd5\x86f\xab\x87\x8c\xa1\xd9js\f\xcdV\x9bch\xb6z\xc8\x18\x9a\xad\xfe\x03\xb7\x10\x1a\x9a\xad~^-\x84\x86f\xab\xbb\xc6\xe7\xde`ih\xb6:4[\x1d\x9a\xad\xee\x1dC\xb3U7\x86f\xab_\x12\x11\r\xcdV\x87f\xabC\xb3\xd5\u007fTMih\xb6\xfayiJ\x9f\xbb.04[\x1d\x9a\xad\x0e\xcdV\x87f\xabC\xb3ա\xd9\xea\xd0lu\xdf\x18\x9a\xadn]\xe1\xd0lu\x03%\xcf\xd5lU\xe9\x94\x05\xb4G:\xa4\xea\xb7\r\xbd\rX\xae\xaf\x18h\x18U9\x9b\x81\xc4\xcb\x14g\xb6\x11\xad\x19\x00\xd6\xf7f\xa9\xaeV\x17U\x89m\xb8$\xd0\xd4V\x03\b\xb1\xb1uNɗ=\xbc\xa7+\x15\x9eG\xc88\xb9|\xff\xb66[\x86\x97+\x8f\xc9\xed\u0095\xbc\xe7Il\xd6H\xbd\xf5\x1duAB0jô\x93L(\x1bAlQ\x9c,(\xe7\x909\xe17(\x84vA\x15\x99\x02p\"\n\xe0V\x9c\xa0D1>πP\xadi\xb2\x18\x9bهH\xa9n\xdb\xeb\xbc>\xf7\x8b\xd2\x12h\xee\xf3G\xf3\xb0\x0e^fz\x84&R(E\xf22Ӭ\xa8&H\x14`\xc1\x01\x15\x9a0\xe37\x15Ð\xebt\xc1\xb3z\x05\x16)!\xd3lv\x12A;\xe8\x19\xb6Q\xcc\v\xbd\xaa\xf2i\x80̘\f*\x83\x93d\f\xcdm\xb8^[%\x0e\xe7x\xe6\xd5\t\xee0\x1ar\x97X\x94\xf2\x14-\x0f\x85V\x98\x1fҘ\xa4\xfbhʔ\xb3R\xa9\x900u\xaa\xfd\xd5g\xc4\xfd\n\xa3H\xba\xa9\x13\x94Bg\xec^nL\xb1\xd1f\xacN\x1e\n\x11Q<\xb3\xc3\xd4f\xcfL\xceZ\x19\uf576\x15\"\x85,\xa8n0M\xb7~$}\x0eKs\xf6!\x01\x16\x94\x96L\xb7p\xbe'e|\rI\xf2\x1d(E\xe70\t\n\x0e\xd9f6\xc5\xf8\x90\x9aD\x82\xd4u\xacW\xa4EC\xb2\xaa\x93\x13\x8eUs\xca\x01@s\xbb\xba*\x13\xed^2\xad\x01I\x16{\xc2`4\\\x90\xe5lcb\xcd\xde\x1c\xef\xfc\xe7\xecgB.@\x85r\x0eOmf\xda\x14\xc8T2\x98\x91\x193\n\x91\x8d\xd4?Ú\xf1!\xb4e]\x0eJ\x81D[\x853\xd4x\xac\x8cɏ\xc1*\xb0\x96%O0M\xc0i\xa8Xk\x8b\xcd\xc8\x1c\xb3\a\xa45\x10\xfc\xf3\x8b\u007f\xfbS\x00\xd0\xe9\xcaȤ\xa8bj\xa1iVm[\x06|n(\xca^\x104\v\xf1\x8f5\xd2\xe5\xfd\xeec\x13w\x8b\xe0\x97\u007f\xb8\x9bF\x89\xeaZ\x90\xf3\x14\x96\xe7\rz\x1ceb\xde\xd5\x17\xffp19\xc2|\xddq\x84EƒU\xe4!\xf6M(\xc8B\xdc[CV\xaf\xf3V'\x9e\x15\xa2(3\x1b2\xf0\xb6\xaaC\x17V\xfcs\xa3\x96O'\xf7\n3\x80\xfbi\xadw\xb7\xb5)1~\x19Ak\xc7\fq\xe7ʭzO\xa0]\xf4-Ͳ)M\xeen\xc5\xf7b\xae\xde\xf3K)\x83\x1aGx\x9c\xd9DX\xaa4I\x16%\xbf\xb3\xad\xa8\xfd\xd43\x11\xe2\xf9\x10\xa5.J\xed\x93k\x9b\x06M\xbfv[\x9d3\xe4hXq\xc8[B\xeb\x99\xc1\x03\xf3\x06LÏ\xb0PH\xc8en\xf8B&\xe6՜U\xf3 \xff\xe1\xc5?\xff\xabe !\xab\x97\xe4__`\n\x9f:\xb3\x17\x0e\xde\xdeF`\xcci\x96\x81\x8ce\r\x86ĻX\xc1\x93r\x02\x1d{\xe8\x9f@u\xbd\xbd\xfd+\xea\xadL+\xc8fg\xb6*\x83\xb7\x9d\x05\x80\xc5\x16U9}t~o\x19u0\x16\x90\xc9tY\xa4U,Ď\xab\xa2\x89\xea\xa3\xf0\xfa\xfc'v&\xc7\n\xeb\xfb\x04ou\xf4qp\xdbt\xf9P\x04w^jm\xd5\xe5CA\xd1\xee]\xb4\xf7,\x18\x11\xee2\u07beg\xb1\x10;\xf6\xecϰ\xa0ˈ\xfbL\xb1\x9ceTf+\xb3\xd97\x16\x83dZj\x02|ɤ\xe0yx<\"!K*\x19\x9df@$`\x1d\xbb\x04\x14\xf9\xfa\xe4\xe3\xc5\a\x8c\xdf=57g0L\xf0\xbbR*_ƷI\xfd\x8d\xe9\xf6\xe3-GG\x1b\x04\xec\xf1b(+\xfc&\xe6i\x85W#1\xe4\xa5.i\x86\xa5\xa8\x92\xacTl\xf9\\\xf7E\x9c\x96VI\xbb\xbf\x01%͕1{\xc3\x02\xf8\xc3Z\xb1\xb6\x9a\xe06j\xa2\x05\xba\x83Q(\xabkiv\x86l\x04q\b\xdf\xfd\xbd\xd9\x01\xc3\x19\x93]\xc5F\x9b\xe4\x15\xde5i#\xb4\x06\xeb\xe5>\xafY9\x8cz\x03(0\x90\xf6B\xa8\xce\xc5\b\x1e2\xe5\xb6Pj\xdfs\x1d\x88\xac\xbd.\xa7\x0f\x18\x80G\xf1@\x1e\xb421\xb3A\x11\x1f!\x03)\xfc\xa5qO\x99\xae\xf2\xff\x18g:\xb0\"<**\xb6J\xeb!\xdb\x1d\xb0\xd1\a\xee\xc4A\x8f\xedۦ\xdd䴃|\xf6|}\xfbw\xb7\xbe\xc8x\x92\x95)\xbc\xceJ\xa5A~\x00%J\xd9a\xe1_\xf3\x8ev\xbe\xd3H\xed\xbbw\xae\x94\xc4>2R\x89(:\x0e\xbd\xac_\xadd\n7\xa1ԧ\xefcVh\x95\x01ak\x1c)-$t\x06B\xf12\xcb֒\xcc:j\xa3\x9b\xa7\x8c\x84Й\u007f\xb3]R\xf7S3*\x9a*\xe8\x81hj\xdb\v%vR\a\"\xc4>\x8c\x04\xca-o\xc3T\x12\x84_-\xefj\xe6\xda\xed\xd9\xf5\xedX\x04S\xe4\x8a\x1b&\xe3V^\xa5\x82)\a\xbc\x99Å\x1c\xc9C\xdf\x01\xb4\xda4\xa6<*\x85l\xe1kˇv\xc0\x9c\x02q\x9fG\x1b\xae}\a\xc3s\x8b\x8c&\x90\xfa\n\xf2\xd4\xe0\x82j\x98\xb3\x84\xe4 \xe7\xbb\xe6Y\x18>\xb5}\xeb\xf6\xba\xc1\x0e\x12v\xfb\x8a\xa6w\xd0\xfd\xdeh\xf7\xf6F\v\xae\x8e\xdf\xe3\x05\u05f9zߥ\x87f\x93=\xfci\x0f~6\xef\f\xfbQw\xd1\xd2\xc2P\xf6\xff\x18v\x8a\x84\U000bf920L\xaa1\xb9p\x99\x04\x9d\xdfl>\xef$\x8f&h\x03\x95)bp\xbe\xa4\x19\xd8⨔\x13\xb0\xa5':A\x8a\xd9ƍf\x14m\xa1,\x17\xaf\\\"Gw\xb0::k\x9d\xbcm\x01lGW\xfc\xa8\x8a\xb2o\x9f\x03\u007f\xcf\xd8\"\xfcG\xf8oG\xe3\x8dK\xb0\x13\xec\u038bq\aEl\xfd\xa7J\xd2}g\x03k\xd6\xf7\xf90Z\xd8A\a\x1bU\xe2\x9a_k\x11BS,m\x89\U0001b7e3r\x0e\xbaK\xd8w\xb2*\xba\xd9\xc7䂯6\xa0v\x173\xa9T\xa4\x8a\xa2\x8aVs\x11l憾\xfb\x06 \x176\x83\xbd\xbe\xcc\xcf\xeb{\xb2\x15\xe9x\xd1\xc9%\\\x8b\x14&BnF\x18\xb4=\r\xebOwh\x85\x8d\xa5\x8b,Ři|tc\xa1(\x87:\x19\xf4qT8\xf7\xdd\xc9\xc7ݫ\xf8P=\xb6{\xfa\x14\xab\xe6\xbbݘ|ܲ\x02\xc5i\xa1\x16B\x93\x13\x9fޛd\xa2L]v\xb3\xdc\xf0QD\xaeM%\vH\xcb\f\xbaZrm\x94\xc9\xf3\x0fz)\xac\xe4\xec\xefe\xbb\xc1\xa4\xb7ܸ\xa77\t\xbb\xc6C\xa5\x966l\x8a\x86\x9d\xfc\x19\xf7\xce\u007f\xc7\xe9c\x0e\xae\xa1\xd8.\x8b@\x05\xd0ҶP\x1a\xf3H\xb8n\x14\x86\xf2\xea[\xe2\x8a\xf4\xbbǙ\xaaf\xdbM\xde\x1b\x87\xbe\xeb\xba\x1b9\xe8k\x9e\xd8\xce\x03b#\xa4\x9bow\xd1э\x8d\xa3Nh\xa1K\xe9۱\x96\x12{\xec\xd4m\a\xa8njCB\x03\xe86\xd1\xdb\xd9\u0098\xe0\xb7,\a\xa5i^\xec\xdc\xf9כ\xcf\x1b\xe4\n\x99\xaa\xba^CC\x8d\xae[\xd9lj\x91\xb4n\x98\x94\x8e\x1b\x90-\x10\x94\x85\f`H\t,\x81\x13\x97p\x81\xbe^\xab\xa2o\x80\xbcE\xd1_.\xd1\xc2\xed\xa1`d\xe7LH\x82=\xa9\xaai\xaf\x1f5\x9fV\x9bR\r\xa3\x8e\x84\xc3\x03\xceTǍ`\xbb8\xeeD\xe9\xa5m\xf4\x88wC\x82QFf+\xb3̾\xeb\xe3\xc7];\xcd{\x90@\xe6\xc0\rR;\xecaNh\xb4MT\f*\xddI\xac\x8c\x1a\xb7\xb6ߌ\xd1\xd5]\x83I\xac\xda\xe19\xfe6\x01\xcb<@\xe7[\xceDWB\xb1\x8b\xd5\xff\x00TmF\xbf\xb4\x96\xff\xb6\xf9\xa4\xd3\x03\xecʭ\x9aJmw)ۑ\x8fI\xe8 n7\x19\x81_=\xf0\xdc\x12R,\xa8\xda\xcd\xe6&扪\xb5M\xe3\xb8U\x1c\xeeC\xe7\\\x80\x97\xf9:\xe0\x11\xb9\x86\xfb\x8d\xdf\xde\"A\u007ft\xed=7\x0eɈ\\\xf1\x89\x14s\xb9Yer\xe4\x0f\xcc\x06\x15\x8cȄJ\xcdh\x96\xad\xdev\xf5\x94\xf0_=\x18On\x02{nm\xfbP-\xee1nO\x94\xa1B:\xf5=R\xdd\xe6\x1d\xab\x9aF76\xd2\u007fpl\x948\xf0J=k\x83Đ\x1d\xa5G0\x9b\t\xa9\xadp9\x1a\x116s]\xf5t\xae*0 0\x8b0\xdb)5\xb1\xce\xdaN\xe1\x1a\xf3\x99+iO\x99\xd3ӥz\xed.\x1a\x80\xf9eW\xdb\x14˶[\xa8z\xd4O\xdc&\xa7mL_4\xc5\xd0m&4\xa6\xfc\x8bf\x87\x92\x05V\xed\xd2\v)\xcayՐw\x1b\x1b\xec6\xa6\x95\x98.Yd\xe5ܐ\xaf3p\xe9R\xf2\x86V\xe0L^i=\xd5\xed w!n\xab\xac\xacZw\xd4n!\xac\xf5職\xb0\xb9u;\xb8\xbbM\b\xfe\f\xef\xcfe\xc5\x1a/\xf7ߤ\x1f\xd7\x1e^s\x05\x98;\xb5\x86\xe7\xef\xbf\x13\xb6\xe9\x04B\xababf\xbb\xde3\xff\x99L\xfa\xf7Tr\xc6绗\xfb\xa3{\xa8Ctp\xef?\x9d\xf0\xe0'\xd8\x16\x1f6@Z\n\x0f\x15\x1f:N\xc7\xdaOK\x90ʚ\x0f_\xd6\u007f!\xb6\xac\xef\xd3\xfd\x03\xb1Ԝ6p\xef\xa6\xe2~\xa9\xa5o\x9b\xdd\xef|m\x16\xedw\x8c\xa7\xaf|\x04Y\x91\x95\x92f\xee\xcfDp\xcb\x11\xd4+\xf2\xd3\xcf_\x11\x87\x81\x8f~\x1e\xe6\xc7\xff\x1f\x00\x00\xff\xff=C\x02\xc8\xfa\xd8\x01\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec`\x86F\xaf\xa5>\xb3\x05&\xb4ڽ\xd1eq\x05\xcd\x0f~R\xc0\xc4\xef\xe2[\x98\xcf]\x99\xb4\xee\xa7N\xf7'i\x1d\xffTd\xa5\x11Yk=\xee\xb5Rݗ\x990M\xff\x19@aТ9\xe0/\xeaA\xe9G\xf5\xa3\xc4,\xb5W\xb0\x13\x99\xa5\x9fm\xa2\v\xbc\x82τI!\x12L\xcf\x00\x0e\"\x93)\xef\xd3\xe3\xa6\vT\x1f\xbel\xee\xbe'aR:\x1c\xd6\x11\xe1 \x95\xbb\x1d\x1a\x82T\xec\x85E[\x19\x89q\xf2L\xa9=53\xc5\xe2\x93\xfd4\xec%F1\rƶ\xc0\xe6t\x04&0\xc2ds\xcb\x02\xa4J\xe5A\xa6\xa5\xc8@*\xeb\x84J\xfc\xbeD\x8d\xdbо`\x9a\xf5'\x98{3Z\xe1O|\xe9x$\xad\x10\xb4\x81\x9c\xdc\xef\xe9P;\xba\x06\x8cn\u007f+Ȟyc\r\x86\xe2\xe9\xb0X\xcaή\xb1\x17\x17\x13\xc0k\xee\xf8\xa0-\x13[\xcc\xc0b\x86\x89\xd3f\x8c,\xf3L\xf7-\xce\x16\x8e\xd0s\xc0*6v\x9f\xb6\xdclp\x12(\x90\xc9\u007f\xdc\xcbd\xef\xe3+\x92)\x86\x04\xa9F˶@\x14Ev\x1c\xdf,\xccKBXh\xda\x1c4m\xd60\xf4a\x0e\x9b\x88\xa6E\xd9Ӧ\xcdX\xd6.\x9dk\x11y#s\xe54\x9e%Л\x93\xc9/-\xd0D`Ig\xab\xcd\x0e0/\xdc\xf1\x02\xa4\xabz\xe7aR\x18\xd4\xe0\xf0\x87`\xd4s\xf4aӟ\xfb\xc2\xfa\xf0\x02\\\xaaQ\xf8\x9ff\x12;\x9bo\xc1\xd7,`Ч\xf6\xbc\v\x90\xbb\x9aA\xe9\x05\xecd\xe6\x90\xe3\x9ei\x14[\xaeo\x96S/E\x968\xafI-\x17.\xd9\xdf\xd4G\xc8\xd9\xf1=\n\xf5\xa7\xfbX\xb9:It\x9d\xfc,d\xe0\f\x834\x98\xfb\xbc\xc5-\xeb@\xd3Ñڇ\xcf\x1f1\x9d&\x14\xc4J\xe4\xc9v>\xf4Pn/\x1f\x8e\x01\xf1\x9b\t\x01U}\xc2\xf2\xf9\xa8\v\x10\xf0\x80G\x1f\x05\t\x05\xc4(AK\x8d\x1e$N\x89ĉ16\x11\x0fxd@!\xd7\x151?^4|{\xc0c\xdc\xc0\x1e)\t\xb3\x90\t\xf04\xa5\x0e&\b\xa7L\x96\x90\x118s\xc9\x1a\x02N\xc7l\x12\x96\x98\x9b\xaaU\x9cx\xd6vk6vҸ\x0fx|g=\xc3H;\xf6\xb2\x88\xde0\x19`\xb0\xc8zTe2\xefD&\xd3z)\xaf\x0f\x1b5\x15uw\xdbg\xed6\xea\x02n\x9e\xa4%\xf4T\n\x1f5\xda\xcf\xdaqϫ\x11֣\xff,\xb2\xfa\xa9\xaczʛy\xa2G;A\x1a%\xf4\xbem\xfc\t\xb3f\x95\xb4\xb0QtV\nt\xe147Ì\x17KF)/-gB\x95V+v\xb4끵\xa2a\x06\xf6h\xd3\xe1N\x1b\xbdֲ\xd1P\xe9@\xe7Q\xbb%\xdf\xe3!\xf8\xf4}&\x12L!-\x99\xa8\"\x1a\xa2uF8\xbc\x97\t\xe4h\xee\x11\n\xf2\x05\xb1܈\xb6Ͼ-\x96\xb9\xd8Рj\xc1Ч1(\xadH\xaf\xa3\xc6U\xec\x8f\x18<\x98\x8f\x9e\x1e\x1c\xb37v\xd0\x1c\xc7DP[\xa4)'lE\xf6e\x91\x97Xĝ\xd3\xf8\xc1\xa3\xe7\xfdk.8Q\xfaor\x91,\xec\xff\x81BH\x13\xa5\xe5\x1f\xf8\x8a/\xc3\xce\xec\x90uk/DkH\v\xc4\xf1\x83\xc8\xfa\xb7\x1d#[\xd4d\x810\xf3\xa1\x80ޝD>\x17\xf0\xb8\xd7\xd6{\xe4\x9dđ\xe4p\xb7I\v\xe7\x0fx<\xbf8\xb1K\xe7\x1bu\xeeC\x84\xbe\xd6G\x80\xad#\x0e\xad\xb2#\x9c\xf3\xec\xf3_\x17NEKg\xe4@\xbe\x0f\x8e\x0f\xc4\xe9$[E\x134\xb5\xbe|\xa4\x10z\x1a\xfbH\xd9,\xb4u\v\x10\xfa\xa2\xad\xf3\x19\xd1N\xc0\xbb,\xdf\x06^\xaeB\x9e\r\xc4Ρ\x01봩\xae\xfa\xc8H\xf6\xd2\xc6\xc4E;w\xe0 \xc6\xd6\xd9;\x0f\x96\x0es\xe7\x8d~{\xfb{\xee\xef\x00\xe9\xef9\x88\t\a0\f\xb90:Ak\xe7\xc4&\xca\xc2\xcf$6뤦\xf0\x87%\xbe[\x9b\x15ֹdkՖ\x84\xc2D\xce\xc5lj\x9b\xa7V^\x96\xcc\a\xfd?/\xb2˱\x03\xd6\xfa<\x17*ʁ\x9d z\xed\xe7V*\x16@\xf9#\x8a\xb9/\xd9\\,\x89\\\x83\xf0\xfd~\x82\x81\\\xaa\r/\x02\xef_%|\xa8\x8d.>\xef\xf8p]\xcdnXPw\f_\x92\x8e\xb5B\xf3}\x85\xc1\x0e'O\xb3\xfa\x8b\xc2f\xa5];\xf5A\x90\v\x9d\xbe\xb3\xb0\x93ƺ\x06\xd9h\x98\xd2\xf2%\xe9\xeb\x9d\xe5ԍ1\xcf<\xca\xfd\xec綒q{\xfdX_\xe8\x8f_\xfc\x0e5\xbe\x1eC\x90;\x90\x0eP%\xbaT\x9c4\"c\xc0\x8bxv\xc4\v2\xc4\xfa\xbd\xa6\xa1*\xf3XB\xacX\x12\xa5\x9a\xc9/\xb5'\xfc(d\xf6Zlt2G]\xce8\xe6\xa6u\xeb\x11\xfc\xdcN\xa5F.\x9ed^\xe6 rbD4\xc9)ڐ9ve\x00\x1e\x85t\xec\x91\b2\xbb'\xa7\xa3A&:/2t\b[\xdci\xc3\xfane\x8a\xb5\xeb\x0fr\xa1\xc7\xef\x1d\xfbM\xc0NȬ4\xd1Vw!7\x96\x9d\x90\x82\xe1yكO,\n+&_T:::\xa4\x9d\xf3\x04\x85Y\x12\xd0~1\xf8\xd2\xe1ca$ɢ\x9e\x8b g r|ٍ \x83\x88\nu\x1c\v!g`2\x16o!\xe4[\b\x19\a\xf7-\x84|\v!\xe7\xdb[\b\xf9\x16B\xc6Lx\v!\xdfB\xc8\xe5(\xfc\xf6!\xe4\x8dW<\x85\x1b9t\xe2\xf0~\xdd\xfd\xc5\xe9P\xff\x04\x8f\xd2\xed\a7\xc5ߠ\xd0qQݷ\v\xa3+Y\f\xdfx\xf5\xa9\nڀ\x92\xd9pM\x03\x11\xbc\x9a\xdf!7\xfc\\\xf8C\xe9\xb3\xf4w\xee\x98\x14[#\xf5\xecʨn\xddӨ\x81_~\x81\xb7\xa4\xac<\xbe\xf6i\xaeTiI\xc5S\xbb\x9ai\x02dl\x9dS܉w\xb6\xa6\xe9\x19\x95L\xd1u\x95/r]\x19W\xab\xf4\x1a\x15J\v꒺\xf5F3p\x97U#E\x92)\xa6\xf2hq\xbdQ\xa8\xed\x99\xd9OD\x95\xd1h\xf5\xd0\f\xe8\x81:\xa6\xf9\x9a\xa19\xf2wPy\x91J\xa1g\xd4\a\xbdl\x1d\xf1KE\xddS\xd5>\x115>\x11q\xf9\x1c\xa6\x11U<\xcbjw\"h\xf8\xcc:\x9d\xba\ngt\xed\xa5\xd59\xddڛQ\xb0159#\x157\xa30'+qb\xeblF\xa1Ϻ\xef\x19ə\xfcy\xe8\x9b\xe7\xaa\xcdy\xc9췕\xb4_\xb3MmR43g\x83x\x84g\x90\xed\xe6\xf8z+\xf7>ި>\xfa\xa5Q\xed3ǰ8\xe8\xfaӂ\x04~\x92*\xf5RD\xaaЊ>\xf8\x85\x00.\u007f\xaaC!V\xc6a\x1e\x86H\xb3wֱX\b2\xcb)l\x8f>\xc3b\xd7p#\x92}w\xe0 Ƚ\xb0t~΅\x83\xf3\xfa\xd8xYͣ\x9e\xf35\xc0\x8f\xba>\xa5\xb7?\xfa\xb32/\xb2a\xebVZ\x84\xf3.\x98矂F\xe4\xc4*Qؽ\xae\xbe\xf0\x9e=\b}\xeb\x8e\x1f\xc8DT\xdfw'\x99.\xd3\x1a\xfe({\x85:\u0097;\x8e\xb5\xf8\xbbפ\xf9\"8DS\xd5ɦ\xff\xc1\xf0\xf0\xc7\xfa\vH2\x96\x99\xb0N\x1bq\x8f\x9ft\xd2z\xcdd\x8a&\xdd\xf1\x9d\xc7*\x82-\xacr\x8f\xa1Ho\xf8\x14\x17v\xd4\a\xd7\\9\x04\xddi\xd27\x84鰙\x9c\xd4X\xe7\xb2\xd9M\xdd\xde~\xf2\x1bq2\xc7\xf5\xc7\xd2g\x85V\x850\x16\x89\xb6\xd5\x06\xfd\xa4\xed\x98\x15\xdb\xebG\xc8t\xd8\xfd\x0f}\xfc\r\xf2\xe5\x06\xa7\x9f\x16\xef\xc2?\x16P\tdE\xaey\x11\xbe\x1b\x9e\xd7:\x88\xb6\x98\xc6\xfa<&\xbbc\x90\x84\xb5:\x91lM\x1e\xa5\v_5\xbd\xc6\xf7\xed\xe3\xf1Ѩҗ\x16\u007f~Th\xbeV\xeaf7\xca\xf3e\xf2\x15\x8b_N\xa6U\xcc\x1c2\x00d\xb9z\xc3O=\x94\n$\xb1\xfe}$oz\x99T\xd5k\x1e}bM\xea\xf5\x98N\x0fE\xb2\xab\xa1'4V\xf5{\x1eg3t\xb4N\xb8\xd2\xce?\x88\xc2\xc3 \x11\x85+Mp\u007fIi\xf8\xe3~\x02\x81\xfe\x1b\xf8\xe5O\xa2dº\b\x9e}\xaa\x875\xe7t\xeb\xfc}Kel\xe0QX~s\xc4߶\xb4\x88\u007fj\x16\x87\u007f\xf0\x9e\xef\nR\xe1pE\xb0\x973m@\xbe\xf9\xf1\x83\xc9\xdd}\xa1\x11\xf5\x9dn +O\xab\x9eL\x18\xd9\xc9Х\xdd\n>\xe3\xe3Iߍ\"\xc4\xfb\xd9t\u007f/\x87\xe9]\xfd\xdeU즚\x17\xb2\xf8\x1a\xf4D\xe7\xbbf\xaa7\xb8\x97\xab\x15Yւ\xe7\xaf<-\xfc\xbf<\xf5-\x9c\x80Ih'\u007f\xea\xfd6bx&\x8cΰ\xc1\x19P\x92^W\xf3&\xda\xfb\xe6?^z\x15\xde@;\xf8\xea\x01~t,m\xc9Jpơ\xa7\xd1<\x91$X\xb8p\x17\xd0~\f\xed\xfc\x9c\xff\xa9\xde:\xe3\u007f\x13\xad|\xa8k\xaf\xe0o\u007f?\x83\xe08\xef*<\xa8\xf3\xbf\x01\x00\x00\xff\xff*\xdd\xe8w?N\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4VM\x8f\xe44\x13\xbe\xe7W\x94\xf6=\xec\xe5MzG{A\xb9\xa1\x06\xa4\x110\x1aM/sA\x1c\x1c\xa7\xd2mƱCU\xb9\x87\x06\xf1ߑ\xed\xa4?\xd2\xe9\x9d\xdd\x03\xbe\xa5\\\x1f\x8f\x9f\xfaH\x15eY\x16j0\xcfHl\xbc\xabA\r\x06\xff\x14t\U0004bad7o\xb82~\xb5\xbfkP\xd4]\xf1b\\[\xc3:\xb0\xf8\xfe\t\xd9\a\xd2\xf8\x1dv\xc6\x191\xde\x15=\x8aj\x95\xa8\xba\x00P\xceyQQ\xcc\xf1\x13@{'\xe4\xadE*\xb7誗\xd0`\x13\x8cm\x91R\x84)\xfe\xfeC\xf5\xb1\xfaP\x00h\xc2d\xfe\xc9\xf4Ȣ\xfa\xa1\x06\x17\xac-\x00\x9c\xea\xb1\x06F\x8aF\xa2$0\xe1\x1f\x01Y\xb8ڣE\xf2\x95\xf1\x05\x0f\xa8c\xe0-\xf90\xd4p\xba\xc8\xf6#\xa8\xfc\xa0Mr\xb5I\xae\x9e\xb2\xabtk\rˏ\xb74~2\xa3\xd6`\x03)\xbb\f()\xf0Γ<\x9c\x82\x96\xc0L\xf9Ƹm\xb0\x8a\x16\x8d\v\x80\x810]\xfc\xe2^\x9c\u007fu?\x18\xb4-\xd7\xd0)\xcbX\x00\xb0\xf6\x03\u0590\\\x0fJc\x1be\xa1\xa113c\xb8촆\xbf\xff)\x00\xf6ʚ6\xf1\x9a/\xfd\x80\xee\xdb\xc7\xfb\xe7\x8f\x1b\xbd\xc3^e!@\x8b\xac\xc9\fIo\xe9\xf1`\x18\x14\x8c@A<(\xad\x91\x19t B'cL0\xae\xf3ԧp\xa3c\x00\xd5\xf8 ;\x84甓\xf1\xe9ը0\x90\x1f\x90\xc4L\xe8\x93ɩ>\x8f\xb2\x19\xc6\xf7\xf1\x11Y\a\xdaX\x91\xc8)\xc6XW\xd8\x02\xa7\a\x82\xef@v\x86\x810\x91\xeb\xe4\x12]\xe2\xa4\x03\xe5\xc07\xbf\xa3\x96j|=\xc7,\x06\xdb\xc62\xde#\t\x10j\xbfu毣g\x8e4ĐV\xc9T@\xd31N\x90\x9c\xb2\x91\xfe\x80\xff\a\xe5Z\xe8\xd5\x01\bc\f\b\xee\xcc[R\xe1\n~\xf6\x84\x89\xc0\x1av\"\x03\u05eb\xd5\xd6\xc8ԑ\xda\xf7}pF\x0e\xab\xd4W\xa6\t\xe2\x89W-\xeeѮ\xd8lKEzg\x04\xb5\x04\u0095\x1aL\x99\x80\xbbԐU\xdf\xfe\xefX$\xefϐ\xca!\xd6\x13\v\x19\xb7=\x8aS\x8f\xdc\xe4=\xf6G\xae\x86l\x96\xf1\x9f荢\xc8\xca\xd3\xf7\x9bO0\x05M)\xb8\xe4<\xb1}2\xe3\x13\xf1\x91(\xe3:\xa4\x9c\xb8\x8e|\x9f<\xa2k\ao\\\xae%m\r\xbaK\xd294\xbd\x11\x9e\xaa4槂u\x9aK\xd0 \x84\xa1U\x82m\x05\xf7\x0e֪G\xbbV\x8c\xff9\xed\x91a.#\xa5o\x13\u007f>N/\x153[G\xf14\xeb\x163\xb4н\x9b\x01u\xccY$.ښ\xce\xe8\xd4\x06\xd0y\x02\xb5dR\xbd\x89!O\x99\xafA1Έ\x8cc69b\x0f\xbe\x85ciT$\xf9N1^\x8afh\x1e\xa3\xc6<\xb25\x1dꃶ\x98\x1d\xe4I\x81o\x81\x88\a]\xe8\xe7\xf1Jx\xc0\xd7+\xd9#\xf98'Ӥ>?\x8b\xf9\x87\xfcs\xd9\x1aǟ\u007fM\xd6I\xbf\xab\xf3\x91{6jG7@\xc1\xb9ؑ\xdeE\xf1\xcc)\\N\xe4٭\x11\xec\xafp,\"\xb9w\x9dO\xbf{\x15C*\xc9}\x82cR\xc7\x18\x19ѕ\xbb[9\xcdg>\x8a\xbe\x80\xc0|\xd2\xca\xf0\xf5\x86qt\x18\u0085\x98e² \x8e\x91\xaeċ\x1d3\"\v֪\xc6b\rBan\x99\xed\x14\x91:\\V\xc5TF\xa7\xe5\xe8\xb3\x05r\xa5\x1ek\xffu\x87\xeeV\x85ë\xe2\xa5\xdcd7\xd0\x1cn\x19\xae\x8f[\u07bcIrY\xd6\x10\xa7n)报/ b!K\xb9T\x17\xb6\x83+\x126\xe7\x9aS\xef_\x14\xfc\xb4,̑\xdf\b\xbe\x90ԙ\xe8\xb4\xd4ޝ\xbeRa\x97\xe3\x12\x9b.\xc6W\xb4g/g\xf1\xa4\xb6\x13\x17\xa7\xd9\x1a\u05ecA\xb0}\x98\xaf\xb0\xef\xde]\xec\xa2\xe9S{ך\xbc\x81ï\xbf\x15\xd9+\xb6\xcf\x13\x8e(\xfc7\x00\x00\xff\xff\xad\x01\x9a\xeb\x00\f\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4V\xc1\x8e\xdc6\f\xbd\xfb+\x88\xf4\x90K\xed\xc9\"\x97·`\xdb\x02A\xd3`\x91M\xe6R\xf4\xa0\x91\xe8\x19veI\x15)\xa7ۯ/$\xcb;\xe3ٙ\xa4E\x11\xdfDS\xe4\xe3\xe3#\xa1\xa6m\xdbF\x05\xdabd\xf2\xae\a\x15\b\xff\x12t\xf9\xc4\xdd\xc3\x0fܑ\xdfL7;\x14u\xd3<\x903=\xdc&\x16?~@\xf6)j\xfc\x11\ar$\xe4]3\xa2(\xa3D\xf5\r\x80r\u038b\xcaf\xceG\x00\xed\x9dDo-\xc6v\x8f\xae{H;\xdc%\xb2\x06cɰ\xe4\x9f^u\xaf\xbbW\r\x80\x8eX\xae\u007f\xa4\x11Y\xd4\x18zp\xc9\xda\x06\xc0\xa9\x11{\x98\xbcM#\xb2S\x81\x0f^\xac\xd7s\xb2nB\x8b\xd1w\xe4\x1b\x0e\xa8s\xee}\xf4)\xf4p\xfc1\x87\xa8\xb8暶%\xda}\x8d\xf6\xaeF+\x0e\x96X~\xf9\x82\xd3;b)\x8e\xc1\xa6\xa8\xecUdŇ\xc9\xed\x93U\xf1\x9aW\x03\x10\"2\xc6\t?\xb9\a\xe7?\xbb\x9f\t\xad\xe1\x1e\x06e\x19\x1b\x00\xd6>`\x0f\xefs\x05Ai4\r\xc0\xa4,\x99r\u007f\xae\xc9\ato\xee\xden_\xdf\xeb\x03\x8ej6\x02\x18d\x1d)\x14\xbf+\xc5\x001(X\xd0\xc0\xe7\x03F\x84ma\x0eX|D\xae\xc0kH\x80\xa5\x02\xee\xaa)D\x1f0\n-\x04\xe7\xefDaO\xb63_\x9b\xf1\x1f\xe9ͦ\xccʇ\x9f\xee?\u0092\xb4\xb4`\xcdya\xfbx\x8d\x8f\xc4g\xa2\xc8\r\x18\xe7\xc6\rя%\":\x13<9)\am\tݚtN\xbb\x91$w\xfaτ,\xb9?\x1dܖ\xcd\x02;\x84\x14\x8c\x124\x1d\xbcup\xabF\xb4\xb7\x8a\xf1\x9bӞ\x19\xe66S\xfau\xe2O\x17\xe2\xdaqf\xeb8DuU]\xec\xd0\xe5I\xbd\x0f\xa8W\x83\x92c\xd0@ur\a\x1fA\xadجS|9Zw\xe2zi\x80a\xde\xe0\x03\xed\xd76\x00eL\xd9\xfe\xca\xde]\xb9w\x95\x9e\v\xb5ޖ\x1cY\x8e\xb9\x80\x10\xfdD\x06c\xbb\xd4V1\xa4X\x8b,\xbb\xb1k.\xe5:c\xb8\x16V\u009d\xc3[!\xb8\xabN\x19C\xa6u\xb94\xef\x1d\xac\xeb\xaf,C\xb5\xc7˹\x9fՙ\x15L\x11WS\xd8>\x85\xfe\xaa:DI\xe2\xff\xaa\x8fr\xa9z\xee\xaaFt\x8a\x11\x9dԈ\xe0\x87\x15|\xf5\xff5\x12\x0e\x8a\xf1\x8b\xfc^\x8e}\x97\xef-\x94[\x1aP?j\x8bs\xb8\xb2Ο)\xea_C\xcd\x1f\xba4\x9e\xa3j\xe1ͤȪ\x9d\xc5g\u007f>9u\xe5ߕ\x06_\xe8ۙ\xe9\xf8¹9\x9e\n{\xed\U000a2e59\x9f\byk\x9a\x1e$\xa69y\x95Z\xb5\x1cŠ\xb4\xc6 hޟ?f^\xbcX\xbdG\xcaQ{7\xcf)\xf7\xf0\xdb\xef\xcd\x1c\x15\xcdv\xc1\x91\x8d\xff\x04\x00\x00\xff\xffJ\xbeWz\r\n\x00\x00"), -} - -var CRDs = crds() - -func crds() []*apiextv1beta1.CustomResourceDefinition { - apiextinstall.Install(scheme.Scheme) - decode := scheme.Codecs.UniversalDeserializer().Decode - var objs []*apiextv1beta1.CustomResourceDefinition - for _, crd := range rawCRDs { - gzr, err := gzip.NewReader(bytes.NewReader(crd)) - if err != nil { - panic(err) - } - bytes, err := ioutil.ReadAll(gzr) - if err != nil { - panic(err) - } - gzr.Close() - - obj, _, err := decode(bytes, nil, nil) - if err != nil { - panic(err) - } - objs = append(objs, obj.(*apiextv1beta1.CustomResourceDefinition)) - } - return objs -} diff --git a/config/crd/v1beta1/crds/doc.go b/config/crd/v1beta1/crds/doc.go deleted file mode 100644 index 16e695f91..000000000 --- a/config/crd/v1beta1/crds/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Package crds embeds the controller-tools generated CRD manifests -package crds - -//go:generate go run ../../../../hack/crd-gen/v1beta1/main.go diff --git a/hack/build-image/Dockerfile b/hack/build-image/Dockerfile index 395822ffc..39e53ec30 100644 --- a/hack/build-image/Dockerfile +++ b/hack/build-image/Dockerfile @@ -24,17 +24,19 @@ ENV GOPROXY=${GOPROXY} RUN mkdir -p /go/src/k8s.io WORKDIR /go/src/k8s.io RUN git config --global advice.detachedHead false -RUN git clone -b v0.18.4 https://github.com/kubernetes/code-generator +RUN git clone -b v0.22.2 https://github.com/kubernetes/code-generator -RUN wget --quiet https://github.com/kubernetes-sigs/kubebuilder/releases/download/v2.3.1/kubebuilder_2.3.1_linux_amd64.tar.gz && \ - tar -zxvf kubebuilder_2.3.1_linux_amd64.tar.gz && \ - mv kubebuilder_2.3.1_linux_amd64 /usr/local/kubebuilder && \ - chmod +x /usr/local/kubebuilder && \ - export PATH=$PATH:/usr/local/kubebuilder/bin && \ - rm kubebuilder_2.3.1_linux_amd64.tar.gz +# kubebuilder test bundle is separated from kubebuilder. Need to setup it for CI test. +RUN curl -sSLo envtest-bins.tar.gz https://go.kubebuilder.io/test-tools/1.22.1/linux/amd64 && \ + mkdir /usr/local/kubebuilder && \ + tar -C /usr/local/kubebuilder --strip-components=1 -zvxf envtest-bins.tar.gz + +RUN wget --quiet https://github.com/kubernetes-sigs/kubebuilder/releases/download/v3.2.0/kubebuilder_linux_amd64 && \ + mv kubebuilder_linux_amd64 /usr/local/kubebuilder/bin/kubebuilder && \ + chmod +x /usr/local/kubebuilder/bin/kubebuilder # get controller-tools -RUN go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.3.0 +RUN go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.7.0 # get goimports (the revision is pinned so we don't indiscriminately update, but the particular commit # is not important) diff --git a/hack/crd-gen/v1beta1/main.go b/hack/crd-gen/v1beta1/main.go deleted file mode 100644 index 2f204a0d2..000000000 --- a/hack/crd-gen/v1beta1/main.go +++ /dev/null @@ -1,136 +0,0 @@ -/* -Copyright the Velero contributors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -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. -*/ - -// This code embeds the CRD manifests in config/crd/v1beta1/bases in -// config/crd/v1beta1/crds/crds.go. - -package main - -import ( - "bytes" - "compress/gzip" - "fmt" - "io" - "io/ioutil" - "log" - "os" - "text/template" -) - -// This is relative to config/crd/crds -const goHeaderFile = "../../../../hack/boilerplate.go.txt" - -const tpl = `{{.GoHeader}} -// Code generated by crds_generate.go; DO NOT EDIT. - -package crds - -import ( - "bytes" - "compress/gzip" - "io/ioutil" - - apiextinstall "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install" - apiextv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" - "k8s.io/client-go/kubernetes/scheme" -) - -var rawCRDs = [][]byte{ -{{- range .RawCRDs }} - []byte({{ . }}), -{{- end }} -} - -var CRDs = crds() - -func crds() []*apiextv1beta1.CustomResourceDefinition { - apiextinstall.Install(scheme.Scheme) - decode := scheme.Codecs.UniversalDeserializer().Decode - var objs []*apiextv1beta1.CustomResourceDefinition - for _, crd := range rawCRDs { - gzr, err := gzip.NewReader(bytes.NewReader(crd)) - if err != nil { - panic(err) - } - bytes, err := ioutil.ReadAll(gzr) - if err != nil { - panic(err) - } - gzr.Close() - - obj, _, err := decode(bytes, nil, nil) - if err != nil { - panic(err) - } - objs = append(objs, obj.(*apiextv1beta1.CustomResourceDefinition)) - } - return objs -} -` - -type templateData struct { - GoHeader string - RawCRDs []string -} - -func main() { - headerBytes, err := ioutil.ReadFile(goHeaderFile) - if err != nil { - log.Fatalln(err) - } - - data := templateData{ - GoHeader: string(headerBytes), - } - - // This is relative to config/crd/crds - manifests, err := ioutil.ReadDir("../bases") - if err != nil { - log.Fatalln(err) - } - - for _, crd := range manifests { - file, err := os.Open("../bases/" + crd.Name()) - if err != nil { - log.Fatalln(err) - } - - // gzip compress manifest - var buf bytes.Buffer - gzw := gzip.NewWriter(&buf) - if _, err := io.Copy(gzw, file); err != nil { - log.Fatalln(err) - } - file.Close() - gzw.Close() - - data.RawCRDs = append(data.RawCRDs, fmt.Sprintf("%q", buf.Bytes())) - } - - t, err := template.New("crd").Parse(tpl) - if err != nil { - log.Fatalln(err) - } - - out, err := os.Create("crds.go") - if err != nil { - log.Fatalln(err) - } - - if err := t.Execute(out, data); err != nil { - log.Fatalln(err) - } -} diff --git a/hack/update-generated-crd-code.sh b/hack/update-generated-crd-code.sh index 35bd93927..e3355be48 100755 --- a/hack/update-generated-crd-code.sh +++ b/hack/update-generated-crd-code.sh @@ -44,24 +44,21 @@ ${GOPATH}/src/k8s.io/code-generator/generate-groups.sh \ --output-base ../../.. \ $@ -# Generate both apiextensions.k8s.io/v1beta1 and apiextensions.k8s.io/v1 -for version in v1beta1 v1 -do - # Generate manifests e.g. CRD, RBAC etc. - controller-gen \ - crd:crdVersions=$version,preserveUnknownFields=false,trivialVersions=true \ - paths=./pkg/apis/velero/v1/... \ - paths=./pkg/controller/... \ - output:crd:artifacts:config=config/crd/$version/bases +# Generate apiextensions.k8s.io/v1 +# Generate manifests e.g. CRD, RBAC etc. +controller-gen \ + crd:crdVersions=v1\ + paths=./pkg/apis/velero/v1/... \ + paths=./pkg/controller/... \ + output:crd:artifacts:config=config/crd/v1/bases - # this is a super hacky workaround for https://github.com/kubernetes/kubernetes/issues/91395 - # which a result of fixing the validation on CRD objects. The validation ensures the fields that are list map keys, are either marked - # as required or have default values to ensure merging of list map items work as expected. - # With "containerPort" and "protocol" being considered as x-kubernetes-list-map-keys in the container ports, and "protocol" was not - # a required field, the CRD would fail validation with errors similar to the one reported in https://github.com/kubernetes/kubernetes/issues/91395. - # once controller-gen (above) is able to generate CRDs with `protocol` as a required field, this hack can be removed. - kubectl patch -f config/crd/$version/bases/velero.io_restores.yaml -p "$(cat hack/restore-crd-patch-$version.json)" --type=json --local=true -o yaml > /tmp/velero.io_restores-yaml.patched - mv /tmp/velero.io_restores-yaml.patched config/crd/$version/bases/velero.io_restores.yaml +# this is a super hacky workaround for https://github.com/kubernetes/kubernetes/issues/91395 +# which a result of fixing the validation on CRD objects. The validation ensures the fields that are list map keys, are either marked +# as required or have default values to ensure merging of list map items work as expected. +# With "containerPort" and "protocol" being considered as x-kubernetes-list-map-keys in the container ports, and "protocol" was not +# a required field, the CRD would fail validation with errors similar to the one reported in https://github.com/kubernetes/kubernetes/issues/91395. +# once controller-gen (above) is able to generate CRDs with `protocol` as a required field, this hack can be removed. +kubectl patch -f config/crd/v1/bases/velero.io_restores.yaml -p "$(cat hack/restore-crd-patch-v1.json)" --type=json --local=true -o yaml > /tmp/velero.io_restores-yaml.patched +mv /tmp/velero.io_restores-yaml.patched config/crd/v1/bases/velero.io_restores.yaml - go generate ./config/crd/$version/crds -done +go generate ./config/crd/v1/crds diff --git a/hack/verify-generated-crd-code.sh b/hack/verify-generated-crd-code.sh index 90d1f04b9..ef7490c83 100755 --- a/hack/verify-generated-crd-code.sh +++ b/hack/verify-generated-crd-code.sh @@ -19,14 +19,11 @@ HACK_DIR=$(dirname "${BASH_SOURCE}") ${HACK_DIR}/update-generated-crd-code.sh --verify-only # ensure no changes to generated CRDs -for version in v1beta1 v1 -do - if ! git diff --exit-code config/crd/$version/crds/crds.go >/dev/null; then - # revert changes to state before running CRD generation to stay consistent - # with code-generator `--verify-only` option which discards generated changes - git checkout config/crd +if ! git diff --exit-code config/crd/v1/crds/crds.go >/dev/null; then + # revert changes to state before running CRD generation to stay consistent + # with code-generator `--verify-only` option which discards generated changes + git checkout config/crd - echo "CRD verification - failed! Generated CRDs are out-of-date, please run 'make update' and 'git add' the generated file(s)." - exit 1 - fi -done + echo "CRD verification - failed! Generated CRDs are out-of-date, please run 'make update' and 'git add' the generated file(s)." + exit 1 +fi diff --git a/pkg/generated/clientset/versioned/fake/clientset_generated.go b/pkg/generated/clientset/versioned/fake/clientset_generated.go index 2b780e794..971ea5491 100644 --- a/pkg/generated/clientset/versioned/fake/clientset_generated.go +++ b/pkg/generated/clientset/versioned/fake/clientset_generated.go @@ -74,7 +74,10 @@ func (c *Clientset) Tracker() testing.ObjectTracker { return c.tracker } -var _ clientset.Interface = &Clientset{} +var ( + _ clientset.Interface = &Clientset{} + _ testing.FakeClient = &Clientset{} +) // VeleroV1 retrieves the VeleroV1Client func (c *Clientset) VeleroV1() velerov1.VeleroV1Interface { diff --git a/pkg/generated/clientset/versioned/fake/register.go b/pkg/generated/clientset/versioned/fake/register.go index 0ee7ffaba..3482b9c35 100644 --- a/pkg/generated/clientset/versioned/fake/register.go +++ b/pkg/generated/clientset/versioned/fake/register.go @@ -29,7 +29,7 @@ import ( var scheme = runtime.NewScheme() var codecs = serializer.NewCodecFactory(scheme) -var parameterCodec = runtime.NewParameterCodec(scheme) + var localSchemeBuilder = runtime.SchemeBuilder{ velerov1.AddToScheme, } diff --git a/pkg/generated/listers/velero/v1/backup.go b/pkg/generated/listers/velero/v1/backup.go index f61b1bab7..fa3f5cb6f 100644 --- a/pkg/generated/listers/velero/v1/backup.go +++ b/pkg/generated/listers/velero/v1/backup.go @@ -26,8 +26,10 @@ import ( ) // BackupLister helps list Backups. +// All objects returned here must be treated as read-only. type BackupLister interface { // List lists all Backups in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.Backup, err error) // Backups returns an object that can list and get Backups. Backups(namespace string) BackupNamespaceLister @@ -58,10 +60,13 @@ func (s *backupLister) Backups(namespace string) BackupNamespaceLister { } // BackupNamespaceLister helps list and get Backups. +// All objects returned here must be treated as read-only. type BackupNamespaceLister interface { // List lists all Backups in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.Backup, err error) // Get retrieves the Backup from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.Backup, error) BackupNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/backupstoragelocation.go b/pkg/generated/listers/velero/v1/backupstoragelocation.go index 8c6c140bd..74daf16dc 100644 --- a/pkg/generated/listers/velero/v1/backupstoragelocation.go +++ b/pkg/generated/listers/velero/v1/backupstoragelocation.go @@ -26,8 +26,10 @@ import ( ) // BackupStorageLocationLister helps list BackupStorageLocations. +// All objects returned here must be treated as read-only. type BackupStorageLocationLister interface { // List lists all BackupStorageLocations in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.BackupStorageLocation, err error) // BackupStorageLocations returns an object that can list and get BackupStorageLocations. BackupStorageLocations(namespace string) BackupStorageLocationNamespaceLister @@ -58,10 +60,13 @@ func (s *backupStorageLocationLister) BackupStorageLocations(namespace string) B } // BackupStorageLocationNamespaceLister helps list and get BackupStorageLocations. +// All objects returned here must be treated as read-only. type BackupStorageLocationNamespaceLister interface { // List lists all BackupStorageLocations in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.BackupStorageLocation, err error) // Get retrieves the BackupStorageLocation from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.BackupStorageLocation, error) BackupStorageLocationNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/deletebackuprequest.go b/pkg/generated/listers/velero/v1/deletebackuprequest.go index 45d270213..954e9aaf8 100644 --- a/pkg/generated/listers/velero/v1/deletebackuprequest.go +++ b/pkg/generated/listers/velero/v1/deletebackuprequest.go @@ -26,8 +26,10 @@ import ( ) // DeleteBackupRequestLister helps list DeleteBackupRequests. +// All objects returned here must be treated as read-only. type DeleteBackupRequestLister interface { // List lists all DeleteBackupRequests in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.DeleteBackupRequest, err error) // DeleteBackupRequests returns an object that can list and get DeleteBackupRequests. DeleteBackupRequests(namespace string) DeleteBackupRequestNamespaceLister @@ -58,10 +60,13 @@ func (s *deleteBackupRequestLister) DeleteBackupRequests(namespace string) Delet } // DeleteBackupRequestNamespaceLister helps list and get DeleteBackupRequests. +// All objects returned here must be treated as read-only. type DeleteBackupRequestNamespaceLister interface { // List lists all DeleteBackupRequests in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.DeleteBackupRequest, err error) // Get retrieves the DeleteBackupRequest from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.DeleteBackupRequest, error) DeleteBackupRequestNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/downloadrequest.go b/pkg/generated/listers/velero/v1/downloadrequest.go index 206c42e25..6552cf02d 100644 --- a/pkg/generated/listers/velero/v1/downloadrequest.go +++ b/pkg/generated/listers/velero/v1/downloadrequest.go @@ -26,8 +26,10 @@ import ( ) // DownloadRequestLister helps list DownloadRequests. +// All objects returned here must be treated as read-only. type DownloadRequestLister interface { // List lists all DownloadRequests in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.DownloadRequest, err error) // DownloadRequests returns an object that can list and get DownloadRequests. DownloadRequests(namespace string) DownloadRequestNamespaceLister @@ -58,10 +60,13 @@ func (s *downloadRequestLister) DownloadRequests(namespace string) DownloadReque } // DownloadRequestNamespaceLister helps list and get DownloadRequests. +// All objects returned here must be treated as read-only. type DownloadRequestNamespaceLister interface { // List lists all DownloadRequests in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.DownloadRequest, err error) // Get retrieves the DownloadRequest from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.DownloadRequest, error) DownloadRequestNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/podvolumebackup.go b/pkg/generated/listers/velero/v1/podvolumebackup.go index f92949685..08ed20d6f 100644 --- a/pkg/generated/listers/velero/v1/podvolumebackup.go +++ b/pkg/generated/listers/velero/v1/podvolumebackup.go @@ -26,8 +26,10 @@ import ( ) // PodVolumeBackupLister helps list PodVolumeBackups. +// All objects returned here must be treated as read-only. type PodVolumeBackupLister interface { // List lists all PodVolumeBackups in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.PodVolumeBackup, err error) // PodVolumeBackups returns an object that can list and get PodVolumeBackups. PodVolumeBackups(namespace string) PodVolumeBackupNamespaceLister @@ -58,10 +60,13 @@ func (s *podVolumeBackupLister) PodVolumeBackups(namespace string) PodVolumeBack } // PodVolumeBackupNamespaceLister helps list and get PodVolumeBackups. +// All objects returned here must be treated as read-only. type PodVolumeBackupNamespaceLister interface { // List lists all PodVolumeBackups in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.PodVolumeBackup, err error) // Get retrieves the PodVolumeBackup from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.PodVolumeBackup, error) PodVolumeBackupNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/podvolumerestore.go b/pkg/generated/listers/velero/v1/podvolumerestore.go index c17dd3857..93f96b24b 100644 --- a/pkg/generated/listers/velero/v1/podvolumerestore.go +++ b/pkg/generated/listers/velero/v1/podvolumerestore.go @@ -26,8 +26,10 @@ import ( ) // PodVolumeRestoreLister helps list PodVolumeRestores. +// All objects returned here must be treated as read-only. type PodVolumeRestoreLister interface { // List lists all PodVolumeRestores in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.PodVolumeRestore, err error) // PodVolumeRestores returns an object that can list and get PodVolumeRestores. PodVolumeRestores(namespace string) PodVolumeRestoreNamespaceLister @@ -58,10 +60,13 @@ func (s *podVolumeRestoreLister) PodVolumeRestores(namespace string) PodVolumeRe } // PodVolumeRestoreNamespaceLister helps list and get PodVolumeRestores. +// All objects returned here must be treated as read-only. type PodVolumeRestoreNamespaceLister interface { // List lists all PodVolumeRestores in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.PodVolumeRestore, err error) // Get retrieves the PodVolumeRestore from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.PodVolumeRestore, error) PodVolumeRestoreNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/resticrepository.go b/pkg/generated/listers/velero/v1/resticrepository.go index 67a8168dc..96bcfdc7c 100644 --- a/pkg/generated/listers/velero/v1/resticrepository.go +++ b/pkg/generated/listers/velero/v1/resticrepository.go @@ -26,8 +26,10 @@ import ( ) // ResticRepositoryLister helps list ResticRepositories. +// All objects returned here must be treated as read-only. type ResticRepositoryLister interface { // List lists all ResticRepositories in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.ResticRepository, err error) // ResticRepositories returns an object that can list and get ResticRepositories. ResticRepositories(namespace string) ResticRepositoryNamespaceLister @@ -58,10 +60,13 @@ func (s *resticRepositoryLister) ResticRepositories(namespace string) ResticRepo } // ResticRepositoryNamespaceLister helps list and get ResticRepositories. +// All objects returned here must be treated as read-only. type ResticRepositoryNamespaceLister interface { // List lists all ResticRepositories in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.ResticRepository, err error) // Get retrieves the ResticRepository from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.ResticRepository, error) ResticRepositoryNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/restore.go b/pkg/generated/listers/velero/v1/restore.go index 9c1360554..de0b89ce8 100644 --- a/pkg/generated/listers/velero/v1/restore.go +++ b/pkg/generated/listers/velero/v1/restore.go @@ -26,8 +26,10 @@ import ( ) // RestoreLister helps list Restores. +// All objects returned here must be treated as read-only. type RestoreLister interface { // List lists all Restores in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.Restore, err error) // Restores returns an object that can list and get Restores. Restores(namespace string) RestoreNamespaceLister @@ -58,10 +60,13 @@ func (s *restoreLister) Restores(namespace string) RestoreNamespaceLister { } // RestoreNamespaceLister helps list and get Restores. +// All objects returned here must be treated as read-only. type RestoreNamespaceLister interface { // List lists all Restores in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.Restore, err error) // Get retrieves the Restore from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.Restore, error) RestoreNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/schedule.go b/pkg/generated/listers/velero/v1/schedule.go index b1431af94..90a262a46 100644 --- a/pkg/generated/listers/velero/v1/schedule.go +++ b/pkg/generated/listers/velero/v1/schedule.go @@ -26,8 +26,10 @@ import ( ) // ScheduleLister helps list Schedules. +// All objects returned here must be treated as read-only. type ScheduleLister interface { // List lists all Schedules in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.Schedule, err error) // Schedules returns an object that can list and get Schedules. Schedules(namespace string) ScheduleNamespaceLister @@ -58,10 +60,13 @@ func (s *scheduleLister) Schedules(namespace string) ScheduleNamespaceLister { } // ScheduleNamespaceLister helps list and get Schedules. +// All objects returned here must be treated as read-only. type ScheduleNamespaceLister interface { // List lists all Schedules in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.Schedule, err error) // Get retrieves the Schedule from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.Schedule, error) ScheduleNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/serverstatusrequest.go b/pkg/generated/listers/velero/v1/serverstatusrequest.go index ae35c2d6c..c03b60c48 100644 --- a/pkg/generated/listers/velero/v1/serverstatusrequest.go +++ b/pkg/generated/listers/velero/v1/serverstatusrequest.go @@ -26,8 +26,10 @@ import ( ) // ServerStatusRequestLister helps list ServerStatusRequests. +// All objects returned here must be treated as read-only. type ServerStatusRequestLister interface { // List lists all ServerStatusRequests in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.ServerStatusRequest, err error) // ServerStatusRequests returns an object that can list and get ServerStatusRequests. ServerStatusRequests(namespace string) ServerStatusRequestNamespaceLister @@ -58,10 +60,13 @@ func (s *serverStatusRequestLister) ServerStatusRequests(namespace string) Serve } // ServerStatusRequestNamespaceLister helps list and get ServerStatusRequests. +// All objects returned here must be treated as read-only. type ServerStatusRequestNamespaceLister interface { // List lists all ServerStatusRequests in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.ServerStatusRequest, err error) // Get retrieves the ServerStatusRequest from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.ServerStatusRequest, error) ServerStatusRequestNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/volumesnapshotlocation.go b/pkg/generated/listers/velero/v1/volumesnapshotlocation.go index b5ff7fe53..8c8aa432f 100644 --- a/pkg/generated/listers/velero/v1/volumesnapshotlocation.go +++ b/pkg/generated/listers/velero/v1/volumesnapshotlocation.go @@ -26,8 +26,10 @@ import ( ) // VolumeSnapshotLocationLister helps list VolumeSnapshotLocations. +// All objects returned here must be treated as read-only. type VolumeSnapshotLocationLister interface { // List lists all VolumeSnapshotLocations in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.VolumeSnapshotLocation, err error) // VolumeSnapshotLocations returns an object that can list and get VolumeSnapshotLocations. VolumeSnapshotLocations(namespace string) VolumeSnapshotLocationNamespaceLister @@ -58,10 +60,13 @@ func (s *volumeSnapshotLocationLister) VolumeSnapshotLocations(namespace string) } // VolumeSnapshotLocationNamespaceLister helps list and get VolumeSnapshotLocations. +// All objects returned here must be treated as read-only. type VolumeSnapshotLocationNamespaceLister interface { // List lists all VolumeSnapshotLocations in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.VolumeSnapshotLocation, err error) // Get retrieves the VolumeSnapshotLocation from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.VolumeSnapshotLocation, error) VolumeSnapshotLocationNamespaceListerExpansion } diff --git a/pkg/install/resources.go b/pkg/install/resources.go index dbe19fba9..40ec711f3 100644 --- a/pkg/install/resources.go +++ b/pkg/install/resources.go @@ -27,7 +27,6 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1crds "github.com/vmware-tanzu/velero/config/crd/v1/crds" - v1beta1crds "github.com/vmware-tanzu/velero/config/crd/v1beta1/crds" velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" ) @@ -226,11 +225,6 @@ func AllCRDs(perferredAPIVersion string) *unstructured.UnstructuredList { resources.SetGroupVersionKind(schema.GroupVersionKind{Group: "", Version: "v1", Kind: "List"}) switch perferredAPIVersion { - case "v1beta1": - for _, crd := range v1beta1crds.CRDs { - crd.SetLabels(Labels()) - appendUnstructured(resources, crd) - } case "v1": for _, crd := range v1crds.CRDs { crd.SetLabels(Labels()) From 47aa093a1623e1e05b5e2330556fc53e4d347f83 Mon Sep 17 00:00:00 2001 From: Aditya Sharma Date: Tue, 30 Nov 2021 08:27:29 -0800 Subject: [PATCH 059/136] Build for darwin_arm64 (#4409) Signed-off-by: Aditya Sharma --- .goreleaser.yml | 4 +--- Makefile | 8 ++++---- changelogs/unreleased/4409-epk | 1 + 3 files changed, 6 insertions(+), 7 deletions(-) create mode 100644 changelogs/unreleased/4409-epk diff --git a/.goreleaser.yml b/.goreleaser.yml index fb6ee34b8..e7fa81f58 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -27,11 +27,9 @@ builds: - arm64 - ppc64le ignore: - # don't build arm/arm64 for darwin or windows + # don't build arm for darwin and arm/arm64 for windows - goos: darwin goarch: arm - - goos: darwin - goarch: arm64 - goos: darwin goarch: ppc64le - goos: windows diff --git a/Makefile b/Makefile index 0a8e4ed31..c17e24147 100644 --- a/Makefile +++ b/Makefile @@ -84,7 +84,7 @@ endef # The version of restic binary to be downloaded RESTIC_VERSION ?= 0.12.1 -CLI_PLATFORMS ?= linux-amd64 linux-arm linux-arm64 darwin-amd64 windows-amd64 linux-ppc64le +CLI_PLATFORMS ?= linux-amd64 linux-arm linux-arm64 darwin-amd64 darwin-arm64 windows-amd64 linux-ppc64le BUILDX_PLATFORMS ?= $(subst -,/,$(ARCH)) BUILDX_OUTPUT_TYPE ?= docker @@ -338,9 +338,9 @@ changelog: # PUBLISH=false \ # make release # -# To run the release, which will publish a *DRAFT* GitHub release in github.com/vmware-tanzu/velero +# To run the release, which will publish a *DRAFT* GitHub release in github.com/vmware-tanzu/velero # (you still need to review/publish the GitHub release manually): -# GITHUB_TOKEN=your-github-token \ +# GITHUB_TOKEN=your-github-token \ # RELEASE_NOTES_FILE=changelogs/CHANGELOG-1.2.md \ # PUBLISH=true \ # make release @@ -359,7 +359,7 @@ serve-docs: build-image-hugo -it -p 1313:1313 \ $(HUGO_IMAGE) \ hugo server --bind=0.0.0.0 --enableGitInfo=false -# gen-docs generates a new versioned docs directory under site/content/docs. +# gen-docs generates a new versioned docs directory under site/content/docs. # Please read the documentation in the script for instructions on how to use it. gen-docs: @hack/release-tools/gen-docs.sh diff --git a/changelogs/unreleased/4409-epk b/changelogs/unreleased/4409-epk new file mode 100644 index 000000000..be9792451 --- /dev/null +++ b/changelogs/unreleased/4409-epk @@ -0,0 +1 @@ +Build for darwin-arm64 From 2a7d4cec6ed1ed2ac494eb6038927ebd82799504 Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Wed, 24 Nov 2021 23:55:20 +0800 Subject: [PATCH 060/136] Add restoreactionitem plugin to handle admission webhook configurations This commit adds a restore action item plugin to reset invalid value of "sideEffects" in resource of mutatingwebhookconfiguration and validating webhookconfiguration. To fix the problem the "sideEffects" is illegal for resource migrated from v1beta1. fixes #3516 Signed-off-by: Daniel Jiang --- changelogs/unreleased/4397-reasonerjt | 1 + pkg/cmd/server/plugin/plugin.go | 5 + pkg/restore/admissionwebhook_config_action.go | 89 ++++++++ .../admissionwebhook_config_action_test.go | 199 ++++++++++++++++++ pkg/restore/job_action.go | 2 +- pkg/restore/merge_service_account.go | 3 +- 6 files changed, 297 insertions(+), 2 deletions(-) create mode 100644 changelogs/unreleased/4397-reasonerjt create mode 100644 pkg/restore/admissionwebhook_config_action.go create mode 100644 pkg/restore/admissionwebhook_config_action_test.go diff --git a/changelogs/unreleased/4397-reasonerjt b/changelogs/unreleased/4397-reasonerjt new file mode 100644 index 000000000..243350200 --- /dev/null +++ b/changelogs/unreleased/4397-reasonerjt @@ -0,0 +1 @@ +Add restoreactionitem plugin to handle admission webhook configurations \ No newline at end of file diff --git a/pkg/cmd/server/plugin/plugin.go b/pkg/cmd/server/plugin/plugin.go index 1a79b6dd6..507200266 100644 --- a/pkg/cmd/server/plugin/plugin.go +++ b/pkg/cmd/server/plugin/plugin.go @@ -55,6 +55,7 @@ func NewCommand(f client.Factory) *cobra.Command { RegisterRestoreItemAction("velero.io/crd-preserve-fields", newCRDV1PreserveUnknownFieldsItemAction). RegisterRestoreItemAction("velero.io/change-pvc-node-selector", newChangePVCNodeSelectorItemAction(f)). RegisterRestoreItemAction("velero.io/apiservice", newAPIServiceRestoreItemAction). + RegisterRestoreItemAction("velero.io/admission-webhook-configuration", newAdmissionWebhookConfigurationAction). Serve() }, } @@ -202,3 +203,7 @@ func newChangePVCNodeSelectorItemAction(f client.Factory) veleroplugin.HandlerIn func newAPIServiceRestoreItemAction(logger logrus.FieldLogger) (interface{}, error) { return restore.NewAPIServiceAction(logger), nil } + +func newAdmissionWebhookConfigurationAction(logger logrus.FieldLogger) (interface{}, error) { + return restore.NewAdmissionWebhookConfigurationAction(logger), nil +} diff --git a/pkg/restore/admissionwebhook_config_action.go b/pkg/restore/admissionwebhook_config_action.go new file mode 100644 index 000000000..8fd5c1693 --- /dev/null +++ b/pkg/restore/admissionwebhook_config_action.go @@ -0,0 +1,89 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package restore + +import ( + "github.com/pkg/errors" + "github.com/sirupsen/logrus" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + + "github.com/vmware-tanzu/velero/pkg/plugin/velero" +) + +// AdmissionWebhookConfigurationAction is a RestoreItemAction plugin applicable to mutatingwebhookconfiguration and +// validatingwebhookconfiguration to reset the invalid value for "sideEffects" of the webhooks. +// More background please refer to https://github.com/vmware-tanzu/velero/issues/3516 +type AdmissionWebhookConfigurationAction struct { + logger logrus.FieldLogger +} + +// NewAdmissionWebhookConfigurationAction creates a new instance of AdmissionWebhookConfigurationAction +func NewAdmissionWebhookConfigurationAction(logger logrus.FieldLogger) *AdmissionWebhookConfigurationAction { + return &AdmissionWebhookConfigurationAction{logger: logger} +} + +// AppliesTo implements the RestoreItemAction plugin interface method. +func (a *AdmissionWebhookConfigurationAction) AppliesTo() (velero.ResourceSelector, error) { + return velero.ResourceSelector{ + IncludedResources: []string{"mutatingwebhookconfigurations", "validatingwebhookconfigurations"}, + }, nil +} + +// Execute will reset the value of "sideEffects" attribute of each item in the "webhooks" list to "None" if they are invalid values for +// v1, such as "Unknown" or "Some" +func (a *AdmissionWebhookConfigurationAction) Execute(input *velero.RestoreItemActionExecuteInput) (*velero.RestoreItemActionExecuteOutput, error) { + a.logger.Info("Executing ChangeStorageClassAction") + defer a.logger.Info("Done executing ChangeStorageClassAction") + + item := input.Item + apiVersion, _, err := unstructured.NestedString(item.UnstructuredContent(), "apiVersion") + if err != nil { + return nil, errors.Wrap(err, "failed to get the apiVersion from input item") + } + name, _, _ := unstructured.NestedString(item.UnstructuredContent(), "metadata", "name") + logger := a.logger.WithField("resource_name", name) + if apiVersion != "admissionregistration.k8s.io/v1" { + logger.Infof("unable to handle api version: %s, skip", apiVersion) + return velero.NewRestoreItemActionExecuteOutput(input.Item), nil + } + webhooks, ok, err := unstructured.NestedSlice(item.UnstructuredContent(), "webhooks") + if err != nil { + return nil, errors.Wrap(err, "failed to get webhooks slice from input item") + } + if !ok { + logger.Info("webhooks is not set, skip") + return velero.NewRestoreItemActionExecuteOutput(input.Item), nil + } + newWebhooks := make([]interface{}, 0) + for i, entry := range webhooks { + logger2 := logger.WithField("index", i) + obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&entry) + if err != nil { + logger2.Errorf("failed to convert the webhook entry, error: %v, it will be dropped", err) + continue + } + s, _, _ := unstructured.NestedString(obj, "sideEffects") + if s != "None" && s != "NoneOnDryRun" { + logger2.Infof("reset the invalid sideEffects value '%s' to 'None'", s) + obj["sideEffects"] = "None" + } + newWebhooks = append(newWebhooks, obj) + } + item.UnstructuredContent()["webhooks"] = newWebhooks + return velero.NewRestoreItemActionExecuteOutput(item), nil +} diff --git a/pkg/restore/admissionwebhook_config_action_test.go b/pkg/restore/admissionwebhook_config_action_test.go new file mode 100644 index 000000000..c6c31d221 --- /dev/null +++ b/pkg/restore/admissionwebhook_config_action_test.go @@ -0,0 +1,199 @@ +package restore + +import ( + "encoding/json" + "testing" + + "github.com/stretchr/testify/assert" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + + "github.com/vmware-tanzu/velero/pkg/plugin/velero" + velerotest "github.com/vmware-tanzu/velero/pkg/test" +) + +func TestNewAdmissionWebhookConfigurationActionExecute(t *testing.T) { + action := NewAdmissionWebhookConfigurationAction(velerotest.NewLogger()) + cases := []struct { + name string + itemJSON string + wantErr bool + NoneSideEffectsIndex []int // the indexes with sideEffects that arereset to None + NotNoneSideEffectsIndex []int // the indexes with sideEffects that are not reset to None + }{ + { + name: "v1 mutatingwebhookconfiguration with sideEffects as Unknown", + itemJSON: `{ + "apiVersion": "admissionregistration.k8s.io/v1", + "kind": "MutatingWebhookConfiguration", + "metadata": { + "name": "my-test-mutating" + }, + "webhooks": [ + { + "clientConfig": { + "url": "https://mytest.org" + }, + "rules": [ + { + "apiGroups": [ + "" + ], + "apiVersions": [ + "v1" + ], + "operations": [ + "CREATE" + ], + "resources": [ + "pods" + ], + "scope": "Namespaced" + } + ], + "sideEffects": "Unknown" + } + ] + }`, + wantErr: false, + NoneSideEffectsIndex: []int{0}, + }, + { + name: "v1 validatingwebhookconfiguration with sideEffects as Some", + itemJSON: `{ + "apiVersion": "admissionregistration.k8s.io/v1", + "kind": "ValidatingWebhookConfiguration", + "metadata": { + "name": "my-test-validating" + }, + "webhooks": [ + { + "clientConfig": { + "url": "https://mytest.org" + }, + "rules": [ + { + "apiGroups": [ + "" + ], + "apiVersions": [ + "v1" + ], + "operations": [ + "CREATE" + ], + "resources": [ + "pods" + ], + "scope": "Namespaced" + } + ], + "sideEffects": "Some" + } + ] + }`, + wantErr: false, + NoneSideEffectsIndex: []int{0}, + }, + { + name: "v1beta1 validatingwebhookconfiguration with sideEffects as Some, nothing should change", + itemJSON: `{ + "apiVersion": "admissionregistration.k8s.io/v1beta1", + "kind": "ValidatingWebhookConfiguration", + "metadata": { + "name": "my-test-validating" + }, + "webhooks": [ + { + "clientConfig": { + "url": "https://mytest.org" + }, + "rules": [ + { + "apiGroups": [ + "" + ], + "apiVersions": [ + "v1" + ], + "operations": [ + "CREATE" + ], + "resources": [ + "pods" + ], + "scope": "Namespaced" + } + ], + "sideEffects": "Some" + } + ] + }`, + wantErr: false, + NotNoneSideEffectsIndex: []int{0}, + }, + { + name: "v1 validatingwebhookconfiguration with multiple invalid sideEffects", + itemJSON: `{ + "apiVersion": "admissionregistration.k8s.io/v1", + "kind": "ValidatingWebhookConfiguration", + "metadata": { + "name": "my-test-validating" + }, + "webhooks": [ + { + "clientConfig": { + "url": "https://mytest.org" + }, + "sideEffects": "Some" + }, + { + "clientConfig": { + "url": "https://mytest2.org" + }, + "sideEffects": "Some" + } + ] + }`, + wantErr: false, + NoneSideEffectsIndex: []int{0, 1}, + }, + } + for _, tt := range cases { + t.Run(tt.name, func(t *testing.T) { + o := map[string]interface{}{} + json.Unmarshal([]byte(tt.itemJSON), &o) + input := &velero.RestoreItemActionExecuteInput{ + Item: &unstructured.Unstructured{ + Object: o, + }, + } + output, err := action.Execute(input) + if tt.wantErr { + assert.NotNil(t, err) + } else { + assert.Nil(t, err) + } + if tt.NoneSideEffectsIndex != nil { + wb, _, err := unstructured.NestedSlice(output.UpdatedItem.UnstructuredContent(), "webhooks") + assert.Nil(t, err) + for _, i := range tt.NoneSideEffectsIndex { + it, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&wb[i]) + assert.Nil(t, err) + s := it["sideEffects"].(string) + assert.Equal(t, "None", s) + } + } + if tt.NotNoneSideEffectsIndex != nil { + wb, _, err := unstructured.NestedSlice(output.UpdatedItem.UnstructuredContent(), "webhooks") + assert.Nil(t, err) + for _, i := range tt.NotNoneSideEffectsIndex { + it, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&wb[i]) + assert.Nil(t, err) + s := it["sideEffects"].(string) + assert.NotEqual(t, "None", s) + } + } + }) + } +} diff --git a/pkg/restore/job_action.go b/pkg/restore/job_action.go index ecbea69da..fbaf30b24 100644 --- a/pkg/restore/job_action.go +++ b/pkg/restore/job_action.go @@ -1,5 +1,5 @@ /* -Copyright 2017 the Velero contributors. +Copyright the Velero contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/restore/merge_service_account.go b/pkg/restore/merge_service_account.go index 279ce9979..dd210f10f 100644 --- a/pkg/restore/merge_service_account.go +++ b/pkg/restore/merge_service_account.go @@ -1,5 +1,5 @@ /* -Copyright 2018 the Velero contributors. +Copyright the Velero contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -13,6 +13,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. */ + package restore import ( From dd3206c5447cebd6ac34980a0a533a36f8e5411a Mon Sep 17 00:00:00 2001 From: Neha Viswanathan <12013126+neha-viswanathan@users.noreply.github.com> Date: Thu, 2 Dec 2021 10:57:59 -0800 Subject: [PATCH 061/136] update documentation (#4378) Signed-off-by: Neha Viswanathan --- .github/pull_request_template.md | 2 +- site/content/docs/main/basic-install.md | 2 +- site/content/docs/main/contributions/minio.md | 26 +++++++++++-------- site/content/docs/main/supported-providers.md | 4 +-- site/content/docs/v1.6/basic-install.md | 2 +- site/content/docs/v1.6/contributions/minio.md | 25 ++++++++++-------- site/content/docs/v1.6/supported-providers.md | 4 +-- site/content/docs/v1.7/basic-install.md | 2 +- site/content/docs/v1.7/contributions/minio.md | 26 +++++++++++-------- site/content/docs/v1.7/supported-providers.md | 4 +-- 10 files changed, 54 insertions(+), 43 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 38aa77167..a908648a4 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -9,5 +9,5 @@ Fixes #(issue) # Please indicate you've done the following: - [ ] [Accepted the DCO](https://velero.io/docs/v1.5/code-standards/#dco-sign-off). Commits without the DCO will delay acceptance. -- [ ] [Created a changelog file](https://velero.io/docs/v1.5/code-standards/#adding-a-changelog) or added `/kind changelog-not-required`. +- [ ] [Created a changelog file](https://velero.io/docs/v1.5/code-standards/#adding-a-changelog) or added `/kind changelog-not-required` as a comment on this pull request. - [ ] Updated the corresponding documentation in `site/content/docs/main`. diff --git a/site/content/docs/main/basic-install.md b/site/content/docs/main/basic-install.md index 8e3bcd48b..59ec19da9 100644 --- a/site/content/docs/main/basic-install.md +++ b/site/content/docs/main/basic-install.md @@ -23,7 +23,7 @@ If you want to perform your own testing of Velero on Windows, you must deploy Ve ## Install the CLI -### Option 1: macOS - Homebrew +### Option 1: MacOS - Homebrew On macOS, you can use [Homebrew](https://brew.sh) to install the `velero` client: diff --git a/site/content/docs/main/contributions/minio.md b/site/content/docs/main/contributions/minio.md index 2b93ee6c6..3c683473b 100644 --- a/site/content/docs/main/contributions/minio.md +++ b/site/content/docs/main/contributions/minio.md @@ -22,7 +22,17 @@ If you encounter issues with installing or configuring, see [Debugging Installat * Sufficient disk space to store backups in Minio. You will need sufficient disk space available to handle any backups plus at least 1GB additional. Minio will not operate if less than 1GB of free disk space is available. -## Download Velero +## Install the CLI + +### Option 1: MacOS - Homebrew + +On macOS, you can use [Homebrew](https://brew.sh) to install the `velero` client: + +```bash +brew install velero +``` + +### Option 2: GitHub release 1. Download the [latest official release's](https://github.com/vmware-tanzu/velero/releases) tarball for your client platform. @@ -40,19 +50,11 @@ of the Velero repository is under active development and is not guaranteed to be 1. Move the `velero` binary from the Velero directory to somewhere in your PATH. -### MacOS Installation - -On Mac, you can use [HomeBrew](https://brew.sh) to install the `velero` client: - -```bash -brew install velero -``` - ## Set up server -These instructions start the Velero server and a Minio instance that is accessible from within the cluster only. See [Expose Minio outside your cluster][31] for information about configuring your cluster for outside access to Minio. Outside access is required to access logs and run `velero describe` commands. +These instructions start the Velero server and a Minio instance that is accessible from within the cluster only. See [Expose Minio outside your cluster](#expose-minio-outside-your-cluster-with-a-service) for information about configuring your cluster for outside access to Minio. Outside access is required to access logs and run `velero describe` commands. -1. Create a Velero-specific credentials file (`credentials-velero`) in your local directory: +1. Create a Velero-specific credentials file (`credentials-velero`) in your Velero directory: ``` [default] @@ -83,6 +85,8 @@ These instructions start the Velero server and a Minio instance that is accessib Additionally, you can specify `--use-restic` to enable restic support, and `--wait` to wait for the deployment to be ready. + This example also assumes you have named your Minio bucket "velero". + 1. Deploy the example nginx application: diff --git a/site/content/docs/main/supported-providers.md b/site/content/docs/main/supported-providers.md index c1c20a06a..5e75dc1e2 100644 --- a/site/content/docs/main/supported-providers.md +++ b/site/content/docs/main/supported-providers.md @@ -14,8 +14,8 @@ Velero supports a variety of storage providers for different backup and snapshot | [Amazon Web Services (AWS)](https://aws.amazon.com) | AWS S3 | AWS EBS | [Velero plugin for AWS](https://github.com/vmware-tanzu/velero-plugin-for-aws) | [AWS Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-aws#setup) | | [Google Cloud Platform (GCP)](https://cloud.google.com) | Google Cloud Storage| Google Compute Engine Disks | [Velero plugin for GCP](https://github.com/vmware-tanzu/velero-plugin-for-gcp) | [GCP Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-gcp#setup) | | [Microsoft Azure](https://azure.com) | Azure Blob Storage | Azure Managed Disks | [Velero plugin for Microsoft Azure](https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure) | [Azure Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure#setup) | -| [VMware vSphere](https://github.com/vmware-tanzu/velero-plugin-for-vsphere) | 🚫 | vSphere Volumes | [VMware vSphere](https://github.com/vmware-tanzu/velero-plugin-for-vsphere) | [vSphere Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-vsphere#velero-plugin-for-vsphere-installation-and-configuration-details) | -| [Container Storage Interface (CSI)](https://github.com/vmware-tanzu/velero-plugin-for-csi/)| 🚫 | CSI Volumes | [Velero plugin for CSI](https://github.com/vmware-tanzu/velero-plugin-for-csi/) | [CSI Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-csi#kinds-of-plugins-included) | +| [VMware vSphere](https://www.vmware.com/ca/products/vsphere.html) | 🚫 | vSphere Volumes | [VMware vSphere](https://github.com/vmware-tanzu/velero-plugin-for-vsphere) | [vSphere Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-vsphere#velero-plugin-for-vsphere-installation-and-configuration-details) | +| [Container Storage Interface (CSI)](https://kubernetes.io/blog/2019/01/15/container-storage-interface-ga/)| 🚫 | CSI Volumes | [Velero plugin for CSI](https://github.com/vmware-tanzu/velero-plugin-for-csi/) | [CSI Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-csi#kinds-of-plugins-included) | {{< /table >}} Contact: [#Velero Slack](https://kubernetes.slack.com/messages/velero), [GitHub Issues](https://github.com/vmware-tanzu/velero/issues) diff --git a/site/content/docs/v1.6/basic-install.md b/site/content/docs/v1.6/basic-install.md index eea51782f..50c406177 100644 --- a/site/content/docs/v1.6/basic-install.md +++ b/site/content/docs/v1.6/basic-install.md @@ -23,7 +23,7 @@ If you want to perform your own testing of Velero on Windows, you must deploy Ve ## Install the CLI -### Option 1: macOS - Homebrew +### Option 1: MacOS - Homebrew On macOS, you can use [Homebrew](https://brew.sh) to install the `velero` client: diff --git a/site/content/docs/v1.6/contributions/minio.md b/site/content/docs/v1.6/contributions/minio.md index ae2076380..df605d138 100644 --- a/site/content/docs/v1.6/contributions/minio.md +++ b/site/content/docs/v1.6/contributions/minio.md @@ -22,7 +22,17 @@ If you encounter issues with installing or configuring, see [Debugging Installat * Sufficient disk space to store backups in Minio. You will need sufficient disk space available to handle any backups plus at least 1GB additional. Minio will not operate if less than 1GB of free disk space is available. -## Download Velero +## Install the CLI + +### Option 1: MacOS - Homebrew + +On macOS, you can use [Homebrew](https://brew.sh) to install the `velero` client: + +```bash +brew install velero +``` + +### Option 2: GitHub release 1. Download the [latest official release's](https://github.com/vmware-tanzu/velero/releases) tarball for your client platform. @@ -40,19 +50,11 @@ of the Velero repository is under active development and is not guaranteed to be 1. Move the `velero` binary from the Velero directory to somewhere in your PATH. -### MacOS Installation - -On Mac, you can use [HomeBrew](https://brew.sh) to install the `velero` client: - -```bash -brew install velero -``` - ## Set up server -These instructions start the Velero server and a Minio instance that is accessible from within the cluster only. See [Expose Minio outside your cluster][31] for information about configuring your cluster for outside access to Minio. Outside access is required to access logs and run `velero describe` commands. +These instructions start the Velero server and a Minio instance that is accessible from within the cluster only. See [Expose Minio outside your cluster](#expose-minio-outside-your-cluster-with-a-service) for information about configuring your cluster for outside access to Minio. Outside access is required to access logs and run `velero describe` commands. -1. Create a Velero-specific credentials file (`credentials-velero`) in your local directory: +1. Create a Velero-specific credentials file (`credentials-velero`) in your Velero directory: ``` [default] @@ -83,6 +85,7 @@ These instructions start the Velero server and a Minio instance that is accessib Additionally, you can specify `--use-restic` to enable restic support, and `--wait` to wait for the deployment to be ready. + This example also assumes you have named your Minio bucket "velero". 1. Deploy the example nginx application: diff --git a/site/content/docs/v1.6/supported-providers.md b/site/content/docs/v1.6/supported-providers.md index c1c20a06a..5e75dc1e2 100644 --- a/site/content/docs/v1.6/supported-providers.md +++ b/site/content/docs/v1.6/supported-providers.md @@ -14,8 +14,8 @@ Velero supports a variety of storage providers for different backup and snapshot | [Amazon Web Services (AWS)](https://aws.amazon.com) | AWS S3 | AWS EBS | [Velero plugin for AWS](https://github.com/vmware-tanzu/velero-plugin-for-aws) | [AWS Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-aws#setup) | | [Google Cloud Platform (GCP)](https://cloud.google.com) | Google Cloud Storage| Google Compute Engine Disks | [Velero plugin for GCP](https://github.com/vmware-tanzu/velero-plugin-for-gcp) | [GCP Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-gcp#setup) | | [Microsoft Azure](https://azure.com) | Azure Blob Storage | Azure Managed Disks | [Velero plugin for Microsoft Azure](https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure) | [Azure Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure#setup) | -| [VMware vSphere](https://github.com/vmware-tanzu/velero-plugin-for-vsphere) | 🚫 | vSphere Volumes | [VMware vSphere](https://github.com/vmware-tanzu/velero-plugin-for-vsphere) | [vSphere Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-vsphere#velero-plugin-for-vsphere-installation-and-configuration-details) | -| [Container Storage Interface (CSI)](https://github.com/vmware-tanzu/velero-plugin-for-csi/)| 🚫 | CSI Volumes | [Velero plugin for CSI](https://github.com/vmware-tanzu/velero-plugin-for-csi/) | [CSI Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-csi#kinds-of-plugins-included) | +| [VMware vSphere](https://www.vmware.com/ca/products/vsphere.html) | 🚫 | vSphere Volumes | [VMware vSphere](https://github.com/vmware-tanzu/velero-plugin-for-vsphere) | [vSphere Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-vsphere#velero-plugin-for-vsphere-installation-and-configuration-details) | +| [Container Storage Interface (CSI)](https://kubernetes.io/blog/2019/01/15/container-storage-interface-ga/)| 🚫 | CSI Volumes | [Velero plugin for CSI](https://github.com/vmware-tanzu/velero-plugin-for-csi/) | [CSI Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-csi#kinds-of-plugins-included) | {{< /table >}} Contact: [#Velero Slack](https://kubernetes.slack.com/messages/velero), [GitHub Issues](https://github.com/vmware-tanzu/velero/issues) diff --git a/site/content/docs/v1.7/basic-install.md b/site/content/docs/v1.7/basic-install.md index 8e3bcd48b..59ec19da9 100644 --- a/site/content/docs/v1.7/basic-install.md +++ b/site/content/docs/v1.7/basic-install.md @@ -23,7 +23,7 @@ If you want to perform your own testing of Velero on Windows, you must deploy Ve ## Install the CLI -### Option 1: macOS - Homebrew +### Option 1: MacOS - Homebrew On macOS, you can use [Homebrew](https://brew.sh) to install the `velero` client: diff --git a/site/content/docs/v1.7/contributions/minio.md b/site/content/docs/v1.7/contributions/minio.md index 2b93ee6c6..3c683473b 100644 --- a/site/content/docs/v1.7/contributions/minio.md +++ b/site/content/docs/v1.7/contributions/minio.md @@ -22,7 +22,17 @@ If you encounter issues with installing or configuring, see [Debugging Installat * Sufficient disk space to store backups in Minio. You will need sufficient disk space available to handle any backups plus at least 1GB additional. Minio will not operate if less than 1GB of free disk space is available. -## Download Velero +## Install the CLI + +### Option 1: MacOS - Homebrew + +On macOS, you can use [Homebrew](https://brew.sh) to install the `velero` client: + +```bash +brew install velero +``` + +### Option 2: GitHub release 1. Download the [latest official release's](https://github.com/vmware-tanzu/velero/releases) tarball for your client platform. @@ -40,19 +50,11 @@ of the Velero repository is under active development and is not guaranteed to be 1. Move the `velero` binary from the Velero directory to somewhere in your PATH. -### MacOS Installation - -On Mac, you can use [HomeBrew](https://brew.sh) to install the `velero` client: - -```bash -brew install velero -``` - ## Set up server -These instructions start the Velero server and a Minio instance that is accessible from within the cluster only. See [Expose Minio outside your cluster][31] for information about configuring your cluster for outside access to Minio. Outside access is required to access logs and run `velero describe` commands. +These instructions start the Velero server and a Minio instance that is accessible from within the cluster only. See [Expose Minio outside your cluster](#expose-minio-outside-your-cluster-with-a-service) for information about configuring your cluster for outside access to Minio. Outside access is required to access logs and run `velero describe` commands. -1. Create a Velero-specific credentials file (`credentials-velero`) in your local directory: +1. Create a Velero-specific credentials file (`credentials-velero`) in your Velero directory: ``` [default] @@ -83,6 +85,8 @@ These instructions start the Velero server and a Minio instance that is accessib Additionally, you can specify `--use-restic` to enable restic support, and `--wait` to wait for the deployment to be ready. + This example also assumes you have named your Minio bucket "velero". + 1. Deploy the example nginx application: diff --git a/site/content/docs/v1.7/supported-providers.md b/site/content/docs/v1.7/supported-providers.md index c1c20a06a..5e75dc1e2 100644 --- a/site/content/docs/v1.7/supported-providers.md +++ b/site/content/docs/v1.7/supported-providers.md @@ -14,8 +14,8 @@ Velero supports a variety of storage providers for different backup and snapshot | [Amazon Web Services (AWS)](https://aws.amazon.com) | AWS S3 | AWS EBS | [Velero plugin for AWS](https://github.com/vmware-tanzu/velero-plugin-for-aws) | [AWS Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-aws#setup) | | [Google Cloud Platform (GCP)](https://cloud.google.com) | Google Cloud Storage| Google Compute Engine Disks | [Velero plugin for GCP](https://github.com/vmware-tanzu/velero-plugin-for-gcp) | [GCP Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-gcp#setup) | | [Microsoft Azure](https://azure.com) | Azure Blob Storage | Azure Managed Disks | [Velero plugin for Microsoft Azure](https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure) | [Azure Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure#setup) | -| [VMware vSphere](https://github.com/vmware-tanzu/velero-plugin-for-vsphere) | 🚫 | vSphere Volumes | [VMware vSphere](https://github.com/vmware-tanzu/velero-plugin-for-vsphere) | [vSphere Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-vsphere#velero-plugin-for-vsphere-installation-and-configuration-details) | -| [Container Storage Interface (CSI)](https://github.com/vmware-tanzu/velero-plugin-for-csi/)| 🚫 | CSI Volumes | [Velero plugin for CSI](https://github.com/vmware-tanzu/velero-plugin-for-csi/) | [CSI Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-csi#kinds-of-plugins-included) | +| [VMware vSphere](https://www.vmware.com/ca/products/vsphere.html) | 🚫 | vSphere Volumes | [VMware vSphere](https://github.com/vmware-tanzu/velero-plugin-for-vsphere) | [vSphere Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-vsphere#velero-plugin-for-vsphere-installation-and-configuration-details) | +| [Container Storage Interface (CSI)](https://kubernetes.io/blog/2019/01/15/container-storage-interface-ga/)| 🚫 | CSI Volumes | [Velero plugin for CSI](https://github.com/vmware-tanzu/velero-plugin-for-csi/) | [CSI Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-csi#kinds-of-plugins-included) | {{< /table >}} Contact: [#Velero Slack](https://kubernetes.slack.com/messages/velero), [GitHub Issues](https://github.com/vmware-tanzu/velero/issues) From 91ea996aaa08a1912b42be023b38e23811f9e107 Mon Sep 17 00:00:00 2001 From: "David L. Smith-Uchida" Date: Thu, 2 Dec 2021 11:01:40 -0800 Subject: [PATCH 062/136] Added ItemSnapshotter to the plugin server framework. (#4417) Signed-off-by: Dave Smith-Uchida --- pkg/plugin/framework/server.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pkg/plugin/framework/server.go b/pkg/plugin/framework/server.go index f02757e4b..066a44db6 100644 --- a/pkg/plugin/framework/server.go +++ b/pkg/plugin/framework/server.go @@ -74,6 +74,10 @@ type Server interface { // RegisterDeleteItemActions registers multiple Delete item actions. RegisterDeleteItemActions(map[string]HandlerInitializer) Server + RegisterItemSnapshotter(pluginName string, initializer HandlerInitializer) Server + + // RegisterItemSnapshotters registers multiple Item Snapshotters + RegisterItemSnapshotters(map[string]HandlerInitializer) Server // Server runs the plugin server. Serve() } @@ -89,6 +93,7 @@ type server struct { objectStore *ObjectStorePlugin restoreItemAction *RestoreItemActionPlugin deleteItemAction *DeleteItemActionPlugin + itemSnapshotter *ItemSnapshotterPlugin } // NewServer returns a new Server @@ -105,6 +110,7 @@ func NewServer() Server { objectStore: NewObjectStorePlugin(serverLogger(log)), restoreItemAction: NewRestoreItemActionPlugin(serverLogger(log)), deleteItemAction: NewDeleteItemActionPlugin(serverLogger(log)), + itemSnapshotter: NewItemSnapshotterPlugin(serverLogger(log)), } } @@ -177,6 +183,17 @@ func (s *server) RegisterDeleteItemActions(m map[string]HandlerInitializer) Serv return s } +func (s *server) RegisterItemSnapshotter(name string, initializer HandlerInitializer) Server { + s.itemSnapshotter.register(name, initializer) + return s +} +func (s *server) RegisterItemSnapshotters(m map[string]HandlerInitializer) Server { + for name := range m { + s.RegisterItemSnapshotter(name, m[name]) + } + return s +} + // getNames returns a list of PluginIdentifiers registered with plugin. func getNames(command string, kind PluginKind, plugin Interface) []PluginIdentifier { var pluginIdentifiers []PluginIdentifier @@ -206,6 +223,7 @@ func (s *server) Serve() { pluginIdentifiers = append(pluginIdentifiers, getNames(command, PluginKindObjectStore, s.objectStore)...) pluginIdentifiers = append(pluginIdentifiers, getNames(command, PluginKindRestoreItemAction, s.restoreItemAction)...) pluginIdentifiers = append(pluginIdentifiers, getNames(command, PluginKindDeleteItemAction, s.deleteItemAction)...) + pluginIdentifiers = append(pluginIdentifiers, getNames(command, PluginKindItemSnapshotter, s.itemSnapshotter)...) pluginLister := NewPluginLister(pluginIdentifiers...) @@ -218,6 +236,7 @@ func (s *server) Serve() { string(PluginKindPluginLister): NewPluginListerPlugin(pluginLister), string(PluginKindRestoreItemAction): s.restoreItemAction, string(PluginKindDeleteItemAction): s.deleteItemAction, + string(PluginKindItemSnapshotter): s.itemSnapshotter, }, GRPCServer: plugin.DefaultGRPCServer, }) From 0c8063cfd223a04f045b42a50755e43220bf40b4 Mon Sep 17 00:00:00 2001 From: Ming Date: Fri, 26 Nov 2021 15:27:55 +0800 Subject: [PATCH 063/136] Add resoure filtering test cases Signed-off-by: Ming --- changelogs/unreleased/4404-mqiu | 1 + test/e2e/backup/backup.go | 22 +-- test/e2e/basic/enable_api_group_versions.go | 28 +-- test/e2e/e2e_suite_test.go | 14 +- test/e2e/resource-filtering/base.go | 146 ++++++++++++++++ test/e2e/resource-filtering/exclude_label.go | 125 +++++++++++++ .../resource-filtering/exclude_namespaces.go | 144 +++++++++++++++ .../resource-filtering/exclude_resources.go | 124 +++++++++++++ .../resource-filtering/include_namespaces.go | 148 ++++++++++++++++ .../resource-filtering/include_resources.go | 122 +++++++++++++ test/e2e/resource-filtering/label_selector.go | 160 +++++++++++++++++ test/e2e/scale/multiple_namespaces.go | 34 ++-- test/e2e/test/test.go | 164 ++++++++++++++++++ test/e2e/upgrade/upgrade.go | 44 ++--- test/e2e/util/k8s/client.go | 17 +- test/e2e/util/k8s/configmap.go | 47 +++++ test/e2e/util/k8s/deployment.go | 95 ++++++++++ test/e2e/util/k8s/namespace.go | 26 +++ test/e2e/util/k8s/secret.go | 46 +++++ test/e2e/util/kibishii/kibishii_utils.go | 34 ++-- test/e2e/util/velero/install.go | 4 +- 21 files changed, 1460 insertions(+), 85 deletions(-) create mode 100644 changelogs/unreleased/4404-mqiu create mode 100644 test/e2e/resource-filtering/base.go create mode 100644 test/e2e/resource-filtering/exclude_label.go create mode 100644 test/e2e/resource-filtering/exclude_namespaces.go create mode 100644 test/e2e/resource-filtering/exclude_resources.go create mode 100644 test/e2e/resource-filtering/include_namespaces.go create mode 100644 test/e2e/resource-filtering/include_resources.go create mode 100644 test/e2e/resource-filtering/label_selector.go create mode 100644 test/e2e/test/test.go create mode 100644 test/e2e/util/k8s/configmap.go create mode 100644 test/e2e/util/k8s/deployment.go create mode 100644 test/e2e/util/k8s/secret.go diff --git a/changelogs/unreleased/4404-mqiu b/changelogs/unreleased/4404-mqiu new file mode 100644 index 000000000..99fa88dca --- /dev/null +++ b/changelogs/unreleased/4404-mqiu @@ -0,0 +1 @@ +Add resource filtering test cases diff --git a/test/e2e/backup/backup.go b/test/e2e/backup/backup.go index e5ff9bf26..21ac1c509 100644 --- a/test/e2e/backup/backup.go +++ b/test/e2e/backup/backup.go @@ -25,9 +25,9 @@ import ( . "github.com/onsi/gomega" . "github.com/vmware-tanzu/velero/test/e2e" - k8sutils "github.com/vmware-tanzu/velero/test/e2e/util/k8s" - kibishiiutils "github.com/vmware-tanzu/velero/test/e2e/util/kibishii" - veleroutils "github.com/vmware-tanzu/velero/test/e2e/util/velero" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" + . "github.com/vmware-tanzu/velero/test/e2e/util/kibishii" + . "github.com/vmware-tanzu/velero/test/e2e/util/velero" ) func BackupRestoreWithSnapshots() { @@ -43,7 +43,7 @@ func BackupRestoreTest(useVolumeSnapshots bool) { backupName, restoreName string ) - client, err := k8sutils.NewTestClient() + client, err := NewTestClient() Expect(err).To(Succeed(), "Failed to instantiate cluster client for backup tests") BeforeEach(func() { @@ -55,13 +55,13 @@ func BackupRestoreTest(useVolumeSnapshots bool) { UUIDgen, err = uuid.NewRandom() Expect(err).To(Succeed()) if VeleroCfg.InstallVelero { - Expect(veleroutils.VeleroInstall(context.Background(), &VeleroCfg, "", useVolumeSnapshots)).To(Succeed()) + Expect(VeleroInstall(context.Background(), &VeleroCfg, "", useVolumeSnapshots)).To(Succeed()) } }) AfterEach(func() { if VeleroCfg.InstallVelero { - err = veleroutils.VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) + err = VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) Expect(err).To(Succeed()) } }) @@ -72,7 +72,7 @@ func BackupRestoreTest(useVolumeSnapshots bool) { restoreName = "restore-" + UUIDgen.String() // Even though we are using Velero's CloudProvider plugin for object storage, the kubernetes cluster is running on // KinD. So use the kind installation for Kibishii. - Expect(kibishiiutils.RunKibishiiTests(client, VeleroCfg.CloudProvider, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backupName, restoreName, "", useVolumeSnapshots, VeleroCfg.RegistryCredentialFile)).To(Succeed(), + Expect(RunKibishiiTests(client, VeleroCfg.CloudProvider, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backupName, restoreName, "", useVolumeSnapshots, VeleroCfg.RegistryCredentialFile)).To(Succeed(), "Failed to successfully backup and restore Kibishii namespace") }) @@ -89,7 +89,7 @@ func BackupRestoreTest(useVolumeSnapshots bool) { Skip("no additional BSL credentials given, not running multiple BackupStorageLocation with unique credentials tests") } - Expect(veleroutils.VeleroAddPluginsForProvider(context.TODO(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, VeleroCfg.AdditionalBSLProvider, VeleroCfg.AddBSLPlugins)).To(Succeed()) + Expect(VeleroAddPluginsForProvider(context.TODO(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, VeleroCfg.AdditionalBSLProvider, VeleroCfg.AddBSLPlugins)).To(Succeed()) // Create Secret for additional BSL secretName := fmt.Sprintf("bsl-credentials-%s", UUIDgen) @@ -98,11 +98,11 @@ func BackupRestoreTest(useVolumeSnapshots bool) { secretKey: VeleroCfg.AdditionalBSLCredentials, } - Expect(k8sutils.CreateSecretFromFiles(context.TODO(), client, VeleroCfg.VeleroNamespace, secretName, files)).To(Succeed()) + Expect(CreateSecretFromFiles(context.TODO(), client, VeleroCfg.VeleroNamespace, secretName, files)).To(Succeed()) // Create additional BSL using credential additionalBsl := fmt.Sprintf("bsl-%s", UUIDgen) - Expect(veleroutils.VeleroCreateBackupLocation(context.TODO(), + Expect(VeleroCreateBackupLocation(context.TODO(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, additionalBsl, @@ -125,7 +125,7 @@ func BackupRestoreTest(useVolumeSnapshots bool) { backupName = fmt.Sprintf("%s-%s", backupName, UUIDgen) restoreName = fmt.Sprintf("%s-%s", restoreName, UUIDgen) } - Expect(kibishiiutils.RunKibishiiTests(client, VeleroCfg.CloudProvider, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backupName, restoreName, bsl, useVolumeSnapshots, VeleroCfg.RegistryCredentialFile)).To(Succeed(), + Expect(RunKibishiiTests(client, VeleroCfg.CloudProvider, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backupName, restoreName, bsl, useVolumeSnapshots, VeleroCfg.RegistryCredentialFile)).To(Succeed(), "Failed to successfully backup and restore Kibishii namespace using BSL %s", bsl) } }) diff --git a/test/e2e/basic/enable_api_group_versions.go b/test/e2e/basic/enable_api_group_versions.go index d9c13e280..215fdf773 100644 --- a/test/e2e/basic/enable_api_group_versions.go +++ b/test/e2e/basic/enable_api_group_versions.go @@ -36,8 +36,8 @@ import ( "github.com/vmware-tanzu/velero/pkg/builder" veleroexec "github.com/vmware-tanzu/velero/pkg/util/exec" . "github.com/vmware-tanzu/velero/test/e2e" - k8sutils "github.com/vmware-tanzu/velero/test/e2e/util/k8s" - veleroutils "github.com/vmware-tanzu/velero/test/e2e/util/velero" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" + . "github.com/vmware-tanzu/velero/test/e2e/util/velero" ) func APIGropuVersionsTest() { @@ -47,7 +47,7 @@ func APIGropuVersionsTest() { ctx = context.Background() ) - client, err := k8sutils.NewTestClient() + client, err := NewTestClient() Expect(err).To(Succeed(), "Failed to instantiate cluster client for group version tests") BeforeEach(func() { @@ -59,7 +59,7 @@ func APIGropuVersionsTest() { // TODO: install Velero once for the test suite once feature flag is // removed and velero installation becomes the same as other e2e tests. if VeleroCfg.InstallVelero { - err = veleroutils.VeleroInstall(context.Background(), &VeleroCfg, "EnableAPIGroupVersions", false) + err = VeleroInstall(context.Background(), &VeleroCfg, "EnableAPIGroupVersions", false) Expect(err).NotTo(HaveOccurred()) } }) @@ -75,7 +75,7 @@ func APIGropuVersionsTest() { Expect(err).NotTo(HaveOccurred()) if VeleroCfg.InstallVelero { - err = veleroutils.VeleroUninstall(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) + err = VeleroUninstall(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) Expect(err).NotTo(HaveOccurred()) } @@ -93,7 +93,7 @@ func APIGropuVersionsTest() { }) } -func runEnableAPIGroupVersionsTests(ctx context.Context, client k8sutils.TestClient, resource, group string) error { +func runEnableAPIGroupVersionsTests(ctx context.Context, client TestClient, resource, group string) error { tests := []struct { name string namespaces []string @@ -210,11 +210,11 @@ func runEnableAPIGroupVersionsTests(ctx context.Context, client k8sutils.TestCli for version, cr := range tc.srcCRs { ns := resource + "-src-" + version - if err := k8sutils.CreateNamespace(ctx, client, ns); err != nil { + if err := CreateNamespace(ctx, client, ns); err != nil { return errors.Wrapf(err, "create %s namespace", ns) } defer func(namespace string) { - if err = k8sutils.DeleteNamespace(ctx, client, namespace, true); err != nil { + if err = DeleteNamespace(ctx, client, namespace, true); err != nil { fmt.Println(errors.Wrapf(err, "failed to delete the namespace %q", ns)) } }(ns) @@ -236,9 +236,9 @@ func runEnableAPIGroupVersionsTests(ctx context.Context, client k8sutils.TestCli backup := "backup-rockbands-" + UUIDgen.String() + "-" + strconv.Itoa(i) namespacesStr := strings.Join(tc.namespaces, ",") - err = veleroutils.VeleroBackupNamespace(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backup, namespacesStr, "", false) + err = VeleroBackupNamespace(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backup, namespacesStr, "", false) if err != nil { - veleroutils.RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backup, "") + RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backup, "") return errors.Wrapf(err, "back up %s namespaces on source cluster", namespacesStr) } @@ -247,7 +247,7 @@ func runEnableAPIGroupVersionsTests(ctx context.Context, client k8sutils.TestCli } for _, ns := range tc.namespaces { - if err := k8sutils.DeleteNamespace(ctx, client, ns, true); err != nil { + if err := DeleteNamespace(ctx, client, ns, true); err != nil { return errors.Wrapf(err, "delete %s namespace from source cluster", ns) } } @@ -276,8 +276,8 @@ func runEnableAPIGroupVersionsTests(ctx context.Context, client k8sutils.TestCli restore := "restore-rockbands-" + UUIDgen.String() + "-" + strconv.Itoa(i) if tc.want != nil { - if err := veleroutils.VeleroRestore(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, restore, backup); err != nil { - veleroutils.RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, "", restore) + if err := VeleroRestore(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, restore, backup); err != nil { + RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, "", restore) return errors.Wrapf(err, "restore %s namespaces on target cluster", namespacesStr) } @@ -315,7 +315,7 @@ func runEnableAPIGroupVersionsTests(ctx context.Context, client k8sutils.TestCli } else { // No custom resource should have been restored. Expect "no resource found" // error during restore. - err := veleroutils.VeleroRestore(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, restore, backup) + err := VeleroRestore(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, restore, backup) if err.Error() != "Unexpected restore phase got PartiallyFailed, expecting Completed" { return errors.New("expected error but not none") diff --git a/test/e2e/e2e_suite_test.go b/test/e2e/e2e_suite_test.go index 825ce2938..7753c60e8 100644 --- a/test/e2e/e2e_suite_test.go +++ b/test/e2e/e2e_suite_test.go @@ -27,6 +27,7 @@ import ( . "github.com/vmware-tanzu/velero/test/e2e" . "github.com/vmware-tanzu/velero/test/e2e/backup" . "github.com/vmware-tanzu/velero/test/e2e/basic" + . "github.com/vmware-tanzu/velero/test/e2e/resource-filtering" . "github.com/vmware-tanzu/velero/test/e2e/scale" . "github.com/vmware-tanzu/velero/test/e2e/upgrade" ) @@ -73,9 +74,20 @@ var _ = Describe("[Scale] Backup/restore of 2500 namespaces", MultiNSBackupResto // Upgrade test by Kibishi using restic var _ = Describe("[Upgrade][Restic] Velero upgrade tests on cluster using the plugin provider for object storage and Restic for volume backups", BackupUpgradeRestoreWithRestic) - var _ = Describe("[Upgrade][Snapshot] Velero upgrade tests on cluster using the plugin provider for object storage and snapshots for volume backups", BackupUpgradeRestoreWithSnapshots) +// test filter objects by namespace, type, or labels when backup or restore. +var _ = Describe("[ResourceFiltering][ExcludeFromBackup] Resources with the label velero.io/exclude-from-backup=true are not included in backup", ExcludeFromBackupTest) +var _ = Describe("[ResourceFiltering][ExcludeNamespaces][Backup] Velero test on exclude namespace from the cluster backup", BackupWithExcludeNamespaces) +var _ = Describe("[ResourceFiltering][ExcludeNamespaces][Restore] Velero test on exclude namespace from the cluster restore", RestoreWithExcludeNamespaces) +var _ = Describe("[ResourceFiltering][ExcludeResources][Backup] Velero test on exclude resources from the cluster backup", BackupWithExcludeResources) +var _ = Describe("[ResourceFiltering][ExcludeResources][Restore] Velero test on exclude resources from the cluster restore", RestoreWithExcludeResources) +var _ = Describe("[ResourceFiltering][IncludeNamespaces][Backup] Velero test on include namespace from the cluster backup", BackupWithIncludeNamespaces) +var _ = Describe("[ResourceFiltering][IncludeNamespaces][Restore] Velero test on include namespace from the cluster restore", RestoreWithIncludeNamespaces) +var _ = Describe("[ResourceFiltering][IncludeResources][Backup] Velero test on include resources from the cluster backup", BackupWithIncludeResources) +var _ = Describe("[ResourceFiltering][IncludeResources][Restore] Velero test on include resources from the cluster restore", RestoreWithIncludeResources) +var _ = Describe("[ResourceFiltering][LabelSelector] Velero test on backup include resources matching the label selector", BackupWithLabelSelector) + func TestE2e(t *testing.T) { // Skip running E2E tests when running only "short" tests because: // 1. E2E tests are long running tests involving installation of Velero and performing backup and restore operations. diff --git a/test/e2e/resource-filtering/base.go b/test/e2e/resource-filtering/base.go new file mode 100644 index 000000000..77d97da19 --- /dev/null +++ b/test/e2e/resource-filtering/base.go @@ -0,0 +1,146 @@ +/* +Copyright 2021 the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package filtering + +import ( + "context" + "fmt" + "time" + + "github.com/google/uuid" + "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + . "github.com/vmware-tanzu/velero/test/e2e" + . "github.com/vmware-tanzu/velero/test/e2e/test" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" +) + +type FilteringCase struct { + TestCase + IsTestInBackup bool + replica int32 + labels map[string]string + labelSelector string +} + +var testInBackup = FilteringCase{IsTestInBackup: true} +var testInRestore = FilteringCase{IsTestInBackup: false} + +func (f *FilteringCase) Init() { + UUIDgen, _ = uuid.NewRandom() + f.replica = int32(2) + f.labels = map[string]string{"resourcefiltering": "true"} + f.labelSelector = "resourcefiltering" + f.Client = TestClientInstance + + f.NamespacesTotal = 5 + f.BackupArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", f.BackupName, + "--default-volumes-to-restic", "--wait", + } + + f.RestoreArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", f.RestoreName, + "--from-backup", f.BackupName, "--wait", + } +} + +func (f *FilteringCase) CreateResources() error { + f.Ctx, _ = context.WithTimeout(context.Background(), 60*time.Minute) + for nsNum := 0; nsNum < f.NamespacesTotal; nsNum++ { + namespace := fmt.Sprintf("%s-%00000d", f.NSBaseName, nsNum) + fmt.Printf("Creating resources in namespace ...%s\n", namespace) + if err := CreateNamespace(f.Ctx, f.Client, namespace); err != nil { + return errors.Wrapf(err, "Failed to create namespace %s", namespace) + } + + //Create deployment + fmt.Printf("Creating deployment in namespaces ...%s\n", namespace) + deployment := NewDeployment(f.NSBaseName, namespace, f.replica, f.labels) + deployment, err := CreateDeployment(f.Client.ClientGo, namespace, deployment) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to delete the namespace %q", namespace)) + } + err = WaitForReadyDeployment(f.Client.ClientGo, namespace, deployment.Name) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to ensure job completion in namespace: %q", namespace)) + } + //Create Secret + secretName := f.NSBaseName + fmt.Printf("Creating secret %s in namespaces ...%s\n", secretName, namespace) + _, err = CreateSecret(f.Client.ClientGo, namespace, secretName, f.labels) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to create secret in the namespace %q", namespace)) + } + err = WaitForSecretsComplete(f.Client.ClientGo, namespace, secretName) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to ensure secret completion in namespace: %q", namespace)) + } + //Create Configmap + configmaptName := f.NSBaseName + fmt.Printf("Creating configmap %s in namespaces ...%s\n", configmaptName, namespace) + _, err = CreateConfigMap(f.Client.ClientGo, namespace, configmaptName, f.labels) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to create configmap in the namespace %q", namespace)) + } + err = WaitForConfigMapComplete(f.Client.ClientGo, namespace, configmaptName) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to ensure secret completion in namespace: %q", namespace)) + } + } + return nil +} + +func (f *FilteringCase) Verify() error { + for nsNum := 0; nsNum < f.NamespacesTotal; nsNum++ { + namespace := fmt.Sprintf("%s-%00000d", f.NSBaseName, nsNum) + fmt.Printf("Checking resources in namespaces ...%s\n", namespace) + //Check namespace + checkNS, err := GetNamespace(f.Ctx, f.Client, namespace) + if err != nil { + return errors.Wrapf(err, "Could not retrieve test namespace %s", namespace) + } + if checkNS.Name != namespace { + return errors.Errorf("Retrieved namespace for %s has name %s instead", namespace, checkNS.Name) + } + //Check deployment + _, err = GetDeployment(f.Client.ClientGo, namespace, f.NSBaseName) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to list deployment in namespace: %q", namespace)) + } + + //Check secrets + secretsList, err := f.Client.ClientGo.CoreV1().Secrets(namespace).List(context.TODO(), metav1.ListOptions{ + LabelSelector: f.labelSelector}) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to list secrets in namespace: %q", namespace)) + } else if len(secretsList.Items) == 0 { + return errors.Wrap(err, fmt.Sprintf("no secrets found in namespace: %q", namespace)) + } + + //Check configmap + configmapList, err := f.Client.ClientGo.CoreV1().ConfigMaps(namespace).List(context.TODO(), metav1.ListOptions{ + LabelSelector: f.labelSelector}) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to list configmap in namespace: %q", namespace)) + } else if len(configmapList.Items) == 0 { + return errors.Wrap(err, fmt.Sprintf("no configmap found in namespace: %q", namespace)) + } + } + return nil +} diff --git a/test/e2e/resource-filtering/exclude_label.go b/test/e2e/resource-filtering/exclude_label.go new file mode 100644 index 000000000..919be15f5 --- /dev/null +++ b/test/e2e/resource-filtering/exclude_label.go @@ -0,0 +1,125 @@ +/* +Copyright 2021 the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package filtering + +import ( + "context" + "fmt" + "math/rand" + "time" + + "github.com/google/uuid" + "github.com/pkg/errors" + apierrors "k8s.io/apimachinery/pkg/api/errors" + + . "github.com/vmware-tanzu/velero/test/e2e" + . "github.com/vmware-tanzu/velero/test/e2e/test" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" +) + +/* +Resources with the label velero.io/exclude-from-backup=true are not included +in backup, even if it contains a matching selector label. +*/ + +type ExcludeFromBackup struct { + FilteringCase +} + +var ExcludeFromBackupTest func() = TestFunc(&ExcludeFromBackup{testInBackup}) + +func (e *ExcludeFromBackup) Init() { + rand.Seed(time.Now().UnixNano()) + UUIDgen, _ = uuid.NewRandom() + e.FilteringCase.Init() + e.BackupName = "backup-exclude-from-backup-" + UUIDgen.String() + e.RestoreName = "restore-exclude-from-backup-" + UUIDgen.String() + e.NSBaseName = "exclude-from-backup-" + UUIDgen.String() + e.TestMsg = &TestMSG{ + Desc: "Backup with the label velero.io/exclude-from-backup=true are not included test", + Text: "Should not backup resources with the label velero.io/exclude-from-backup=true", + FailedMSG: "Failed to backup resources with the label velero.io/exclude-from-backup=true", + } + e.labels = map[string]string{ + "velero.io/exclude-from-backup": "true", + } + e.labelSelector = "velero.io/exclude-from-backup" + e.BackupArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", e.BackupName, + "--default-volumes-to-restic", "--wait", + } + + e.RestoreArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", e.RestoreName, + "--from-backup", e.BackupName, "--wait", + } +} + +func (e *ExcludeFromBackup) CreateResources() error { + e.Ctx, _ = context.WithTimeout(context.Background(), 60*time.Minute) + for nsNum := 0; nsNum < e.NamespacesTotal; nsNum++ { + namespace := fmt.Sprintf("%s-%00000d", e.NSBaseName, nsNum) + fmt.Printf("Creating resources in namespace ...%s\n", namespace) + labels := e.labels + if nsNum%2 == 0 { + labels = map[string]string{ + "velero.io/exclude-from-backup": "false", + } + } + if err := CreateNamespaceWithLabel(e.Ctx, e.Client, namespace, labels); err != nil { + return errors.Wrapf(err, "Failed to create namespace %s", namespace) + } + + //Create deployment + fmt.Printf("Creating deployment in namespaces ...%s\n", namespace) + + deployment := NewDeployment(e.NSBaseName, namespace, e.replica, labels) + deployment, err := CreateDeployment(e.Client.ClientGo, namespace, deployment) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to delete the namespace %q", namespace)) + } + err = WaitForReadyDeployment(e.Client.ClientGo, namespace, deployment.Name) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to ensure deployment completion in namespace: %q", namespace)) + } + } + return nil +} + +func (e *ExcludeFromBackup) Verify() error { + for nsNum := 0; nsNum < e.NamespacesTotal; nsNum++ { + namespace := fmt.Sprintf("%s-%00000d", e.NSBaseName, nsNum) + fmt.Printf("Checking resources in namespaces ...%s\n", namespace) + //Check deployment + _, err := GetDeployment(e.Client.ClientGo, namespace, e.NSBaseName) + if nsNum%2 == 0 { //include + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to list deployment in namespace: %q", namespace)) + } + } else { //exclude + if err == nil { + return fmt.Errorf("failed to exclude deployment in namespaces %q", namespace) + } else { + if apierrors.IsNotFound(err) { //resource should be excluded + return nil + } + return errors.Wrap(err, fmt.Sprintf("failed to list deployment in namespace: %q", namespace)) + } + } + } + return nil +} diff --git a/test/e2e/resource-filtering/exclude_namespaces.go b/test/e2e/resource-filtering/exclude_namespaces.go new file mode 100644 index 000000000..88ccb446e --- /dev/null +++ b/test/e2e/resource-filtering/exclude_namespaces.go @@ -0,0 +1,144 @@ +/* +Copyright 2021 the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package filtering + +import ( + "context" + "fmt" + "math/rand" + "strings" + "time" + + "github.com/google/uuid" + "github.com/pkg/errors" + apierrors "k8s.io/apimachinery/pkg/api/errors" + + . "github.com/vmware-tanzu/velero/test/e2e" + . "github.com/vmware-tanzu/velero/test/e2e/test" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" +) + +/* +exclude-namespaces +Exclude namespace1 from the cluster backup. +velero backup create --exclude-namespaces + +Exclude two namespaces during a restore. +velero restore create --exclude-namespaces , +*/ + +type ExcludeNamespaces struct { + FilteringCase + nsExcluded *[]string + namespacesExcluded int +} + +var BackupWithExcludeNamespaces func() = TestFunc(&ExcludeNamespaces{FilteringCase: testInBackup}) +var RestoreWithExcludeNamespaces func() = TestFunc(&ExcludeNamespaces{FilteringCase: testInRestore}) + +func (e *ExcludeNamespaces) Init() { + rand.Seed(time.Now().UnixNano()) + UUIDgen, _ = uuid.NewRandom() + e.FilteringCase.Init() + e.BackupName = "backup-exclude-namespaces-" + UUIDgen.String() + e.RestoreName = "restore-exclude-namespaces-" + UUIDgen.String() + e.namespacesExcluded = e.NamespacesTotal / 2 + e.NSBaseName = "exclude-namespaces-" + UUIDgen.String() + if e.IsTestInBackup { + e.TestMsg = &TestMSG{ + Desc: "Backup resources with exclude namespace test", + FailedMSG: "Failed to backup and restore with namespace include", + Text: fmt.Sprintf("should not backup %d namespaces of %d", e.namespacesExcluded, e.NamespacesTotal), + } + } else { + e.TestMsg = &TestMSG{ + Desc: "Restore resources with exclude namespace test", + FailedMSG: "Failed to restore with namespace exclude", + Text: fmt.Sprintf("should not backup %d namespaces of %d", e.namespacesExcluded, e.NamespacesTotal), + } + } + e.nsExcluded = &[]string{} + for nsNum := 0; nsNum < e.NamespacesTotal; nsNum++ { + createNSName := fmt.Sprintf("%s-%00000d", e.NSBaseName, nsNum) + if nsNum < e.namespacesExcluded { + *e.nsExcluded = append(*e.nsExcluded, createNSName) + } + } + if e.IsTestInBackup { + e.BackupArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", e.BackupName, + "--exclude-namespaces", strings.Join(*e.nsExcluded, ","), + "--default-volumes-to-restic", "--wait", + } + + e.RestoreArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", e.RestoreName, + "--from-backup", e.BackupName, "--wait", + } + + } else { + e.BackupArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", e.BackupName, + "--default-volumes-to-restic", "--wait", + } + + e.RestoreArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", e.RestoreName, + "--exclude-namespaces", strings.Join(*e.nsExcluded, ","), + "--from-backup", e.BackupName, "--wait", + } + } +} + +func (e *ExcludeNamespaces) CreateResources() error { + e.Ctx, _ = context.WithTimeout(context.Background(), 60*time.Minute) + for nsNum := 0; nsNum < e.NamespacesTotal; nsNum++ { + createNSName := fmt.Sprintf("%s-%00000d", e.NSBaseName, nsNum) + fmt.Printf("Creating namespaces ...%s\n", createNSName) + if err := CreateNamespace(e.Ctx, e.Client, createNSName); err != nil { + return errors.Wrapf(err, "Failed to create namespace %s", createNSName) + } + } + return nil +} + +func (e *ExcludeNamespaces) Verify() error { + // Verify that we got back all of the namespaces we created + for nsNum := 0; nsNum < e.namespacesExcluded; nsNum++ { + excludeNSName := fmt.Sprintf("%s-%00000d", e.NSBaseName, nsNum) + _, err := GetNamespace(e.Ctx, e.Client, excludeNSName) + if err == nil { + return errors.Wrapf(err, "Resource filtering with exclude namespace but exclude namespace %s exist", excludeNSName) + } + + if !apierrors.IsNotFound(err) { + return errors.Wrapf(err, "Resource filtering with exclude namespace failed with checking namespace %s", excludeNSName) + } + } + + for nsNum := e.namespacesExcluded; nsNum < e.NamespacesTotal; nsNum++ { + checkNSName := fmt.Sprintf("%s-%00000d", e.NSBaseName, nsNum) + checkNS, err := GetNamespace(e.Ctx, e.Client, checkNSName) + if err != nil { + return errors.Wrapf(err, "Could not retrieve test namespace %s", checkNSName) + } + if checkNS.Name != checkNSName { + return errors.Errorf("Retrieved namespace for %s has name %s instead", checkNSName, checkNS.Name) + } + } + return nil +} diff --git a/test/e2e/resource-filtering/exclude_resources.go b/test/e2e/resource-filtering/exclude_resources.go new file mode 100644 index 000000000..81fd9a133 --- /dev/null +++ b/test/e2e/resource-filtering/exclude_resources.go @@ -0,0 +1,124 @@ +/* +Copyright 2021 the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package filtering + +import ( + "context" + "fmt" + "math/rand" + "time" + + "github.com/google/uuid" + "github.com/pkg/errors" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + . "github.com/vmware-tanzu/velero/test/e2e" + . "github.com/vmware-tanzu/velero/test/e2e/test" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" +) + +/* +exclude-resources +Exclude secrets from the backup. + +velero backup create --exclude-resources secrets +Exclude secrets and rolebindings. + +velero backup create --exclude-resources secrets +*/ + +type ExcludeResources struct { + FilteringCase +} + +var BackupWithExcludeResources func() = TestFunc(&ExcludeResources{testInBackup}) +var RestoreWithExcludeResources func() = TestFunc(&ExcludeResources{testInRestore}) + +func (e *ExcludeResources) Init() { + rand.Seed(time.Now().UnixNano()) + UUIDgen, _ = uuid.NewRandom() + e.FilteringCase.Init() + e.NSBaseName = "exclude-resources-" + UUIDgen.String() + if e.IsTestInBackup { // testing case backup with exclude-resources option + e.TestMsg = &TestMSG{ + Desc: "Backup resources with resources included test", + Text: "Should not backup resources which is excluded others should be backup", + FailedMSG: "Failed to backup with resource exclude", + } + e.BackupName = "backup-exclude-resources-" + UUIDgen.String() + e.RestoreName = "restore-" + UUIDgen.String() + e.BackupArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", e.BackupName, + "--exclude-resources", "secrets", + "--default-volumes-to-restic", "--wait", + } + + e.RestoreArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", e.RestoreName, + "--from-backup", e.BackupName, "--wait", + } + } else { // testing case restore with exclude-resources option + e.TestMsg = &TestMSG{ + Desc: "Restore resources with resources included test", + Text: "Should not restore resources which is excluded others should be backup", + FailedMSG: "Failed to restore with resource exclude", + } + e.BackupName = "backup-" + UUIDgen.String() + e.RestoreName = "restore-exclude-resources-" + UUIDgen.String() + e.BackupArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", e.BackupName, + "--default-volumes-to-restic", "--wait", + } + e.RestoreArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", e.RestoreName, + "--exclude-resources", "secrets", + "--from-backup", e.BackupName, "--wait", + } + } +} + +func (e *ExcludeResources) Verify() error { + for nsNum := 0; nsNum < e.NamespacesTotal; nsNum++ { + namespace := fmt.Sprintf("%s-%00000d", e.NSBaseName, nsNum) + fmt.Printf("Checking resources in namespaces ...%s\n", namespace) + //Check deployment + _, err := GetDeployment(e.Client.ClientGo, namespace, e.NSBaseName) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to list deployment in namespace: %q", namespace)) + } + //Check secrets + secretsList, err := e.Client.ClientGo.CoreV1().Secrets(namespace).List(context.TODO(), metav1.ListOptions{LabelSelector: e.labelSelector}) + if err != nil { + if apierrors.IsNotFound(err) { //resource should be excluded + return nil + } + return errors.Wrap(err, fmt.Sprintf("failed to list secrets in namespace: %q", namespace)) + } else if len(secretsList.Items) != 0 { + return errors.Errorf(fmt.Sprintf("Should no secrets found %s in namespace: %q", secretsList.Items[0].Name, namespace)) + } + + //Check configmap + configmapList, err := e.Client.ClientGo.CoreV1().ConfigMaps(namespace).List(context.TODO(), metav1.ListOptions{LabelSelector: e.labelSelector}) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to list configmap in namespace: %q", namespace)) + } else if len(configmapList.Items) == 0 { + return errors.Errorf(fmt.Sprintf("Should have configmap found in namespace: %q", namespace)) + } + } + return nil +} diff --git a/test/e2e/resource-filtering/include_namespaces.go b/test/e2e/resource-filtering/include_namespaces.go new file mode 100644 index 000000000..7476beb0c --- /dev/null +++ b/test/e2e/resource-filtering/include_namespaces.go @@ -0,0 +1,148 @@ +/* +Copyright 2021 the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package filtering + +import ( + "context" + "fmt" + "math/rand" + "strings" + "time" + + "github.com/google/uuid" + "github.com/pkg/errors" + apierrors "k8s.io/apimachinery/pkg/api/errors" + + . "github.com/vmware-tanzu/velero/test/e2e" + . "github.com/vmware-tanzu/velero/test/e2e/test" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" +) + +/* +include-namespaces +Backup a namespace and it's objects. + +velero backup create --include-namespaces +Restore two namespaces and their objects. + +velero restore create --include-namespaces , +*/ + +type IncludeNamespaces struct { + nsIncluded *[]string + namespacesIncluded int + FilteringCase +} + +var BackupWithIncludeNamespaces func() = TestFunc(&IncludeNamespaces{FilteringCase: testInBackup}) +var RestoreWithIncludeNamespaces func() = TestFunc(&IncludeNamespaces{FilteringCase: testInRestore}) + +func (i *IncludeNamespaces) Init() { + rand.Seed(time.Now().UnixNano()) + UUIDgen, _ = uuid.NewRandom() + i.FilteringCase.Init() + i.namespacesIncluded = i.NamespacesTotal / 2 + i.nsIncluded = &[]string{} + i.NSBaseName = "include-namespaces-" + UUIDgen.String() + for nsNum := 0; nsNum < i.NamespacesTotal; nsNum++ { + createNSName := fmt.Sprintf("%s-%00000d", i.NSBaseName, nsNum) + if nsNum < i.namespacesIncluded { + *i.nsIncluded = append(*i.nsIncluded, createNSName) + } + } + + if i.IsTestInBackup { + i.BackupName = "backup-include-namespaces-" + UUIDgen.String() + i.RestoreName = "restore-" + UUIDgen.String() + i.TestMsg = &TestMSG{ + Desc: "Backup resources with include namespace test", + FailedMSG: "Failed to backup with namespace include", + Text: fmt.Sprintf("should backup %d namespaces of %d", i.namespacesIncluded, i.NamespacesTotal), + } + i.BackupArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", i.BackupName, + "--include-namespaces", strings.Join(*i.nsIncluded, ","), + "--default-volumes-to-restic", "--wait", + } + + i.RestoreArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", i.RestoreName, + "--from-backup", i.BackupName, "--wait", + } + + } else { + i.BackupName = "backup-" + UUIDgen.String() + i.RestoreName = "restore-include-namespaces-" + UUIDgen.String() + i.TestMsg = &TestMSG{ + Desc: "Restore resources with include namespace test", + FailedMSG: "Failed to restore with namespace include", + Text: fmt.Sprintf("should restore %d namespaces of %d", i.namespacesIncluded, i.NamespacesTotal), + } + i.BackupArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", i.BackupName, + "--default-volumes-to-restic", "--wait", + } + + i.RestoreArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", i.RestoreName, + "--include-namespaces", strings.Join(*i.nsIncluded, ","), + "--from-backup", i.BackupName, "--wait", + } + } +} + +func (i *IncludeNamespaces) CreateResources() error { + i.Ctx, _ = context.WithTimeout(context.Background(), 60*time.Minute) + for nsNum := 0; nsNum < i.NamespacesTotal; nsNum++ { + createNSName := fmt.Sprintf("%s-%00000d", i.NSBaseName, nsNum) + fmt.Printf("Creating namespaces ...%s\n", createNSName) + if err := CreateNamespace(i.Ctx, i.Client, createNSName); err != nil { + return errors.Wrapf(err, "Failed to create namespace %s", createNSName) + } + if nsNum <= i.namespacesIncluded { + *i.nsIncluded = append(*i.nsIncluded, createNSName) + } + } + return nil +} + +func (i *IncludeNamespaces) Verify() error { + // Verify that we got back all of the namespaces we created + for nsNum := 0; nsNum < i.namespacesIncluded; nsNum++ { + checkNSName := fmt.Sprintf("%s-%00000d", i.NSBaseName, nsNum) + checkNS, err := GetNamespace(i.Ctx, i.Client, checkNSName) + if err != nil { + return errors.Wrapf(err, "Could not retrieve test namespace %s", checkNSName) + } + if checkNS.Name != checkNSName { + return errors.Errorf("Retrieved namespace for %s has name %s instead", checkNSName, checkNS.Name) + } + } + + for nsNum := i.namespacesIncluded; nsNum < i.NamespacesTotal; nsNum++ { + excludeNSName := fmt.Sprintf("%s-%00000d", i.NSBaseName, nsNum) + _, err := GetNamespace(i.Ctx, i.Client, excludeNSName) + if err == nil { + return errors.Wrapf(err, "Resource filtering with include namespace but exclude namespace %s exist", excludeNSName) + } + + if !apierrors.IsNotFound(err) { + return errors.Wrapf(err, "Resource filtering with include namespace failed with checking namespace %s", excludeNSName) + } + } + return nil +} diff --git a/test/e2e/resource-filtering/include_resources.go b/test/e2e/resource-filtering/include_resources.go new file mode 100644 index 000000000..a56e94091 --- /dev/null +++ b/test/e2e/resource-filtering/include_resources.go @@ -0,0 +1,122 @@ +/* +Copyright 2021 the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package filtering + +import ( + "context" + "fmt" + "math/rand" + "time" + + "github.com/google/uuid" + "github.com/pkg/errors" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + . "github.com/vmware-tanzu/velero/test/e2e" + . "github.com/vmware-tanzu/velero/test/e2e/test" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" +) + +/* +Backup all deployments in the cluster. + velero backup create --include-resources deployments, configmaps + +Restore all deployments and configmaps in the cluster. + velero restore create --include-resources deployments,configmaps +*/ + +type IncludeResources struct { + FilteringCase +} + +var BackupWithIncludeResources func() = TestFunc(&IncludeResources{testInBackup}) +var RestoreWithIncludeResources func() = TestFunc(&IncludeResources{testInRestore}) + +func (i *IncludeResources) Init() { + rand.Seed(time.Now().UnixNano()) + UUIDgen, _ = uuid.NewRandom() + i.FilteringCase.Init() + i.NSBaseName = "include-resources-" + UUIDgen.String() + if i.IsTestInBackup { // testing case backup with include-resources option + i.TestMsg = &TestMSG{ + Desc: "Backup resources with resources included test", + Text: "Should backup resources which is included others should not be backup", + FailedMSG: "Failed to backup with resource include", + } + i.BackupName = "backup-include-resources-" + UUIDgen.String() + i.RestoreName = "restore-" + UUIDgen.String() + i.BackupArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", i.BackupName, + "--include-resources", "deployments,configmaps", + "--default-volumes-to-restic", "--wait", + } + + i.RestoreArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", i.RestoreName, + "--from-backup", i.BackupName, "--wait", + } + } else { // testing case restore with include-resources option + i.TestMsg = &TestMSG{ + Desc: "Restore resources with resources included test", + Text: "Should restore resources which is included others should not be backup", + FailedMSG: "Failed to restore with resource include", + } + i.BackupName = "backup-" + UUIDgen.String() + i.RestoreName = "restore-include-resources-" + UUIDgen.String() + i.BackupArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", i.BackupName, + "--default-volumes-to-restic", "--wait", + } + i.RestoreArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", i.RestoreName, + "--include-resources", "deployments,configmaps", + "--from-backup", i.BackupName, "--wait", + } + } +} + +func (i *IncludeResources) Verify() error { + for nsNum := 0; nsNum < i.NamespacesTotal; nsNum++ { + namespace := fmt.Sprintf("%s-%00000d", i.NSBaseName, nsNum) + fmt.Printf("Checking resources in namespaces ...%s\n", namespace) + //Check deployment + _, err := GetDeployment(i.Client.ClientGo, namespace, i.NSBaseName) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to list deployment in namespace: %q", namespace)) + } + //Check secrets + secretsList, err := i.Client.ClientGo.CoreV1().Secrets(namespace).List(context.TODO(), metav1.ListOptions{LabelSelector: i.labelSelector}) + if err != nil { + if apierrors.IsNotFound(err) { //resource should be excluded + return nil + } + return errors.Wrap(err, fmt.Sprintf("failed to list secrets in namespace: %q", namespace)) + } else if len(secretsList.Items) != 0 { + return errors.Errorf(fmt.Sprintf("Should no secrets found %s in namespace: %q", secretsList.Items[0].Name, namespace)) + } + + //Check configmap + configmapList, err := i.Client.ClientGo.CoreV1().ConfigMaps(namespace).List(context.TODO(), metav1.ListOptions{LabelSelector: i.labelSelector}) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to list configmap in namespace: %q", namespace)) + } else if len(configmapList.Items) == 0 { + return errors.Errorf(fmt.Sprintf("Should have configmap found in namespace: %q", namespace)) + } + } + return nil +} diff --git a/test/e2e/resource-filtering/label_selector.go b/test/e2e/resource-filtering/label_selector.go new file mode 100644 index 000000000..57d663964 --- /dev/null +++ b/test/e2e/resource-filtering/label_selector.go @@ -0,0 +1,160 @@ +/* +Copyright 2021 the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package filtering + +import ( + "context" + "fmt" + "math/rand" + "time" + + "github.com/google/uuid" + "github.com/pkg/errors" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + . "github.com/vmware-tanzu/velero/test/e2e" + . "github.com/vmware-tanzu/velero/test/e2e/test" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" +) + +/* +Include resources matching the label selector. + velero backup create --selector = +*/ + +type LabelSelector struct { + FilteringCase +} + +var BackupWithLabelSelector func() = TestFunc(&LabelSelector{testInBackup}) + +func (l *LabelSelector) Init() { + rand.Seed(time.Now().UnixNano()) + UUIDgen, _ = uuid.NewRandom() + l.FilteringCase.Init() + l.BackupName = "backup-label-selector-" + UUIDgen.String() + l.RestoreName = "restore-label-selector-" + UUIDgen.String() + l.NSBaseName = "backup-label-selector-" + UUIDgen.String() + l.TestMsg = &TestMSG{ + Desc: "Backup with the label selector test", + Text: "Should backup resources with selected label resource", + FailedMSG: "Failed to backup resources with selected label", + } + l.labels = map[string]string{ + "resourcefiltering": "true", + } + l.labelSelector = "resourcefiltering" + l.BackupArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", l.BackupName, + "--selector", "resourcefiltering=true", + "--default-volumes-to-restic", "--wait", + } + + l.RestoreArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", l.RestoreName, + "--from-backup", l.BackupName, "--wait", + } +} + +func (l *LabelSelector) CreateResources() error { + l.Ctx, _ = context.WithTimeout(context.Background(), 60*time.Minute) + for nsNum := 0; nsNum < l.NamespacesTotal; nsNum++ { + namespace := fmt.Sprintf("%s-%00000d", l.NSBaseName, nsNum) + fmt.Printf("Creating resources in namespace ...%s\n", namespace) + labels := l.labels + if nsNum%2 == 0 { + labels = map[string]string{ + "resourcefiltering": "false", + } + } + if err := CreateNamespaceWithLabel(l.Ctx, l.Client, namespace, labels); err != nil { + return errors.Wrapf(err, "Failed to create namespace %s", namespace) + } + + //Create deployment + fmt.Printf("Creating deployment in namespaces ...%s\n", namespace) + + deployment := NewDeployment(l.NSBaseName, namespace, l.replica, labels) + deployment, err := CreateDeployment(l.Client.ClientGo, namespace, deployment) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to delete the namespace %q", namespace)) + } + err = WaitForReadyDeployment(l.Client.ClientGo, namespace, deployment.Name) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to ensure job completion in namespace: %q", namespace)) + } + //Create Secret + secretName := l.NSBaseName + fmt.Printf("Creating secret %s in namespaces ...%s\n", secretName, namespace) + _, err = CreateSecret(l.Client.ClientGo, namespace, secretName, l.labels) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to create secret in the namespace %q", namespace)) + } + err = WaitForSecretsComplete(l.Client.ClientGo, namespace, secretName) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to ensure secret completion in namespace: %q", namespace)) + } + } + return nil +} + +func (l *LabelSelector) Verify() error { + for nsNum := 0; nsNum < l.NamespacesTotal; nsNum++ { + namespace := fmt.Sprintf("%s-%00000d", l.NSBaseName, nsNum) + fmt.Printf("Checking resources in namespaces ...%s\n", namespace) + //Check deployment + _, err := GetDeployment(l.Client.ClientGo, namespace, l.NSBaseName) + if nsNum%2 == 1 { //include + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to list deployment in namespace: %q", namespace)) + } + } else { //exclude + if err == nil { + return fmt.Errorf("failed to exclude deployment in namespaces %q", namespace) + } else { + if apierrors.IsNotFound(err) { //resource should be excluded + return nil + } + return errors.Wrap(err, fmt.Sprintf("failed to list deployment in namespace: %q", namespace)) + } + } + + //Check secrets + secretsList, err := l.Client.ClientGo.CoreV1().Secrets(namespace).List(context.TODO(), metav1.ListOptions{ + LabelSelector: l.labelSelector, + }) + + if nsNum%2 == 0 { //include + if err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to list secrets in namespace: %q", namespace)) + } else if len(secretsList.Items) == 0 { + return errors.Errorf(fmt.Sprintf("no secrets found in namespace: %q", namespace)) + } + } else { //exclude + if err == nil { + return fmt.Errorf("failed to exclude secrets in namespaces %q", namespace) + } else { + if apierrors.IsNotFound(err) { //resource should be excluded + return nil + } + return errors.Wrap(err, fmt.Sprintf("failed to list secrets in namespace: %q", namespace)) + } + } + } + return nil +} diff --git a/test/e2e/scale/multiple_namespaces.go b/test/e2e/scale/multiple_namespaces.go index dd7832d3b..91e8b5636 100644 --- a/test/e2e/scale/multiple_namespaces.go +++ b/test/e2e/scale/multiple_namespaces.go @@ -24,8 +24,8 @@ import ( "github.com/google/uuid" - k8sutils "github.com/vmware-tanzu/velero/test/e2e/util/k8s" - veleroutils "github.com/vmware-tanzu/velero/test/e2e/util/velero" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" + . "github.com/vmware-tanzu/velero/test/e2e/util/velero" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -37,7 +37,7 @@ import ( func BasicBackupRestore() { - client, err := k8sutils.NewTestClient() + client, err := NewTestClient() Expect(err).To(Succeed(), "Failed to instantiate cluster client for multiple namespace tests") BeforeEach(func() { @@ -46,13 +46,13 @@ func BasicBackupRestore() { UUIDgen, err = uuid.NewRandom() Expect(err).To(Succeed()) if VeleroCfg.InstallVelero { - Expect(veleroutils.VeleroInstall(context.Background(), &VeleroCfg, "", false)).To(Succeed()) + Expect(VeleroInstall(context.Background(), &VeleroCfg, "", false)).To(Succeed()) } }) AfterEach(func() { if VeleroCfg.InstallVelero { - err := veleroutils.VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) + err := VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) Expect(err).To(Succeed()) } @@ -71,7 +71,7 @@ func BasicBackupRestore() { func MultiNSBackupRestore() { - client, err := k8sutils.NewTestClient() + client, err := NewTestClient() Expect(err).To(Succeed(), "Failed to instantiate cluster client for multiple namespace tests") BeforeEach(func() { @@ -80,13 +80,13 @@ func MultiNSBackupRestore() { UUIDgen, err = uuid.NewRandom() Expect(err).To(Succeed()) if VeleroCfg.InstallVelero { - Expect(veleroutils.VeleroInstall(context.Background(), &VeleroCfg, "", false)).To(Succeed()) + Expect(VeleroInstall(context.Background(), &VeleroCfg, "", false)).To(Succeed()) } }) AfterEach(func() { if VeleroCfg.InstallVelero { - err := veleroutils.VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) + err := VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) Expect(err).To(Succeed()) } @@ -103,8 +103,8 @@ func MultiNSBackupRestore() { }) } -func RunMultipleNamespaceTest(ctx context.Context, client k8sutils.TestClient, nsBaseName string, numberOfNamespaces int, backupName string, restoreName string) error { - defer k8sutils.CleanupNamespaces(context.Background(), client, nsBaseName) // Run at exit for final cleanup +func RunMultipleNamespaceTest(ctx context.Context, client TestClient, nsBaseName string, numberOfNamespaces int, backupName string, restoreName string) error { + defer CleanupNamespaces(context.Background(), client, nsBaseName) // Run at exit for final cleanup var excludeNamespaces []string // Currently it's hard to build a large list of namespaces to include and wildcards do not work so instead @@ -121,30 +121,30 @@ func RunMultipleNamespaceTest(ctx context.Context, client k8sutils.TestClient, n fmt.Printf("Creating namespaces ...\n") for nsNum := 0; nsNum < numberOfNamespaces; nsNum++ { createNSName := fmt.Sprintf("%s-%00000d", nsBaseName, nsNum) - if err := k8sutils.CreateNamespace(ctx, client, createNSName); err != nil { + if err := CreateNamespace(ctx, client, createNSName); err != nil { return errors.Wrapf(err, "Failed to create namespace %s", createNSName) } } - if err := veleroutils.VeleroBackupExcludeNamespaces(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backupName, excludeNamespaces); err != nil { - veleroutils.RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backupName, "") + if err := VeleroBackupExcludeNamespaces(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backupName, excludeNamespaces); err != nil { + RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backupName, "") return errors.Wrapf(err, "Failed to backup backup namespaces %s-*", nsBaseName) } - err = k8sutils.CleanupNamespaces(ctx, client, nsBaseName) + err = CleanupNamespaces(ctx, client, nsBaseName) if err != nil { return errors.Wrap(err, "Could cleanup retrieve namespaces") } - err = veleroutils.VeleroRestore(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, restoreName, backupName) + err = VeleroRestore(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, restoreName, backupName) if err != nil { - veleroutils.RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, "", restoreName) + RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, "", restoreName) return errors.Wrap(err, "Restore failed") } // Verify that we got back all of the namespaces we created for nsNum := 0; nsNum < numberOfNamespaces; nsNum++ { checkNSName := fmt.Sprintf("%s-%00000d", nsBaseName, nsNum) - checkNS, err := k8sutils.GetNamespace(ctx, client, checkNSName) + checkNS, err := GetNamespace(ctx, client, checkNSName) if err != nil { return errors.Wrapf(err, "Could not retrieve test namespace %s", checkNSName) } diff --git a/test/e2e/test/test.go b/test/e2e/test/test.go new file mode 100644 index 000000000..4b61f6cd3 --- /dev/null +++ b/test/e2e/test/test.go @@ -0,0 +1,164 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package test + +import ( + "context" + "flag" + "fmt" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + + "github.com/pkg/errors" + + . "github.com/vmware-tanzu/velero/test/e2e" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" + . "github.com/vmware-tanzu/velero/test/e2e/util/velero" +) + +type VeleroTest interface { + Init() + CreateResources() error + Backup() error + Destroy() error + Restore() error + Verify() error + Clean() error + GetTestMsg() *TestMSG +} + +type TestMSG struct { + Desc string + Text string + FailedMSG string +} + +type TestCase struct { + BackupName string + RestoreName string + NSBaseName string + BackupArgs []string + RestoreArgs []string + NamespacesTotal int + TestMsg *TestMSG + Client TestClient + Ctx context.Context +} + +var TestClientInstance TestClient + +func TestFunc(test VeleroTest) func() { + return func() { + var err error + TestClientInstance, err = NewTestClient() + Expect(err).To(Succeed(), "Failed to instantiate cluster client for backup tests") + test.Init() + BeforeEach(func() { + flag.Parse() + if VeleroCfg.InstallVelero { + Expect(VeleroInstall(context.Background(), &VeleroCfg, "", false)).To(Succeed()) + } + + }) + + AfterEach(func() { + if VeleroCfg.InstallVelero { + err := VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) + Expect(err).To(Succeed()) + } + }) + + It(test.GetTestMsg().Text, func() { + Expect(RunTestCase(test)).To(Succeed(), test.GetTestMsg().FailedMSG) + }) + } +} + +func (t *TestCase) Init() { +} + +func (t *TestCase) CreateResources() 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, "") + return errors.Wrapf(err, "Failed to backup resources") + } + return nil +} + +func (t *TestCase) Destroy() error { + err := CleanupNamespacesWithPoll(t.Ctx, t.Client, t.NSBaseName) + if err != nil { + return errors.Wrap(err, "Could cleanup retrieve namespaces") + } + return nil +} + +func (t *TestCase) Restore() error { + if err := VeleroCmdExec(t.Ctx, VeleroCfg.VeleroCLI, t.RestoreArgs); err != nil { + RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, t.BackupName, "") + return errors.Wrapf(err, "Failed to restore resources") + } + return nil +} + +func (t *TestCase) Verify() error { + return nil +} + +func (t *TestCase) Clean() error { + return CleanupNamespaces(t.Ctx, t.Client, t.NSBaseName) +} + +func (t *TestCase) GetTestMsg() *TestMSG { + return t.TestMsg +} + +func RunTestCase(test VeleroTest) error { + fmt.Printf("Running test case %s\n", test.GetTestMsg().Desc) + if test == nil { + return errors.New("No case should be tested") + } + + defer test.Clean() + + err := test.CreateResources() + if err != nil { + return err + } + err = test.Backup() + if err != nil { + return err + } + err = test.Destroy() + if err != nil { + return err + } + err = test.Restore() + if err != nil { + return err + } + err = test.Verify() + if err != nil { + return err + } + return nil +} diff --git a/test/e2e/upgrade/upgrade.go b/test/e2e/upgrade/upgrade.go index e5825b79d..a5306f278 100644 --- a/test/e2e/upgrade/upgrade.go +++ b/test/e2e/upgrade/upgrade.go @@ -27,9 +27,9 @@ import ( "github.com/pkg/errors" . "github.com/vmware-tanzu/velero/test/e2e" - k8sutils "github.com/vmware-tanzu/velero/test/e2e/util/k8s" - kibishiiutils "github.com/vmware-tanzu/velero/test/e2e/util/kibishii" - veleroutils "github.com/vmware-tanzu/velero/test/e2e/util/velero" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" + . "github.com/vmware-tanzu/velero/test/e2e/util/kibishii" + . "github.com/vmware-tanzu/velero/test/e2e/util/velero" ) const ( @@ -49,7 +49,7 @@ func BackupUpgradeRestoreTest(useVolumeSnapshots bool) { backupName, restoreName, upgradeFromVeleroCLI string ) - client, err := k8sutils.NewTestClient() + client, err := NewTestClient() Expect(err).To(Succeed(), "Failed to instantiate cluster client for backup tests") BeforeEach(func() { @@ -62,7 +62,7 @@ func BackupUpgradeRestoreTest(useVolumeSnapshots bool) { //Assume tag of velero server image is identical to velero CLI version //Download velero CLI if it's empty according to velero CLI version if (len(VeleroCfg.UpgradeFromVeleroCLI)) == 0 { - upgradeFromVeleroCLI, err = veleroutils.InstallVeleroCLI(VeleroCfg.UpgradeFromVeleroVersion) + upgradeFromVeleroCLI, err = InstallVeleroCLI(VeleroCfg.UpgradeFromVeleroVersion) Expect(err).To(Succeed()) } @@ -79,8 +79,8 @@ func BackupUpgradeRestoreTest(useVolumeSnapshots bool) { tmpCfg.ResticHelperImage = "" tmpCfg.Plugins = "" tmpCfg.CRDsVersion = "" - Expect(veleroutils.VeleroInstall(context.Background(), &tmpCfg, "", useVolumeSnapshots)).To(Succeed()) - Expect(veleroutils.CheckVeleroVersion(context.Background(), upgradeFromVeleroCLI, tmpCfg.UpgradeFromVeleroVersion)).To(Succeed()) + Expect(VeleroInstall(context.Background(), &tmpCfg, "", useVolumeSnapshots)).To(Succeed()) + Expect(CheckVeleroVersion(context.Background(), upgradeFromVeleroCLI, tmpCfg.UpgradeFromVeleroVersion)).To(Succeed()) } else { Skip("Upgrade test is skipped since user don't want to install any other velero") } @@ -88,7 +88,7 @@ func BackupUpgradeRestoreTest(useVolumeSnapshots bool) { AfterEach(func() { if VeleroCfg.InstallVelero { - err = veleroutils.VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) + err = VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) Expect(err).To(Succeed()) } }) @@ -104,28 +104,28 @@ func BackupUpgradeRestoreTest(useVolumeSnapshots bool) { } // runUpgradeTests runs upgrade test on the provider by kibishii. -func runUpgradeTests(client k8sutils.TestClient, veleroCfg *VerleroConfig, upgradeFromVeleroCLI, backupName, restoreName, backupLocation string, +func runUpgradeTests(client TestClient, veleroCfg *VerleroConfig, upgradeFromVeleroCLI, backupName, restoreName, backupLocation string, useVolumeSnapshots bool) error { if veleroCfg.VeleroCLI == "" { return errors.New("empty") } oneHourTimeout, _ := context.WithTimeout(context.Background(), time.Minute*60) - if err := k8sutils.CreateNamespace(oneHourTimeout, client, upgradeNamespace); err != nil { + if err := CreateNamespace(oneHourTimeout, client, upgradeNamespace); err != nil { return errors.Wrapf(err, "Failed to create namespace %s to install Kibishii workload", upgradeNamespace) } defer func() { - if err := k8sutils.DeleteNamespace(context.Background(), client, upgradeNamespace, true); err != nil { + if err := DeleteNamespace(context.Background(), client, upgradeNamespace, true); err != nil { fmt.Println(errors.Wrapf(err, "failed to delete the namespace %q", upgradeNamespace)) } }() - if err := kibishiiutils.KibishiiPrepareBeforeBackup(oneHourTimeout, client, veleroCfg.CloudProvider, upgradeNamespace, veleroCfg.RegistryCredentialFile); err != nil { + if err := KibishiiPrepareBeforeBackup(oneHourTimeout, client, veleroCfg.CloudProvider, upgradeNamespace, veleroCfg.RegistryCredentialFile); err != nil { return errors.Wrapf(err, "Failed to install and prepare data for kibishii %s", upgradeNamespace) } - if err := veleroutils.VeleroBackupNamespace(oneHourTimeout, upgradeFromVeleroCLI, veleroCfg.VeleroNamespace, backupName, upgradeNamespace, backupLocation, useVolumeSnapshots); err != nil { + if err := VeleroBackupNamespace(oneHourTimeout, upgradeFromVeleroCLI, veleroCfg.VeleroNamespace, backupName, upgradeNamespace, backupLocation, useVolumeSnapshots); err != nil { // TODO currently, the upgrade case covers the upgrade path from 1.6 to main and the velero v1.6 doesn't support "debug" command - // TODO move to "veleroutils.RunDebug" after we bump up to 1.7 in the upgrade case - veleroutils.VeleroBackupLogs(context.Background(), upgradeFromVeleroCLI, veleroCfg.VeleroNamespace, backupName) + // TODO move to "RunDebug" after we bump up to 1.7 in the upgrade case + VeleroBackupLogs(context.Background(), upgradeFromVeleroCLI, veleroCfg.VeleroNamespace, backupName) return errors.Wrapf(err, "Failed to backup kibishii namespace %s", upgradeNamespace) } @@ -133,12 +133,12 @@ func runUpgradeTests(client k8sutils.TestClient, veleroCfg *VerleroConfig, upgra // Wait for uploads started by the Velero Plug-in for vSphere to complete // TODO - remove after upload progress monitoring is implemented fmt.Println("Waiting for vSphere uploads to complete") - if err := veleroutils.WaitForVSphereUploadCompletion(oneHourTimeout, time.Hour, upgradeNamespace); err != nil { + if err := WaitForVSphereUploadCompletion(oneHourTimeout, time.Hour, upgradeNamespace); err != nil { return errors.Wrapf(err, "Error waiting for uploads to complete") } } fmt.Printf("Simulating a disaster by removing namespace %s\n", upgradeNamespace) - if err := k8sutils.DeleteNamespace(oneHourTimeout, client, upgradeNamespace, true); err != nil { + if err := DeleteNamespace(oneHourTimeout, client, upgradeNamespace, true); err != nil { return errors.Wrapf(err, "failed to delete namespace %s", upgradeNamespace) } @@ -150,18 +150,18 @@ func runUpgradeTests(client k8sutils.TestClient, veleroCfg *VerleroConfig, upgra time.Sleep(5 * time.Minute) } - if err := veleroutils.VeleroInstall(context.Background(), veleroCfg, "", useVolumeSnapshots); err != nil { + if err := VeleroInstall(context.Background(), veleroCfg, "", useVolumeSnapshots); err != nil { return errors.Wrapf(err, "Failed to install velero from image %s", veleroCfg.VeleroImage) } - if err := veleroutils.CheckVeleroVersion(context.Background(), veleroCfg.VeleroCLI, veleroCfg.VeleroVersion); err != nil { + if err := CheckVeleroVersion(context.Background(), veleroCfg.VeleroCLI, veleroCfg.VeleroVersion); err != nil { return errors.Wrapf(err, "Velero install version mismatch.") } - if err := veleroutils.VeleroRestore(oneHourTimeout, veleroCfg.VeleroCLI, veleroCfg.VeleroNamespace, restoreName, backupName); err != nil { - veleroutils.RunDebug(context.Background(), veleroCfg.VeleroCLI, veleroCfg.VeleroNamespace, "", restoreName) + if err := VeleroRestore(oneHourTimeout, veleroCfg.VeleroCLI, veleroCfg.VeleroNamespace, restoreName, backupName); err != nil { + RunDebug(context.Background(), veleroCfg.VeleroCLI, veleroCfg.VeleroNamespace, "", restoreName) return errors.Wrapf(err, "Restore %s failed from backup %s", restoreName, backupName) } - if err := kibishiiutils.KibishiiVerifyAfterRestore(client, upgradeNamespace, oneHourTimeout); err != nil { + if err := KibishiiVerifyAfterRestore(client, upgradeNamespace, oneHourTimeout); err != nil { return errors.Wrapf(err, "Error verifying kibishii after restore") } diff --git a/test/e2e/util/k8s/client.go b/test/e2e/util/k8s/client.go index 839be2b83..ae7286988 100644 --- a/test/e2e/util/k8s/client.go +++ b/test/e2e/util/k8s/client.go @@ -17,6 +17,8 @@ limitations under the License. package k8s import ( + "sync" + "k8s.io/client-go/kubernetes" kbclient "sigs.k8s.io/controller-runtime/pkg/client" @@ -45,8 +47,21 @@ type TestClient struct { dynamicFactory client.DynamicFactory } -// k8sutils.NewTestClient returns a set of ready-to-use API clients. +var ( + once sync.Once + testClient TestClient + err error +) + func NewTestClient() (TestClient, error) { + once.Do(func() { // <-- atomic, does not allow repeating + testClient, err = InitTestClient() // <-- thread safe + }) + return testClient, err +} + +// NewTestClient returns a set of ready-to-use API clients. +func InitTestClient() (TestClient, error) { config, err := client.LoadConfig() if err != nil { return TestClient{}, err diff --git a/test/e2e/util/k8s/configmap.go b/test/e2e/util/k8s/configmap.go new file mode 100644 index 000000000..73bb1911c --- /dev/null +++ b/test/e2e/util/k8s/configmap.go @@ -0,0 +1,47 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package k8s + +import ( + "golang.org/x/net/context" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + clientset "k8s.io/client-go/kubernetes" +) + +func CreateConfigMap(c clientset.Interface, ns, name string, data map[string]string) (*v1.ConfigMap, error) { + cm := &v1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + Labels: data, + }, + Data: data, + } + return c.CoreV1().ConfigMaps(ns).Create(context.TODO(), cm, metav1.CreateOptions{}) +} + +// WaitForConfigMapComplete uses c to wait for completions to complete for the Job jobName in namespace ns. +func WaitForConfigMapComplete(c clientset.Interface, ns, configmapName string) error { + return wait.Poll(PollInterval, PollTimeout, func() (bool, error) { + _, err := c.CoreV1().ConfigMaps(ns).Get(context.TODO(), configmapName, metav1.GetOptions{}) + if err != nil { + return false, err + } + return true, nil + }) +} diff --git a/test/e2e/util/k8s/deployment.go b/test/e2e/util/k8s/deployment.go new file mode 100644 index 000000000..6763c3e9b --- /dev/null +++ b/test/e2e/util/k8s/deployment.go @@ -0,0 +1,95 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package k8s + +import ( + "fmt" + "time" + + "golang.org/x/net/context" + apps "k8s.io/api/apps/v1" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + clientset "k8s.io/client-go/kubernetes" +) + +const ( + JobSelectorKey = "job" + // Poll is how often to Poll pods, nodes and claims. + PollInterval = 2 * time.Second + PollTimeout = 15 * time.Minute +) + +// newDeployment returns a RollingUpdate Deployment with a fake container image +func NewDeployment(name, ns string, replicas int32, labels map[string]string) *apps.Deployment { + return &apps.Deployment{ + TypeMeta: metav1.TypeMeta{ + Kind: "Deployment", + APIVersion: "apps/v1", + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: ns, + Name: name, + Labels: labels, + }, + Spec: apps.DeploymentSpec{ + Replicas: &replicas, + Selector: &metav1.LabelSelector{MatchLabels: labels}, + Strategy: apps.DeploymentStrategy{ + Type: apps.RollingUpdateDeploymentStrategyType, + RollingUpdate: new(apps.RollingUpdateDeployment), + }, + Template: v1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: labels, + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: name, + Image: "busybox:latest", + Command: []string{"sleep", "1000000"}, + }, + }, + }, + }, + }, + } +} + +func CreateDeployment(c clientset.Interface, ns string, deployment *apps.Deployment) (*apps.Deployment, error) { + return c.AppsV1().Deployments(ns).Create(context.TODO(), deployment, metav1.CreateOptions{}) +} + +func GetDeployment(c clientset.Interface, ns, name string) (*apps.Deployment, error) { + return c.AppsV1().Deployments(ns).Get(context.TODO(), name, metav1.GetOptions{}) +} + +// WaitForReadyDeployment waits for number of ready replicas to equal number of replicas. +func WaitForReadyDeployment(c clientset.Interface, ns, name string) error { + if err := wait.PollImmediate(PollInterval, PollTimeout, func() (bool, error) { + deployment, err := c.AppsV1().Deployments(ns).Get(context.TODO(), name, metav1.GetOptions{}) + if err != nil { + return false, fmt.Errorf("failed to get deployment %q: %v", name, err) + } + return deployment.Status.ReadyReplicas == *deployment.Spec.Replicas, nil + }); err != nil { + return fmt.Errorf("failed to wait for .readyReplicas to equal .replicas: %v", err) + } + return nil +} diff --git a/test/e2e/util/k8s/namespace.go b/test/e2e/util/k8s/namespace.go index 2c33e32d5..b6a83a62b 100644 --- a/test/e2e/util/k8s/namespace.go +++ b/test/e2e/util/k8s/namespace.go @@ -43,6 +43,16 @@ func CreateNamespace(ctx context.Context, client TestClient, namespace string) e return err } +func CreateNamespaceWithLabel(ctx context.Context, client TestClient, namespace string, label map[string]string) error { + ns := builder.ForNamespace(namespace).Result() + ns.Labels = label + _, err := client.ClientGo.CoreV1().Namespaces().Create(ctx, ns, metav1.CreateOptions{}) + if apierrors.IsAlreadyExists(err) { + return nil + } + return err +} + func GetNamespace(ctx context.Context, client TestClient, namespace string) (*corev1api.Namespace, error) { return client.ClientGo.CoreV1().Namespaces().Get(ctx, namespace, metav1.GetOptions{}) } @@ -68,6 +78,22 @@ func DeleteNamespace(ctx context.Context, client TestClient, namespace string, w }) } +func CleanupNamespacesWithPoll(ctx context.Context, client TestClient, nsBaseName string) error { + namespaces, err := client.ClientGo.CoreV1().Namespaces().List(ctx, v1.ListOptions{}) + if err != nil { + return errors.Wrap(err, "Could not retrieve namespaces") + } + for _, checkNamespace := range namespaces.Items { + if strings.HasPrefix(checkNamespace.Name, nsBaseName) { + err := DeleteNamespace(ctx, client, checkNamespace.Name, true) + if err != nil { + return errors.Wrapf(err, "Could not delete namespace %s", checkNamespace.Name) + } + } + } + return nil +} + func CleanupNamespaces(ctx context.Context, client TestClient, nsBaseName string) error { namespaces, err := client.ClientGo.CoreV1().Namespaces().List(ctx, v1.ListOptions{}) if err != nil { diff --git a/test/e2e/util/k8s/secret.go b/test/e2e/util/k8s/secret.go new file mode 100644 index 000000000..9701559eb --- /dev/null +++ b/test/e2e/util/k8s/secret.go @@ -0,0 +1,46 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package k8s + +import ( + "golang.org/x/net/context" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + clientset "k8s.io/client-go/kubernetes" +) + +func CreateSecret(c clientset.Interface, ns, name string, labels map[string]string) (*v1.Secret, error) { + secret := &v1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + Labels: labels, + }, + } + return c.CoreV1().Secrets(ns).Create(context.TODO(), secret, metav1.CreateOptions{}) +} + +// WaitForSecretsComplete uses c to wait for completions to complete for the Job jobName in namespace ns. +func WaitForSecretsComplete(c clientset.Interface, ns, secretName string) error { + return wait.Poll(PollInterval, PollTimeout, func() (bool, error) { + _, err := c.CoreV1().Secrets(ns).Get(context.TODO(), secretName, metav1.GetOptions{}) + if err != nil { + return false, err + } + return true, nil + }) +} diff --git a/test/e2e/util/kibishii/kibishii_utils.go b/test/e2e/util/kibishii/kibishii_utils.go index 3221f6da8..945006c54 100644 --- a/test/e2e/util/kibishii/kibishii_utils.go +++ b/test/e2e/util/kibishii/kibishii_utils.go @@ -26,8 +26,8 @@ import ( "golang.org/x/net/context" veleroexec "github.com/vmware-tanzu/velero/pkg/util/exec" - k8sutils "github.com/vmware-tanzu/velero/test/e2e/util/k8s" - veleroutils "github.com/vmware-tanzu/velero/test/e2e/util/velero" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" + . "github.com/vmware-tanzu/velero/test/e2e/util/velero" ) const ( @@ -36,14 +36,14 @@ const ( ) // RunKibishiiTests runs kibishii tests on the provider. -func RunKibishiiTests(client k8sutils.TestClient, providerName, veleroCLI, veleroNamespace, backupName, restoreName, backupLocation string, +func RunKibishiiTests(client TestClient, providerName, veleroCLI, veleroNamespace, backupName, restoreName, backupLocation string, useVolumeSnapshots bool, registryCredentialFile string) error { oneHourTimeout, _ := context.WithTimeout(context.Background(), time.Minute*60) - if err := k8sutils.CreateNamespace(oneHourTimeout, client, kibishiiNamespace); err != nil { + if err := CreateNamespace(oneHourTimeout, client, kibishiiNamespace); err != nil { return errors.Wrapf(err, "Failed to create namespace %s to install Kibishii workload", kibishiiNamespace) } defer func() { - if err := k8sutils.DeleteNamespace(context.Background(), client, kibishiiNamespace, true); err != nil { + if err := DeleteNamespace(context.Background(), client, kibishiiNamespace, true); err != nil { fmt.Println(errors.Wrapf(err, "failed to delete the namespace %q", kibishiiNamespace)) } }() @@ -51,8 +51,8 @@ func RunKibishiiTests(client k8sutils.TestClient, providerName, veleroCLI, veler return errors.Wrapf(err, "Failed to install and prepare data for kibishii %s", kibishiiNamespace) } - if err := veleroutils.VeleroBackupNamespace(oneHourTimeout, veleroCLI, veleroNamespace, backupName, kibishiiNamespace, backupLocation, useVolumeSnapshots); err != nil { - veleroutils.RunDebug(context.Background(), veleroCLI, veleroNamespace, backupName, "") + if err := VeleroBackupNamespace(oneHourTimeout, veleroCLI, veleroNamespace, backupName, kibishiiNamespace, backupLocation, useVolumeSnapshots); err != nil { + RunDebug(context.Background(), veleroCLI, veleroNamespace, backupName, "") return errors.Wrapf(err, "Failed to backup kibishii namespace %s", kibishiiNamespace) } @@ -60,12 +60,12 @@ func RunKibishiiTests(client k8sutils.TestClient, providerName, veleroCLI, veler // Wait for uploads started by the Velero Plug-in for vSphere to complete // TODO - remove after upload progress monitoring is implemented fmt.Println("Waiting for vSphere uploads to complete") - if err := veleroutils.WaitForVSphereUploadCompletion(oneHourTimeout, time.Hour, kibishiiNamespace); err != nil { + if err := WaitForVSphereUploadCompletion(oneHourTimeout, time.Hour, kibishiiNamespace); err != nil { return errors.Wrapf(err, "Error waiting for uploads to complete") } } fmt.Printf("Simulating a disaster by removing namespace %s\n", kibishiiNamespace) - if err := k8sutils.DeleteNamespace(oneHourTimeout, client, kibishiiNamespace, true); err != nil { + if err := DeleteNamespace(oneHourTimeout, client, kibishiiNamespace, true); err != nil { return errors.Wrapf(err, "failed to delete namespace %s", kibishiiNamespace) } @@ -77,8 +77,8 @@ func RunKibishiiTests(client k8sutils.TestClient, providerName, veleroCLI, veler time.Sleep(5 * time.Minute) } - if err := veleroutils.VeleroRestore(oneHourTimeout, veleroCLI, veleroNamespace, restoreName, backupName); err != nil { - veleroutils.RunDebug(context.Background(), veleroCLI, veleroNamespace, "", restoreName) + if err := VeleroRestore(oneHourTimeout, veleroCLI, veleroNamespace, restoreName, backupName); err != nil { + RunDebug(context.Background(), veleroCLI, veleroNamespace, "", restoreName) return errors.Wrapf(err, "Restore %s failed from backup %s", restoreName, backupName) } @@ -145,19 +145,19 @@ func verifyData(ctx context.Context, namespace string, levels int, filesPerLevel return nil } -func waitForKibishiiPods(ctx context.Context, client k8sutils.TestClient, kibishiiNamespace string) error { - return k8sutils.WaitForPods(ctx, client, kibishiiNamespace, []string{"jump-pad", "etcd0", "etcd1", "etcd2", "kibishii-deployment-0", "kibishii-deployment-1"}) +func waitForKibishiiPods(ctx context.Context, client TestClient, kibishiiNamespace string) error { + return WaitForPods(ctx, client, kibishiiNamespace, []string{"jump-pad", "etcd0", "etcd1", "etcd2", "kibishii-deployment-0", "kibishii-deployment-1"}) } -func KibishiiPrepareBeforeBackup(oneHourTimeout context.Context, client k8sutils.TestClient, providerName, kibishiiNamespace, registryCredentialFile string) error { +func KibishiiPrepareBeforeBackup(oneHourTimeout context.Context, client TestClient, providerName, kibishiiNamespace, registryCredentialFile string) error { serviceAccountName := "default" // wait until the service account is created before patch the image pull secret - if err := k8sutils.WaitUntilServiceAccountCreated(oneHourTimeout, client, kibishiiNamespace, serviceAccountName, 10*time.Minute); err != nil { + if err := WaitUntilServiceAccountCreated(oneHourTimeout, client, kibishiiNamespace, serviceAccountName, 10*time.Minute); err != nil { return errors.Wrapf(err, "failed to wait the service account %q created under the namespace %q", serviceAccountName, kibishiiNamespace) } // add the image pull secret to avoid the image pull limit issue of Docker Hub - if err := k8sutils.PatchServiceAccountWithImagePullSecret(oneHourTimeout, client, kibishiiNamespace, serviceAccountName, registryCredentialFile); err != nil { + if err := PatchServiceAccountWithImagePullSecret(oneHourTimeout, client, kibishiiNamespace, serviceAccountName, registryCredentialFile); err != nil { return errors.Wrapf(err, "failed to patch the service account %q under the namespace %q", serviceAccountName, kibishiiNamespace) } @@ -178,7 +178,7 @@ func KibishiiPrepareBeforeBackup(oneHourTimeout context.Context, client k8sutils return nil } -func KibishiiVerifyAfterRestore(client k8sutils.TestClient, kibishiiNamespace string, oneHourTimeout context.Context) error { +func KibishiiVerifyAfterRestore(client TestClient, kibishiiNamespace string, oneHourTimeout context.Context) error { // wait for kibishii pod startup // TODO - Fix kibishii so we can check that it is ready to go fmt.Printf("Waiting for kibishii pods to be ready\n") diff --git a/test/e2e/util/velero/install.go b/test/e2e/util/velero/install.go index 38c58f18a..b843fb0be 100644 --- a/test/e2e/util/velero/install.go +++ b/test/e2e/util/velero/install.go @@ -36,7 +36,7 @@ import ( "github.com/vmware-tanzu/velero/pkg/cmd/cli/install" velerexec "github.com/vmware-tanzu/velero/pkg/util/exec" . "github.com/vmware-tanzu/velero/test/e2e" - k8sutils "github.com/vmware-tanzu/velero/test/e2e/util/k8s" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" ) // we provide more install options other than the standard install.InstallOptions in E2E test @@ -69,7 +69,7 @@ func VeleroInstall(ctx context.Context, veleroCfg *VerleroConfig, features strin // Snapshot location specified veleroCfg.ObjectStoreProvider = "aws" } - err = k8sutils.EnsureClusterExists(ctx) + err = EnsureClusterExists(ctx) if err != nil { return errors.WithMessage(err, "Failed to ensure Kubernetes cluster exists") } From a3d196ee856f54b608368f3d218706dfc024fdcd Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Mon, 6 Dec 2021 20:10:20 +0800 Subject: [PATCH 064/136] Bump up Go to 1.17 Signed-off-by: Daniel Jiang --- .github/workflows/pr-ci-check.yml | 2 +- .github/workflows/push.yml | 2 +- Dockerfile | 2 +- Tiltfile | 2 +- changelogs/unreleased/4431-reasonerjt | 1 + go.mod | 75 ++++++++++++++++++++- hack/build-image/Dockerfile | 2 +- pkg/apis/velero/v1/zz_generated.deepcopy.go | 1 + 8 files changed, 80 insertions(+), 7 deletions(-) create mode 100644 changelogs/unreleased/4431-reasonerjt diff --git a/.github/workflows/pr-ci-check.yml b/.github/workflows/pr-ci-check.yml index 9edf3c808..12bb06622 100644 --- a/.github/workflows/pr-ci-check.yml +++ b/.github/workflows/pr-ci-check.yml @@ -8,7 +8,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: 1.16 + go-version: 1.17 id: go - name: Check out the code uses: actions/checkout@v2 diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 5c61ab7e6..4d232ef9d 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -16,7 +16,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: 1.16 + go-version: 1.17 id: go - name: Check out code into the Go module directory diff --git a/Dockerfile b/Dockerfile index bdead4f8f..4040e18dc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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.16 as builder-env +FROM --platform=$BUILDPLATFORM golang:1.17 as builder-env ARG GOPROXY ARG PKG diff --git a/Tiltfile b/Tiltfile index 7fbbca52f..6ea745531 100644 --- a/Tiltfile +++ b/Tiltfile @@ -50,7 +50,7 @@ git_sha = str(local("git rev-parse HEAD", quiet = True, echo_off = True)).strip( tilt_helper_dockerfile_header = """ # Tilt image -FROM golang:1.16.6 as tilt-helper +FROM golang:1.17 as tilt-helper # Support live reloading with Tilt RUN wget --output-document /restart.sh --quiet https://raw.githubusercontent.com/windmilleng/rerun-process-wrapper/master/restart.sh && \ diff --git a/changelogs/unreleased/4431-reasonerjt b/changelogs/unreleased/4431-reasonerjt new file mode 100644 index 000000000..4e9dd6900 --- /dev/null +++ b/changelogs/unreleased/4431-reasonerjt @@ -0,0 +1 @@ +Bump up Go to 1.17 \ No newline at end of file diff --git a/go.mod b/go.mod index df883ede5..b55a85266 100644 --- a/go.mod +++ b/go.mod @@ -1,13 +1,12 @@ module github.com/vmware-tanzu/velero -go 1.16 +go 1.17 require ( github.com/Azure/azure-sdk-for-go v42.0.0+incompatible github.com/Azure/go-autorest/autorest v0.11.21 github.com/Azure/go-autorest/autorest/azure/auth v0.5.8 github.com/Azure/go-autorest/autorest/to v0.3.0 - github.com/Azure/go-autorest/autorest/validation v0.2.0 // indirect github.com/aws/aws-sdk-go v1.28.2 github.com/bombsimon/logrusr v1.1.0 github.com/evanphx/json-patch v4.11.0+incompatible @@ -45,4 +44,76 @@ require ( sigs.k8s.io/controller-runtime v0.10.2 ) +require ( + cloud.google.com/go v0.93.3 // indirect + github.com/Azure/go-autorest v14.2.0+incompatible // indirect + github.com/Azure/go-autorest/autorest/adal v0.9.14 // indirect + github.com/Azure/go-autorest/autorest/azure/cli v0.4.2 // indirect + github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect + github.com/Azure/go-autorest/autorest/validation v0.2.0 // indirect + github.com/Azure/go-autorest/logger v0.2.1 // indirect + github.com/Azure/go-autorest/tracing v0.6.0 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/blang/semver v3.5.1+incompatible // indirect + github.com/cespare/xxhash/v2 v2.1.1 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/dimchansky/utfbom v1.1.1 // indirect + github.com/form3tech-oss/jwt-go v3.2.3+incompatible // indirect + github.com/fsnotify/fsnotify v1.5.1 // indirect + github.com/go-logr/logr v0.4.0 // indirect + github.com/go-logr/zapr v0.4.0 // indirect + github.com/gobuffalo/flect v0.2.3 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/google/go-cmp v0.5.6 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/googleapis/gnostic v0.5.5 // indirect + github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb // indirect + github.com/imdario/mergo v0.3.12 // indirect + github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af // indirect + github.com/json-iterator/go v1.1.11 // indirect + github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect + github.com/mattn/go-colorable v0.1.9 // indirect + github.com/mattn/go-isatty v0.0.14 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect + github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/mitchellh/go-testing-interface v1.0.0 // indirect + github.com/moby/spdystream v0.2.0 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.1 // indirect + github.com/nxadm/tail v1.4.8 // indirect + github.com/oklog/run v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/prometheus/client_model v0.2.0 // indirect + github.com/prometheus/common v0.26.0 // indirect + github.com/prometheus/procfs v0.6.0 // indirect + github.com/stretchr/objx v0.2.0 // indirect + github.com/vladimirvivien/gexe v0.1.1 // indirect + go.starlark.net v0.0.0-20201006213952-227f4aabceb5 // indirect + go.uber.org/atomic v1.7.0 // indirect + go.uber.org/multierr v1.6.0 // indirect + go.uber.org/zap v1.19.0 // indirect + golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 // indirect + golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f // indirect + golang.org/x/sys v0.0.0-20211019181941-9d821ace8654 // indirect + golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d // indirect + golang.org/x/text v0.3.7 // indirect + golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect + gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71 // indirect + google.golang.org/protobuf v1.27.1 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + k8s.io/component-base v0.22.2 // indirect + k8s.io/klog/v2 v2.9.0 // indirect + k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e // indirect + k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.1.2 // indirect + sigs.k8s.io/yaml v1.3.0 // indirect +) + replace github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.2 diff --git a/hack/build-image/Dockerfile b/hack/build-image/Dockerfile index 39e53ec30..5f3564631 100644 --- a/hack/build-image/Dockerfile +++ b/hack/build-image/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM golang:1.16 +FROM golang:1.17 ARG GOPROXY diff --git a/pkg/apis/velero/v1/zz_generated.deepcopy.go b/pkg/apis/velero/v1/zz_generated.deepcopy.go index 021ee11ff..27e687336 100644 --- a/pkg/apis/velero/v1/zz_generated.deepcopy.go +++ b/pkg/apis/velero/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* From 3e86bf0cc8f8330db22a312694d1e33350fa8fd1 Mon Sep 17 00:00:00 2001 From: Julien Godin Date: Thu, 7 Oct 2021 10:19:40 +0200 Subject: [PATCH 065/136] feat: improve documentation for reverse selector Signed-off-by: Julien Godin --- site/content/docs/main/resource-filtering.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/site/content/docs/main/resource-filtering.md b/site/content/docs/main/resource-filtering.md index 6c1470e04..ddcd97e4a 100644 --- a/site/content/docs/main/resource-filtering.md +++ b/site/content/docs/main/resource-filtering.md @@ -88,6 +88,12 @@ Wildcard takes precedence when both a wildcard and specific resource are include ```bash velero backup create --selector = ``` +* Include resources that are not matching the selector + ```bash + velero backup create --selector != + ``` + +For more information read the [Kubernetes label selector documentation](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors) ## Excludes From d0e660f435378062f37e6bf474b1748daf11bebf Mon Sep 17 00:00:00 2001 From: Dave Smith-Uchida Date: Wed, 1 Dec 2021 14:29:25 -0800 Subject: [PATCH 066/136] Added UploadProgressFeature flag to enable UploadProgressMonitoring and ItemSnapshotters Signed-off-by: Dave Smith-Uchida --- changelogs/unreleased/4416-dsmithuchida | 2 ++ pkg/apis/velero/v1/constants.go | 4 ++++ 2 files changed, 6 insertions(+) create mode 100644 changelogs/unreleased/4416-dsmithuchida diff --git a/changelogs/unreleased/4416-dsmithuchida b/changelogs/unreleased/4416-dsmithuchida new file mode 100644 index 000000000..60e4a30fa --- /dev/null +++ b/changelogs/unreleased/4416-dsmithuchida @@ -0,0 +1,2 @@ +Added UploadProgressFeature flag to enable Upload Progress Monitoring and Item +Snapshotters. diff --git a/pkg/apis/velero/v1/constants.go b/pkg/apis/velero/v1/constants.go index a7292d568..4d06be19f 100644 --- a/pkg/apis/velero/v1/constants.go +++ b/pkg/apis/velero/v1/constants.go @@ -46,4 +46,8 @@ const ( // APIGroupVersionsFeatureFlag is the feature flag string that defines whether or not to handle multiple API Group Versions APIGroupVersionsFeatureFlag = "EnableAPIGroupVersions" + + // UploadProgressFeatureFlag is the feature flag string that defines whether or not upload progress monitoring is enabled + // and whether or not ItemSnapshotters should be invoked + UploadProgressFeatureFlag = "EnableUploadProgress" ) From c58fc1445ef79751db5da448e3f637fb8102c582 Mon Sep 17 00:00:00 2001 From: ming qiu Date: Wed, 8 Dec 2021 17:04:22 +0800 Subject: [PATCH 067/136] Limit backup namespaces on test resource filtering cases Signed-off-by: ming qiu --- changelogs/unreleased/4437-mqiu | 1 + test/e2e/resource-filtering/base.go | 19 +++++++++++-- test/e2e/resource-filtering/exclude_label.go | 26 ++++++++++++----- .../resource-filtering/exclude_namespaces.go | 18 +++++++----- .../resource-filtering/exclude_resources.go | 19 ++++++++----- .../resource-filtering/include_namespaces.go | 22 ++++++--------- .../resource-filtering/include_resources.go | 14 ++++++---- test/e2e/resource-filtering/label_selector.go | 24 ++++++++++++---- test/e2e/test/test.go | 28 ++++++++++--------- 9 files changed, 109 insertions(+), 62 deletions(-) create mode 100644 changelogs/unreleased/4437-mqiu diff --git a/changelogs/unreleased/4437-mqiu b/changelogs/unreleased/4437-mqiu new file mode 100644 index 000000000..75c03a143 --- /dev/null +++ b/changelogs/unreleased/4437-mqiu @@ -0,0 +1 @@ +Limit backup namespaces on test resource filtering cases diff --git a/test/e2e/resource-filtering/base.go b/test/e2e/resource-filtering/base.go index 77d97da19..fcfd1fc37 100644 --- a/test/e2e/resource-filtering/base.go +++ b/test/e2e/resource-filtering/base.go @@ -19,6 +19,7 @@ package filtering import ( "context" "fmt" + "math/rand" "time" "github.com/google/uuid" @@ -41,14 +42,15 @@ type FilteringCase struct { var testInBackup = FilteringCase{IsTestInBackup: true} var testInRestore = FilteringCase{IsTestInBackup: false} -func (f *FilteringCase) Init() { +func (f *FilteringCase) Init() error { + rand.Seed(time.Now().UnixNano()) UUIDgen, _ = uuid.NewRandom() f.replica = int32(2) f.labels = map[string]string{"resourcefiltering": "true"} f.labelSelector = "resourcefiltering" f.Client = TestClientInstance - f.NamespacesTotal = 5 + f.NamespacesTotal = 3 f.BackupArgs = []string{ "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", f.BackupName, "--default-volumes-to-restic", "--wait", @@ -58,6 +60,9 @@ func (f *FilteringCase) Init() { "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", f.RestoreName, "--from-backup", f.BackupName, "--wait", } + + f.NSIncluded = &[]string{} + return nil } func (f *FilteringCase) CreateResources() error { @@ -68,7 +73,15 @@ func (f *FilteringCase) CreateResources() error { if err := CreateNamespace(f.Ctx, f.Client, namespace); err != nil { return errors.Wrapf(err, "Failed to create namespace %s", namespace) } - + serviceAccountName := "default" + // wait until the service account is created before patch the image pull secret + if err := WaitUntilServiceAccountCreated(f.Ctx, f.Client, namespace, serviceAccountName, 10*time.Minute); err != nil { + return errors.Wrapf(err, "failed to wait the service account %q created under the namespace %q", serviceAccountName, namespace) + } + // add the image pull secret to avoid the image pull limit issue of Docker Hub + if err := PatchServiceAccountWithImagePullSecret(f.Ctx, f.Client, namespace, serviceAccountName, VeleroCfg.RegistryCredentialFile); err != nil { + return errors.Wrapf(err, "failed to patch the service account %q under the namespace %q", serviceAccountName, namespace) + } //Create deployment fmt.Printf("Creating deployment in namespaces ...%s\n", namespace) deployment := NewDeployment(f.NSBaseName, namespace, f.replica, f.labels) diff --git a/test/e2e/resource-filtering/exclude_label.go b/test/e2e/resource-filtering/exclude_label.go index 919be15f5..72307fe3f 100644 --- a/test/e2e/resource-filtering/exclude_label.go +++ b/test/e2e/resource-filtering/exclude_label.go @@ -19,10 +19,9 @@ package filtering import ( "context" "fmt" - "math/rand" + "strings" "time" - "github.com/google/uuid" "github.com/pkg/errors" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -42,24 +41,28 @@ type ExcludeFromBackup struct { var ExcludeFromBackupTest func() = TestFunc(&ExcludeFromBackup{testInBackup}) -func (e *ExcludeFromBackup) Init() { - rand.Seed(time.Now().UnixNano()) - UUIDgen, _ = uuid.NewRandom() +func (e *ExcludeFromBackup) Init() error { e.FilteringCase.Init() e.BackupName = "backup-exclude-from-backup-" + UUIDgen.String() - e.RestoreName = "restore-exclude-from-backup-" + UUIDgen.String() + e.RestoreName = "restore-" + UUIDgen.String() e.NSBaseName = "exclude-from-backup-" + UUIDgen.String() e.TestMsg = &TestMSG{ Desc: "Backup with the label velero.io/exclude-from-backup=true are not included test", Text: "Should not backup resources with the label velero.io/exclude-from-backup=true", FailedMSG: "Failed to backup resources with the label velero.io/exclude-from-backup=true", } + for nsNum := 0; nsNum < e.NamespacesTotal; nsNum++ { + createNSName := fmt.Sprintf("%s-%00000d", e.NSBaseName, nsNum) + *e.NSIncluded = append(*e.NSIncluded, createNSName) + } e.labels = map[string]string{ "velero.io/exclude-from-backup": "true", } e.labelSelector = "velero.io/exclude-from-backup" + e.BackupArgs = []string{ "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", e.BackupName, + "--include-namespaces", strings.Join(*e.NSIncluded, ","), "--default-volumes-to-restic", "--wait", } @@ -67,6 +70,7 @@ func (e *ExcludeFromBackup) Init() { "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", e.RestoreName, "--from-backup", e.BackupName, "--wait", } + return nil } func (e *ExcludeFromBackup) CreateResources() error { @@ -83,7 +87,15 @@ func (e *ExcludeFromBackup) CreateResources() error { if err := CreateNamespaceWithLabel(e.Ctx, e.Client, namespace, labels); err != nil { return errors.Wrapf(err, "Failed to create namespace %s", namespace) } - + serviceAccountName := "default" + // wait until the service account is created before patch the image pull secret + if err := WaitUntilServiceAccountCreated(e.Ctx, e.Client, namespace, serviceAccountName, 10*time.Minute); err != nil { + return errors.Wrapf(err, "failed to wait the service account %q created under the namespace %q", serviceAccountName, namespace) + } + // add the image pull secret to avoid the image pull limit issue of Docker Hub + if err := PatchServiceAccountWithImagePullSecret(e.Ctx, e.Client, namespace, serviceAccountName, VeleroCfg.RegistryCredentialFile); err != nil { + return errors.Wrapf(err, "failed to patch the service account %q under the namespace %q", serviceAccountName, namespace) + } //Create deployment fmt.Printf("Creating deployment in namespaces ...%s\n", namespace) diff --git a/test/e2e/resource-filtering/exclude_namespaces.go b/test/e2e/resource-filtering/exclude_namespaces.go index 88ccb446e..b76b15fb1 100644 --- a/test/e2e/resource-filtering/exclude_namespaces.go +++ b/test/e2e/resource-filtering/exclude_namespaces.go @@ -19,11 +19,9 @@ package filtering import ( "context" "fmt" - "math/rand" "strings" "time" - "github.com/google/uuid" "github.com/pkg/errors" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -50,21 +48,21 @@ type ExcludeNamespaces struct { var BackupWithExcludeNamespaces func() = TestFunc(&ExcludeNamespaces{FilteringCase: testInBackup}) var RestoreWithExcludeNamespaces func() = TestFunc(&ExcludeNamespaces{FilteringCase: testInRestore}) -func (e *ExcludeNamespaces) Init() { - rand.Seed(time.Now().UnixNano()) - UUIDgen, _ = uuid.NewRandom() +func (e *ExcludeNamespaces) Init() error { e.FilteringCase.Init() - e.BackupName = "backup-exclude-namespaces-" + UUIDgen.String() - e.RestoreName = "restore-exclude-namespaces-" + UUIDgen.String() e.namespacesExcluded = e.NamespacesTotal / 2 e.NSBaseName = "exclude-namespaces-" + UUIDgen.String() if e.IsTestInBackup { + e.BackupName = "backup-exclude-namespaces-" + UUIDgen.String() + e.RestoreName = "restore-" + UUIDgen.String() e.TestMsg = &TestMSG{ Desc: "Backup resources with exclude namespace test", FailedMSG: "Failed to backup and restore with namespace include", Text: fmt.Sprintf("should not backup %d namespaces of %d", e.namespacesExcluded, e.NamespacesTotal), } } else { + e.BackupName = "backup-" + UUIDgen.String() + e.RestoreName = "restore-exclude-namespaces-" + UUIDgen.String() e.TestMsg = &TestMSG{ Desc: "Restore resources with exclude namespace test", FailedMSG: "Failed to restore with namespace exclude", @@ -76,12 +74,15 @@ func (e *ExcludeNamespaces) Init() { createNSName := fmt.Sprintf("%s-%00000d", e.NSBaseName, nsNum) if nsNum < e.namespacesExcluded { *e.nsExcluded = append(*e.nsExcluded, createNSName) + } else { + *e.NSIncluded = append(*e.NSIncluded, createNSName) } } if e.IsTestInBackup { e.BackupArgs = []string{ "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", e.BackupName, "--exclude-namespaces", strings.Join(*e.nsExcluded, ","), + "--include-namespaces", strings.Join(*e.NSIncluded, ","), "--default-volumes-to-restic", "--wait", } @@ -91,8 +92,10 @@ func (e *ExcludeNamespaces) Init() { } } else { + *e.NSIncluded = append(*e.NSIncluded, *e.nsExcluded...) e.BackupArgs = []string{ "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", e.BackupName, + "--include-namespaces", strings.Join(*e.NSIncluded, ","), "--default-volumes-to-restic", "--wait", } @@ -102,6 +105,7 @@ func (e *ExcludeNamespaces) Init() { "--from-backup", e.BackupName, "--wait", } } + return nil } func (e *ExcludeNamespaces) CreateResources() error { diff --git a/test/e2e/resource-filtering/exclude_resources.go b/test/e2e/resource-filtering/exclude_resources.go index 81fd9a133..1080ee70f 100644 --- a/test/e2e/resource-filtering/exclude_resources.go +++ b/test/e2e/resource-filtering/exclude_resources.go @@ -19,10 +19,8 @@ package filtering import ( "context" "fmt" - "math/rand" - "time" + "strings" - "github.com/google/uuid" "github.com/pkg/errors" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -49,11 +47,13 @@ type ExcludeResources struct { var BackupWithExcludeResources func() = TestFunc(&ExcludeResources{testInBackup}) var RestoreWithExcludeResources func() = TestFunc(&ExcludeResources{testInRestore}) -func (e *ExcludeResources) Init() { - rand.Seed(time.Now().UnixNano()) - UUIDgen, _ = uuid.NewRandom() +func (e *ExcludeResources) Init() error { e.FilteringCase.Init() e.NSBaseName = "exclude-resources-" + UUIDgen.String() + for nsNum := 0; nsNum < e.NamespacesTotal; nsNum++ { + createNSName := fmt.Sprintf("%s-%00000d", e.NSBaseName, nsNum) + *e.NSIncluded = append(*e.NSIncluded, createNSName) + } if e.IsTestInBackup { // testing case backup with exclude-resources option e.TestMsg = &TestMSG{ Desc: "Backup resources with resources included test", @@ -64,6 +64,7 @@ func (e *ExcludeResources) Init() { e.RestoreName = "restore-" + UUIDgen.String() e.BackupArgs = []string{ "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", e.BackupName, + "--include-namespaces", strings.Join(*e.NSIncluded, ","), "--exclude-resources", "secrets", "--default-volumes-to-restic", "--wait", } @@ -73,15 +74,18 @@ func (e *ExcludeResources) Init() { "--from-backup", e.BackupName, "--wait", } } else { // testing case restore with exclude-resources option + e.BackupName = "backup-" + UUIDgen.String() + e.RestoreName = "restore-exclude-resources-" + UUIDgen.String() e.TestMsg = &TestMSG{ Desc: "Restore resources with resources included test", Text: "Should not restore resources which is excluded others should be backup", FailedMSG: "Failed to restore with resource exclude", } - e.BackupName = "backup-" + UUIDgen.String() + e.BackupName = "backup-exclude-resources-" + UUIDgen.String() e.RestoreName = "restore-exclude-resources-" + UUIDgen.String() e.BackupArgs = []string{ "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", e.BackupName, + "--include-namespaces", strings.Join(*e.NSIncluded, ","), "--default-volumes-to-restic", "--wait", } e.RestoreArgs = []string{ @@ -90,6 +94,7 @@ func (e *ExcludeResources) Init() { "--from-backup", e.BackupName, "--wait", } } + return nil } func (e *ExcludeResources) Verify() error { diff --git a/test/e2e/resource-filtering/include_namespaces.go b/test/e2e/resource-filtering/include_namespaces.go index 7476beb0c..1d6fdf49d 100644 --- a/test/e2e/resource-filtering/include_namespaces.go +++ b/test/e2e/resource-filtering/include_namespaces.go @@ -19,11 +19,9 @@ package filtering import ( "context" "fmt" - "math/rand" "strings" "time" - "github.com/google/uuid" "github.com/pkg/errors" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -43,7 +41,7 @@ velero restore create --include-namespaces , Date: Thu, 9 Dec 2021 23:12:59 +0800 Subject: [PATCH 068/136] Fix e2e test failures for the inappropriate optimaze of velero install Signed-off-by: ming qiu --- changelogs/unreleased/4438-mqiu | 1 + test/e2e/test/test.go | 16 +++++++++------- 2 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 changelogs/unreleased/4438-mqiu diff --git a/changelogs/unreleased/4438-mqiu b/changelogs/unreleased/4438-mqiu new file mode 100644 index 000000000..5166acfcc --- /dev/null +++ b/changelogs/unreleased/4438-mqiu @@ -0,0 +1 @@ +Fix e2e test failures for the inappropriate optimaze of velero install diff --git a/test/e2e/test/test.go b/test/e2e/test/test.go index e209909b9..ffb491db0 100644 --- a/test/e2e/test/test.go +++ b/test/e2e/test/test.go @@ -68,30 +68,32 @@ type TestCase struct { } var TestClientInstance TestClient -var isVeleroInstalled bool = false func TestFunc(test VeleroBackupRestoreTest) func() { return func() { var err error TestClientInstance, err = NewTestClient() Expect(err).To(Succeed(), "Failed to instantiate cluster client for backup tests") - test.Init() + Expect(test.Init()).To(Succeed(), "Failed to instantiate test cases") BeforeEach(func() { flag.Parse() - if VeleroCfg.InstallVelero && !isVeleroInstalled { - Expect(VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace)).To((Succeed())) + if VeleroCfg.InstallVelero { Expect(VeleroInstall(context.Background(), &VeleroCfg, "", false)).To(Succeed()) - isVeleroInstalled = true } }) - + AfterEach(func() { + if VeleroCfg.InstallVelero { + Expect(VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace)).To((Succeed())) + } + }) It(test.GetTestMsg().Text, func() { Expect(RunTestCase(test)).To(Succeed(), test.GetTestMsg().FailedMSG) }) } } -func (t *TestCase) Init() { +func (t *TestCase) Init() error { + return nil } func (t *TestCase) CreateResources() error { From 4173c54662ee8c6f4d624dcdba7d1eab030b32bd Mon Sep 17 00:00:00 2001 From: Abigail McCarthy Date: Fri, 10 Dec 2021 09:19:44 -0500 Subject: [PATCH 069/136] Add defaultVolumesToRestic to schedule api docs Signed-off-by: Abigail McCarthy --- site/content/docs/main/api-types/schedule.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site/content/docs/main/api-types/schedule.md b/site/content/docs/main/api-types/schedule.md index 3c98bef16..9c5dc26ce 100644 --- a/site/content/docs/main/api-types/schedule.md +++ b/site/content/docs/main/api-types/schedule.md @@ -78,6 +78,8 @@ spec: # a default value of 30 days will be used. The default can be configured on the velero server # by passing the flag --default-backup-ttl. ttl: 24h0m0s + # Whether restic should be used to take a backup of all pod volumes by default. + defaultVolumesToRestic: true # The labels you want on backup objects, created from this schedule (instead of copying the labels you have on schedule object itself). # When this field is set, the labels from the Schedule resource are not copied to the Backup resource. metadata: From 5677e04bb19ffd3547f1cdcc8c250e9ab59afa9a Mon Sep 17 00:00:00 2001 From: "David L. Smith-Uchida" Date: Fri, 10 Dec 2021 09:53:47 -0800 Subject: [PATCH 070/136] Consolidated code for resolving actions and plugins into ActionResolver (#4410) * Consolidated code for resolving actions and plugins into ActionResolver. Added BackupWithResolvers and RestoreWithResolvers. Introduces ItemSnapshooterResolver to bring ItemSnapshotter plugins into backup and restore. ItemSnapshotters are not used yet. Added action_resolver_test Signed-off-by: Dave Smith-Uchida * Addressed review comments Signed-off-by: Dave Smith-Uchida --- changelogs/unreleased/4410-dsu | 2 + internal/delete/delete_item_action_handler.go | 75 +----- pkg/backup/backup.go | 67 ++--- pkg/backup/item_backupper.go | 22 +- pkg/backup/request.go | 11 +- pkg/controller/backup_controller.go | 11 +- pkg/controller/backup_controller_test.go | 10 + pkg/controller/restore_controller.go | 11 +- pkg/controller/restore_controller_test.go | 20 +- pkg/plugin/framework/action_resolver.go | 242 ++++++++++++++++++ pkg/plugin/framework/action_resolver_test.go | 93 +++++++ pkg/plugin/velero/shared.go | 8 +- pkg/restore/restore.go | 104 ++++---- pkg/restore/restore_test.go | 14 +- pkg/test/fake_mapper.go | 10 + 15 files changed, 498 insertions(+), 202 deletions(-) create mode 100644 changelogs/unreleased/4410-dsu create mode 100644 pkg/plugin/framework/action_resolver.go create mode 100644 pkg/plugin/framework/action_resolver_test.go diff --git a/changelogs/unreleased/4410-dsu b/changelogs/unreleased/4410-dsu new file mode 100644 index 000000000..7762509c0 --- /dev/null +++ b/changelogs/unreleased/4410-dsu @@ -0,0 +1,2 @@ +Added BackupWithResolvers and RestoreWithResolvers calls. Will eventually replace Backup and Restore methods. +Adds ItemSnapshotters to Backup and Restore workflows. diff --git a/internal/delete/delete_item_action_handler.go b/internal/delete/delete_item_action_handler.go index c8545c345..b2ab39ead 100644 --- a/internal/delete/delete_item_action_handler.go +++ b/internal/delete/delete_item_action_handler.go @@ -19,6 +19,8 @@ package delete import ( "io" + "github.com/vmware-tanzu/velero/pkg/plugin/framework" + "github.com/pkg/errors" "github.com/sirupsen/logrus" "k8s.io/apimachinery/pkg/labels" @@ -29,7 +31,6 @@ import ( "github.com/vmware-tanzu/velero/pkg/archive" "github.com/vmware-tanzu/velero/pkg/discovery" "github.com/vmware-tanzu/velero/pkg/plugin/velero" - "github.com/vmware-tanzu/velero/pkg/util/collections" "github.com/vmware-tanzu/velero/pkg/util/filesystem" ) @@ -41,14 +42,13 @@ type Context struct { Filesystem filesystem.Interface Log logrus.FieldLogger DiscoveryHelper discovery.Helper - - resolvedActions []resolvedAction + resolvedActions []framework.DeleteItemResolvedAction } func InvokeDeleteActions(ctx *Context) error { var err error - ctx.resolvedActions, err = resolveActions(ctx.Actions, ctx.DiscoveryHelper) - + resolver := framework.NewDeleteItemActionResolver(ctx.Actions) + ctx.resolvedActions, err = resolver.ResolveActions(ctx.DiscoveryHelper) // No actions installed and no error means we don't have to continue; // just do the backup deletion without worrying about plugins. if len(ctx.resolvedActions) == 0 && err == nil { @@ -119,10 +119,10 @@ func InvokeDeleteActions(ctx *Context) error { itemLog.Infof("invoking DeleteItemAction plugins") for _, action := range actions { - if !action.selector.Matches(labels.Set(obj.GetLabels())) { + if !action.Selector.Matches(labels.Set(obj.GetLabels())) { continue } - err = action.Execute(&velero.DeleteItemActionExecuteInput{ + err = action.DeleteItemAction.Execute(&velero.DeleteItemActionExecuteInput{ Item: obj, Backup: ctx.Backup, }) @@ -139,65 +139,12 @@ func InvokeDeleteActions(ctx *Context) error { } // getApplicableActions takes resolved DeleteItemActions and filters them for a given group/resource and namespace. -func (ctx *Context) getApplicableActions(groupResource schema.GroupResource, namespace string) []resolvedAction { - var actions []resolvedAction - +func (ctx *Context) getApplicableActions(groupResource schema.GroupResource, namespace string) []framework.DeleteItemResolvedAction { + var actions []framework.DeleteItemResolvedAction for _, action := range ctx.resolvedActions { - if !action.resourceIncludesExcludes.ShouldInclude(groupResource.String()) { - continue + if action.ShouldUse(groupResource, namespace, nil, ctx.Log) { + actions = append(actions, action) } - - if namespace != "" && !action.namespaceIncludesExcludes.ShouldInclude(namespace) { - continue - } - - if namespace == "" && !action.namespaceIncludesExcludes.IncludeEverything() { - continue - } - - actions = append(actions, action) } - return actions } - -// resolvedActions are DeleteItemActions decorated with resource/namespace include/exclude collections, as well as label selectors for easy comparison. -type resolvedAction struct { - velero.DeleteItemAction - - resourceIncludesExcludes *collections.IncludesExcludes - namespaceIncludesExcludes *collections.IncludesExcludes - selector labels.Selector -} - -// resolveActions resolves the AppliesTo ResourceSelectors of DeleteItemActions plugins against the Kubernetes discovery API for fully-qualified names. -func resolveActions(actions []velero.DeleteItemAction, helper discovery.Helper) ([]resolvedAction, error) { - var resolved []resolvedAction - - for _, action := range actions { - resourceSelector, err := action.AppliesTo() - if err != nil { - return nil, err - } - - resources := collections.GetResourceIncludesExcludes(helper, resourceSelector.IncludedResources, resourceSelector.ExcludedResources) - namespaces := collections.NewIncludesExcludes().Includes(resourceSelector.IncludedNamespaces...).Excludes(resourceSelector.ExcludedNamespaces...) - - selector := labels.Everything() - if resourceSelector.LabelSelector != "" { - if selector, err = labels.Parse(resourceSelector.LabelSelector); err != nil { - return nil, err - } - } - - res := resolvedAction{ - DeleteItemAction: action, - resourceIncludesExcludes: resources, - namespaceIncludesExcludes: namespaces, - selector: selector, - } - resolved = append(resolved, res) - } - - return resolved, nil -} diff --git a/pkg/backup/backup.go b/pkg/backup/backup.go index 746695e00..ef03e78f7 100644 --- a/pkg/backup/backup.go +++ b/pkg/backup/backup.go @@ -33,7 +33,6 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" kubeerrs "k8s.io/apimachinery/pkg/util/errors" @@ -44,6 +43,7 @@ import ( "github.com/vmware-tanzu/velero/pkg/discovery" velerov1client "github.com/vmware-tanzu/velero/pkg/generated/clientset/versioned/typed/velero/v1" "github.com/vmware-tanzu/velero/pkg/kuberesource" + "github.com/vmware-tanzu/velero/pkg/plugin/framework" "github.com/vmware-tanzu/velero/pkg/plugin/velero" "github.com/vmware-tanzu/velero/pkg/podexec" "github.com/vmware-tanzu/velero/pkg/restic" @@ -62,6 +62,9 @@ type Backupper interface { // Backup takes a backup using the specification in the velerov1api.Backup and writes backup and log data // to the given writers. Backup(logger logrus.FieldLogger, backup *Request, backupFile io.Writer, actions []velero.BackupItemAction, volumeSnapshotterGetter VolumeSnapshotterGetter) error + BackupWithResolvers(log logrus.FieldLogger, backupRequest *Request, backupFile io.Writer, + backupItemActionResolver framework.BackupItemActionResolver, itemSnapshotterResolver framework.ItemSnapshotterResolver, + volumeSnapshotterGetter VolumeSnapshotterGetter) error } // kubernetesBackupper implements Backupper. @@ -76,14 +79,6 @@ type kubernetesBackupper struct { clientPageSize int } -type resolvedAction struct { - velero.BackupItemAction - - resourceIncludesExcludes *collections.IncludesExcludes - namespaceIncludesExcludes *collections.IncludesExcludes - selector labels.Selector -} - func (i *itemKey) String() string { return fmt.Sprintf("resource=%s,namespace=%s,name=%s", i.resource, i.namespace, i.name) } @@ -121,38 +116,6 @@ func NewKubernetesBackupper( }, nil } -func resolveActions(actions []velero.BackupItemAction, helper discovery.Helper) ([]resolvedAction, error) { - var resolved []resolvedAction - - for _, action := range actions { - resourceSelector, err := action.AppliesTo() - if err != nil { - return nil, err - } - - resources := collections.GetResourceIncludesExcludes(helper, resourceSelector.IncludedResources, resourceSelector.ExcludedResources) - namespaces := collections.NewIncludesExcludes().Includes(resourceSelector.IncludedNamespaces...).Excludes(resourceSelector.ExcludedNamespaces...) - - selector := labels.Everything() - if resourceSelector.LabelSelector != "" { - if selector, err = labels.Parse(resourceSelector.LabelSelector); err != nil { - return nil, err - } - } - - res := resolvedAction{ - BackupItemAction: action, - resourceIncludesExcludes: resources, - namespaceIncludesExcludes: namespaces, - selector: selector, - } - - resolved = append(resolved, res) - } - - return resolved, nil -} - // getNamespaceIncludesExcludes returns an IncludesExcludes list containing which namespaces to // include and exclude from the backup. func getNamespaceIncludesExcludes(backup *velerov1api.Backup) *collections.IncludesExcludes { @@ -205,7 +168,20 @@ type VolumeSnapshotterGetter interface { // a complete backup failure is returned. Errors that constitute partial failures (i.e. failures to // back up individual resources that don't prevent the backup from continuing to be processed) are logged // to the backup log. -func (kb *kubernetesBackupper) Backup(log logrus.FieldLogger, backupRequest *Request, backupFile io.Writer, actions []velero.BackupItemAction, volumeSnapshotterGetter VolumeSnapshotterGetter) error { +func (kb *kubernetesBackupper) Backup(log logrus.FieldLogger, backupRequest *Request, backupFile io.Writer, + actions []velero.BackupItemAction, volumeSnapshotterGetter VolumeSnapshotterGetter) error { + backupItemActions := framework.NewBackupItemActionResolver(actions) + itemSnapshotters := framework.NewItemSnapshotterResolver(nil) + return kb.BackupWithResolvers(log, backupRequest, backupFile, backupItemActions, itemSnapshotters, + volumeSnapshotterGetter) +} + +func (kb *kubernetesBackupper) BackupWithResolvers(log logrus.FieldLogger, + backupRequest *Request, + backupFile io.Writer, + backupItemActionResolver framework.BackupItemActionResolver, + itemSnapshotterResolver framework.ItemSnapshotterResolver, + volumeSnapshotterGetter VolumeSnapshotterGetter) error { gzippedData := gzip.NewWriter(backupFile) defer gzippedData.Close() @@ -232,7 +208,12 @@ func (kb *kubernetesBackupper) Backup(log logrus.FieldLogger, backupRequest *Req return err } - backupRequest.ResolvedActions, err = resolveActions(actions, kb.discoveryHelper) + backupRequest.ResolvedActions, err = backupItemActionResolver.ResolveActions(kb.discoveryHelper) + if err != nil { + return err + } + + backupRequest.ResolvedItemSnapshotters, err = itemSnapshotterResolver.ResolveActions(kb.discoveryHelper) if err != nil { return err } diff --git a/pkg/backup/item_backupper.go b/pkg/backup/item_backupper.go index e02920c20..a2830484a 100644 --- a/pkg/backup/item_backupper.go +++ b/pkg/backup/item_backupper.go @@ -1,5 +1,5 @@ /* -Copyright 2020 the Velero contributors. +Copyright the Velero contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -29,7 +29,6 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" kubeerrs "k8s.io/apimachinery/pkg/util/errors" @@ -305,26 +304,9 @@ func (ib *itemBackupper) executeActions( metadata metav1.Object, ) (runtime.Unstructured, error) { for _, action := range ib.backupRequest.ResolvedActions { - if !action.resourceIncludesExcludes.ShouldInclude(groupResource.String()) { - log.Debug("Skipping action because it does not apply to this resource") + if !action.ShouldUse(groupResource, namespace, metadata, log) { continue } - - if namespace != "" && !action.namespaceIncludesExcludes.ShouldInclude(namespace) { - log.Debug("Skipping action because it does not apply to this namespace") - continue - } - - if namespace == "" && !action.namespaceIncludesExcludes.IncludeEverything() { - log.Debug("Skipping action because resource is cluster-scoped and action only applies to specific namespaces") - continue - } - - if !action.selector.Matches(labels.Set(metadata.GetLabels())) { - log.Debug("Skipping action because label selector does not match") - continue - } - log.Info("Executing custom action") updatedItem, additionalItemIdentifiers, err := action.Execute(obj, ib.backupRequest.Backup) diff --git a/pkg/backup/request.go b/pkg/backup/request.go index 0b4a63611..bc483ef97 100644 --- a/pkg/backup/request.go +++ b/pkg/backup/request.go @@ -22,6 +22,7 @@ import ( "github.com/vmware-tanzu/velero/internal/hook" velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" + "github.com/vmware-tanzu/velero/pkg/plugin/framework" "github.com/vmware-tanzu/velero/pkg/util/collections" "github.com/vmware-tanzu/velero/pkg/volume" ) @@ -42,11 +43,11 @@ type Request struct { NamespaceIncludesExcludes *collections.IncludesExcludes ResourceIncludesExcludes *collections.IncludesExcludes ResourceHooks []hook.ResourceHook - ResolvedActions []resolvedAction - - VolumeSnapshots []*volume.Snapshot - PodVolumeBackups []*velerov1api.PodVolumeBackup - BackedUpItems map[itemKey]struct{} + ResolvedActions []framework.BackupItemResolvedAction + ResolvedItemSnapshotters []framework.ItemSnapshotterResolvedAction + VolumeSnapshots []*volume.Snapshot + PodVolumeBackups []*velerov1api.PodVolumeBackup + BackedUpItems map[itemKey]struct{} } // BackupResourceList returns the list of backed up resources grouped by the API diff --git a/pkg/controller/backup_controller.go b/pkg/controller/backup_controller.go index 034f56d43..6adfeeec7 100644 --- a/pkg/controller/backup_controller.go +++ b/pkg/controller/backup_controller.go @@ -53,6 +53,7 @@ import ( "github.com/vmware-tanzu/velero/pkg/metrics" "github.com/vmware-tanzu/velero/pkg/persistence" "github.com/vmware-tanzu/velero/pkg/plugin/clientmgmt" + "github.com/vmware-tanzu/velero/pkg/plugin/framework" "github.com/vmware-tanzu/velero/pkg/util/boolptr" "github.com/vmware-tanzu/velero/pkg/util/collections" "github.com/vmware-tanzu/velero/pkg/util/encode" @@ -569,6 +570,10 @@ func (c *backupController) runBackup(backup *pkgbackup.Request) error { if err != nil { return err } + itemSnapshotters, err := pluginManager.GetItemSnapshotters() + if err != nil { + return err + } backupLog.Info("Setting up backup store to check for backup existence") backupStore, err := c.backupStoreGetter.Get(backup.StorageLocation, pluginManager, backupLog) @@ -586,8 +591,12 @@ func (c *backupController) runBackup(backup *pkgbackup.Request) error { return errors.Errorf("backup already exists in object storage") } + backupItemActionsResolver := framework.NewBackupItemActionResolver(actions) + itemSnapshottersResolver := framework.NewItemSnapshotterResolver(itemSnapshotters) + var fatalErrs []error - if err := c.backupper.Backup(backupLog, backup, backupFile, actions, pluginManager); err != nil { + if err := c.backupper.BackupWithResolvers(backupLog, backup, backupFile, backupItemActionsResolver, + itemSnapshottersResolver, pluginManager); err != nil { fatalErrs = append(fatalErrs, err) } diff --git a/pkg/controller/backup_controller_test.go b/pkg/controller/backup_controller_test.go index 16fc6c1a0..85c581a81 100644 --- a/pkg/controller/backup_controller_test.go +++ b/pkg/controller/backup_controller_test.go @@ -47,6 +47,7 @@ import ( "github.com/vmware-tanzu/velero/pkg/persistence" persistencemocks "github.com/vmware-tanzu/velero/pkg/persistence/mocks" "github.com/vmware-tanzu/velero/pkg/plugin/clientmgmt" + "github.com/vmware-tanzu/velero/pkg/plugin/framework" pluginmocks "github.com/vmware-tanzu/velero/pkg/plugin/mocks" "github.com/vmware-tanzu/velero/pkg/plugin/velero" velerotest "github.com/vmware-tanzu/velero/pkg/test" @@ -63,6 +64,13 @@ func (b *fakeBackupper) Backup(logger logrus.FieldLogger, backup *pkgbackup.Requ return args.Error(0) } +func (b *fakeBackupper) BackupWithResolvers(logger logrus.FieldLogger, backup *pkgbackup.Request, backupFile io.Writer, + backupItemActionResolver framework.BackupItemActionResolver, itemSnapshotterResolver framework.ItemSnapshotterResolver, + volumeSnapshotterGetter pkgbackup.VolumeSnapshotterGetter) error { + args := b.Called(logger, backup, backupFile, backupItemActionResolver, itemSnapshotterResolver, volumeSnapshotterGetter) + return args.Error(0) +} + func defaultBackup() *builder.BackupBuilder { return builder.ForBackup(velerov1api.DefaultNamespace, "backup-1") } @@ -825,7 +833,9 @@ func TestProcessBackupCompletions(t *testing.T) { pluginManager.On("GetBackupItemActions").Return(nil, nil) pluginManager.On("CleanupClients").Return(nil) + pluginManager.On("GetItemSnapshotters").Return(nil, nil) backupper.On("Backup", mock.Anything, mock.Anything, mock.Anything, []velero.BackupItemAction(nil), pluginManager).Return(nil) + backupper.On("BackupWithResolvers", mock.Anything, mock.Anything, mock.Anything, framework.BackupItemActionResolver{}, framework.ItemSnapshotterResolver{}, pluginManager).Return(nil) backupStore.On("BackupExists", test.backupLocation.Spec.StorageType.ObjectStorage.Bucket, test.backup.Name).Return(test.backupExists, test.existenceCheckError) // Ensure we have a CompletionTimestamp when uploading and that the backup name matches the backup in the object store. diff --git a/pkg/controller/restore_controller.go b/pkg/controller/restore_controller.go index 78472df4d..5b83e5a13 100644 --- a/pkg/controller/restore_controller.go +++ b/pkg/controller/restore_controller.go @@ -47,6 +47,7 @@ import ( "github.com/vmware-tanzu/velero/pkg/metrics" "github.com/vmware-tanzu/velero/pkg/persistence" "github.com/vmware-tanzu/velero/pkg/plugin/clientmgmt" + "github.com/vmware-tanzu/velero/pkg/plugin/framework" pkgrestore "github.com/vmware-tanzu/velero/pkg/restore" "github.com/vmware-tanzu/velero/pkg/util/collections" kubeutil "github.com/vmware-tanzu/velero/pkg/util/kube" @@ -443,6 +444,13 @@ func (c *restoreController) runValidatedRestore(restore *api.Restore, info backu if err != nil { return errors.Wrap(err, "error getting restore item actions") } + actionsResolver := framework.NewRestoreItemActionResolver(actions) + + itemSnapshotters, err := pluginManager.GetItemSnapshotters() + if err != nil { + return errors.Wrap(err, "error getting item snapshotters") + } + snapshotItemResolver := framework.NewItemSnapshotterResolver(itemSnapshotters) backupFile, err := downloadToTempFile(restore.Spec.BackupName, info.backupStore, restoreLog) if err != nil { @@ -476,7 +484,8 @@ func (c *restoreController) runValidatedRestore(restore *api.Restore, info backu VolumeSnapshots: volumeSnapshots, BackupReader: backupFile, } - restoreWarnings, restoreErrors := c.restorer.Restore(restoreReq, actions, c.snapshotLocationLister, pluginManager) + restoreWarnings, restoreErrors := c.restorer.RestoreWithResolvers(restoreReq, actionsResolver, snapshotItemResolver, + c.snapshotLocationLister, pluginManager) restoreLog.Info("restore completed") // re-instantiate the backup store because credentials could have changed since the original diff --git a/pkg/controller/restore_controller_test.go b/pkg/controller/restore_controller_test.go index d9f2a181c..1641b4f85 100644 --- a/pkg/controller/restore_controller_test.go +++ b/pkg/controller/restore_controller_test.go @@ -44,8 +44,10 @@ import ( "github.com/vmware-tanzu/velero/pkg/metrics" persistencemocks "github.com/vmware-tanzu/velero/pkg/persistence/mocks" "github.com/vmware-tanzu/velero/pkg/plugin/clientmgmt" + "github.com/vmware-tanzu/velero/pkg/plugin/framework" pluginmocks "github.com/vmware-tanzu/velero/pkg/plugin/mocks" "github.com/vmware-tanzu/velero/pkg/plugin/velero" + isv1 "github.com/vmware-tanzu/velero/pkg/plugin/velero/item_snapshotter/v1" pkgrestore "github.com/vmware-tanzu/velero/pkg/restore" velerotest "github.com/vmware-tanzu/velero/pkg/test" "github.com/vmware-tanzu/velero/pkg/util/logging" @@ -505,7 +507,8 @@ func TestProcessQueueItem(t *testing.T) { if test.expectedRestorerCall != nil { backupStore.On("GetBackupContents", test.backup.Name).Return(ioutil.NopCloser(bytes.NewReader([]byte("hello world"))), nil) - restorer.On("Restore", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(warnings, errors) + restorer.On("RestoreWithResolvers", mock.Anything, mock.Anything, mock.Anything, mock.Anything, + mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(warnings, errors) backupStore.On("PutRestoreLog", test.backup.Name, test.restore.Name, mock.Anything).Return(test.putRestoreLogErr) @@ -545,6 +548,7 @@ func TestProcessQueueItem(t *testing.T) { if test.restore != nil { pluginManager.On("GetRestoreItemActions").Return(nil, nil) + pluginManager.On("GetItemSnapshotters").Return([]isv1.ItemSnapshotter{}, nil) pluginManager.On("CleanupClients") } @@ -858,3 +862,17 @@ func (r *fakeRestorer) Restore( return res.Get(0).(pkgrestore.Result), res.Get(1).(pkgrestore.Result) } + +func (r *fakeRestorer) RestoreWithResolvers(req pkgrestore.Request, + resolver framework.RestoreItemActionResolver, + itemSnapshotterResolver framework.ItemSnapshotterResolver, + snapshotLocationLister listers.VolumeSnapshotLocationLister, + volumeSnapshotterGetter pkgrestore.VolumeSnapshotterGetter, +) (pkgrestore.Result, pkgrestore.Result) { + res := r.Called(req.Log, req.Restore, req.Backup, req.BackupReader, resolver, itemSnapshotterResolver, + snapshotLocationLister, volumeSnapshotterGetter) + + r.calledWithArg = *req.Restore + + return res.Get(0).(pkgrestore.Result), res.Get(1).(pkgrestore.Result) +} diff --git a/pkg/plugin/framework/action_resolver.go b/pkg/plugin/framework/action_resolver.go new file mode 100644 index 000000000..9797ba526 --- /dev/null +++ b/pkg/plugin/framework/action_resolver.go @@ -0,0 +1,242 @@ +/* +Copyright the Velero Contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package framework + +import ( + "github.com/sirupsen/logrus" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + + "github.com/vmware-tanzu/velero/pkg/plugin/velero" + isv1 "github.com/vmware-tanzu/velero/pkg/plugin/velero/item_snapshotter/v1" + + "github.com/vmware-tanzu/velero/pkg/discovery" + "github.com/vmware-tanzu/velero/pkg/util/collections" +) + +/* +Velero has a variety of Actions that can be executed on Kubernetes resources. The Actions (BackupItemAction, RestoreItemAction +and others) implement the Applicable interface which returns a ResourceSelector for the Action. The ResourceSelector +can specify namespaces, resource names and labels to include or exclude. The ResourceSelector is resolved into lists +of namespaces and resources present in the backup to be matched against. These lists and the label selector are then used to +decide whether or not the ResolvedAction should be used for a particular resource. +*/ + +// ResolvedAction is an action that has had the namespaces, resources names and labels to include or exclude resolved +type ResolvedAction interface { + // ShouldUse returns true if the resolved namespaces, resource names and labels match those passed in the parameters. + // metadata is optional and may be nil + ShouldUse(groupResource schema.GroupResource, namespace string, metadata metav1.Object, + log logrus.FieldLogger) bool +} + +// resolvedAction is a core struct that holds the resolved namespaces, resource names and labels +type resolvedAction struct { + ResourceIncludesExcludes *collections.IncludesExcludes + NamespaceIncludesExcludes *collections.IncludesExcludes + Selector labels.Selector +} + +func (recv resolvedAction) ShouldUse(groupResource schema.GroupResource, namespace string, metadata metav1.Object, + log logrus.FieldLogger) bool { + if !recv.ResourceIncludesExcludes.ShouldInclude(groupResource.String()) { + log.Debug("Skipping action because it does not apply to this resource") + return false + } + + if namespace != "" && !recv.NamespaceIncludesExcludes.ShouldInclude(namespace) { + log.Debug("Skipping action because it does not apply to this namespace") + return false + } + + if namespace == "" && !recv.NamespaceIncludesExcludes.IncludeEverything() { + log.Debug("Skipping action because resource is cluster-scoped and action only applies to specific namespaces") + return false + } + + if metadata != nil && !recv.Selector.Matches(labels.Set(metadata.GetLabels())) { + log.Debug("Skipping action because label selector does not match") + return false + } + return true +} + +// resolveAction resolves the resources, namespaces and selector into fully-qualified versions +func resolveAction(helper discovery.Helper, action velero.Applicable) (resources *collections.IncludesExcludes, + namespaces *collections.IncludesExcludes, selector labels.Selector, err error) { + resourceSelector, err := action.AppliesTo() + if err != nil { + return nil, nil, nil, err + } + + resources = collections.GetResourceIncludesExcludes(helper, resourceSelector.IncludedResources, resourceSelector.ExcludedResources) + namespaces = collections.NewIncludesExcludes().Includes(resourceSelector.IncludedNamespaces...).Excludes(resourceSelector.ExcludedNamespaces...) + + selector = labels.Everything() + if resourceSelector.LabelSelector != "" { + if selector, err = labels.Parse(resourceSelector.LabelSelector); err != nil { + return nil, nil, nil, err + } + } + + return +} + +type BackupItemResolvedAction struct { + velero.BackupItemAction + resolvedAction +} + +func NewBackupItemActionResolver(actions []velero.BackupItemAction) BackupItemActionResolver { + return BackupItemActionResolver{ + actions: actions, + } +} + +func NewRestoreItemActionResolver(actions []velero.RestoreItemAction) RestoreItemActionResolver { + return RestoreItemActionResolver{ + actions: actions, + } +} + +func NewDeleteItemActionResolver(actions []velero.DeleteItemAction) DeleteItemActionResolver { + return DeleteItemActionResolver{ + actions: actions, + } +} + +func NewItemSnapshotterResolver(actions []isv1.ItemSnapshotter) ItemSnapshotterResolver { + return ItemSnapshotterResolver{ + actions: actions, + } +} + +type ActionResolver interface { + ResolveAction(helper discovery.Helper, action velero.Applicable) (ResolvedAction, error) +} + +type BackupItemActionResolver struct { + actions []velero.BackupItemAction +} + +func (recv BackupItemActionResolver) ResolveActions(helper discovery.Helper) ([]BackupItemResolvedAction, error) { + var resolved []BackupItemResolvedAction + for _, action := range recv.actions { + resources, namespaces, selector, err := resolveAction(helper, action) + if err != nil { + return nil, err + } + res := BackupItemResolvedAction{ + BackupItemAction: action, + resolvedAction: resolvedAction{ + ResourceIncludesExcludes: resources, + NamespaceIncludesExcludes: namespaces, + Selector: selector, + }, + } + resolved = append(resolved, res) + } + return resolved, nil +} + +type RestoreItemResolvedAction struct { + velero.RestoreItemAction + resolvedAction +} + +type RestoreItemActionResolver struct { + actions []velero.RestoreItemAction +} + +func (recv RestoreItemActionResolver) ResolveActions(helper discovery.Helper) ([]RestoreItemResolvedAction, error) { + var resolved []RestoreItemResolvedAction + for _, action := range recv.actions { + resources, namespaces, selector, err := resolveAction(helper, action) + if err != nil { + return nil, err + } + res := RestoreItemResolvedAction{ + RestoreItemAction: action, + resolvedAction: resolvedAction{ + ResourceIncludesExcludes: resources, + NamespaceIncludesExcludes: namespaces, + Selector: selector, + }, + } + resolved = append(resolved, res) + } + return resolved, nil +} + +type DeleteItemResolvedAction struct { + velero.DeleteItemAction + resolvedAction +} + +type DeleteItemActionResolver struct { + actions []velero.DeleteItemAction +} + +func (recv DeleteItemActionResolver) ResolveActions(helper discovery.Helper) ([]DeleteItemResolvedAction, error) { + var resolved []DeleteItemResolvedAction + for _, action := range recv.actions { + resources, namespaces, selector, err := resolveAction(helper, action) + if err != nil { + return nil, err + } + res := DeleteItemResolvedAction{ + DeleteItemAction: action, + resolvedAction: resolvedAction{ + ResourceIncludesExcludes: resources, + NamespaceIncludesExcludes: namespaces, + Selector: selector, + }, + } + resolved = append(resolved, res) + } + return resolved, nil +} + +type ItemSnapshotterResolvedAction struct { + isv1.ItemSnapshotter + resolvedAction +} + +type ItemSnapshotterResolver struct { + actions []isv1.ItemSnapshotter +} + +func (recv ItemSnapshotterResolver) ResolveActions(helper discovery.Helper) ([]ItemSnapshotterResolvedAction, error) { + var resolved []ItemSnapshotterResolvedAction + for _, action := range recv.actions { + resources, namespaces, selector, err := resolveAction(helper, action) + if err != nil { + return nil, err + } + res := ItemSnapshotterResolvedAction{ + ItemSnapshotter: action, + resolvedAction: resolvedAction{ + ResourceIncludesExcludes: resources, + NamespaceIncludesExcludes: namespaces, + Selector: selector, + }, + } + resolved = append(resolved, res) + } + return resolved, nil +} diff --git a/pkg/plugin/framework/action_resolver_test.go b/pkg/plugin/framework/action_resolver_test.go new file mode 100644 index 000000000..cf0e411da --- /dev/null +++ b/pkg/plugin/framework/action_resolver_test.go @@ -0,0 +1,93 @@ +/* +Copyright the Velero Contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package framework + +import ( + "testing" + + "k8s.io/apimachinery/pkg/labels" + + "github.com/stretchr/testify/require" + "k8s.io/apimachinery/pkg/runtime/schema" + + "github.com/vmware-tanzu/velero/pkg/plugin/velero" + velerotest "github.com/vmware-tanzu/velero/pkg/test" +) + +type mockApplicable struct { + selector velero.ResourceSelector +} + +func (recv mockApplicable) AppliesTo() (velero.ResourceSelector, error) { + return recv.selector, nil +} + +func TestActionResolverNamespace(t *testing.T) { + discoveryHelper := velerotest.NewFakeDiscoveryHelper(false, map[schema.GroupVersionResource]schema.GroupVersionResource{}) + namespaceMatchApplicable := mockApplicable{ + selector: velero.ResourceSelector{ + IncludedNamespaces: []string{"default"}, + }, + } + resources, namespaces, selector, err := resolveAction(discoveryHelper, namespaceMatchApplicable) + require.NoError(t, err) + require.Equal(t, []string{"default"}, namespaces.GetIncludes()) + require.Empty(t, namespaces.GetExcludes()) + require.Empty(t, resources.GetIncludes()) + require.Empty(t, resources.GetExcludes()) + require.True(t, selector.Empty()) +} + +func TestActionResolverResource(t *testing.T) { + pvGVR := schema.GroupVersionResource{ + Group: "", + Version: "v1", + Resource: "persistentvolumes", + } + discoveryHelper := velerotest.NewFakeDiscoveryHelper(false, map[schema.GroupVersionResource]schema.GroupVersionResource{pvGVR: pvGVR}) + namespaceMatchApplicable := mockApplicable{ + selector: velero.ResourceSelector{ + IncludedResources: []string{"persistentvolumes"}, + }, + } + resources, namespaces, selector, err := resolveAction(discoveryHelper, namespaceMatchApplicable) + require.NoError(t, err) + require.Empty(t, namespaces.GetIncludes()) + require.Empty(t, namespaces.GetExcludes()) + require.True(t, resources.ShouldInclude("persistentvolumes")) + require.Empty(t, resources.GetExcludes()) + require.True(t, selector.Empty()) +} + +func TestActionResolverLabel(t *testing.T) { + discoveryHelper := velerotest.NewFakeDiscoveryHelper(false, map[schema.GroupVersionResource]schema.GroupVersionResource{}) + namespaceMatchApplicable := mockApplicable{ + selector: velero.ResourceSelector{ + LabelSelector: "myLabel=true", + }, + } + checkLabel, err := labels.ConvertSelectorToLabelsMap("myLabel=true") + require.NoError(t, err) + + resources, namespaces, selector, err := resolveAction(discoveryHelper, namespaceMatchApplicable) + require.NoError(t, err) + require.Empty(t, namespaces.GetIncludes()) + require.Empty(t, namespaces.GetExcludes()) + require.Empty(t, resources.GetIncludes()) + require.Empty(t, resources.GetExcludes()) + require.True(t, selector.Matches(checkLabel)) +} diff --git a/pkg/plugin/velero/shared.go b/pkg/plugin/velero/shared.go index 138de4886..76c7464ad 100644 --- a/pkg/plugin/velero/shared.go +++ b/pkg/plugin/velero/shared.go @@ -1,5 +1,5 @@ /* -Copyright 2019 the Velero contributors. +Copyright the Velero contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -48,3 +48,9 @@ type ResourceSelector struct { // for details on syntax. LabelSelector string } + +// Applicable allows actions and plugins to specify which resources they should be invoked for +type Applicable interface { + // AppliesTo returns information about which resources this Responder should be invoked for. + AppliesTo() (ResourceSelector, error) +} diff --git a/pkg/restore/restore.go b/pkg/restore/restore.go index 846d71c78..19e500269 100644 --- a/pkg/restore/restore.go +++ b/pkg/restore/restore.go @@ -56,6 +56,7 @@ import ( listers "github.com/vmware-tanzu/velero/pkg/generated/listers/velero/v1" "github.com/vmware-tanzu/velero/pkg/kuberesource" "github.com/vmware-tanzu/velero/pkg/label" + "github.com/vmware-tanzu/velero/pkg/plugin/framework" "github.com/vmware-tanzu/velero/pkg/plugin/velero" "github.com/vmware-tanzu/velero/pkg/podexec" "github.com/vmware-tanzu/velero/pkg/restic" @@ -96,6 +97,13 @@ type Restorer interface { snapshotLocationLister listers.VolumeSnapshotLocationLister, volumeSnapshotterGetter VolumeSnapshotterGetter, ) (Result, Result) + RestoreWithResolvers( + req Request, + restoreItemActionResolver framework.RestoreItemActionResolver, + itemSnapshotterResolver framework.ItemSnapshotterResolver, + snapshotLocationLister listers.VolumeSnapshotLocationLister, + volumeSnapshotterGetter VolumeSnapshotterGetter, + ) (Result, Result) } // kubernetesRestorer implements Restorer for restoring into a Kubernetes cluster. @@ -161,6 +169,18 @@ func (kr *kubernetesRestorer) Restore( actions []velero.RestoreItemAction, snapshotLocationLister listers.VolumeSnapshotLocationLister, volumeSnapshotterGetter VolumeSnapshotterGetter, +) (Result, Result) { + resolver := framework.NewRestoreItemActionResolver(actions) + snapshotItemResolver := framework.NewItemSnapshotterResolver(nil) + return kr.RestoreWithResolvers(req, resolver, snapshotItemResolver, snapshotLocationLister, volumeSnapshotterGetter) +} + +func (kr *kubernetesRestorer) RestoreWithResolvers( + req Request, + restoreItemActionResolver framework.RestoreItemActionResolver, + itemSnapshotterResolver framework.ItemSnapshotterResolver, + snapshotLocationLister listers.VolumeSnapshotLocationLister, + volumeSnapshotterGetter VolumeSnapshotterGetter, ) (Result, Result) { // metav1.LabelSelectorAsSelector converts a nil LabelSelector to a // Nothing Selector, i.e. a selector that matches nothing. We want @@ -188,7 +208,12 @@ func (kr *kubernetesRestorer) Restore( Includes(req.Restore.Spec.IncludedNamespaces...). Excludes(req.Restore.Spec.ExcludedNamespaces...) - resolvedActions, err := resolveActions(actions, kr.discoveryHelper) + resolvedActions, err := restoreItemActionResolver.ResolveActions(kr.discoveryHelper) + if err != nil { + return Result{}, Result{Velero: []string{err.Error()}} + } + + resolvedItemSnapshotterActions, err := itemSnapshotterResolver.ResolveActions(kr.discoveryHelper) if err != nil { return Result{}, Result{Velero: []string{err.Error()}} } @@ -251,7 +276,8 @@ func (kr *kubernetesRestorer) Restore( dynamicFactory: kr.dynamicFactory, fileSystem: kr.fileSystem, namespaceClient: kr.namespaceClient, - actions: resolvedActions, + restoreItemActions: resolvedActions, + itemSnapshotterActions: resolvedItemSnapshotterActions, volumeSnapshotterGetter: volumeSnapshotterGetter, resticRestorer: resticRestorer, resticErrs: make(chan error), @@ -277,46 +303,6 @@ func (kr *kubernetesRestorer) Restore( return restoreCtx.execute() } -type resolvedAction struct { - velero.RestoreItemAction - - resourceIncludesExcludes *collections.IncludesExcludes - namespaceIncludesExcludes *collections.IncludesExcludes - selector labels.Selector -} - -func resolveActions(actions []velero.RestoreItemAction, helper discovery.Helper) ([]resolvedAction, error) { - var resolved []resolvedAction - - for _, action := range actions { - resourceSelector, err := action.AppliesTo() - if err != nil { - return nil, err - } - - resources := collections.GetResourceIncludesExcludes(helper, resourceSelector.IncludedResources, resourceSelector.ExcludedResources) - namespaces := collections.NewIncludesExcludes().Includes(resourceSelector.IncludedNamespaces...).Excludes(resourceSelector.ExcludedNamespaces...) - - selector := labels.Everything() - if resourceSelector.LabelSelector != "" { - if selector, err = labels.Parse(resourceSelector.LabelSelector); err != nil { - return nil, err - } - } - - res := resolvedAction{ - RestoreItemAction: action, - resourceIncludesExcludes: resources, - namespaceIncludesExcludes: namespaces, - selector: selector, - } - - resolved = append(resolved, res) - } - - return resolved, nil -} - type restoreContext struct { backup *velerov1api.Backup backupReader io.Reader @@ -331,7 +317,8 @@ type restoreContext struct { dynamicFactory client.DynamicFactory fileSystem filesystem.Interface namespaceClient corev1.NamespaceInterface - actions []resolvedAction + restoreItemActions []framework.RestoreItemResolvedAction + itemSnapshotterActions []framework.ItemSnapshotterResolvedAction volumeSnapshotterGetter VolumeSnapshotterGetter resticRestorer restic.Restorer resticWaitGroup sync.WaitGroup @@ -713,23 +700,22 @@ func getNamespace(logger logrus.FieldLogger, path, remappedName string) *v1.Name } } -// TODO: this should be combined with DeleteItemActions at some point. -func (ctx *restoreContext) getApplicableActions(groupResource schema.GroupResource, namespace string) []resolvedAction { - var actions []resolvedAction - for _, action := range ctx.actions { - if !action.resourceIncludesExcludes.ShouldInclude(groupResource.String()) { - continue +func (ctx *restoreContext) getApplicableActions(groupResource schema.GroupResource, namespace string) []framework.RestoreItemResolvedAction { + var actions []framework.RestoreItemResolvedAction + for _, action := range ctx.restoreItemActions { + if action.ShouldUse(groupResource, namespace, nil, ctx.log) { + actions = append(actions, action) } + } + return actions +} - if namespace != "" && !action.namespaceIncludesExcludes.ShouldInclude(namespace) { - continue +func (ctx *restoreContext) getApplicableItemSnapshotters(groupResource schema.GroupResource, namespace string) []framework.ItemSnapshotterResolvedAction { + var actions []framework.ItemSnapshotterResolvedAction + for _, action := range ctx.itemSnapshotterActions { + if action.ShouldUse(groupResource, namespace, nil, ctx.log) { + actions = append(actions, action) } - - if namespace == "" && !action.namespaceIncludesExcludes.IncludeEverything() { - continue - } - - actions = append(actions, action) } return actions @@ -1127,13 +1113,13 @@ func (ctx *restoreContext) restoreItem(obj *unstructured.Unstructured, groupReso } for _, action := range ctx.getApplicableActions(groupResource, namespace) { - if !action.selector.Matches(labels.Set(obj.GetLabels())) { + if !action.Selector.Matches(labels.Set(obj.GetLabels())) { return warnings, errs } ctx.log.Infof("Executing item action for %v", &groupResource) - executeOutput, err := action.Execute(&velero.RestoreItemActionExecuteInput{ + executeOutput, err := action.RestoreItemAction.Execute(&velero.RestoreItemActionExecuteInput{ Item: obj, ItemFromBackup: itemFromBackup, Restore: ctx.restore, diff --git a/pkg/restore/restore_test.go b/pkg/restore/restore_test.go index 35d72cfff..faada13f9 100644 --- a/pkg/restore/restore_test.go +++ b/pkg/restore/restore_test.go @@ -545,7 +545,7 @@ func TestRestoreResourceFiltering(t *testing.T) { } warnings, errs := h.restorer.Restore( data, - nil, // actions + nil, // restoreItemActions nil, // snapshot location lister nil, // volume snapshotter getter ) @@ -626,7 +626,7 @@ func TestRestoreNamespaceMapping(t *testing.T) { } warnings, errs := h.restorer.Restore( data, - nil, // actions + nil, // restoreItemActions nil, // snapshot location lister nil, // volume snapshotter getter ) @@ -708,7 +708,7 @@ func TestRestoreResourcePriorities(t *testing.T) { } warnings, errs := h.restorer.Restore( data, - nil, // actions + nil, // restoreItemActions nil, // snapshot location lister nil, // volume snapshotter getter ) @@ -785,7 +785,7 @@ func TestInvalidTarballContents(t *testing.T) { } warnings, errs := h.restorer.Restore( data, - nil, // actions + nil, // restoreItemActions nil, // snapshot location lister nil, // volume snapshotter getter ) @@ -1000,7 +1000,7 @@ func TestRestoreItems(t *testing.T) { } warnings, errs := h.restorer.Restore( data, - nil, // actions + nil, // restoreItemActions nil, // snapshot location lister nil, // volume snapshotter getter ) @@ -2510,7 +2510,7 @@ func TestRestorePersistentVolumes(t *testing.T) { } warnings, errs := h.restorer.Restore( data, - nil, // actions + nil, // restoreItemActions vslInformer.Lister(), tc.volumeSnapshotterGetter, ) @@ -2646,7 +2646,7 @@ func TestRestoreWithRestic(t *testing.T) { warnings, errs := h.restorer.Restore( data, - nil, // actions + nil, // restoreItemActions nil, // snapshot location lister nil, // volume snapshotter getter ) diff --git a/pkg/test/fake_mapper.go b/pkg/test/fake_mapper.go index 1b430c5aa..210d25747 100644 --- a/pkg/test/fake_mapper.go +++ b/pkg/test/fake_mapper.go @@ -43,6 +43,16 @@ func (m *FakeMapper) ResourceFor(input schema.GroupVersionResource) (schema.Grou if gr, found := m.Resources[input]; found { return gr, nil } + if input.Version == "" { + input.Version = "v1" + if gr, found := m.Resources[input]; found { + return gr, nil + } + input.Version = "v1beta1" + if gr, found := m.Resources[input]; found { + return gr, nil + } + } return schema.GroupVersionResource{}, errors.Errorf("invalid resource %q", input.String()) } From 706d1420965dc3a0ed8c1d9fe08ad130162867ce Mon Sep 17 00:00:00 2001 From: Xun Jiang Date: Mon, 13 Dec 2021 20:55:06 +0800 Subject: [PATCH 071/136] fix: remove --crds-version in velero install command Due to only v1 CRD is supported in velero version 1.8, remove CRDs version choosing option. Signed-off-by: Xun Jiang --- changelogs/unreleased/4446-jxun | 1 + pkg/cmd/cli/install/install.go | 35 +-------------------------------- pkg/install/resources.go | 14 +++++-------- test/e2e/Makefile | 2 -- test/e2e/e2e_suite_test.go | 1 - test/e2e/types.go | 1 - test/e2e/upgrade/upgrade.go | 1 - test/e2e/util/velero/install.go | 4 ---- 8 files changed, 7 insertions(+), 52 deletions(-) create mode 100644 changelogs/unreleased/4446-jxun diff --git a/changelogs/unreleased/4446-jxun b/changelogs/unreleased/4446-jxun new file mode 100644 index 000000000..43b2c5836 --- /dev/null +++ b/changelogs/unreleased/4446-jxun @@ -0,0 +1 @@ +remove --crds-version in velero install command. \ No newline at end of file diff --git a/pkg/cmd/cli/install/install.go b/pkg/cmd/cli/install/install.go index f14c8725c..5b4941dff 100644 --- a/pkg/cmd/cli/install/install.go +++ b/pkg/cmd/cli/install/install.go @@ -25,11 +25,9 @@ import ( "time" "github.com/pkg/errors" - "github.com/sirupsen/logrus" "github.com/spf13/cobra" "github.com/spf13/pflag" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime/schema" "github.com/vmware-tanzu/velero/internal/velero" velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" @@ -37,7 +35,6 @@ import ( "github.com/vmware-tanzu/velero/pkg/cmd" "github.com/vmware-tanzu/velero/pkg/cmd/util/flag" "github.com/vmware-tanzu/velero/pkg/cmd/util/output" - velerodiscovery "github.com/vmware-tanzu/velero/pkg/discovery" "github.com/vmware-tanzu/velero/pkg/install" kubeutil "github.com/vmware-tanzu/velero/pkg/util/kube" ) @@ -72,7 +69,6 @@ type InstallOptions struct { Plugins flag.StringArray NoDefaultBackupLocation bool CRDsOnly bool - CRDsVersion string CACertFile string Features string DefaultVolumesToRestic bool @@ -107,7 +103,6 @@ func (o *InstallOptions) BindFlags(flags *pflag.FlagSet) { flags.DurationVar(&o.DefaultResticMaintenanceFrequency, "default-restic-prune-frequency", o.DefaultResticMaintenanceFrequency, "How often 'restic prune' is run for restic repositories by default. Optional.") flags.Var(&o.Plugins, "plugins", "Plugin container images to install into the Velero Deployment") flags.BoolVar(&o.CRDsOnly, "crds-only", o.CRDsOnly, "Only generate CustomResourceDefinition resources. Useful for updating CRDs for an existing Velero install.") - flags.StringVar(&o.CRDsVersion, "crds-version", o.CRDsVersion, "The version to generate CustomResourceDefinition resources if Velero can't discover the Kubernetes preferred CRD API version. Optional.") flags.StringVar(&o.CACertFile, "cacert", o.CACertFile, "File containing a certificate bundle to use when verifying TLS connections to the object store. Optional.") flags.StringVar(&o.Features, "features", o.Features, "Comma separated list of Velero feature flags to be set on the Velero deployment and the restic daemonset, if restic is enabled") flags.BoolVar(&o.DefaultVolumesToRestic, "default-volumes-to-restic", o.DefaultVolumesToRestic, "Bool flag to configure Velero server to use restic by default to backup all pod volumes on all backups. Optional.") @@ -134,7 +129,6 @@ func NewInstallOptions() *InstallOptions { UseVolumeSnapshots: true, NoDefaultBackupLocation: false, CRDsOnly: false, - CRDsVersion: "v1", DefaultVolumesToRestic: false, } } @@ -193,7 +187,6 @@ func (o *InstallOptions) AsVeleroOptions() (*install.VeleroOptions, error) { NoDefaultBackupLocation: o.NoDefaultBackupLocation, CACertData: caCertData, Features: strings.Split(o.Features, ","), - CRDsVersion: o.CRDsVersion, DefaultVolumesToRestic: o.DefaultVolumesToRestic, }, nil } @@ -254,30 +247,9 @@ This is useful as a starting point for more customized installations. // Run executes a command in the context of the provided arguments. func (o *InstallOptions) Run(c *cobra.Command, f client.Factory) error { - // Find the kube-apiserver group apiextensions.k8s.io preferred API version - clientset, err := f.KubeClient() - if err == nil { - // kubeconfig available - discoveryHelper, err := velerodiscovery.NewHelper(clientset.Discovery(), &logrus.Logger{}) - if err == nil { - // kubernetes apiserver available - gvr, _, err := discoveryHelper.ResourceFor( - schema.GroupVersionResource{ - Group: "apiextensions.k8s.io", - Resource: "customresourcedefinitions", - }) - if err != nil { - return err - } - - // Update the group apiextensions.k8s.io preferred API version - o.CRDsVersion = gvr.Version - } - } - var resources *unstructured.UnstructuredList if o.CRDsOnly { - resources = install.AllCRDs(o.CRDsVersion) + resources = install.AllCRDs() } else { vo, err := o.AsVeleroOptions() if err != nil { @@ -348,11 +320,6 @@ func (o *InstallOptions) Validate(c *cobra.Command, args []string, f client.Fact return err } - // Check the CRD version is valid. - if o.CRDsVersion != "v1beta1" && o.CRDsVersion != "v1" { - return errors.Errorf("CRD version must be v1beta1 or v1") - } - // If we're only installing CRDs, we can skip the rest of the validation. if o.CRDsOnly { return nil diff --git a/pkg/install/resources.go b/pkg/install/resources.go index 40ec711f3..0e86698cf 100644 --- a/pkg/install/resources.go +++ b/pkg/install/resources.go @@ -215,21 +215,17 @@ type VeleroOptions struct { NoDefaultBackupLocation bool CACertData []byte Features []string - CRDsVersion string DefaultVolumesToRestic bool } -func AllCRDs(perferredAPIVersion string) *unstructured.UnstructuredList { +func AllCRDs() *unstructured.UnstructuredList { resources := new(unstructured.UnstructuredList) // Set the GVK so that the serialization framework outputs the list properly resources.SetGroupVersionKind(schema.GroupVersionKind{Group: "", Version: "v1", Kind: "List"}) - switch perferredAPIVersion { - case "v1": - for _, crd := range v1crds.CRDs { - crd.SetLabels(Labels()) - appendUnstructured(resources, crd) - } + for _, crd := range v1crds.CRDs { + crd.SetLabels(Labels()) + appendUnstructured(resources, crd) } return resources @@ -238,7 +234,7 @@ func AllCRDs(perferredAPIVersion string) *unstructured.UnstructuredList { // AllResources returns a list of all resources necessary to install Velero, in the appropriate order, into a Kubernetes cluster. // Items are unstructured, since there are different data types returned. func AllResources(o *VeleroOptions) *unstructured.UnstructuredList { - resources := AllCRDs(o.CRDsVersion) + resources := AllCRDs() ns := Namespace(o.Namespace) appendUnstructured(resources, ns) diff --git a/test/e2e/Makefile b/test/e2e/Makefile index 8f7916292..86cd8b892 100644 --- a/test/e2e/Makefile +++ b/test/e2e/Makefile @@ -54,7 +54,6 @@ RESTIC_HELPER_IMAGE ?= #Released version only UPGRADE_FROM_VELERO_CLI ?= UPGRADE_FROM_VELERO_VERSION ?= v1.6.3 -CRDS_VERSION ?= v1 VELERO_NAMESPACE ?= velero CREDS_FILE ?= BSL_BUCKET ?= @@ -94,7 +93,6 @@ run: ginkgo -upgrade-from-velero-cli=$(UPGRADE_FROM_VELERO_CLI) \ -upgrade-from-velero-version=$(UPGRADE_FROM_VELERO_VERSION) \ -velero-namespace=$(VELERO_NAMESPACE) \ - -crds-version=$(CRDS_VERSION) \ -credentials-file=$(CREDS_FILE) \ -bucket=$(BSL_BUCKET) \ -prefix=$(BSL_PREFIX) \ diff --git a/test/e2e/e2e_suite_test.go b/test/e2e/e2e_suite_test.go index 7753c60e8..93876044a 100644 --- a/test/e2e/e2e_suite_test.go +++ b/test/e2e/e2e_suite_test.go @@ -58,7 +58,6 @@ func init() { flag.StringVar(&VeleroCfg.AdditionalBSLPrefix, "additional-bsl-prefix", "", "prefix under which all Velero data should be stored within the bucket for additional backup storage location. Optional.") flag.StringVar(&VeleroCfg.AdditionalBSLConfig, "additional-bsl-config", "", "configuration to use for the additional backup storage location. Format is key1=value1,key2=value2") flag.StringVar(&VeleroCfg.AdditionalBSLCredentials, "additional-bsl-credentials-file", "", "file containing credentials for additional backup storage location provider. Required if testing multiple credentials support.") - flag.StringVar(&VeleroCfg.CRDsVersion, "crds-version", "v1", "CRD apiVersion for velero CRD creation.") } var _ = Describe("[APIGroup] Velero tests with various CRD API group versions", APIGropuVersionsTest) diff --git a/test/e2e/types.go b/test/e2e/types.go index 40e3ed05e..b8c214434 100644 --- a/test/e2e/types.go +++ b/test/e2e/types.go @@ -36,7 +36,6 @@ type VerleroConfig struct { CloudProvider string ObjectStoreProvider string VeleroNamespace string - CRDsVersion string AdditionalBSLProvider string AdditionalBSLBucket string AdditionalBSLPrefix string diff --git a/test/e2e/upgrade/upgrade.go b/test/e2e/upgrade/upgrade.go index a5306f278..1f8c86153 100644 --- a/test/e2e/upgrade/upgrade.go +++ b/test/e2e/upgrade/upgrade.go @@ -78,7 +78,6 @@ func BackupUpgradeRestoreTest(useVolumeSnapshots bool) { tmpCfg.VeleroImage = "" tmpCfg.ResticHelperImage = "" tmpCfg.Plugins = "" - tmpCfg.CRDsVersion = "" Expect(VeleroInstall(context.Background(), &tmpCfg, "", useVolumeSnapshots)).To(Succeed()) Expect(CheckVeleroVersion(context.Background(), upgradeFromVeleroCLI, tmpCfg.UpgradeFromVeleroVersion)).To(Succeed()) } else { diff --git a/test/e2e/util/velero/install.go b/test/e2e/util/velero/install.go index b843fb0be..35526234f 100644 --- a/test/e2e/util/velero/install.go +++ b/test/e2e/util/velero/install.go @@ -82,7 +82,6 @@ func VeleroInstall(ctx context.Context, veleroCfg *VerleroConfig, features strin veleroInstallOptions.UseVolumeSnapshots = useVolumeSnapshots veleroInstallOptions.UseRestic = !useVolumeSnapshots veleroInstallOptions.Image = veleroCfg.VeleroImage - veleroInstallOptions.CRDsVersion = veleroCfg.CRDsVersion veleroInstallOptions.Namespace = veleroCfg.VeleroNamespace err = installVeleroServer(ctx, veleroCfg.VeleroCLI, &installOptions{ @@ -104,9 +103,6 @@ func installVeleroServer(ctx context.Context, cli string, options *installOption args = append(args, "--namespace", options.Namespace) namespace = options.Namespace } - if len(options.CRDsVersion) > 0 { - args = append(args, "--crds-version", options.CRDsVersion) - } if len(options.Image) > 0 { args = append(args, "--image", options.Image) } From a1b48ceac5014dc4964802dc8fb65cc8beddc827 Mon Sep 17 00:00:00 2001 From: "David L. Smith-Uchida" Date: Mon, 13 Dec 2021 11:47:50 -0800 Subject: [PATCH 072/136] Adds -itemsnapshots.gz file to backup (when provided). (#4429) * Adds -itemsnapshots.gz file to backup (when provided). Also adds DownloadTargetKindBackupItemSnapshots type to allow downloading. Updated object store unit test Fixes #3758 Signed-off-by: Dave Smith-Uchida * Removed redundant checks Signed-off-by: Dave Smith-Uchida --- changelogs/unreleased/4429-dsmithuchida | 8 ++ .../v1/bases/velero.io_downloadrequests.yaml | 1 + config/crd/v1/crds/crds.go | 2 +- pkg/apis/velero/v1/download_request_types.go | 3 +- pkg/persistence/mocks/backup_store.go | 4 + pkg/persistence/object_store.go | 33 ++++++-- pkg/persistence/object_store_layout.go | 4 + pkg/persistence/object_store_test.go | 83 ++++++++++++++++--- pkg/volume/item_snapshot.go | 57 +++++++++++++ 9 files changed, 176 insertions(+), 19 deletions(-) create mode 100644 changelogs/unreleased/4429-dsmithuchida create mode 100644 pkg/volume/item_snapshot.go diff --git a/changelogs/unreleased/4429-dsmithuchida b/changelogs/unreleased/4429-dsmithuchida new file mode 100644 index 000000000..4e4c6b5a4 --- /dev/null +++ b/changelogs/unreleased/4429-dsmithuchida @@ -0,0 +1,8 @@ +Added ``-itemsnapshots.json.gz to the backup format. This file exists +when item snapshots are taken and contains an array of volume.Itemsnapshots +containing the information about the snapshots. This will not be used unless +upload progress monitoring and item snapshots are enabled and an ItemSnapshot +plugin is used to take snapshots. + +Also added DownloadTargetKindBackupItemSnapshots for retrieving the signed URL to download only the ``-itemsnapshots.json.gz part of a backup for use by +`velero backup describe`. diff --git a/config/crd/v1/bases/velero.io_downloadrequests.yaml b/config/crd/v1/bases/velero.io_downloadrequests.yaml index 17517342b..45f229c44 100644 --- a/config/crd/v1/bases/velero.io_downloadrequests.yaml +++ b/config/crd/v1/bases/velero.io_downloadrequests.yaml @@ -46,6 +46,7 @@ spec: - BackupLog - BackupContents - BackupVolumeSnapshots + - BackupItemSnapshots - BackupResourceList - RestoreLog - RestoreResults diff --git a/config/crd/v1/crds/crds.go b/config/crd/v1/crds/crds.go index fde97d2ca..b23a26318 100644 --- a/config/crd/v1/crds/crds.go +++ b/config/crd/v1/crds/crds.go @@ -32,7 +32,7 @@ var rawCRDs = [][]byte{ []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec<]o#9r\xef\xfe\x15\x05\xe7a\xee\x00K\xbeE\x1e\x12\xf8m\xd6\xe3E\x84\xdd\xcc\x19;\x8e\xf3\x10\xe4\x81\xea.Ib\x81F\xaf\xa5\xbe\xb2\x15f4\xd7\xde躺\x83\xf6\a?$\xe0\xe1\xd7\xf0#\x8f\xe6\x0f\x85\xb4\xee\xe7\xce\xc7_\xa4u\xfcCU\xd4F\x14\xcdL\xfc\xcdJ\xb5\xaf\va\xe2\xd7+\x00\x9b\xe9\n\xef\xe03MQ\x89\f\xf3+\x80\xb0\x1c\x9er\x15\x10>\xfe\xe0!d\a,\x85\xc7\x05@W\xa8>>n\x9e\xff\xf1K\xef3@\x8e63\xb2rL\x14\x8f\x18H\v\x02\x9eyY`\x02\xf9\xc1\x1d\x84\x03\x83\x95A\x8b\xcaYp\a\x84LT\xae6\bz\a?\xd7[4\n\x1d\xda\x064@V\xd4֡\x01\xeb\x84C\x10\x0e\x04TZ*\aR\x81\x93%\xc2\x1f>>n@o\xff\x82\x99\xb3 T\x0e\xc2Z\x9dI\xe10\x87\xa3.\xea\x12\xfd\xd8?\xae\x1b\xa8\x95\xd1\x15\x1a'#\x9d}\xebHU\xe7\xeb`y\x1f\x88\x02\xbe\x17\xe4$N\xe8\x97\x11\xa8\x88y \x1a\xad\xc7\x1d\xa4m\x97\xcb\x12\xd2\x03\f\xd4I\xa8\x80\xfc\x1a\xbe\xa0!0`\x0f\xba.r\x92\xc2#\x1a\"X\xa6\xf7J\xfew\x03ۂ\xd3\xa3\xc1`u\x0fg\x03ؤ\t\xa9hא\x11!\xf4T\xfb+)\xe6\x91\xc5\t\x83@r+\x95\x87\xc7:\xf7\x80\xa3\f\xa2&\x1d\x96#\xb8M\x8a\x99od*Ŷ\xc0;p\xa6\xc6\t\xca\bc\xc4i\x82.Ѽ\xa7\x92\xa5\xe9\x1f\xb4H!3\xb6?\x8d\xae`\xcaxk%\xcc9F\xf0{&\xcaA\xeb\x97%B\xfc\v\xf5i\xf5\x1ed\xec%\xc1\x16\x0f\xe2(\xb5\tK\x0ffh\x8b\x80_1\xab\x1d\x8eɿp\x90\xcb\xdd\x0e\r\xc1\xa9\x0e¢\xf5\xa6o\x9a \xd3[\x99\x9a\x99f\xe6\xd9:ZF\x92\xa4\xf2ʧP\xa7\r=\xdcW\xb1\x11\xa2d4\xc8mQ\xb9<ʼ\x16\x05He\x9dP\x99_\x8fh\xf0:_\x0f\xcc1\xf9\fg\xaf\x0e#\xe6ĉ\x9ej\xd4\nA\x1b(\xc9\x1e\x9cw\x1dZ\xb0\xb6M-{+H;i/\xa2\xa6.І\xa9rֹ\xad\x0e\xb8\x99\x04\xddp\xc4\xfb\x12\x85\xd8b\x01\x16\v̜6\xe3\xe4Xb\xb2o)zm\x82\x8a#\x1a\xae\xd5ݴ\xd4va3 \x81\xd4\xf6\xebAf\ao\xe6I\x82\x18\x0e\xe4\x1a-\xefrQU\xc5ij\x91\xb0\xc4\xf90\xc9\xdcFo\xdb\u0096\x1f\xc2\x1b\xdb\xfcmKЍm[В}\xca6\xe2\x00N\xcf.\xfb\xff'a\xa3\xda\u007f\x83\xd0nΆ\xbe\xaf\xd0\x12I%\xb9\xf3\x9b\x1d`Y\xb9\xd3\rH\x17\xbf.A$g\xa5\x9d\xff\xef\x981\x97K\xfcf8\xf2]%~\x96+K\x10\x89+\xcd\xf4\u007f\x87Lac\xf1%؊d\x86\xfc\xd2\x1du\x03r\xd70$\xbf\x81\x9d,\x1c\x9a\x01g~\xd3~y\x0fb\xa4\xd8;j\xa5p\xd9\xe1\xe1+y^\xb6M8%\xd2e8\xd8\xfb\xafџ\xef\x1b\xe6\x05\xb8\xc0\x01\xaa4X\xfa\xc0\xf7\x89\xa9\xd9~a\x8f\xea\xe3\xe7O\x98ϑ\a\xd2$\xefl!\x1f\a\xc8v\xa7\x0eNy\xea2\x82\xeb\xd3\xc47>\xa5q\x03\x02^\xf0\xe4=\x16\xa1\x80\x98#h\xa2\x89H\xe7\x9c8\x9c[a!{\xc1\x13\x83\tɒ\xc5ѩ\xa2\xe0\xdb\v\x9eR\xba\r\bH8I\x1b\x92@DI\xfa\xc0\x84\xe0\xd8:\x9dx\xc0\x89\xaf\xa8\x8b\x96\x17\a\xe9\x8a$\xb6H\xfb7,\xb3a['iȌ\xfd`=\x8bh\x17\x1cd\x95\xb8P2s`\x91wKL}=\x8bB\xe6\xcdD^\xee7j\xda\x1b\xee\xb7\xcf\xdam\xd4\r<|\x956d\x1f?i\xb4\x9f\xb5\xe3/߄\x9c\x1e\xf17\x10\xd3\x0f\xe4\xed\xa5\xbc\xda&:tsh\t\xc2\xed\xdb\xc6Gx\r{\xa4\x85\x8d\xa2\xb8%Ѓ3\xa2~\xbay\xfb\xd0oem9I\xa6\xb4Z\xb1\xa9\\\x8f\xcd䉝\bR\x9b\x1eG\xceQk&\xf5\x13&\x82}\"K\xe2\xc7\xfb\x1co!2\xcc!\xaf\x99\x98\x9c\x99\x14\x0e\xf72\x83\x12\xcd~\xcept[E\xfa=\r\x85D\xad\xebۅ\x12\x96f\xdac\v\xaa;_FfE;7\xa1Wd\xf6b\u05c9\x84\xe4t\xd7\xe5\x15\xb1\x89e\xffc\x91\xba\"\xcf\xf9,I\x14\x8f\x17h\xfc\vxqn\xfb=b\xdeB\x96\x82\x93\x8c\xffCf\x8e\x05\xfa\u007f\xa1\x12\xd2$\xec\xe1\x8f|4T`ol\xc8bu\xa7\xa1\x19\xa4\x05\xe2\xefQ\x14\xe7\xa9\xee\x91\xc5i\xd2-XxC\xaewg\x1e\xcb\r\xbc\x1e\xb4\xf56u'q4\xa5\xdao\xd2\xc2\xf5\v\x9e\xaeo\xce\xf4\xc0\xf5F]{\x03\u007f\xb1\xbai\xbc\x05\xad\x8a\x13\\\xf3\xd8\xeb\xdf\xe2\x04%JbR7>\x82Ku\x95)\x96\x8c\x9e\x00\rlΝ\xc8͝\xc3:I\x0e+m]2*\x8f\xda:\x9fY칥\x97d\xb1\xc0\xcbP\xc8^\x81\xd8\xf9\x93?m\xe2\x99\x0e\xa9\xbdA\u0095\xb8f\xe75,\xb1\xb1Ɉy\xa0\x14X]\xb7;\xd8\xeb\xd3k\u007f\xd0Ó\x88\x8c\x9d\x8bE\xb8\x95\xd1\x19Z;/\"\t\xdaz!I\xd8$\b\x85\x0f`\xfc\x81\xc9|R2\xb6t\x87\x94\x88t\xa1+\xff\U000354fd\xa4\xcdO\u007f/\tߥx\x01\xefٲ\x14Ó\xc1$\x14\xef\xfdȸM\x02 \x1f\x1a\x98}\xcd[=݃\f\x82\xf4{0ӥT\x1b\x9e\x00~xw\xb3\xde(I|\x8b\xe3~\x1fǶDo>\xf0\xeeM\xf5\x884g\xee\r\xf68w\x9e\xe7&G1\x11\xa4Ү\x9bN \xb8\x95\xce?X\xd8Ic]\x17\xd1T\xa1\xa8\x17v\u007f\xdb.\x8d\x9cԃ1o\n\x9c\xfe\xecGv\x12Y\a\xfd\x1a\xcfW'\x0f3\xc7\x1a\x1f\n!\xc8\x1dH\a\xa82]+N\xbf\xd0V\xe7)<\v\xbc\x82N&Y\x9a\x82\xa0\x86\xaa.\xd3\b\xb0b\xa9\x93j6O\xd3\xed\xfe\x93\x90ŷ`\x9b\x93%\xeaz\xd6p\xb6\xadǶ'?\xb2wP^\x8a\xaf\xb2\xacK\x10%\x91>5\xec\xd9\xf9\xe2\x98\x1e\xc7\xe1UHǖ\x83\xe0\xb2\x19q\x9a6UU\xa0Kݑ[\xdci\xc3\xfb\xd9\xca\x1c\x1b\xc3\x1c\xa4@+\x10\xb0\x13\xb2\xa8M\xa2\x86\xbc\x88\xb6\x97\xc4\x1aAY\xbc_\x10\x916\xf9\x8aI\x91\x90\x88Mt\x16\xe7\xb5ue\xd2]\xc5G\x83i\xee\xd9RR:\xbag\x95\x91$K\xfa\xbd=\xb4 bB\x9d\xbe\xbbhg\xed\xbb\x8b\xb6о\xbbh\x93\xed\xbb\x8b\xb6ܾ\xbbh\xa1}w\xd1b\xfb\xee\xa2}w\xd1\xe6\xba\xcdi\xeb%\x8c|\xc5\xfdď\x8bX$\x1cOϡ8\x03?TS\xdc\xfb\xea\xfb\xd4\n\xcb\xcd\xf8\xa8\x91\xba\xdaPֿ\xe2\x1b\tc\x12\xd0\x16]\xb4\xa6\xa4)\xb9\xa4\r\x12\xc5\xdb\x17\x10/\x14a&\x95S\x8eWߦ\x14\xfc,\x95\xf9\xf4\xebL\x9b2\x9bXh\xaa\xe3$#t\x887\x1b\xc8\xed\xed\u0590\xf4\xebu\xd8ύ\x98\xfe\xcdkP\x13Jq\x16\np\xe6\vs\xe7\xe85\b=\xfa\x043\xbd\x82\xd1\xdf\r\xbd\x16\xaad\xa6kc\xc2I\x10:q\xfca\xdd\xff\xc5\xe9P)\x03\xaf\xd2\x1dF\x96\xf2z@\xc5gXj\xdf-{\x8d\xf2\x16\xae\x98\f\xe9\bڀ\x92\x05\x93sFZ{\xe4\x85?W>\x84\xbbx_·\x1fi\xb54o\xae\xa0\xe9W\xc8L\xa8\xe8K\x8f\x8c\xd2\v\x85\xd3kd\xe6\x8bZ.\xa9\x8c\x19ֽL\x02]\xae\x87I\x89\x1c\x17j_\xdeP\xf1\x92X\xed\xf8\x9b\x0f\xc6RjZ\xdeTɲX\x10\x98X\xbfүL\x99\ayA\xd5J\x12q\x96+T.\xaeK\tu \xb3\xebH\xaeF\x19\xa93\x99\x05\xf0\xb4\xaaY\xac\x06Y\xf4\x91\xe7\xf1[\xac\xf7\xb8\xa4\xcac\x91bo\xac\xe8h*6&潴\x8e\xa3_\xa71\x014\xa5zc\xa2:c\x02\xe2l\xcdFjM\xc6\x04\xec\x05\xb3;+%3?\x8e_\x84\x84E\xfbV\xfc\xb5$\xea\xad\v\xd3&G3롧\xa29\x8bb?\xe35\x98sPf\x1f/NR\xaf\xae\xd7?\xc6rݔ\x84g\xf0\xb3T\xb9\x97\x13\x12\xf4\x8e\x9f\xc0\x17\x85\xb9(\xa6qWZ\u007fo\x1c\xe8 ҰX\t\xc37ɷ'\x9f\xad\xb0kx\x10١\xdf\x11\x0e\xc2RLZ\x8e\xbaa\xd7M\x98v\x1bGї\xeb5\xc0O\xba\x89\x84\xbb\u05ec\xac,\xab\xe2\x04\xb5E\xb8\xee\x0fy[\xcc1*\x01V\x89\xca\x1et\xbc\x03\xbb\x10v|\xe9\xf7\x1e\x89\xe8\xe3\rج\xd0u\xde@\x9f`\x9eP'x|f߇\xef\x0ef\xed=\xca\xe0\xdf\xc4Hbx\xcd\xf2\xc7\xf7\x8f\xf0\xad\xd3F\xec\xf1\x17\xed/#/Q\xa2\u07fbw\x13=谘q\x8b\x05Yb\x84\b\xe1Z\xf4\x00X\x9bH\x0f\xbb\xa1M~\x10\x96c\xeamf\xff9W,,\xe6\xe9\xe9\x17\xbf\x00'K\\\u007f\xaa}6eU\tc\x91\xa8\x19\x17\xe6\am\xe9\xbf\a\xfd:\xa6\xf0tX\xf3\x8fC\xbc\rr\xb2\x9e\x936\x17a\xef\xafMG\xc1\x8b$Z\x12\xd4\xe7\xf1Q\x9d@\xaf\xc3$\xbf\xcb\xf5ع\xc4\x14\x9c\xce\xeb\x12\x14X\xfbb\xbb\xf7\xbd\xfb;\xe5\xb1Lݿw\xc2\xd5v\xf9\x06>w\x8b\xefm\x84#\x9f\xda\xf0\xc5]\x0f\xc2_t}\xd3%\xfc\x90\xa1\uef412ϧ\xfb\xf3\x11\xfc҅\xc9=j\x9c\x1bonӿ\n\xdbd\xc1GM|\vΏd\x0f\x9a\xa0a\x0exD\x05Zqқ\xaf\xc4\xfa\xd7X\x86cƒI\x1d(!\xab^W\x85\x16y\xdc\xe1\xd1f\x85\x17<\x9eX\u007f\x99#\x9a\x0fv\x06&\xbf\x18\xb0\xd3f\x8c\b\xe7\n\xd3\x1b\x96;ȅ\xc3\xd5(\xd0$\xdd7*l|>\xb4xo\x9e;\xf9\x1dćK\xf1q\x03\u007f\xbaT\xa2\xb5b\x1f/̿\x92\x02ۣB\xb6\x9b#\xeb\x0f\xf1L{\x1aѿ.\xeeS*\"s\xb5\b\x13\xc4lR\xa7ׇ1\xb3R\xe8=\xecd\xc1]\xc3\xd3\x1eA\xb3O\xa9\x1d\xa9\x1c\xeeq\xe8\xae\xe2\xd7J\x9a\x14K\xf0\xd0t$\xdap>\x8d\xb5A\xfb\x04\x0e\x16r/I\x8d\x12\xb3\xf7\xc2l\xc5\x1eW\x99.\n\xe4҅s\xbc\xbe%\xaf=\xec\xd1'nΖ\xf6S\xb7o\xf4\xa7\x82\xb0{8\xf1ś\x9b`\xa1\xc7\x1d\xd4R\xfcE\x9b\x1b(\xa5\xa2\u007f\xc8\r\xe3\xc84\x0e\xbe\xc8\x1e\xf0\xeb\x02\vx?R\x9f\xe6@\xbb\xa3\xdd0\x8aٔ\xff0~\x88\xb9\x82\xcfxn\xee\xfc\xb9$\xe6\x9c{\x19{ׇ\xbalԣ\xd1{\n\x9dF~\xbc\x8f\xbal\xe4\xb7Ga\x9c\x14Eq\xf2\x93L\xce>\xf2\xc3'$m2iR\xc6\xc9\x1a\xb0\\\xa2l\xe8\xd6\xc6iRyI\xe0\x13ŭ\xae]o\x83\xb6\x1b|D,\xe2\x9ck\xf8\xac\x1d\xc64\x9e\xec\xc3$\xbb\x8a֭p\xb7\xd3\xc6\xf9\xb0p\xb5\x02\xb9\v&j\x04.ixN]\xfbgv@\xba6}\xd2J/{\x9f\x06\x85e\xe9u\xfc\xd8\x0f\x9f.\x89,#\x0f\bo\xad\x13ň\xd6\xf8M\xd9j\xf6\x05H\xfa0\xff\xb7\x11\xe3xF\xf0M\xb7\u007fS\xe2_\x97[\x1f\x1d18O9>\xfd\xf7\x1a\xb3\x98ʣl\x11\x15\xbc\x1a\xe9\x1ci\xa9nn\x1f\x1c饢\x00\xaba'&\x1et\x98ӗ\xfc\xbbv\xa2\xd8L\xe7\x94\xfaNg\xd39.\x8b\x87\x9f/N\x13[\xb6L\x82\x89e\xf9\xea2i\xe3Xbev\x10jOBet\xbd?D\xb9\x9c\xb07S\x99\xf8\x9a\x90\x82\xaa\xa8\xf7$\xea!7\xeej\xa3:qqȖ\xe7\x1dtE\xf62\x89i\xc8\x0eƧ\xden\xc3\x13\r\xab\x9d\xd1\xe5*\xf0\x82\xf3\x067!^5R\x93SF\xd1\xd5\x04\xd0\xf6.4\x8bAU\xa1\x02a\x03>\t\xa5o\xf3l\x9d\v\x1e\x9d0.\xd5\xd5\xfb\xd2\xeb\xbc\xe0\xe51\xe4q|\xbf\x84hܗ\x00\xde\x0f\x1fݣ\xb8Y\xc5W\xe6|\xb4\xefE\xc1\x92\xf3g\x90\x03\xa8\xd1\xf3\x8a3\xb7\xad\xe7\xa4\xf5\xd1\xff\xeb\xfag\xc7\xc6\xc2<\xa4xjσ\xee\x83sT\xda\xe5-\xc4\xe0]\x8d\xd0\xe3\x0fr\xe7\x0fR2\xc2\xfa\x8f\u007f\xf3\xf3\xd1c\x92\xcf\xf2a\xd6]aO\xa4\xf1;\xe0\x13V\x063ڽc\xcbx,\x90\xfc\b\x8b\xd8\xf7\x84>\\\xe4H\xf6\x03X\xfb\xd19,\xab\xd1\x19g\"\xd8vؔ\xb2\x14\xb1\xc3\xc8B\xe2\x03\x88\x11X(-\x9a\tY/XP\xe3\xc4\\\xb6\xa0f\xd8Ԃl\x9d\x91\xd2\xda\xd5\xe3欉\x03\xdfyu\xaf\xc2(\xa9\xf6K{\xec\xdfC\xb7\x91x(@\x18\x89\x88F\x96\xd1\xc4H\x8b\x11Q' \x8a8N\xbcK6\b\x92\xde)$\x1a\xb5\x03g\x1fY\x81杽\x1df\n_\xda,\x85\xc82$q\xfd<|\xe8\xf4\xfa\x9a\xff\x88o\x99\xf2\x9f\x99V\xde\xdc\xda;\xf8\x8f\xff\xbc\x82\x90\x06{\x8e\x8f\x96\xd2\xc7\xff\v\x00\x00\xff\xffy\x8fd\x10\x14V\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4YK\x8f\xe3\xb8\x11\xbe\xfbW\x14f\x0f}\x19˳\xc9!\x81/\x81Ǔ\x00\x83\xf4l7Ɲ\xce!\t\xb04Y\xb2\xb9M\x91\nI\xd9\xeb\x04\xf9\xefA\xf1!ɒ\xdcv\x0f\x92]^\xba\xcdG\xb1\xea\xab75\x9b\xcf\xe73V\xcbg\xb4N\x1a\xbd\x04VK\xfc٣\xa6_\xaex\xf9\xbd+\xa4Y\x1c\xbe\x9f\xbdH-\x96\xb0n\x9c7\xd5Wt\xa6\xb1\x1c?a)\xb5\xf4\xd2\xe8Y\x85\x9e\t\xe6\xd9r\x06\xc0\xb46\x9eѴ\xa3\x9f\x00\xdcho\x8dRh\xe7;\xd4\xc5K\xb3\xc5m#\x95@\x1b\x88\xe7\xab\x0f\x1f\x8a\xdf\x15\x1ff\x00\xdcb8\xfe$+t\x9eU\xf5\x12t\xa3\xd4\f@\xb3\n\x97\xb0e\xfc\xa5\xa9\x9d7\x96\xedP\x19\x1e\xef*\x0e\xa8КB\x9a\x99\xab\x91\xd3\xd5;k\x9az\t\xddB\xa4\x90؊\"}\f\xc46\x91\xd8}\"\x16֕t\xfeϗ\xf7\xdcK\xe7þZ5\x96\xa9Kl\x85-no\xac\xff\xa1\xbbz\x0e[\xa7\xe2\x8aԻF1{\xe1\xf8\f\xc0qS\xe3\x12\xc2\xe9\x9aq\x143\x80\x84Y\xa06\a&D\xd0\x02S\x8fVj\x8fvmTS\xe9\xf6.\x81\x8e[Y\xfb\x80r\x94\x05\x920\x90\xa5\x01\xe7\x99o\x1c\xb8\x86\xef\x819X\x1d\x98Tl\xabp\xf1\x17\xcd\xf2\xff\x81\x1e\xc0O\xce\xe8G\xe6\xf7K(⩢\xde3\x97W\xa3\x8e\x1e{3\xfeD\x028o\xa5\xdeM\xb1tϜ\u007ffJ\x8aV\xeb \x1d\xf8=\x82b\u0383\xa7\t\xfa\x15\x11\x02\x82\b!#\x04G\xe6\xd2=\x00\x87H%`4ͩ\x1a\xddu\xc66\xb1\x02\xcf\x03*\x91\u007f\x9aI\xdc\xf7\xc8f\xc3/FF{Fw\xb5\xc3K\xc4Π\xf8\x84%k\x94\xef\x8bJZR}\xbb<\x17\xabF^\x88x\xea\xec\xc6Ogs\xf1֭1\nY\xa4\x12w\x1d\xbe\x8fV\xc8\xf7X\xb1e\xdaljԫ\xc7\xcfϿݜMÔ!\r\x9c\x82\x14\xc7z\xba٣Ex\x0e\xfe\x17\xf5\xe6\x92h-M\x00\xb3\xfd\t\xb9\xef\x94X[S\xa3\xf52;K\x1c\xbd ՛\x1d\xf0tGl\xc7] (:a\xb4\xa3\xe4/(\x92\xa4`J\xf0{\xe9\xc0bmѡ\xf6}x[\xc6J`:\xb1W\xc0\x06-\x91!_n\x94\xa0\xa0v@\xeb\xc1\"7;-\xff\xd5\xd2v\xe0M2^\x8f\xce\x0fh\x06\xff\xd4L\x91\xa96\xf8\x1e\x98\x16P\xb1\x13X\xa4[\xa0\xd1=za\x8b+\xe0\vٻԥY\xc2\xde\xfb\xda-\x17\x8b\x9d\xf498sSU\x8d\x96\xfe\xb4\bqVn\x1bo\xac[\b<\xa0Z8\xb9\x9b3\xcb\xf7\xd2#\xf7\x8d\xc5\x05\xab\xe5<\xb0\xaecЬ\xc4w6\x85sww\xc6\xeb\xc8k\xe3\bQ\xf3\x15\rPČV\x10\x8fF):\xa0i\x8a\xd0\xf9\xfa\xc7\xcd\x13䫃2\x86\xe8\aܻ\x83\xaeS\x01\x01&u\x896*\xb1\xb4\xa6\n4Q\x8b\xdaH\xed\xc3\x0f\xae$\xea!\xfc\xae\xd9Vғ\xde\xff٠\xf3\xa4\xab\x02\xd6!c\xc1\x16\xa1\xa9\x83\xdf\x17\xf0YÚU\xa8\xd6\xcc\xe1\xff]\x01\x84\xb4\x9b\x13\xb0\xb7\xa9\xa0\x9fl\x87\x9b#j\xbd\x85\x9c\v/\xe8kҋ75\xf23\xff\x11\xe8\xa4%\v\xf7\xccc\xf0\x8b\x01\xae\xc9\xc5/'\xd3<\xa6\x9d\x9b\x06\xe3\x1c\x9d\xfbb\x04\x0eW\x06,\xafڍg<\xd6h+\xe9BZ\x84\xd2\xd8a\xc6`m\x04\xee\x8f\x1c\xa9\x8a\xd1\x1a\xea\xa6\x1a32\x87\xaf\xc8ăV\xa7\vK\u007f\xb5ҏ/\xba\xa0H\x1a\x91\xc5\xcdI\xf3G\xb4҈+\xc2\u007f\x1clo!؛#\x94\xc1\xac\xb5W'\x8aA\xee\xa4\xf98\xda\xe6\xb1z\xfc\x9c#ot\xa0\xe4o\t\xab\x02V\xc9sM\t\x1f@HG\x05\x80\vD\xc7`QyF\xebK\xf0\xb6y\x93\xf8\xdc\xe8R\xee\xc6B\xf7k\x9aK\x16s\x85\xf4\x00\xb9u\xb8\x89B\x13YGm\xcdA\n\xb4s\xf2\x0fYJ\x9e8il\xcc\\\xa5D%\xdcX\xd2\v^\x16D\xb1(ȫ\x99\xba\xa2\xc3u\xbb1\x94\xc6L\xeah\xc1\x1d\x81\x10ll\x95R\xaa\xf6\xa8E[\x8d\x9cqcB\xd4r(\xe0(\xfd>\x86C5\xe5w\xf0\xaa\xef\xd1x\xc1\xd3\xd4\xf4\x80\xf7\xa7=\xd2Θ@\x11\x1cr\x8b>X\x1b*2\x1f2\xa5\x02\xe0K\xe3B@\x1dƉ\x86\x8d\x19\xf0\x9a\xf9=H\xed\xa4@`\x13\xf0\xc7b킠m\xfe\u007fHQ\xe4\x1b\xd4\xf3\x9a\xb7Gv\xde\xe2\xf0\x19\xe3+\xfe\U000d8db5(\xe4\xdf)\xf2\x9fׂ\x97\xfcxR\xa2C\xfb`\xf0\xa7Xa\xf1\x89Ty\xc6\xcc\xf3\xf8\xc4+\x95Z~\xb6\x98rf\xaa\v\x8c\xb5\xe8j\xa3\x055O\xb7\xd5i\x1d\xcb\xff\xbbjmZ\xad\xf3\xf3(7X\xcbZ\xb8\xa9U\tO4onV\xe2\xc3U\xbf\x150[G\x9dbׯ\fd\xfcEڔw\xbd>\x85\xfaa\r\x8d\x0e\x95Z\xc8\xf8\x05\xfc]\xc3'\xeam);\x89%\xf1m\xa7\f@:\xd0\xe6H\xc7{\xf4\x02\t0:\xe6k\xea֘\x16\xa9\x19\x0eKG\xa9\x14el\x8b\x959Lfl*4-\xaa\x130G\xa6s\xf8M\xf1\xa1x\xf7\xabuA\x8a9OM\r\x8a\xafx\x90\xe3W\x9e1\xba\xf7\xa3\x13\xd9\xf1[w\xa0\x1f?\xe6fyaӶ\x1f'\xc0(\xa5\xa2Zp\"Nt\x15\xc3\xf8=\xf2\xe3\xe6\xfe΅\x12\x1e\xb5\x9f*\xfb\x8eh1tL(\xa8\x8a7\xe9]\xa2q\x1e\xed\x84\x01\xb4\xda\v:\ae\xf4n\xe08q\xa4W\n\xaaТA\x19\v\x02=\xa5&\xbd\x03\xbegz\x87\xdd+T\xe2\xffuN\xc9|\x066\xd3Y\x88ԗ\xcc\xe3&\x8d>ɩ2}\xf4\x02\xdcm\x9e~\xfd\xcd\xdcg\xcd^ls\xae\xe0>ڟ\xb34\x81:\xf7\u074bp7\xbe\xbd\xbd\x1d?7߀\xc4[\xdf\xc2_y׀#sݫ\xf8\xaf\x87C\xf8@p-\x81Ӟ,-o,\xb5i\u074bSp\xb8\xa9\xb8}\xfb\xd3\xcdj\xf0\x1d\xa3\xbf6\xfe\xcaq\x83\\\x93yl4\x19sQ\x0f\xb3\x14Z\xfa3Ͷ}\x85͜\xa7l\b\xff\xfeϬK\x8c\x94}j\x8f\xe2\x87\xe1g\xacw\xd19\xf3\xb7\xa8\xf0\x93S\xc5\x10\xbf\xc3\xc1\xdf\xfe1\x8b\x17\xa3x\xce\x1f\x8fh\xf2\xbf\x01\x00\x00\xff\xffHX\xbeK\x01\x1c\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4V=s\xe36\x10\xed\xf9+v.\xc55\x11u7)\x92Q\x97\xf8\xae\xf0$\xf1x\xec\x1b7\x99\x14\x10\xb0\x127&\x01dw!\xc7\xf9\xf5\x19\x00\xa4%Q\xf4\xc5)\u008e\xfb\x85\x87\xf7v\x97lV\xabUc\"= \v\x05\xbf\x01\x13\t\xffR\xf4\xf9M\xda\xc7\x1f\xa4\xa5\xb0>|l\x1eɻ\r\\%\xd10ܡ\x84\xc4\x16?\xe1\x8e<)\x05\xdf\f\xa8\xc6\x195\x9b\x06\xc0x\x1f\xd4d\xb3\xe4W\x00\x1b\xbcr\xe8{\xe4\xd5\x1e}\xfb\x98\xb6\xb8M\xd4;\xe4R|:\xfa\xf0\xa1\xfd\xbe\xfd\xd0\x00Xƒ\xfe\x85\x06\x145C܀O}\xdf\x00x3\xe0\x06\x1c\xf6\xa8\xb85\xf61E\xc6?\x13\x8aJ{\xc0\x1e9\xb4\x14\x1a\x89h\xf3\xc1{\x0e)n\xe0\xe8\xa8\xf9#\xa8z\xa1O\xa5\xd4O\xa5\xd4]-U\xbc=\x89\xfe\xfcZ\xc4/4F\xc5>\xb1\xe9\x97\x01\x95\x00!\xbfO\xbd\xe1Ő\x06@l\x88\xb8\x81\x9b\f+\x1a\x8b\xae\x01\x18\xf9(0W\xe3\x8d\x0f\x1fk9\xdb\xe1`*~\x80\x10\xd1\xffx{\xfd\xf0\xdd\xfd\x99\x19\xc0\xa1X\xa6\xa8\x85\xd5\x05\xfc@\x02\x06F\x14\xa0a\x04\a\xc1#\x04\x86!0BE*\xedK\xd1\xc8!\"+M\xfc\xd5\xe7\xa4uN\xac3\b\xef3\xca\x1a\x05.\xf7\f\nh\x87\xd3Mэ\x17\x83\xb0\x03\xedH\x8012\n\xfa\xdaEg\x85!\a\x19\x0fa\xfb\aZm\xe1\x1e9\x97\x01\xe9B\xea]n\xb5\x03\xb2\x02\xa3\r{O\u007f\xbfԖ|\xcf|hot\x12\xf9\xf8\x90Wdoz8\x98>\xe1\xb7`\xbc\x83\xc1<\x03c>\x05\x92?\xa9WB\xa4\x85_3M\xe4wa\x03\x9dj\x94\xcdz\xbd'\x9dFƆaH\x9e\xf4y]\xba\x9f\xb6I\x03\xcb\xda\xe1\x01\xfb\xb5\xd0~e\xd8v\xa4h51\xaeM\xa4U\x81\xee\xcbش\x83\xfb\x86\xc7!\x93\xf7gX\xf597\x8c(\x93ߟ8J7\u007fE\x81\xdc\xcbU\xf6\x9aZoq$:\x9b2;w\x9f\xef\xbf\xc0tt\x11c\xce~\xe1\xfd\x98(G\t2a\xe4w\xc8U\xc4\x1d\x87\xa1\xd4D\xefb \xaf\xe5\xc5\xf6\x84~N\xbf\xa4\xed@*SKf\xadZ\xb8*{\x04\xb6\b):\xa3\xe8Z\xb8\xf6pe\x06쯌\xe0\xff.@fZV\x99طIp\xba\x02\xe7\xc1\x95\xb5\x13Ǵ\xa3^\xd1kah\xef#ڬ`&1gӎl\x19\x0f\xd8\x05\x86\xa7\x8el7\r\xed\x8cݗ\x01o\xcf\x1c\xcb\x03\x9d\x9fZ&/\xa5\xb9\xe7\xd5\xcbCю\x18g]\xb8:)\xf6&^\xd4h\x92\xff\xc8Lə\xb8\xb1\x89\x19\xbd\x8e\x95ʶXJz+\x17\xc8\x1c\xf8\xc2:\x03\xf5\xb9\x04\x95\xef\x9c!/`\xfc\xf3\x98\b\xda\x19\x85'\xe4<\x066\xa4\xbcgЁK\x17\xfc\x8d\xb4tX\xc5\xca\xc2F\x0e\x16Eڋ8R\x1c\x160}E\x9d\xfc\xe4o\xa8\xd9\xf6\xb8\x01儯(k\x98\xcd\xf3\xcc\x17;#\v\xadpF\xc1m\x8eY\xd2\x00\xebV\xc7\u007f\x17\xa1\xd0\xed\xd3py\xd2\nn\xf0i\xc1z\xedo9\xec\x19e\xde\xf2\xd9y[\xd9+\xdf\xd47\xb2\xb4ؔ\x17F\xc9\xfbΝ\xb0(\x1a\xd8\xec'^\x8f-l\xacŨ\xe8n\xe6\u007f\x1d\xefޝ\xfd>\x94W\x1b\xbc\xa3\xfa\xd3\x04\xbf\xfd\xdeԪ\xe8\x1e\xa6\xbf\x81l\xfc'\x00\x00\xff\xff\x8c\xdb\x1fܮ\t\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4WMo\xdc6\x10\xbd\xebW\f\xd2CZ \xd2&\xe8\xa1\xc5\xdeZ'\x87\xa0i\x10ة/E\x0f\\jVbM\x91,g\xb8\x8e[\xf4\xbf\x17CJ\xfb\xa1\xd5\xdaΡ\xba-9\x1c>>\xbe7\x9c\xad꺮T0\xb7\x18\xc9x\xb7\x06\x15\f~at\U0008b6bb\x1f\xa91~\xb5{S\xdd\x19\u05ee\xe1*\x11\xfb\xe1\x1aɧ\xa8\xf1-n\x8d3l\xbc\xab\x06d\xd5*V\xeb\n@9\xe7Y\xc90\xc9O\x00\xed\x1dGo-ƺC\xd7ܥ\rn\x92\xb1-Ɯ|\xdaz\xf7\xba\xf9\xa1y]\x01\xe8\x88y\xf9g3 \xb1\x1a\xc2\x1a\\\xb2\xb6\x02pj\xc05\xb4\xfe\xdeY\xafڈ\u007f%$\xa6f\x87\x16\xa3o\x8c\xaf(\xa0\x96M\xbb\xe8SX\xc3a\xa2\xac\x1d\x01\x95ü\x1d\xd3\\\x974y\xc6\x1a\xe2_\x96f?\x981\"\xd8\x14\x95=\a\x91'ɸ.Y\x15Ϧ+\x00\xd2>\xe0\x1a>\n\x8c\xa04\xb6\x15\xc0x\xf6\f\xab\x1eO\xb7{SR\xe9\x1e\aU\xf0\x02\xf8\x80\xee\xa7O\xefo\xbf\xbf9\x19\x06h\x91t4\x813\x833\xcc`\b\x14\x8c\b\x80\xfd\x1e\x14(\a*\xb2\xd9*Ͱ\x8d~\x80\x8d\xd2w)\xec\xb3\x02\xf8͟\xa8\x19\x88}T\x1d\xbe\x02J\xba\a%\xf9J(X\xdf\xc1\xd6Xl\xf6\x8bB\xf4\x01#\x9b\x89\xe5\xf2\x1d\x89\xebht\x06\xfc\xa5\x9c\xadDA+\xaaB\x02\xeeq\xe2\aۑ\x0e\xf0[\xe0\xde\x10D\f\x11\t]\xd1\xd9Ib\x90 \xe5\xc6\x134p\x83Q\xd2\x00\xf5>\xd9Vĸ\xc3\xc8\x10Q\xfbΙ\xbf\xf7\xb9I\x18\x92M\xad\xe2I\x0e\x87\xcf8\xc6蔅\x9d\xb2\t_\x81r-\f\xea\x01\"f\x9e\x92;ʗC\xa8\x81_}D0n\xeb\xd7\xd03\aZ\xafV\x9d\xe1\xc9T\xda\x0fCr\x86\x1fV\xd9\x1ff\x93\xd8GZ\xb5\xb8C\xbb\"\xd3\xd5*\xea\xde0jN\x11W*\x98:Cw\xd9X\xcd\xd0~\x13G\x1b\xd2\xcb\x13\xac\xfc 2#\x8e\xc6uG\x13Y\xf3\x8f܀\xa8\xbe\b\xa6,-\xa78\x10-C\xc2\xce\xf5\xbb\x9b\xcf0m\x9d/c\xce~Q\xce~!\x1d\xae@\b3n\x8b\xb1\\bV\x9e\xe4D\xd7\x06o\x1c\xe7\x1f\xda\x1ats\xfa)m\x06\xc34\x89Y\uea81\xab\\i`\x83\x90B\xab\x18\xdb\x06\xde;\xb8R\x03\xda+E\xf8\xbf_\x800M\xb5\x10\xfb\xbc+8.\x92\xf3\xe0\xc2\xda\xd1\xc4T\xc9.\xdc\xd7\xcc\xea7\x01\xb5ܞ\x10(+\xcd\xd6\xe8l\r\xd8\xfa\b\xea\xe0\xfc\x91\xc0\xe6$\xf3\xb2s38\x15;\xe4\xf9\xe8\f\xcb\xe7\x1c$\xdb\xdf\xf7\xea\xb4\xd0|\x8bM\xd7H\xad\xa0\x11H\xa9\x1e\xdf5g\x19/c\x80E\xf5.\"\x99D,4\b\xafR\n\xa4H\x1dc:\xdfZ>tiXޠ\x86\x9f3\xe6\x0f\xbe{t\xfe\xca;\x16\xb9?\x1at\xebm\x1a\xf0Ʃ@\xbd\u007f\"vzf\xf7O\xcfy\xe05J\x81\xc6\xcb\xd0ƀk\xa4d/lwA\xacӗ\x1f\xa5\xa7\x99\x97gmb^\x96\x94J\x8d \x8f}t\xc8H\x87\xa2qo\xb8_\xcc\bp\xdf\x1b\xdd\xe7\x85\xf9ڤ\x1e\x11ym\xb2\xbb\xbf\x1e\xbe\xa8\xddD\\\x90N\x9d%\xb50,\xe0φ/x\xf4\xd2\x06\xf5\xe8\x9bg\xf9\x9c\x15'\xfa\n\xa7\xe7\xf8\x89j\x9dbD\xc7c\x96\xfc\xf2\xcd\x17<\xd7\xea\x93?~\xbb\xfe\xf0\x84\xdf\xdf\x1e\"so\xa7\x8c+hBĚL'\xef\xb5̉\xe3\xb3\x13\xcf\xc9(\xdfi\xffpJ\xd4\xe2\x8d\xe2\x97`b\xaekO@|\xb7\x0f,e\t]yr\xe6\x1dRN\x88\x94\x9fs\xad捄|\x1b\x84\x16-2\xb6\xb0y(\xf5\xf5\x81\x18\x87s\xdc[\x1f\a\xc5k\x90\xa7\xa8f\xb3 #\xe9b\xd5\xc6\xe2\x1a8\xa6K*[\xaa\f\xb8X\x05k\xf8\x88\xf7\v\xa3\x9f\xa2\xd7H\x84\xe76\xbax\x92E\x13\x9c\r\x92\xf4\v\xed\x11Kc\x1bz<\x926\xfb\xfegB>\xd1U]ו\n\xe6\x16#\x19\xef֠\x82\xc1/\x8cN\xbe\xa8\xb9\xfb\x91\x1a\xe3W\xbb7՝q\xed\x1a\xae\x12\xb1\x1f\xae\x91|\x8a\x1a\xdf\xe2\xd68\xc3ƻj@V\xadb\xb5\xae\x00\x94s\x9e\x95L\x93|\x02h\xef8zk1\xd6\x1d\xba\xe6.mp\x93\x8cm1f\xe7\xd3ѻ\xd7\xcd\x0f\xcd\xeb\n@G\xcc\xdb?\x9b\x01\x89\xd5\x10\xd6\xe0\x92\xb5\x15\x80S\x03\xae\xa1\xf5\xf7\xcez\xd5F\xfc+!15;\xb4\x18}c|E\x01\xb5\x1c\xdaE\x9f\xc2\x1a\x0e\ve\xef\b\xa8\\\xe6\xed\xe8溸\xc9+\xd6\x10\xff\xb2\xb4\xfa\xc1\x8c\x16\xc1\xa6\xa8\xec9\x88\xbcH\xc6uɪx\xb6\\\x01\x90\xf6\x01\xd7\xf0Q`\x04\xa5\xb1\xad\x00ƻgX\xf5x\xbbݛ\xe2J\xf78\xa8\x82\x17\xc0\at?}z\u007f\xfb\xfd\xcd\xc94@\x8b\xa4\xa3\t\x9c#8\xc3\f\x86@\xc1\x88\x00\xd8\xefA\x81r\xa0\"\x9b\xad\xd2\f\xdb\xe8\a\xd8(}\x97\xc2\xde+\x80\xdf\xfc\x89\x9a\x81\xd8G\xd5\xe1+\xa0\xa4{P⯘\x82\xf5\x1dl\x8d\xc5f\xbf)D\x1f0\xb2\x99\xa2\\\xc6\x11\xb9\x8efg\xc0_\xca݊\x15\xb4\xc2*$\xe0\x1e\xa7\xf8`;\x86\x03\xfc\x16\xb87\x04\x11CDBWxv\xe2\x18\xc4H\xb9\xf1\x06\r\xdc`\x147@\xbdO\xb6\x152\xee02DԾs\xe6\xef\xbdo\x92\bɡV\xf1D\x87\xc30\x8e1:ea\xa7l\xc2W\xa0\\\v\x83z\x80\x889N\xc9\x1d\xf9\xcb&\xd4\xc0\xaf>\"\x18\xb7\xf5k\xe8\x99\x03\xadW\xab\xce\xf0TT\xda\x0fCr\x86\x1fV\xb9>\xcc&\xb1\x8f\xb4jq\x87vE\xa6\xabUԽaԜ\"\xaeT0u\x86\xeera5C\xfbM\x1cː^\x9e`\xe5\a\xa1\x19q4\xae;ZȜ\u007f$\x03\xc2\xfaB\x98\xb2\xb5\xdc\xe2\x10h\x99\x92\xe8\\\xbf\xbb\xf9\f\xd3\xd19\x19\xf3\xe8\x17\xe6\xec7\xd2!\x05\x120\xe3\xb6\x18K\x123\xf3\xc4'\xba6x\xe38\u007fhk\xd0\xcd\xc3Oi3\x18\xa6\x89̒\xab\x06\xae\xb2\xd2\xc0\x06!\x85V1\xb6\r\xbcwp\xa5\x06\xb4W\x8a\xf0\u007fO\x80D\x9aj\t\xec\xf3Rp,\x92s\xe3\x12\xb5\xa3\x85I\xc9.\xe4kV\xea7\x01\xb5dO\x02(;\xcd\xd6\xe8\\\x1a\xb0\xf5\x11ԡ\xf2\xc7\x006'\x9e\x97+7\x83S\xb1C\x9e\xcfΰ|\xceFr\xfc}\xafN\x85\xe6[l\xbaF\xb4\x82F E=\xbek\xce<^\xc6\x00\x8b\xec]D2\x91X\xc2 q\x15)\x10\x91:\xc6t~\xb4\ftiX>\xa0\x86\x9f3\xe6\x0f\xbe{t\xfd\xca;\x16\xba?jt\xebm\x1a\xf0Ʃ@\xbd\u007f\xc2\xf6=\xe3\xf0<\xcb\xe9A\xde?R\xe7\x86\xd7(R\x8e\x97/1\x1a\\#%{\xe1\xb8\v\xb4\x9eF~\xbe\x9eΑ<\x80S\x8edK\xd1t\x04i\v\xa2CF:\xc8˽\xe1~\xd1#\xc0}ot\x9f7\xe6\x04\x8br\x11ym\xb2\x0e|=|\xa9\v\x13q\x81du&\xdf´\x80?\x9b\xbeP͗\x0e\xa8\xc7\n{\x96\"\xb0\xe2D_\xa1\t\xd9~\n\xb5N1\xa2\xe3\xd1K~#\xe7\x1b\x9e+\nS%\xfdv\xfd\xe1\tex{\xb0\xcc]\xa02\xae\xa0\t\x11k2\x9d\xbc\xec\xb2&ڐk\xf6<\x18e\x9cv\x1a\xa7\x81Z\xcc(~\t&f\x05|\x02\u2efda\x110t\xe5q\x9a\xf7R\xd9!R~\xf8\xb5\x9a\xb7\x1c26\b-Zdla\xf3P\x94\xf8\x81\x18\x87s\xdc[\x1f\a\xc5k\x90G\xabf\xb3@#\xe9w\xd5\xc6\xe2\x1a8\xa6K,[\xbcx\xe8\x15-\x94\xe1ɝ?\x89\xcd\x121\xf6\xc5\xf8(3\xe0\xa2^\xd6\xf0\x11\xef\x17f?E\xaf\x91\b\xcf\xcb\xe8\xe2M\x16\x8b\xe0l\x92\xa4\xb3h\x8f\xa246\xac\xc73i\xb3\xef\x94&\xc4c)\xc1?\xffV\x87\xaaRZc`l?\xce\u007f\x14^\xbc8\xe9\xfc\xf3\xa7\xf6\xae5\xe5\x1f\a~\xff\xa3*\ac{;5\xf42\xf9_\x00\x00\x00\xff\xff\xcbT\xc3P]\r\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4Y_o\x1b\xb9\x11\u007fק\x18\xf8\x1e\xdc\x03\xbc\xd2ݵh\v\xbd]\xec^\xe1\xf6\xce1\"7/A\x1eF\xcb\xd9]\xd6\\\x92%\xb9RԢ߽\x18\x92\xab?\xab\x95d\x1bH\xba/\x89\xc9\xe1p\xfe\xcfo\xa8IQ\x14\x13\xb4\xf2#9/\x8d\x9e\x03ZI_\x02i\xfe\xcbO\x9f\xff\xec\xa7\xd2\xccV?N\x9e\xa5\x16s\xb8\xed|0\xed\a\xf2\xa6s%\xddQ%\xb5\f\xd2\xe8IK\x01\x05\x06\x9cO\x00Pk\x13\x90\x97=\xff\tP\x1a\x1d\x9cQ\x8a\\Q\x93\x9e>wKZvR\tr\x91y\u007f\xf5\xea\x87韦?L\x00JG\xf1\xf8\x93l\xc9\al\xed\x1ct\xa7\xd4\x04@cKs\xb0F\xac\x8c\xeaZZb\xf9\xdcY?]\x91\"g\xa6\xd2L\xbc\xa5\x92/\xad\x9d\xe9\xec\x1cv\x1b\xe9l\x16()\xf3h\xc4\xc7\xc8\xe6]d\x13w\x94\xf4\xe1\xefc\xbb\xbfJ\x1f\"\x85U\x9dCu,D\xdc\xf4RםBw\xb4=\x01\xf0\xa5\xb14\x87\a\x16\xc3bIb\x02\x90u\x8fb\x15Y\xbbՏ\x89U\xd9P\x8bI^\x00cI\xff\xfcx\xff\xf1\xf7\x8b\x83e\x00\xeb\x8c%\x17d\xafZ\xfa\xf6<\xba\xb7\n ȗN\xda\x10\xed}\xcd\f\x13\x15\bv%y\b\r\xf5B\x91\xc82\x80\xa9 4҃#\xebȓN\xce=`\fL\x84\x1a\xcc\xf2\x9fT\x86),\xc81\x1b\xf0\x8d\xe9\x94\xe0\bX\x91\v\xe0\xa84\xb5\x96\xff\xde\xf2\xf6\x10L\xbcTa\xa0l\xe1\xdd'u \xa7Q\xc1\nUG7\x80Z@\x8b\x1bpķ@\xa7\xf7\xf8E\x12?\x85ߌ#\x90\xba2shB\xb0~>\x9b\xd52\xf4\x91\\\x9a\xb6\xed\xb4\f\x9bY\fJ\xb9\xec\x82q~&hEj\xe6e]\xa0+\x1b\x19\xa8\f\x9d\xa3\x19ZYD\xd1u\x8c\xe6i+\xbes9\xf6\xfd\xf5\x81\xacaþ\xf5\xc1I]\xefm\xc4@;\xe3\x01\x0e5\x90\x1e0\x1fMZ\xec\f\xcdKl\x9d\x0f\u007fY[S\xe1\x87`F$[&\x17\x90\x80a@\xc0٠\x803U}T\xe2\x9f\x1f\xef\xfbJ\xde\x1b1\xcb\x1e\x8e\xef\xbd`\x1f\xfe*IJ\xbc\x9ft;!S\xe69Y\xd7\xe4\"p\x19\xfbbS\xe1R\xfd=\x18\xc7\x16\xd0f\x8fEd\xcc\xdeK\x85\x92đП~\xfa|R\xe2C{\x81Ԃ\xbe\xc0O u\xb2\x8d5\xe2\xfb)<\xc5\xe8\xd8\xe8\x80_\xf8\xa6\xb21\x9eNY\xd6h\xb5a\x9d\x1b\\\x11x\xd3\x12\xacI\xa9\"\xe1 \x01kܰ\x15z\xc7q\xbc!Xt\xe1l\xb4\xf6\xe8\xe7\xe9\xfd\xdd\xfby\x92\x8c\x03\xaa\x8e\x95\x98\xbbf%\x19\xcd0\x8cI\xbd8F\xe3Q3\xef?ߥ\xf0\t\x06\xca\x06uMI_\x82\xaa\xe3\xee8\xbd~K\x1e\x1fC\x92\xfe\x1b\x81&\xc3\xc2\xf1\u007fk\xee/T.\"\xe8\x17(\xf7\xb0\x17\xe5g\x95\xe3Y\xc5i\n\x14\xf5\x13\xa6\xf4\xacZI6\xf8\x99Y\x91[IZ\xcf\xd6\xc6=K]\x17\x1c\x9aE\x8a\x01?\x8b\xe3\xc6\xec\xbb\xf8ϛu\x89\x83\xc2K\x15\x8a\xc4\xdfB+\xbe\xc7\xcfޤT\x8fa_\xdeǮ\x17\x19Y\r\xcfrZ\xac\x1bY6\xfdp\x92k\xec\x89d\x92\x8c\x84E*ͨ7_=\x94٠\x9dc\x896E\x1e\x80\vԂ\xff\xef\xa5\x0f\xbc\xfe&\vv\xf2E\xe9\xfb\x8f\xfb\xbbo\x13\xe0\x9d|S\xae\x9e\x00\xe0)F\xac\xb9\x17l\xcaJ\x92\xbb\x00\xcc>\x1c\x10\xf7\xd0q\x04\xb1ni^\x85\f\x03\xd6#P\f\x85\x88\xcf\x1e\xa8\x1e\xcf\x02\xb6\xb3\x168P\xe3\tk\x0f\xe8\b\x10Z\xb4\xec\xb9g\xda\x14\xa9\xc5[\x94ܟ\xb9\x05g̳$@k\x95\x1cmŹ\x91g\x10\x9a\xf1>\x0f\xdaX\xfbS\xba\x8f\xfa!q\xb8`\xff4\xe0\x8cA\xf6,@\xc27[\xd8\x1e\f,\xc7R\xf4\f(>iE\x9eK\x19\xad\x1d\x8aX\x8c\x0fP\x03\x1a\x1e(\x06Kֈ\xc1\xcaa$\x0e6\x93~/\x9a*\x03\x86οb\xae\x8c\xf4\xbdMS\x15\t\x99K\x84\xd0o\x9d,K\xc3\xe8\xf4\xf0i\xed\xbc{o\x8fO\xc4G\x1c'\x92pA\xb6\x1c\xb39\xca\xd6\xe8\xfb;\xc6FC\xd8c\x97Nƺ\xcd\xdcHD\xe8\xc8ȶB\xa9H@\xff\xb67<3\xc2u\x9f˒*.r\x9dU\x06E?\x90e\xf1\xb6\xf0\x8c\xe7\xf5\xf8:r\xed\xcf\xf0\xec<\x898ɏ\x18\xe1\x18\xb2UƵ\x18\xe6 0P1\xcaTwJ\xe1R\xd1\x1c\x82뎷\xcf\x14\x8b\x96\xbc\xc7\xfaR*\xfe\x96\xa8Ҝ\x9a\x8f\x00.M\x17\xb6\x83\xeaAQ\xb8\xf69\xa6^7+\x8f\x8e\x80\x87\xe1\x8c\f\xd1}\x86\xaaJ\xc53\xfb\x85`\xf7 \x1c\xa5Z\xd2x\xab{KM\x00\xb0\r\xfaK\xa6zd\x9a\xb1\x04\xdbV\xaf\xb3\x19\xc6\x1f\xe9\xae=\xbe\xa5\x80\aZ\x8f\xac\xde\xebGgjG\xfe8p\x8a>\xbeF\xaay\x01\xbf\xc4lx\x95\xfe\xf9\xa2K&\xc8d\xd0\x18\xd5'\xb3\t\xa8@w\xed\x92\x1c\xdba\xb9\t\xe4\x0f\xcb\xf9ثD\x9cfvf\xdc;\xdf\xfb/q\xca\x03Z\x89:\xbe\x1erv\x05\x03Bz\xabp3¸W$\"\x16N..\x01\xbbx\xee\x93ڒ\x8b[\xaf}M\x892\xdd\x19}\x02_\xf7\xf9,u\xf8\xe3\x1f\xce\xe0\x1b\xa9\x03Ճ\xe6\x90\xf7ٜ\xef\xf8\x96\xafsÙ\xd6\xed5Zߘp\u007fw!\n\x16[\xc2>\x1bv@)־\xf8\xb6\x99\x89r(\x8c\xb9j[[^\x95\xaa>\xa0\v/mE\x8b\x03\xe2\v](r\x1e\xefA\v\xb2\xe88\xd3\xe3K\xf8\xed\xf0\xb7\xa6\x1b\xf02>\xef1\xdeJ\x00,\rߞ\x9b\x13\x03K\xe3h\xa4d\xc2q[9h\"\x87\xe2\u007f\xcb\xfe1\x1a'G\x8bQr\xb1\xc7;?\x11\xe7\x95\x1d\x86\xc1\x92\xa7\x03\x12\x0f\xc3\xdfӮ\xd2\xebM\xff\x03Y\xfc\xb34:Ae?\x87O\x9f'\x90\x9f\x8d?\xf6\xbf{\xf1\xe2\xff\x02\x00\x00\xff\xffTTw\xa4\x84\x1c\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4YKs\xe3\xb8\x11\xbe\xebWty\x0f\xceV\r\xa9\xddI*I\xe9\xb6kgSJv=\xae\x913\x97\xa99@DS\xec\x98\x04\x18\xa0)YI忧\x1a \xf4\xa4\x1ev\xd5Lx\xb1\x85G\xe3\xeb\xaf\x1f\xe8&GY\x96\x8dTK\x9f\xd0y\xb2f\x02\xaa%|a4\xf2\xcb\xe7\xcf\u007f\xf69\xd9\xf1\xf2\xc7\xd13\x19=\x81\xbbγm>\xa2\xb7\x9d+\xf0\x1eK2\xc4dͨAVZ\xb1\x9a\x8c\x00\x941\x96\x95\f{\xf9\tPX\xc3\xce\xd65\xbal\x81&\u007f\xee\xe68\xef\xa8\xd6\xe8\x82\xf0t\xf4\xf2\x87\xfcO\xf9\x0f#\x80\xc2a\xd8\xfeD\rzVM;\x01\xd3\xd5\xf5\b\xc0\xa8\x06'\xd0Z\xbd\xb4uנC\xcf֡ϗX\xa3\xb39ّo\xb1\x90S\x17\xcev\xed\x04\xb6\x13qs\x8f(j\xf3h\xf5\xa7 \xe7c\x94\x13\xa6j\xf2\xfc\xf7\xc1\xe9_\xc9sX\xd2֝S\xf5\x00\x8e0\xeb\xc9,\xbaZ\xb9\xe3\xf9\x11\x80/l\x8b\x13x\x10(\xad*P\x8f\x00z\x02\x02\xb4\xacWq\xf9c\x94UTب\x88\x19\xc0\xb6h~z\x9c~\xfa\xfdlo\x18\xa0u\xb6EǔԋώYwF\x014\xfa\xc2Qˁ\xf4[\x11\x18W\x81\x16{\xa2\a\xae0\x81B\xddc\x00[\x02W\xe4\xc1a\xebУ\x89\x16\xde\x13\f\xb2H\x19\xb0\xf3\u007fb\xc19\xccЉ\x18\xf0\x95\xedj-n\xb0D\xc7ర\vC\xff\xde\xc8\xf6\xc06\x1cZ+ƞ\xe3\xedC\x86\xd1\x19U\xc3R\xd5\x1d\xbe\x03e44j\r\x0e\xe5\x14\xe8̎\xbc\xb0\xc4\xe7\xf0\x9bu\bdJ;\x81\x8a\xb9\xf5\x93\xf1xA\x9cܹ\xb0M\xd3\x19\xe2\xf58x&\xcd;\xb6Ώ5.\xb1\x1e{Zd\xca\x15\x151\x16\xdc9\x1c\xab\x96\xb2\x00\xdd\x04\x97\xce\x1b\xfd\x9d\xeb\x03\xc0\xdf\xeea\xe5\xb5\xd8ֳ#\xb3ؙ\b\xcev\xc6\x02\xe2m@\x1eT\xbf5j\xb1%Z\x86\x84\x9d\x8f\u007f\x99=A::\x18\xe3\x90\xfd\xc0\xfbv\xa3ߚ@\b#S\xa2\x8bF,\x9dm\x82L4\xba\xb5d8\xfc(jBsH\xbf\xef\xe6\r\xb1\xd8\xfd_\x1dz\x16[\xe5p\x17b\x1c\xe6\b]\xab\x15\xa3\xceaj\xe0N5X\xdf)\x8f_\xdd\x00´τ\xd8\xebL\xb0\x9b\x9e\x0e\x17G\xd6v&R\n9a\xafô0k\xb1\x10\xf3\t\x83\xb2\x95J*Bl@i\x1d\xa8\xa3\xf5\xf9\x9e\xe8\xe1Еg\xae\x8a箝\xb1uj\x81\xbf\xda(\xf3p\xd1\x01\xb6\x9f\x87\xf6$p\x92Yb\x18c/\x1c|\\y$\x14\xa0N\x9bW\x15:\f{$\x8bQ!\xeee=\xb1uk\x11\x1cT\xd2\xf9\x91\x84\x13\x86\b*[}A\x8dG\xdb\a\x84\xc3\x12\x1d\x1aq\xf7\x98!Z\x1b\xf2\b+2),b\x8a\x05\xb6\x03Z\xcc#\xeaa\x88\xa7\xa9\x873\xd9s\x10\xf0O\x8fӔ1\x13\xc3=t>>\xf7\x02=\U00094135~T\\]q\xf6\xed\xb4\x8c\x87\x85\xdc\xc1\x16\x14\xb4\x84\x05\xee%c \xe3\x19\x95\x06[\x0eJ\x94[\x1b$\xc0\x1c\xf6;\xde\xc5Lѧ\xa4m\n\x17\xeaAI\x8e\"\r\u007f\x9b}x\x18\xffu\x88\xf9\x8d\x16\xa0\x8a\x02\xbd\bR\x8c\r\x1a~\a\xbe+*P^\xd4 \x87z&3y\xa3\f\x95\xe89\xef\xcf@\xe7?\xbf\xff2\xcc\x1e\xc0/\xd6\x01\xbe\xa8\xa6\xad\xf1\x1dPd|\x93\xfe\x92ϐ\x8ftl$\u008a\xb8\xa2\xc3KkÀxW\xaf\xf6*\xa8\xcb\xea\x19\xc1\xf6\xeav\b5=\xe3\x04n$\xcaw`\xfeG\x02\xeb\xbf7'\xa4\xfe.\x06Ѝ,\xba\x89\xe06\xf7\xddnDnAr\xa5\x18\xd8\xd1b\x81.\x14\bCOHޒ\x12\xbf\a\xeb\x84\x01cwD\x04\xc1b\xbd\x98\x8fP\x1f\x81\xfe\xfc\xfe\xcbI\xc4\xfb|\x01\x19\x8d/\xf0\x1e\xc8DnZ\xab\xbf\xcf\xe1)x\xc7ڰz\x91\x93\x8a\xcaz<Ŭ5\xf5Zt\xae\xd4\x12\xc1\xdb\x06a\x85u\x9d\xc5zC\xc3J\xad\x85\x85d8\xf17\x05\xadr|\xd6[S\x95\xf1\xf4\xe1\xfe\xc3$\"\x13\x87Z\x84|'\xb7SIR5H\xb9\x10\xef\xbc\xe0\x8dG\x97fz|\x17݇-\x14\x952\v\x8c\xfa\"\x94\x9d\xdcB\xf9\xed[\xe2\xf8\xf8\xeaO\xcf@\tp\x988\xfeo\x97\xe8\x95ʅJ\xf5\n\xe5\x1ev\xbc\xfc\xacr\xd2\x188\x83\x8cA?m\v/\xaa\x15ز\x1f\xdb%\xba%\xe1j\xbc\xb2\xee\x99\xcc\"\x13\xd7̢\x0f\xf8q(\xed\xc7߅?o\xd6%\x14\xe4\xd7*\x14\x16\u007f\v\xad\xe4\x1c?~\x93R\xa9V\xbc\xfe\x1e\xbb\x9d\xf5\x05\xcc\xe1^\t\x8bUEE\x95\x9a\x80>Ǟ\b&\x92\x8aS\xc7Ԭ\xcc\xfa\xab\xbb\xb2\x10\xda9A\xb4\xce\xfan3SF\xcb\xff\x9e<\xcb\xf8\x9b\x18\xec\xe8\xaa\xf0\xfd\xc7\xf4\xfe\xdb8xGo\x8a\xd5\x13\x85n\xf4\x91\xd6N\xb5PY\x12\xba\vu\xd9ǽũ\xae\x1c\xa8\v7k^U\x18z\xa3Z_Y\x9e\xde_\xc01\xdb,L\x18\xb6\x06\xe8\xcb\xc1$K\x1c\xf7l\x15x\x06O\x14u\x01K\xac\xed\x87j\xec\x1eI\xac9\u0088Ե\x01\xcfp\xb0\xbe\x16\xa1\xb4dR@\xed#̆;\x87\x835\xad\xd5\a#\xfb\x9ep0\xb95\xcd\xc1DT\U000aad8a\x15w\xfe5\x8dUؐ\x98\x8d\xf1ͽ\x98Pܾ\xb9\xb5*\xac\x14\x8e\xfb\xaf\x98\xce[\xf9\xeexGx\x8f\xe1tD\xc7\xd4`\xe8W\x02\x0eX)\x9f\x0e\x19\xb2(\xecȋ[CN\x15q\xa8CY'Ug\xa9\xa8F\r\x9b\x97\\\xf0$\x1dfh\xe8o\x87\xaa\x98$\xa8\xf3\xa8C\xef9\x00\xfax_i]\xa3x\x02\xd2\xc6g\"\xe2h\x85\xe9\xeaZ\xcdk\x9c\x00\xbb\xeex\xfaL\x005\xe8\xbdZ\\\x8a\xa0\xdf\xe2\xaa\xd8\xf1\xf5[@\xcdmǛ\x96\xaf\x0f\xa5\x9e\x8a[\xdf{\xc1\xeb\xda\xceJ\xf9KP\x1ee͐\xc7m\x82\xfa\xbc\xcbɃ\xa6k\x8e\x8f\xc9\xe0\x01W\x03\xa3S\xf3\xe8\xec¡?\xb6L\x96\f8\xd0\x04d\xf0K\xf0\x8eW\x11\xd0\x1ft\x89\x83~\x19T\xb6N\xdemY\xd5`\xbaf\x8eN\x88\x98\xaf\x19}b$\xa5\x86\xa1\x1e:\xd4\xde[&\xb7\x12R\xb6\x8b\xa2\xfan\xa2P&\xbcR\x12\xffe\v\x9a|[\xab\xf5\x80ܤI\xb8^\xc5}%\x8e\xb6\x1e\x93\xa2P\xc2?̽\xb6\xf7\x0f\xa0\xee\xad9Q\r\xa6\x90!\xc3\u007f\xfcÙۘ\f\xe3\xe2 \x95\xf6\xf3B\xe8\xcfr\xca\xd79\xe1̅\xefY9\xbe6\xed\xcd\xf6\x16_\xcaxA\xf4p\xbe\xdbM]ljj\xff\x98o\x99\xa3\x06\x89:\x1a\f\xc8\xf5\x8e\xec\xfe\xbdY?\xb2\xbd\xd9T!\xc5\x1c\xea\x87\xc3O\r77{_\x0e\xc2\xcf\xc2\x1aM\xf13\t|\xfe2\x82\xfe]ڧ\xf49@\x06\xff\x17\x00\x00\xff\xffñ\x1b\xae\xa0\x19\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4W\xc1n\xe36\x10\xbd\xfb+\x06\xdb\xc3^*y\x17=\xb4ЭM[ h\x12,\x9cE.E\x0f\x145\xb2\xa7\xa1H\x96\x1c:u\xbf\xbe\x18J\x8aeY\x897\v\xacn&g\x1e\xdf̛\x19ҫ\xa2(V\xca\xd3\x03\x86H\xceV\xa0<ῌV~\xc5\xf2\xf1\xa7X\x92[\xef?\xae\x1e\xc96\x15\\\xa5Ȯ\xdb`t)h\xfc\x15[\xb2\xc4\xe4\xec\xaaCV\x8dbU\xad\x00\x94\xb5\x8e\x95,G\xf9\t\xa0\x9d\xe5\xe0\x8c\xc1Plі\x8f\xa9\xc6:\x91i0d\xf0\xf1\xe8\xfd\x87\xf2\xc7\xf2\xc3\n@\a\xcc\ue7e9\xc3Ȫ\xf3\x15\xd8d\xcc\n\xc0\xaa\x0e+\b\x18\x99t@\xef\"\xb1\v\x84\xb1ܣ\xc1\xe0Jr\xab\xe8Q˱\xdb\xe0\x92\xaf\xe0\xb8\xd1{\x0f\x94\xfap6\x19h3\x02\x1d\xf2\x96\xa1\xc8\u007f,n\xdfP\xe4l\xe2M\n\xca,\x11\xc9ۑ\xec6\x19\x15\xce\f䀨\x9d\xc7\n\ue10bW\x1a\x9b\x15\xc0\x90\x82̭\x18\x82\xdc\u007f\xec\xb1\xf4\x0e;Փ\x06p\x1e\xedϟ\xae\x1f~\xb8?Y\x06\xf0\xc1y\fLc|\xfd7\x11v\xb2\n\xd0`ԁ<紿\x17\xc0\xde\n\x1aQ\x14#\xf0\x0eGR\xd8\f\x1c\xc0\xb5\xc0;\x8a\x10\xd0\a\x8ch{\x8dO\x80A\x8c\x94\x05W\xff\x8d\x9aK\xb8\xc7 0\x10w.\x99F\na\x8f\x81!\xa0v[K\xff=cG`\x97\x0f5\x8aqH\xf2\xf1#\xcb\x18\xac2\xb0W&\xe1\xf7\xa0l\x03\x9d:@@9\x05\x92\x9d\xe0e\x93X\u00ad\v\bd[W\xc1\x8e\xd9\xc7j\xbd\xde\x12\x8f\x05\xad]\xd7%K|X\xe7ڤ:\xb1\vq\xdd\xe0\x1e\xcd:ҶPA\xef\x88Qs\n\xb8V\x9e\x8aL\xdd\xe6\xa2.\xbb\xe6\xbb0\xb4@|\u007f\u0095\x0f\xa2m\xe4@v;\xd9\xc8\xd5\xf6\x8a\x02Rn@\x11\xd4\xe0\xdaGqL\xb4,Iv6\xbf\xdd\u007f\x86\xf1\xe8,\xc6<\xfb9\xefG\xc7x\x94@\x12F\xb6\xc5Ћ\xd8\x06\xd7eL\xb4\x8dwd9\xffІ\xd0\xce\xd3\x1fS\xdd\x11\x8b\xee\xff$\x8c,Z\x95p\x95\xbb\x1cj\x84\xe4\x1b\xc5ؔpm\xe1Juh\xaeT\xc4o.\x80d:\x16\x92\xd8/\x93`:\xa0\xe6\xc6}\xd6&\x1b\xe3\fyA\xaf\xf9\\\xb8\xf7\xa8E>ɠ\xb8RK:\xf7\x06\xb4.\x80:\xb3/O\xa0\x97[W\xbeZ\xe9\xc7\xe4\xef\xd9\x05\xb5\xc5\x1b\xd7c\u038df\xdc~Y\xf2\x19\xc9\xc9d\xe9\xdb\x18\x97\rϰ\x01x\xa7xҿ\xac\xc8>\x8f\x81\xc5x^\x11!\v\xa1\xa4\x9d\xad\xb2\x1a\u007f\xcf\x15e\xf5\xe1BL\xb7\v.\x12\xd2\xce=\x81k\x19\xed\x14t\xe0\xba\x10I\x8d\x10\x92}\x13\xd9~~_7Rx-a\xb8@t33\x1f\xf3\xde&c\x06\xacB\xbb\xce+\xa6\xda\xe0\xf2\x91\xf2I\xd9P\x8fr\xe8{\xff\xeb\xf3\xbdw&u\xf8|\xdd\\\x88\xe0\xe1\xd4zZ8\xfd\xc2@EB\x81pzq\x9e~C\xadD\xf0\xae\x19H\f\x05\x1d%\xbe7\xc4 \x92S\xc0\xd9\x04-\x96\xdbcf\xb3Tm3\x93\xb9Ƴ\xedY\xfe\xbeh|\xb0\xe2\x14\xdf2@\xb2Øl\x9dB@\xcb\x03L\xbeQ\xbfz\x84\x18\x15y\xd2>\xf2\xa2\xbaP\x017\xe7\x1e#1\x01\x03\x96\x85i\xbf=\xa9\xf9-\x94E[\xea\xb4օNq\x05ra\x14\x02tf!\xef-\xacnP5\xe7}\\\xc0\x9d\xe3\xe5\xad\x17#\\슳\xc5(\xef\x92f\xa2s\xec\x1byX9\xf6\x90\xd2\x1a=cs7\u007f\xbd\xbf{w\xf2\x18\xcf?\xb5\xb3\r\xf5\u007f=\xe0ϿV=*6\x0f\xe3\x03[\x16\xff\x0f\x00\x00\xff\xff\x83\xf9\xd9\xe0\xf4\f\x00\x00"), diff --git a/pkg/apis/velero/v1/download_request_types.go b/pkg/apis/velero/v1/download_request_types.go index 945cd8257..e773f64df 100644 --- a/pkg/apis/velero/v1/download_request_types.go +++ b/pkg/apis/velero/v1/download_request_types.go @@ -25,13 +25,14 @@ type DownloadRequestSpec struct { } // DownloadTargetKind represents what type of file to download. -// +kubebuilder:validation:Enum=BackupLog;BackupContents;BackupVolumeSnapshots;BackupResourceList;RestoreLog;RestoreResults +// +kubebuilder:validation:Enum=BackupLog;BackupContents;BackupVolumeSnapshots;BackupItemSnapshots;BackupResourceList;RestoreLog;RestoreResults type DownloadTargetKind string const ( DownloadTargetKindBackupLog DownloadTargetKind = "BackupLog" DownloadTargetKindBackupContents DownloadTargetKind = "BackupContents" DownloadTargetKindBackupVolumeSnapshots DownloadTargetKind = "BackupVolumeSnapshots" + DownloadTargetKindBackupItemSnapshots DownloadTargetKind = "BackupItemSnapshots" DownloadTargetKindBackupResourceList DownloadTargetKind = "BackupResourceList" DownloadTargetKindRestoreLog DownloadTargetKind = "RestoreLog" DownloadTargetKindRestoreResults DownloadTargetKind = "RestoreResults" diff --git a/pkg/persistence/mocks/backup_store.go b/pkg/persistence/mocks/backup_store.go index d3a7d7c5a..b41125e56 100644 --- a/pkg/persistence/mocks/backup_store.go +++ b/pkg/persistence/mocks/backup_store.go @@ -283,3 +283,7 @@ func (_m *BackupStore) GetCSIVolumeSnapshotContents(backup string) ([]*snapshotv panic("Not implemented") return nil, nil } + +func (_m *BackupStore) GetItemSnapshots(name string) ([]*volume.ItemSnapshot, error) { + panic("implement me") +} diff --git a/pkg/persistence/object_store.go b/pkg/persistence/object_store.go index d9f2d8a39..744f2baaa 100644 --- a/pkg/persistence/object_store.go +++ b/pkg/persistence/object_store.go @@ -44,6 +44,7 @@ type BackupInfo struct { Log, PodVolumeBackups, VolumeSnapshots, + ItemSnapshots, BackupResourceList, CSIVolumeSnapshots, CSIVolumeSnapshotContents io.Reader @@ -58,6 +59,7 @@ type BackupStore interface { PutBackup(info BackupInfo) error GetBackupMetadata(name string) (*velerov1api.Backup, error) + GetItemSnapshots(name string) ([]*volume.ItemSnapshot, error) GetBackupVolumeSnapshots(name string) ([]*volume.Snapshot, error) GetPodVolumeBackups(name string) ([]*velerov1api.PodVolumeBackup, error) GetBackupContents(name string) (io.ReadCloser, error) @@ -231,13 +233,6 @@ func (s *objectBackupStore) PutBackup(info BackupInfo) error { s.logger.WithError(err).WithField("backup", info.Name).Error("Error uploading log file") } - if info.Metadata == nil { - // If we don't have metadata, something failed, and there's no point in continuing. An object - // storage bucket that is missing the metadata file can't be restored, nor can its logs be - // viewed. - return nil - } - if err := seekAndPutObject(s.objectStore, s.bucket, s.layout.getBackupMetadataKey(info.Name), info.Metadata); err != nil { // failure to upload metadata file is a hard-stop return err @@ -253,6 +248,7 @@ func (s *objectBackupStore) PutBackup(info BackupInfo) error { var backupObjs = map[string]io.Reader{ s.layout.getPodVolumeBackupsKey(info.Name): info.PodVolumeBackups, s.layout.getBackupVolumeSnapshotsKey(info.Name): info.VolumeSnapshots, + s.layout.getItemSnapshotsKey(info.Name): info.ItemSnapshots, s.layout.getBackupResourceListKey(info.Name): info.BackupResourceList, s.layout.getCSIVolumeSnapshotKey(info.Name): info.CSIVolumeSnapshots, s.layout.getCSIVolumeSnapshotContentsKey(info.Name): info.CSIVolumeSnapshotContents, @@ -324,6 +320,27 @@ func (s *objectBackupStore) GetBackupVolumeSnapshots(name string) ([]*volume.Sna return volumeSnapshots, nil } +func (s *objectBackupStore) GetItemSnapshots(name string) ([]*volume.ItemSnapshot, error) { + // if the itemsnapshots file doesn't exist, we don't want to return an error, since + // a legacy backup or a backup with no snapshots would not have this file, so check for + // its existence before attempting to get its contents. + res, err := tryGet(s.objectStore, s.bucket, s.layout.getItemSnapshotsKey(name)) + if err != nil { + return nil, err + } + if res == nil { + return nil, nil + } + defer res.Close() + + var itemSnapshots []*volume.ItemSnapshot + if err := decode(res, &itemSnapshots); err != nil { + return nil, err + } + + return itemSnapshots, nil +} + // tryGet returns the object with the given key if it exists, nil if it does not exist, // or an error if it was unable to check existence or get the object. func tryGet(objectStore velero.ObjectStore, bucket, key string) (io.ReadCloser, error) { @@ -473,6 +490,8 @@ func (s *objectBackupStore) GetDownloadURL(target velerov1api.DownloadTarget) (s return s.objectStore.CreateSignedURL(s.bucket, s.layout.getBackupLogKey(target.Name), DownloadURLTTL) case velerov1api.DownloadTargetKindBackupVolumeSnapshots: return s.objectStore.CreateSignedURL(s.bucket, s.layout.getBackupVolumeSnapshotsKey(target.Name), DownloadURLTTL) + case velerov1api.DownloadTargetKindBackupItemSnapshots: + return s.objectStore.CreateSignedURL(s.bucket, s.layout.getItemSnapshotsKey(target.Name), DownloadURLTTL) case velerov1api.DownloadTargetKindBackupResourceList: return s.objectStore.CreateSignedURL(s.bucket, s.layout.getBackupResourceListKey(target.Name), DownloadURLTTL) case velerov1api.DownloadTargetKindRestoreLog: diff --git a/pkg/persistence/object_store_layout.go b/pkg/persistence/object_store_layout.go index 025da966b..046b99a68 100644 --- a/pkg/persistence/object_store_layout.go +++ b/pkg/persistence/object_store_layout.go @@ -88,6 +88,10 @@ func (l *ObjectStoreLayout) getBackupVolumeSnapshotsKey(backup string) string { return path.Join(l.subdirs["backups"], backup, fmt.Sprintf("%s-volumesnapshots.json.gz", backup)) } +func (l *ObjectStoreLayout) getItemSnapshotsKey(backup string) string { + return path.Join(l.subdirs["backups"], backup, fmt.Sprintf("%s-itemsnapshots.json.gz", backup)) +} + func (l *ObjectStoreLayout) getBackupResourceListKey(backup string) string { return path.Join(l.subdirs["backups"], backup, fmt.Sprintf("%s-resource-list.json.gz", backup)) } diff --git a/pkg/persistence/object_store_test.go b/pkg/persistence/object_store_test.go index 76d37bd40..f3cb55486 100644 --- a/pkg/persistence/object_store_test.go +++ b/pkg/persistence/object_store_test.go @@ -223,6 +223,7 @@ func TestPutBackup(t *testing.T) { log io.Reader podVolumeBackup io.Reader snapshots io.Reader + itemSnapshots io.Reader resourceList io.Reader expectedErr string expectedKeys []string @@ -234,6 +235,7 @@ func TestPutBackup(t *testing.T) { log: newStringReadSeeker("log"), podVolumeBackup: newStringReadSeeker("podVolumeBackup"), snapshots: newStringReadSeeker("snapshots"), + itemSnapshots: newStringReadSeeker("itemSnapshots"), resourceList: newStringReadSeeker("resourceList"), expectedErr: "", expectedKeys: []string{ @@ -242,6 +244,7 @@ func TestPutBackup(t *testing.T) { "backups/backup-1/backup-1-logs.gz", "backups/backup-1/backup-1-podvolumebackups.json.gz", "backups/backup-1/backup-1-volumesnapshots.json.gz", + "backups/backup-1/backup-1-itemsnapshots.json.gz", "backups/backup-1/backup-1-resource-list.json.gz", }, }, @@ -253,6 +256,7 @@ func TestPutBackup(t *testing.T) { log: newStringReadSeeker("log"), podVolumeBackup: newStringReadSeeker("podVolumeBackup"), snapshots: newStringReadSeeker("snapshots"), + itemSnapshots: newStringReadSeeker("itemSnapshots"), resourceList: newStringReadSeeker("resourceList"), expectedErr: "", expectedKeys: []string{ @@ -261,6 +265,7 @@ func TestPutBackup(t *testing.T) { "prefix-1/backups/backup-1/backup-1-logs.gz", "prefix-1/backups/backup-1/backup-1-podvolumebackups.json.gz", "prefix-1/backups/backup-1/backup-1-volumesnapshots.json.gz", + "prefix-1/backups/backup-1/backup-1-itemsnapshots.json.gz", "prefix-1/backups/backup-1/backup-1-resource-list.json.gz", }, }, @@ -271,19 +276,21 @@ func TestPutBackup(t *testing.T) { log: newStringReadSeeker("log"), podVolumeBackup: newStringReadSeeker("podVolumeBackup"), snapshots: newStringReadSeeker("snapshots"), + itemSnapshots: newStringReadSeeker("itemSnapshots"), resourceList: newStringReadSeeker("resourceList"), expectedErr: "error readers return errors", expectedKeys: []string{"backups/backup-1/backup-1-logs.gz"}, }, { - name: "error on data upload deletes metadata", - metadata: newStringReadSeeker("metadata"), - contents: new(errorReader), - log: newStringReadSeeker("log"), - snapshots: newStringReadSeeker("snapshots"), - resourceList: newStringReadSeeker("resourceList"), - expectedErr: "error readers return errors", - expectedKeys: []string{"backups/backup-1/backup-1-logs.gz"}, + name: "error on data upload deletes metadata", + metadata: newStringReadSeeker("metadata"), + contents: new(errorReader), + log: newStringReadSeeker("log"), + snapshots: newStringReadSeeker("snapshots"), + itemSnapshots: newStringReadSeeker("itemSnapshots"), + resourceList: newStringReadSeeker("resourceList"), + expectedErr: "error readers return errors", + expectedKeys: []string{"backups/backup-1/backup-1-logs.gz"}, }, { name: "error on log upload is ok", @@ -292,6 +299,7 @@ func TestPutBackup(t *testing.T) { log: new(errorReader), podVolumeBackup: newStringReadSeeker("podVolumeBackup"), snapshots: newStringReadSeeker("snapshots"), + itemSnapshots: newStringReadSeeker("itemSnapshots"), resourceList: newStringReadSeeker("resourceList"), expectedErr: "", expectedKeys: []string{ @@ -299,11 +307,12 @@ func TestPutBackup(t *testing.T) { "backups/backup-1/backup-1.tar.gz", "backups/backup-1/backup-1-podvolumebackups.json.gz", "backups/backup-1/backup-1-volumesnapshots.json.gz", + "backups/backup-1/backup-1-itemsnapshots.json.gz", "backups/backup-1/backup-1-resource-list.json.gz", }, }, { - name: "don't upload data when metadata is nil", + name: "data should be uploaded even when metadata is nil", metadata: nil, contents: newStringReadSeeker("contents"), log: newStringReadSeeker("log"), @@ -311,7 +320,13 @@ func TestPutBackup(t *testing.T) { snapshots: newStringReadSeeker("snapshots"), resourceList: newStringReadSeeker("resourceList"), expectedErr: "", - expectedKeys: []string{"backups/backup-1/backup-1-logs.gz"}, + expectedKeys: []string{ + "backups/backup-1/backup-1.tar.gz", + "backups/backup-1/backup-1-logs.gz", + "backups/backup-1/backup-1-podvolumebackups.json.gz", + "backups/backup-1/backup-1-volumesnapshots.json.gz", + "backups/backup-1/backup-1-resource-list.json.gz", + }, }, } @@ -326,6 +341,7 @@ func TestPutBackup(t *testing.T) { Log: tc.log, PodVolumeBackups: tc.podVolumeBackup, VolumeSnapshots: tc.snapshots, + ItemSnapshots: tc.itemSnapshots, BackupResourceList: tc.resourceList, } err := harness.PutBackup(backupInfo) @@ -426,6 +442,48 @@ func TestGetBackupVolumeSnapshots(t *testing.T) { assert.EqualValues(t, snapshots, res) } +func TestGetItemSnapshots(t *testing.T) { + harness := newObjectBackupStoreTestHarness("test-bucket", "") + + // volumesnapshots file not found should not error + harness.objectStore.PutObject(harness.bucket, "backups/test-backup/velero-backup.json", newStringReadSeeker("foo")) + res, err := harness.GetItemSnapshots("test-backup") + assert.NoError(t, err) + assert.Nil(t, res) + + // volumesnapshots file containing invalid data should error + harness.objectStore.PutObject(harness.bucket, "backups/test-backup/test-backup-itemsnapshots.json.gz", newStringReadSeeker("foo")) + res, err = harness.GetItemSnapshots("test-backup") + assert.NotNil(t, err) + + // volumesnapshots file containing gzipped json data should return correctly + snapshots := []*volume.ItemSnapshot{ + { + Spec: volume.ItemSnapshotSpec{ + BackupName: "test-backup", + ResourceIdentifier: "item-1", + }, + }, + { + Spec: volume.ItemSnapshotSpec{ + BackupName: "test-backup", + ResourceIdentifier: "item-2", + }, + }, + } + + obj := new(bytes.Buffer) + gzw := gzip.NewWriter(obj) + + require.NoError(t, json.NewEncoder(gzw).Encode(snapshots)) + require.NoError(t, gzw.Close()) + require.NoError(t, harness.objectStore.PutObject(harness.bucket, "backups/test-backup/test-backup-itemsnapshots.json.gz", obj)) + + res, err = harness.GetItemSnapshots("test-backup") + assert.NoError(t, err) + assert.EqualValues(t, snapshots, res) +} + func TestGetBackupContents(t *testing.T) { harness := newObjectBackupStoreTestHarness("test-bucket", "") @@ -506,6 +564,7 @@ func TestGetDownloadURL(t *testing.T) { velerov1api.DownloadTargetKindBackupContents: "backups/my-backup/my-backup.tar.gz", velerov1api.DownloadTargetKindBackupLog: "backups/my-backup/my-backup-logs.gz", velerov1api.DownloadTargetKindBackupVolumeSnapshots: "backups/my-backup/my-backup-volumesnapshots.json.gz", + velerov1api.DownloadTargetKindBackupItemSnapshots: "backups/my-backup/my-backup-itemsnapshots.json.gz", velerov1api.DownloadTargetKindBackupResourceList: "backups/my-backup/my-backup-resource-list.json.gz", }, }, @@ -517,6 +576,7 @@ func TestGetDownloadURL(t *testing.T) { velerov1api.DownloadTargetKindBackupContents: "velero-backups/backups/my-backup/my-backup.tar.gz", velerov1api.DownloadTargetKindBackupLog: "velero-backups/backups/my-backup/my-backup-logs.gz", velerov1api.DownloadTargetKindBackupVolumeSnapshots: "velero-backups/backups/my-backup/my-backup-volumesnapshots.json.gz", + velerov1api.DownloadTargetKindBackupItemSnapshots: "velero-backups/backups/my-backup/my-backup-itemsnapshots.json.gz", velerov1api.DownloadTargetKindBackupResourceList: "velero-backups/backups/my-backup/my-backup-resource-list.json.gz", }, }, @@ -527,6 +587,7 @@ func TestGetDownloadURL(t *testing.T) { velerov1api.DownloadTargetKindBackupContents: "backups/b-cool-20170913154901-20170913154902/b-cool-20170913154901-20170913154902.tar.gz", velerov1api.DownloadTargetKindBackupLog: "backups/b-cool-20170913154901-20170913154902/b-cool-20170913154901-20170913154902-logs.gz", velerov1api.DownloadTargetKindBackupVolumeSnapshots: "backups/b-cool-20170913154901-20170913154902/b-cool-20170913154901-20170913154902-volumesnapshots.json.gz", + velerov1api.DownloadTargetKindBackupItemSnapshots: "backups/b-cool-20170913154901-20170913154902/b-cool-20170913154901-20170913154902-itemsnapshots.json.gz", velerov1api.DownloadTargetKindBackupResourceList: "backups/b-cool-20170913154901-20170913154902/b-cool-20170913154901-20170913154902-resource-list.json.gz", }, }, @@ -537,6 +598,7 @@ func TestGetDownloadURL(t *testing.T) { velerov1api.DownloadTargetKindBackupContents: "backups/my-backup-20170913154901/my-backup-20170913154901.tar.gz", velerov1api.DownloadTargetKindBackupLog: "backups/my-backup-20170913154901/my-backup-20170913154901-logs.gz", velerov1api.DownloadTargetKindBackupVolumeSnapshots: "backups/my-backup-20170913154901/my-backup-20170913154901-volumesnapshots.json.gz", + velerov1api.DownloadTargetKindBackupItemSnapshots: "backups/my-backup-20170913154901/my-backup-20170913154901-itemsnapshots.json.gz", velerov1api.DownloadTargetKindBackupResourceList: "backups/my-backup-20170913154901/my-backup-20170913154901-resource-list.json.gz", }, }, @@ -548,6 +610,7 @@ func TestGetDownloadURL(t *testing.T) { velerov1api.DownloadTargetKindBackupContents: "velero-backups/backups/my-backup-20170913154901/my-backup-20170913154901.tar.gz", velerov1api.DownloadTargetKindBackupLog: "velero-backups/backups/my-backup-20170913154901/my-backup-20170913154901-logs.gz", velerov1api.DownloadTargetKindBackupVolumeSnapshots: "velero-backups/backups/my-backup-20170913154901/my-backup-20170913154901-volumesnapshots.json.gz", + velerov1api.DownloadTargetKindBackupItemSnapshots: "velero-backups/backups/my-backup-20170913154901/my-backup-20170913154901-itemsnapshots.json.gz", velerov1api.DownloadTargetKindBackupResourceList: "velero-backups/backups/my-backup-20170913154901/my-backup-20170913154901-resource-list.json.gz", }, }, diff --git a/pkg/volume/item_snapshot.go b/pkg/volume/item_snapshot.go new file mode 100644 index 000000000..909c21994 --- /dev/null +++ b/pkg/volume/item_snapshot.go @@ -0,0 +1,57 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package volume + +import isv1 "github.com/vmware-tanzu/velero/pkg/plugin/velero/item_snapshotter/v1" + +// ItemSnapshot stores information about an item snapshot (includes volumes and other Astrolabe objects) taken as +// part of a Velero backup. +type ItemSnapshot struct { + Spec ItemSnapshotSpec `json:"spec"` + + Status ItemSnapshotStatus `json:"status"` +} + +type ItemSnapshotSpec struct { + // ItemSnapshotter is the name of the ItemSnapshotter plugin that took the snapshot + ItemSnapshotter string `json:"itemSnapshotter"` + + // BackupName is the name of the Velero backup this snapshot + // is associated with. + BackupName string `json:"backupName"` + + // BackupUID is the UID of the Velero backup this snapshot + // is associated with. + BackupUID string `json:"backupUID"` + + // Location is the name of the location where this snapshot is stored. + Location string `json:"location"` + + // Kubernetes resource identifier for the item + ResourceIdentifier string "json:resourceIdentifier" +} + +type ItemSnapshotStatus struct { + // ProviderSnapshotID is the ID of the snapshot taken by the ItemSnapshotter + ProviderSnapshotID string `json:"providerSnapshotID,omitempty"` + + // Metadata is the metadata returned with the snapshot to be returned to the ItemSnapshotter at restore time + Metadata map[string]string `json:"metadata,omitempty"` + + // Phase is the current state of the ItemSnapshot. + Phase isv1.SnapshotPhase `json:"phase,omitempty"` +} From d3c7ef09cbb7ca90ec184823b055a131ac84429b Mon Sep 17 00:00:00 2001 From: Frangipani Gold <17328443+codegold79@users.noreply.github.com> Date: Mon, 13 Dec 2021 16:09:24 -0800 Subject: [PATCH 073/136] Remove backups and restic repos associated with deleted BSL(s) (#4377) * Remove backups and restic repos associated with deleted BSL(s) Signed-off-by: F. Gold * add changelog Signed-off-by: F. Gold * Add PR number to changelog Signed-off-by: F. Gold * Fix typo Signed-off-by: F. Gold * Only delete backups and restic repos and report success when without errors Signed-off-by: F. Gold --- changelogs/unreleased/4377-codegold79 | 1 + pkg/cmd/cli/backuplocation/delete.go | 63 ++++++++++++++++++++++++++- 2 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 changelogs/unreleased/4377-codegold79 diff --git a/changelogs/unreleased/4377-codegold79 b/changelogs/unreleased/4377-codegold79 new file mode 100644 index 000000000..27bc88d2f --- /dev/null +++ b/changelogs/unreleased/4377-codegold79 @@ -0,0 +1 @@ +Delete backups and Restic repos associated with deleted BSL(s) \ No newline at end of file diff --git a/pkg/cmd/cli/backuplocation/delete.go b/pkg/cmd/cli/backuplocation/delete.go index eecd08f47..daedf77cd 100644 --- a/pkg/cmd/cli/backuplocation/delete.go +++ b/pkg/cmd/cli/backuplocation/delete.go @@ -1,5 +1,5 @@ /* -Copyright 2020 the Velero contributors. +Copyright The Velero Contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ import ( "github.com/pkg/errors" "github.com/spf13/cobra" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" kubeerrs "k8s.io/apimachinery/pkg/util/errors" @@ -34,6 +33,8 @@ import ( "github.com/vmware-tanzu/velero/pkg/cmd/cli" ) +const bslLabelKey = "velero.io/storage-location" + // NewDeleteCommand creates and returns a new cobra command for deleting backup-locations. func NewDeleteCommand(f client.Factory, use string) *cobra.Command { o := cli.NewDeleteOptions("backup-location") @@ -120,7 +121,65 @@ func Run(f client.Factory, o *cli.DeleteOptions) error { continue } fmt.Printf("Backup storage location %q deleted successfully.\n", location.Name) + + // Delete backups associated with the deleted BSL. + backupList, err := findAssociatedBackups(kbClient, location.Name, f.Namespace()) + if err != nil { + errs = append(errs, fmt.Errorf("find backups associated with BSL %q: %w", location.Name, err)) + } else if deleteErrs := deleteBackups(kbClient, backupList); deleteErrs != nil { + errs = append(errs, deleteErrs...) + } + + // Delete Restic repositories associated with the deleted BSL. + resticRepoList, err := findAssociatedResticRepos(kbClient, location.Name, f.Namespace()) + if err != nil { + errs = append(errs, fmt.Errorf("find Restic repositories associated with BSL %q: %w", location.Name, err)) + } else if deleteErrs := deleteResticRepos(kbClient, resticRepoList); deleteErrs != nil { + errs = append(errs, deleteErrs...) + } } return kubeerrs.NewAggregate(errs) } + +func findAssociatedBackups(client kbclient.Client, bslName, ns string) (velerov1api.BackupList, error) { + var backups velerov1api.BackupList + err := client.List(context.Background(), &backups, &kbclient.ListOptions{ + Namespace: ns, + Raw: &metav1.ListOptions{LabelSelector: bslLabelKey + "=" + bslName}, + }) + return backups, err +} + +func findAssociatedResticRepos(client kbclient.Client, bslName, ns string) (velerov1api.ResticRepositoryList, error) { + var repos velerov1api.ResticRepositoryList + err := client.List(context.Background(), &repos, &kbclient.ListOptions{ + Namespace: ns, + Raw: &metav1.ListOptions{LabelSelector: bslLabelKey + "=" + bslName}, + }) + return repos, err +} + +func deleteBackups(client kbclient.Client, backups velerov1api.BackupList) []error { + var errs []error + for _, backup := range backups.Items { + if err := client.Delete(context.Background(), &backup, &kbclient.DeleteOptions{}); err != nil { + errs = append(errs, errors.WithStack(fmt.Errorf("delete backup %q associated with deleted BSL: %w", backup.Name, err))) + continue + } + fmt.Printf("Backup associated with deleted BSL(s) %q deleted successfully.\n", backup.Name) + } + return errs +} + +func deleteResticRepos(client kbclient.Client, repos velerov1api.ResticRepositoryList) []error { + var errs []error + for _, repo := range repos.Items { + if err := client.Delete(context.Background(), &repo, &kbclient.DeleteOptions{}); err != nil { + errs = append(errs, errors.WithStack(fmt.Errorf("delete Restic repository %q associated with deleted BSL: %w", repo.Name, err))) + continue + } + fmt.Printf("Restic repository associated with deleted BSL(s) %q deleted successfully.\n", repo.Name) + } + return errs +} From 5aaeb3ebbee05d461957dcb80c3c4d146aa82f92 Mon Sep 17 00:00:00 2001 From: Xun Jiang/Bruce Jiang <59276555+blackpiglet@users.noreply.github.com> Date: Wed, 15 Dec 2021 09:07:20 +0800 Subject: [PATCH 074/136] Migrate backup sync controller from code-generator to kubebuilder (#4423) * Migrate backup sync controller from code-generator to kubebuilder 1. use kubebuilder's reconcile logic to replace controller's old logic. 2. use ginkgo and gomega to replace testing. Signed-off-by: Xun Jiang * Fix: modify code according to comments 1. Remove DefaultBackupLocation 2. Remove unneccessary comment line 3. Add syncPeriod default value setting logic 4. Modify ListBackupStorageLocations function's context parameter 5. Add RequeueAfter parameter in Reconcile function return value Signed-off-by: Xun Jiang * Reconcile function use context passed from parameter 1. Use context passed from parameter, instead of using Reconciler struct's context. 2. Delete Reconciler struct's context member. 3. Modify test case accordingly. Signed-off-by: Xun Jiang --- changelogs/unreleased/4423-jxun | 1 + pkg/cmd/server/server.go | 46 +- pkg/controller/backup_sync_controller.go | 171 ++-- pkg/controller/backup_sync_controller_test.go | 933 +++++++++--------- 4 files changed, 539 insertions(+), 612 deletions(-) create mode 100644 changelogs/unreleased/4423-jxun diff --git a/changelogs/unreleased/4423-jxun b/changelogs/unreleased/4423-jxun new file mode 100644 index 000000000..d2274476e --- /dev/null +++ b/changelogs/unreleased/4423-jxun @@ -0,0 +1 @@ +Migrate backup sync controller from code-generator to kubebuilder. \ No newline at end of file diff --git a/pkg/cmd/server/server.go b/pkg/cmd/server/server.go index 5a00648c4..cd5617e7a 100644 --- a/pkg/cmd/server/server.go +++ b/pkg/cmd/server/server.go @@ -589,28 +589,6 @@ func (s *server) runControllers(defaultVolumeSnapshotLocations map[string]string csiVSLister, csiVSCLister := s.getCSISnapshotListers() - backupSyncControllerRunInfo := func() controllerRunInfo { - backupSyncContoller := controller.NewBackupSyncController( - s.veleroClient.VeleroV1(), - s.mgr.GetClient(), - s.veleroClient.VeleroV1(), - s.sharedInformerFactory.Velero().V1().Backups().Lister(), - s.config.backupSyncPeriod, - s.namespace, - s.csiSnapshotClient, - s.kubeClient, - s.config.defaultBackupLocation, - newPluginManager, - backupStoreGetter, - s.logger, - ) - - return controllerRunInfo{ - controller: backupSyncContoller, - numWorkers: defaultControllerWorkers, - } - } - backupTracker := controller.NewBackupTracker() backupControllerRunInfo := func() controllerRunInfo { @@ -769,7 +747,6 @@ func (s *server) runControllers(defaultVolumeSnapshotLocations map[string]string } enabledControllers := map[string]func() controllerRunInfo{ - controller.BackupSync: backupSyncControllerRunInfo, controller.Backup: backupControllerRunInfo, controller.Schedule: scheduleControllerRunInfo, controller.GarbageCollection: gcControllerRunInfo, @@ -781,6 +758,7 @@ func (s *server) runControllers(defaultVolumeSnapshotLocations map[string]string enabledRuntimeControllers := make(map[string]struct{}) enabledRuntimeControllers[controller.ServerStatusRequest] = struct{}{} enabledRuntimeControllers[controller.DownloadRequest] = struct{}{} + enabledRuntimeControllers[controller.BackupSync] = struct{}{} if s.config.restoreOnly { s.logger.Info("Restore only mode - not starting the backup, schedule, delete-backup, or GC controllers") @@ -871,6 +849,28 @@ func (s *server) runControllers(defaultVolumeSnapshotLocations map[string]string } } + if _, ok := enabledRuntimeControllers[controller.BackupSync]; ok { + syncPeriod := s.config.backupSyncPeriod + if syncPeriod <= 0 { + syncPeriod = time.Minute + } + + r := controller.BackupSyncReconciler{ + Client: s.mgr.GetClient(), + PodVolumeBackupClient: s.veleroClient.VeleroV1(), + BackupLister: s.sharedInformerFactory.Velero().V1().Backups().Lister(), + BackupClient: s.veleroClient.VeleroV1(), + Namespace: s.namespace, + DefaultBackupSyncPeriod: syncPeriod, + NewPluginManager: newPluginManager, + BackupStoreGetter: backupStoreGetter, + Logger: s.logger, + } + if err := r.SetupWithManager(s.mgr); err != nil { + s.logger.Fatal(err, " unable to create controller ", "controller ", controller.BackupSync) + } + } + // TODO(2.0): presuming all controllers and resources are converted to runtime-controller // by v2.0, the block from this line and including the `s.mgr.Start() will be // deprecated, since the manager auto-starts all the caches. Until then, we need to start the diff --git a/pkg/controller/backup_sync_controller.go b/pkg/controller/backup_sync_controller.go index aeb848ac0..ea2378dd7 100644 --- a/pkg/controller/backup_sync_controller.go +++ b/pkg/controller/backup_sync_controller.go @@ -1,5 +1,5 @@ /* -Copyright 2020 the Velero contributors. +Copyright The Velero Contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -20,14 +20,12 @@ import ( "context" "time" - snapshotterClientSet "github.com/kubernetes-csi/external-snapshotter/client/v4/clientset/versioned" "github.com/pkg/errors" "github.com/sirupsen/logrus" kuberrs "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/client-go/kubernetes" "github.com/vmware-tanzu/velero/internal/storage" velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" @@ -38,114 +36,49 @@ import ( "github.com/vmware-tanzu/velero/pkg/persistence" "github.com/vmware-tanzu/velero/pkg/plugin/clientmgmt" + ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" ) -type backupSyncController struct { - *genericController - - backupClient velerov1client.BackupsGetter - kbClient client.Client - podVolumeBackupClient velerov1client.PodVolumeBackupsGetter - backupLister velerov1listers.BackupLister - csiSnapshotClient *snapshotterClientSet.Clientset - kubeClient kubernetes.Interface - namespace string - defaultBackupLocation string - defaultBackupSyncPeriod time.Duration - newPluginManager func(logrus.FieldLogger) clientmgmt.Manager - backupStoreGetter persistence.ObjectBackupStoreGetter +type BackupSyncReconciler struct { + Client client.Client + PodVolumeBackupClient velerov1client.PodVolumeBackupsGetter + BackupLister velerov1listers.BackupLister + BackupClient velerov1client.BackupsGetter + Namespace string + DefaultBackupSyncPeriod time.Duration + NewPluginManager func(logrus.FieldLogger) clientmgmt.Manager + BackupStoreGetter persistence.ObjectBackupStoreGetter + Logger logrus.FieldLogger } -func NewBackupSyncController( - backupClient velerov1client.BackupsGetter, - kbClient client.Client, - podVolumeBackupClient velerov1client.PodVolumeBackupsGetter, - backupLister velerov1listers.BackupLister, - syncPeriod time.Duration, - namespace string, - csiSnapshotClient *snapshotterClientSet.Clientset, - kubeClient kubernetes.Interface, - defaultBackupLocation string, - newPluginManager func(logrus.FieldLogger) clientmgmt.Manager, - backupStoreGetter persistence.ObjectBackupStoreGetter, - logger logrus.FieldLogger, -) Interface { - if syncPeriod <= 0 { - syncPeriod = time.Minute - } - logger.Infof("Backup sync period is %v", syncPeriod) +func (b *BackupSyncReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { + log := b.Logger.WithField("controller", BackupSync) + log.Debug("Checking for existing backup storage locations to sync into cluster.") - c := &backupSyncController{ - genericController: newGenericController(BackupSync, logger), - backupClient: backupClient, - kbClient: kbClient, - podVolumeBackupClient: podVolumeBackupClient, - namespace: namespace, - defaultBackupLocation: defaultBackupLocation, - defaultBackupSyncPeriod: syncPeriod, - backupLister: backupLister, - csiSnapshotClient: csiSnapshotClient, - kubeClient: kubeClient, - - // use variables to refer to these functions so they can be - // replaced with fakes for testing. - newPluginManager: newPluginManager, - backupStoreGetter: backupStoreGetter, - } - - c.resyncFunc = c.run - c.resyncPeriod = 30 * time.Second - - return c -} - -// orderedBackupLocations returns a new slice with the default backup location first (if it exists), -// followed by the rest of the locations in no particular order. -func orderedBackupLocations(locationList *velerov1api.BackupStorageLocationList, defaultLocationName string) []velerov1api.BackupStorageLocation { - var result []velerov1api.BackupStorageLocation - - for i := range locationList.Items { - if locationList.Items[i].Name == defaultLocationName { - // put the default location first - result = append(result, locationList.Items[i]) - // append everything before the default - result = append(result, locationList.Items[:i]...) - // append everything after the default - result = append(result, locationList.Items[i+1:]...) - - return result - } - } - - return locationList.Items -} - -func (c *backupSyncController) run() { - c.logger.Debug("Checking for existing backup storage locations to sync into cluster") - - locationList, err := storage.ListBackupStorageLocations(context.Background(), c.kbClient, c.namespace) + locationList, err := storage.ListBackupStorageLocations(ctx, b.Client, b.Namespace) if err != nil { - c.logger.WithError(err).Error("No backup storage locations found, at least one is required") - return + log.WithError(err).Error("No backup storage locations found, at least one is required") + return ctrl.Result{}, err } // sync the default backup storage location first, if it exists + defaultBackupLocationName := "" for _, location := range locationList.Items { if location.Spec.Default { - c.defaultBackupLocation = location.Name + defaultBackupLocationName = location.Name break } } - locations := orderedBackupLocations(&locationList, c.defaultBackupLocation) + locations := orderedBackupLocations(&locationList, defaultBackupLocationName) - pluginManager := c.newPluginManager(c.logger) + pluginManager := b.NewPluginManager(log) defer pluginManager.CleanupClients() for _, location := range locations { - log := c.logger.WithField("backupLocation", location.Name) + log := log.WithField("backupLocation", location.Name) - syncPeriod := c.defaultBackupSyncPeriod + syncPeriod := b.DefaultBackupSyncPeriod if location.Spec.BackupSyncPeriod != nil { syncPeriod = location.Spec.BackupSyncPeriod.Duration if syncPeriod == 0 { @@ -155,7 +88,7 @@ func (c *backupSyncController) run() { if syncPeriod < 0 { log.Debug("Backup sync period must be non-negative") - syncPeriod = c.defaultBackupSyncPeriod + syncPeriod = b.DefaultBackupSyncPeriod } } @@ -170,7 +103,7 @@ func (c *backupSyncController) run() { log.Debug("Checking backup location for backups to sync into cluster") - backupStore, err := c.backupStoreGetter.Get(&location, pluginManager, log) + backupStore, err := b.BackupStoreGetter.Get(&location, pluginManager, log) if err != nil { log.WithError(err).Error("Error getting backup store for this location") continue @@ -186,7 +119,7 @@ func (c *backupSyncController) run() { log.WithField("backupCount", len(backupStoreBackups)).Debug("Got backups from backup store") // get a list of all the backups that exist as custom resources in the cluster - clusterBackups, err := c.backupLister.Backups(c.namespace).List(labels.Everything()) + clusterBackups, err := b.BackupLister.Backups(b.Namespace).List(labels.Everything()) if err != nil { log.WithError(errors.WithStack(err)).Error("Error getting backups from cluster, proceeding with sync into cluster") } else { @@ -217,7 +150,7 @@ func (c *backupSyncController) run() { continue } - backup.Namespace = c.namespace + backup.Namespace = b.Namespace backup.ResourceVersion = "" // update the StorageLocation field and label since the name of the location @@ -230,7 +163,7 @@ func (c *backupSyncController) run() { backup.Labels[velerov1api.StorageLocationLabel] = label.GetValidName(backup.Spec.StorageLocation) // attempt to create backup custom resource via API - backup, err = c.backupClient.Backups(backup.Namespace).Create(context.TODO(), backup, metav1.CreateOptions{}) + backup, err = b.BackupClient.Backups(backup.Namespace).Create(ctx, backup, metav1.CreateOptions{}) switch { case err != nil && kuberrs.IsAlreadyExists(err): log.Debug("Backup already exists in cluster") @@ -267,7 +200,7 @@ func (c *backupSyncController) run() { podVolumeBackup.Namespace = backup.Namespace podVolumeBackup.ResourceVersion = "" - _, err = c.podVolumeBackupClient.PodVolumeBackups(backup.Namespace).Create(context.TODO(), podVolumeBackup, metav1.CreateOptions{}) + _, err = b.PodVolumeBackupClient.PodVolumeBackups(backup.Namespace).Create(ctx, podVolumeBackup, metav1.CreateOptions{}) switch { case err != nil && kuberrs.IsAlreadyExists(err): log.Debug("Pod volume backup already exists in cluster") @@ -294,7 +227,7 @@ func (c *backupSyncController) run() { for _, snapCont := range snapConts { // TODO: Reset ResourceVersion prior to persisting VolumeSnapshotContents snapCont.ResourceVersion = "" - created, err := c.csiSnapshotClient.SnapshotV1beta1().VolumeSnapshotContents().Create(context.TODO(), snapCont, metav1.CreateOptions{}) + err := b.Client.Create(ctx, snapCont, &client.CreateOptions{}) switch { case err != nil && kuberrs.IsAlreadyExists(err): log.Debugf("volumesnapshotcontent %s already exists in cluster", snapCont.Name) @@ -303,36 +236,45 @@ func (c *backupSyncController) run() { log.WithError(errors.WithStack(err)).Errorf("Error syncing volumesnapshotcontent %s into cluster", snapCont.Name) continue default: - log.Infof("Created CSI volumesnapshotcontent %s", created.Name) + log.Infof("Created CSI volumesnapshotcontent %s", snapCont.Name) } } } } - c.deleteOrphanedBackups(location.Name, backupStoreBackups, log) + b.deleteOrphanedBackups(ctx, location.Name, backupStoreBackups, log) // update the location's last-synced time field statusPatch := client.MergeFrom(location.DeepCopy()) location.Status.LastSyncedTime = &metav1.Time{Time: time.Now().UTC()} - if err := c.kbClient.Status().Patch(context.Background(), &location, statusPatch); err != nil { + if err := b.Client.Status().Patch(ctx, &location, statusPatch); err != nil { log.WithError(errors.WithStack(err)).Error("Error patching backup location's last-synced time") continue } } + + return ctrl.Result{Requeue: true, RequeueAfter: time.Second * 30}, nil +} + +func (b *BackupSyncReconciler) SetupWithManager(mgr ctrl.Manager) error { + return ctrl.NewControllerManagedBy(mgr). + For(&velerov1api.Backup{}). + Complete(b) } // deleteOrphanedBackups deletes backup objects (CRDs) from Kubernetes that have the specified location // and a phase of Completed, but no corresponding backup in object storage. -func (c *backupSyncController) deleteOrphanedBackups(locationName string, backupStoreBackups sets.String, log logrus.FieldLogger) { +func (b *BackupSyncReconciler) deleteOrphanedBackups(ctx context.Context, locationName string, backupStoreBackups sets.String, log logrus.FieldLogger) { locationSelector := labels.Set(map[string]string{ velerov1api.StorageLocationLabel: label.GetValidName(locationName), }).AsSelector() - backups, err := c.backupLister.Backups(c.namespace).List(locationSelector) + backups, err := b.BackupLister.Backups(b.Namespace).List(locationSelector) if err != nil { log.WithError(errors.WithStack(err)).Error("Error listing backups from cluster") return } + if len(backups) == 0 { return } @@ -343,10 +285,31 @@ func (c *backupSyncController) deleteOrphanedBackups(locationName string, backup continue } - if err := c.backupClient.Backups(backup.Namespace).Delete(context.TODO(), backup.Name, metav1.DeleteOptions{}); err != nil { + if err := b.BackupClient.Backups(backup.Namespace).Delete(ctx, backup.Name, metav1.DeleteOptions{}); err != nil { log.WithError(errors.WithStack(err)).Error("Error deleting orphaned backup from cluster") } else { log.Debug("Deleted orphaned backup from cluster") } } } + +// orderedBackupLocations returns a new slice with the default backup location first (if it exists), +// followed by the rest of the locations in no particular order. +func orderedBackupLocations(locationList *velerov1api.BackupStorageLocationList, defaultLocationName string) []velerov1api.BackupStorageLocation { + var result []velerov1api.BackupStorageLocation + + for i := range locationList.Items { + if locationList.Items[i].Name == defaultLocationName { + // put the default location first + result = append(result, locationList.Items[i]) + // append everything before the default + result = append(result, locationList.Items[:i]...) + // append everything after the default + result = append(result, locationList.Items[i+1:]...) + + return result + } + } + + return locationList.Items +} diff --git a/pkg/controller/backup_sync_controller_test.go b/pkg/controller/backup_sync_controller_test.go index 0b615bdb5..43274f70e 100644 --- a/pkg/controller/backup_sync_controller_test.go +++ b/pkg/controller/backup_sync_controller_test.go @@ -18,17 +18,23 @@ package controller import ( "context" - "testing" + "fmt" + "reflect" "time" + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "github.com/sirupsen/logrus" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation" core "k8s.io/client-go/testing" + ctrl "sigs.k8s.io/controller-runtime" + ctrlfake "sigs.k8s.io/controller-runtime/pkg/client/fake" + velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" "github.com/vmware-tanzu/velero/pkg/builder" "github.com/vmware-tanzu/velero/pkg/generated/clientset/versioned/fake" @@ -107,263 +113,279 @@ func defaultLocationsListWithLongerLocationName(namespace string) []*velerov1api } } -func TestBackupSyncControllerRun(t *testing.T) { - type cloudBackupData struct { - backup *velerov1api.Backup - podVolumeBackups []*velerov1api.PodVolumeBackup +func getDeleteActions(actions []core.Action) []core.Action { + var deleteActions []core.Action + for _, action := range actions { + if action.GetVerb() == "delete" { + deleteActions = append(deleteActions, action) + } + } + return deleteActions +} + +func numBackups(c *fake.Clientset, ns string) (int, error) { + existingK8SBackups, err := c.VeleroV1().Backups(ns).List(context.TODO(), metav1.ListOptions{}) + if err != nil { + return 0, err } - tests := []struct { - name string - namespace string - locations []*velerov1api.BackupStorageLocation - cloudBuckets map[string][]*cloudBackupData - existingBackups []*velerov1api.Backup - existingPodVolumeBackups []*velerov1api.PodVolumeBackup - longLocationNameEnabled bool - }{ - { - name: "no cloud backups", - }, - { - name: "normal case", - namespace: "ns-1", - locations: defaultLocationsList("ns-1"), - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-2").Result(), - }, - }, - "bucket-2": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-3").Result(), - }, - }, - }, - }, - { - name: "all synced backups get created in Velero server's namespace", - namespace: "velero", - locations: defaultLocationsList("velero"), - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-2").Result(), - }, - }, - "bucket-2": { - &cloudBackupData{ - backup: builder.ForBackup("ns-2", "backup-3").Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("velero", "backup-4").Result(), - }, - }, - }, - }, - { - name: "new backups get synced when some cloud backups already exist in the cluster", - namespace: "ns-1", - locations: defaultLocationsList("ns-1"), - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-2").Result(), - }, - }, - "bucket-2": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-3").Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-4").Result(), - }, - }, - }, - existingBackups: []*velerov1api.Backup{ - // add a label to each existing backup so we can differentiate it from the cloud - // backup during verification - builder.ForBackup("ns-1", "backup-1").StorageLocation("location-1").ObjectMeta(builder.WithLabels("i-exist", "true")).Result(), - builder.ForBackup("ns-1", "backup-3").StorageLocation("location-2").ObjectMeta(builder.WithLabels("i-exist", "true")).Result(), - }, - }, - { - name: "existing backups without a StorageLocation get it filled in", - namespace: "ns-1", - locations: defaultLocationsList("ns-1"), - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").Result(), - }, - }, - }, - existingBackups: []*velerov1api.Backup{ - // add a label to each existing backup so we can differentiate it from the cloud - // backup during verification - builder.ForBackup("ns-1", "backup-1").ObjectMeta(builder.WithLabels("i-exist", "true")).StorageLocation("location-1").Result(), - }, - }, - { - name: "backup storage location names and labels get updated", - namespace: "ns-1", - locations: defaultLocationsList("ns-1"), - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").StorageLocation("foo").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "foo")).Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-2").Result(), - }, - }, - "bucket-2": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-3").StorageLocation("bar").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "bar")).Result(), - }, - }, - }, - }, - { - name: "backup storage location names and labels get updated with location name greater than 63 chars", - namespace: "ns-1", - locations: defaultLocationsListWithLongerLocationName("ns-1"), - longLocationNameEnabled: true, - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").StorageLocation("foo").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "foo")).Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-2").Result(), - }, - }, - "bucket-2": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-3").StorageLocation("bar").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "bar")).Result(), - }, - }, - }, - }, - { - name: "all synced backups and pod volume backups get created in Velero server's namespace", - namespace: "ns-1", - locations: defaultLocationsList("ns-1"), - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").Result(), - podVolumeBackups: []*velerov1api.PodVolumeBackup{ - builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), - }, - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-2").Result(), - podVolumeBackups: []*velerov1api.PodVolumeBackup{ - builder.ForPodVolumeBackup("ns-1", "pvb-2").Result(), - }, - }, - }, - "bucket-2": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-3").Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-4").Result(), - podVolumeBackups: []*velerov1api.PodVolumeBackup{ - builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), - builder.ForPodVolumeBackup("ns-1", "pvb-2").Result(), - builder.ForPodVolumeBackup("ns-1", "pvb-3").Result(), - }, - }, - }, - }, - }, - { - name: "new pod volume backups get synched when some pod volume backups already exist in the cluster", - namespace: "ns-1", - locations: defaultLocationsList("ns-1"), - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").Result(), - podVolumeBackups: []*velerov1api.PodVolumeBackup{ - builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), - }, - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-2").Result(), - podVolumeBackups: []*velerov1api.PodVolumeBackup{ - builder.ForPodVolumeBackup("ns-1", "pvb-3").Result(), - }, - }, - }, - "bucket-2": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-3").Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-4").Result(), - podVolumeBackups: []*velerov1api.PodVolumeBackup{ - builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), - builder.ForPodVolumeBackup("ns-1", "pvb-5").Result(), - builder.ForPodVolumeBackup("ns-1", "pvb-6").Result(), - }, - }, - }, - }, - existingPodVolumeBackups: []*velerov1api.PodVolumeBackup{ - builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), - builder.ForPodVolumeBackup("ns-1", "pvb-2").Result(), - }, - }, - } + return len(existingK8SBackups.Items), nil +} - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { +var _ = Describe("Backup Sync Reconciler", func() { + It("Test Backup Sync Reconciler basic function", func() { + type cloudBackupData struct { + backup *velerov1api.Backup + podVolumeBackups []*velerov1api.PodVolumeBackup + } + + tests := []struct { + name string + namespace string + locations []*velerov1api.BackupStorageLocation + cloudBuckets map[string][]*cloudBackupData + existingBackups []*velerov1api.Backup + existingPodVolumeBackups []*velerov1api.PodVolumeBackup + longLocationNameEnabled bool + }{ + { + name: "no cloud backups", + namespace: "ns-1", + locations: defaultLocationsList("ns-1"), + }, + { + name: "normal case", + namespace: "ns-1", + locations: defaultLocationsList("ns-1"), + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-2").Result(), + }, + }, + "bucket-2": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-3").Result(), + }, + }, + }, + }, + { + name: "all synced backups get created in Velero server's namespace", + namespace: "velero", + locations: defaultLocationsList("velero"), + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-2").Result(), + }, + }, + "bucket-2": { + &cloudBackupData{ + backup: builder.ForBackup("ns-2", "backup-3").Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("velero", "backup-4").Result(), + }, + }, + }, + }, + { + name: "new backups get synced when some cloud backups already exist in the cluster", + namespace: "ns-1", + locations: defaultLocationsList("ns-1"), + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-2").Result(), + }, + }, + "bucket-2": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-3").Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-4").Result(), + }, + }, + }, + existingBackups: []*velerov1api.Backup{ + // add a label to each existing backup so we can differentiate it from the cloud + // backup during verification + builder.ForBackup("ns-1", "backup-1").StorageLocation("location-1").ObjectMeta(builder.WithLabels("i-exist", "true")).Result(), + builder.ForBackup("ns-1", "backup-3").StorageLocation("location-2").ObjectMeta(builder.WithLabels("i-exist", "true")).Result(), + }, + }, + { + name: "existing backups without a StorageLocation get it filled in", + namespace: "ns-1", + locations: defaultLocationsList("ns-1"), + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").Result(), + }, + }, + }, + existingBackups: []*velerov1api.Backup{ + // add a label to each existing backup so we can differentiate it from the cloud + // backup during verification + builder.ForBackup("ns-1", "backup-1").ObjectMeta(builder.WithLabels("i-exist", "true")).StorageLocation("location-1").Result(), + }, + }, + { + name: "backup storage location names and labels get updated", + namespace: "ns-1", + locations: defaultLocationsList("ns-1"), + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").StorageLocation("foo").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "foo")).Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-2").Result(), + }, + }, + "bucket-2": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-3").StorageLocation("bar").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "bar")).Result(), + }, + }, + }, + }, + { + name: "backup storage location names and labels get updated with location name greater than 63 chars", + namespace: "ns-1", + locations: defaultLocationsListWithLongerLocationName("ns-1"), + longLocationNameEnabled: true, + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").StorageLocation("foo").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "foo")).Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-2").Result(), + }, + }, + "bucket-2": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-3").StorageLocation("bar").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "bar")).Result(), + }, + }, + }, + }, + { + name: "all synced backups and pod volume backups get created in Velero server's namespace", + namespace: "ns-1", + locations: defaultLocationsList("ns-1"), + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").Result(), + podVolumeBackups: []*velerov1api.PodVolumeBackup{ + builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), + }, + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-2").Result(), + podVolumeBackups: []*velerov1api.PodVolumeBackup{ + builder.ForPodVolumeBackup("ns-1", "pvb-2").Result(), + }, + }, + }, + "bucket-2": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-3").Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-4").Result(), + podVolumeBackups: []*velerov1api.PodVolumeBackup{ + builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), + builder.ForPodVolumeBackup("ns-1", "pvb-2").Result(), + builder.ForPodVolumeBackup("ns-1", "pvb-3").Result(), + }, + }, + }, + }, + }, + { + name: "new pod volume backups get synched when some pod volume backups already exist in the cluster", + namespace: "ns-1", + locations: defaultLocationsList("ns-1"), + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").Result(), + podVolumeBackups: []*velerov1api.PodVolumeBackup{ + builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), + }, + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-2").Result(), + podVolumeBackups: []*velerov1api.PodVolumeBackup{ + builder.ForPodVolumeBackup("ns-1", "pvb-3").Result(), + }, + }, + }, + "bucket-2": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-3").Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-4").Result(), + podVolumeBackups: []*velerov1api.PodVolumeBackup{ + builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), + builder.ForPodVolumeBackup("ns-1", "pvb-5").Result(), + builder.ForPodVolumeBackup("ns-1", "pvb-6").Result(), + }, + }, + }, + }, + existingPodVolumeBackups: []*velerov1api.PodVolumeBackup{ + builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), + builder.ForPodVolumeBackup("ns-1", "pvb-2").Result(), + }, + }, + } + + for _, test := range tests { var ( client = fake.NewSimpleClientset() - fakeClient = velerotest.NewFakeControllerRuntimeClient(t) sharedInformers = informers.NewSharedInformerFactory(client, 0) pluginManager = &pluginmocks.Manager{} backupStores = make(map[string]*persistencemocks.BackupStore) ) - c := NewBackupSyncController( - client.VeleroV1(), - fakeClient, - client.VeleroV1(), - sharedInformers.Velero().V1().Backups().Lister(), - time.Duration(0), - test.namespace, - nil, // csiSnapshotClient - nil, // kubeClient - "", - func(logrus.FieldLogger) clientmgmt.Manager { return pluginManager }, - NewFakeObjectBackupStoreGetter(backupStores), - velerotest.NewLogger(), - ).(*backupSyncController) - pluginManager.On("CleanupClients").Return(nil) + r := BackupSyncReconciler{ + Client: ctrlfake.NewClientBuilder().Build(), + BackupClient: client.VeleroV1(), + PodVolumeBackupClient: client.VeleroV1(), + BackupLister: sharedInformers.Velero().V1().Backups().Lister(), + Namespace: test.namespace, + DefaultBackupSyncPeriod: time.Second * 10, + NewPluginManager: func(logrus.FieldLogger) clientmgmt.Manager { return pluginManager }, + BackupStoreGetter: NewFakeObjectBackupStoreGetter(backupStores), + Logger: velerotest.NewLogger(), + } for _, location := range test.locations { - require.NoError(t, fakeClient.Create(context.Background(), location)) + Expect(r.Client.Create(ctx, location)).ShouldNot(HaveOccurred()) backupStores[location.Name] = &persistencemocks.BackupStore{} } for _, location := range test.locations { backupStore, ok := backupStores[location.Name] - require.True(t, ok, "no mock backup store for location %s", location.Name) + Expect(ok).To(BeTrue(), "no mock backup store for location %s", location.Name) var backupNames []string for _, bucket := range test.cloudBuckets[location.Spec.ObjectStorage.Bucket] { @@ -375,21 +397,26 @@ func TestBackupSyncControllerRun(t *testing.T) { } for _, existingBackup := range test.existingBackups { - require.NoError(t, sharedInformers.Velero().V1().Backups().Informer().GetStore().Add(existingBackup)) + Expect(sharedInformers.Velero().V1().Backups().Informer().GetStore().Add(existingBackup)).ShouldNot(HaveOccurred()) _, err := client.VeleroV1().Backups(test.namespace).Create(context.TODO(), existingBackup, metav1.CreateOptions{}) - require.NoError(t, err) + Expect(err).ShouldNot(HaveOccurred()) } for _, existingPodVolumeBackup := range test.existingPodVolumeBackups { - require.NoError(t, sharedInformers.Velero().V1().PodVolumeBackups().Informer().GetStore().Add(existingPodVolumeBackup)) + Expect(sharedInformers.Velero().V1().PodVolumeBackups().Informer().GetStore().Add(existingPodVolumeBackup)).ShouldNot(HaveOccurred()) _, err := client.VeleroV1().PodVolumeBackups(test.namespace).Create(context.TODO(), existingPodVolumeBackup, metav1.CreateOptions{}) - require.NoError(t, err) + Expect(err).ShouldNot(HaveOccurred()) } client.ClearActions() - c.run() + actualResult, err := r.Reconcile(ctx, ctrl.Request{ + NamespacedName: types.NamespacedName{Namespace: "ns-1"}, + }) + + Expect(actualResult).To(BeEquivalentTo(ctrl.Result{Requeue: true, RequeueAfter: 30 * time.Second})) + Expect(err).To(BeNil()) for bucket, backupDataSet := range test.cloudBuckets { // figure out which location this bucket is for; we need this for verification @@ -401,12 +428,12 @@ func TestBackupSyncControllerRun(t *testing.T) { break } } - require.NotNil(t, location) + Expect(location).NotTo(BeNil()) // process the cloud backups for _, cloudBackupData := range backupDataSet { obj, err := client.VeleroV1().Backups(test.namespace).Get(context.TODO(), cloudBackupData.backup.Name, metav1.GetOptions{}) - require.NoError(t, err) + Expect(err).To(BeNil()) // did this cloud backup already exist in the cluster? var existing *velerov1api.Backup @@ -425,23 +452,23 @@ func TestBackupSyncControllerRun(t *testing.T) { expected := existing.DeepCopy() expected.Spec.StorageLocation = location.Name - assert.Equal(t, expected, obj) + Expect(expected).To(BeEquivalentTo(obj)) } else { // verify that the storage location field and label are set properly - assert.Equal(t, location.Name, obj.Spec.StorageLocation) + Expect(location.Name).To(BeEquivalentTo(obj.Spec.StorageLocation)) locationName := location.Name if test.longLocationNameEnabled { locationName = label.GetValidName(locationName) } - assert.Equal(t, locationName, obj.Labels[velerov1api.StorageLocationLabel]) - assert.Equal(t, true, len(obj.Labels[velerov1api.StorageLocationLabel]) <= validation.DNS1035LabelMaxLength) + Expect(locationName).To(BeEquivalentTo(obj.Labels[velerov1api.StorageLocationLabel])) + Expect(len(obj.Labels[velerov1api.StorageLocationLabel]) <= validation.DNS1035LabelMaxLength).To(BeTrue()) } // process the cloud pod volume backups for this backup, if any for _, podVolumeBackup := range cloudBackupData.podVolumeBackups { objPodVolumeBackup, err := client.VeleroV1().PodVolumeBackups(test.namespace).Get(context.TODO(), podVolumeBackup.Name, metav1.GetOptions{}) - require.NoError(t, err) + Expect(err).ShouldNot(HaveOccurred()) // did this cloud pod volume backup already exist in the cluster? var existingPodVolumeBackup *velerov1api.PodVolumeBackup @@ -456,134 +483,160 @@ func TestBackupSyncControllerRun(t *testing.T) { // if this cloud pod volume backup already exists in the cluster, make sure that what we get from the // client is the existing backup, not the cloud one. expected := existingPodVolumeBackup.DeepCopy() - assert.Equal(t, expected, objPodVolumeBackup) + Expect(expected).To(BeEquivalentTo(objPodVolumeBackup)) } } } } - }) - } -} + } + }) -func TestDeleteOrphanedBackups(t *testing.T) { - baseBuilder := func(name string) *builder.BackupBuilder { - return builder.ForBackup("ns-1", name).ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "default")) - } + It("Test deleting orphaned backups.", func() { + longLabelName := "the-really-long-location-name-that-is-much-more-than-63-characters" - tests := []struct { - name string - cloudBackups sets.String - k8sBackups []*velerov1api.Backup - namespace string - expectedDeletes sets.String - }{ - { - name: "no overlapping backups", - namespace: "ns-1", - cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), - k8sBackups: []*velerov1api.Backup{ - baseBuilder("backupA").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backupB").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backupC").Phase(velerov1api.BackupPhaseCompleted).Result(), - }, - expectedDeletes: sets.NewString("backupA", "backupB", "backupC"), - }, - { - name: "some overlapping backups", - namespace: "ns-1", - cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), - k8sBackups: []*velerov1api.Backup{ - baseBuilder("backup-1").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-2").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-C").Phase(velerov1api.BackupPhaseCompleted).Result(), - }, - expectedDeletes: sets.NewString("backup-C"), - }, - { - name: "all overlapping backups", - namespace: "ns-1", - cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), - k8sBackups: []*velerov1api.Backup{ - baseBuilder("backup-1").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-2").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-3").Phase(velerov1api.BackupPhaseCompleted).Result(), - }, - expectedDeletes: sets.NewString(), - }, - { - name: "no overlapping backups but including backups that are not complete", - namespace: "ns-1", - cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), - k8sBackups: []*velerov1api.Backup{ - baseBuilder("backupA").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("Deleting").Phase(velerov1api.BackupPhaseDeleting).Result(), - baseBuilder("Failed").Phase(velerov1api.BackupPhaseFailed).Result(), - baseBuilder("FailedValidation").Phase(velerov1api.BackupPhaseFailedValidation).Result(), - baseBuilder("InProgress").Phase(velerov1api.BackupPhaseInProgress).Result(), - baseBuilder("New").Phase(velerov1api.BackupPhaseNew).Result(), - }, - expectedDeletes: sets.NewString("backupA"), - }, - { - name: "all overlapping backups and all backups that are not complete", - namespace: "ns-1", - cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), - k8sBackups: []*velerov1api.Backup{ - baseBuilder("backup-1").Phase(velerov1api.BackupPhaseFailed).Result(), - baseBuilder("backup-2").Phase(velerov1api.BackupPhaseFailedValidation).Result(), - baseBuilder("backup-3").Phase(velerov1api.BackupPhaseInProgress).Result(), - }, - expectedDeletes: sets.NewString(), - }, - { - name: "no completed backups in other locations are deleted", - namespace: "ns-1", - cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), - k8sBackups: []*velerov1api.Backup{ - baseBuilder("backup-1").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-2").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-C").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder := func(name string) *builder.BackupBuilder { + return builder.ForBackup("ns-1", name).ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "default")) + } - baseBuilder("backup-4").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "alternate")).Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-5").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "alternate")).Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-6").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "alternate")).Phase(velerov1api.BackupPhaseCompleted).Result(), + tests := []struct { + name string + cloudBackups sets.String + k8sBackups []*velerov1api.Backup + namespace string + expectedDeletes sets.String + useLongBSLName bool + }{ + { + name: "no overlapping backups", + namespace: "ns-1", + cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), + k8sBackups: []*velerov1api.Backup{ + baseBuilder("backupA").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backupB").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backupC").Phase(velerov1api.BackupPhaseCompleted).Result(), + }, + expectedDeletes: sets.NewString("backupA", "backupB", "backupC"), }, - expectedDeletes: sets.NewString("backup-C"), - }, - } + { + name: "some overlapping backups", + namespace: "ns-1", + cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), + k8sBackups: []*velerov1api.Backup{ + baseBuilder("backup-1").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-2").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-C").Phase(velerov1api.BackupPhaseCompleted).Result(), + }, + expectedDeletes: sets.NewString("backup-C"), + }, + { + name: "all overlapping backups", + namespace: "ns-1", + cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), + k8sBackups: []*velerov1api.Backup{ + baseBuilder("backup-1").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-2").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-3").Phase(velerov1api.BackupPhaseCompleted).Result(), + }, + expectedDeletes: sets.NewString(), + }, + { + name: "no overlapping backups but including backups that are not complete", + namespace: "ns-1", + cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), + k8sBackups: []*velerov1api.Backup{ + baseBuilder("backupA").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("Deleting").Phase(velerov1api.BackupPhaseDeleting).Result(), + baseBuilder("Failed").Phase(velerov1api.BackupPhaseFailed).Result(), + baseBuilder("FailedValidation").Phase(velerov1api.BackupPhaseFailedValidation).Result(), + baseBuilder("InProgress").Phase(velerov1api.BackupPhaseInProgress).Result(), + baseBuilder("New").Phase(velerov1api.BackupPhaseNew).Result(), + }, + expectedDeletes: sets.NewString("backupA"), + }, + { + name: "all overlapping backups and all backups that are not complete", + namespace: "ns-1", + cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), + k8sBackups: []*velerov1api.Backup{ + baseBuilder("backup-1").Phase(velerov1api.BackupPhaseFailed).Result(), + baseBuilder("backup-2").Phase(velerov1api.BackupPhaseFailedValidation).Result(), + baseBuilder("backup-3").Phase(velerov1api.BackupPhaseInProgress).Result(), + }, + expectedDeletes: sets.NewString(), + }, + { + name: "no completed backups in other locations are deleted", + namespace: "ns-1", + cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), + k8sBackups: []*velerov1api.Backup{ + baseBuilder("backup-1").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-2").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-C").Phase(velerov1api.BackupPhaseCompleted).Result(), - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { + baseBuilder("backup-4").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "alternate")).Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-5").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "alternate")).Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-6").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "alternate")).Phase(velerov1api.BackupPhaseCompleted).Result(), + }, + expectedDeletes: sets.NewString("backup-C"), + }, + { + name: "some overlapping backups", + namespace: "ns-1", + cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), + k8sBackups: []*velerov1api.Backup{ + builder.ForBackup("ns-1", "backup-1"). + ObjectMeta( + builder.WithLabels(velerov1api.StorageLocationLabel, "the-really-long-location-name-that-is-much-more-than-63-c69e779"), + ). + Phase(velerov1api.BackupPhaseCompleted). + Result(), + builder.ForBackup("ns-1", "backup-2"). + ObjectMeta( + builder.WithLabels(velerov1api.StorageLocationLabel, "the-really-long-location-name-that-is-much-more-than-63-c69e779"), + ). + Phase(velerov1api.BackupPhaseCompleted). + Result(), + builder.ForBackup("ns-1", "backup-C"). + ObjectMeta( + builder.WithLabels(velerov1api.StorageLocationLabel, "the-really-long-location-name-that-is-much-more-than-63-c69e779"), + ). + Phase(velerov1api.BackupPhaseCompleted). + Result(), + }, + expectedDeletes: sets.NewString("backup-C"), + useLongBSLName: true, + }, + } + + for _, test := range tests { var ( client = fake.NewSimpleClientset() - fakeClient = velerotest.NewFakeControllerRuntimeClient(t) sharedInformers = informers.NewSharedInformerFactory(client, 0) + pluginManager = &pluginmocks.Manager{} + backupStores = make(map[string]*persistencemocks.BackupStore) ) - c := NewBackupSyncController( - client.VeleroV1(), - fakeClient, - client.VeleroV1(), - sharedInformers.Velero().V1().Backups().Lister(), - time.Duration(0), - test.namespace, - nil, // csiSnapshotClient - nil, // kubeClient - "", - nil, // new plugin manager func - nil, // backupStoreGetter - velerotest.NewLogger(), - ).(*backupSyncController) + r := BackupSyncReconciler{ + Client: ctrlfake.NewClientBuilder().Build(), + BackupClient: client.VeleroV1(), + PodVolumeBackupClient: client.VeleroV1(), + BackupLister: sharedInformers.Velero().V1().Backups().Lister(), + Namespace: test.namespace, + DefaultBackupSyncPeriod: time.Second * 10, + NewPluginManager: func(logrus.FieldLogger) clientmgmt.Manager { return pluginManager }, + BackupStoreGetter: NewFakeObjectBackupStoreGetter(backupStores), + Logger: velerotest.NewLogger(), + } expectedDeleteActions := make([]core.Action, 0) for _, backup := range test.k8sBackups { // add test backup to informer - require.NoError(t, sharedInformers.Velero().V1().Backups().Informer().GetStore().Add(backup), "Error adding backup to informer") + Expect(sharedInformers.Velero().V1().Backups().Informer().GetStore().Add(backup)).ShouldNot(HaveOccurred()) // add test backup to client _, err := client.VeleroV1().Backups(test.namespace).Create(context.TODO(), backup, metav1.CreateOptions{}) - require.NoError(t, err, "Error adding backup to clientset") + Expect(err).ShouldNot(HaveOccurred()) // if we expect this backup to be deleted, set up the expected DeleteAction if test.expectedDeletes.Has(backup.Name) { @@ -596,139 +649,49 @@ func TestDeleteOrphanedBackups(t *testing.T) { } } - c.deleteOrphanedBackups("default", test.cloudBackups, velerotest.NewLogger()) - - numBackups, err := numBackups(t, client, c.namespace) - assert.NoError(t, err) - - expected := len(test.k8sBackups) - len(test.expectedDeletes) - assert.Equal(t, expected, numBackups) - - velerotest.CompareActions(t, expectedDeleteActions, getDeleteActions(client.Actions())) - }) - } -} - -func TestStorageLabelsInDeleteOrphanedBackups(t *testing.T) { - longLabelName := "the-really-long-location-name-that-is-much-more-than-63-characters" - tests := []struct { - name string - cloudBackups sets.String - k8sBackups []*velerov1api.Backup - namespace string - expectedDeletes sets.String - }{ - { - name: "some overlapping backups", - namespace: "ns-1", - cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), - k8sBackups: []*velerov1api.Backup{ - builder.ForBackup("ns-1", "backup-1"). - ObjectMeta( - builder.WithLabels(velerov1api.StorageLocationLabel, "the-really-long-location-name-that-is-much-more-than-63-c69e779"), - ). - Phase(velerov1api.BackupPhaseCompleted). - Result(), - builder.ForBackup("ns-1", "backup-2"). - ObjectMeta( - builder.WithLabels(velerov1api.StorageLocationLabel, "the-really-long-location-name-that-is-much-more-than-63-c69e779"), - ). - Phase(velerov1api.BackupPhaseCompleted). - Result(), - builder.ForBackup("ns-1", "backup-C"). - ObjectMeta( - builder.WithLabels(velerov1api.StorageLocationLabel, "the-really-long-location-name-that-is-much-more-than-63-c69e779"), - ). - Phase(velerov1api.BackupPhaseCompleted). - Result(), - }, - expectedDeletes: sets.NewString("backup-C"), - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - var ( - client = fake.NewSimpleClientset() - fakeClient = velerotest.NewFakeControllerRuntimeClient(t) - sharedInformers = informers.NewSharedInformerFactory(client, 0) - ) - - c := NewBackupSyncController( - client.VeleroV1(), - fakeClient, - client.VeleroV1(), - sharedInformers.Velero().V1().Backups().Lister(), - time.Duration(0), - test.namespace, - nil, // csiSnapshotClient - nil, // kubeClient - "", - nil, // new plugin manager func - nil, // backupStoreGetter - velerotest.NewLogger(), - ).(*backupSyncController) - - expectedDeleteActions := make([]core.Action, 0) - - for _, backup := range test.k8sBackups { - // add test backup to informer - require.NoError(t, sharedInformers.Velero().V1().Backups().Informer().GetStore().Add(backup), "Error adding backup to informer") - - // add test backup to client - _, err := client.VeleroV1().Backups(test.namespace).Create(context.TODO(), backup, metav1.CreateOptions{}) - require.NoError(t, err, "Error adding backup to clientset") - - // if we expect this backup to be deleted, set up the expected DeleteAction - if test.expectedDeletes.Has(backup.Name) { - actionDelete := core.NewDeleteAction( - velerov1api.SchemeGroupVersion.WithResource("backups"), - test.namespace, - backup.Name, - ) - expectedDeleteActions = append(expectedDeleteActions, actionDelete) - } + bslName := "default" + if test.useLongBSLName { + bslName = longLabelName } + r.deleteOrphanedBackups(ctx, bslName, test.cloudBackups, velerotest.NewLogger()) - c.deleteOrphanedBackups(longLabelName, test.cloudBackups, velerotest.NewLogger()) - - numBackups, err := numBackups(t, client, c.namespace) - assert.NoError(t, err) + numBackups, err := numBackups(client, r.Namespace) + Expect(err).ShouldNot(HaveOccurred()) expected := len(test.k8sBackups) - len(test.expectedDeletes) - assert.Equal(t, expected, numBackups) + Expect(expected).To(BeEquivalentTo(numBackups)) - velerotest.CompareActions(t, expectedDeleteActions, getDeleteActions(client.Actions())) - }) - } -} + compareActions(expectedDeleteActions, getDeleteActions(client.Actions())) + } + }) +}) -func getDeleteActions(actions []core.Action) []core.Action { - var deleteActions []core.Action - for _, action := range actions { - if action.GetVerb() == "delete" { - deleteActions = append(deleteActions, action) +func compareActions(expected, actual []core.Action) { + Expect(len(expected)).To(BeEquivalentTo(len(actual))) + + for _, e := range expected { + found := false + for _, a := range actual { + if reflect.DeepEqual(e, a) { + found = true + break + } + } + if !found { + fmt.Printf("missing expected action %#v\n", e) } } - return deleteActions -} -func numBackups(t *testing.T, c *fake.Clientset, ns string) (int, error) { - t.Helper() - existingK8SBackups, err := c.VeleroV1().Backups(ns).List(context.TODO(), metav1.ListOptions{}) - if err != nil { - return 0, err + for _, a := range actual { + found := false + for _, e := range expected { + if reflect.DeepEqual(e, a) { + found = true + break + } + } + if !found { + fmt.Printf("unexpected action %#v\n", a) + } } - - return len(existingK8SBackups.Items), nil -} - -func numPodVolumeBackups(t *testing.T, c *fake.Clientset, ns string) (int, error) { - t.Helper() - existingK8SPodvolumeBackups, err := c.VeleroV1().PodVolumeBackups(ns).List(context.TODO(), metav1.ListOptions{}) - if err != nil { - return 0, err - } - - return len(existingK8SPodvolumeBackups.Items), nil } From d8b1ed7dba8bf7cdc5fbc6b9695a17db3ccd0e24 Mon Sep 17 00:00:00 2001 From: Ming Date: Fri, 10 Dec 2021 17:03:14 +0800 Subject: [PATCH 075/136] Upgrade e2e test vsphere plugin Signed-off-by: Ming --- changelogs/unreleased/4440-mqiu | 1 + test/e2e/util/k8s/configmap.go | 28 +++++++++++ test/e2e/util/k8s/secret.go | 51 ++++++++++++++++++++ test/e2e/util/velero/install.go | 72 ++++++++++++++++++++++++++-- test/e2e/util/velero/velero_utils.go | 4 +- 5 files changed, 150 insertions(+), 6 deletions(-) create mode 100644 changelogs/unreleased/4440-mqiu diff --git a/changelogs/unreleased/4440-mqiu b/changelogs/unreleased/4440-mqiu new file mode 100644 index 000000000..0d8a196bd --- /dev/null +++ b/changelogs/unreleased/4440-mqiu @@ -0,0 +1 @@ +Upgrade e2e test vsphere plugin diff --git a/test/e2e/util/k8s/configmap.go b/test/e2e/util/k8s/configmap.go index 73bb1911c..91fcf97cd 100644 --- a/test/e2e/util/k8s/configmap.go +++ b/test/e2e/util/k8s/configmap.go @@ -17,10 +17,17 @@ limitations under the License. package k8s import ( + "fmt" + "time" + + "github.com/pkg/errors" + "github.com/sirupsen/logrus" "golang.org/x/net/context" v1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" + waitutil "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" ) @@ -45,3 +52,24 @@ func WaitForConfigMapComplete(c clientset.Interface, ns, configmapName string) e return true, nil }) } + +func GetConfigmap(c clientset.Interface, ns, secretName string) (*v1.ConfigMap, error) { + return c.CoreV1().ConfigMaps(ns).Get(context.TODO(), secretName, metav1.GetOptions{}) +} + +func WaitForConfigmapDelete(c clientset.Interface, ns, name string) error { + if err := c.CoreV1().ConfigMaps(ns).Delete(context.TODO(), name, metav1.DeleteOptions{}); err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to delete configmap in namespace %q", ns)) + } + return waitutil.PollImmediateInfinite(5*time.Second, + func() (bool, error) { + if _, err := c.CoreV1().ConfigMaps(ns).Get(context.TODO(), ns, metav1.GetOptions{}); err != nil { + if apierrors.IsNotFound(err) { + return true, nil + } + return false, err + } + logrus.Debugf("configmap %q in namespace %q is still being deleted...", name, ns) + return false, nil + }) +} diff --git a/test/e2e/util/k8s/secret.go b/test/e2e/util/k8s/secret.go index 9701559eb..3c3682c93 100644 --- a/test/e2e/util/k8s/secret.go +++ b/test/e2e/util/k8s/secret.go @@ -17,10 +17,18 @@ limitations under the License. package k8s import ( + "fmt" + "time" + + "github.com/pkg/errors" + "github.com/sirupsen/logrus" + "golang.org/x/net/context" v1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" + waitutil "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" ) @@ -34,6 +42,23 @@ func CreateSecret(c clientset.Interface, ns, name string, labels map[string]stri return c.CoreV1().Secrets(ns).Create(context.TODO(), secret, metav1.CreateOptions{}) } +func WaitForSecretDelete(c clientset.Interface, ns, name string) error { + if err := c.CoreV1().Secrets(ns).Delete(context.TODO(), name, metav1.DeleteOptions{}); err != nil { + return errors.Wrap(err, fmt.Sprintf("failed to delete secret in namespace %q", ns)) + } + return waitutil.PollImmediateInfinite(5*time.Second, + func() (bool, error) { + if _, err := c.CoreV1().Secrets(ns).Get(context.TODO(), ns, metav1.GetOptions{}); err != nil { + if apierrors.IsNotFound(err) { + return true, nil + } + return false, err + } + logrus.Debugf("secret %q in namespace %q is still being deleted...", name, ns) + return false, nil + }) +} + // WaitForSecretsComplete uses c to wait for completions to complete for the Job jobName in namespace ns. func WaitForSecretsComplete(c clientset.Interface, ns, secretName string) error { return wait.Poll(PollInterval, PollTimeout, func() (bool, error) { @@ -44,3 +69,29 @@ func WaitForSecretsComplete(c clientset.Interface, ns, secretName string) error return true, nil }) } + +func GetSecret(c clientset.Interface, ns, secretName string) (*v1.Secret, error) { + return c.CoreV1().Secrets(ns).Get(context.TODO(), secretName, metav1.GetOptions{}) +} + +//CreateVCCredentialSecret refer to https://github.com/vmware-tanzu/velero-plugin-for-vsphere/blob/v1.3.0/docs/vanilla.md +func CreateVCCredentialSecret(c clientset.Interface, veleroNamespace string) error { + secret, err := GetSecret(c, "kube-system", "vsphere-config-secret") + if err != nil { + return err + } + vsphereCfg, exist := secret.Data["csi-vsphere.conf"] + if !exist { + return errors.New("failed to retrieve csi-vsphere config") + } + se := &v1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "velero-vsphere-config-secret", + Namespace: veleroNamespace, + }, + Type: v1.SecretTypeOpaque, + Data: map[string][]byte{"csi-vsphere.conf": vsphereCfg}, + } + _, err = c.CoreV1().Secrets(veleroNamespace).Create(context.TODO(), se, metav1.CreateOptions{}) + return err +} diff --git a/test/e2e/util/velero/install.go b/test/e2e/util/velero/install.go index b843fb0be..7f110e9b3 100644 --- a/test/e2e/util/velero/install.go +++ b/test/e2e/util/velero/install.go @@ -29,9 +29,11 @@ import ( "github.com/pkg/errors" apps "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/util/wait" + clientset "k8s.io/client-go/kubernetes" "github.com/vmware-tanzu/velero/pkg/cmd/cli/install" velerexec "github.com/vmware-tanzu/velero/pkg/util/exec" @@ -62,16 +64,20 @@ func VeleroInstall(ctx context.Context, veleroCfg *VerleroConfig, features strin if err != nil { return errors.WithMessage(err, "Failed to get provider plugins") } + err = EnsureClusterExists(ctx) + if err != nil { + return errors.WithMessage(err, "Failed to ensure Kubernetes cluster exists") + } + // TODO - handle this better if veleroCfg.CloudProvider == "vsphere" { // We overrider the ObjectStoreProvider here for vSphere because we want to use the aws plugin for the // backup, but needed to pick up the provider plugins earlier. vSphere plugin no longer needs a Volume // Snapshot location specified veleroCfg.ObjectStoreProvider = "aws" - } - err = EnsureClusterExists(ctx) - if err != nil { - return errors.WithMessage(err, "Failed to ensure Kubernetes cluster exists") + if err := configvSpherePlugin(); err != nil { + return errors.WithMessagef(err, "Failed to config vsphere plugin") + } } veleroInstallOptions, err := getProviderVeleroInstallOptions(veleroCfg.ObjectStoreProvider, veleroCfg.CloudCredentialsFile, veleroCfg.BSLBucket, @@ -97,6 +103,64 @@ func VeleroInstall(ctx context.Context, veleroCfg *VerleroConfig, features strin return nil } +//configvSpherePlugin refers to https://github.com/vmware-tanzu/velero-plugin-for-vsphere/blob/v1.3.0/docs/vanilla.md +func configvSpherePlugin() error { + cli, err := NewTestClient() + if err != nil { + return errors.WithMessagef(err, "Failed to instantiate cluster client to config vsphere plugin") + } + vsphereSecret := "velero-vsphere-config-secret" + configmaptName := "velero-vsphere-plugin-config" + if err := clearupvSpherePluginConfig(cli.ClientGo, VeleroCfg.VeleroNamespace, vsphereSecret, configmaptName); err != nil { + return errors.WithMessagef(err, "Failed to clear up vsphere plugin config %s namespace", VeleroCfg.VeleroNamespace) + } + if err := CreateNamespace(context.Background(), cli, VeleroCfg.VeleroNamespace); err != nil { + return errors.WithMessagef(err, "Failed to create Velero %s namespace", VeleroCfg.VeleroNamespace) + } + if err := CreateVCCredentialSecret(cli.ClientGo, VeleroCfg.VeleroNamespace); err != nil { + return errors.WithMessagef(err, "Failed to create virtual center credential secret in %s namespace", VeleroCfg.VeleroNamespace) + } + if err := WaitForSecretsComplete(cli.ClientGo, VeleroCfg.VeleroNamespace, vsphereSecret); err != nil { + return errors.Wrap(err, "Failed to ensure velero-vsphere-config-secret secret completion in namespace kube-system") + } + _, err = CreateConfigMap(cli.ClientGo, VeleroCfg.VeleroNamespace, configmaptName, map[string]string{ + "cluster_flavor": "VANILLA", + "vsphere_secret_name": vsphereSecret, + "vsphere_secret_namespace": VeleroCfg.VeleroNamespace, + }) + if err != nil { + return errors.WithMessagef(err, "Failed to create velero-vsphere-plugin-config configmap in %s namespace", VeleroCfg.VeleroNamespace) + } + err = WaitForConfigMapComplete(cli.ClientGo, VeleroCfg.VeleroNamespace, configmaptName) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("Failed to ensure configmap %s completion in namespace: %s", configmaptName, VeleroCfg.VeleroNamespace)) + } + return nil +} + +func clearupvSpherePluginConfig(c clientset.Interface, ns, secretName, configMapName string) error { + //clear secret + _, err := GetSecret(c, ns, secretName) + if err == nil { //exist + if err := WaitForSecretDelete(c, ns, secretName); err != nil { + return errors.WithMessagef(err, "Failed to clear up vsphere plugin secret in %s namespace", ns) + } + } else if !apierrors.IsNotFound(err) { + return errors.WithMessagef(err, "Failed to retrieve vsphere plugin secret in %s namespace", ns) + } + + //clear configmap + _, err = GetConfigmap(c, ns, configMapName) + if err == nil { + if err := WaitForConfigmapDelete(c, ns, configMapName); err != nil { + return errors.WithMessagef(err, "Failed to clear up vsphere plugin configmap in %s namespace", ns) + } + } else if !apierrors.IsNotFound(err) { + return errors.WithMessagef(err, "Failed to retrieve vsphere plugin configmap in %s namespace", ns) + } + return nil +} + func installVeleroServer(ctx context.Context, cli string, options *installOptions) error { args := []string{"install"} namespace := "velero" diff --git a/test/e2e/util/velero/velero_utils.go b/test/e2e/util/velero/velero_utils.go index d32c9f577..64ade3fb8 100644 --- a/test/e2e/util/velero/velero_utils.go +++ b/test/e2e/util/velero/velero_utils.go @@ -63,13 +63,13 @@ var pluginsMatrix = map[string]map[string][]string{ "v1.7": { "aws": {"velero/velero-plugin-for-aws:v1.3.0"}, "azure": {"velero/velero-plugin-for-microsoft-azure:v1.3.0"}, - "vsphere": {"velero/velero-plugin-for-aws:v1.3.0", "vsphereveleroplugin/velero-plugin-for-vsphere:v1.1.1"}, + "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"}, }, "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.1.1"}, + "vsphere": {"velero/velero-plugin-for-aws:main", "vsphereveleroplugin/velero-plugin-for-vsphere:v1.3.0"}, "gcp": {"velero/velero-plugin-for-gcp:main"}, }, } From 69f6c8d0cd1f816137bcdfe4e7eec71df059b662 Mon Sep 17 00:00:00 2001 From: Box-Cube <64300761+Box-Cube@users.noreply.github.com> Date: Thu, 16 Dec 2021 14:50:56 +0800 Subject: [PATCH 076/136] Fix statefulsets volumeClaimTemplates storageClassName after use Changing PV/PVC Storage Classes (#4375) * fix statefulsets volumeClaimTemplates storageClassName after use Changing PV/PVC Storage Classes Signed-off-by: Box-Cube <64300761+Box-Cube@users.noreply.github.com> * Fix (vmware-tanzu#4373) Signed-off-by: Box-Cube <64300761+Box-Cube@users.noreply.github.com> * Fix StatefulSet volumeClaimTemplates storageClassName(vmware-tanzu#4373) Signed-off-by: Box-Cube <64300761+Box-Cube@users.noreply.github.com> * Fix StatefulSet volumeClaimTemplates storageClassName(vmware-tanzu#4373) Signed-off-by: Box-Cube <64300761+Box-Cube@users.noreply.github.com> * Fix StatefulSet volumeClaimTemplates storageClassName(vmware-tanzu#4373) Signed-off-by: Box-Cube <64300761+Box-Cube@users.noreply.github.com> * Change the isStorageClassExist logic Signed-off-by: Box-Cube <64300761+Box-Cube@users.noreply.github.com> * Fix StatefulSet volumeClaimTemplates storageClassName(vmware-tanzu#4373) Signed-off-by: Box-Cube <64300761+Box-Cube@users.noreply.github.com> --- changelogs/unreleased/4375-Box-Cube | 1 + pkg/builder/statefulset_builder.go | 62 ++++++++ pkg/builder/storage_class_builder.go | 29 +++- pkg/restore/change_storageclass_action.go | 76 +++++++--- .../change_storageclass_action_test.go | 135 ++++++++++++++---- 5 files changed, 258 insertions(+), 45 deletions(-) create mode 100644 changelogs/unreleased/4375-Box-Cube create mode 100644 pkg/builder/statefulset_builder.go diff --git a/changelogs/unreleased/4375-Box-Cube b/changelogs/unreleased/4375-Box-Cube new file mode 100644 index 000000000..fd1b1b231 --- /dev/null +++ b/changelogs/unreleased/4375-Box-Cube @@ -0,0 +1 @@ +Fix statefulsets volumeClaimTemplates storageClassName when use Changing PV/PVC Storage Classes \ No newline at end of file diff --git a/pkg/builder/statefulset_builder.go b/pkg/builder/statefulset_builder.go new file mode 100644 index 000000000..0edcd0455 --- /dev/null +++ b/pkg/builder/statefulset_builder.go @@ -0,0 +1,62 @@ +/* +Copyright 2021 the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package builder + +import ( + appsv1 "k8s.io/api/apps/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// StatefulSetBuilder builds StatefulSet objects. +type StatefulSetBuilder struct { + object *appsv1.StatefulSet +} + +// ForStatefulSet is the constructor for a StatefulSetBuilder. +func ForStatefulSet(ns, name string) *StatefulSetBuilder { + return &StatefulSetBuilder{ + object: &appsv1.StatefulSet{ + TypeMeta: metav1.TypeMeta{ + APIVersion: appsv1.SchemeGroupVersion.String(), + Kind: "StatefulSet", + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: ns, + Name: name, + }, + Spec: appsv1.StatefulSetSpec{ + VolumeClaimTemplates: []corev1.PersistentVolumeClaim{}, + }, + }, + } +} + +// Result returns the built StatefulSet. +func (b *StatefulSetBuilder) Result() *appsv1.StatefulSet { + return b.object +} + +// StorageClass sets the StatefulSet's VolumeClaimTemplates storage class name. +func (b *StatefulSetBuilder) StorageClass(names ...string) *StatefulSetBuilder { + for _, name := range names { + nameTmp := name + b.object.Spec.VolumeClaimTemplates = append(b.object.Spec.VolumeClaimTemplates, + corev1.PersistentVolumeClaim{Spec: corev1.PersistentVolumeClaimSpec{StorageClassName: &nameTmp}}) + } + return b +} diff --git a/pkg/builder/storage_class_builder.go b/pkg/builder/storage_class_builder.go index 994543332..8ffe4afd1 100644 --- a/pkg/builder/storage_class_builder.go +++ b/pkg/builder/storage_class_builder.go @@ -23,7 +23,8 @@ import ( // StorageClassBuilder builds StorageClass objects. type StorageClassBuilder struct { - object *storagev1api.StorageClass + object *storagev1api.StorageClass + objectSlice []*storagev1api.StorageClass } // ForStorageClass is the constructor for a StorageClassBuilder. @@ -54,3 +55,29 @@ func (b *StorageClassBuilder) ObjectMeta(opts ...ObjectMetaOpt) *StorageClassBui return b } + +// ForStorageClassSlice is the constructor for a storageClassSlice in StorageClassBuilder. +func ForStorageClassSlice(names ...string) *StorageClassBuilder { + var storageClassSlice []*storagev1api.StorageClass + for _, name := range names { + storageClass := &storagev1api.StorageClass{ + TypeMeta: metav1.TypeMeta{ + APIVersion: storagev1api.SchemeGroupVersion.String(), + Kind: "StorageClass", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: name, + }, + } + storageClassSlice = append(storageClassSlice, storageClass) + } + + return &StorageClassBuilder{ + objectSlice: storageClassSlice, + } +} + +// SliceResult returns the built StorageClass slice. +func (b *StorageClassBuilder) SliceResult() []*storagev1api.StorageClass { + return b.objectSlice +} diff --git a/pkg/restore/change_storageclass_action.go b/pkg/restore/change_storageclass_action.go index effa83dbc..5714a1a7f 100644 --- a/pkg/restore/change_storageclass_action.go +++ b/pkg/restore/change_storageclass_action.go @@ -21,8 +21,11 @@ import ( "github.com/pkg/errors" "github.com/sirupsen/logrus" + appsv1 "k8s.io/api/apps/v1" + corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" corev1client "k8s.io/client-go/kubernetes/typed/core/v1" storagev1client "k8s.io/client-go/kubernetes/typed/storage/v1" @@ -55,7 +58,7 @@ func NewChangeStorageClassAction( // be run for. func (a *ChangeStorageClassAction) AppliesTo() (velero.ResourceSelector, error) { return velero.ResourceSelector{ - IncludedResources: []string{"persistentvolumeclaims", "persistentvolumes"}, + IncludedResources: []string{"persistentvolumeclaims", "persistentvolumes", "statefulsets"}, }, nil } @@ -87,33 +90,72 @@ func (a *ChangeStorageClassAction) Execute(input *velero.RestoreItemActionExecut "name": obj.GetName(), }) - // use the unstructured helpers here since this code is for both PVs and PVCs, and the - // field names are the same for both types. - storageClass, _, err := unstructured.NestedString(obj.UnstructuredContent(), "spec", "storageClassName") - if err != nil { - return nil, errors.Wrap(err, "error getting item's spec.storageClassName") + // change StatefulSet volumeClaimTemplates storageClassName + if obj.GetKind() == "StatefulSet" { + sts := new(appsv1.StatefulSet) + if err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.UnstructuredContent(), sts); err != nil { + return nil, err + } + + if len(sts.Spec.VolumeClaimTemplates) > 0 { + for index, pvc := range sts.Spec.VolumeClaimTemplates { + exists, newStorageClass, err := a.isStorageClassExist(log, *pvc.Spec.StorageClassName, config) + if err != nil { + return nil, err + } else if !exists { + continue + } + + log.Infof("Updating item's storage class name to %s", newStorageClass) + sts.Spec.VolumeClaimTemplates[index].Spec.StorageClassName = &newStorageClass + } + + newObj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(sts) + if err != nil { + return nil, errors.Wrap(err, "convert obj to StatefulSet failed") + } + obj.Object = newObj + } + } else { + // use the unstructured helpers here since this code is for both PVs and PVCs, and the + // field names are the same for both types. + storageClass, _, err := unstructured.NestedString(obj.UnstructuredContent(), "spec", "storageClassName") + if err != nil { + return nil, errors.Wrap(err, "error getting item's spec.storageClassName") + } + + exists, newStorageClass, err := a.isStorageClassExist(log, storageClass, config) + if err != nil { + return nil, err + } else if !exists { + return velero.NewRestoreItemActionExecuteOutput(input.Item), nil + } + + log.Infof("Updating item's storage class name to %s", newStorageClass) + + if err := unstructured.SetNestedField(obj.UnstructuredContent(), newStorageClass, "spec", "storageClassName"); err != nil { + return nil, errors.Wrap(err, "unable to set item's spec.storageClassName") + } } + return velero.NewRestoreItemActionExecuteOutput(obj), nil +} + +func (a *ChangeStorageClassAction) isStorageClassExist(log *logrus.Entry, storageClass string, cm *corev1.ConfigMap) (exists bool, newStorageClass string, err error) { if storageClass == "" { log.Debug("Item has no storage class specified") - return velero.NewRestoreItemActionExecuteOutput(input.Item), nil + return false, "", nil } - newStorageClass, ok := config.Data[storageClass] + newStorageClass, ok := cm.Data[storageClass] if !ok { log.Debugf("No mapping found for storage class %s", storageClass) - return velero.NewRestoreItemActionExecuteOutput(input.Item), nil + return false, "", nil } // validate that new storage class exists if _, err := a.storageClassClient.Get(context.TODO(), newStorageClass, metav1.GetOptions{}); err != nil { - return nil, errors.Wrapf(err, "error getting storage class %s from API", newStorageClass) + return false, "", errors.Wrapf(err, "error getting storage class %s from API", newStorageClass) } - log.Infof("Updating item's storage class name to %s", newStorageClass) - - if err := unstructured.SetNestedField(obj.UnstructuredContent(), newStorageClass, "spec", "storageClassName"); err != nil { - return nil, errors.Wrap(err, "unable to set item's spec.storageClassName") - } - - return velero.NewRestoreItemActionExecuteOutput(obj), nil + return true, newStorageClass, nil } diff --git a/pkg/restore/change_storageclass_action_test.go b/pkg/restore/change_storageclass_action_test.go index 9e6005851..65de052db 100644 --- a/pkg/restore/change_storageclass_action_test.go +++ b/pkg/restore/change_storageclass_action_test.go @@ -41,16 +41,17 @@ import ( // desired result. func TestChangeStorageClassActionExecute(t *testing.T) { tests := []struct { - name string - pvOrPVC interface{} - configMap *corev1api.ConfigMap - storageClass *storagev1api.StorageClass - want interface{} - wantErr error + name string + pvOrPvcOrSTS interface{} + configMap *corev1api.ConfigMap + storageClass *storagev1api.StorageClass + storageClassSlice []*storagev1api.StorageClass + want interface{} + wantErr error }{ { - name: "a valid mapping for a persistent volume is applied correctly", - pvOrPVC: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), + name: "a valid mapping for a persistent volume is applied correctly", + pvOrPvcOrSTS: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "storageclass-2"). @@ -59,8 +60,8 @@ func TestChangeStorageClassActionExecute(t *testing.T) { want: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-2").Result(), }, { - name: "a valid mapping for a persistent volume claim is applied correctly", - pvOrPVC: builder.ForPersistentVolumeClaim("velero", "pvc-1").StorageClass("storageclass-1").Result(), + name: "a valid mapping for a persistent volume claim is applied correctly", + pvOrPvcOrSTS: builder.ForPersistentVolumeClaim("velero", "pvc-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "storageclass-2"). @@ -69,8 +70,8 @@ func TestChangeStorageClassActionExecute(t *testing.T) { want: builder.ForPersistentVolumeClaim("velero", "pvc-1").StorageClass("storageclass-2").Result(), }, { - name: "when no config map exists for the plugin, the item is returned as-is", - pvOrPVC: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), + name: "when no config map exists for the plugin, the item is returned as-is", + pvOrPvcOrSTS: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/some-other-plugin", "RestoreItemAction")). Data("storageclass-1", "storageclass-2"). @@ -78,16 +79,16 @@ func TestChangeStorageClassActionExecute(t *testing.T) { want: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), }, { - name: "when no storage class mappings exist in the plugin config map, the item is returned as-is", - pvOrPVC: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), + name: "when no storage class mappings exist in the plugin config map, the item is returned as-is", + pvOrPvcOrSTS: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). Result(), want: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), }, { - name: "when persistent volume has no storage class, the item is returned as-is", - pvOrPVC: builder.ForPersistentVolume("pv-1").Result(), + name: "when persistent volume has no storage class, the item is returned as-is", + pvOrPvcOrSTS: builder.ForPersistentVolume("pv-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "storageclass-2"). @@ -95,8 +96,8 @@ func TestChangeStorageClassActionExecute(t *testing.T) { want: builder.ForPersistentVolume("pv-1").Result(), }, { - name: "when persistent volume claim has no storage class, the item is returned as-is", - pvOrPVC: builder.ForPersistentVolumeClaim("velero", "pvc-1").Result(), + name: "when persistent volume claim has no storage class, the item is returned as-is", + pvOrPvcOrSTS: builder.ForPersistentVolumeClaim("velero", "pvc-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "storageclass-2"). @@ -104,8 +105,8 @@ func TestChangeStorageClassActionExecute(t *testing.T) { want: builder.ForPersistentVolumeClaim("velero", "pvc-1").Result(), }, { - name: "when persistent volume's storage class has no mapping in the config map, the item is returned as-is", - pvOrPVC: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), + name: "when persistent volume's storage class has no mapping in the config map, the item is returned as-is", + pvOrPvcOrSTS: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-3", "storageclass-4"). @@ -113,8 +114,8 @@ func TestChangeStorageClassActionExecute(t *testing.T) { want: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), }, { - name: "when persistent volume claim's storage class has no mapping in the config map, the item is returned as-is", - pvOrPVC: builder.ForPersistentVolumeClaim("velero", "pvc-1").StorageClass("storageclass-1").Result(), + name: "when persistent volume claim's storage class has no mapping in the config map, the item is returned as-is", + pvOrPvcOrSTS: builder.ForPersistentVolumeClaim("velero", "pvc-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-3", "storageclass-4"). @@ -122,8 +123,8 @@ func TestChangeStorageClassActionExecute(t *testing.T) { want: builder.ForPersistentVolumeClaim("velero", "pvc-1").StorageClass("storageclass-1").Result(), }, { - name: "when persistent volume's storage class is mapped to a nonexistent storage class, an error is returned", - pvOrPVC: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), + name: "when persistent volume's storage class is mapped to a nonexistent storage class, an error is returned", + pvOrPvcOrSTS: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "nonexistent-storage-class"). @@ -131,8 +132,81 @@ func TestChangeStorageClassActionExecute(t *testing.T) { wantErr: errors.New("error getting storage class nonexistent-storage-class from API: storageclasses.storage.k8s.io \"nonexistent-storage-class\" not found"), }, { - name: "when persistent volume claim's storage class is mapped to a nonexistent storage class, an error is returned", - pvOrPVC: builder.ForPersistentVolumeClaim("velero", "pvc-1").StorageClass("storageclass-1").Result(), + name: "when persistent volume claim's storage class is mapped to a nonexistent storage class, an error is returned", + pvOrPvcOrSTS: builder.ForPersistentVolumeClaim("velero", "pvc-1").StorageClass("storageclass-1").Result(), + configMap: builder.ForConfigMap("velero", "change-storage-classs"). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + Data("storageclass-1", "nonexistent-storage-class"). + Result(), + wantErr: errors.New("error getting storage class nonexistent-storage-class from API: storageclasses.storage.k8s.io \"nonexistent-storage-class\" not found"), + }, + { + name: "when statefulset's VolumeClaimTemplates has only one pvc, a valid mapping for a statefulset is applied correctly", + pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), + configMap: builder.ForConfigMap("velero", "change-storage-classs"). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + Data("storageclass-1", "storageclass-2"). + Result(), + storageClass: builder.ForStorageClass("storageclass-2").Result(), + want: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-2").Result(), + }, + { + name: "when statefulset's VolumeClaimTemplates has more than one same pvc's storageClassName, a valid mapping for a statefulset is applied correctly", + pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1", "storageclass-1").Result(), + configMap: builder.ForConfigMap("velero", "change-storage-classs"). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + Data("storageclass-1", "storageclass-2", "storageclass-3", "storageclass-4"). + Result(), + storageClass: builder.ForStorageClass("storageclass-2").Result(), + want: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-2", "storageclass-2").Result(), + }, + { + name: "when statefulset's VolumeClaimTemplates has more than one different pvc's storageClassName, a valid mapping for a statefulset is applied correctly", + pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1", "storageclass-2", "storageclass-3").Result(), + configMap: builder.ForConfigMap("velero", "change-storage-classs"). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + Data("storageclass-1", "storageclass-a", "storageclass-2", "storageclass-b", "storageclass-3", "storageclass-c"). + Result(), + storageClassSlice: builder.ForStorageClassSlice("storageclass-a", "storageclass-b", "storageclass-c").SliceResult(), + want: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-a", "storageclass-b", "storageclass-c").Result(), + }, + { + name: "when no config map exists for the plugin, the statefulset item is returned as-is", + pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), + configMap: builder.ForConfigMap("velero", "change-storage-classs"). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/some-other-plugin", "RestoreItemAction")). + Data("storageclass-1", "storageclass-2"). + Result(), + want: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), + }, + { + name: "when no storage class mappings exist in the plugin config map, the statefulset item is returned as-is", + pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), + configMap: builder.ForConfigMap("velero", "change-storage-classs"). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + Result(), + want: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), + }, + { + name: "when persistent volume claim has no storage class, the statefulset item is returned as-is", + pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").Result(), + configMap: builder.ForConfigMap("velero", "change-storage-classs"). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + Result(), + want: builder.ForStatefulSet("velero", "sts-1").Result(), + }, + { + name: "when statefulset's storage class has no mapping in the config map, the item is returned as-is", + pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), + configMap: builder.ForConfigMap("velero", "change-storage-classs"). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + Data("storageclass-3", "storageclass-4"). + Result(), + want: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), + }, + { + name: "when statefulset's storage class is mapped to a nonexistent storage class, an error is returned", + pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "nonexistent-storage-class"). @@ -161,7 +235,14 @@ func TestChangeStorageClassActionExecute(t *testing.T) { require.NoError(t, err) } - unstructuredMap, err := runtime.DefaultUnstructuredConverter.ToUnstructured(tc.pvOrPVC) + if tc.storageClassSlice != nil { + for _, storageClass := range tc.storageClassSlice { + _, err := clientset.StorageV1().StorageClasses().Create(context.TODO(), storageClass, metav1.CreateOptions{}) + require.NoError(t, err) + } + } + + unstructuredMap, err := runtime.DefaultUnstructuredConverter.ToUnstructured(tc.pvOrPvcOrSTS) require.NoError(t, err) input := &velero.RestoreItemActionExecuteInput{ From be752dd8d9b0c3771826aae4d34d7e70286d75c5 Mon Sep 17 00:00:00 2001 From: Ming Date: Thu, 16 Dec 2021 14:17:42 +0800 Subject: [PATCH 077/136] Add rbac and annotation test cases Signed-off-by: Ming --- changelogs/unreleased/4455-mqiu | 1 + test/e2e/basic/resources-check/namespaces.go | 117 +++++++++++ .../resources-check/namespaces_annotation.go | 101 ++++++++++ test/e2e/basic/resources-check/rbac.go | 188 ++++++++++++++++++ .../basic/resources-check/resources_check.go | 45 +++++ test/e2e/e2e_suite_test.go | 3 +- test/e2e/scale/multiple_namespaces.go | 139 +------------ test/e2e/test/test.go | 37 ++++ test/e2e/util/k8s/namespace.go | 10 + test/e2e/util/k8s/rbac.go | 114 +++++++++++ test/e2e/util/k8s/serviceaccount.go | 20 ++ 11 files changed, 638 insertions(+), 137 deletions(-) create mode 100644 changelogs/unreleased/4455-mqiu create mode 100644 test/e2e/basic/resources-check/namespaces.go create mode 100644 test/e2e/basic/resources-check/namespaces_annotation.go create mode 100644 test/e2e/basic/resources-check/rbac.go create mode 100644 test/e2e/basic/resources-check/resources_check.go create mode 100644 test/e2e/util/k8s/rbac.go diff --git a/changelogs/unreleased/4455-mqiu b/changelogs/unreleased/4455-mqiu new file mode 100644 index 000000000..84aba9797 --- /dev/null +++ b/changelogs/unreleased/4455-mqiu @@ -0,0 +1 @@ +Add rbac and annotation test cases diff --git a/test/e2e/basic/resources-check/namespaces.go b/test/e2e/basic/resources-check/namespaces.go new file mode 100644 index 000000000..8dfd26fcf --- /dev/null +++ b/test/e2e/basic/resources-check/namespaces.go @@ -0,0 +1,117 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the Licensm. +You may obtain a copy of the License at + + http://www.apachm.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the Licensm. +*/ + +package basic + +import ( + "context" + "fmt" + "math/rand" + "strings" + "time" + + "github.com/google/uuid" + "github.com/pkg/errors" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + . "github.com/vmware-tanzu/velero/test/e2e" + . "github.com/vmware-tanzu/velero/test/e2e/test" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" +) + +type MultiNSBackup struct { + TestCase + IsScalTest bool + NSExcluded *[]string + TimeoutDuration time.Duration +} + +func (m *MultiNSBackup) Init() error { + rand.Seed(time.Now().UnixNano()) + UUIDgen, _ = uuid.NewRandom() + m.BackupName = "backup-" + UUIDgen.String() + m.RestoreName = "restore-" + UUIDgen.String() + m.NSBaseName = "nstest-" + UUIDgen.String() + 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 + m.TestMsg = &TestMSG{ + Text: "When I create 2500 namespaces should be successfully backed up and restored", + FailedMSG: "Failed to successfully backup and restore multiple namespaces", + } + } else { + m.NamespacesTotal = 2 + m.TimeoutDuration = time.Minute * 5 + m.TestMsg = &TestMSG{ + Text: "When I create 2 namespaces should be successfully backed up and restored", + FailedMSG: "Failed to successfully backup and restore multiple namespaces", + } + } + + m.BackupArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", m.BackupName, + "--exclude-namespaces", strings.Join(*m.NSExcluded, ","), + "--default-volumes-to-restic", "--wait", + } + + m.RestoreArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", m.RestoreName, + "--from-backup", m.BackupName, "--wait", + } + + return nil +} + +func (m *MultiNSBackup) CreateResources() error { + m.Ctx, _ = context.WithTimeout(context.Background(), m.TimeoutDuration) + fmt.Printf("Creating namespaces ...\n") + for nsNum := 0; nsNum < m.NamespacesTotal; nsNum++ { + createNSName := fmt.Sprintf("%s-%00000d", m.NSBaseName, nsNum) + if err := CreateNamespace(m.Ctx, m.Client, createNSName); err != nil { + return errors.Wrapf(err, "Failed to create namespace %s", createNSName) + } + } + return nil +} + +func (m *MultiNSBackup) Verify() error { + // Verify that we got back all of the namespaces we created + for nsNum := 0; nsNum < m.NamespacesTotal; nsNum++ { + checkNSName := fmt.Sprintf("%s-%00000d", m.NSBaseName, nsNum) + checkNS, err := GetNamespace(m.Ctx, m.Client, checkNSName) + if err != nil { + return errors.Wrapf(err, "Could not retrieve test namespace %s", checkNSName) + } + if checkNS.Name != checkNSName { + return errors.Errorf("Retrieved namespace for %s has name %s instead", checkNSName, checkNS.Name) + } + } + return nil +} diff --git a/test/e2e/basic/resources-check/namespaces_annotation.go b/test/e2e/basic/resources-check/namespaces_annotation.go new file mode 100644 index 000000000..f3f602147 --- /dev/null +++ b/test/e2e/basic/resources-check/namespaces_annotation.go @@ -0,0 +1,101 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package basic + +import ( + "context" + "fmt" + "math/rand" + "strings" + "time" + + "github.com/google/uuid" + "github.com/pkg/errors" + + . "github.com/vmware-tanzu/velero/test/e2e" + . "github.com/vmware-tanzu/velero/test/e2e/test" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" +) + +type NSAnnotationCase struct { + TestCase +} + +func (n *NSAnnotationCase) Init() error { + rand.Seed(time.Now().UnixNano()) + UUIDgen, _ = uuid.NewRandom() + n.BackupName = "backup-namespace-annotations" + UUIDgen.String() + n.RestoreName = "restore-namespace-annotations" + UUIDgen.String() + n.NSBaseName = "namespace-annotations-" + UUIDgen.String() + n.NamespacesTotal = 1 + n.NSIncluded = &[]string{} + n.Client = TestClientInstance + for nsNum := 0; nsNum < n.NamespacesTotal; nsNum++ { + createNSName := fmt.Sprintf("%s-%00000d", n.NSBaseName, nsNum) + *n.NSIncluded = append(*n.NSIncluded, createNSName) + } + n.TestMsg = &TestMSG{ + Desc: "Backup/restore namespace annotation test", + Text: "Should be successfully backed up and restored including annotations", + FailedMSG: "Failed to successfully backup and restore multiple namespaces", + } + n.BackupArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", n.BackupName, + "--include-namespaces", strings.Join(*n.NSIncluded, ","), + "--default-volumes-to-restic", "--wait", + } + + n.RestoreArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", n.RestoreName, + "--from-backup", n.BackupName, "--wait", + } + return nil +} + +func (n *NSAnnotationCase) CreateResources() error { + n.Ctx, _ = context.WithTimeout(context.Background(), 10*time.Minute) + for nsNum := 0; nsNum < n.NamespacesTotal; nsNum++ { + createNSName := fmt.Sprintf("%s-%00000d", n.NSBaseName, nsNum) + createAnnotationName := fmt.Sprintf("annotation-%s-%00000d", n.NSBaseName, nsNum) + if err := CreateNamespaceWithAnnotation(n.Ctx, n.Client, createNSName, map[string]string{"testAnnotation": createAnnotationName}); err != nil { + return errors.Wrapf(err, "Failed to create namespace %s", createNSName) + } + } + return nil +} + +func (n *NSAnnotationCase) Verify() error { + for nsNum := 0; nsNum < n.NamespacesTotal; nsNum++ { + checkNSName := fmt.Sprintf("%s-%00000d", n.NSBaseName, nsNum) + checkAnnoName := fmt.Sprintf("annotation-%s-%00000d", n.NSBaseName, nsNum) + checkNS, err := GetNamespace(n.Ctx, n.Client, checkNSName) + + if err != nil { + return errors.Wrapf(err, "Could not retrieve test namespace %s", checkNSName) + } + if checkNS.Name != checkNSName { + return errors.Errorf("Retrieved namespace for %s has name %s instead", checkNSName, checkNS.Name) + } + + c := checkNS.ObjectMeta.Annotations["testAnnotation"] + + if c != checkAnnoName { + return errors.Errorf("Retrieved annotation for %s has name %s instead", checkAnnoName, c) + } + } + return nil +} diff --git a/test/e2e/basic/resources-check/rbac.go b/test/e2e/basic/resources-check/rbac.go new file mode 100644 index 000000000..c07329d81 --- /dev/null +++ b/test/e2e/basic/resources-check/rbac.go @@ -0,0 +1,188 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the Licensm. +You may obtain a copy of the License at + + http://www.apachm.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the Licensm. +*/ + +/* +Copyright 2021 the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package basic + +import ( + "context" + "fmt" + "math/rand" + "strings" + "time" + + "github.com/google/uuid" + "github.com/pkg/errors" + + . "github.com/vmware-tanzu/velero/test/e2e" + . "github.com/vmware-tanzu/velero/test/e2e/test" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" +) + +type RBACCase struct { + TestCase +} + +func (r *RBACCase) Init() error { + rand.Seed(time.Now().UnixNano()) + UUIDgen, _ = uuid.NewRandom() + r.BackupName = "backup-rbac" + UUIDgen.String() + r.RestoreName = "restore-rbac" + UUIDgen.String() + r.NSBaseName = "rabc-" + UUIDgen.String() + r.NamespacesTotal = 1 + r.NSIncluded = &[]string{} + for nsNum := 0; nsNum < r.NamespacesTotal; nsNum++ { + createNSName := fmt.Sprintf("%s-%00000d", r.NSBaseName, nsNum) + *r.NSIncluded = append(*r.NSIncluded, createNSName) + } + r.TestMsg = &TestMSG{ + Desc: "Backup/restore of Namespaced Scoped and Cluster Scoped RBAC", + Text: "should be successfully backed up and restored", + FailedMSG: "Failed to successfully backup and restore RBAC", + } + r.BackupArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", r.BackupName, + "--include-namespaces", strings.Join(*r.NSIncluded, ","), + "--default-volumes-to-restic", "--wait", + } + + r.RestoreArgs = []string{ + "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", r.RestoreName, + "--from-backup", r.BackupName, "--wait", + } + r.Client = TestClientInstance + return nil +} + +func (r *RBACCase) CreateResources() error { + r.Ctx, _ = context.WithTimeout(context.Background(), 10*time.Minute) + for nsNum := 0; nsNum < r.NamespacesTotal; nsNum++ { + createNSName := fmt.Sprintf("%s-%00000d", r.NSBaseName, nsNum) + fmt.Printf("Creating namespaces ...%s\n", createNSName) + if err := CreateNamespace(r.Ctx, r.Client, createNSName); err != nil { + return errors.Wrapf(err, "Failed to create namespace %s", createNSName) + } + serviceAccountName := fmt.Sprintf("service-account-%s-%00000d", r.NSBaseName, nsNum) + fmt.Printf("Creating service account ...%s\n", createNSName) + if err := CreateServiceAccount(r.Ctx, r.Client, createNSName, serviceAccountName); err != nil { + return errors.Wrapf(err, "Failed to create service account %s", serviceAccountName) + } + clusterRoleName := fmt.Sprintf("clusterrole-%s-%00000d", r.NSBaseName, nsNum) + clusterRoleBindingName := fmt.Sprintf("clusterrolebinding-%s-%00000d", r.NSBaseName, nsNum) + if err := CreateRBACWithBindingSA(r.Ctx, r.Client, createNSName, serviceAccountName, clusterRoleName, clusterRoleBindingName); err != nil { + return errors.Wrapf(err, "Failed to create cluster role %s with role binding %s", clusterRoleName, clusterRoleBindingName) + } + } + return nil +} + +func (r *RBACCase) Verify() error { + for nsNum := 0; nsNum < r.NamespacesTotal; nsNum++ { + checkNSName := fmt.Sprintf("%s-%00000d", r.NSBaseName, nsNum) + checkServiceAccountName := fmt.Sprintf("service-account-%s-%00000d", r.NSBaseName, nsNum) + checkClusterRoleName := fmt.Sprintf("clusterrole-%s-%00000d", r.NSBaseName, nsNum) + checkClusterRoleBindingName := fmt.Sprintf("clusterrolebinding-%s-%00000d", r.NSBaseName, nsNum) + + checkNS, err := GetNamespace(r.Ctx, r.Client, checkNSName) + if err != nil { + return errors.Wrapf(err, "Could not retrieve test namespace %s", checkNSName) + } + if checkNS.Name != checkNSName { + return errors.Errorf("Retrieved namespace for %s has name %s instead", checkNSName, checkNS.Name) + } + + //getting service account from the restore + checkSA, err := GetServiceAccount(r.Ctx, r.Client, checkNSName, checkServiceAccountName) + + if err != nil { + return errors.Wrapf(err, "Could not retrieve test service account %s", checkSA) + } + + if checkSA.Name != checkServiceAccountName { + return errors.Errorf("Retrieved service account for %s has name %s instead", checkServiceAccountName, checkSA.Name) + } + + //getting cluster role from the restore + checkClusterRole, err := GetClusterRole(r.Ctx, r.Client, checkClusterRoleName) + + if err != nil { + return errors.Wrapf(err, "Could not retrieve test cluster role %s", checkClusterRole) + } + + if checkSA.Name != checkServiceAccountName { + return errors.Errorf("Retrieved cluster role for %s has name %s instead", checkClusterRoleName, checkClusterRole.Name) + } + + //getting cluster role binding from the restore + checkClusterRoleBinding, err := GetClusterRoleBinding(r.Ctx, r.Client, checkClusterRoleBindingName) + + if err != nil { + return errors.Wrapf(err, "Could not retrieve test cluster role binding %s", checkClusterRoleBinding) + } + + if checkClusterRoleBinding.Name != checkClusterRoleBindingName { + return errors.Errorf("Retrieved cluster role binding for %s has name %s instead", checkClusterRoleBindingName, checkClusterRoleBinding.Name) + } + + //check if the role binding maps to service account + checkSubjects := checkClusterRoleBinding.Subjects[0].Name + + if checkSubjects != checkServiceAccountName { + return errors.Errorf("Retrieved cluster role binding for %s has name %s instead", checkServiceAccountName, checkSubjects) + } + } + return nil +} + +func (r *RBACCase) Destroy() error { + //cleanup clusterrole + err := CleanupClusterRole(r.Ctx, r.Client, r.NSBaseName) + if err != nil { + return errors.Wrap(err, "Could not cleanup clusterroles") + } + + //cleanup cluster rolebinding + err = CleanupClusterRoleBinding(r.Ctx, r.Client, r.NSBaseName) + if err != nil { + return errors.Wrap(err, "Could not cleanup clusterrolebindings") + } + + err = CleanupNamespacesWithPoll(r.Ctx, r.Client, r.NSBaseName) + if err != nil { + return errors.Wrap(err, "Could cleanup retrieve namespaces") + } + + return nil +} + +func (r *RBACCase) Clean() error { + return r.Destroy() +} diff --git a/test/e2e/basic/resources-check/resources_check.go b/test/e2e/basic/resources-check/resources_check.go new file mode 100644 index 000000000..b3ddadcb9 --- /dev/null +++ b/test/e2e/basic/resources-check/resources_check.go @@ -0,0 +1,45 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the Licensm. +You may obtain a copy of the License at + + http://www.apachm.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the Licensm. +*/ + +/* +Copyright 2021 the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package basic + +import . "github.com/vmware-tanzu/velero/test/e2e/test" + +func GetResourcesCheckTestCases() []VeleroBackupRestoreTest { + return []VeleroBackupRestoreTest{ + &NSAnnotationCase{}, + &MultiNSBackup{IsScalTest: false}, + &RBACCase{}, + } +} + +var ResourcesCheckTest func() = TestFuncWithMultiIt(GetResourcesCheckTestCases()) diff --git a/test/e2e/e2e_suite_test.go b/test/e2e/e2e_suite_test.go index 93876044a..516f7299d 100644 --- a/test/e2e/e2e_suite_test.go +++ b/test/e2e/e2e_suite_test.go @@ -27,6 +27,7 @@ import ( . "github.com/vmware-tanzu/velero/test/e2e" . "github.com/vmware-tanzu/velero/test/e2e/backup" . "github.com/vmware-tanzu/velero/test/e2e/basic" + . "github.com/vmware-tanzu/velero/test/e2e/basic/resources-check" . "github.com/vmware-tanzu/velero/test/e2e/resource-filtering" . "github.com/vmware-tanzu/velero/test/e2e/scale" . "github.com/vmware-tanzu/velero/test/e2e/upgrade" @@ -67,7 +68,7 @@ var _ = Describe("[Restic] Velero tests on cluster using the plugin provider for var _ = Describe("[Snapshot] Velero tests on cluster using the plugin provider for object storage and snapshots for volume backups", BackupRestoreWithSnapshots) -var _ = Describe("[Basic] Backup/restore of 2 namespaces", BasicBackupRestore) +var _ = Describe("[Basic] Backup/restore of cluster resources", ResourcesCheckTest) var _ = Describe("[Scale] Backup/restore of 2500 namespaces", MultiNSBackupRestore) diff --git a/test/e2e/scale/multiple_namespaces.go b/test/e2e/scale/multiple_namespaces.go index 91e8b5636..d63880c6b 100644 --- a/test/e2e/scale/multiple_namespaces.go +++ b/test/e2e/scale/multiple_namespaces.go @@ -17,141 +17,8 @@ limitations under the License. package scale import ( - "context" - "flag" - "fmt" - "time" - - "github.com/google/uuid" - - . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" - . "github.com/vmware-tanzu/velero/test/e2e/util/velero" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - "github.com/pkg/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - . "github.com/vmware-tanzu/velero/test/e2e" + basic "github.com/vmware-tanzu/velero/test/e2e/basic/resources-check" + . "github.com/vmware-tanzu/velero/test/e2e/test" ) -func BasicBackupRestore() { - - client, err := NewTestClient() - Expect(err).To(Succeed(), "Failed to instantiate cluster client for multiple namespace tests") - - BeforeEach(func() { - var err error - flag.Parse() - UUIDgen, err = uuid.NewRandom() - Expect(err).To(Succeed()) - if VeleroCfg.InstallVelero { - Expect(VeleroInstall(context.Background(), &VeleroCfg, "", false)).To(Succeed()) - } - }) - - AfterEach(func() { - if VeleroCfg.InstallVelero { - err := VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) - Expect(err).To(Succeed()) - } - - }) - - Context("When I create 2 namespaces", func() { - It("should be successfully backed up and restored", func() { - backupName := "backup-" + UUIDgen.String() - restoreName := "restore-" + UUIDgen.String() - fiveMinTimeout, _ := context.WithTimeout(context.Background(), 5*time.Minute) - Expect(RunMultipleNamespaceTest(fiveMinTimeout, client, "nstest-"+UUIDgen.String(), 2, - backupName, restoreName)).To(Succeed(), "Failed to successfully backup and restore multiple namespaces") - }) - }) -} - -func MultiNSBackupRestore() { - - client, err := NewTestClient() - Expect(err).To(Succeed(), "Failed to instantiate cluster client for multiple namespace tests") - - BeforeEach(func() { - var err error - flag.Parse() - UUIDgen, err = uuid.NewRandom() - Expect(err).To(Succeed()) - if VeleroCfg.InstallVelero { - Expect(VeleroInstall(context.Background(), &VeleroCfg, "", false)).To(Succeed()) - } - }) - - AfterEach(func() { - if VeleroCfg.InstallVelero { - err := VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) - Expect(err).To(Succeed()) - } - - }) - - Context("When I create 2500 namespaces", func() { - It("should be successfully backed up and restored", func() { - backupName := "backup-" + UUIDgen.String() - restoreName := "restore-" + UUIDgen.String() - twoHourTimeout, _ := context.WithTimeout(context.Background(), 2*time.Hour) - Expect(RunMultipleNamespaceTest(twoHourTimeout, client, "nstest-"+UUIDgen.String(), 2500, - backupName, restoreName)).To(Succeed(), "Failed to successfully backup and restore multiple namespaces") - }) - }) -} - -func RunMultipleNamespaceTest(ctx context.Context, client TestClient, nsBaseName string, numberOfNamespaces int, backupName string, restoreName string) error { - defer CleanupNamespaces(context.Background(), client, nsBaseName) // Run at exit for final cleanup - var excludeNamespaces []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 := client.ClientGo.CoreV1().Namespaces().List(ctx, v1.ListOptions{}) - if err != nil { - return errors.Wrap(err, "Could not retrieve namespaces") - } - - for _, excludeNamespace := range namespaces.Items { - excludeNamespaces = append(excludeNamespaces, excludeNamespace.Name) - } - - fmt.Printf("Creating namespaces ...\n") - for nsNum := 0; nsNum < numberOfNamespaces; nsNum++ { - createNSName := fmt.Sprintf("%s-%00000d", nsBaseName, nsNum) - if err := CreateNamespace(ctx, client, createNSName); err != nil { - return errors.Wrapf(err, "Failed to create namespace %s", createNSName) - } - } - if err := VeleroBackupExcludeNamespaces(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backupName, excludeNamespaces); err != nil { - RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backupName, "") - return errors.Wrapf(err, "Failed to backup backup namespaces %s-*", nsBaseName) - } - - err = CleanupNamespaces(ctx, client, nsBaseName) - if err != nil { - return errors.Wrap(err, "Could cleanup retrieve namespaces") - } - - err = VeleroRestore(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, restoreName, backupName) - if err != nil { - RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, "", restoreName) - return errors.Wrap(err, "Restore failed") - } - - // Verify that we got back all of the namespaces we created - for nsNum := 0; nsNum < numberOfNamespaces; nsNum++ { - checkNSName := fmt.Sprintf("%s-%00000d", nsBaseName, nsNum) - checkNS, err := GetNamespace(ctx, client, checkNSName) - if err != nil { - return errors.Wrapf(err, "Could not retrieve test namespace %s", checkNSName) - } - if checkNS.Name != checkNSName { - return errors.Errorf("Retrieved namespace for %s has name %s instead", checkNSName, checkNS.Name) - } - } - // Cleanup is automatic on the way out - return nil -} +var MultiNSBackupRestore func() = TestFunc(&basic.MultiNSBackup{IsScalTest: true}) diff --git a/test/e2e/test/test.go b/test/e2e/test/test.go index ffb491db0..91a957ad4 100644 --- a/test/e2e/test/test.go +++ b/test/e2e/test/test.go @@ -92,6 +92,43 @@ func TestFunc(test VeleroBackupRestoreTest) func() { } } +func TestFuncWithMultiIt(tests []VeleroBackupRestoreTest) func() { + return func() { + var err error + var countIt int + TestClientInstance, err = NewTestClient() + Expect(err).To(Succeed(), "Failed to instantiate cluster client for backup tests") + for k := range tests { + Expect(tests[k].Init()).To(Succeed(), fmt.Sprintf("Failed to instantiate test %s case", tests[k].GetTestMsg().Desc)) + } + + BeforeEach(func() { + flag.Parse() + if VeleroCfg.InstallVelero { + if countIt == 0 { + Expect(VeleroInstall(context.Background(), &VeleroCfg, "", false)).To(Succeed()) + } + countIt++ + } + }) + + AfterEach(func() { + if VeleroCfg.InstallVelero { + if countIt == len(tests) { + Expect(VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace)).To((Succeed())) + } + } + }) + + for k := range tests { + curTest := tests[k] + It(curTest.GetTestMsg().Text, func() { + Expect(RunTestCase(curTest)).To(Succeed(), curTest.GetTestMsg().FailedMSG) + }) + } + } +} + func (t *TestCase) Init() error { return nil } diff --git a/test/e2e/util/k8s/namespace.go b/test/e2e/util/k8s/namespace.go index b6a83a62b..4048614f0 100644 --- a/test/e2e/util/k8s/namespace.go +++ b/test/e2e/util/k8s/namespace.go @@ -53,6 +53,16 @@ func CreateNamespaceWithLabel(ctx context.Context, client TestClient, namespace return err } +func CreateNamespaceWithAnnotation(ctx context.Context, client TestClient, namespace string, annotation map[string]string) error { + ns := builder.ForNamespace(namespace).Result() + ns.ObjectMeta.Annotations = annotation + _, err := client.ClientGo.CoreV1().Namespaces().Create(ctx, ns, metav1.CreateOptions{}) + if apierrors.IsAlreadyExists(err) { + return nil + } + return err +} + func GetNamespace(ctx context.Context, client TestClient, namespace string) (*corev1api.Namespace, error) { return client.ClientGo.CoreV1().Namespaces().Get(ctx, namespace, metav1.GetOptions{}) } diff --git a/test/e2e/util/k8s/rbac.go b/test/e2e/util/k8s/rbac.go new file mode 100644 index 000000000..7486e8761 --- /dev/null +++ b/test/e2e/util/k8s/rbac.go @@ -0,0 +1,114 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package k8s + +import ( + "context" + "fmt" + "strings" + + "github.com/pkg/errors" + v1 "k8s.io/api/rbac/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +func CreateRBACWithBindingSA(ctx context.Context, client TestClient, namespace string, serviceaccount string, clusterrole string, clusterrolebinding string) error { + role := &v1.ClusterRole{ + ObjectMeta: metav1.ObjectMeta{ + Name: clusterrole, + }, + } + + _, err = client.ClientGo.RbacV1().ClusterRoles().Create(ctx, role, metav1.CreateOptions{}) + + if err != nil && !apierrors.IsAlreadyExists(err) { + return err + } + + //creating role binding and binding it to the test service account + rolebinding := &v1.ClusterRoleBinding{ + ObjectMeta: metav1.ObjectMeta{ + Name: clusterrolebinding, + }, + Subjects: []v1.Subject{ + { + Kind: "ServiceAccount", + Name: serviceaccount, + Namespace: namespace, + }, + }, + RoleRef: v1.RoleRef{ + Kind: "ClusterRole", + Name: clusterrole, + }, + } + + _, err = client.ClientGo.RbacV1().ClusterRoleBindings().Create(ctx, rolebinding, metav1.CreateOptions{}) + + if err != nil && !apierrors.IsAlreadyExists(err) { + return err + } + + return nil +} + +func GetClusterRole(ctx context.Context, client TestClient, role string) (*v1.ClusterRole, error) { + return client.ClientGo.RbacV1().ClusterRoles().Get(ctx, role, metav1.GetOptions{}) +} + +func GetClusterRoleBinding(ctx context.Context, client TestClient, rolebinding string) (*v1.ClusterRoleBinding, error) { + return client.ClientGo.RbacV1().ClusterRoleBindings().Get(ctx, rolebinding, metav1.GetOptions{}) +} + +func CleanupClusterRole(ctx context.Context, client TestClient, nsBaseName string) error { + + clusterroles, err := client.ClientGo.RbacV1().ClusterRoles().List(ctx, metav1.ListOptions{}) + if err != nil { + return errors.Wrap(err, "Could not retrieve clusterroles") + } + + for _, checkClusterRole := range clusterroles.Items { + if strings.HasPrefix(checkClusterRole.Name, "clusterrole-"+nsBaseName) { + fmt.Printf("Cleaning up clusterrole %s\n", checkClusterRole.Name) + err = client.ClientGo.RbacV1().ClusterRoles().Delete(ctx, checkClusterRole.Name, metav1.DeleteOptions{}) + if err != nil { + return errors.Wrapf(err, "Could not delete clusterrole %s", checkClusterRole.Name) + } + } + } + return nil +} + +func CleanupClusterRoleBinding(ctx context.Context, client TestClient, nsBaseName string) error { + + clusterrolebindings, err := client.ClientGo.RbacV1().ClusterRoleBindings().List(ctx, metav1.ListOptions{}) + if err != nil { + return errors.Wrap(err, "Could not retrieve clusterrolebindings") + } + + for _, checkClusterRoleBinding := range clusterrolebindings.Items { + if strings.HasPrefix(checkClusterRoleBinding.Name, "clusterrolebinding-"+nsBaseName) { + fmt.Printf("Cleaning up clusterrolebinding %s\n", checkClusterRoleBinding.Name) + err = client.ClientGo.RbacV1().ClusterRoleBindings().Delete(ctx, checkClusterRoleBinding.Name, metav1.DeleteOptions{}) + if err != nil { + return errors.Wrapf(err, "Could not delete clusterrolebinding %s", checkClusterRoleBinding.Name) + } + } + } + return nil +} diff --git a/test/e2e/util/k8s/serviceaccount.go b/test/e2e/util/k8s/serviceaccount.go index c7274e864..6f949e856 100644 --- a/test/e2e/util/k8s/serviceaccount.go +++ b/test/e2e/util/k8s/serviceaccount.go @@ -64,3 +64,23 @@ func PatchServiceAccountWithImagePullSecret(ctx context.Context, client TestClie } return nil } + +func CreateServiceAccount(ctx context.Context, client TestClient, namespace string, serviceaccount string) error { + sa := &corev1.ServiceAccount{ + ObjectMeta: metav1.ObjectMeta{ + Name: serviceaccount, + }, + AutomountServiceAccountToken: nil, + } + + _, err = client.ClientGo.CoreV1().ServiceAccounts(namespace).Create(ctx, sa, metav1.CreateOptions{}) + + if err != nil && !apierrors.IsAlreadyExists(err) { + return err + } + return nil +} + +func GetServiceAccount(ctx context.Context, client TestClient, namespace string, serviceAccount string) (*corev1.ServiceAccount, error) { + return client.ClientGo.CoreV1().ServiceAccounts(namespace).Get(ctx, serviceAccount, metav1.GetOptions{}) +} From 37f8be093f86f8f2b4fbf2d4e2745e462d5d2eab Mon Sep 17 00:00:00 2001 From: Abigail McCarthy <20771501+a-mccarthy@users.noreply.github.com> Date: Thu, 16 Dec 2021 10:54:11 -0500 Subject: [PATCH 078/136] =?UTF-8?q?Update=20code=20standards=20to=20direct?= =?UTF-8?q?=20folks=20to=20create=20changelogs=20on=20release=E2=80=A6=20(?= =?UTF-8?q?#4443)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update code standards to direct folks to create changelogs on release branches * Fix wording Signed-off-by: Abigail McCarthy --- site/content/docs/main/code-standards.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/site/content/docs/main/code-standards.md b/site/content/docs/main/code-standards.md index 6e18f0c6d..a6dfa12c6 100644 --- a/site/content/docs/main/code-standards.md +++ b/site/content/docs/main/code-standards.md @@ -20,11 +20,11 @@ changelog. Add that to the PR. -If a PR does not warrant a changelog, the CI check for a changelog can be skipped by applying a `changelog-not-required` label on the PR. +If a PR does not warrant a changelog, the CI check for a changelog can be skipped by applying a `changelog-not-required` label on the PR. If you are making a PR on a release branch, you should still make a new file in the `changelogs/unreleased` folder on the release branch for your change. -## Copyright header +## Copyright header -Whenever a source code file is being modified, the copyright notice should be updated to our standard copyright notice. That is, it should read “Copyright the Velero contributors.” +Whenever a source code file is being modified, the copyright notice should be updated to our standard copyright notice. That is, it should read “Copyright the Velero contributors.” For new files, the entire copyright and license header must be added. @@ -61,7 +61,7 @@ Example: metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" corev1client "k8s.io/client-go/kubernetes/typed/core/v1" corev1listers "k8s.io/client-go/listers/core/v1" - + velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" velerov1client "github.com/vmware-tanzu/velero/pkg/generated/clientset/versioned/typed/velero/v1" ) From 7ab4bfc632517c5f5485b33296cb8bb0f54be05f Mon Sep 17 00:00:00 2001 From: Xun Jiang Date: Fri, 17 Dec 2021 09:40:24 +0800 Subject: [PATCH 079/136] Revert "Migrate backup sync controller from code-generator to kubebuilder (#4423)" This reverts commit 5aaeb3ebbee05d461957dcb80c3c4d146aa82f92. --- changelogs/unreleased/4423-jxun | 1 - pkg/cmd/server/server.go | 46 +- pkg/controller/backup_sync_controller.go | 171 ++-- pkg/controller/backup_sync_controller_test.go | 943 +++++++++--------- 4 files changed, 617 insertions(+), 544 deletions(-) delete mode 100644 changelogs/unreleased/4423-jxun diff --git a/changelogs/unreleased/4423-jxun b/changelogs/unreleased/4423-jxun deleted file mode 100644 index d2274476e..000000000 --- a/changelogs/unreleased/4423-jxun +++ /dev/null @@ -1 +0,0 @@ -Migrate backup sync controller from code-generator to kubebuilder. \ No newline at end of file diff --git a/pkg/cmd/server/server.go b/pkg/cmd/server/server.go index cd5617e7a..5a00648c4 100644 --- a/pkg/cmd/server/server.go +++ b/pkg/cmd/server/server.go @@ -589,6 +589,28 @@ func (s *server) runControllers(defaultVolumeSnapshotLocations map[string]string csiVSLister, csiVSCLister := s.getCSISnapshotListers() + backupSyncControllerRunInfo := func() controllerRunInfo { + backupSyncContoller := controller.NewBackupSyncController( + s.veleroClient.VeleroV1(), + s.mgr.GetClient(), + s.veleroClient.VeleroV1(), + s.sharedInformerFactory.Velero().V1().Backups().Lister(), + s.config.backupSyncPeriod, + s.namespace, + s.csiSnapshotClient, + s.kubeClient, + s.config.defaultBackupLocation, + newPluginManager, + backupStoreGetter, + s.logger, + ) + + return controllerRunInfo{ + controller: backupSyncContoller, + numWorkers: defaultControllerWorkers, + } + } + backupTracker := controller.NewBackupTracker() backupControllerRunInfo := func() controllerRunInfo { @@ -747,6 +769,7 @@ func (s *server) runControllers(defaultVolumeSnapshotLocations map[string]string } enabledControllers := map[string]func() controllerRunInfo{ + controller.BackupSync: backupSyncControllerRunInfo, controller.Backup: backupControllerRunInfo, controller.Schedule: scheduleControllerRunInfo, controller.GarbageCollection: gcControllerRunInfo, @@ -758,7 +781,6 @@ func (s *server) runControllers(defaultVolumeSnapshotLocations map[string]string enabledRuntimeControllers := make(map[string]struct{}) enabledRuntimeControllers[controller.ServerStatusRequest] = struct{}{} enabledRuntimeControllers[controller.DownloadRequest] = struct{}{} - enabledRuntimeControllers[controller.BackupSync] = struct{}{} if s.config.restoreOnly { s.logger.Info("Restore only mode - not starting the backup, schedule, delete-backup, or GC controllers") @@ -849,28 +871,6 @@ func (s *server) runControllers(defaultVolumeSnapshotLocations map[string]string } } - if _, ok := enabledRuntimeControllers[controller.BackupSync]; ok { - syncPeriod := s.config.backupSyncPeriod - if syncPeriod <= 0 { - syncPeriod = time.Minute - } - - r := controller.BackupSyncReconciler{ - Client: s.mgr.GetClient(), - PodVolumeBackupClient: s.veleroClient.VeleroV1(), - BackupLister: s.sharedInformerFactory.Velero().V1().Backups().Lister(), - BackupClient: s.veleroClient.VeleroV1(), - Namespace: s.namespace, - DefaultBackupSyncPeriod: syncPeriod, - NewPluginManager: newPluginManager, - BackupStoreGetter: backupStoreGetter, - Logger: s.logger, - } - if err := r.SetupWithManager(s.mgr); err != nil { - s.logger.Fatal(err, " unable to create controller ", "controller ", controller.BackupSync) - } - } - // TODO(2.0): presuming all controllers and resources are converted to runtime-controller // by v2.0, the block from this line and including the `s.mgr.Start() will be // deprecated, since the manager auto-starts all the caches. Until then, we need to start the diff --git a/pkg/controller/backup_sync_controller.go b/pkg/controller/backup_sync_controller.go index ea2378dd7..aeb848ac0 100644 --- a/pkg/controller/backup_sync_controller.go +++ b/pkg/controller/backup_sync_controller.go @@ -1,5 +1,5 @@ /* -Copyright The Velero Contributors. +Copyright 2020 the Velero contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -20,12 +20,14 @@ import ( "context" "time" + snapshotterClientSet "github.com/kubernetes-csi/external-snapshotter/client/v4/clientset/versioned" "github.com/pkg/errors" "github.com/sirupsen/logrus" kuberrs "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/client-go/kubernetes" "github.com/vmware-tanzu/velero/internal/storage" velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" @@ -36,49 +38,114 @@ import ( "github.com/vmware-tanzu/velero/pkg/persistence" "github.com/vmware-tanzu/velero/pkg/plugin/clientmgmt" - ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" ) -type BackupSyncReconciler struct { - Client client.Client - PodVolumeBackupClient velerov1client.PodVolumeBackupsGetter - BackupLister velerov1listers.BackupLister - BackupClient velerov1client.BackupsGetter - Namespace string - DefaultBackupSyncPeriod time.Duration - NewPluginManager func(logrus.FieldLogger) clientmgmt.Manager - BackupStoreGetter persistence.ObjectBackupStoreGetter - Logger logrus.FieldLogger +type backupSyncController struct { + *genericController + + backupClient velerov1client.BackupsGetter + kbClient client.Client + podVolumeBackupClient velerov1client.PodVolumeBackupsGetter + backupLister velerov1listers.BackupLister + csiSnapshotClient *snapshotterClientSet.Clientset + kubeClient kubernetes.Interface + namespace string + defaultBackupLocation string + defaultBackupSyncPeriod time.Duration + newPluginManager func(logrus.FieldLogger) clientmgmt.Manager + backupStoreGetter persistence.ObjectBackupStoreGetter } -func (b *BackupSyncReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - log := b.Logger.WithField("controller", BackupSync) - log.Debug("Checking for existing backup storage locations to sync into cluster.") +func NewBackupSyncController( + backupClient velerov1client.BackupsGetter, + kbClient client.Client, + podVolumeBackupClient velerov1client.PodVolumeBackupsGetter, + backupLister velerov1listers.BackupLister, + syncPeriod time.Duration, + namespace string, + csiSnapshotClient *snapshotterClientSet.Clientset, + kubeClient kubernetes.Interface, + defaultBackupLocation string, + newPluginManager func(logrus.FieldLogger) clientmgmt.Manager, + backupStoreGetter persistence.ObjectBackupStoreGetter, + logger logrus.FieldLogger, +) Interface { + if syncPeriod <= 0 { + syncPeriod = time.Minute + } + logger.Infof("Backup sync period is %v", syncPeriod) - locationList, err := storage.ListBackupStorageLocations(ctx, b.Client, b.Namespace) + c := &backupSyncController{ + genericController: newGenericController(BackupSync, logger), + backupClient: backupClient, + kbClient: kbClient, + podVolumeBackupClient: podVolumeBackupClient, + namespace: namespace, + defaultBackupLocation: defaultBackupLocation, + defaultBackupSyncPeriod: syncPeriod, + backupLister: backupLister, + csiSnapshotClient: csiSnapshotClient, + kubeClient: kubeClient, + + // use variables to refer to these functions so they can be + // replaced with fakes for testing. + newPluginManager: newPluginManager, + backupStoreGetter: backupStoreGetter, + } + + c.resyncFunc = c.run + c.resyncPeriod = 30 * time.Second + + return c +} + +// orderedBackupLocations returns a new slice with the default backup location first (if it exists), +// followed by the rest of the locations in no particular order. +func orderedBackupLocations(locationList *velerov1api.BackupStorageLocationList, defaultLocationName string) []velerov1api.BackupStorageLocation { + var result []velerov1api.BackupStorageLocation + + for i := range locationList.Items { + if locationList.Items[i].Name == defaultLocationName { + // put the default location first + result = append(result, locationList.Items[i]) + // append everything before the default + result = append(result, locationList.Items[:i]...) + // append everything after the default + result = append(result, locationList.Items[i+1:]...) + + return result + } + } + + return locationList.Items +} + +func (c *backupSyncController) run() { + c.logger.Debug("Checking for existing backup storage locations to sync into cluster") + + locationList, err := storage.ListBackupStorageLocations(context.Background(), c.kbClient, c.namespace) if err != nil { - log.WithError(err).Error("No backup storage locations found, at least one is required") - return ctrl.Result{}, err + c.logger.WithError(err).Error("No backup storage locations found, at least one is required") + return } // sync the default backup storage location first, if it exists - defaultBackupLocationName := "" for _, location := range locationList.Items { if location.Spec.Default { - defaultBackupLocationName = location.Name + c.defaultBackupLocation = location.Name break } } - locations := orderedBackupLocations(&locationList, defaultBackupLocationName) + locations := orderedBackupLocations(&locationList, c.defaultBackupLocation) - pluginManager := b.NewPluginManager(log) + pluginManager := c.newPluginManager(c.logger) defer pluginManager.CleanupClients() for _, location := range locations { - log := log.WithField("backupLocation", location.Name) + log := c.logger.WithField("backupLocation", location.Name) - syncPeriod := b.DefaultBackupSyncPeriod + syncPeriod := c.defaultBackupSyncPeriod if location.Spec.BackupSyncPeriod != nil { syncPeriod = location.Spec.BackupSyncPeriod.Duration if syncPeriod == 0 { @@ -88,7 +155,7 @@ func (b *BackupSyncReconciler) Reconcile(ctx context.Context, req ctrl.Request) if syncPeriod < 0 { log.Debug("Backup sync period must be non-negative") - syncPeriod = b.DefaultBackupSyncPeriod + syncPeriod = c.defaultBackupSyncPeriod } } @@ -103,7 +170,7 @@ func (b *BackupSyncReconciler) Reconcile(ctx context.Context, req ctrl.Request) log.Debug("Checking backup location for backups to sync into cluster") - backupStore, err := b.BackupStoreGetter.Get(&location, pluginManager, log) + backupStore, err := c.backupStoreGetter.Get(&location, pluginManager, log) if err != nil { log.WithError(err).Error("Error getting backup store for this location") continue @@ -119,7 +186,7 @@ func (b *BackupSyncReconciler) Reconcile(ctx context.Context, req ctrl.Request) log.WithField("backupCount", len(backupStoreBackups)).Debug("Got backups from backup store") // get a list of all the backups that exist as custom resources in the cluster - clusterBackups, err := b.BackupLister.Backups(b.Namespace).List(labels.Everything()) + clusterBackups, err := c.backupLister.Backups(c.namespace).List(labels.Everything()) if err != nil { log.WithError(errors.WithStack(err)).Error("Error getting backups from cluster, proceeding with sync into cluster") } else { @@ -150,7 +217,7 @@ func (b *BackupSyncReconciler) Reconcile(ctx context.Context, req ctrl.Request) continue } - backup.Namespace = b.Namespace + backup.Namespace = c.namespace backup.ResourceVersion = "" // update the StorageLocation field and label since the name of the location @@ -163,7 +230,7 @@ func (b *BackupSyncReconciler) Reconcile(ctx context.Context, req ctrl.Request) backup.Labels[velerov1api.StorageLocationLabel] = label.GetValidName(backup.Spec.StorageLocation) // attempt to create backup custom resource via API - backup, err = b.BackupClient.Backups(backup.Namespace).Create(ctx, backup, metav1.CreateOptions{}) + backup, err = c.backupClient.Backups(backup.Namespace).Create(context.TODO(), backup, metav1.CreateOptions{}) switch { case err != nil && kuberrs.IsAlreadyExists(err): log.Debug("Backup already exists in cluster") @@ -200,7 +267,7 @@ func (b *BackupSyncReconciler) Reconcile(ctx context.Context, req ctrl.Request) podVolumeBackup.Namespace = backup.Namespace podVolumeBackup.ResourceVersion = "" - _, err = b.PodVolumeBackupClient.PodVolumeBackups(backup.Namespace).Create(ctx, podVolumeBackup, metav1.CreateOptions{}) + _, err = c.podVolumeBackupClient.PodVolumeBackups(backup.Namespace).Create(context.TODO(), podVolumeBackup, metav1.CreateOptions{}) switch { case err != nil && kuberrs.IsAlreadyExists(err): log.Debug("Pod volume backup already exists in cluster") @@ -227,7 +294,7 @@ func (b *BackupSyncReconciler) Reconcile(ctx context.Context, req ctrl.Request) for _, snapCont := range snapConts { // TODO: Reset ResourceVersion prior to persisting VolumeSnapshotContents snapCont.ResourceVersion = "" - err := b.Client.Create(ctx, snapCont, &client.CreateOptions{}) + created, err := c.csiSnapshotClient.SnapshotV1beta1().VolumeSnapshotContents().Create(context.TODO(), snapCont, metav1.CreateOptions{}) switch { case err != nil && kuberrs.IsAlreadyExists(err): log.Debugf("volumesnapshotcontent %s already exists in cluster", snapCont.Name) @@ -236,45 +303,36 @@ func (b *BackupSyncReconciler) Reconcile(ctx context.Context, req ctrl.Request) log.WithError(errors.WithStack(err)).Errorf("Error syncing volumesnapshotcontent %s into cluster", snapCont.Name) continue default: - log.Infof("Created CSI volumesnapshotcontent %s", snapCont.Name) + log.Infof("Created CSI volumesnapshotcontent %s", created.Name) } } } } - b.deleteOrphanedBackups(ctx, location.Name, backupStoreBackups, log) + c.deleteOrphanedBackups(location.Name, backupStoreBackups, log) // update the location's last-synced time field statusPatch := client.MergeFrom(location.DeepCopy()) location.Status.LastSyncedTime = &metav1.Time{Time: time.Now().UTC()} - if err := b.Client.Status().Patch(ctx, &location, statusPatch); err != nil { + if err := c.kbClient.Status().Patch(context.Background(), &location, statusPatch); err != nil { log.WithError(errors.WithStack(err)).Error("Error patching backup location's last-synced time") continue } } - - return ctrl.Result{Requeue: true, RequeueAfter: time.Second * 30}, nil -} - -func (b *BackupSyncReconciler) SetupWithManager(mgr ctrl.Manager) error { - return ctrl.NewControllerManagedBy(mgr). - For(&velerov1api.Backup{}). - Complete(b) } // deleteOrphanedBackups deletes backup objects (CRDs) from Kubernetes that have the specified location // and a phase of Completed, but no corresponding backup in object storage. -func (b *BackupSyncReconciler) deleteOrphanedBackups(ctx context.Context, locationName string, backupStoreBackups sets.String, log logrus.FieldLogger) { +func (c *backupSyncController) deleteOrphanedBackups(locationName string, backupStoreBackups sets.String, log logrus.FieldLogger) { locationSelector := labels.Set(map[string]string{ velerov1api.StorageLocationLabel: label.GetValidName(locationName), }).AsSelector() - backups, err := b.BackupLister.Backups(b.Namespace).List(locationSelector) + backups, err := c.backupLister.Backups(c.namespace).List(locationSelector) if err != nil { log.WithError(errors.WithStack(err)).Error("Error listing backups from cluster") return } - if len(backups) == 0 { return } @@ -285,31 +343,10 @@ func (b *BackupSyncReconciler) deleteOrphanedBackups(ctx context.Context, locati continue } - if err := b.BackupClient.Backups(backup.Namespace).Delete(ctx, backup.Name, metav1.DeleteOptions{}); err != nil { + if err := c.backupClient.Backups(backup.Namespace).Delete(context.TODO(), backup.Name, metav1.DeleteOptions{}); err != nil { log.WithError(errors.WithStack(err)).Error("Error deleting orphaned backup from cluster") } else { log.Debug("Deleted orphaned backup from cluster") } } } - -// orderedBackupLocations returns a new slice with the default backup location first (if it exists), -// followed by the rest of the locations in no particular order. -func orderedBackupLocations(locationList *velerov1api.BackupStorageLocationList, defaultLocationName string) []velerov1api.BackupStorageLocation { - var result []velerov1api.BackupStorageLocation - - for i := range locationList.Items { - if locationList.Items[i].Name == defaultLocationName { - // put the default location first - result = append(result, locationList.Items[i]) - // append everything before the default - result = append(result, locationList.Items[:i]...) - // append everything after the default - result = append(result, locationList.Items[i+1:]...) - - return result - } - } - - return locationList.Items -} diff --git a/pkg/controller/backup_sync_controller_test.go b/pkg/controller/backup_sync_controller_test.go index 43274f70e..0b615bdb5 100644 --- a/pkg/controller/backup_sync_controller_test.go +++ b/pkg/controller/backup_sync_controller_test.go @@ -18,23 +18,17 @@ package controller import ( "context" - "fmt" - "reflect" + "testing" "time" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - "github.com/sirupsen/logrus" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation" core "k8s.io/client-go/testing" - ctrl "sigs.k8s.io/controller-runtime" - ctrlfake "sigs.k8s.io/controller-runtime/pkg/client/fake" - velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" "github.com/vmware-tanzu/velero/pkg/builder" "github.com/vmware-tanzu/velero/pkg/generated/clientset/versioned/fake" @@ -113,279 +107,263 @@ func defaultLocationsListWithLongerLocationName(namespace string) []*velerov1api } } -func getDeleteActions(actions []core.Action) []core.Action { - var deleteActions []core.Action - for _, action := range actions { - if action.GetVerb() == "delete" { - deleteActions = append(deleteActions, action) - } - } - return deleteActions -} - -func numBackups(c *fake.Clientset, ns string) (int, error) { - existingK8SBackups, err := c.VeleroV1().Backups(ns).List(context.TODO(), metav1.ListOptions{}) - if err != nil { - return 0, err +func TestBackupSyncControllerRun(t *testing.T) { + type cloudBackupData struct { + backup *velerov1api.Backup + podVolumeBackups []*velerov1api.PodVolumeBackup } - return len(existingK8SBackups.Items), nil -} + tests := []struct { + name string + namespace string + locations []*velerov1api.BackupStorageLocation + cloudBuckets map[string][]*cloudBackupData + existingBackups []*velerov1api.Backup + existingPodVolumeBackups []*velerov1api.PodVolumeBackup + longLocationNameEnabled bool + }{ + { + name: "no cloud backups", + }, + { + name: "normal case", + namespace: "ns-1", + locations: defaultLocationsList("ns-1"), + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-2").Result(), + }, + }, + "bucket-2": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-3").Result(), + }, + }, + }, + }, + { + name: "all synced backups get created in Velero server's namespace", + namespace: "velero", + locations: defaultLocationsList("velero"), + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-2").Result(), + }, + }, + "bucket-2": { + &cloudBackupData{ + backup: builder.ForBackup("ns-2", "backup-3").Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("velero", "backup-4").Result(), + }, + }, + }, + }, + { + name: "new backups get synced when some cloud backups already exist in the cluster", + namespace: "ns-1", + locations: defaultLocationsList("ns-1"), + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-2").Result(), + }, + }, + "bucket-2": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-3").Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-4").Result(), + }, + }, + }, + existingBackups: []*velerov1api.Backup{ + // add a label to each existing backup so we can differentiate it from the cloud + // backup during verification + builder.ForBackup("ns-1", "backup-1").StorageLocation("location-1").ObjectMeta(builder.WithLabels("i-exist", "true")).Result(), + builder.ForBackup("ns-1", "backup-3").StorageLocation("location-2").ObjectMeta(builder.WithLabels("i-exist", "true")).Result(), + }, + }, + { + name: "existing backups without a StorageLocation get it filled in", + namespace: "ns-1", + locations: defaultLocationsList("ns-1"), + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").Result(), + }, + }, + }, + existingBackups: []*velerov1api.Backup{ + // add a label to each existing backup so we can differentiate it from the cloud + // backup during verification + builder.ForBackup("ns-1", "backup-1").ObjectMeta(builder.WithLabels("i-exist", "true")).StorageLocation("location-1").Result(), + }, + }, + { + name: "backup storage location names and labels get updated", + namespace: "ns-1", + locations: defaultLocationsList("ns-1"), + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").StorageLocation("foo").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "foo")).Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-2").Result(), + }, + }, + "bucket-2": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-3").StorageLocation("bar").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "bar")).Result(), + }, + }, + }, + }, + { + name: "backup storage location names and labels get updated with location name greater than 63 chars", + namespace: "ns-1", + locations: defaultLocationsListWithLongerLocationName("ns-1"), + longLocationNameEnabled: true, + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").StorageLocation("foo").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "foo")).Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-2").Result(), + }, + }, + "bucket-2": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-3").StorageLocation("bar").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "bar")).Result(), + }, + }, + }, + }, + { + name: "all synced backups and pod volume backups get created in Velero server's namespace", + namespace: "ns-1", + locations: defaultLocationsList("ns-1"), + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").Result(), + podVolumeBackups: []*velerov1api.PodVolumeBackup{ + builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), + }, + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-2").Result(), + podVolumeBackups: []*velerov1api.PodVolumeBackup{ + builder.ForPodVolumeBackup("ns-1", "pvb-2").Result(), + }, + }, + }, + "bucket-2": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-3").Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-4").Result(), + podVolumeBackups: []*velerov1api.PodVolumeBackup{ + builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), + builder.ForPodVolumeBackup("ns-1", "pvb-2").Result(), + builder.ForPodVolumeBackup("ns-1", "pvb-3").Result(), + }, + }, + }, + }, + }, + { + name: "new pod volume backups get synched when some pod volume backups already exist in the cluster", + namespace: "ns-1", + locations: defaultLocationsList("ns-1"), + cloudBuckets: map[string][]*cloudBackupData{ + "bucket-1": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-1").Result(), + podVolumeBackups: []*velerov1api.PodVolumeBackup{ + builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), + }, + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-2").Result(), + podVolumeBackups: []*velerov1api.PodVolumeBackup{ + builder.ForPodVolumeBackup("ns-1", "pvb-3").Result(), + }, + }, + }, + "bucket-2": { + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-3").Result(), + }, + &cloudBackupData{ + backup: builder.ForBackup("ns-1", "backup-4").Result(), + podVolumeBackups: []*velerov1api.PodVolumeBackup{ + builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), + builder.ForPodVolumeBackup("ns-1", "pvb-5").Result(), + builder.ForPodVolumeBackup("ns-1", "pvb-6").Result(), + }, + }, + }, + }, + existingPodVolumeBackups: []*velerov1api.PodVolumeBackup{ + builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), + builder.ForPodVolumeBackup("ns-1", "pvb-2").Result(), + }, + }, + } -var _ = Describe("Backup Sync Reconciler", func() { - It("Test Backup Sync Reconciler basic function", func() { - type cloudBackupData struct { - backup *velerov1api.Backup - podVolumeBackups []*velerov1api.PodVolumeBackup - } - - tests := []struct { - name string - namespace string - locations []*velerov1api.BackupStorageLocation - cloudBuckets map[string][]*cloudBackupData - existingBackups []*velerov1api.Backup - existingPodVolumeBackups []*velerov1api.PodVolumeBackup - longLocationNameEnabled bool - }{ - { - name: "no cloud backups", - namespace: "ns-1", - locations: defaultLocationsList("ns-1"), - }, - { - name: "normal case", - namespace: "ns-1", - locations: defaultLocationsList("ns-1"), - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-2").Result(), - }, - }, - "bucket-2": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-3").Result(), - }, - }, - }, - }, - { - name: "all synced backups get created in Velero server's namespace", - namespace: "velero", - locations: defaultLocationsList("velero"), - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-2").Result(), - }, - }, - "bucket-2": { - &cloudBackupData{ - backup: builder.ForBackup("ns-2", "backup-3").Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("velero", "backup-4").Result(), - }, - }, - }, - }, - { - name: "new backups get synced when some cloud backups already exist in the cluster", - namespace: "ns-1", - locations: defaultLocationsList("ns-1"), - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-2").Result(), - }, - }, - "bucket-2": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-3").Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-4").Result(), - }, - }, - }, - existingBackups: []*velerov1api.Backup{ - // add a label to each existing backup so we can differentiate it from the cloud - // backup during verification - builder.ForBackup("ns-1", "backup-1").StorageLocation("location-1").ObjectMeta(builder.WithLabels("i-exist", "true")).Result(), - builder.ForBackup("ns-1", "backup-3").StorageLocation("location-2").ObjectMeta(builder.WithLabels("i-exist", "true")).Result(), - }, - }, - { - name: "existing backups without a StorageLocation get it filled in", - namespace: "ns-1", - locations: defaultLocationsList("ns-1"), - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").Result(), - }, - }, - }, - existingBackups: []*velerov1api.Backup{ - // add a label to each existing backup so we can differentiate it from the cloud - // backup during verification - builder.ForBackup("ns-1", "backup-1").ObjectMeta(builder.WithLabels("i-exist", "true")).StorageLocation("location-1").Result(), - }, - }, - { - name: "backup storage location names and labels get updated", - namespace: "ns-1", - locations: defaultLocationsList("ns-1"), - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").StorageLocation("foo").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "foo")).Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-2").Result(), - }, - }, - "bucket-2": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-3").StorageLocation("bar").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "bar")).Result(), - }, - }, - }, - }, - { - name: "backup storage location names and labels get updated with location name greater than 63 chars", - namespace: "ns-1", - locations: defaultLocationsListWithLongerLocationName("ns-1"), - longLocationNameEnabled: true, - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").StorageLocation("foo").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "foo")).Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-2").Result(), - }, - }, - "bucket-2": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-3").StorageLocation("bar").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "bar")).Result(), - }, - }, - }, - }, - { - name: "all synced backups and pod volume backups get created in Velero server's namespace", - namespace: "ns-1", - locations: defaultLocationsList("ns-1"), - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").Result(), - podVolumeBackups: []*velerov1api.PodVolumeBackup{ - builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), - }, - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-2").Result(), - podVolumeBackups: []*velerov1api.PodVolumeBackup{ - builder.ForPodVolumeBackup("ns-1", "pvb-2").Result(), - }, - }, - }, - "bucket-2": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-3").Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-4").Result(), - podVolumeBackups: []*velerov1api.PodVolumeBackup{ - builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), - builder.ForPodVolumeBackup("ns-1", "pvb-2").Result(), - builder.ForPodVolumeBackup("ns-1", "pvb-3").Result(), - }, - }, - }, - }, - }, - { - name: "new pod volume backups get synched when some pod volume backups already exist in the cluster", - namespace: "ns-1", - locations: defaultLocationsList("ns-1"), - cloudBuckets: map[string][]*cloudBackupData{ - "bucket-1": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-1").Result(), - podVolumeBackups: []*velerov1api.PodVolumeBackup{ - builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), - }, - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-2").Result(), - podVolumeBackups: []*velerov1api.PodVolumeBackup{ - builder.ForPodVolumeBackup("ns-1", "pvb-3").Result(), - }, - }, - }, - "bucket-2": { - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-3").Result(), - }, - &cloudBackupData{ - backup: builder.ForBackup("ns-1", "backup-4").Result(), - podVolumeBackups: []*velerov1api.PodVolumeBackup{ - builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), - builder.ForPodVolumeBackup("ns-1", "pvb-5").Result(), - builder.ForPodVolumeBackup("ns-1", "pvb-6").Result(), - }, - }, - }, - }, - existingPodVolumeBackups: []*velerov1api.PodVolumeBackup{ - builder.ForPodVolumeBackup("ns-1", "pvb-1").Result(), - builder.ForPodVolumeBackup("ns-1", "pvb-2").Result(), - }, - }, - } - - for _, test := range tests { + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { var ( client = fake.NewSimpleClientset() + fakeClient = velerotest.NewFakeControllerRuntimeClient(t) sharedInformers = informers.NewSharedInformerFactory(client, 0) pluginManager = &pluginmocks.Manager{} backupStores = make(map[string]*persistencemocks.BackupStore) ) + c := NewBackupSyncController( + client.VeleroV1(), + fakeClient, + client.VeleroV1(), + sharedInformers.Velero().V1().Backups().Lister(), + time.Duration(0), + test.namespace, + nil, // csiSnapshotClient + nil, // kubeClient + "", + func(logrus.FieldLogger) clientmgmt.Manager { return pluginManager }, + NewFakeObjectBackupStoreGetter(backupStores), + velerotest.NewLogger(), + ).(*backupSyncController) + pluginManager.On("CleanupClients").Return(nil) - r := BackupSyncReconciler{ - Client: ctrlfake.NewClientBuilder().Build(), - BackupClient: client.VeleroV1(), - PodVolumeBackupClient: client.VeleroV1(), - BackupLister: sharedInformers.Velero().V1().Backups().Lister(), - Namespace: test.namespace, - DefaultBackupSyncPeriod: time.Second * 10, - NewPluginManager: func(logrus.FieldLogger) clientmgmt.Manager { return pluginManager }, - BackupStoreGetter: NewFakeObjectBackupStoreGetter(backupStores), - Logger: velerotest.NewLogger(), - } for _, location := range test.locations { - Expect(r.Client.Create(ctx, location)).ShouldNot(HaveOccurred()) + require.NoError(t, fakeClient.Create(context.Background(), location)) backupStores[location.Name] = &persistencemocks.BackupStore{} } for _, location := range test.locations { backupStore, ok := backupStores[location.Name] - Expect(ok).To(BeTrue(), "no mock backup store for location %s", location.Name) + require.True(t, ok, "no mock backup store for location %s", location.Name) var backupNames []string for _, bucket := range test.cloudBuckets[location.Spec.ObjectStorage.Bucket] { @@ -397,26 +375,21 @@ var _ = Describe("Backup Sync Reconciler", func() { } for _, existingBackup := range test.existingBackups { - Expect(sharedInformers.Velero().V1().Backups().Informer().GetStore().Add(existingBackup)).ShouldNot(HaveOccurred()) + require.NoError(t, sharedInformers.Velero().V1().Backups().Informer().GetStore().Add(existingBackup)) _, err := client.VeleroV1().Backups(test.namespace).Create(context.TODO(), existingBackup, metav1.CreateOptions{}) - Expect(err).ShouldNot(HaveOccurred()) + require.NoError(t, err) } for _, existingPodVolumeBackup := range test.existingPodVolumeBackups { - Expect(sharedInformers.Velero().V1().PodVolumeBackups().Informer().GetStore().Add(existingPodVolumeBackup)).ShouldNot(HaveOccurred()) + require.NoError(t, sharedInformers.Velero().V1().PodVolumeBackups().Informer().GetStore().Add(existingPodVolumeBackup)) _, err := client.VeleroV1().PodVolumeBackups(test.namespace).Create(context.TODO(), existingPodVolumeBackup, metav1.CreateOptions{}) - Expect(err).ShouldNot(HaveOccurred()) + require.NoError(t, err) } client.ClearActions() - actualResult, err := r.Reconcile(ctx, ctrl.Request{ - NamespacedName: types.NamespacedName{Namespace: "ns-1"}, - }) - - Expect(actualResult).To(BeEquivalentTo(ctrl.Result{Requeue: true, RequeueAfter: 30 * time.Second})) - Expect(err).To(BeNil()) + c.run() for bucket, backupDataSet := range test.cloudBuckets { // figure out which location this bucket is for; we need this for verification @@ -428,12 +401,12 @@ var _ = Describe("Backup Sync Reconciler", func() { break } } - Expect(location).NotTo(BeNil()) + require.NotNil(t, location) // process the cloud backups for _, cloudBackupData := range backupDataSet { obj, err := client.VeleroV1().Backups(test.namespace).Get(context.TODO(), cloudBackupData.backup.Name, metav1.GetOptions{}) - Expect(err).To(BeNil()) + require.NoError(t, err) // did this cloud backup already exist in the cluster? var existing *velerov1api.Backup @@ -452,23 +425,23 @@ var _ = Describe("Backup Sync Reconciler", func() { expected := existing.DeepCopy() expected.Spec.StorageLocation = location.Name - Expect(expected).To(BeEquivalentTo(obj)) + assert.Equal(t, expected, obj) } else { // verify that the storage location field and label are set properly - Expect(location.Name).To(BeEquivalentTo(obj.Spec.StorageLocation)) + assert.Equal(t, location.Name, obj.Spec.StorageLocation) locationName := location.Name if test.longLocationNameEnabled { locationName = label.GetValidName(locationName) } - Expect(locationName).To(BeEquivalentTo(obj.Labels[velerov1api.StorageLocationLabel])) - Expect(len(obj.Labels[velerov1api.StorageLocationLabel]) <= validation.DNS1035LabelMaxLength).To(BeTrue()) + assert.Equal(t, locationName, obj.Labels[velerov1api.StorageLocationLabel]) + assert.Equal(t, true, len(obj.Labels[velerov1api.StorageLocationLabel]) <= validation.DNS1035LabelMaxLength) } // process the cloud pod volume backups for this backup, if any for _, podVolumeBackup := range cloudBackupData.podVolumeBackups { objPodVolumeBackup, err := client.VeleroV1().PodVolumeBackups(test.namespace).Get(context.TODO(), podVolumeBackup.Name, metav1.GetOptions{}) - Expect(err).ShouldNot(HaveOccurred()) + require.NoError(t, err) // did this cloud pod volume backup already exist in the cluster? var existingPodVolumeBackup *velerov1api.PodVolumeBackup @@ -483,160 +456,134 @@ var _ = Describe("Backup Sync Reconciler", func() { // if this cloud pod volume backup already exists in the cluster, make sure that what we get from the // client is the existing backup, not the cloud one. expected := existingPodVolumeBackup.DeepCopy() - Expect(expected).To(BeEquivalentTo(objPodVolumeBackup)) + assert.Equal(t, expected, objPodVolumeBackup) } } } } - } - }) + }) + } +} - It("Test deleting orphaned backups.", func() { - longLabelName := "the-really-long-location-name-that-is-much-more-than-63-characters" +func TestDeleteOrphanedBackups(t *testing.T) { + baseBuilder := func(name string) *builder.BackupBuilder { + return builder.ForBackup("ns-1", name).ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "default")) + } - baseBuilder := func(name string) *builder.BackupBuilder { - return builder.ForBackup("ns-1", name).ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "default")) - } + tests := []struct { + name string + cloudBackups sets.String + k8sBackups []*velerov1api.Backup + namespace string + expectedDeletes sets.String + }{ + { + name: "no overlapping backups", + namespace: "ns-1", + cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), + k8sBackups: []*velerov1api.Backup{ + baseBuilder("backupA").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backupB").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backupC").Phase(velerov1api.BackupPhaseCompleted).Result(), + }, + expectedDeletes: sets.NewString("backupA", "backupB", "backupC"), + }, + { + name: "some overlapping backups", + namespace: "ns-1", + cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), + k8sBackups: []*velerov1api.Backup{ + baseBuilder("backup-1").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-2").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-C").Phase(velerov1api.BackupPhaseCompleted).Result(), + }, + expectedDeletes: sets.NewString("backup-C"), + }, + { + name: "all overlapping backups", + namespace: "ns-1", + cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), + k8sBackups: []*velerov1api.Backup{ + baseBuilder("backup-1").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-2").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-3").Phase(velerov1api.BackupPhaseCompleted).Result(), + }, + expectedDeletes: sets.NewString(), + }, + { + name: "no overlapping backups but including backups that are not complete", + namespace: "ns-1", + cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), + k8sBackups: []*velerov1api.Backup{ + baseBuilder("backupA").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("Deleting").Phase(velerov1api.BackupPhaseDeleting).Result(), + baseBuilder("Failed").Phase(velerov1api.BackupPhaseFailed).Result(), + baseBuilder("FailedValidation").Phase(velerov1api.BackupPhaseFailedValidation).Result(), + baseBuilder("InProgress").Phase(velerov1api.BackupPhaseInProgress).Result(), + baseBuilder("New").Phase(velerov1api.BackupPhaseNew).Result(), + }, + expectedDeletes: sets.NewString("backupA"), + }, + { + name: "all overlapping backups and all backups that are not complete", + namespace: "ns-1", + cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), + k8sBackups: []*velerov1api.Backup{ + baseBuilder("backup-1").Phase(velerov1api.BackupPhaseFailed).Result(), + baseBuilder("backup-2").Phase(velerov1api.BackupPhaseFailedValidation).Result(), + baseBuilder("backup-3").Phase(velerov1api.BackupPhaseInProgress).Result(), + }, + expectedDeletes: sets.NewString(), + }, + { + name: "no completed backups in other locations are deleted", + namespace: "ns-1", + cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), + k8sBackups: []*velerov1api.Backup{ + baseBuilder("backup-1").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-2").Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-C").Phase(velerov1api.BackupPhaseCompleted).Result(), - tests := []struct { - name string - cloudBackups sets.String - k8sBackups []*velerov1api.Backup - namespace string - expectedDeletes sets.String - useLongBSLName bool - }{ - { - name: "no overlapping backups", - namespace: "ns-1", - cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), - k8sBackups: []*velerov1api.Backup{ - baseBuilder("backupA").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backupB").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backupC").Phase(velerov1api.BackupPhaseCompleted).Result(), - }, - expectedDeletes: sets.NewString("backupA", "backupB", "backupC"), + baseBuilder("backup-4").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "alternate")).Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-5").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "alternate")).Phase(velerov1api.BackupPhaseCompleted).Result(), + baseBuilder("backup-6").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "alternate")).Phase(velerov1api.BackupPhaseCompleted).Result(), }, - { - name: "some overlapping backups", - namespace: "ns-1", - cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), - k8sBackups: []*velerov1api.Backup{ - baseBuilder("backup-1").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-2").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-C").Phase(velerov1api.BackupPhaseCompleted).Result(), - }, - expectedDeletes: sets.NewString("backup-C"), - }, - { - name: "all overlapping backups", - namespace: "ns-1", - cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), - k8sBackups: []*velerov1api.Backup{ - baseBuilder("backup-1").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-2").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-3").Phase(velerov1api.BackupPhaseCompleted).Result(), - }, - expectedDeletes: sets.NewString(), - }, - { - name: "no overlapping backups but including backups that are not complete", - namespace: "ns-1", - cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), - k8sBackups: []*velerov1api.Backup{ - baseBuilder("backupA").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("Deleting").Phase(velerov1api.BackupPhaseDeleting).Result(), - baseBuilder("Failed").Phase(velerov1api.BackupPhaseFailed).Result(), - baseBuilder("FailedValidation").Phase(velerov1api.BackupPhaseFailedValidation).Result(), - baseBuilder("InProgress").Phase(velerov1api.BackupPhaseInProgress).Result(), - baseBuilder("New").Phase(velerov1api.BackupPhaseNew).Result(), - }, - expectedDeletes: sets.NewString("backupA"), - }, - { - name: "all overlapping backups and all backups that are not complete", - namespace: "ns-1", - cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), - k8sBackups: []*velerov1api.Backup{ - baseBuilder("backup-1").Phase(velerov1api.BackupPhaseFailed).Result(), - baseBuilder("backup-2").Phase(velerov1api.BackupPhaseFailedValidation).Result(), - baseBuilder("backup-3").Phase(velerov1api.BackupPhaseInProgress).Result(), - }, - expectedDeletes: sets.NewString(), - }, - { - name: "no completed backups in other locations are deleted", - namespace: "ns-1", - cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), - k8sBackups: []*velerov1api.Backup{ - baseBuilder("backup-1").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-2").Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-C").Phase(velerov1api.BackupPhaseCompleted).Result(), + expectedDeletes: sets.NewString("backup-C"), + }, + } - baseBuilder("backup-4").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "alternate")).Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-5").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "alternate")).Phase(velerov1api.BackupPhaseCompleted).Result(), - baseBuilder("backup-6").ObjectMeta(builder.WithLabels(velerov1api.StorageLocationLabel, "alternate")).Phase(velerov1api.BackupPhaseCompleted).Result(), - }, - expectedDeletes: sets.NewString("backup-C"), - }, - { - name: "some overlapping backups", - namespace: "ns-1", - cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), - k8sBackups: []*velerov1api.Backup{ - builder.ForBackup("ns-1", "backup-1"). - ObjectMeta( - builder.WithLabels(velerov1api.StorageLocationLabel, "the-really-long-location-name-that-is-much-more-than-63-c69e779"), - ). - Phase(velerov1api.BackupPhaseCompleted). - Result(), - builder.ForBackup("ns-1", "backup-2"). - ObjectMeta( - builder.WithLabels(velerov1api.StorageLocationLabel, "the-really-long-location-name-that-is-much-more-than-63-c69e779"), - ). - Phase(velerov1api.BackupPhaseCompleted). - Result(), - builder.ForBackup("ns-1", "backup-C"). - ObjectMeta( - builder.WithLabels(velerov1api.StorageLocationLabel, "the-really-long-location-name-that-is-much-more-than-63-c69e779"), - ). - Phase(velerov1api.BackupPhaseCompleted). - Result(), - }, - expectedDeletes: sets.NewString("backup-C"), - useLongBSLName: true, - }, - } - - for _, test := range tests { + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { var ( client = fake.NewSimpleClientset() + fakeClient = velerotest.NewFakeControllerRuntimeClient(t) sharedInformers = informers.NewSharedInformerFactory(client, 0) - pluginManager = &pluginmocks.Manager{} - backupStores = make(map[string]*persistencemocks.BackupStore) ) - r := BackupSyncReconciler{ - Client: ctrlfake.NewClientBuilder().Build(), - BackupClient: client.VeleroV1(), - PodVolumeBackupClient: client.VeleroV1(), - BackupLister: sharedInformers.Velero().V1().Backups().Lister(), - Namespace: test.namespace, - DefaultBackupSyncPeriod: time.Second * 10, - NewPluginManager: func(logrus.FieldLogger) clientmgmt.Manager { return pluginManager }, - BackupStoreGetter: NewFakeObjectBackupStoreGetter(backupStores), - Logger: velerotest.NewLogger(), - } + c := NewBackupSyncController( + client.VeleroV1(), + fakeClient, + client.VeleroV1(), + sharedInformers.Velero().V1().Backups().Lister(), + time.Duration(0), + test.namespace, + nil, // csiSnapshotClient + nil, // kubeClient + "", + nil, // new plugin manager func + nil, // backupStoreGetter + velerotest.NewLogger(), + ).(*backupSyncController) expectedDeleteActions := make([]core.Action, 0) for _, backup := range test.k8sBackups { // add test backup to informer - Expect(sharedInformers.Velero().V1().Backups().Informer().GetStore().Add(backup)).ShouldNot(HaveOccurred()) + require.NoError(t, sharedInformers.Velero().V1().Backups().Informer().GetStore().Add(backup), "Error adding backup to informer") // add test backup to client _, err := client.VeleroV1().Backups(test.namespace).Create(context.TODO(), backup, metav1.CreateOptions{}) - Expect(err).ShouldNot(HaveOccurred()) + require.NoError(t, err, "Error adding backup to clientset") // if we expect this backup to be deleted, set up the expected DeleteAction if test.expectedDeletes.Has(backup.Name) { @@ -649,49 +596,139 @@ var _ = Describe("Backup Sync Reconciler", func() { } } - bslName := "default" - if test.useLongBSLName { - bslName = longLabelName - } - r.deleteOrphanedBackups(ctx, bslName, test.cloudBackups, velerotest.NewLogger()) + c.deleteOrphanedBackups("default", test.cloudBackups, velerotest.NewLogger()) - numBackups, err := numBackups(client, r.Namespace) - Expect(err).ShouldNot(HaveOccurred()) + numBackups, err := numBackups(t, client, c.namespace) + assert.NoError(t, err) expected := len(test.k8sBackups) - len(test.expectedDeletes) - Expect(expected).To(BeEquivalentTo(numBackups)) + assert.Equal(t, expected, numBackups) - compareActions(expectedDeleteActions, getDeleteActions(client.Actions())) - } - }) -}) - -func compareActions(expected, actual []core.Action) { - Expect(len(expected)).To(BeEquivalentTo(len(actual))) - - for _, e := range expected { - found := false - for _, a := range actual { - if reflect.DeepEqual(e, a) { - found = true - break - } - } - if !found { - fmt.Printf("missing expected action %#v\n", e) - } - } - - for _, a := range actual { - found := false - for _, e := range expected { - if reflect.DeepEqual(e, a) { - found = true - break - } - } - if !found { - fmt.Printf("unexpected action %#v\n", a) - } + velerotest.CompareActions(t, expectedDeleteActions, getDeleteActions(client.Actions())) + }) } } + +func TestStorageLabelsInDeleteOrphanedBackups(t *testing.T) { + longLabelName := "the-really-long-location-name-that-is-much-more-than-63-characters" + tests := []struct { + name string + cloudBackups sets.String + k8sBackups []*velerov1api.Backup + namespace string + expectedDeletes sets.String + }{ + { + name: "some overlapping backups", + namespace: "ns-1", + cloudBackups: sets.NewString("backup-1", "backup-2", "backup-3"), + k8sBackups: []*velerov1api.Backup{ + builder.ForBackup("ns-1", "backup-1"). + ObjectMeta( + builder.WithLabels(velerov1api.StorageLocationLabel, "the-really-long-location-name-that-is-much-more-than-63-c69e779"), + ). + Phase(velerov1api.BackupPhaseCompleted). + Result(), + builder.ForBackup("ns-1", "backup-2"). + ObjectMeta( + builder.WithLabels(velerov1api.StorageLocationLabel, "the-really-long-location-name-that-is-much-more-than-63-c69e779"), + ). + Phase(velerov1api.BackupPhaseCompleted). + Result(), + builder.ForBackup("ns-1", "backup-C"). + ObjectMeta( + builder.WithLabels(velerov1api.StorageLocationLabel, "the-really-long-location-name-that-is-much-more-than-63-c69e779"), + ). + Phase(velerov1api.BackupPhaseCompleted). + Result(), + }, + expectedDeletes: sets.NewString("backup-C"), + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + var ( + client = fake.NewSimpleClientset() + fakeClient = velerotest.NewFakeControllerRuntimeClient(t) + sharedInformers = informers.NewSharedInformerFactory(client, 0) + ) + + c := NewBackupSyncController( + client.VeleroV1(), + fakeClient, + client.VeleroV1(), + sharedInformers.Velero().V1().Backups().Lister(), + time.Duration(0), + test.namespace, + nil, // csiSnapshotClient + nil, // kubeClient + "", + nil, // new plugin manager func + nil, // backupStoreGetter + velerotest.NewLogger(), + ).(*backupSyncController) + + expectedDeleteActions := make([]core.Action, 0) + + for _, backup := range test.k8sBackups { + // add test backup to informer + require.NoError(t, sharedInformers.Velero().V1().Backups().Informer().GetStore().Add(backup), "Error adding backup to informer") + + // add test backup to client + _, err := client.VeleroV1().Backups(test.namespace).Create(context.TODO(), backup, metav1.CreateOptions{}) + require.NoError(t, err, "Error adding backup to clientset") + + // if we expect this backup to be deleted, set up the expected DeleteAction + if test.expectedDeletes.Has(backup.Name) { + actionDelete := core.NewDeleteAction( + velerov1api.SchemeGroupVersion.WithResource("backups"), + test.namespace, + backup.Name, + ) + expectedDeleteActions = append(expectedDeleteActions, actionDelete) + } + } + + c.deleteOrphanedBackups(longLabelName, test.cloudBackups, velerotest.NewLogger()) + + numBackups, err := numBackups(t, client, c.namespace) + assert.NoError(t, err) + + expected := len(test.k8sBackups) - len(test.expectedDeletes) + assert.Equal(t, expected, numBackups) + + velerotest.CompareActions(t, expectedDeleteActions, getDeleteActions(client.Actions())) + }) + } +} + +func getDeleteActions(actions []core.Action) []core.Action { + var deleteActions []core.Action + for _, action := range actions { + if action.GetVerb() == "delete" { + deleteActions = append(deleteActions, action) + } + } + return deleteActions +} + +func numBackups(t *testing.T, c *fake.Clientset, ns string) (int, error) { + t.Helper() + existingK8SBackups, err := c.VeleroV1().Backups(ns).List(context.TODO(), metav1.ListOptions{}) + if err != nil { + return 0, err + } + + return len(existingK8SBackups.Items), nil +} + +func numPodVolumeBackups(t *testing.T, c *fake.Clientset, ns string) (int, error) { + t.Helper() + existingK8SPodvolumeBackups, err := c.VeleroV1().PodVolumeBackups(ns).List(context.TODO(), metav1.ListOptions{}) + if err != nil { + return 0, err + } + + return len(existingK8SPodvolumeBackups.Items), nil +} From bdde7585c8e1020f19239dc5a6086a17ba1f19b8 Mon Sep 17 00:00:00 2001 From: Xun Jiang Date: Fri, 17 Dec 2021 15:36:36 +0800 Subject: [PATCH 080/136] Add changelog. Signed-off-by: Xun Jiang --- changelogs/unreleased/4423-jxun | 1 + changelogs/unreleased/4457-jxun | 1 + 2 files changed, 2 insertions(+) create mode 100644 changelogs/unreleased/4423-jxun create mode 100644 changelogs/unreleased/4457-jxun diff --git a/changelogs/unreleased/4423-jxun b/changelogs/unreleased/4423-jxun new file mode 100644 index 000000000..d2274476e --- /dev/null +++ b/changelogs/unreleased/4423-jxun @@ -0,0 +1 @@ +Migrate backup sync controller from code-generator to kubebuilder. \ No newline at end of file diff --git a/changelogs/unreleased/4457-jxun b/changelogs/unreleased/4457-jxun new file mode 100644 index 000000000..5d90eaf80 --- /dev/null +++ b/changelogs/unreleased/4457-jxun @@ -0,0 +1 @@ +Revert #4423 migrate backup sync controller to kubebuilder. \ No newline at end of file From d7aa82d8ed02e5e72c584c32db0f65b5b10333b0 Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Tue, 21 Dec 2021 05:38:13 +0800 Subject: [PATCH 081/136] Return the error when getting backup store in backup deletion controller (#4465) Per discussion in https://github.com/vmware-tanzu/velero/issues/4260#issuecomment-947721686 https://github.com/vmware-tanzu/velero/issues/4260#issuecomment-951347384 return the error to avoid a panic when downloading the backup tarball Signed-off-by: Daniel Jiang --- changelogs/unreleased/4465-reasonerjt | 1 + pkg/controller/backup_deletion_controller.go | 2 +- .../backup_deletion_controller_test.go | 33 ++++++++++++++++--- pkg/controller/suite_test.go | 8 +++++ 4 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 changelogs/unreleased/4465-reasonerjt diff --git a/changelogs/unreleased/4465-reasonerjt b/changelogs/unreleased/4465-reasonerjt new file mode 100644 index 000000000..f6f15ec62 --- /dev/null +++ b/changelogs/unreleased/4465-reasonerjt @@ -0,0 +1 @@ +Return the error when getting backup store in backup deletion controller \ No newline at end of file diff --git a/pkg/controller/backup_deletion_controller.go b/pkg/controller/backup_deletion_controller.go index 3e503e81a..90707be70 100644 --- a/pkg/controller/backup_deletion_controller.go +++ b/pkg/controller/backup_deletion_controller.go @@ -291,7 +291,7 @@ func (c *backupDeletionController) processRequest(req *velerov1api.DeleteBackupR backupStore, err := c.backupStoreGetter.Get(location, pluginManager, log) if err != nil { - errs = append(errs, err.Error()) + return errors.Wrap(err, "error getting the backup store") } actions, err := pluginManager.GetDeleteItemActions() diff --git a/pkg/controller/backup_deletion_controller_test.go b/pkg/controller/backup_deletion_controller_test.go index 98109d7fe..a03e98eb0 100644 --- a/pkg/controller/backup_deletion_controller_test.go +++ b/pkg/controller/backup_deletion_controller_test.go @@ -21,6 +21,7 @@ import ( "context" "fmt" "io/ioutil" + "strings" "testing" "time" @@ -36,19 +37,20 @@ import ( core "k8s.io/client-go/testing" "sigs.k8s.io/controller-runtime/pkg/client" + "github.com/vmware-tanzu/velero/pkg/builder" + "github.com/vmware-tanzu/velero/pkg/plugin/velero" + "github.com/vmware-tanzu/velero/pkg/plugin/velero/mocks" + "github.com/vmware-tanzu/velero/pkg/volume" + velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" pkgbackup "github.com/vmware-tanzu/velero/pkg/backup" - "github.com/vmware-tanzu/velero/pkg/builder" "github.com/vmware-tanzu/velero/pkg/generated/clientset/versioned/fake" informers "github.com/vmware-tanzu/velero/pkg/generated/informers/externalversions" "github.com/vmware-tanzu/velero/pkg/metrics" persistencemocks "github.com/vmware-tanzu/velero/pkg/persistence/mocks" "github.com/vmware-tanzu/velero/pkg/plugin/clientmgmt" pluginmocks "github.com/vmware-tanzu/velero/pkg/plugin/mocks" - "github.com/vmware-tanzu/velero/pkg/plugin/velero" - "github.com/vmware-tanzu/velero/pkg/plugin/velero/mocks" velerotest "github.com/vmware-tanzu/velero/pkg/test" - "github.com/vmware-tanzu/velero/pkg/volume" ) func TestBackupDeletionControllerProcessQueueItem(t *testing.T) { @@ -183,6 +185,29 @@ func setupBackupDeletionControllerTest(t *testing.T, objects ...runtime.Object) } func TestBackupDeletionControllerProcessRequest(t *testing.T) { + t.Run("failed to get backup store", func(t *testing.T) { + backup := builder.ForBackup(velerov1api.DefaultNamespace, "foo").StorageLocation("default").Result() + location := &velerov1api.BackupStorageLocation{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: backup.Namespace, + Name: backup.Spec.StorageLocation, + }, + Spec: velerov1api.BackupStorageLocationSpec{ + Provider: "objStoreProvider", + StorageType: velerov1api.StorageType{ + ObjectStorage: &velerov1api.ObjectStorageLocation{ + Bucket: "bucket", + }, + }, + }, + } + td := setupBackupDeletionControllerTest(t, location, backup) + td.controller.backupStoreGetter = &fakeErrorBackupStoreGetter{} + err := td.controller.processRequest(td.req) + assert.NotNil(t, err) + assert.True(t, strings.HasPrefix(err.Error(), "error getting the backup store")) + }) + t.Run("missing spec.backupName", func(t *testing.T) { td := setupBackupDeletionControllerTest(t) td.req.Spec.BackupName = "" diff --git a/pkg/controller/suite_test.go b/pkg/controller/suite_test.go index d4c07b995..b5c5b4d08 100644 --- a/pkg/controller/suite_test.go +++ b/pkg/controller/suite_test.go @@ -18,6 +18,7 @@ package controller import ( "context" + "fmt" "path/filepath" "testing" "time" @@ -130,6 +131,13 @@ func (t *testEnvironment) stop() error { return env.Stop() } +type fakeErrorBackupStoreGetter struct { +} + +func (f *fakeErrorBackupStoreGetter) Get(*velerov1api.BackupStorageLocation, persistence.ObjectStoreGetter, logrus.FieldLogger) (persistence.BackupStore, error) { + return nil, fmt.Errorf("some error") +} + type fakeSingleObjectBackupStoreGetter struct { store persistence.BackupStore } From c7cd95a374ae18e5455e854c60f9ee58d22aefc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Tue, 21 Dec 2021 05:42:27 +0800 Subject: [PATCH 082/136] Ignore the provided port is already allocated error when restoring the LoadBalancer service (#4462) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Wenkai Yin(尹文开) --- changelogs/unreleased/4462-ywk253100 | 1 + pkg/restore/restore.go | 7 ++++--- pkg/restore/restore_test.go | 10 ---------- 3 files changed, 5 insertions(+), 13 deletions(-) create mode 100644 changelogs/unreleased/4462-ywk253100 diff --git a/changelogs/unreleased/4462-ywk253100 b/changelogs/unreleased/4462-ywk253100 new file mode 100644 index 000000000..e02b9ed34 --- /dev/null +++ b/changelogs/unreleased/4462-ywk253100 @@ -0,0 +1 @@ +Ignore the provided port is already allocated error when restoring the LoadBalancer service \ No newline at end of file diff --git a/pkg/restore/restore.go b/pkg/restore/restore.go index 19e500269..3b1e3e94c 100644 --- a/pkg/restore/restore.go +++ b/pkg/restore/restore.go @@ -1328,11 +1328,12 @@ func isAlreadyExistsError(ctx *restoreContext, obj *unstructured.Unstructured, e if apierrors.IsAlreadyExists(err) { return true } - // the "invalid value" error rather than "already exists" error returns when restoring nodePort service - // that has nodePort preservation if the same nodePort service already exists. + // The "invalid value error" or "internal error" rather than "already exists" error returns when restoring nodePort service in the following two cases: + // 1. For NodePort service, the service has nodePort preservation while the same nodePort service already exists. - Get invalid value error + // 2. For LoadBalancer service, the "healthCheckNodePort" already exists. - Get internal error // If this is the case, the function returns true to avoid reporting error. // Refer to https://github.com/vmware-tanzu/velero/issues/2308 for more details - if obj.GetKind() != "Service" || !apierrors.IsInvalid(err) { + if obj.GetKind() != "Service" { return false } statusErr, ok := err.(*apierrors.StatusError) diff --git a/pkg/restore/restore_test.go b/pkg/restore/restore_test.go index faada13f9..14680d7ef 100644 --- a/pkg/restore/restore_test.go +++ b/pkg/restore/restore_test.go @@ -3044,16 +3044,6 @@ func TestIsAlreadyExistsError(t *testing.T) { }, expected: false, }, - { - name: "The input error isn't InvalidError", - obj: &unstructured.Unstructured{ - Object: map[string]interface{}{ - "kind": "Service", - }, - }, - err: apierrors.NewBadRequest(""), - expected: false, - }, { name: "The StatusError contains no causes", obj: &unstructured.Unstructured{ From 648f3ac2282d583bea473f3319767dd3a45df844 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Tue, 23 Nov 2021 16:42:29 +0800 Subject: [PATCH 083/136] Keep the annotation "pv.kubernetes.io/provisioned-by" when restoring PVs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit More details please refer to https://github.com/vmware-tanzu/velero/issues/3470#issuecomment-976279606 Fixes #3470 Signed-off-by: Wenkai Yin(尹文开) --- changelogs/unreleased/4391-ywk253100 | 1 + pkg/restore/restore.go | 4 ---- pkg/restore/restore_test.go | 3 +-- 3 files changed, 2 insertions(+), 6 deletions(-) create mode 100644 changelogs/unreleased/4391-ywk253100 diff --git a/changelogs/unreleased/4391-ywk253100 b/changelogs/unreleased/4391-ywk253100 new file mode 100644 index 000000000..99a1ae5fa --- /dev/null +++ b/changelogs/unreleased/4391-ywk253100 @@ -0,0 +1 @@ +Keep the annotation "pv.kubernetes.io/provisioned-by" when restoring PVs \ No newline at end of file diff --git a/pkg/restore/restore.go b/pkg/restore/restore.go index 19e500269..09f5e662a 100644 --- a/pkg/restore/restore.go +++ b/pkg/restore/restore.go @@ -1562,10 +1562,6 @@ func resetVolumeBindingInfo(obj *unstructured.Unstructured) *unstructured.Unstru // the PV(C) controller to take the two objects and bind them again. delete(annotations, KubeAnnBoundByController) - // Remove the provisioned-by annotation which signals that the persistent - // volume was dynamically provisioned; it is now statically provisioned. - delete(annotations, KubeAnnDynamicallyProvisioned) - // GetAnnotations returns a copy, so we have to set them again. obj.SetAnnotations(annotations) diff --git a/pkg/restore/restore_test.go b/pkg/restore/restore_test.go index faada13f9..52c8e6986 100644 --- a/pkg/restore/restore_test.go +++ b/pkg/restore/restore_test.go @@ -2997,7 +2997,7 @@ func Test_resetVolumeBindingInfo(t *testing.T) { "resourceVersion": "1"}).Unstructured, expected: NewTestUnstructured().WithMetadataField("kind", "persistentVolume"). WithName("pv-1"). - WithAnnotations(). + WithAnnotations(KubeAnnDynamicallyProvisioned). WithSpecField("claimRef", map[string]interface{}{ "namespace": "ns-1", "name": "pvc-1"}).Unstructured, }, @@ -3007,7 +3007,6 @@ func Test_resetVolumeBindingInfo(t *testing.T) { WithName("pvc-1").WithAnnotations( KubeAnnBindCompleted, KubeAnnBoundByController, - KubeAnnDynamicallyProvisioned, ).WithSpecField("volumeName", "pv-1").Unstructured, expected: NewTestUnstructured().WithMetadataField("kind", "persistentVolumeClaim"). WithName("pvc-1").WithAnnotations(). From 72fc1d2c0bbfa02ce9778766dbd07cffc9c606a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Tue, 21 Dec 2021 19:28:55 +0800 Subject: [PATCH 084/136] Parse resource from backup tarball directly rather than resolving it via discovery service to avoid #4009 (#4398) --- changelogs/unreleased/4398-ywk253100 | 1 + internal/delete/delete_item_action_handler.go | 11 +---------- 2 files changed, 2 insertions(+), 10 deletions(-) create mode 100644 changelogs/unreleased/4398-ywk253100 diff --git a/changelogs/unreleased/4398-ywk253100 b/changelogs/unreleased/4398-ywk253100 new file mode 100644 index 000000000..ae700d49b --- /dev/null +++ b/changelogs/unreleased/4398-ywk253100 @@ -0,0 +1 @@ +Fix the issue that the backup cannot be deleted after the application uninstalled \ No newline at end of file diff --git a/internal/delete/delete_item_action_handler.go b/internal/delete/delete_item_action_handler.go index b2ab39ead..609f75914 100644 --- a/internal/delete/delete_item_action_handler.go +++ b/internal/delete/delete_item_action_handler.go @@ -74,15 +74,8 @@ func InvokeDeleteActions(ctx *Context) error { processdResources := sets.NewString() - ctx.Log.Debugf("Trying to reconcile resource names with Kube API server.") - // Transform resource names based on what's canonical in the API server. for resource := range backupResources { - gvr, _, err := ctx.DiscoveryHelper.ResourceFor(schema.ParseGroupResource(resource).WithVersion("")) - if err != nil { - return errors.Wrapf(err, "failed to resolve resource into complete group/version/resource: %v", resource) - } - - groupResource := gvr.GroupResource() + groupResource := schema.ParseGroupResource(resource) // We've already seen this group/resource, so don't process it again. if processdResources.Has(groupResource.String()) { @@ -92,8 +85,6 @@ func InvokeDeleteActions(ctx *Context) error { // Get a list of all items that exist for this resource resourceList := backupResources[groupResource.String()] if resourceList == nil { - // After canonicalization from the API server, the resources may not exist in the tarball - // Skip them if that's the case. continue } From 29b2cd1883faf4f70dd8508224ec9673429be6d4 Mon Sep 17 00:00:00 2001 From: danfengl Date: Fri, 26 Nov 2021 10:29:53 +0000 Subject: [PATCH 085/136] Add backup deletion e2e test Test case description is "Deleted backups are deleted from object storage and backups deleted from object storage can be deleted locally", in this test, only resource backup objects are target for verifition, restic repo verification is not included in this PR, and snapshot verification will be in later PR Signed-off-by: danfengl --- changelogs/unreleased/4401-danfengliu | 1 + go.mod | 11 +- go.sum | 27 ++- test/e2e/backups/deletion.go | 159 +++++++++++++++ test/e2e/e2e_suite_test.go | 2 + test/e2e/util/providers/aws_utils.go | 141 +++++++++++++ test/e2e/util/providers/azure_utils.go | 258 ++++++++++++++++++++++++ test/e2e/util/providers/common.go | 105 ++++++++++ test/e2e/util/providers/gcloud_utils.go | 99 +++++++++ test/e2e/util/velero/velero_utils.go | 39 ++++ 10 files changed, 836 insertions(+), 6 deletions(-) create mode 100644 changelogs/unreleased/4401-danfengliu create mode 100644 test/e2e/backups/deletion.go create mode 100644 test/e2e/util/providers/aws_utils.go create mode 100644 test/e2e/util/providers/azure_utils.go create mode 100644 test/e2e/util/providers/common.go create mode 100644 test/e2e/util/providers/gcloud_utils.go diff --git a/changelogs/unreleased/4401-danfengliu b/changelogs/unreleased/4401-danfengliu new file mode 100644 index 000000000..e0982ae12 --- /dev/null +++ b/changelogs/unreleased/4401-danfengliu @@ -0,0 +1 @@ +Add backup deletion e2e test \ No newline at end of file diff --git a/go.mod b/go.mod index b55a85266..972a2a9ab 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,10 @@ module github.com/vmware-tanzu/velero go 1.17 require ( + cloud.google.com/go/storage v1.10.0 + github.com/Azure/azure-pipeline-go v0.2.3 github.com/Azure/azure-sdk-for-go v42.0.0+incompatible + github.com/Azure/azure-storage-blob-go v0.14.0 github.com/Azure/go-autorest/autorest v0.11.21 github.com/Azure/go-autorest/autorest/azure/auth v0.5.8 github.com/Azure/go-autorest/autorest/to v0.3.0 @@ -14,12 +17,12 @@ require ( github.com/gobwas/glob v0.2.3 github.com/gofrs/uuid v3.2.0+incompatible github.com/golang/protobuf v1.5.2 - github.com/google/uuid v1.1.2 + github.com/google/uuid v1.2.0 github.com/hashicorp/go-hclog v0.12.0 github.com/hashicorp/go-plugin v0.0.0-20190610192547-a1bc61569a26 github.com/joho/godotenv v1.3.0 github.com/kubernetes-csi/external-snapshotter/client/v4 v4.0.0 - github.com/onsi/ginkgo v1.16.4 + github.com/onsi/ginkgo v1.16.5 github.com/onsi/gomega v1.16.0 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.11.0 @@ -32,6 +35,7 @@ require ( github.com/vmware-tanzu/crash-diagnostics v0.3.7 golang.org/x/mod v0.4.2 golang.org/x/net v0.0.0-20210520170846-37e1c6afe023 + google.golang.org/api v0.56.0 google.golang.org/grpc v1.40.0 k8s.io/api v0.22.2 k8s.io/apiextensions-apiserver v0.22.2 @@ -67,6 +71,7 @@ require ( github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/google/go-cmp v0.5.6 // indirect github.com/google/gofuzz v1.2.0 // indirect + github.com/googleapis/gax-go/v2 v2.1.0 // indirect github.com/googleapis/gnostic v0.5.5 // indirect github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb // indirect github.com/imdario/mergo v0.3.12 // indirect @@ -75,6 +80,7 @@ require ( github.com/json-iterator/go v1.1.11 // indirect github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect github.com/mattn/go-colorable v0.1.9 // indirect + github.com/mattn/go-ieproxy v0.0.1 // indirect github.com/mattn/go-isatty v0.0.14 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -90,6 +96,7 @@ require ( github.com/prometheus/procfs v0.6.0 // indirect github.com/stretchr/objx v0.2.0 // indirect github.com/vladimirvivien/gexe v0.1.1 // indirect + go.opencensus.io v0.23.0 // indirect go.starlark.net v0.0.0-20201006213952-227f4aabceb5 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect diff --git a/go.sum b/go.sum index 5084b6c5b..525808f44 100644 --- a/go.sum +++ b/go.sum @@ -43,10 +43,15 @@ cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiy cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0 h1:STgFzyU5/8miMl0//zKh2aQeTyeaUH3WN9bSUiJ09bA= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVtCdfBE21U= +github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k= github.com/Azure/azure-sdk-for-go v42.0.0+incompatible h1:yz6sFf5bHZ+gEOQVuK5JhPqTTAmv+OvSLSaqgzqaCwY= github.com/Azure/azure-sdk-for-go v42.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-storage-blob-go v0.14.0 h1:1BCg74AmVdYwO3dlKwtFU1V0wU2PZdREkXvAmZJRUlM= +github.com/Azure/azure-storage-blob-go v0.14.0/go.mod h1:SMqIBi+SuiQH32bvyjngEewEeXoPfKMgWlBDaYf6fck= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= @@ -320,9 +325,11 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.2.1 h1:d8MncMlErDFTwQGBK1xhv026j9kqhvw1Qv9IbWT1VLQ= github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -342,10 +349,12 @@ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm4 github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= +github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.1.0 h1:6DWmvNpomjL1+3liNSZbVns3zsYzzCjm6pRBO1tLeso= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= @@ -435,6 +444,8 @@ github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -458,6 +469,8 @@ github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVc github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9 h1:sqDoxXbdeALODt0DAeJCVp38ps9ZogZEAXjus69YV3U= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-ieproxy v0.0.1 h1:qiyop7gCflfhwCzGyeT0gro3sF9AIg9HU98JORTkqfI= +github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= @@ -505,7 +518,6 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8m github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= @@ -520,8 +532,9 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= @@ -666,6 +679,7 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= @@ -770,6 +784,7 @@ golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -854,6 +869,7 @@ golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -877,6 +893,7 @@ golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200828194041-157a740278f4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1027,6 +1044,7 @@ google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtuk google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= +google.golang.org/api v0.56.0 h1:08F9XVYTLOGeSQb3xI9C0gXMuQanhdGed0cWFhDozbI= google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1138,8 +1156,9 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= diff --git a/test/e2e/backups/deletion.go b/test/e2e/backups/deletion.go new file mode 100644 index 000000000..477bf227d --- /dev/null +++ b/test/e2e/backups/deletion.go @@ -0,0 +1,159 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ +package backups + +import ( + "context" + "flag" + "fmt" + "time" + + "github.com/google/uuid" + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "github.com/pkg/errors" + + . "github.com/vmware-tanzu/velero/test/e2e" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" + . "github.com/vmware-tanzu/velero/test/e2e/util/kibishii" + . "github.com/vmware-tanzu/velero/test/e2e/util/providers" + . "github.com/vmware-tanzu/velero/test/e2e/util/velero" +) + +const ( + deletionTest = "deletion-workload" +) + +// Test backup and restore of Kibishi using restic + +func Backup_deletion_with_snapshots() { + backup_deletion_test(true) +} + +func Backup_deletion_with_restic() { + backup_deletion_test(false) +} +func backup_deletion_test(useVolumeSnapshots bool) { + var ( + backupName string + ) + + client, err := NewTestClient() + Expect(err).To(Succeed(), "Failed to instantiate cluster client for backup deletion tests") + + BeforeEach(func() { + if useVolumeSnapshots && VeleroCfg.CloudProvider == "kind" { + Skip("Volume snapshots not supported on kind") + } + var err error + flag.Parse() + UUIDgen, err = uuid.NewRandom() + Expect(err).To(Succeed()) + if VeleroCfg.InstallVelero { + Expect(VeleroInstall(context.Background(), &VeleroCfg, "", useVolumeSnapshots)).To(Succeed()) + } + }) + + AfterEach(func() { + if VeleroCfg.InstallVelero { + err = VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace) + Expect(err).To(Succeed()) + } + }) + + When("kibishii is the sample workload", func() { + It("Deleted backups are deleted from object storage and backups deleted from object storage can be deleted locally", func() { + backupName = "backup-" + UUIDgen.String() + Expect(runBackupDeletionTests(client, VeleroCfg.VeleroCLI, VeleroCfg.CloudProvider, VeleroCfg.VeleroNamespace, backupName, "", useVolumeSnapshots, VeleroCfg.RegistryCredentialFile, VeleroCfg.BSLPrefix, VeleroCfg.BSLConfig)).To(Succeed(), + "Failed to run backup deletion test") + }) + }) +} + +// runUpgradeTests runs upgrade test on the provider by kibishii. +func runBackupDeletionTests(client TestClient, veleroCLI, providerName, veleroNamespace, backupName, backupLocation string, + useVolumeSnapshots bool, registryCredentialFile, bslPrefix, bslConfig string) error { + + oneHourTimeout, _ := context.WithTimeout(context.Background(), time.Minute*60) + + if err := CreateNamespace(oneHourTimeout, client, deletionTest); err != nil { + return errors.Wrapf(err, "Failed to create namespace %s to install Kibishii workload", deletionTest) + } + defer func() { + if err := DeleteNamespace(context.Background(), client, deletionTest, true); err != nil { + fmt.Println(errors.Wrapf(err, "failed to delete the namespace %q", deletionTest)) + } + }() + + if err := KibishiiPrepareBeforeBackup(oneHourTimeout, client, providerName, deletionTest, registryCredentialFile); err != nil { + return errors.Wrapf(err, "Failed to install and prepare data for kibishii %s", deletionTest) + } + err := ObjectsShouldNotBeInBucket(VeleroCfg.CloudProvider, VeleroCfg.CloudCredentialsFile, VeleroCfg.BSLBucket, VeleroCfg.BSLPrefix, VeleroCfg.BSLConfig, backupName, BackupObjectsPrefix, 1) + if err != nil { + return err + } + if err := VeleroBackupNamespace(oneHourTimeout, veleroCLI, veleroNamespace, backupName, deletionTest, backupLocation, useVolumeSnapshots); err != nil { + // TODO currently, the upgrade case covers the upgrade path from 1.6 to main and the velero v1.6 doesn't support "debug" command + // TODO move to "runDebug" after we bump up to 1.7 in the upgrade case + VeleroBackupLogs(context.Background(), VeleroCfg.UpgradeFromVeleroCLI, veleroNamespace, backupName) + return errors.Wrapf(err, "Failed to backup kibishii namespace %s", deletionTest) + } + + if providerName == "vsphere" && useVolumeSnapshots { + // Wait for uploads started by the Velero Plug-in for vSphere to complete + // TODO - remove after upload progress monitoring is implemented + fmt.Println("Waiting for vSphere uploads to complete") + if err := WaitForVSphereUploadCompletion(oneHourTimeout, time.Hour, deletionTest); err != nil { + return errors.Wrapf(err, "Error waiting for uploads to complete") + } + } + err = ObjectsShouldBeInBucket(VeleroCfg.CloudProvider, VeleroCfg.CloudCredentialsFile, VeleroCfg.BSLBucket, bslPrefix, bslConfig, backupName, BackupObjectsPrefix) + if err != nil { + return err + } + err = DeleteBackupResource(context.Background(), veleroCLI, backupName) + if err != nil { + return err + } + err = ObjectsShouldNotBeInBucket(VeleroCfg.CloudProvider, VeleroCfg.CloudCredentialsFile, VeleroCfg.BSLBucket, bslPrefix, bslConfig, backupName, BackupObjectsPrefix, 5) + if err != nil { + fmt.Println(errors.Wrapf(err, "Failed to get object from bucket %q", backupName)) + return err + } + backupName = "backup-1-" + UUIDgen.String() + if err := VeleroBackupNamespace(oneHourTimeout, veleroCLI, veleroNamespace, backupName, deletionTest, backupLocation, useVolumeSnapshots); err != nil { + // TODO currently, the upgrade case covers the upgrade path from 1.6 to main and the velero v1.6 doesn't support "debug" command + // TODO move to "runDebug" after we bump up to 1.7 in the upgrade case + VeleroBackupLogs(context.Background(), VeleroCfg.UpgradeFromVeleroCLI, veleroNamespace, backupName) + return errors.Wrapf(err, "Failed to backup kibishii namespace %s", deletionTest) + } + err = DeleteObjectsInBucket(VeleroCfg.CloudProvider, VeleroCfg.CloudCredentialsFile, VeleroCfg.BSLBucket, bslPrefix, bslConfig, backupName, BackupObjectsPrefix) + if err != nil { + fmt.Println(errors.Wrapf(err, "Failed to delete object in bucket %q", backupName)) + return err + } + err = ObjectsShouldNotBeInBucket(VeleroCfg.CloudProvider, VeleroCfg.CloudCredentialsFile, VeleroCfg.BSLBucket, bslPrefix, bslConfig, backupName, BackupObjectsPrefix, 1) + if err != nil { + return err + } + err = DeleteBackupResource(context.Background(), veleroCLI, backupName) + if err != nil { + fmt.Println(errors.Wrapf(err, "|| UNEXPECTED || - Failed to delete backup %q", backupName)) + return err + } + fmt.Printf("|| EXPECTED || - Backup deletion test completed successfully\n") + return nil +} diff --git a/test/e2e/e2e_suite_test.go b/test/e2e/e2e_suite_test.go index 93876044a..703257c0d 100644 --- a/test/e2e/e2e_suite_test.go +++ b/test/e2e/e2e_suite_test.go @@ -26,6 +26,7 @@ import ( . "github.com/vmware-tanzu/velero/test/e2e" . "github.com/vmware-tanzu/velero/test/e2e/backup" + . "github.com/vmware-tanzu/velero/test/e2e/backups" . "github.com/vmware-tanzu/velero/test/e2e/basic" . "github.com/vmware-tanzu/velero/test/e2e/resource-filtering" . "github.com/vmware-tanzu/velero/test/e2e/scale" @@ -86,6 +87,7 @@ var _ = Describe("[ResourceFiltering][IncludeNamespaces][Restore] Velero test on var _ = Describe("[ResourceFiltering][IncludeResources][Backup] Velero test on include resources from the cluster backup", BackupWithIncludeResources) var _ = Describe("[ResourceFiltering][IncludeResources][Restore] Velero test on include resources from the cluster restore", RestoreWithIncludeResources) var _ = Describe("[ResourceFiltering][LabelSelector] Velero test on backup include resources matching the label selector", BackupWithLabelSelector) +var _ = Describe("[Backups][Deletion] Velero tests on cluster using the plugin provider for object storage and Restic for volume backups", Backup_deletion_with_restic) func TestE2e(t *testing.T) { // Skip running E2E tests when running only "short" tests because: diff --git a/test/e2e/util/providers/aws_utils.go b/test/e2e/util/providers/aws_utils.go new file mode 100644 index 000000000..3e64b2b3a --- /dev/null +++ b/test/e2e/util/providers/aws_utils.go @@ -0,0 +1,141 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package providers + +import ( + "fmt" + "strings" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/credentials" + "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/s3" + "github.com/aws/aws-sdk-go/service/s3/s3manager" + "github.com/pkg/errors" + + "github.com/vmware-tanzu/velero/pkg/cmd/util/flag" +) + +type AWSStorage string + +func (s AWSStorage) ListItems(client *s3.S3, objectsV2Input *s3.ListObjectsV2Input) (*s3.ListObjectsV2Output, error) { + res, err := client.ListObjectsV2(objectsV2Input) + if err != nil { + return nil, err + } + + return res, nil +} + +func (s AWSStorage) DeleteItem(client *s3.S3, deleteObjectV2Input *s3.DeleteObjectInput) (*s3.DeleteObjectOutput, error) { + res, err := client.DeleteObject(deleteObjectV2Input) + if err != nil { + return nil, err + } + fmt.Println(res) + return res, nil +} +func (s AWSStorage) IsObjectsInBucket(cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupObject string) (bool, error) { + config := flag.NewMap() + config.Set(bslConfig) + region := config.Data()["region"] + objectsInput := s3.ListObjectsV2Input{} + objectsInput.Bucket = aws.String(bslBucket) + objectsInput.Delimiter = aws.String("/") + s3url := "" + if bslPrefix != "" { + objectsInput.Prefix = aws.String(bslPrefix) + } + s3Config := &aws.Config{ + Region: aws.String(region), + Credentials: credentials.NewSharedCredentials(cloudCredentialsFile, ""), + } + if region == "minio" { + s3url = config.Data()["s3Url"] + s3Config = &aws.Config{ + Credentials: credentials.NewSharedCredentials(cloudCredentialsFile, ""), + Endpoint: aws.String(s3url), + Region: aws.String(region), + DisableSSL: aws.Bool(true), + S3ForcePathStyle: aws.Bool(true), + } + } + + sess, err := session.NewSession(s3Config) + + if err != nil { + return false, errors.Wrapf(err, "Failed to create AWS session") + } + svc := s3.New(sess) + + bucketObjects, err := s.ListItems(svc, &objectsInput) + if err != nil { + return false, errors.Wrapf(err, "Couldn't retrieve bucket items") + } + + for _, item := range bucketObjects.Contents { + fmt.Println(*item) + } + var backupNameInStorage string + for _, item := range bucketObjects.CommonPrefixes { + backupNameInStorage = strings.TrimPrefix(*item.Prefix, strings.Trim(bslPrefix, "/")+"/") + fmt.Println(backupNameInStorage) + if strings.Contains(backupNameInStorage, backupObject) { + fmt.Printf("Backup %s was found under prefix %s \n", backupObject, bslPrefix) + return true, nil + } + } + fmt.Printf("Backup %s was not found under prefix %s \n", backupObject, bslPrefix) + return false, nil +} + +func (s AWSStorage) DeleteObjectsInBucket(cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupObject string) error { + config := flag.NewMap() + config.Set(bslConfig) + region := config.Data()["region"] + s3url := "" + s3Config := &aws.Config{ + Region: aws.String(region), + Credentials: credentials.NewSharedCredentials(cloudCredentialsFile, ""), + } + if region == "minio" { + s3url = config.Data()["s3Url"] + s3Config = &aws.Config{ + Credentials: credentials.NewSharedCredentials(cloudCredentialsFile, ""), + Endpoint: aws.String(s3url), + Region: aws.String(region), + DisableSSL: aws.Bool(true), + S3ForcePathStyle: aws.Bool(true), + } + } + sess, err := session.NewSession(s3Config) + if err != nil { + return errors.Wrapf(err, "Error waiting for uploads to complete") + } + svc := s3.New(sess) + fullPrefix := strings.Trim(bslPrefix, "/") + "/" + strings.Trim(backupObject, "/") + "/" + iter := s3manager.NewDeleteListIterator(svc, &s3.ListObjectsInput{ + Bucket: aws.String(bslBucket), + Prefix: aws.String(fullPrefix), + }) + + if err := s3manager.NewBatchDeleteWithClient(svc).Delete(aws.BackgroundContext(), iter); err != nil { + return errors.Wrapf(err, "Error waiting for uploads to complete") + } + fmt.Printf("Deleted object(s) from bucket: %s %s \n", bslBucket, fullPrefix) + return nil +} diff --git a/test/e2e/util/providers/azure_utils.go b/test/e2e/util/providers/azure_utils.go new file mode 100644 index 000000000..d9ee4c6ca --- /dev/null +++ b/test/e2e/util/providers/azure_utils.go @@ -0,0 +1,258 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package providers + +import ( + "fmt" + "log" + "net/url" + "os" + "strings" + + "github.com/Azure/azure-pipeline-go/pipeline" + storagemgmt "github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage" + "github.com/Azure/azure-storage-blob-go/azblob" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/azure/auth" + "github.com/joho/godotenv" + "github.com/pkg/errors" + "golang.org/x/net/context" + + "github.com/vmware-tanzu/velero/pkg/cmd/util/flag" +) + +type AzureStorage string + +const ( + subscriptionIDEnvVar = "AZURE_SUBSCRIPTION_ID" + cloudNameEnvVar = "AZURE_CLOUD_NAME" + resourceGroupEnvVar = "AZURE_RESOURCE_GROUP" + storageAccountKey = "AZURE_STORAGE_ACCOUNT_ACCESS_KEY" + storageAccount = "storageAccount" + subscriptionID = "subscriptionId" + resourceGroup = "resourceGroup" +) + +func getStorageCredential(cloudCredentialsFile, bslConfig string) (string, string, error) { + config := flag.NewMap() + config.Set(bslConfig) + accountName := config.Data()[storageAccount] + // Account name must be provided in config + if len(accountName) == 0 { + return "", "", errors.New("Please provide bucket as Azure account name ") + } + subscriptionID := config.Data()[subscriptionID] + resourceGroupCfg := config.Data()[resourceGroup] + accountKey, err := getStorageAccountKey(cloudCredentialsFile, accountName, subscriptionID, resourceGroupCfg) + if err != nil { + return "", "", errors.Wrapf(err, "Fail to get storage key of bucket %s", accountName) + } + return accountName, accountKey, nil +} +func loadCredentialsIntoEnv(credentialsFile string) error { + if credentialsFile == "" { + return nil + } + + if err := godotenv.Overload(credentialsFile); err != nil { + return errors.Wrapf(err, "error loading environment from credentials file (%s)", credentialsFile) + } + return nil +} +func parseAzureEnvironment(cloudName string) (*azure.Environment, error) { + if cloudName == "" { + fmt.Println("cloudName is empty") + return &azure.PublicCloud, nil + } + + env, err := azure.EnvironmentFromName(cloudName) + return &env, errors.WithStack(err) +} +func getStorageAccountKey(credentialsFile, accountName, subscriptionID, resourceGroupCfg string) (string, error) { + if err := loadCredentialsIntoEnv(credentialsFile); err != nil { + return "", err + } + storageKey := os.Getenv(storageAccountKey) + if storageKey != "" { + return storageKey, nil + } + if os.Getenv(cloudNameEnvVar) == "" { + return "", errors.New("Credential file should contain AZURE_CLOUD_NAME") + } + var resourceGroup string + if os.Getenv(resourceGroupEnvVar) == "" { + if resourceGroupCfg == "" { + return "", errors.New("Credential file should contain AZURE_RESOURCE_GROUP or AZURE_STORAGE_ACCOUNT_ACCESS_KEY") + } else { + resourceGroup = resourceGroupCfg + } + } else { + resourceGroup = os.Getenv(resourceGroupEnvVar) + } + // get Azure cloud from AZURE_CLOUD_NAME, if it exists. If the env var does not + // exist, parseAzureEnvironment will return azure.PublicCloud. + env, err := parseAzureEnvironment(os.Getenv(cloudNameEnvVar)) + if err != nil { + return "", errors.Wrap(err, "unable to parse azure cloud name environment variable") + } + + // get subscription ID from object store config or AZURE_SUBSCRIPTION_ID environment variable + if subscriptionID == "" { + return "", errors.New("azure subscription ID not found in object store's config or in environment variable") + } + + authorizer, err := auth.NewAuthorizerFromEnvironment() + if err != nil { + return "", errors.Wrap(err, "error getting authorizer from environment") + } + + // get storageAccountsClient + storageAccountsClient := storagemgmt.NewAccountsClientWithBaseURI(env.ResourceManagerEndpoint, subscriptionID) + storageAccountsClient.Authorizer = authorizer + + // get storage key + res, err := storageAccountsClient.ListKeys(context.TODO(), resourceGroup, accountName, storagemgmt.Kerb) + if err != nil { + return "", errors.WithStack(err) + } + if res.Keys == nil || len(*res.Keys) == 0 { + return "", errors.New("No storage keys found") + } + + for _, key := range *res.Keys { + // uppercase both strings for comparison because the ListKeys call returns e.g. "FULL" but + // the storagemgmt.Full constant in the SDK is defined as "Full". + if strings.EqualFold(string(key.Permissions), string(storagemgmt.Full)) { + storageKey = *key.Value + break + } + } + + if storageKey == "" { + return "", errors.New("No storage key with Full permissions found") + } + + return storageKey, nil +} +func handleErrors(err error) { + if err != nil { + if serr, ok := err.(azblob.StorageError); ok { // This error is a Service-specific + switch serr.ServiceCode() { // Compare serviceCode to ServiceCodeXxx constants + case azblob.ServiceCodeContainerAlreadyExists: + return + } + } + log.Fatal(err) + } +} + +func deleteBlob(p pipeline.Pipeline, accountName, containerName, blobName string) error { + ctx := context.Background() + + URL_BLOB, err := url.Parse(fmt.Sprintf("https://%s.blob.core.windows.net/%s/%s", accountName, containerName, blobName)) + if err != nil { + return errors.Wrapf(err, "Fail to url.Parse") + } + blobURL := azblob.NewBlobURL(*URL_BLOB, p) + _, err = blobURL.Delete(ctx, azblob.DeleteSnapshotsOptionNone, azblob.BlobAccessConditions{}) + return err +} +func (s AzureStorage) IsObjectsInBucket(cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupObject string) (bool, error) { + accountName, accountKey, err := getStorageCredential(cloudCredentialsFile, bslConfig) + if err != nil { + log.Fatal("Fail to get : accountName and accountKey, " + err.Error()) + } + + credential, err := azblob.NewSharedKeyCredential(accountName, accountKey) + if err != nil { + log.Fatal("Invalid credentials with error: " + err.Error()) + } + p := azblob.NewPipeline(credential, azblob.PipelineOptions{}) + + containerName := bslBucket + + URL, _ := url.Parse( + fmt.Sprintf("https://%s.blob.core.windows.net/%s", accountName, containerName)) + + containerURL := azblob.NewContainerURL(*URL, p) + + // Create the container, if container is already exist, then do nothing + ctx := context.Background() + _, err = containerURL.Create(ctx, azblob.Metadata{}, azblob.PublicAccessNone) + handleErrors(err) + + fmt.Printf("Finding backup %s blobs in Azure container/bucket %s\n", backupObject, containerName) + for marker := (azblob.Marker{}); marker.NotDone(); { + listBlob, err := containerURL.ListBlobsFlatSegment(ctx, marker, azblob.ListBlobsSegmentOptions{}) + if err != nil { + return false, errors.Wrapf(err, "Fail to create gcloud client") + } + marker = listBlob.NextMarker + + for _, blobInfo := range listBlob.Segment.BlobItems { + if strings.Contains(blobInfo.Name, backupObject) { + fmt.Printf("Blob name: %s exist in %s\n", backupObject, blobInfo.Name) + return true, nil + } + } + } + return false, nil +} + +func (s AzureStorage) DeleteObjectsInBucket(cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupObject string) error { + ctx := context.Background() + accountName, accountKey, err := getStorageCredential(cloudCredentialsFile, bslConfig) + if err != nil { + return errors.Wrapf(err, "Fail to get storage account name and key of bucket %s", bslBucket) + } + + credential, err := azblob.NewSharedKeyCredential(accountName, accountKey) + if err != nil { + log.Fatal("Invalid credentials with error: " + err.Error()) + } + p := azblob.NewPipeline(credential, azblob.PipelineOptions{}) + + containerName := bslBucket + + URL, _ := url.Parse( + fmt.Sprintf("https://%s.blob.core.windows.net/%s", accountName, containerName)) + + containerURL := azblob.NewContainerURL(*URL, p) + _, err = containerURL.Create(ctx, azblob.Metadata{}, azblob.PublicAccessNone) + handleErrors(err) + + fmt.Println("Listing the blobs in the container:") + for marker := (azblob.Marker{}); marker.NotDone(); { + listBlob, err := containerURL.ListBlobsFlatSegment(ctx, marker, azblob.ListBlobsSegmentOptions{}) + if err != nil { + return errors.Wrapf(err, "Fail to create gcloud client") + } + + marker = listBlob.NextMarker + for _, blobInfo := range listBlob.Segment.BlobItems { + + if strings.Contains(blobInfo.Name, bslPrefix+backupObject+"/") { + deleteBlob(p, accountName, containerName, blobInfo.Name) + if err != nil { + log.Fatal("Invalid credentials with error: " + err.Error()) + } + fmt.Printf("Deleted blob: %s according to backup resource %s\n", blobInfo.Name, bslPrefix+backupObject+"/") + } + } + } + return nil +} diff --git a/test/e2e/util/providers/common.go b/test/e2e/util/providers/common.go new file mode 100644 index 000000000..aa00065c9 --- /dev/null +++ b/test/e2e/util/providers/common.go @@ -0,0 +1,105 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package providers + +import ( + "fmt" + "strings" + "time" + + "github.com/pkg/errors" +) + +type ObjectsInStorage interface { + IsObjectsInBucket(cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupObject string) (bool, error) + DeleteObjectsInBucket(cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupObject string) error +} + +func ObjectsShouldBeInBucket(cloudProvider, cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupName, subPrefix string) error { + fmt.Printf("|| VERIFICATION || - Backup %s should exist in storage %s", backupName, bslPrefix) + exist, _ := IsObjectsInBucket(cloudProvider, cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupName, subPrefix) + if !exist { + return errors.New(fmt.Sprintf("|| UNEXPECTED ||Backup object %s is not exist in object store after backup as expected", backupName)) + } + fmt.Printf("|| EXPECTED || - Backup %s exist in object storage bucket %s\n", backupName, bslBucket) + return nil +} +func ObjectsShouldNotBeInBucket(cloudProvider, cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupName, subPrefix string, retryTimes int) error { + var err error + var exist bool + fmt.Printf("|| VERIFICATION || - Backup %s should not exist in storage %s", backupName, bslPrefix) + for i := 0; i < retryTimes; i++ { + exist, err = IsObjectsInBucket(cloudProvider, cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupName, subPrefix) + if err != nil { + return errors.Wrapf(err, "|| UNEXPECTED || - Failed to get backup %s in object store", backupName) + } + if !exist { + fmt.Printf("|| EXPECTED || - Backup %s is not in object store\n", backupName) + return nil + } + time.Sleep(1 * time.Minute) + } + return errors.New(fmt.Sprintf("|| UNEXPECTED ||Backup object %s still exist in object store after backup deletion", backupName)) +} +func getProvider(cloudProvider string) (ObjectsInStorage, error) { + var s ObjectsInStorage + switch cloudProvider { + case "aws", "vsphere": + aws := AWSStorage("") + s = &aws + case "gcp": + gcs := GCSStorage("") + s = &gcs + case "azure": + az := AzureStorage("") + s = &az + default: + return nil, errors.New(fmt.Sprintf("Cloud provider %s is not valid", cloudProvider)) + } + return s, nil +} +func getFullPrefix(bslPrefix, subPrefix string) string { + if bslPrefix == "" { + bslPrefix = subPrefix + "/" + } else { + //subPrefix must have surfix "/", so that objects under it can be listed + bslPrefix = strings.Trim(bslPrefix, "/") + "/" + strings.Trim(subPrefix, "/") + "/" + } + return bslPrefix +} +func IsObjectsInBucket(cloudProvider, cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupName, subPrefix string) (bool, error) { + bslPrefix = getFullPrefix(bslPrefix, subPrefix) + s, err := getProvider(cloudProvider) + if err != nil { + return false, errors.Wrapf(err, fmt.Sprintf("Cloud provider %s is not valid", cloudProvider)) + } + return s.IsObjectsInBucket(cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupName) +} + +func DeleteObjectsInBucket(cloudProvider, cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupName, subPrefix string) error { + bslPrefix = getFullPrefix(bslPrefix, subPrefix) + fmt.Printf("|| VERIFICATION || - Delete backup %s in storage %s", backupName, bslPrefix) + s, err := getProvider(cloudProvider) + if err != nil { + return errors.Wrapf(err, fmt.Sprintf("Cloud provider %s is not valid", cloudProvider)) + } + err = s.DeleteObjectsInBucket(cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupName) + if err != nil { + return errors.Wrapf(err, fmt.Sprintf("Fail to delete %s", bslPrefix)) + } + return nil +} diff --git a/test/e2e/util/providers/gcloud_utils.go b/test/e2e/util/providers/gcloud_utils.go new file mode 100644 index 000000000..fdc01b081 --- /dev/null +++ b/test/e2e/util/providers/gcloud_utils.go @@ -0,0 +1,99 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package providers + +import ( + "fmt" + "strings" + + "cloud.google.com/go/storage" + "github.com/pkg/errors" + "golang.org/x/net/context" + "google.golang.org/api/iterator" + "google.golang.org/api/option" +) + +type GCSStorage string + +func (s GCSStorage) IsObjectsInBucket(cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupObject string) (bool, error) { + q := &storage.Query{ + Prefix: bslPrefix, + } + + ctx := context.Background() + client, err := storage.NewClient(ctx, option.WithCredentialsFile(cloudCredentialsFile)) + if err != nil { + return false, errors.Wrapf(err, "Fail to create gcloud client") + } + iter := client.Bucket(bslBucket).Objects(context.Background(), q) + for { + obj, err := iter.Next() + if err == iterator.Done { + return false, errors.Wrapf(err, fmt.Sprintf("Backup %s was not found under prefix %s \n", backupObject, bslPrefix)) + } + if err != nil { + return false, errors.WithStack(err) + } + if obj.Name == bslPrefix { + fmt.Println("Ignore GCS prefix itself") + continue + } + if strings.Contains(obj.Name, bslPrefix+backupObject+"/") { + fmt.Printf("Found delete-object %s of %s in bucket %s \n", backupObject, obj.Name, bslBucket) + return true, nil + } + } +} +func (s GCSStorage) DeleteObjectsInBucket(cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, backupObject string) error { + q := &storage.Query{ + Prefix: bslPrefix, + } + + ctx := context.Background() + client, err := storage.NewClient(ctx, option.WithCredentialsFile(cloudCredentialsFile)) + if err != nil { + return errors.Wrapf(err, "Fail to create gcloud client") + } + bucket := client.Bucket(bslBucket) + iter := bucket.Objects(context.Background(), q) + deleted := false + for { + obj, err := iter.Next() + if err == iterator.Done { + fmt.Println(err) + if !deleted { + return errors.New("|| UNEXPECTED ||Backup object is not exist and was not deleted in object store") + } + return nil + } + if err != nil { + return errors.WithStack(err) + } + if obj.Name == bslPrefix { + fmt.Println("Ignore GCS prefix itself") + continue + } + // Only delete folder named as backupObject under prefix + if strings.Contains(obj.Name, bslPrefix+backupObject+"/") { + if err = bucket.Object(obj.Name).Delete(ctx); err != nil { + return errors.Wrapf(err, fmt.Sprintf("Fail to delete object %s in bucket %s", obj.Name, bslBucket)) + } + fmt.Printf("Delete item: %s\n", obj.Name) + deleted = true + } + } +} diff --git a/test/e2e/util/velero/velero_utils.go b/test/e2e/util/velero/velero_utils.go index d32c9f577..a7db0808e 100644 --- a/test/e2e/util/velero/velero_utils.go +++ b/test/e2e/util/velero/velero_utils.go @@ -41,6 +41,10 @@ import ( veleroexec "github.com/vmware-tanzu/velero/pkg/util/exec" ) +const ( + BackupObjectsPrefix = "backups" +) + var pluginsMatrix = map[string]map[string][]string{ "v1.4": { "aws": {"velero/velero-plugin-for-aws:v1.1.0"}, @@ -388,6 +392,9 @@ func getProviderPlugins(ctx context.Context, veleroCLI, objectStoreProvider, pro // installs them in the current Velero installation, skipping over those that are already installed. func VeleroAddPluginsForProvider(ctx context.Context, veleroCLI string, veleroNamespace string, provider string, addPlugins string) error { plugins, err := getProviderPlugins(ctx, veleroCLI, provider, addPlugins) + fmt.Printf("addPlugins cmd =%v\n", addPlugins) + fmt.Printf("provider cmd = %v\n", provider) + fmt.Printf("plugins cmd = %v\n", plugins) if err != nil { return errors.WithMessage(err, "Failed to get plugins") } @@ -396,6 +403,7 @@ func VeleroAddPluginsForProvider(ctx context.Context, veleroCLI string, veleroNa stderrBuf := new(bytes.Buffer) installPluginCmd := exec.CommandContext(ctx, veleroCLI, "--namespace", veleroNamespace, "plugin", "add", plugin) + fmt.Printf("installPluginCmd cmd =%v\n", installPluginCmd) installPluginCmd.Stdout = stdoutBuf installPluginCmd.Stderr = stderrBuf @@ -557,3 +565,34 @@ func getVeleroCliTarball(cliTarballUrl string) (*os.File, error) { return tmpfile, nil } +func DeleteBackupResource(ctx context.Context, veleroCLI string, backupName string) error { + args := []string{"backup", "delete", backupName, "--confirm"} + + cmd := exec.CommandContext(ctx, veleroCLI, args...) + fmt.Println("Delete backup Command:" + cmd.String()) + stdout, stderr, err := veleroexec.RunCommand(cmd) + if err != nil { + return errors.Wrapf(err, "Fail to get delete backup, stdout=%s, stderr=%s", stdout, stderr) + } + + output := strings.Replace(stdout, "\n", " ", -1) + fmt.Println("Backup delete command output:" + output) + + args = []string{"backup", "get", backupName} + + retryTimes := 5 + for i := 1; i < retryTimes+1; i++ { + cmd = exec.CommandContext(ctx, veleroCLI, args...) + fmt.Printf("Try %d times to delete backup %s \n", i, cmd.String()) + stdout, stderr, err = veleroexec.RunCommand(cmd) + if err != nil { + if strings.Contains(stderr, "not found") { + fmt.Printf("|| EXPECTED || - Backup %s was deleted successfully according to message %s\n", backupName, stderr) + return nil + } + return errors.Wrapf(err, "Fail to get delete backup, stdout=%s, stderr=%s", stdout, stderr) + } + time.Sleep(1 * time.Minute) + } + return nil +} From 97b106d1a3b7b85494e749693aa11413e1f644cc Mon Sep 17 00:00:00 2001 From: Ming Date: Tue, 4 Jan 2022 15:19:45 +0800 Subject: [PATCH 086/136] Fix e2e 2500 namespaces scale test timeout problem Signed-off-by: Ming --- changelogs/unreleased/4480-mqiu | 1 + test/e2e/basic/resources-check/namespaces.go | 16 +++++++++++--- test/e2e/util/k8s/namespace.go | 23 ++++++++++++++++---- 3 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 changelogs/unreleased/4480-mqiu diff --git a/changelogs/unreleased/4480-mqiu b/changelogs/unreleased/4480-mqiu new file mode 100644 index 000000000..0bde027ec --- /dev/null +++ b/changelogs/unreleased/4480-mqiu @@ -0,0 +1 @@ +Fix e2e 2500 namespaces scale test timeout problem diff --git a/test/e2e/basic/resources-check/namespaces.go b/test/e2e/basic/resources-check/namespaces.go index 8dfd26fcf..73d1d4543 100644 --- a/test/e2e/basic/resources-check/namespaces.go +++ b/test/e2e/basic/resources-check/namespaces.go @@ -92,9 +92,12 @@ func (m *MultiNSBackup) Init() error { func (m *MultiNSBackup) CreateResources() error { m.Ctx, _ = context.WithTimeout(context.Background(), m.TimeoutDuration) fmt.Printf("Creating namespaces ...\n") + labels := map[string]string{ + "ns-test": "true", + } for nsNum := 0; nsNum < m.NamespacesTotal; nsNum++ { createNSName := fmt.Sprintf("%s-%00000d", m.NSBaseName, nsNum) - if err := CreateNamespace(m.Ctx, m.Client, createNSName); err != nil { + if err := CreateNamespaceWithLabel(m.Ctx, m.Client, createNSName, labels); err != nil { return errors.Wrapf(err, "Failed to create namespace %s", createNSName) } } @@ -108,10 +111,17 @@ func (m *MultiNSBackup) Verify() error { checkNS, err := GetNamespace(m.Ctx, m.Client, checkNSName) if err != nil { return errors.Wrapf(err, "Could not retrieve test namespace %s", checkNSName) - } - if checkNS.Name != checkNSName { + } else if checkNS.Name != checkNSName { return errors.Errorf("Retrieved namespace for %s has name %s instead", checkNSName, checkNS.Name) } } return nil } + +func (m *MultiNSBackup) Destroy() error { + err := CleanupNamespaces(m.Ctx, m.Client, m.NSBaseName) + if err != nil { + return errors.Wrap(err, "Could cleanup retrieve namespaces") + } + return WaitAllSelectedNSDeleted(m.Ctx, m.Client, "ns-test=true") +} diff --git a/test/e2e/util/k8s/namespace.go b/test/e2e/util/k8s/namespace.go index 4048614f0..9b28873ef 100644 --- a/test/e2e/util/k8s/namespace.go +++ b/test/e2e/util/k8s/namespace.go @@ -28,7 +28,6 @@ import ( corev1api "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" waitutil "k8s.io/apimachinery/pkg/util/wait" "github.com/vmware-tanzu/velero/pkg/builder" @@ -89,7 +88,7 @@ func DeleteNamespace(ctx context.Context, client TestClient, namespace string, w } func CleanupNamespacesWithPoll(ctx context.Context, client TestClient, nsBaseName string) error { - namespaces, err := client.ClientGo.CoreV1().Namespaces().List(ctx, v1.ListOptions{}) + namespaces, err := client.ClientGo.CoreV1().Namespaces().List(ctx, metav1.ListOptions{}) if err != nil { return errors.Wrap(err, "Could not retrieve namespaces") } @@ -105,13 +104,13 @@ func CleanupNamespacesWithPoll(ctx context.Context, client TestClient, nsBaseNam } func CleanupNamespaces(ctx context.Context, client TestClient, nsBaseName string) error { - namespaces, err := client.ClientGo.CoreV1().Namespaces().List(ctx, v1.ListOptions{}) + namespaces, err := client.ClientGo.CoreV1().Namespaces().List(ctx, metav1.ListOptions{}) if err != nil { return errors.Wrap(err, "Could not retrieve namespaces") } for _, checkNamespace := range namespaces.Items { if strings.HasPrefix(checkNamespace.Name, nsBaseName) { - err = client.ClientGo.CoreV1().Namespaces().Delete(ctx, checkNamespace.Name, v1.DeleteOptions{}) + err = client.ClientGo.CoreV1().Namespaces().Delete(ctx, checkNamespace.Name, metav1.DeleteOptions{}) if err != nil { return errors.Wrapf(err, "Could not delete namespace %s", checkNamespace.Name) } @@ -119,3 +118,19 @@ func CleanupNamespaces(ctx context.Context, client TestClient, nsBaseName string } return nil } + +func WaitAllSelectedNSDeleted(ctx context.Context, client TestClient, label string) error { + return waitutil.PollImmediateInfinite(5*time.Second, + func() (bool, error) { + if ns, err := client.ClientGo.CoreV1().Namespaces().List(ctx, metav1.ListOptions{LabelSelector: label}); err != nil { + return false, err + } else if ns == nil { + return true, nil + } else if len(ns.Items) == 0 { + return true, nil + } else { + logrus.Debugf("%d namespaces is still being deleted...\n", len(ns.Items)) + return false, nil + } + }) +} From 7e76bb9f9897da92671101a31e10f021f5600b25 Mon Sep 17 00:00:00 2001 From: Abigail McCarthy Date: Wed, 5 Jan 2022 13:43:39 -0500 Subject: [PATCH 087/136] Update CSI docs with more context Signed-off-by: Abigail McCarthy --- site/content/docs/main/csi.md | 39 ++++++++++++++++------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/site/content/docs/main/csi.md b/site/content/docs/main/csi.md index 49f4f77e9..dd2caf265 100644 --- a/site/content/docs/main/csi.md +++ b/site/content/docs/main/csi.md @@ -1,26 +1,25 @@ --- -title: "Container Storage Interface Snapshot Support in Velero" +title: "Beta Container Storage Interface Snapshot Support in Velero" layout: docs --- -_This feature is under development. Documentation may not be up-to-date and features may not work as expected._ +Integrating Container Storage Interface (CSI) snapshot support into Velero enables Velero to backup and restore CSI-backed volumes using the [Kubernetes CSI Snapshot APIs](https://kubernetes.io/docs/concepts/storage/volume-snapshots/). -Integrating Container Storage Interface (CSI) snapshot support into Velero enables Velero to backup and restore CSI-backed volumes using the [Kubernetes CSI Snapshot Beta APIs](https://kubernetes.io/docs/concepts/storage/volume-snapshots/). +By supporting CSI snapshot APIs, Velero can support any volume provider that has a CSI driver, without requiring a Velero-specific plugin to be available. This page gives an overview of how to add support for CSI snapshots to Velero through CSI plugins. For more information about specific components, see the [plugin repo](https://github.com/vmware-tanzu/velero-plugin-for-csi/). -By supporting CSI snapshot APIs, Velero can support any volume provider that has a CSI driver, without requiring a Velero-specific plugin to be available. +The Velero Container Storage Interface (CSI) plugins are in beta. It's not recommended for use in a production environment and the `EnableCSI` feature flag is disabled by default. The Velero team plans to follow the upstream Kubernetes support level for CSI volume snapshotting, and the Velero CSI plugins will reach general availability sometime after volume snapshotting is GA in upstream Kubernetes. + +**Note:** The AWS, Microsoft Azure, and Google Cloud Platform (GCP) Velero plugins version 1.4 and later are able snapshot and restore persistent volume provisioned by the CSI driver via the APIs of the cloud provider, without having to install Velero CSI plugins. ## Prerequisites -The following are the prerequisites for using Velero to take Container Storage Interface (CSI) snapshots: - - 1. The cluster is Kubernetes version 1.17 or greater. - 1. The cluster is running a CSI driver capable of support volume snapshots at the [v1beta1 API level](https://kubernetes.io/blog/2019/12/09/kubernetes-1-17-feature-cis-volume-snapshot-beta/). - 1. When restoring CSI volumesnapshots across clusters, the name of the CSI driver in the destination cluster is the same as that on the source cluster to ensure cross cluster portability of CSI volumesnapshots + 1. Your cluster is Kubernetes version 1.17 or greater. + 1. Your cluster is running a CSI driver capable of support volume snapshots at the [v1beta1 API level](https://kubernetes.io/blog/2019/12/09/kubernetes-1-17-feature-cis-volume-snapshot-beta/). + 1. When restoring CSI VolumeSnapshots across clusters, the name of the CSI driver in the destination cluster is the same as that on the source cluster to ensure cross cluster portability of CSI VolumeSnapshots ## Installing Velero with CSI support -Ensure that the Velero server is running with the `EnableCSI` feature flag. See [Enabling Features][1] for more information. -Also, the Velero [CSI plugin][2] ([Docker Hub][3]) is necessary to integrate with the CSI volume snapshot APIs. +To integrate Velero with the CSI volume snapshot APIs, you must enable the `EnableCSI` feature flag and install the Velero [CSI plugins][2] on the Velero server. Both of these can be added with the `velero install` command. @@ -32,24 +31,19 @@ velero install \ ``` To include the status of CSI objects associated with a Velero backup in `velero backup describe` output, run `velero client config set features=EnableCSI`. -See [Enabling Features][1] for more information about managing client-side feature flags. +See [Enabling Features][1] for more information about managing client-side feature flags. You can also view the image on [Docker Hub][3]. ## Implementation Choices -This section documents some of the choices made during implementation of the Velero [CSI plugin][2]: +This section documents some of the choices made during implementation of the Velero [CSI plugins][2]: -1. Volumesnapshots created by the plugin will be retained only for the lifetime of the backup even if the `DeletionPolicy` on the volumesnapshotclass is set to `Retain`. To accomplish this, during deletion of the backup the prior to deleting the volumesnapshot, volumesnapshotcontent object will be patched to set its `DeletionPolicy` to `Delete`. Thus deleting volumesnapshot object will result in cascade delete of the volumesnapshotcontent and the snapshot in the storage provider. -1. Volumesnapshotcontent objects created during a velero backup that are dangling, unbound to a volumesnapshot object, will also be discovered, through labels, and deleted on backup deletion. -1. The Velero CSI plugin, to backup CSI backed PVCs, will choose the VolumeSnapshotClass in the cluster that has the same driver name and also has the `velero.io/csi-volumesnapshot-class` label set on it, like +1. VolumeSnapshots created by the Velero CSI plugins are retained only for the lifetime of the backup even if the `DeletionPolicy` on the VolumeSnapshotClass is set to `Retain`. To accomplish this, during deletion of the backup the prior to deleting the VolumeSnapshot, VolumeSnapshotContent object is patched to set its `DeletionPolicy` to `Delete`. Deleting the VolumeSnapshot object will result in cascade delete of the VolumeSnapshotContent and the snapshot in the storage provider. +1. VolumeSnapshotContent objects created during a `velero backup` that are dangling, unbound to a VolumeSnapshot object, will be discovered, using labels, and deleted on backup deletion. +1. The Velero CSI plugins, to backup CSI backed PVCs, will choose the VolumeSnapshotClass in the cluster that has the same driver name and also has the `velero.io/csi-volumesnapshot-class` label set on it, like ```yaml velero.io/csi-volumesnapshot-class: "true" ``` -## Roadmap - -Velero's support level for CSI volume snapshotting will follow upstream Kubernetes support for the feature, and will reach general availability sometime -after volume snapshotting is GA in upstream Kubernetes. Beta support is expected to launch in Velero v1.4. - ## How it Works - Overview Velero's CSI support does not rely on the Velero VolumeSnapshotter plugin interface. @@ -64,6 +58,9 @@ The external-snapshotter plugin will call the CSI driver's snapshot method, and Once an ID is generated and the storage system marks the snapshot as usable for restore, the VolumeSnapshotContent object will be updated with a `status.snapshotHandle` and the `status.readyToUse` field will be set. Velero will include the generated VolumeSnapshot and VolumeSnapshotContent objects in the backup tarball, as well as upload all VolumeSnapshots and VolumeSnapshotContents objects in a JSON file to the object storage system. + +**NOTE:** Not all cloud provider's CSI drivers guarantee snapshot durability, meaning that the VolumeSnapshot and VolumeSnapshotContent objects may be stored in the same object storage system location as the original PersistentVolume and may be vulnerable to data loss. You should refer to your cloud provider's documentation for more information on configuring snapshot durability. + When Velero synchronizes backups into a new cluster, VolumeSnapshotContent objects will be synced into the cluster as well, so that Velero can manage backup expiration appropriately. The `DeletionPolicy` on the VolumeSnapshotContent will be the same as the `DeletionPolicy` on the VolumeSnapshotClass that was used to create the VolumeSnapshot. Setting a `DeletionPolicy` of `Retain` on the VolumeSnapshotClass will preserve the volume snapshot in the storage system for the lifetime of the Velero backup and will prevent the deletion of the volume snapshot, in the storage system, in the event of a disaster where the namespace with the VolumeSnapshot object may be lost. From 6c1f16a735e24ea333210b94e72db60c94cc7a1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Thu, 6 Jan 2022 10:35:39 +0800 Subject: [PATCH 088/136] Initialize the labels field of `velero backup-location create` option MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Initialize the labels field of `velero backup-location create` option to avoid #4484 Fixes #4484 Signed-off-by: Wenkai Yin(尹文开) --- changelogs/unreleased/4491-ywk253100 | 1 + pkg/cmd/cli/backuplocation/create.go | 1 + pkg/cmd/cli/backuplocation/create_test.go | 11 +++++++++++ 3 files changed, 13 insertions(+) create mode 100644 changelogs/unreleased/4491-ywk253100 diff --git a/changelogs/unreleased/4491-ywk253100 b/changelogs/unreleased/4491-ywk253100 new file mode 100644 index 000000000..5f8a3bff8 --- /dev/null +++ b/changelogs/unreleased/4491-ywk253100 @@ -0,0 +1 @@ +Initialize the labels field of `velero backup-location create` option to avoid #4484 \ No newline at end of file diff --git a/pkg/cmd/cli/backuplocation/create.go b/pkg/cmd/cli/backuplocation/create.go index d8403b842..a90564be3 100644 --- a/pkg/cmd/cli/backuplocation/create.go +++ b/pkg/cmd/cli/backuplocation/create.go @@ -78,6 +78,7 @@ func NewCreateOptions() *CreateOptions { return &CreateOptions{ Credential: flag.NewMap(), Config: flag.NewMap(), + Labels: flag.NewMap(), AccessMode: flag.NewEnum( string(velerov1api.BackupStorageLocationAccessModeReadWrite), string(velerov1api.BackupStorageLocationAccessModeReadWrite), diff --git a/pkg/cmd/cli/backuplocation/create_test.go b/pkg/cmd/cli/backuplocation/create_test.go index 57977e7ea..e09d45271 100644 --- a/pkg/cmd/cli/backuplocation/create_test.go +++ b/pkg/cmd/cli/backuplocation/create_test.go @@ -76,3 +76,14 @@ func TestBuildBackupStorageLocationSetsCredential(t *testing.T) { Key: "key-from-secret", }, bsl.Spec.Credential) } + +func TestBuildBackupStorageLocationSetsLabels(t *testing.T) { + o := NewCreateOptions() + + err := o.Labels.Set("key=value") + assert.NoError(t, err) + + bsl, err := o.BuildBackupStorageLocation("velero-test-ns", false, false) + assert.NoError(t, err) + assert.Equal(t, map[string]string{"key": "value"}, bsl.Labels) +} From b82559fe7c46b15146889c2bcca63befc3d8d08a Mon Sep 17 00:00:00 2001 From: Abigail McCarthy Date: Thu, 6 Jan 2022 14:20:41 -0500 Subject: [PATCH 089/136] Add kubernetes version compatability matrix Signed-off-by: Abigail McCarthy --- site/content/docs/main/basic-install.md | 4 ++-- site/content/docs/main/contributions/tencent-config.md | 6 +++--- site/content/docs/main/restic.md | 2 +- site/content/docs/main/tilt.md | 4 ++-- site/content/docs/main/upgrade-to-1.7.md | 5 ++++- site/content/docs/v1.4/basic-install.md | 2 +- site/content/docs/v1.4/upgrade-to-1.4.md | 2 ++ site/content/docs/v1.5/basic-install.md | 2 +- site/content/docs/v1.5/contributions/tencent-config.md | 6 +++--- site/content/docs/v1.5/restic.md | 2 +- site/content/docs/v1.5/tilt.md | 4 ++-- site/content/docs/v1.5/upgrade-to-1.5.md | 2 ++ site/content/docs/v1.6/basic-install.md | 2 +- site/content/docs/v1.6/upgrade-to-1.6.md | 4 +++- site/content/docs/v1.7/basic-install.md | 4 ++-- site/content/docs/v1.7/upgrade-to-1.7.md | 6 ++++-- 16 files changed, 34 insertions(+), 23 deletions(-) diff --git a/site/content/docs/main/basic-install.md b/site/content/docs/main/basic-install.md index 59ec19da9..080b27b2f 100644 --- a/site/content/docs/main/basic-install.md +++ b/site/content/docs/main/basic-install.md @@ -8,7 +8,7 @@ Refer [this document](customize-installation.md) to customize your installation. ## Prerequisites -- Access to a Kubernetes cluster, v1.12 or later, with DNS and container networking enabled. +- Access to a Kubernetes cluster, v1.16 or later, with DNS and container networking enabled. For more information on supported Kubernetes versions, see the Velero [compatibility matrix](https://github.com/vmware-tanzu/velero#velero-compatabilty-matrix). - `kubectl` installed locally Velero uses object storage to store backups and associated artifacts. It also optionally integrates with supported block storage systems to snapshot your persistent volumes. Before beginning the installation process, you should identify the object storage provider and optional block storage provider(s) you'll be using from the list of [compatible providers][0]. @@ -70,4 +70,4 @@ Please refer to [this part of the documentation][5]. [2]: on-premises.md [3]: overview-plugins.md [4]: customize-installation.md#install-an-additional-volume-snapshot-provider -[5]: customize-installation.md#optional-velero-cli-configurations \ No newline at end of file +[5]: customize-installation.md#optional-velero-cli-configurations diff --git a/site/content/docs/main/contributions/tencent-config.md b/site/content/docs/main/contributions/tencent-config.md index 50edfce49..11b0762c0 100644 --- a/site/content/docs/main/contributions/tencent-config.md +++ b/site/content/docs/main/contributions/tencent-config.md @@ -11,7 +11,7 @@ You can deploy Velero on Tencent [TKE](https://cloud.tencent.com/document/produc - Registered [Tencent Cloud Account](https://cloud.tencent.com/register). - [Tencent Cloud COS](https://console.cloud.tencent.com/cos) service, referred to as COS, has been launched -- A Kubernetes cluster has been created, cluster version v1.12 or later, and the cluster can use DNS and Internet services normally. If you need to create a TKE cluster, refer to the Tencent [create a cluster](https://cloud.tencent.com/document/product/457/32189) documentation. +- A Kubernetes cluster has been created, cluster version v1.16 or later, and the cluster can use DNS and Internet services normally. If you need to create a TKE cluster, refer to the Tencent [create a cluster](https://cloud.tencent.com/document/product/457/32189) documentation. ## Create a Tencent Cloud COS bucket @@ -21,7 +21,7 @@ Set access to the bucket through the object storage console, the bucket needs to ## Get bucket access credentials -Velero uses an AWS S3-compatible API to access Tencent Cloud COS storage, which requires authentication using a pair of access key IDs and key-created signatures. +Velero uses an AWS S3-compatible API to access Tencent Cloud COS storage, which requires authentication using a pair of access key IDs and key-created signatures. In the S3 API parameter, the "access_key_id" field is the access key ID and the "secret_access_key" field is the key. @@ -116,7 +116,7 @@ After deleting the MinIO resource, use your backup to restore the deleted MinIO kubectl patch backupstoragelocation default --namespace velero \ --type merge \ --patch '{"spec":{"accessMode":"ReadOnly"}}' - + ``` Modifying access to Velero's storage location is "ReadOnly," as shown in the following image: diff --git a/site/content/docs/main/restic.md b/site/content/docs/main/restic.md index a15e08bf2..07f8111b6 100644 --- a/site/content/docs/main/restic.md +++ b/site/content/docs/main/restic.md @@ -24,7 +24,7 @@ cross-volume-type data migrations. - Understand how Velero performs [backups with the Restic integration](#how-backup-and-restore-work-with-restic). - [Download][3] the latest Velero release. -- Kubernetes v1.12.0 and later. Velero's Restic integration requires the Kubernetes [MountPropagation feature][6], which is enabled by default in Kubernetes v1.12.0 and later. +- Kubernetes v1.16.0 and later. Velero's Restic integration requires the Kubernetes [MountPropagation feature][6]. ### Install Restic diff --git a/site/content/docs/main/tilt.md b/site/content/docs/main/tilt.md index 42f68cfe4..3f2a8d90e 100644 --- a/site/content/docs/main/tilt.md +++ b/site/content/docs/main/tilt.md @@ -19,7 +19,7 @@ files in this directory are gitignored so you may configure your setup according ## Prerequisites 1. [Docker](https://docs.docker.com/install/) v19.03 or newer -1. A Kubernetes cluster v1.12 or greater (does not have to be Kind) +1. A Kubernetes cluster v1.16 or greater (does not have to be Kind) 1. [Tilt](https://docs.tilt.dev/install.html) v0.12.0 or newer 1. Clone the [Velero project](https://github.com/vmware-tanzu/velero) repository locally @@ -133,7 +133,7 @@ Here are two ways to use MinIO as the storage: In the `tilt-settings.json` file, set `"setup-minio": true`. This will configure a Kubernetes deployment containing a running instance of MinIO inside your cluster. There are [extra steps](contributions/minio/#expose-minio-outside-your-cluster-with-a-service) -necessary to expose MinIO outside the cluster. +necessary to expose MinIO outside the cluster. To access this storage, you will need to expose MinIO outside the cluster by forwarding the MinIO port to the local machine using kubectl port-forward -n svc/minio 9000. Update the BSL configuration to use that as its "public URL" by adding `publicUrl: http://localhost:9000` to the BSL config. This is necessary to do things like download a backup file. diff --git a/site/content/docs/main/upgrade-to-1.7.md b/site/content/docs/main/upgrade-to-1.7.md index 2b10b122f..7ef4a8a46 100644 --- a/site/content/docs/main/upgrade-to-1.7.md +++ b/site/content/docs/main/upgrade-to-1.7.md @@ -6,6 +6,7 @@ layout: docs ## Prerequisites - Velero [v1.6.x][6] installed. +- Kubernetes cluster version 1.16 and later. If you're not yet running at least Velero v1.6, see the following: @@ -16,6 +17,8 @@ If you're not yet running at least Velero v1.6, see the following: - [Upgrading to v1.5][5] - [Upgrading to v1.6][6] +Before upgrading, check the [Velero compatibility matrix](https://github.com/vmware-tanzu/velero#velero-compatabilty-matrix) to make sure your version of Kubernetes is supported by the new version of Velero. + ## Instructions 1. Install the Velero v1.7 command-line interface (CLI) by following the [instructions here][0]. @@ -76,7 +79,7 @@ If you're not yet running at least Velero v1.6, see the following: ## Notes ### Default backup storage location -We have deprecated the way to indicate the default backup storage location. Previously, that was indicated according to the backup storage location name set on the velero server-side via the flag `velero server --default-backup-storage-location`. Now we configure the default backup storage location on the velero client-side. Please refer to the [About locations][9] on how to indicate which backup storage location is the default one. +We have deprecated the way to indicate the default backup storage location. Previously, that was indicated according to the backup storage location name set on the velero server-side via the flag `velero server --default-backup-storage-location`. Now we configure the default backup storage location on the velero client-side. Please refer to the [About locations][9] on how to indicate which backup storage location is the default one. After upgrading, if there is a previously created backup storage location with the name that matches what was defined on the server side as the default, it will be automatically set as the `default`. diff --git a/site/content/docs/v1.4/basic-install.md b/site/content/docs/v1.4/basic-install.md index 58b840a9b..a553bafa9 100644 --- a/site/content/docs/v1.4/basic-install.md +++ b/site/content/docs/v1.4/basic-install.md @@ -8,7 +8,7 @@ Refer [this document](customize-installation.md) to customize your installation. ## Prerequisites -- Access to a Kubernetes cluster, v1.10 or later, with DNS and container networking enabled. +- Access to a Kubernetes cluster, v1.10-v1.21, with DNS and container networking enabled. For more information on supported Kubernetes versions, see the Velero [compatibility matrix](https://github.com/vmware-tanzu/velero#velero-compatabilty-matrix). - `kubectl` installed locally Velero uses object storage to store backups and associated artifacts. It also optionally integrates with supported block storage systems to snapshot your persistent volumes. Before beginning the installation process, you should identify the object storage provider and optional block storage provider(s) you'll be using from the list of [compatible providers][0]. diff --git a/site/content/docs/v1.4/upgrade-to-1.4.md b/site/content/docs/v1.4/upgrade-to-1.4.md index 92ddc9193..7559b1791 100644 --- a/site/content/docs/v1.4/upgrade-to-1.4.md +++ b/site/content/docs/v1.4/upgrade-to-1.4.md @@ -15,6 +15,8 @@ If you're not yet running at least Velero v1.3, see the following: - [Upgrading to v1.2][2] - [Upgrading to v1.3][3] +Before upgrading, check the [Velero compatibility matrix](https://github.com/vmware-tanzu/velero#velero-compatabilty-matrix) to make sure your version of Kubernetes is supported by the new version of Velero. + ## Instructions 1. Install the Velero v1.4 command-line interface (CLI) by following the [instructions here][0]. diff --git a/site/content/docs/v1.5/basic-install.md b/site/content/docs/v1.5/basic-install.md index 9f3349ef3..ffc374d56 100644 --- a/site/content/docs/v1.5/basic-install.md +++ b/site/content/docs/v1.5/basic-install.md @@ -8,7 +8,7 @@ Refer [this document](customize-installation.md) to customize your installation. ## Prerequisites -- Access to a Kubernetes cluster, v1.10 or later, with DNS and container networking enabled. +- Access to a Kubernetes cluster, v1.12-v1.21, with DNS and container networking enabled. For more information on supported Kubernetes versions, see the Velero [compatibility matrix](https://github.com/vmware-tanzu/velero#velero-compatabilty-matrix). - `kubectl` installed locally Velero uses object storage to store backups and associated artifacts. It also optionally integrates with supported block storage systems to snapshot your persistent volumes. Before beginning the installation process, you should identify the object storage provider and optional block storage provider(s) you'll be using from the list of [compatible providers][0]. diff --git a/site/content/docs/v1.5/contributions/tencent-config.md b/site/content/docs/v1.5/contributions/tencent-config.md index f8ff6969d..b50b08556 100644 --- a/site/content/docs/v1.5/contributions/tencent-config.md +++ b/site/content/docs/v1.5/contributions/tencent-config.md @@ -11,7 +11,7 @@ You can deploy Velero on Tencent [TKE](https://cloud.tencent.com/document/produc - Registered [Tencent Cloud Account](https://cloud.tencent.com/register). - [Tencent Cloud COS](https://console.cloud.tencent.com/cos) service, referred to as COS, has been launched -- A Kubernetes cluster has been created, cluster version v1.10 or later, and the cluster can use DNS and Internet services normally. If you need to create a TKE cluster, refer to the Tencent [create a cluster](https://cloud.tencent.com/document/product/457/32189) documentation. +- A Kubernetes cluster has been created, cluster version v1.12-v1.21, and the cluster can use DNS and Internet services normally. If you need to create a TKE cluster, refer to the Tencent [create a cluster](https://cloud.tencent.com/document/product/457/32189) documentation. ## Create a Tencent Cloud COS bucket @@ -21,7 +21,7 @@ Set access to the bucket through the object storage console, the bucket needs to ## Get bucket access credentials -Velero uses an AWS S3-compatible API to access Tencent Cloud COS storage, which requires authentication using a pair of access key IDs and key-created signatures. +Velero uses an AWS S3-compatible API to access Tencent Cloud COS storage, which requires authentication using a pair of access key IDs and key-created signatures. In the S3 API parameter, the "access_key_id" field is the access key ID and the "secret_access_key" field is the key. @@ -116,7 +116,7 @@ After deleting the MinIO resource, use your backup to restore the deleted MinIO kubectl patch backupstoragelocation default --namespace velero \ --type merge \ --patch '{"spec":{"accessMode":"ReadOnly"}}' - + ``` Modifying access to Velero's storage location is "ReadOnly," as shown in the following image: diff --git a/site/content/docs/v1.5/restic.md b/site/content/docs/v1.5/restic.md index d4d4d0b04..375994e8e 100644 --- a/site/content/docs/v1.5/restic.md +++ b/site/content/docs/v1.5/restic.md @@ -24,7 +24,7 @@ cross-volume-type data migrations. - Understand how Velero performs [backups with the restic integration](#how-backup-and-restore-work-with-restic). - [Download][3] the latest Velero release. -- Kubernetes v1.10.0 and later. Velero's restic integration requires the Kubernetes [MountPropagation feature][6], which is enabled by default in Kubernetes v1.10.0 and later. +- Kubernetes v1.12.0-v1.21. Velero's restic integration requires the Kubernetes [MountPropagation feature][6], which is enabled by default in Kubernetes v1.10.0 and later. ### Install restic diff --git a/site/content/docs/v1.5/tilt.md b/site/content/docs/v1.5/tilt.md index 1221b36b9..6b33c18a0 100644 --- a/site/content/docs/v1.5/tilt.md +++ b/site/content/docs/v1.5/tilt.md @@ -19,7 +19,7 @@ files in this directory are gitignored so you may configure your setup according ## Prerequisites 1. [Docker](https://docs.docker.com/install/) v19.03 or newer -1. A Kubernetes cluster v1.10 or greater (does not have to be Kind) +1. A Kubernetes cluster v1.12-v1.21 (does not have to be Kind) 1. [Tilt](https://docs.tilt.dev/install.html) v0.12.0 or newer 1. Clone the [Velero project](https://github.com/vmware-tanzu/velero) repository locally @@ -133,7 +133,7 @@ Here are two ways to use MinIO as the storage: In the `tilt-settings.json` file, set `"setup-minio": true`. This will configure a Kubernetes deployment containing a running instance of MinIO inside your cluster. There are [extra steps](contributions/minio/#expose-minio-outside-your-cluster-with-a-service) -necessary to expose MinIO outside the cluster. +necessary to expose MinIO outside the cluster. To access this storage, you will need to expose MinIO outside the cluster by forwarding the MinIO port to the local machine using kubectl port-forward -n svc/minio 9000. Update the BSL configuration to use that as its "public URL" by adding `publicUrl: http://localhost:9000` to the BSL config. This is necessary to do things like download a backup file. diff --git a/site/content/docs/v1.5/upgrade-to-1.5.md b/site/content/docs/v1.5/upgrade-to-1.5.md index eb4df5d7e..58c54ac9f 100644 --- a/site/content/docs/v1.5/upgrade-to-1.5.md +++ b/site/content/docs/v1.5/upgrade-to-1.5.md @@ -14,6 +14,8 @@ If you're not yet running at least Velero v1.4, see the following: - [Upgrading to v1.3][3] - [Upgrading to v1.4][4] +Before upgrading, check the [Velero compatibility matrix](https://github.com/vmware-tanzu/velero#velero-compatabilty-matrix) to make sure your version of Kubernetes is supported by the new version of Velero. + ## Instructions 1. Install the Velero v1.5 command-line interface (CLI) by following the [instructions here][0]. diff --git a/site/content/docs/v1.6/basic-install.md b/site/content/docs/v1.6/basic-install.md index 50c406177..494ffd94e 100644 --- a/site/content/docs/v1.6/basic-install.md +++ b/site/content/docs/v1.6/basic-install.md @@ -8,7 +8,7 @@ Refer [this document](customize-installation.md) to customize your installation. ## Prerequisites -- Access to a Kubernetes cluster, v1.12 or later, with DNS and container networking enabled. +- Access to a Kubernetes cluster, v1.12 or later, with DNS and container networking enabled. Note that Velero versions 1.6.0-1.6.2, only support Kubernetes versions v1.12-1.21. If you are installing on a newer version of Kubernetes, its recommended that you install a newer version of Velero. For more information on supported Kubernetes versions, see the Velero [compatibility matrix](https://github.com/vmware-tanzu/velero#velero-compatabilty-matrix). - `kubectl` installed locally Velero uses object storage to store backups and associated artifacts. It also optionally integrates with supported block storage systems to snapshot your persistent volumes. Before beginning the installation process, you should identify the object storage provider and optional block storage provider(s) you'll be using from the list of [compatible providers][0]. diff --git a/site/content/docs/v1.6/upgrade-to-1.6.md b/site/content/docs/v1.6/upgrade-to-1.6.md index deeb97116..84da0fccc 100644 --- a/site/content/docs/v1.6/upgrade-to-1.6.md +++ b/site/content/docs/v1.6/upgrade-to-1.6.md @@ -15,6 +15,8 @@ If you're not yet running at least Velero v1.5, see the following: - [Upgrading to v1.4][4] - [Upgrading to v1.5][5] +Before upgrading, check the [Velero compatibility matrix](https://github.com/vmware-tanzu/velero#velero-compatabilty-matrix) to make sure your version of Kubernetes is supported by the new version of Velero. + ## Instructions 1. Install the Velero v1.6 command-line interface (CLI) by following the [instructions here][0]. @@ -73,7 +75,7 @@ If you're not yet running at least Velero v1.5, see the following: ## Notes ### Default backup storage location -We have deprecated the way to indicate the default backup storage location. Previously, that was indicated according to the backup storage location name set on the velero server-side via the flag `velero server --default-backup-storage-location`. Now we configure the default backup storage location on the velero client-side. Please refer to the [About locations][9] on how to indicate which backup storage location is the default one. +We have deprecated the way to indicate the default backup storage location. Previously, that was indicated according to the backup storage location name set on the velero server-side via the flag `velero server --default-backup-storage-location`. Now we configure the default backup storage location on the velero client-side. Please refer to the [About locations][9] on how to indicate which backup storage location is the default one. After upgrading, if there is a previously created backup storage location with the name that matches what was defined on the server side as the default, it will be automatically set as the `default`. diff --git a/site/content/docs/v1.7/basic-install.md b/site/content/docs/v1.7/basic-install.md index 59ec19da9..efa082119 100644 --- a/site/content/docs/v1.7/basic-install.md +++ b/site/content/docs/v1.7/basic-install.md @@ -8,7 +8,7 @@ Refer [this document](customize-installation.md) to customize your installation. ## Prerequisites -- Access to a Kubernetes cluster, v1.12 or later, with DNS and container networking enabled. +- Access to a Kubernetes cluster, v1.12 or later, with DNS and container networking enabled. For more information on supported Kubernetes versions, see the Velero [compatibility matrix](https://github.com/vmware-tanzu/velero#velero-compatabilty-matrix). - `kubectl` installed locally Velero uses object storage to store backups and associated artifacts. It also optionally integrates with supported block storage systems to snapshot your persistent volumes. Before beginning the installation process, you should identify the object storage provider and optional block storage provider(s) you'll be using from the list of [compatible providers][0]. @@ -70,4 +70,4 @@ Please refer to [this part of the documentation][5]. [2]: on-premises.md [3]: overview-plugins.md [4]: customize-installation.md#install-an-additional-volume-snapshot-provider -[5]: customize-installation.md#optional-velero-cli-configurations \ No newline at end of file +[5]: customize-installation.md#optional-velero-cli-configurations diff --git a/site/content/docs/v1.7/upgrade-to-1.7.md b/site/content/docs/v1.7/upgrade-to-1.7.md index 4731bddaa..c46b881c1 100644 --- a/site/content/docs/v1.7/upgrade-to-1.7.md +++ b/site/content/docs/v1.7/upgrade-to-1.7.md @@ -16,6 +16,8 @@ If you're not yet running at least Velero v1.6, see the following: - [Upgrading to v1.5][5] - [Upgrading to v1.6][6] +Before upgrading, check the [Velero compatibility matrix](https://github.com/vmware-tanzu/velero#velero-compatabilty-matrix) to make sure your version of Kubernetes is supported by the new version of Velero. + ## Instructions 1. Install the Velero v1.7 command-line interface (CLI) by following the [instructions here][0]. @@ -47,7 +49,7 @@ If you're not yet running at least Velero v1.6, see the following: 1. Update the container image used by the Velero deployment, plugin and, optionally, the restic daemon set: ```bash - # set the container and image of the init container for plugin accordingly, + # set the container and image of the init container for plugin accordingly, # if you are using other plugin kubectl set image deployment/velero \ velero=velero/velero:v1.7.0 \ @@ -79,7 +81,7 @@ If you're not yet running at least Velero v1.6, see the following: ## Notes ### Default backup storage location -We have deprecated the way to indicate the default backup storage location. Previously, that was indicated according to the backup storage location name set on the velero server-side via the flag `velero server --default-backup-storage-location`. Now we configure the default backup storage location on the velero client-side. Please refer to the [About locations][9] on how to indicate which backup storage location is the default one. +We have deprecated the way to indicate the default backup storage location. Previously, that was indicated according to the backup storage location name set on the velero server-side via the flag `velero server --default-backup-storage-location`. Now we configure the default backup storage location on the velero client-side. Please refer to the [About locations][9] on how to indicate which backup storage location is the default one. After upgrading, if there is a previously created backup storage location with the name that matches what was defined on the server side as the default, it will be automatically set as the `default`. From 527af083153e954f60d36e197f98ac9b877c8c5f Mon Sep 17 00:00:00 2001 From: Abigail McCarthy Date: Thu, 6 Jan 2022 14:21:32 -0500 Subject: [PATCH 090/136] readme changes Signed-off-by: Abigail McCarthy --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 4dcefa133..36cc3baff 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,18 @@ If you are ready to jump in and test, add code, or help with documentation, foll See [the list of releases][6] 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 | Kubernetes versions| +|----------------|--------------------| +| 1.8 | 1.16-latest | +| 1.6.3-1.7.1 | 1.12-latest | +| 1.60-1.6.2 | 1.12-1.21 | +| 1.5 | 1.12-1.21 | +| 1.4 | 1.10-1.21 | + [1]: https://github.com/vmware-tanzu/velero/workflows/Main%20CI/badge.svg [2]: https://github.com/vmware-tanzu/velero/actions?query=workflow%3A"Main+CI" [4]: https://github.com/vmware-tanzu/velero/issues From d17db327f778273ad9247a8c025417f2dd966cdf Mon Sep 17 00:00:00 2001 From: Neha Viswanathan Date: Thu, 9 Dec 2021 20:34:51 -0800 Subject: [PATCH 091/136] update migration across different Kubernetes versions section Signed-off-by: Neha Viswanathan --- site/content/docs/main/migration-case.md | 1 + site/content/docs/v1.6/migration-case.md | 1 + site/content/docs/v1.7/migration-case.md | 1 + 3 files changed, 3 insertions(+) diff --git a/site/content/docs/main/migration-case.md b/site/content/docs/main/migration-case.md index c547ebbb4..9ad7b809a 100644 --- a/site/content/docs/main/migration-case.md +++ b/site/content/docs/main/migration-case.md @@ -53,6 +53,7 @@ If you encounter issues, make sure that Velero is running in the same namespace ## Migrating Workloads Across Different Kubernetes Versions Migration across clusters that are not running the same version of Kubernetes might be possible, but some factors need to be considered: compatibility of API groups between clusters for each custom resource, and if a Kubernetes version upgrade breaks the compatibility of core/native API groups. For more information about API group versions, please see [EnableAPIGroupVersions](enable-api-group-versions-feature.md). +**Note:** Velero doesn't support restoring into a cluster with a lower Kubernetes version than where the backup was taken. [1]: how-velero-works.md#set-a-backup-to-expire [2]: restic.md diff --git a/site/content/docs/v1.6/migration-case.md b/site/content/docs/v1.6/migration-case.md index c547ebbb4..9ad7b809a 100644 --- a/site/content/docs/v1.6/migration-case.md +++ b/site/content/docs/v1.6/migration-case.md @@ -53,6 +53,7 @@ If you encounter issues, make sure that Velero is running in the same namespace ## Migrating Workloads Across Different Kubernetes Versions Migration across clusters that are not running the same version of Kubernetes might be possible, but some factors need to be considered: compatibility of API groups between clusters for each custom resource, and if a Kubernetes version upgrade breaks the compatibility of core/native API groups. For more information about API group versions, please see [EnableAPIGroupVersions](enable-api-group-versions-feature.md). +**Note:** Velero doesn't support restoring into a cluster with a lower Kubernetes version than where the backup was taken. [1]: how-velero-works.md#set-a-backup-to-expire [2]: restic.md diff --git a/site/content/docs/v1.7/migration-case.md b/site/content/docs/v1.7/migration-case.md index c547ebbb4..9ad7b809a 100644 --- a/site/content/docs/v1.7/migration-case.md +++ b/site/content/docs/v1.7/migration-case.md @@ -53,6 +53,7 @@ If you encounter issues, make sure that Velero is running in the same namespace ## Migrating Workloads Across Different Kubernetes Versions Migration across clusters that are not running the same version of Kubernetes might be possible, but some factors need to be considered: compatibility of API groups between clusters for each custom resource, and if a Kubernetes version upgrade breaks the compatibility of core/native API groups. For more information about API group versions, please see [EnableAPIGroupVersions](enable-api-group-versions-feature.md). +**Note:** Velero doesn't support restoring into a cluster with a lower Kubernetes version than where the backup was taken. [1]: how-velero-works.md#set-a-backup-to-expire [2]: restic.md From f0542047b85d14b016d1ecd4fa53e75609634ea6 Mon Sep 17 00:00:00 2001 From: Abigail McCarthy Date: Fri, 7 Jan 2022 09:20:27 -0500 Subject: [PATCH 092/136] minor typo fixes Signed-off-by: Abigail McCarthy --- site/content/docs/main/csi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/docs/main/csi.md b/site/content/docs/main/csi.md index dd2caf265..99b54119f 100644 --- a/site/content/docs/main/csi.md +++ b/site/content/docs/main/csi.md @@ -9,7 +9,7 @@ By supporting CSI snapshot APIs, Velero can support any volume provider that has The Velero Container Storage Interface (CSI) plugins are in beta. It's not recommended for use in a production environment and the `EnableCSI` feature flag is disabled by default. The Velero team plans to follow the upstream Kubernetes support level for CSI volume snapshotting, and the Velero CSI plugins will reach general availability sometime after volume snapshotting is GA in upstream Kubernetes. -**Note:** The AWS, Microsoft Azure, and Google Cloud Platform (GCP) Velero plugins version 1.4 and later are able snapshot and restore persistent volume provisioned by the CSI driver via the APIs of the cloud provider, without having to install Velero CSI plugins. +**Note:** The AWS, Microsoft Azure, and Google Cloud Platform (GCP) Velero plugins version 1.4 and later are able to snapshot and restore persistent volumes provisioned by a CSI driver via the APIs of the cloud provider, without having to install Velero CSI plugins. ## Prerequisites From 4cca3996f507a170561f4683f2c47427e7b541e3 Mon Sep 17 00:00:00 2001 From: Abigail McCarthy Date: Fri, 7 Jan 2022 09:34:36 -0500 Subject: [PATCH 093/136] add links to plugin repos Signed-off-by: Abigail McCarthy --- site/content/docs/main/csi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/docs/main/csi.md b/site/content/docs/main/csi.md index 99b54119f..5c2950b35 100644 --- a/site/content/docs/main/csi.md +++ b/site/content/docs/main/csi.md @@ -9,7 +9,7 @@ By supporting CSI snapshot APIs, Velero can support any volume provider that has The Velero Container Storage Interface (CSI) plugins are in beta. It's not recommended for use in a production environment and the `EnableCSI` feature flag is disabled by default. The Velero team plans to follow the upstream Kubernetes support level for CSI volume snapshotting, and the Velero CSI plugins will reach general availability sometime after volume snapshotting is GA in upstream Kubernetes. -**Note:** The AWS, Microsoft Azure, and Google Cloud Platform (GCP) Velero plugins version 1.4 and later are able to snapshot and restore persistent volumes provisioned by a CSI driver via the APIs of the cloud provider, without having to install Velero CSI plugins. +**Note:** The AWS, Microsoft Azure, and Google Cloud Platform (GCP) Velero plugins version 1.4 and later are able to snapshot and restore persistent volumes provisioned by a CSI driver via the APIs of the cloud provider, without having to install Velero CSI plugins. See the [AWS](https://github.com/vmware-tanzu/velero-plugin-for-aws), [Microsoft Azure](https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure), and [Google Cloud Platform (GCP)](https://github.com/vmware-tanzu/velero-plugin-for-gcp) Velero plugin repo for more information on supported CSI drivers. ## Prerequisites From 3af149afaeaada1b8a0c2cf688688cd05dc55a26 Mon Sep 17 00:00:00 2001 From: danfengl Date: Sun, 9 Jan 2022 02:30:50 +0000 Subject: [PATCH 094/136] Bump up velero version in upgrade test Velero 1.8 is releasing soon, upgrade test covers the last release version to the main code. Signed-off-by: danfengl --- test/e2e/e2e_suite_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/e2e_suite_test.go b/test/e2e/e2e_suite_test.go index 50ebc8e0a..f33fe03a8 100644 --- a/test/e2e/e2e_suite_test.go +++ b/test/e2e/e2e_suite_test.go @@ -46,7 +46,7 @@ func init() { flag.StringVar(&VeleroCfg.VeleroVersion, "velero-version", "main", "image version for the velero server to be tested with.") flag.StringVar(&VeleroCfg.ResticHelperImage, "restic-helper-image", "", "image for the velero restic restore helper to be tested.") flag.StringVar(&VeleroCfg.UpgradeFromVeleroCLI, "upgrade-from-velero-cli", "", "path to the pre-upgrade velero application to use.") - flag.StringVar(&VeleroCfg.UpgradeFromVeleroVersion, "upgrade-from-velero-version", "v1.6.3", "image for the pre-upgrade velero server to be tested.") + flag.StringVar(&VeleroCfg.UpgradeFromVeleroVersion, "upgrade-from-velero-version", "v1.7.1", "image for the pre-upgrade velero server to be tested.") flag.StringVar(&VeleroCfg.BSLConfig, "bsl-config", "", "configuration to use for the backup storage location. Format is key1=value1,key2=value2") flag.StringVar(&VeleroCfg.BSLPrefix, "prefix", "", "prefix under which all Velero data should be stored within the bucket. Optional.") flag.StringVar(&VeleroCfg.VSLConfig, "vsl-config", "", "configuration to use for the volume snapshot location. Format is key1=value1,key2=value2") From 2a492ded94fa2801f0ff455cb3f4936eb74fbc67 Mon Sep 17 00:00:00 2001 From: danfengl Date: Mon, 10 Jan 2022 12:02:55 +0000 Subject: [PATCH 095/136] Fix E2E upgrade parameter issue caused by previous PR Signed-off-by: danfengl --- test/e2e/Makefile | 2 +- test/e2e/upgrade/upgrade.go | 29 +++++++++++++++++------------ 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/test/e2e/Makefile b/test/e2e/Makefile index 86cd8b892..cf8eacd24 100644 --- a/test/e2e/Makefile +++ b/test/e2e/Makefile @@ -53,7 +53,7 @@ PLUGINS ?= RESTIC_HELPER_IMAGE ?= #Released version only UPGRADE_FROM_VELERO_CLI ?= -UPGRADE_FROM_VELERO_VERSION ?= v1.6.3 +UPGRADE_FROM_VELERO_VERSION ?= v1.7.1 VELERO_NAMESPACE ?= velero CREDS_FILE ?= BSL_BUCKET ?= diff --git a/test/e2e/upgrade/upgrade.go b/test/e2e/upgrade/upgrade.go index 1f8c86153..7a7d818a8 100644 --- a/test/e2e/upgrade/upgrade.go +++ b/test/e2e/upgrade/upgrade.go @@ -59,12 +59,6 @@ func BackupUpgradeRestoreTest(useVolumeSnapshots bool) { if useVolumeSnapshots && VeleroCfg.CloudProvider == "kind" { Skip("Volume snapshots not supported on kind") } - //Assume tag of velero server image is identical to velero CLI version - //Download velero CLI if it's empty according to velero CLI version - if (len(VeleroCfg.UpgradeFromVeleroCLI)) == 0 { - upgradeFromVeleroCLI, err = InstallVeleroCLI(VeleroCfg.UpgradeFromVeleroVersion) - Expect(err).To(Succeed()) - } var err error flag.Parse() @@ -74,12 +68,18 @@ func BackupUpgradeRestoreTest(useVolumeSnapshots bool) { //Set VeleroImage and ResticHelperImage to blank //VeleroImage and ResticHelperImage should be the default value in originalCli tmpCfg := VeleroCfg - tmpCfg.VeleroCLI = upgradeFromVeleroCLI tmpCfg.VeleroImage = "" tmpCfg.ResticHelperImage = "" tmpCfg.Plugins = "" + //Assume tag of velero server image is identical to velero CLI version + //Download velero CLI if it's empty according to velero CLI version + if (len(VeleroCfg.UpgradeFromVeleroCLI)) == 0 { + tmpCfg.VeleroCLI, err = InstallVeleroCLI(VeleroCfg.UpgradeFromVeleroVersion) + upgradeFromVeleroCLI = tmpCfg.VeleroCLI + Expect(err).To(Succeed()) + } Expect(VeleroInstall(context.Background(), &tmpCfg, "", useVolumeSnapshots)).To(Succeed()) - Expect(CheckVeleroVersion(context.Background(), upgradeFromVeleroCLI, tmpCfg.UpgradeFromVeleroVersion)).To(Succeed()) + Expect(CheckVeleroVersion(context.Background(), tmpCfg.VeleroCLI, tmpCfg.UpgradeFromVeleroVersion)).To(Succeed()) } else { Skip("Upgrade test is skipped since user don't want to install any other velero") } @@ -96,14 +96,19 @@ func BackupUpgradeRestoreTest(useVolumeSnapshots bool) { It("should be successfully backed up and restored to the default BackupStorageLocation", func() { backupName = "backup-" + UUIDgen.String() restoreName = "restore-" + UUIDgen.String() - Expect(runUpgradeTests(client, &VeleroCfg, upgradeFromVeleroCLI, backupName, restoreName, "", useVolumeSnapshots)).To(Succeed(), + tmpCfg := VeleroCfg + if (len(VeleroCfg.UpgradeFromVeleroCLI)) == 0 { + tmpCfg.UpgradeFromVeleroCLI = upgradeFromVeleroCLI + Expect(err).To(Succeed()) + } + Expect(runUpgradeTests(client, &tmpCfg, backupName, restoreName, "", useVolumeSnapshots)).To(Succeed(), "Failed to successfully backup and restore Kibishii namespace") }) }) } // runUpgradeTests runs upgrade test on the provider by kibishii. -func runUpgradeTests(client TestClient, veleroCfg *VerleroConfig, upgradeFromVeleroCLI, backupName, restoreName, backupLocation string, +func runUpgradeTests(client TestClient, veleroCfg *VerleroConfig, backupName, restoreName, backupLocation string, useVolumeSnapshots bool) error { if veleroCfg.VeleroCLI == "" { return errors.New("empty") @@ -121,10 +126,10 @@ func runUpgradeTests(client TestClient, veleroCfg *VerleroConfig, upgradeFromVel return errors.Wrapf(err, "Failed to install and prepare data for kibishii %s", upgradeNamespace) } - if err := VeleroBackupNamespace(oneHourTimeout, upgradeFromVeleroCLI, veleroCfg.VeleroNamespace, backupName, upgradeNamespace, backupLocation, useVolumeSnapshots); err != nil { + if err := VeleroBackupNamespace(oneHourTimeout, veleroCfg.UpgradeFromVeleroCLI, veleroCfg.VeleroNamespace, backupName, upgradeNamespace, backupLocation, useVolumeSnapshots); err != nil { // TODO currently, the upgrade case covers the upgrade path from 1.6 to main and the velero v1.6 doesn't support "debug" command // TODO move to "RunDebug" after we bump up to 1.7 in the upgrade case - VeleroBackupLogs(context.Background(), upgradeFromVeleroCLI, veleroCfg.VeleroNamespace, backupName) + VeleroBackupLogs(context.Background(), veleroCfg.UpgradeFromVeleroCLI, veleroCfg.VeleroNamespace, backupName) return errors.Wrapf(err, "Failed to backup kibishii namespace %s", upgradeNamespace) } From 62779bbcc60f8ebca3e962fb3b6f790df1a7ecce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Tue, 11 Jan 2022 09:55:49 +0800 Subject: [PATCH 096/136] Check the existence of the expected service when ignoring the NodePort already allocated error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Check the existence of the expected service when ignoring the NodePort already allocated error Fixes 2308 Signed-off-by: Wenkai Yin(尹文开) --- pkg/builder/service_builder.go | 57 +++++++++++++++++++++++++++++ pkg/restore/restore.go | 38 ++++++++++++------- pkg/restore/restore_test.go | 67 ++++++++++++++++++++++++++++++---- pkg/test/resources.go | 11 ++++++ 4 files changed, 152 insertions(+), 21 deletions(-) create mode 100644 pkg/builder/service_builder.go diff --git a/pkg/builder/service_builder.go b/pkg/builder/service_builder.go new file mode 100644 index 000000000..059d2980a --- /dev/null +++ b/pkg/builder/service_builder.go @@ -0,0 +1,57 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package builder + +import ( + corev1api "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// ServiceBuilder builds Service objects. +type ServiceBuilder struct { + object *corev1api.Service +} + +// ForService is the constructor for a ServiceBuilder. +func ForService(ns, name string) *ServiceBuilder { + return &ServiceBuilder{ + object: &corev1api.Service{ + TypeMeta: metav1.TypeMeta{ + APIVersion: corev1api.SchemeGroupVersion.String(), + Kind: "Service", + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: ns, + Name: name, + }, + }, + } +} + +// Result returns the built Service. +func (s *ServiceBuilder) Result() *corev1api.Service { + return s.object +} + +// ObjectMeta applies functional options to the Service's ObjectMeta. +func (s *ServiceBuilder) ObjectMeta(opts ...ObjectMetaOpt) *ServiceBuilder { + for _, opt := range opts { + opt(s.object) + } + + return s +} diff --git a/pkg/restore/restore.go b/pkg/restore/restore.go index d071a8a59..73b880779 100644 --- a/pkg/restore/restore.go +++ b/pkg/restore/restore.go @@ -1224,7 +1224,12 @@ func (ctx *restoreContext) restoreItem(obj *unstructured.Unstructured, groupReso ctx.log.Infof("Attempting to restore %s: %v", obj.GroupVersionKind().Kind, name) createdObj, restoreErr := resourceClient.Create(obj) - if isAlreadyExistsError(ctx, obj, restoreErr) { + isAlreadyExistsError, err := isAlreadyExistsError(ctx, obj, restoreErr, resourceClient) + if err != nil { + errs.Add(namespace, err) + return warnings, errs + } + if isAlreadyExistsError { fromCluster, err := resourceClient.Get(name, metav1.GetOptions{}) if err != nil { ctx.log.Infof("Error retrieving cluster version of %s: %v", kube.NamespaceAndName(obj), err) @@ -1274,7 +1279,8 @@ func (ctx *restoreContext) restoreItem(obj *unstructured.Unstructured, groupReso ctx.log.Infof("ServiceAccount %s successfully updated", kube.NamespaceAndName(obj)) } default: - e := errors.Errorf("could not restore, %s. Warning: the in-cluster version is different than the backed-up version.", restoreErr) + e := errors.Errorf("could not restore, %s %q already exists. Warning: the in-cluster version is different than the backed-up version.", + obj.GetKind(), obj.GetName()) warnings.Add(namespace, e) } return warnings, errs @@ -1321,12 +1327,12 @@ func (ctx *restoreContext) restoreItem(obj *unstructured.Unstructured, groupReso return warnings, errs } -func isAlreadyExistsError(ctx *restoreContext, obj *unstructured.Unstructured, err error) bool { +func isAlreadyExistsError(ctx *restoreContext, obj *unstructured.Unstructured, err error, client client.Dynamic) (bool, error) { if err == nil { - return false + return false, nil } if apierrors.IsAlreadyExists(err) { - return true + return true, nil } // The "invalid value error" or "internal error" rather than "already exists" error returns when restoring nodePort service in the following two cases: // 1. For NodePort service, the service has nodePort preservation while the same nodePort service already exists. - Get invalid value error @@ -1334,24 +1340,30 @@ func isAlreadyExistsError(ctx *restoreContext, obj *unstructured.Unstructured, e // If this is the case, the function returns true to avoid reporting error. // Refer to https://github.com/vmware-tanzu/velero/issues/2308 for more details if obj.GetKind() != "Service" { - return false + return false, nil } statusErr, ok := err.(*apierrors.StatusError) if !ok || statusErr.Status().Details == nil || len(statusErr.Status().Details.Causes) == 0 { - return false + return false, nil } // make sure all the causes are "port allocated" error - isAllocatedErr := true for _, cause := range statusErr.Status().Details.Causes { if !strings.Contains(cause.Message, "provided port is already allocated") { - isAllocatedErr = false - break + return false, nil } } - if isAllocatedErr { - ctx.log.Infof("ignore the provided port is already allocated error for service %s", kube.NamespaceAndName(obj)) + + // the "already allocated" error may caused by other services, check whether the expected service exists or not + if _, err = client.Get(obj.GetName(), metav1.GetOptions{}); err != nil { + if apierrors.IsNotFound(err) { + ctx.log.Debugf("Service %s not found", kube.NamespaceAndName(obj)) + return false, nil + } + return false, errors.Wrapf(err, "Unable to get the service %s while checking the NodePort is already allocated error", kube.NamespaceAndName(obj)) } - return isAllocatedErr + + ctx.log.Infof("Service %s exists, ignore the provided port is already allocated error", kube.NamespaceAndName(obj)) + return true, nil } // shouldRenamePV returns a boolean indicating whether a persistent volume should diff --git a/pkg/restore/restore_test.go b/pkg/restore/restore_test.go index ec45a5153..00bc03ec8 100644 --- a/pkg/restore/restore_test.go +++ b/pkg/restore/restore_test.go @@ -3024,10 +3024,11 @@ func Test_resetVolumeBindingInfo(t *testing.T) { func TestIsAlreadyExistsError(t *testing.T) { tests := []struct { - name string - obj *unstructured.Unstructured - err error - expected bool + name string + apiResource *test.APIResource + obj *unstructured.Unstructured + err error + expected bool }{ { name: "The input error is IsAlreadyExists error", @@ -3078,10 +3079,40 @@ func TestIsAlreadyExistsError(t *testing.T) { expected: false, }, { - name: "The causes contains only port already allocated error", + name: "Get already allocated error but the service doesn't exist", obj: &unstructured.Unstructured{ Object: map[string]interface{}{ "kind": "Service", + "metadata": map[string]interface{}{ + "namespace": "default", + "name": "test", + }, + }, + }, + err: &apierrors.StatusError{ + ErrStatus: metav1.Status{ + Reason: metav1.StatusReasonInvalid, + Details: &metav1.StatusDetails{ + Causes: []metav1.StatusCause{ + {Message: "provided port is already allocated"}, + }, + }, + }, + }, + expected: false, + }, + { + name: "Get already allocated error and the service exists", + apiResource: test.Services( + builder.ForService("default", "test").Result(), + ), + obj: &unstructured.Unstructured{ + Object: map[string]interface{}{ + "kind": "Service", + "metadata": map[string]interface{}{ + "namespace": "default", + "name": "test", + }, }, }, err: &apierrors.StatusError{ @@ -3098,10 +3129,30 @@ func TestIsAlreadyExistsError(t *testing.T) { }, } for _, test := range tests { + h := newHarness(t) + + ctx := &restoreContext{ + log: h.log, + dynamicFactory: client.NewDynamicFactory(h.DynamicClient), + namespaceClient: h.KubeClient.CoreV1().Namespaces(), + } + + if test.apiResource != nil { + h.AddItems(t, test.apiResource) + } + + client, err := ctx.dynamicFactory.ClientForGroupVersionResource( + schema.GroupVersion{Group: "", Version: "v1"}, + metav1.APIResource{Name: "services"}, + "default", + ) + require.NoError(t, err) + t.Run(test.name, func(t *testing.T) { - assert.Equal(t, test.expected, isAlreadyExistsError(&restoreContext{ - log: logrus.StandardLogger(), - }, test.obj, test.err)) + result, err := isAlreadyExistsError(ctx, test.obj, test.err, client) + require.NoError(t, err) + + assert.Equal(t, test.expected, result) }) } } diff --git a/pkg/test/resources.go b/pkg/test/resources.go index 69e8dbf90..9e09fccdf 100644 --- a/pkg/test/resources.go +++ b/pkg/test/resources.go @@ -162,3 +162,14 @@ func VSLs(items ...metav1.Object) *APIResource { Items: items, } } + +func Services(items ...metav1.Object) *APIResource { + return &APIResource{ + Group: "", + Version: "v1", + Name: "services", + ShortName: "svc", + Namespaced: true, + Items: items, + } +} From a246be48c04fac5284e86147a4ea38d58845052a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Wed, 12 Jan 2022 16:34:47 +0800 Subject: [PATCH 097/136] Support running e2e testing on k8s 1.23.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Support running e2e testing on k8s 1.23.0 Signed-off-by: Wenkai Yin(尹文开) --- .github/workflows/e2e-test-kind.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e-test-kind.yaml b/.github/workflows/e2e-test-kind.yaml index 9d0770e9d..e2ed379b7 100644 --- a/.github/workflows/e2e-test-kind.yaml +++ b/.github/workflows/e2e-test-kind.yaml @@ -14,7 +14,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: 1.16 + go-version: 1.17 id: go # Look for a CLI that's made for this PR - name: Fetch built CLI @@ -69,12 +69,13 @@ jobs: - 1.20.2 - 1.21.1 - 1.22.0 + - 1.23.0 fail-fast: false steps: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: 1.16 + go-version: 1.17 id: go - name: Check out the code uses: actions/checkout@v2 From fcad46ccdf2aa8505353e9cd09cea03e4aad33b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Tue, 11 Jan 2022 14:47:57 +0800 Subject: [PATCH 098/136] Check whether the volume is provisioned by CSI driver or not by the annotation as well MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Check whether the volume is provisioned by CSI driver or not by the annotation as well Fixes #4496 Signed-off-by: Wenkai Yin(尹文开) --- Tiltfile | 2 +- changelogs/unreleased/4513-ywk253100 | 1 + pkg/cmd/cli/restic/server.go | 2 + .../pod_volume_backup_controller.go | 2 +- .../pod_volume_restore_controller.go | 2 +- pkg/restore/restore.go | 12 +---- pkg/restore/restore_test.go | 13 +++--- pkg/util/kube/utils.go | 45 ++++++++++++++++++- pkg/util/kube/utils_test.go | 15 ++++++- 9 files changed, 72 insertions(+), 22 deletions(-) create mode 100644 changelogs/unreleased/4513-ywk253100 diff --git a/Tiltfile b/Tiltfile index 6ea745531..ba36e3346 100644 --- a/Tiltfile +++ b/Tiltfile @@ -103,7 +103,7 @@ local_resource( local_resource( "restic_binary", - cmd = 'cd ' + '.' + ';mkdir -p _tiltbuild/restic; BIN=velero GOOS=' + local_goos + ' GOARCH=amd64 RESTIC_VERSION=0.12.0 OUTPUT_DIR=_tiltbuild/restic ./hack/download-restic.sh', + cmd = 'cd ' + '.' + ';mkdir -p _tiltbuild/restic; BIN=velero GOOS=linux GOARCH=amd64 RESTIC_VERSION=0.12.0 OUTPUT_DIR=_tiltbuild/restic ./hack/download-restic.sh', ) # Note: we need a distro with a bash shell to exec into the Velero container diff --git a/changelogs/unreleased/4513-ywk253100 b/changelogs/unreleased/4513-ywk253100 new file mode 100644 index 000000000..62118cb61 --- /dev/null +++ b/changelogs/unreleased/4513-ywk253100 @@ -0,0 +1 @@ +Check whether the volume is provisioned by CSI driver or not by the annotation as well \ No newline at end of file diff --git a/pkg/cmd/cli/restic/server.go b/pkg/cmd/cli/restic/server.go index 4de389bf9..5f8fd526b 100644 --- a/pkg/cmd/cli/restic/server.go +++ b/pkg/cmd/cli/restic/server.go @@ -32,6 +32,7 @@ import ( "github.com/sirupsen/logrus" "github.com/spf13/cobra" v1 "k8s.io/api/core/v1" + storagev1api "k8s.io/api/storage/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" @@ -151,6 +152,7 @@ func newResticServer(logger logrus.FieldLogger, factory client.Factory, metricAd velerov1api.AddToScheme(scheme) v1.AddToScheme(scheme) + storagev1api.AddToScheme(scheme) mgr, err := ctrl.NewManager(clientConfig, ctrl.Options{ Scheme: scheme, }) diff --git a/pkg/controller/pod_volume_backup_controller.go b/pkg/controller/pod_volume_backup_controller.go index ef9c8e4c1..7c92ca187 100644 --- a/pkg/controller/pod_volume_backup_controller.go +++ b/pkg/controller/pod_volume_backup_controller.go @@ -208,7 +208,7 @@ func (c *podVolumeBackupController) processBackup(req *velerov1api.PodVolumeBack return c.fail(req, errors.Wrap(err, "error getting pod").Error(), log) } - volumeDir, err := kube.GetVolumeDirectory(pod, req.Spec.Volume, c.pvcLister, c.pvLister) + volumeDir, err := kube.GetVolumeDirectory(log, pod, req.Spec.Volume, c.pvcLister, c.pvLister, c.kbClient) if err != nil { log.WithError(err).Error("Error getting volume directory name") return c.fail(req, errors.Wrap(err, "error getting volume directory name").Error(), log) diff --git a/pkg/controller/pod_volume_restore_controller.go b/pkg/controller/pod_volume_restore_controller.go index 3b13cb8a8..e04de5c65 100644 --- a/pkg/controller/pod_volume_restore_controller.go +++ b/pkg/controller/pod_volume_restore_controller.go @@ -297,7 +297,7 @@ func (c *podVolumeRestoreController) processRestore(req *velerov1api.PodVolumeRe return c.failRestore(req, errors.Wrap(err, "error getting pod").Error(), log) } - volumeDir, err := kube.GetVolumeDirectory(pod, req.Spec.Volume, c.pvcLister, c.pvLister) + volumeDir, err := kube.GetVolumeDirectory(log, pod, req.Spec.Volume, c.pvcLister, c.pvLister, c.kbClient) if err != nil { log.WithError(err).Error("Error getting volume directory name") return c.failRestore(req, errors.Wrap(err, "error getting volume directory name").Error(), log) diff --git a/pkg/restore/restore.go b/pkg/restore/restore.go index 73b880779..7eb8c8136 100644 --- a/pkg/restore/restore.go +++ b/pkg/restore/restore.go @@ -67,14 +67,6 @@ import ( "github.com/vmware-tanzu/velero/pkg/volume" ) -// These annotations are taken from the Kubernetes persistent volume/persistent volume claim controller. -// They cannot be directly importing because they are part of the kubernetes/kubernetes package, and importing that package is unsupported. -// Their values are well-known and slow changing. They're duplicated here as constants to provide compile-time checking. -// Originals can be found in kubernetes/kubernetes/pkg/controller/volume/persistentvolume/util/util.go. -const KubeAnnBindCompleted = "pv.kubernetes.io/bind-completed" -const KubeAnnBoundByController = "pv.kubernetes.io/bound-by-controller" -const KubeAnnDynamicallyProvisioned = "pv.kubernetes.io/provisioned-by" - type VolumeSnapshotterGetter interface { GetVolumeSnapshotter(name string) (velero.VolumeSnapshotter, error) } @@ -1570,10 +1562,10 @@ func resetVolumeBindingInfo(obj *unstructured.Unstructured) *unstructured.Unstru // Upon restore, this new PV will look like a statically provisioned, manually- // bound volume rather than one bound by the controller, so remove the annotation // that signals that a controller bound it. - delete(annotations, KubeAnnBindCompleted) + delete(annotations, kube.KubeAnnBindCompleted) // Remove the annotation that signals that the PV is already bound; we want // the PV(C) controller to take the two objects and bind them again. - delete(annotations, KubeAnnBoundByController) + delete(annotations, kube.KubeAnnBoundByController) // GetAnnotations returns a copy, so we have to set them again. obj.SetAnnotations(annotations) diff --git a/pkg/restore/restore_test.go b/pkg/restore/restore_test.go index 00bc03ec8..a81676085 100644 --- a/pkg/restore/restore_test.go +++ b/pkg/restore/restore_test.go @@ -52,6 +52,7 @@ import ( resticmocks "github.com/vmware-tanzu/velero/pkg/restic/mocks" "github.com/vmware-tanzu/velero/pkg/test" testutil "github.com/vmware-tanzu/velero/pkg/test" + "github.com/vmware-tanzu/velero/pkg/util/kube" kubeutil "github.com/vmware-tanzu/velero/pkg/util/kube" "github.com/vmware-tanzu/velero/pkg/volume" ) @@ -2987,9 +2988,9 @@ func Test_resetVolumeBindingInfo(t *testing.T) { name: "PVs that are bound have their binding and dynamic provisioning annotations removed", obj: NewTestUnstructured().WithMetadataField("kind", "persistentVolume"). WithName("pv-1").WithAnnotations( - KubeAnnBindCompleted, - KubeAnnBoundByController, - KubeAnnDynamicallyProvisioned, + kube.KubeAnnBindCompleted, + kube.KubeAnnBoundByController, + kube.KubeAnnDynamicallyProvisioned, ).WithSpecField("claimRef", map[string]interface{}{ "namespace": "ns-1", "name": "pvc-1", @@ -2997,7 +2998,7 @@ func Test_resetVolumeBindingInfo(t *testing.T) { "resourceVersion": "1"}).Unstructured, expected: NewTestUnstructured().WithMetadataField("kind", "persistentVolume"). WithName("pv-1"). - WithAnnotations(KubeAnnDynamicallyProvisioned). + WithAnnotations(kube.KubeAnnDynamicallyProvisioned). WithSpecField("claimRef", map[string]interface{}{ "namespace": "ns-1", "name": "pvc-1"}).Unstructured, }, @@ -3005,8 +3006,8 @@ func Test_resetVolumeBindingInfo(t *testing.T) { name: "PVCs that are bound have their binding annotations removed, but the volume name stays", obj: NewTestUnstructured().WithMetadataField("kind", "persistentVolumeClaim"). WithName("pvc-1").WithAnnotations( - KubeAnnBindCompleted, - KubeAnnBoundByController, + kube.KubeAnnBindCompleted, + kube.KubeAnnBoundByController, ).WithSpecField("volumeName", "pv-1").Unstructured, expected: NewTestUnstructured().WithMetadataField("kind", "persistentVolumeClaim"). WithName("pvc-1").WithAnnotations(). diff --git a/pkg/util/kube/utils.go b/pkg/util/kube/utils.go index 0dc096566..ccda34ad3 100644 --- a/pkg/util/kube/utils.go +++ b/pkg/util/kube/utils.go @@ -21,8 +21,12 @@ import ( "fmt" "time" + "sigs.k8s.io/controller-runtime/pkg/client" + "github.com/pkg/errors" + "github.com/sirupsen/logrus" corev1api "k8s.io/api/core/v1" + storagev1api "k8s.io/api/storage/v1" apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" apiextv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -34,6 +38,14 @@ import ( corev1listers "k8s.io/client-go/listers/core/v1" ) +// These annotations are taken from the Kubernetes persistent volume/persistent volume claim controller. +// They cannot be directly importing because they are part of the kubernetes/kubernetes package, and importing that package is unsupported. +// Their values are well-known and slow changing. They're duplicated here as constants to provide compile-time checking. +// Originals can be found in kubernetes/kubernetes/pkg/controller/volume/persistentvolume/util/util.go. +const KubeAnnBindCompleted = "pv.kubernetes.io/bind-completed" +const KubeAnnBoundByController = "pv.kubernetes.io/bound-by-controller" +const KubeAnnDynamicallyProvisioned = "pv.kubernetes.io/provisioned-by" + // NamespaceAndName returns a string in the format / func NamespaceAndName(objMeta metav1.Object) string { if objMeta.GetNamespace() == "" { @@ -105,7 +117,8 @@ func EnsureNamespaceExistsAndIsReady(namespace *corev1api.Namespace, client core // GetVolumeDirectory gets the name of the directory on the host, under /var/lib/kubelet/pods//volumes/, // where the specified volume lives. // For volumes with a CSIVolumeSource, append "/mount" to the directory name. -func GetVolumeDirectory(pod *corev1api.Pod, volumeName string, pvcLister corev1listers.PersistentVolumeClaimLister, pvLister corev1listers.PersistentVolumeLister) (string, error) { +func GetVolumeDirectory(log logrus.FieldLogger, pod *corev1api.Pod, volumeName string, pvcLister corev1listers.PersistentVolumeClaimLister, + pvLister corev1listers.PersistentVolumeLister, client client.Client) (string, error) { var volume *corev1api.Volume for _, item := range pod.Spec.Volumes { @@ -140,13 +153,41 @@ func GetVolumeDirectory(pod *corev1api.Pod, volumeName string, pvcLister corev1l } // PV's been created with a CSI source. - if pv.Spec.CSI != nil { + isProvisionedByCSI, err := isProvisionedByCSI(log, pv, client) + if err != nil { + return "", errors.WithStack(err) + } + if isProvisionedByCSI { return pvc.Spec.VolumeName + "/mount", nil } return pvc.Spec.VolumeName, nil } +func isProvisionedByCSI(log logrus.FieldLogger, pv *corev1api.PersistentVolume, kbClient client.Client) (bool, error) { + if pv.Spec.CSI != nil { + return true, nil + } + // Although the pv.Spec.CSI is nil, the volume could be provisioned by a CSI driver when enabling the CSI migration + // Refer to https://github.com/vmware-tanzu/velero/issues/4496 for more details + if pv.Annotations != nil { + driverName := pv.Annotations[KubeAnnDynamicallyProvisioned] + if len(driverName) > 0 { + list := &storagev1api.CSIDriverList{} + if err := kbClient.List(context.TODO(), list); err != nil { + return false, err + } + for _, driver := range list.Items { + if driverName == driver.Name { + log.Debugf("the annotation %s=%s indicates the volume is provisioned by a CSI driver", KubeAnnDynamicallyProvisioned, driverName) + return true, nil + } + } + } + } + return false, nil +} + // IsV1CRDReady checks a v1 CRD to see if it's ready, with both the Established and NamesAccepted conditions. func IsV1CRDReady(crd *apiextv1.CustomResourceDefinition) bool { var isEstablished, namesAccepted bool diff --git a/pkg/util/kube/utils_test.go b/pkg/util/kube/utils_test.go index 115e09fea..eea77b110 100644 --- a/pkg/util/kube/utils_test.go +++ b/pkg/util/kube/utils_test.go @@ -25,6 +25,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" corev1 "k8s.io/api/core/v1" + storagev1api "k8s.io/api/storage/v1" apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" apiextv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" k8serrors "k8s.io/apimachinery/pkg/api/errors" @@ -33,6 +34,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" kubeinformers "k8s.io/client-go/informers" + "sigs.k8s.io/controller-runtime/pkg/client/fake" "github.com/vmware-tanzu/velero/pkg/builder" "github.com/vmware-tanzu/velero/pkg/test" @@ -188,8 +190,19 @@ func TestGetVolumeDirectorySuccess(t *testing.T) { pod: builder.ForPod("ns-1", "my-pod").Volumes(builder.ForVolume("my-vol").Result()).Result(), want: "my-vol", }, + { + name: "Volume with CSI annotation appends '/mount' to the volume name", + pod: builder.ForPod("ns-1", "my-pod").Volumes(builder.ForVolume("my-vol").PersistentVolumeClaimSource("my-pvc").Result()).Result(), + pvc: builder.ForPersistentVolumeClaim("ns-1", "my-pvc").VolumeName("a-pv").Result(), + pv: builder.ForPersistentVolume("a-pv").ObjectMeta(builder.WithAnnotations(KubeAnnDynamicallyProvisioned, "csi.test.com")).Result(), + want: "a-pv/mount", + }, } + csiDriver := storagev1api.CSIDriver{ + ObjectMeta: metav1.ObjectMeta{Name: "csi.test.com"}, + } + kbClient := fake.NewClientBuilder().WithLists(&storagev1api.CSIDriverList{Items: []storagev1api.CSIDriver{csiDriver}}).Build() for _, tc := range tests { h := newHarness(t) @@ -204,7 +217,7 @@ func TestGetVolumeDirectorySuccess(t *testing.T) { } // Function under test - dir, err := GetVolumeDirectory(tc.pod, tc.pod.Spec.Volumes[0].Name, pvcInformer.Lister(), pvInformer.Lister()) + dir, err := GetVolumeDirectory(logrus.StandardLogger(), tc.pod, tc.pod.Spec.Volumes[0].Name, pvcInformer.Lister(), pvInformer.Lister(), kbClient) require.NoError(t, err) assert.Equal(t, tc.want, dir) From f36161eeee9141fe5c643a59a51baf8f0f88e3d9 Mon Sep 17 00:00:00 2001 From: Ming Date: Wed, 12 Jan 2022 16:57:03 +0800 Subject: [PATCH 099/136] E2E test on ssr object with controller namespace mix-ups Signed-off-by: Ming --- changelogs/unreleased/4521-mqiu | 1 + test/e2e/e2e_suite_test.go | 2 + test/e2e/privilegesmgmt/ssr.go | 114 ++++++++++++++++++++++++++++++++ test/e2e/util/k8s/client.go | 4 +- 4 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 changelogs/unreleased/4521-mqiu create mode 100644 test/e2e/privilegesmgmt/ssr.go diff --git a/changelogs/unreleased/4521-mqiu b/changelogs/unreleased/4521-mqiu new file mode 100644 index 000000000..495b9fb21 --- /dev/null +++ b/changelogs/unreleased/4521-mqiu @@ -0,0 +1 @@ +E2E test on ssr object with controller namespace mix-ups diff --git a/test/e2e/e2e_suite_test.go b/test/e2e/e2e_suite_test.go index f33fe03a8..8540cf619 100644 --- a/test/e2e/e2e_suite_test.go +++ b/test/e2e/e2e_suite_test.go @@ -29,6 +29,7 @@ import ( . "github.com/vmware-tanzu/velero/test/e2e/backups" . "github.com/vmware-tanzu/velero/test/e2e/basic" . "github.com/vmware-tanzu/velero/test/e2e/basic/resources-check" + . "github.com/vmware-tanzu/velero/test/e2e/privilegesmgmt" . "github.com/vmware-tanzu/velero/test/e2e/resource-filtering" . "github.com/vmware-tanzu/velero/test/e2e/scale" . "github.com/vmware-tanzu/velero/test/e2e/upgrade" @@ -89,6 +90,7 @@ var _ = Describe("[ResourceFiltering][IncludeResources][Backup] Velero test on i var _ = Describe("[ResourceFiltering][IncludeResources][Restore] Velero test on include resources from the cluster restore", RestoreWithIncludeResources) var _ = Describe("[ResourceFiltering][LabelSelector] Velero test on backup include resources matching the label selector", BackupWithLabelSelector) var _ = Describe("[Backups][Deletion] Velero tests on cluster using the plugin provider for object storage and Restic for volume backups", Backup_deletion_with_restic) +var _ = Describe("[PrivilegesMgmt][SSR] Velero test on ssr object when controller namespace mix-ups", SSRTest) func TestE2e(t *testing.T) { // Skip running E2E tests when running only "short" tests because: diff --git a/test/e2e/privilegesmgmt/ssr.go b/test/e2e/privilegesmgmt/ssr.go new file mode 100644 index 000000000..8d1ce6940 --- /dev/null +++ b/test/e2e/privilegesmgmt/ssr.go @@ -0,0 +1,114 @@ +/* +Copyright the Velero contributors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +*/ + +package privilegesmgmt + +import ( + "context" + "flag" + "fmt" + "time" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + apierrors "k8s.io/apimachinery/pkg/api/errors" + waitutil "k8s.io/apimachinery/pkg/util/wait" + kbclient "sigs.k8s.io/controller-runtime/pkg/client" + + v1 "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" + . "github.com/vmware-tanzu/velero/test/e2e" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" + . "github.com/vmware-tanzu/velero/test/e2e/util/velero" +) + +func SSRTest() { + testNS := "ssr-test" + client, err := NewTestClient() + if err != nil { + println(err.Error()) + } + Expect(err).To(Succeed(), "Failed to instantiate cluster client for backup tests") + + BeforeEach(func() { + flag.Parse() + if VeleroCfg.InstallVelero { + Expect(VeleroInstall(context.Background(), &VeleroCfg, "", false)).To(Succeed()) + } + }) + + AfterEach(func() { + if VeleroCfg.InstallVelero { + Expect(VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace)).To(Succeed()) + } + }) + + It(fmt.Sprintf("Should create an ssr object in the %s namespace and later removed by controller", VeleroCfg.VeleroNamespace), func() { + defer DeleteNamespace(context.TODO(), client, testNS, false) + ctx, _ := context.WithTimeout(context.Background(), time.Duration(time.Minute*10)) + By(fmt.Sprintf("Create %s namespace", testNS)) + Expect(CreateNamespace(ctx, client, testNS)).To(Succeed(), + fmt.Sprintf("Failed to create %s namespace", testNS)) + + By(fmt.Sprintf("Get version in %s namespace", testNS)) + cmd := []string{"version", "-n", testNS} + Expect(VeleroCmdExec(context.Background(), VeleroCfg.VeleroCLI, cmd)).To(Succeed(), + fmt.Sprintf("Failed to create an ssr object in the %s namespace", testNS)) + + By(fmt.Sprintf("Get version in %s namespace", VeleroCfg.VeleroNamespace)) + cmd = []string{"version", "-n", VeleroCfg.VeleroNamespace} + Expect(VeleroCmdExec(context.Background(), VeleroCfg.VeleroCLI, cmd)).To(Succeed(), + 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)) + + By(fmt.Sprintf("Check ssr object in %s namespace", testNS)) + Expect(client.Kubebuilder.List(ctx, ssrListResp, &kbclient.ListOptions{Namespace: testNS})).To(Succeed(), + fmt.Sprintf("Failed to list ssr object in %s namespace", testNS)) + Expect(len(ssrListResp.Items)).To(BeNumerically("==", 1), + fmt.Sprintf("Count of ssr object in %s namespace is not 1", testNS)) + Expect(ssrListResp.Items[0].Status.Phase).To(BeEmpty(), + fmt.Sprintf("Status of ssr object in %s namespace should be empty", testNS)) + Expect(ssrListResp.Items[0].Status.ServerVersion).To(BeEmpty(), + fmt.Sprintf("ServerVersion of ssr object in %s namespace should be empty", testNS)) + + By(fmt.Sprintf("Waiting ssr object in %s namespace deleted", VeleroCfg.VeleroNamespace)) + err = waitutil.PollImmediateInfinite(5*time.Second, + func() (bool, error) { + if err = client.Kubebuilder.List(ctx, ssrListResp, &kbclient.ListOptions{Namespace: VeleroCfg.VeleroNamespace}); err != nil { + if apierrors.IsNotFound(err) { + return true, nil + } + return false, err + } + if len(ssrListResp.Items) != 0 { + return false, nil + } + return true, nil + }) + + Expect(err).To(Succeed(), fmt.Sprintf("ssr object in %s namespace is not been deleted by controller", VeleroCfg.VeleroNamespace)) + }) +} diff --git a/test/e2e/util/k8s/client.go b/test/e2e/util/k8s/client.go index ae7286988..a6907045d 100644 --- a/test/e2e/util/k8s/client.go +++ b/test/e2e/util/k8s/client.go @@ -29,7 +29,7 @@ import ( // the e2e tests. type TestClient struct { - kubebuilder kbclient.Client + Kubebuilder kbclient.Client // clientGo returns a client-go API client. // @@ -87,7 +87,7 @@ func InitTestClient() (TestClient, error) { factory := client.NewDynamicFactory(dynamicClient) return TestClient{ - kubebuilder: kb, + Kubebuilder: kb, ClientGo: clientGo, dynamicFactory: factory, }, nil From 7a5ae101e6c2b4aebdc25dee9af06b58c269615e Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Tue, 11 Jan 2022 16:59:33 +0800 Subject: [PATCH 100/136] Update doc for v1.8 Signed-off-by: Daniel Jiang --- changelogs/unreleased/4517-reasonerjt | 1 + site/config.yaml | 3 +- .../{upgrade-to-1.7.md => upgrade-to-1.8.md} | 27 +- site/content/docs/v1.8/_index.md | 58 ++ site/content/docs/v1.8/api-types/README.md | 21 + site/content/docs/v1.8/api-types/_index.md | 19 + site/content/docs/v1.8/api-types/backup.md | 148 +++++ .../v1.8/api-types/backupstoragelocation.md | 54 ++ site/content/docs/v1.8/api-types/restore.md | 168 ++++++ site/content/docs/v1.8/api-types/schedule.md | 142 +++++ .../v1.8/api-types/volumesnapshotlocation.md | 40 ++ site/content/docs/v1.8/backup-hooks.md | 92 +++ site/content/docs/v1.8/backup-reference.md | 70 +++ site/content/docs/v1.8/basic-install.md | 73 +++ site/content/docs/v1.8/build-from-source.md | 200 +++++++ site/content/docs/v1.8/code-standards.md | 151 +++++ .../docs/v1.8/contributions/ibm-config.md | 101 ++++ .../15ccaacf00640a04ae29ceed4c86195b.png | Bin 0 -> 132711 bytes .../1d53b0115644d43657c2a5ece805c9b4.png | Bin 0 -> 74478 bytes .../69194157ccd5e377d1e7d914fd8c0336.png | Bin 0 -> 32817 bytes .../9015313121ed7987558c88081b052574.png | Bin 0 -> 417063 bytes .../ceaca9ce6bc92bdce987c63d2fe71561.png | Bin 0 -> 292269 bytes .../e8c2ab4e5e31d1370c62fad25059a8a8.png | Bin 0 -> 65320 bytes .../e932223585c0b19891cc085ad7f438e1.png | Bin 0 -> 284090 bytes .../eb2bbabae48b188748f5278bedf177f1.png | Bin 0 -> 126032 bytes .../effe8a0a7ce3aa8e422db00bfdddc375.png | Bin 0 -> 85131 bytes .../f0fff5228527edc72d6e71a50d5dc966.png | Bin 0 -> 49558 bytes site/content/docs/v1.8/contributions/minio.md | 296 ++++++++++ .../docs/v1.8/contributions/oracle-config.md | 248 ++++++++ .../docs/v1.8/contributions/tencent-config.md | 168 ++++++ site/content/docs/v1.8/csi.md | 77 +++ site/content/docs/v1.8/custom-plugins.md | 121 ++++ .../docs/v1.8/customize-installation.md | 364 ++++++++++++ site/content/docs/v1.8/debugging-install.md | 74 +++ site/content/docs/v1.8/debugging-restores.md | 105 ++++ site/content/docs/v1.8/development.md | 56 ++ site/content/docs/v1.8/disaster-case.md | 44 ++ .../v1.8/enable-api-group-versions-feature.md | 115 ++++ site/content/docs/v1.8/examples.md | 70 +++ site/content/docs/v1.8/how-velero-works.md | 87 +++ site/content/docs/v1.8/image-tagging.md | 24 + site/content/docs/v1.8/img/README.md | 1 + site/content/docs/v1.8/img/backup-process.png | Bin 0 -> 33630 bytes .../docs/v1.8/img/gv_priority1-caseA.png | Bin 0 -> 57254 bytes .../docs/v1.8/img/gv_priority1-caseB.png | Bin 0 -> 87058 bytes .../docs/v1.8/img/gv_priority2-caseC.png | Bin 0 -> 42106 bytes .../docs/v1.8/img/gv_priority3-caseD.png | Bin 0 -> 69760 bytes site/content/docs/v1.8/img/velero.png | Bin 0 -> 45564 bytes site/content/docs/v1.8/locations.md | 260 +++++++++ site/content/docs/v1.8/maintainers.md | 37 ++ site/content/docs/v1.8/manual-testing.md | 92 +++ site/content/docs/v1.8/migration-case.md | 58 ++ site/content/docs/v1.8/namespace.md | 22 + site/content/docs/v1.8/on-premises.md | 95 ++++ site/content/docs/v1.8/output-file-format.md | 224 ++++++++ site/content/docs/v1.8/overview-plugins.md | 29 + .../docs/v1.8/plugin-release-instructions.md | 30 + site/content/docs/v1.8/rbac.md | 50 ++ .../content/docs/v1.8/release-instructions.md | 167 ++++++ site/content/docs/v1.8/release-schedule.md | 15 + site/content/docs/v1.8/resource-filtering.md | 138 +++++ site/content/docs/v1.8/restic.md | 528 ++++++++++++++++++ site/content/docs/v1.8/restore-hooks.md | 261 +++++++++ site/content/docs/v1.8/restore-reference.md | 144 +++++ site/content/docs/v1.8/run-locally.md | 53 ++ .../docs/v1.8/self-signed-certificates.md | 48 ++ site/content/docs/v1.8/start-contributing.md | 34 ++ site/content/docs/v1.8/style-guide.md | 344 ++++++++++++ site/content/docs/v1.8/support-process.md | 44 ++ site/content/docs/v1.8/supported-providers.md | 70 +++ site/content/docs/v1.8/tilt.md | 210 +++++++ site/content/docs/v1.8/troubleshooting.md | 220 ++++++++ site/content/docs/v1.8/uninstalling.md | 11 + site/content/docs/v1.8/upgrade-to-1.8.md | 92 +++ site/content/docs/v1.8/velero-install.md | 49 ++ .../docs/v1.8/vendoring-dependencies.md | 21 + site/content/docs/v1.8/website-guidelines.md | 45 ++ site/data/docs/main-toc.yml | 4 +- site/data/docs/toc-mapping.yml | 1 + site/data/docs/v1-8-toc.yml | 97 ++++ 80 files changed, 6693 insertions(+), 18 deletions(-) create mode 100644 changelogs/unreleased/4517-reasonerjt rename site/content/docs/main/{upgrade-to-1.7.md => upgrade-to-1.8.md} (71%) create mode 100644 site/content/docs/v1.8/_index.md create mode 100644 site/content/docs/v1.8/api-types/README.md create mode 100644 site/content/docs/v1.8/api-types/_index.md create mode 100644 site/content/docs/v1.8/api-types/backup.md create mode 100644 site/content/docs/v1.8/api-types/backupstoragelocation.md create mode 100644 site/content/docs/v1.8/api-types/restore.md create mode 100644 site/content/docs/v1.8/api-types/schedule.md create mode 100644 site/content/docs/v1.8/api-types/volumesnapshotlocation.md create mode 100644 site/content/docs/v1.8/backup-hooks.md create mode 100644 site/content/docs/v1.8/backup-reference.md create mode 100644 site/content/docs/v1.8/basic-install.md create mode 100644 site/content/docs/v1.8/build-from-source.md create mode 100644 site/content/docs/v1.8/code-standards.md create mode 100644 site/content/docs/v1.8/contributions/ibm-config.md create mode 100644 site/content/docs/v1.8/contributions/img-for-tencent/15ccaacf00640a04ae29ceed4c86195b.png create mode 100644 site/content/docs/v1.8/contributions/img-for-tencent/1d53b0115644d43657c2a5ece805c9b4.png create mode 100644 site/content/docs/v1.8/contributions/img-for-tencent/69194157ccd5e377d1e7d914fd8c0336.png create mode 100644 site/content/docs/v1.8/contributions/img-for-tencent/9015313121ed7987558c88081b052574.png create mode 100644 site/content/docs/v1.8/contributions/img-for-tencent/ceaca9ce6bc92bdce987c63d2fe71561.png create mode 100644 site/content/docs/v1.8/contributions/img-for-tencent/e8c2ab4e5e31d1370c62fad25059a8a8.png create mode 100644 site/content/docs/v1.8/contributions/img-for-tencent/e932223585c0b19891cc085ad7f438e1.png create mode 100644 site/content/docs/v1.8/contributions/img-for-tencent/eb2bbabae48b188748f5278bedf177f1.png create mode 100644 site/content/docs/v1.8/contributions/img-for-tencent/effe8a0a7ce3aa8e422db00bfdddc375.png create mode 100644 site/content/docs/v1.8/contributions/img-for-tencent/f0fff5228527edc72d6e71a50d5dc966.png create mode 100644 site/content/docs/v1.8/contributions/minio.md create mode 100644 site/content/docs/v1.8/contributions/oracle-config.md create mode 100644 site/content/docs/v1.8/contributions/tencent-config.md create mode 100644 site/content/docs/v1.8/csi.md create mode 100644 site/content/docs/v1.8/custom-plugins.md create mode 100644 site/content/docs/v1.8/customize-installation.md create mode 100644 site/content/docs/v1.8/debugging-install.md create mode 100644 site/content/docs/v1.8/debugging-restores.md create mode 100644 site/content/docs/v1.8/development.md create mode 100644 site/content/docs/v1.8/disaster-case.md create mode 100644 site/content/docs/v1.8/enable-api-group-versions-feature.md create mode 100644 site/content/docs/v1.8/examples.md create mode 100644 site/content/docs/v1.8/how-velero-works.md create mode 100644 site/content/docs/v1.8/image-tagging.md create mode 100644 site/content/docs/v1.8/img/README.md create mode 100644 site/content/docs/v1.8/img/backup-process.png create mode 100644 site/content/docs/v1.8/img/gv_priority1-caseA.png create mode 100644 site/content/docs/v1.8/img/gv_priority1-caseB.png create mode 100644 site/content/docs/v1.8/img/gv_priority2-caseC.png create mode 100644 site/content/docs/v1.8/img/gv_priority3-caseD.png create mode 100644 site/content/docs/v1.8/img/velero.png create mode 100644 site/content/docs/v1.8/locations.md create mode 100644 site/content/docs/v1.8/maintainers.md create mode 100644 site/content/docs/v1.8/manual-testing.md create mode 100644 site/content/docs/v1.8/migration-case.md create mode 100644 site/content/docs/v1.8/namespace.md create mode 100644 site/content/docs/v1.8/on-premises.md create mode 100644 site/content/docs/v1.8/output-file-format.md create mode 100644 site/content/docs/v1.8/overview-plugins.md create mode 100644 site/content/docs/v1.8/plugin-release-instructions.md create mode 100644 site/content/docs/v1.8/rbac.md create mode 100644 site/content/docs/v1.8/release-instructions.md create mode 100644 site/content/docs/v1.8/release-schedule.md create mode 100644 site/content/docs/v1.8/resource-filtering.md create mode 100644 site/content/docs/v1.8/restic.md create mode 100644 site/content/docs/v1.8/restore-hooks.md create mode 100644 site/content/docs/v1.8/restore-reference.md create mode 100644 site/content/docs/v1.8/run-locally.md create mode 100644 site/content/docs/v1.8/self-signed-certificates.md create mode 100644 site/content/docs/v1.8/start-contributing.md create mode 100644 site/content/docs/v1.8/style-guide.md create mode 100644 site/content/docs/v1.8/support-process.md create mode 100644 site/content/docs/v1.8/supported-providers.md create mode 100644 site/content/docs/v1.8/tilt.md create mode 100644 site/content/docs/v1.8/troubleshooting.md create mode 100644 site/content/docs/v1.8/uninstalling.md create mode 100644 site/content/docs/v1.8/upgrade-to-1.8.md create mode 100644 site/content/docs/v1.8/velero-install.md create mode 100644 site/content/docs/v1.8/vendoring-dependencies.md create mode 100644 site/content/docs/v1.8/website-guidelines.md create mode 100644 site/data/docs/v1-8-toc.yml diff --git a/changelogs/unreleased/4517-reasonerjt b/changelogs/unreleased/4517-reasonerjt new file mode 100644 index 000000000..570af0b5e --- /dev/null +++ b/changelogs/unreleased/4517-reasonerjt @@ -0,0 +1 @@ +Update doc for v1.8 \ No newline at end of file diff --git a/site/config.yaml b/site/config.yaml index 2f26a766e..1a9e926e4 100644 --- a/site/config.yaml +++ b/site/config.yaml @@ -12,9 +12,10 @@ params: hero: backgroundColor: med-blue versioning: true - latest: v1.7 + latest: v1.8 versions: - main + - v1.8 - v1.7 - v1.6 - v1.5 diff --git a/site/content/docs/main/upgrade-to-1.7.md b/site/content/docs/main/upgrade-to-1.8.md similarity index 71% rename from site/content/docs/main/upgrade-to-1.7.md rename to site/content/docs/main/upgrade-to-1.8.md index 7ef4a8a46..3a1e80cf5 100644 --- a/site/content/docs/main/upgrade-to-1.7.md +++ b/site/content/docs/main/upgrade-to-1.8.md @@ -1,12 +1,11 @@ --- -title: "Upgrading to Velero 1.7" +title: "Upgrading to Velero 1.8" layout: docs --- ## Prerequisites -- Velero [v1.6.x][6] installed. -- Kubernetes cluster version 1.16 and later. +- Velero [v1.7.x][7] installed. If you're not yet running at least Velero v1.6, see the following: @@ -16,12 +15,13 @@ If you're not yet running at least Velero v1.6, see the following: - [Upgrading to v1.4][4] - [Upgrading to v1.5][5] - [Upgrading to v1.6][6] +- [Upgrading to v1.7][7] Before upgrading, check the [Velero compatibility matrix](https://github.com/vmware-tanzu/velero#velero-compatabilty-matrix) to make sure your version of Kubernetes is supported by the new version of Velero. ## Instructions -1. Install the Velero v1.7 command-line interface (CLI) by following the [instructions here][0]. +1. Install the Velero v1.8 command-line interface (CLI) by following the [instructions here][0]. Verify that you've properly installed it by running: @@ -33,7 +33,7 @@ Before upgrading, check the [Velero compatibility matrix](https://github.com/vmw ```bash Client: - Version: v1.7.0 + Version: v1.8.0 Git commit: ``` @@ -43,20 +43,18 @@ Before upgrading, check the [Velero compatibility matrix](https://github.com/vmw velero install --crds-only --dry-run -o yaml | kubectl apply -f - ``` - **NOTE:** You could change the default CRD API version (v1beta1 _or_ v1) if Velero CLI can't discover the Kubernetes preferred CRD API version. The Kubernetes version < 1.16 preferred CRD API version is v1beta1; the Kubernetes version >= 1.16 preferred CRD API version is v1. - - **NOTE:** If you are upgrading Velero in Kubernetes 1.14.x or earlier, you will need to use `kubectl apply`'s `--validate=false` option when applying the CRD configuration above. See [issue 2077][10] and [issue 2311][11] for more context. + **NOTE:** Since velero v1.8.0 only v1 CRD will be supported during installation, therefore, the v1.8.0 will only work on kubernetes version >= v1.16 1. Update the container image used by the Velero deployment and, optionally, the restic daemon set: ```bash kubectl set image deployment/velero \ - velero=velero/velero:v1.7.0 \ + velero=velero/velero:v1.8.0 \ --namespace velero # optional, if using the restic daemon set kubectl set image daemonset/restic \ - restic=velero/velero:v1.7.0 \ + restic=velero/velero:v1.8.0 \ --namespace velero ``` @@ -70,11 +68,11 @@ Before upgrading, check the [Velero compatibility matrix](https://github.com/vmw ```bash Client: - Version: v1.7.0 + Version: v1.8.0 Git commit: Server: - Version: v1.7.0 + Version: v1.8.0 ``` ## Notes @@ -90,6 +88,5 @@ After upgrading, if there is a previously created backup storage location with t [4]: https://velero.io/docs/v1.4/upgrade-to-1.4/ [5]: https://velero.io/docs/v1.5/upgrade-to-1.5 [6]: https://velero.io/docs/v1.6/upgrade-to-1.6 -[9]: https://velero.io/docs/v1.7/locations -[10]: https://github.com/vmware-tanzu/velero/issues/2077 -[11]: https://github.com/vmware-tanzu/velero/issues/2311 +[7]: https://velero.io/docs/v1.7/upgrade-to-1.7 +[9]: https://velero.io/docs/v1.8/locations diff --git a/site/content/docs/v1.8/_index.md b/site/content/docs/v1.8/_index.md new file mode 100644 index 000000000..74eece82f --- /dev/null +++ b/site/content/docs/v1.8/_index.md @@ -0,0 +1,58 @@ +--- +toc: "false" +cascade: + version: v1.8 + toc: "true" +--- +![100] + +[![Build Status][1]][2] + +## 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 cloud provider 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 + +This site is our documentation home with installation instructions, plus information about customizing Velero for your needs, architecture, extending Velero, contributing to 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][30], [file an issue][4], or talk to us on the [#velero channel][25] on the Kubernetes Slack server. + +## Contributing + +If you are ready to jump in and test, add code, or help with documentation, follow the instructions on our [Start contributing](https://velero.io/docs/v1.8.0/start-contributing/) documentation for guidance on how to setup Velero for development. + +## Changelog + +See [the list of releases][6] to find out about feature changes. + +[1]: https://github.com/vmware-tanzu/velero/workflows/Main%20CI/badge.svg +[2]: https://github.com/vmware-tanzu/velero/actions?query=workflow%3A"Main+CI" + +[4]: https://github.com/vmware-tanzu/velero/issues +[6]: https://github.com/vmware-tanzu/velero/releases + +[9]: https://kubernetes.io/docs/setup/ +[10]: https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-with-homebrew-on-macos +[11]: https://kubernetes.io/docs/tasks/tools/install-kubectl/#tabset-1 +[12]: https://github.com/kubernetes/kubernetes/blob/main/cluster/addons/dns/README.md +[14]: https://github.com/kubernetes/kubernetes +[24]: https://groups.google.com/forum/#!forum/projectvelero +[25]: https://kubernetes.slack.com/messages/velero + +[30]: troubleshooting.md + +[100]: img/velero.png diff --git a/site/content/docs/v1.8/api-types/README.md b/site/content/docs/v1.8/api-types/README.md new file mode 100644 index 000000000..54c23544d --- /dev/null +++ b/site/content/docs/v1.8/api-types/README.md @@ -0,0 +1,21 @@ +--- +title: "Table of Contents" +layout: docs +--- + +## API types + +Here we list the API types that have some functionality that you can only configure via json/yaml vs the `velero` cli +(hooks) + +* [Backup][1] +* [Restore][2] +* [Schedule][3] +* [BackupStorageLocation][4] +* [VolumeSnapshotLocation][5] + +[1]: backup.md +[2]: restore.md +[3]: schedule.md +[4]: backupstoragelocation.md +[5]: volumesnapshotlocation.md diff --git a/site/content/docs/v1.8/api-types/_index.md b/site/content/docs/v1.8/api-types/_index.md new file mode 100644 index 000000000..e60832500 --- /dev/null +++ b/site/content/docs/v1.8/api-types/_index.md @@ -0,0 +1,19 @@ +--- +layout: docs +title: API types +--- + +Here's a list the API types that have some functionality that you can only configure via json/yaml vs the `velero` cli +(hooks) + +* [Backup][1] +* [Restore][2] +* [Schedule][3] +* [BackupStorageLocation][4] +* [VolumeSnapshotLocation][5] + +[1]: backup.md +[2]: restore.md +[3]: schedule.md +[4]: backupstoragelocation.md +[5]: volumesnapshotlocation.md diff --git a/site/content/docs/v1.8/api-types/backup.md b/site/content/docs/v1.8/api-types/backup.md new file mode 100644 index 000000000..5620c9ff6 --- /dev/null +++ b/site/content/docs/v1.8/api-types/backup.md @@ -0,0 +1,148 @@ +--- +title: "Backup API Type" +layout: docs +--- + +## Use + +Use the `Backup` API type to request the Velero server to perform a backup. Once created, the +Velero Server immediately starts the backup process. + +## API GroupVersion + +Backup belongs to the API group version `velero.io/v1`. + +## Definition + +Here is a sample `Backup` object with each of the fields documented: + +```yaml +# Standard Kubernetes API Version declaration. Required. +apiVersion: velero.io/v1 +# Standard Kubernetes Kind declaration. Required. +kind: Backup +# Standard Kubernetes metadata. Required. +metadata: + # Backup name. May be any valid Kubernetes object name. Required. + name: a + # Backup namespace. Must be the namespace of the Velero server. Required. + namespace: velero +# Parameters about the backup. Required. +spec: + # Array of namespaces to include in the backup. If unspecified, all namespaces are included. + # Optional. + includedNamespaces: + - '*' + # Array of namespaces to exclude from the backup. Optional. + excludedNamespaces: + - some-namespace + # Array of resources to include in the backup. Resources may be shortcuts (for example 'po' for 'pods') + # or fully-qualified. If unspecified, all resources are included. Optional. + includedResources: + - '*' + # Array of resources to exclude from the backup. Resources may be shortcuts (for example 'po' for 'pods') + # or fully-qualified. Optional. + excludedResources: + - storageclasses.storage.k8s.io + # Whether or not to include cluster-scoped resources. Valid values are true, false, and + # null/unset. If true, all cluster-scoped resources are included (subject to included/excluded + # resources and the label selector). If false, no cluster-scoped resources are included. If unset, + # all cluster-scoped resources are included if and only if all namespaces are included and there are + # no excluded namespaces. Otherwise, if there is at least one namespace specified in either + # includedNamespaces or excludedNamespaces, then the only cluster-scoped resources that are backed + # up are those associated with namespace-scoped resources included in the backup. For example, if a + # PersistentVolumeClaim is included in the backup, its associated PersistentVolume (which is + # cluster-scoped) would also be backed up. + includeClusterResources: null + # Individual objects must match this label selector to be included in the backup. Optional. + labelSelector: + matchLabels: + app: velero + component: server + # Whether or not to snapshot volumes. This only applies to PersistentVolumes for Azure, GCE, and + # AWS. Valid values are true, false, and null/unset. If unset, Velero performs snapshots as long as + # a persistent volume provider is configured for Velero. + snapshotVolumes: null + # Where to store the tarball and logs. + storageLocation: aws-primary + # The list of locations in which to store volume snapshots created for this backup. + volumeSnapshotLocations: + - aws-primary + - gcp-primary + # The amount of time before this backup is eligible for garbage collection. If not specified, + # a default value of 30 days will be used. The default can be configured on the velero server + # by passing the flag --default-backup-ttl. + ttl: 24h0m0s + # Whether restic should be used to take a backup of all pod volumes by default. + defaultVolumesToRestic: true + # Actions to perform at different times during a backup. The only hook supported is + # executing a command in a container in a pod using the pod exec API. Optional. + hooks: + # Array of hooks that are applicable to specific resources. Optional. + resources: + - + # Name of the hook. Will be displayed in backup log. + name: my-hook + # Array of namespaces to which this hook applies. If unspecified, the hook applies to all + # namespaces. Optional. + includedNamespaces: + - '*' + # Array of namespaces to which this hook does not apply. Optional. + excludedNamespaces: + - some-namespace + # Array of resources to which this hook applies. The only resource supported at this time is + # pods. + includedResources: + - pods + # Array of resources to which this hook does not apply. Optional. + excludedResources: [] + # This hook only applies to objects matching this label selector. Optional. + labelSelector: + matchLabels: + app: velero + component: server + # An array of hooks to run before executing custom actions. Only "exec" hooks are supported. + pre: + - + # The type of hook. This must be "exec". + exec: + # The name of the container where the command will be executed. If unspecified, the + # first container in the pod will be used. Optional. + container: my-container + # The command to execute, specified as an array. Required. + command: + - /bin/uname + - -a + # How to handle an error executing the command. Valid values are Fail and Continue. + # Defaults to Fail. Optional. + onError: Fail + # How long to wait for the command to finish executing. Defaults to 30 seconds. Optional. + timeout: 10s + # An array of hooks to run after all custom actions and additional items have been + # processed. Only "exec" hooks are supported. + post: + # Same content as pre above. +# Status about the Backup. Users should not set any data here. +status: + # The version of this Backup. The only version supported is 1. + version: 1 + # The date and time when the Backup is eligible for garbage collection. + expiration: null + # The current phase. Valid values are New, FailedValidation, InProgress, Completed, PartiallyFailed, Failed. + phase: "" + # An array of any validation errors encountered. + validationErrors: null + # Date/time when the backup started being processed. + startTimestamp: 2019-04-29T15:58:43Z + # Date/time when the backup finished being processed. + completionTimestamp: 2019-04-29T15:58:56Z + # Number of volume snapshots that Velero tried to create for this backup. + volumeSnapshotsAttempted: 2 + # Number of volume snapshots that Velero successfully created for this backup. + volumeSnapshotsCompleted: 1 + # Number of warnings that were logged by the backup. + warnings: 2 + # Number of errors that were logged by the backup. + errors: 0 + +``` diff --git a/site/content/docs/v1.8/api-types/backupstoragelocation.md b/site/content/docs/v1.8/api-types/backupstoragelocation.md new file mode 100644 index 000000000..b6c58ece7 --- /dev/null +++ b/site/content/docs/v1.8/api-types/backupstoragelocation.md @@ -0,0 +1,54 @@ +--- +title: "Velero Backup Storage Locations" +layout: docs +--- + +## Backup Storage Location + +Velero can store backups in a number of locations. These are represented in the cluster via the `BackupStorageLocation` CRD. + +Velero must have at least one `BackupStorageLocation`. By default, this is expected to be named `default`, however the name can be changed by specifying `--default-backup-storage-location` on `velero server`. Backups that do not explicitly specify a storage location will be saved to this `BackupStorageLocation`. + +A sample YAML `BackupStorageLocation` looks like the following: + +```yaml +apiVersion: velero.io/v1 +kind: BackupStorageLocation +metadata: + name: default + namespace: velero +spec: + backupSyncPeriod: 2m0s + provider: aws + objectStorage: + bucket: myBucket + credential: + name: secret-name + key: key-in-secret + config: + region: us-west-2 + profile: "default" +``` + +### Parameter Reference + +The configurable parameters are as follows: + +#### Main config parameters + +{{< table caption="Main config parameters" >}} +| Key | Type | Default | Meaning | +| --- | --- | --- | --- | +| `provider` | String | Required Field | The name for whichever object storage provider will be used to store the backups. See [your object storage provider's plugin documentation](../supported-providers) for the appropriate value to use. | +| `objectStorage` | ObjectStorageLocation | Required Field | Specification of the object storage for the given provider. | +| `objectStorage/bucket` | String | Required Field | The storage bucket where backups are to be uploaded. | +| `objectStorage/prefix` | String | Optional Field | The directory inside a storage bucket where backups are to be uploaded. | +| `objectStorage/caCert` | String | Optional Field | A base64 encoded CA bundle to be used when verifying TLS connections | +| `config` | map[string]string | None (Optional) | Provider-specific configuration keys/values to be passed to the object store plugin. See [your object storage provider's plugin documentation](../supported-providers) for details. | +| `accessMode` | String | `ReadWrite` | How Velero can access the backup storage location. Valid values are `ReadWrite`, `ReadOnly`. | +| `backupSyncPeriod` | metav1.Duration | Optional Field | How frequently Velero should synchronize backups in object storage. Default is Velero's server backup sync period. Set this to `0s` to disable sync. | +| `validationFrequency` | metav1.Duration | Optional Field | How frequently Velero should validate the object storage . Default is Velero's server validation frequency. Set this to `0s` to disable validation. Default 1 minute. | +| `credential` | [corev1.SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#secretkeyselector-v1-core) | Optional Field | The credential information to be used with this location. | +| `credential/name` | String | Optional Field | The name of the secret within the Velero namespace which contains the credential information. | +| `credential/key` | String | Optional Field | The key to use within the secret. | +{{< /table >}} diff --git a/site/content/docs/v1.8/api-types/restore.md b/site/content/docs/v1.8/api-types/restore.md new file mode 100644 index 000000000..817e549bc --- /dev/null +++ b/site/content/docs/v1.8/api-types/restore.md @@ -0,0 +1,168 @@ +--- +title: "Restore API Type" +layout: docs +--- + +## Use + +The `Restore` API type is used as a request for the Velero server to perform a Restore. Once created, the +Velero Server immediately starts the Restore process. + +## API GroupVersion + +Restore belongs to the API group version `velero.io/v1`. + +## Definition + +Here is a sample `Restore` object with each of the fields documented: + +```yaml +# Standard Kubernetes API Version declaration. Required. +apiVersion: velero.io/v1 +# Standard Kubernetes Kind declaration. Required. +kind: Restore +# Standard Kubernetes metadata. Required. +metadata: + # Restore name. May be any valid Kubernetes object name. Required. + name: a-very-special-backup-0000111122223333 + # Restore namespace. Must be the namespace of the Velero server. Required. + namespace: velero +# Parameters about the restore. Required. +spec: + # BackupName is the unique name of the Velero backup to restore from. + backupName: a-very-special-backup + # Array of namespaces to include in the restore. If unspecified, all namespaces are included. + # Optional. + includedNamespaces: + - '*' + # Array of namespaces to exclude from the restore. Optional. + excludedNamespaces: + - some-namespace + # Array of resources to include in the restore. Resources may be shortcuts (for example 'po' for 'pods') + # or fully-qualified. If unspecified, all resources are included. Optional. + includedResources: + - '*' + # Array of resources to exclude from the restore. Resources may be shortcuts (for example 'po' for 'pods') + # or fully-qualified. Optional. + excludedResources: + - storageclasses.storage.k8s.io + # Whether or not to include cluster-scoped resources. Valid values are true, false, and + # null/unset. If true, all cluster-scoped resources are included (subject to included/excluded + # resources and the label selector). If false, no cluster-scoped resources are included. If unset, + # all cluster-scoped resources are included if and only if all namespaces are included and there are + # no excluded namespaces. Otherwise, if there is at least one namespace specified in either + # includedNamespaces or excludedNamespaces, then the only cluster-scoped resources that are backed + # up are those associated with namespace-scoped resources included in the restore. For example, if a + # PersistentVolumeClaim is included in the restore, its associated PersistentVolume (which is + # cluster-scoped) would also be backed up. + includeClusterResources: null + # Individual objects must match this label selector to be included in the restore. Optional. + labelSelector: + matchLabels: + app: velero + component: server + # NamespaceMapping is a map of source namespace names to + # target namespace names to restore into. Any source namespaces not + # included in the map will be restored into namespaces of the same name. + namespaceMapping: + namespace-backup-from: namespace-to-restore-to + # RestorePVs specifies whether to restore all included PVs + # from snapshot (via the cloudprovider). + restorePVs: true + # ScheduleName is the unique name of the Velero schedule + # to restore from. If specified, and BackupName is empty, Velero will + # restore from the most recent successful backup created from this schedule. + scheduleName: my-scheduled-backup-name + # Actions to perform during or post restore. The only hooks currently supported are + # adding an init container to a pod before it can be restored and executing a command in a + # restored pod's container. Optional. + hooks: + # Array of hooks that are applicable to specific resources. Optional. + resources: + # Name is the name of this hook. + - name: restore-hook-1 + # Array of namespaces to which this hook applies. If unspecified, the hook applies to all + # namespaces. Optional. + includedNamespaces: + - ns1 + # Array of namespaces to which this hook does not apply. Optional. + excludedNamespaces: + - ns3 + # Array of resources to which this hook applies. The only resource supported at this time is + # pods. + includedResources: + - pods + # Array of resources to which this hook does not apply. Optional. + excludedResources: [] + # This hook only applies to objects matching this label selector. Optional. + labelSelector: + matchLabels: + app: velero + component: server + # An array of hooks to run during or after restores. Currently only "init" and "exec" hooks + # are supported. + postHooks: + # The type of the hook. This must be "init" or "exec". + - init: + # An array of container specs to be added as init containers to pods to which this hook applies to. + initContainers: + - name: restore-hook-init1 + image: alpine:latest + # Mounting volumes from the podSpec to which this hooks applies to. + volumeMounts: + - mountPath: /restores/pvc1-vm + # Volume name from the podSpec + name: pvc1-vm + command: + - /bin/ash + - -c + - echo -n "FOOBARBAZ" >> /restores/pvc1-vm/foobarbaz + - name: restore-hook-init2 + image: alpine:latest + # Mounting volumes from the podSpec to which this hooks applies to. + volumeMounts: + - mountPath: /restores/pvc2-vm + # Volume name from the podSpec + name: pvc2-vm + command: + - /bin/ash + - -c + - echo -n "DEADFEED" >> /restores/pvc2-vm/deadfeed + - exec: + # The container name where the hook will be executed. Defaults to the first container. + # Optional. + container: foo + # The command that will be executed in the container. Required. + command: + - /bin/bash + - -c + - "psql < /backup/backup.sql" + # How long to wait for a container to become ready. This should be long enough for the + # container to start plus any preceding hooks in the same container to complete. The wait + # timeout begins when the container is restored and may require time for the image to pull + # and volumes to mount. If not set the restore will wait indefinitely. Optional. + waitTimeout: 5m + # How long to wait once execution begins. Defaults to 30 seconds. Optional. + execTimeout: 1m + # How to handle execution failures. Valid values are `Fail` and `Continue`. Defaults to + # `Continue`. With `Continue` mode, execution failures are logged only. With `Fail` mode, + # no more restore hooks will be executed in any container in any pod and the status of the + # Restore will be `PartiallyFailed`. Optional. + onError: Continue +# RestoreStatus captures the current status of a Velero restore. Users should not set any data here. +status: + # The current phase. Valid values are New, FailedValidation, InProgress, Completed, PartiallyFailed, Failed. + phase: "" + # An array of any validation errors encountered. + validationErrors: null + # Number of warnings that were logged by the restore. + warnings: 2 + # Errors is a count of all error messages that were generated + # during execution of the restore. The actual errors are stored in object + # storage. + errors: 0 + # FailureReason is an error that caused the entire restore + # to fail. + failureReason: + +``` diff --git a/site/content/docs/v1.8/api-types/schedule.md b/site/content/docs/v1.8/api-types/schedule.md new file mode 100644 index 000000000..9c5dc26ce --- /dev/null +++ b/site/content/docs/v1.8/api-types/schedule.md @@ -0,0 +1,142 @@ +--- +title: "Schedule API Type" +layout: docs +--- + +## Use + +The `Schedule` API type is used as a repeatable request for the Velero server to perform a backup for a given cron notation. Once created, the +Velero Server will start the backup process. It will then wait for the next valid point of the given cron expression and execute the backup +process on a repeating basis. + +## API GroupVersion + +Schedule belongs to the API group version `velero.io/v1`. + +## Definition + +Here is a sample `Schedule` object with each of the fields documented: + +```yaml +# Standard Kubernetes API Version declaration. Required. +apiVersion: velero.io/v1 +# Standard Kubernetes Kind declaration. Required. +kind: Schedule +# Standard Kubernetes metadata. Required. +metadata: + # Schedule name. May be any valid Kubernetes object name. Required. + name: a + # Schedule namespace. Must be the namespace of the Velero server. Required. + namespace: velero +# Parameters about the scheduled backup. Required. +spec: + # Schedule is a Cron expression defining when to run the Backup + schedule: 0 7 * * * + # Template is the spec that should be used for each backup triggered by this schedule. + template: + # Array of namespaces to include in the scheduled backup. If unspecified, all namespaces are included. + # Optional. + includedNamespaces: + - '*' + # Array of namespaces to exclude from the scheduled backup. Optional. + excludedNamespaces: + - some-namespace + # Array of resources to include in the scheduled backup. Resources may be shortcuts (for example 'po' for 'pods') + # or fully-qualified. If unspecified, all resources are included. Optional. + includedResources: + - '*' + # Array of resources to exclude from the scheduled backup. Resources may be shortcuts (for example 'po' for 'pods') + # or fully-qualified. Optional. + excludedResources: + - storageclasses.storage.k8s.io + # Whether or not to include cluster-scoped resources. Valid values are true, false, and + # null/unset. If true, all cluster-scoped resources are included (subject to included/excluded + # resources and the label selector). If false, no cluster-scoped resources are included. If unset, + # all cluster-scoped resources are included if and only if all namespaces are included and there are + # no excluded namespaces. Otherwise, if there is at least one namespace specified in either + # includedNamespaces or excludedNamespaces, then the only cluster-scoped resources that are backed + # up are those associated with namespace-scoped resources included in the scheduled backup. For example, if a + # PersistentVolumeClaim is included in the backup, its associated PersistentVolume (which is + # cluster-scoped) would also be backed up. + includeClusterResources: null + # Individual objects must match this label selector to be included in the scheduled backup. Optional. + labelSelector: + matchLabels: + app: velero + component: server + # Whether or not to snapshot volumes. This only applies to PersistentVolumes for Azure, GCE, and + # AWS. Valid values are true, false, and null/unset. If unset, Velero performs snapshots as long as + # a persistent volume provider is configured for Velero. + snapshotVolumes: null + # Where to store the tarball and logs. + storageLocation: aws-primary + # The list of locations in which to store volume snapshots created for backups under this schedule. + volumeSnapshotLocations: + - aws-primary + - gcp-primary + # The amount of time before backups created on this schedule are eligible for garbage collection. If not specified, + # a default value of 30 days will be used. The default can be configured on the velero server + # by passing the flag --default-backup-ttl. + ttl: 24h0m0s + # Whether restic should be used to take a backup of all pod volumes by default. + defaultVolumesToRestic: true + # The labels you want on backup objects, created from this schedule (instead of copying the labels you have on schedule object itself). + # When this field is set, the labels from the Schedule resource are not copied to the Backup resource. + metadata: + labels: + labelname: somelabelvalue + # Actions to perform at different times during a backup. The only hook supported is + # executing a command in a container in a pod using the pod exec API. Optional. + hooks: + # Array of hooks that are applicable to specific resources. Optional. + resources: + - + # Name of the hook. Will be displayed in backup log. + name: my-hook + # Array of namespaces to which this hook applies. If unspecified, the hook applies to all + # namespaces. Optional. + includedNamespaces: + - '*' + # Array of namespaces to which this hook does not apply. Optional. + excludedNamespaces: + - some-namespace + # Array of resources to which this hook applies. The only resource supported at this time is + # pods. + includedResources: + - pods + # Array of resources to which this hook does not apply. Optional. + excludedResources: [] + # This hook only applies to objects matching this label selector. Optional. + labelSelector: + matchLabels: + app: velero + component: server + # An array of hooks to run before executing custom actions. Only "exec" hooks are supported. + pre: + - + # The type of hook. This must be "exec". + exec: + # The name of the container where the command will be executed. If unspecified, the + # first container in the pod will be used. Optional. + container: my-container + # The command to execute, specified as an array. Required. + command: + - /bin/uname + - -a + # How to handle an error executing the command. Valid values are Fail and Continue. + # Defaults to Fail. Optional. + onError: Fail + # How long to wait for the command to finish executing. Defaults to 30 seconds. Optional. + timeout: 10s + # An array of hooks to run after all custom actions and additional items have been + # processed. Only "exec" hooks are supported. + post: + # Same content as pre above. +status: + # The current phase of the latest scheduled backup. Valid values are New, FailedValidation, InProgress, Completed, PartiallyFailed, Failed. + phase: "" + # Date/time of the last backup for a given schedule + lastBackup: + # An array of any validation errors encountered. + validationErrors: +``` diff --git a/site/content/docs/v1.8/api-types/volumesnapshotlocation.md b/site/content/docs/v1.8/api-types/volumesnapshotlocation.md new file mode 100644 index 000000000..28ac33222 --- /dev/null +++ b/site/content/docs/v1.8/api-types/volumesnapshotlocation.md @@ -0,0 +1,40 @@ +--- +title: "Velero Volume Snapshot Location" +layout: docs +--- + +## Volume Snapshot Location + +A volume snapshot location is the location in which to store the volume snapshots created for a backup. + +Velero can be configured to take snapshots of volumes from multiple providers. Velero also allows you to configure multiple possible `VolumeSnapshotLocation` per provider, although you can only select one location per provider at backup time. + +Each VolumeSnapshotLocation describes a provider + location. These are represented in the cluster via the `VolumeSnapshotLocation` CRD. Velero must have at least one `VolumeSnapshotLocation` per cloud provider. + +A sample YAML `VolumeSnapshotLocation` looks like the following: + +```yaml +apiVersion: velero.io/v1 +kind: VolumeSnapshotLocation +metadata: + name: aws-default + namespace: velero +spec: + provider: aws + config: + region: us-west-2 + profile: "default" +``` + +### Parameter Reference + +The configurable parameters are as follows: + +#### Main config parameters + +{{< table caption="Main config parameters" >}} +| Key | Type | Default | Meaning | +| --- | --- | --- | --- | +| `provider` | String | Required Field | The name for whichever storage provider will be used to create/store the volume snapshots. See [your volume snapshot provider's plugin documentation](../supported-providers) for the appropriate value to use. | +| `config` | map string string | None (Optional) | Provider-specific configuration keys/values to be passed to the volume snapshotter plugin. See [your volume snapshot provider's plugin documentation](../supported-providers) for details. | +{{< /table >}} diff --git a/site/content/docs/v1.8/backup-hooks.md b/site/content/docs/v1.8/backup-hooks.md new file mode 100644 index 000000000..de6a58c53 --- /dev/null +++ b/site/content/docs/v1.8/backup-hooks.md @@ -0,0 +1,92 @@ +--- +title: "Backup Hooks" +layout: docs +--- + +Velero supports executing commands in containers in pods during a backup. + +## Backup Hooks + +When performing a backup, you can specify one or more commands to execute in a container in a pod +when that pod is being backed up. The commands can be configured to run *before* any custom action +processing ("pre" hooks), or after all custom actions have been completed and any additional items +specified by custom action have been backed up ("post" hooks). Note that hooks are _not_ executed within a shell +on the containers. + +There are two ways to specify hooks: annotations on the pod itself, and in the Backup spec. + +### Specifying Hooks As Pod Annotations + +You can use the following annotations on a pod to make Velero execute a hook when backing up the pod: + +#### Pre hooks + +* `pre.hook.backup.velero.io/container` + * The container where the command should be executed. Defaults to the first container in the pod. Optional. +* `pre.hook.backup.velero.io/command` + * The command to execute. If you need multiple arguments, specify the command as a JSON array, such as `["/usr/bin/uname", "-a"]` +* `pre.hook.backup.velero.io/on-error` + * What to do if the command returns a non-zero exit code. Defaults to Fail. Valid values are Fail and Continue. Optional. +* `pre.hook.backup.velero.io/timeout` + * How long to wait for the command to execute. The hook is considered in error if the command exceeds the timeout. Defaults to 30s. Optional. + + +#### Post hooks + +* `post.hook.backup.velero.io/container` + * The container where the command should be executed. Defaults to the first container in the pod. Optional. +* `post.hook.backup.velero.io/command` + * The command to execute. If you need multiple arguments, specify the command as a JSON array, such as `["/usr/bin/uname", "-a"]` +* `post.hook.backup.velero.io/on-error` + * What to do if the command returns a non-zero exit code. Defaults to Fail. Valid values are Fail and Continue. Optional. +* `post.hook.backup.velero.io/timeout` + * How long to wait for the command to execute. The hook is considered in error if the command exceeds the timeout. Defaults to 30s. Optional. + +### Specifying Hooks in the Backup Spec + +Please see the documentation on the [Backup API Type][1] for how to specify hooks in the Backup +spec. + +## Hook Example with fsfreeze + +This examples walks you through using both pre and post hooks for freezing a file system. Freezing the +file system is useful to ensure that all pending disk I/O operations have completed prior to taking a snapshot. + +This example uses [examples/nginx-app/with-pv.yaml][2]. Follow the [steps for your provider][3] to +setup this example. + +### Annotations + +The Velero [example/nginx-app/with-pv.yaml][2] serves as an example of adding the pre and post hook annotations directly +to your declarative deployment. Below is an example of what updating an object in place might look like. + +```shell +kubectl annotate pod -n nginx-example -l app=nginx \ + pre.hook.backup.velero.io/command='["/sbin/fsfreeze", "--freeze", "/var/log/nginx"]' \ + pre.hook.backup.velero.io/container=fsfreeze \ + post.hook.backup.velero.io/command='["/sbin/fsfreeze", "--unfreeze", "/var/log/nginx"]' \ + post.hook.backup.velero.io/container=fsfreeze +``` + +Now test the pre and post hooks by creating a backup. You can use the Velero logs to verify that the pre and post +hooks are running and exiting without error. + +```shell +velero backup create nginx-hook-test + +velero backup get nginx-hook-test +velero backup logs nginx-hook-test | grep hookCommand +``` + +## Using Multiple Commands + +To use multiple commands, wrap your target command in a shell and separate them with `;`, `&&`, or other shell conditional constructs. + +```shell + pre.hook.backup.velero.io/command='["/bin/bash", "-c", "echo hello > hello.txt && echo goodbye > goodbye.txt"]' +``` + + +[1]: api-types/backup.md +[2]: https://github.com/vmware-tanzu/velero/blob/v1.8.0/examples/nginx-app/with-pv.yaml +[3]: cloud-common.md diff --git a/site/content/docs/v1.8/backup-reference.md b/site/content/docs/v1.8/backup-reference.md new file mode 100644 index 000000000..60e019188 --- /dev/null +++ b/site/content/docs/v1.8/backup-reference.md @@ -0,0 +1,70 @@ +--- +title: "Backup Reference" +layout: docs +--- + +## Exclude Specific Items from Backup + +It is possible to exclude individual items from being backed up, even if they match the resource/namespace/label selectors defined in the backup spec. To do this, label the item as follows: + +```bash +kubectl label -n / velero.io/exclude-from-backup=true +``` + +## Specify Backup Orders of Resources of Specific Kind + +To backup resources of specific Kind in a specific order, use option --ordered-resources to specify a mapping Kinds to an ordered list of specific resources of that Kind. Resource names are separated by commas and their names are in format 'namespace/resourcename'. For cluster scope resource, simply use resource name. Key-value pairs in the mapping are separated by semi-colon. Kind name is in plural form. + +```bash +velero backup create backupName --include-cluster-resources=true --ordered-resources 'pods=ns1/pod1,ns1/pod2;persistentvolumes=pv4,pv8' --include-namespaces=ns1 +velero backup create backupName --ordered-resources 'statefulsets=ns1/sts1,ns1/sts0' --include-namespaces=ns1 +``` +## Schedule a Backup + +The **schedule** operation allows you to create a backup of your data at a specified time, defined by a [Cron expression](https://en.wikipedia.org/wiki/Cron). + +``` +velero schedule create NAME --schedule="* * * * *" [flags] +``` + +Cron schedules use the following format. + +``` +# ┌───────────── minute (0 - 59) +# │ ┌───────────── hour (0 - 23) +# │ │ ┌───────────── day of the month (1 - 31) +# │ │ │ ┌───────────── month (1 - 12) +# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday; +# │ │ │ │ │ 7 is also Sunday on some systems) +# │ │ │ │ │ +# │ │ │ │ │ +# * * * * * +``` + +For example, the command below creates a backup that runs every day at 3am. + +``` +velero schedule create example-schedule --schedule="0 3 * * *" +``` + +This command will create the backup, `example-schedule`, within Velero, but the backup will not be taken until the next scheduled time, 3am. Backups created by a schedule are saved with the name `-`, where `` is formatted as *YYYYMMDDhhmmss*. For a full list of available configuration flags use the Velero CLI help command. + +``` +velero schedule create --help +``` + +Once you create the scheduled backup, you can then trigger it manually using the `velero backup` command. + +``` +velero backup create --from-schedule example-schedule +``` + +This command will immediately trigger a new backup based on your template for `example-schedule`. This will not affect the backup schedule, and another backup will trigger at the scheduled time. + +## Kubernetes API Pagination + +By default, Velero will paginate the LIST API call for each resource type in the Kubernetes API when collecting items into a backup. The `--client-page-size` flag for the Velero server configures the size of each page. + +Depending on the cluster's scale, tuning the page size can improve backup performance. You can experiment with higher values, noting their impact on the relevant `apiserver_request_duration_seconds_*` metrics from the Kubernetes apiserver. + +Pagination can be entirely disabled by setting `--client-page-size` to `0`. This will request all items in a single unpaginated LIST call. diff --git a/site/content/docs/v1.8/basic-install.md b/site/content/docs/v1.8/basic-install.md new file mode 100644 index 000000000..07c4ef687 --- /dev/null +++ b/site/content/docs/v1.8/basic-install.md @@ -0,0 +1,73 @@ +--- +title: "Basic Install" +layout: docs +--- + +Use this doc to get a basic installation of Velero. +Refer [this document](customize-installation.md) to customize your installation. + +## Prerequisites + +- Access to a Kubernetes cluster, v1.16 or later, with DNS and container networking enabled. +- `kubectl` installed locally + +Velero uses object storage to store backups and associated artifacts. It also optionally integrates with supported block storage systems to snapshot your persistent volumes. Before beginning the installation process, you should identify the object storage provider and optional block storage provider(s) you'll be using from the list of [compatible providers][0]. + +Velero supports storage providers for both cloud-provider environments and on-premises environments. For more details on on-premises scenarios, see the [on-premises documentation][2]. + +### Velero on Windows + +Velero does not officially support Windows. In testing, the Velero team was able to backup stateless Windows applications only. The restic integration and backups of stateful applications or PersistentVolumes were not supported. + +If you want to perform your own testing of Velero on Windows, you must deploy Velero as a Windows container. Velero does not provide official Windows images, but its possible for you to build your own Velero Windows container image to use. Note that you must build this image on a Windows node. + +## Install the CLI + +### Option 1: MacOS - Homebrew + +On macOS, you can use [Homebrew](https://brew.sh) to install the `velero` client: + +```bash +brew install velero +``` + +### Option 2: GitHub release + +1. Download the [latest release][1]'s tarball for your client platform. +1. Extract the tarball: + + ```bash + tar -xvf .tar.gz + ``` + +1. Move the extracted `velero` binary to somewhere in your `$PATH` (`/usr/local/bin` for most users). + +### Option 3: Windows - Chocolatey + +On Windows, you can use [Chocolatey](https://chocolatey.org/install) to install the [velero](https://chocolatey.org/packages/velero) client: + +```powershell +choco install velero +``` + +## Install and configure the server components + +There are two supported methods for installing the Velero server components: + +- the `velero install` CLI command +- the [Helm chart](https://vmware-tanzu.github.io/helm-charts/) + +Velero uses storage provider plugins to integrate with a variety of storage systems to support backup and snapshot operations. The steps to install and configure the Velero server components along with the appropriate plugins are specific to your chosen storage provider. To find installation instructions for your chosen storage provider, follow the documentation link for your provider at our [supported storage providers][0] page + +_Note: if your object storage provider is different than your volume snapshot provider, follow the installation instructions for your object storage provider first, then return here and follow the instructions to [add your volume snapshot provider][4]._ + +## Command line Autocompletion + +Please refer to [this part of the documentation][5]. + +[0]: supported-providers.md +[1]: https://github.com/vmware-tanzu/velero/releases/latest +[2]: on-premises.md +[3]: overview-plugins.md +[4]: customize-installation.md#install-an-additional-volume-snapshot-provider +[5]: customize-installation.md#optional-velero-cli-configurations \ No newline at end of file diff --git a/site/content/docs/v1.8/build-from-source.md b/site/content/docs/v1.8/build-from-source.md new file mode 100644 index 000000000..df9f738cf --- /dev/null +++ b/site/content/docs/v1.8/build-from-source.md @@ -0,0 +1,200 @@ +--- +title: "Build from source" +layout: docs +--- + +## Prerequisites + +* Access to a Kubernetes cluster, version 1.7 or later. +* A DNS server on the cluster +* `kubectl` installed +* [Go][5] installed (minimum version 1.8) + +## Get the source + +### Option 1) Get latest (recommended) + +```bash +mkdir $HOME/go +export GOPATH=$HOME/go +go get github.com/vmware-tanzu/velero +``` + +Where `go` is your [import path][4] for Go. + +For Go development, it is recommended to add the Go import path (`$HOME/go` in this example) to your path. + +### Option 2) Release archive + +Download the archive named `Source code` from the [release page][22] and extract it in your Go import path as `src/github.com/vmware-tanzu/velero`. + +Note that the Makefile targets assume building from a git repository. When building from an archive, you will be limited to the `go build` commands described below. + +## Build + +There are a number of different ways to build `velero` depending on your needs. This section outlines the main possibilities. + +When building by using `make`, it will place the binaries under `_output/bin/$GOOS/$GOARCH`. For example, you will find the binary for darwin here: `_output/bin/darwin/amd64/velero`, and the binary for linux here: `_output/bin/linux/amd64/velero`. `make` will also splice version and git commit information in so that `velero version` displays proper output. + +Note: `velero install` will also use the version information to determine which tagged image to deploy. If you would like to overwrite what image gets deployed, use the `image` flag (see below for instructions on how to build images). + +### Build the binary + +To build the `velero` binary on your local machine, compiled for your OS and architecture, run one of these two commands: + +```bash +go build ./cmd/velero +``` + +```bash +make local +``` + +### Cross compiling + +To build the velero binary targeting linux/amd64 within a build container on your local machine, run: + +```bash +make build +``` + +For any specific platform, run `make build--`. + +For example, to build for the Mac, run `make build-darwin-amd64`. + +Velero's `Makefile` has a convenience target, `all-build`, that builds the following platforms: + +* linux-amd64 +* linux-arm +* linux-arm64 +* linux-ppc64le +* darwin-amd64 +* windows-amd64 + +## Making images and updating Velero + +If after installing Velero you would like to change the image used by its deployment to one that contains your code changes, you may do so by updating the image: + +```bash +kubectl -n velero set image deploy/velero velero=myimagerepo/velero:$VERSION +``` + +To build a Velero container image, you need to configure `buildx` first. + +### Buildx + +Docker Buildx is a CLI plugin that extends the docker command with the full support of the features provided by Moby BuildKit builder toolkit. It provides the same user experience as docker build with many new features like creating scoped builder instances and building against multiple nodes concurrently. + +More information in the [docker docs][23] and in the [buildx github][24] repo. + +### Image building + +Set the `$REGISTRY` environment variable. For example, if you want to build the `gcr.io/my-registry/velero:main` image, set `$REGISTRY` to `gcr.io/my-registry`. If this variable is not set, the default is `velero`. + +Optionally, set the `$VERSION` environment variable to change the image tag or `$BIN` to change which binary to build a container image for. Then, run: + +```bash +make container +``` +_Note: To build build container images for both `velero` and `velero-restic-restore-helper`, run: `make all-containers`_ + +### Publishing container images to a registry + +To publish container images to a registry, the following one time setup is necessary: + +1. If you are building cross platform container images + ```bash + $ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + ``` +1. Create and bootstrap a new docker buildx builder + ```bash + $ docker buildx create --use --name builder + builder + $ docker buildx inspect --bootstrap + [+] Building 2.6s (1/1) FINISHED + => [internal] booting buildkit 2.6s + => => pulling image moby/buildkit:buildx-stable-1 1.9s + => => creating container buildx_buildkit_builder0 0.7s + Name: builder + Driver: docker-container + + Nodes: + Name: builder0 + Endpoint: unix:///var/run/docker.sock + Status: running + Platforms: linux/amd64, linux/arm64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6 + ``` + NOTE: Without the above setup, the output of `docker buildx inspect --bootstrap` will be: + ```bash + $ docker buildx inspect --bootstrap + Name: default + Driver: docker + + Nodes: + Name: default + Endpoint: default + Status: running + Platforms: linux/amd64, linux/arm64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6 + ``` + And the `REGISTRY=myrepo BUILDX_OUTPUT_TYPE=registry make container` will fail with the below error: + ```bash + $ REGISTRY=ashishamarnath BUILDX_PLATFORMS=linux/arm64 BUILDX_OUTPUT_TYPE=registry make container + auto-push is currently not implemented for docker driver + make: *** [container] Error 1 + ``` + +Having completed the above one time setup, now the output of `docker buildx inspect --bootstrap` should be like + +```bash +$ docker buildx inspect --bootstrap +Name: builder +Driver: docker-container + +Nodes: +Name: builder0 +Endpoint: unix:///var/run/docker.sock +Status: running +Platforms: linux/amd64, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v +``` + +Now build and push the container image by running the `make container` command with `$BUILDX_OUTPUT_TYPE` set to `registry` +```bash +$ REGISTRY=myrepo BUILDX_OUTPUT_TYPE=registry make container +``` + +### Cross platform building + +Docker `buildx` platforms supported: +* `linux/amd64` +* `linux/arm64` +* `linux/arm/v7` +* `linux/ppc64le` + +For any specific platform, run `BUILDX_PLATFORMS=/ make container` + +For example, to build an image for arm64, run: + +```bash +BUILDX_PLATFORMS=linux/arm64 make container +``` +_Note: By default, `$BUILDX_PLATFORMS` is set to `linux/amd64`_ + +With `buildx`, you can also build all supported platforms at the same time and push a multi-arch image to the registry. For example: + +```bash +REGISTRY=myrepo VERSION=foo BUILDX_PLATFORMS=linux/amd64,linux/arm64,linux/arm/v7,linux/ppc64le BUILDX_OUTPUT_TYPE=registry make all-containers +``` +_Note: when building for more than 1 platform at the same time, you need to set `BUILDX_OUTPUT_TYPE` to `registry` as local multi-arch images are not supported [yet][25]._ + +Note: if you want to update the image but not change its name, you will have to trigger Kubernetes to pick up the new image. One way of doing so is by deleting the Velero deployment pod: + +```bash +kubectl -n velero delete pods -l deploy=velero +``` + +[4]: https://blog.golang.org/organizing-go-code +[5]: https://golang.org/doc/install +[22]: https://github.com/vmware-tanzu/velero/releases +[23]: https://docs.docker.com/buildx/working-with-buildx/ +[24]: https://github.com/docker/buildx +[25]: https://github.com/moby/moby/pull/38738 diff --git a/site/content/docs/v1.8/code-standards.md b/site/content/docs/v1.8/code-standards.md new file mode 100644 index 000000000..22a2261d5 --- /dev/null +++ b/site/content/docs/v1.8/code-standards.md @@ -0,0 +1,151 @@ +--- +title: "Code Standards" +layout: docs +toc: "true" +--- + +## Opening PRs + +When opening a pull request, please fill out the checklist supplied the template. This will help others properly categorize and review your pull request. + +## Adding a changelog + +Authors are expected to include a changelog file with their pull requests. The changelog file +should be a new file created in the `changelogs/unreleased` folder. The file should follow the +naming convention of `pr-username` and the contents of the file should be your text for the +changelog. + + velero/changelogs/unreleased <- folder + 000-username <- file + +Add that to the PR. + +If a PR does not warrant a changelog, the CI check for a changelog can be skipped by applying a `changelog-not-required` label on the PR. If you are making a PR on a release branch, you should still make a new file in the `changelogs/unreleased` folder on the release branch for your change. + +## Copyright header + +Whenever a source code file is being modified, the copyright notice should be updated to our standard copyright notice. That is, it should read “Copyright the Velero contributors.” + +For new files, the entire copyright and license header must be added. + +Please note that doc files do not need a copyright header. + +## Code + +- Log messages are capitalized. + +- Error messages are kept lower-cased. + +- Wrap/add a stack only to errors that are being directly returned from non-velero code, such as an API call to the Kubernetes server. + + ```bash + errors.WithStack(err) + ``` + +- Prefer to use the utilities in the Kubernetes package [`sets`](https://godoc.org/github.com/kubernetes/apimachinery/pkg/util/sets). + + ```bash + k8s.io/apimachinery/pkg/util/sets + ``` + +## Imports + +For imports, we use the following convention: + +`` + +Example: + + import ( + corev1api "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1client "k8s.io/client-go/kubernetes/typed/core/v1" + corev1listers "k8s.io/client-go/listers/core/v1" + + velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" + velerov1client "github.com/vmware-tanzu/velero/pkg/generated/clientset/versioned/typed/velero/v1" + ) + +## Mocks + +We use a package to generate mocks for our interfaces. + +Example: if you want to change this mock: https://github.com/vmware-tanzu/velero/blob/v1.8.0/pkg/restic/mocks/restorer.go + +Run: + +```bash +go get github.com/vektra/mockery/.../ +cd pkg/restic +mockery -name=Restorer +``` + +Might need to run `make update` to update the imports. + +## Kubernetes Labels + +When generating label values, be sure to pass them through the `label.GetValidName()` helper function. + +This will help ensure that the values are the proper length and format to be stored and queried. + +In general, UIDs are safe to persist as label values. + +This function is not relevant to annotation values, which do not have restrictions. + +## DCO Sign off + +All authors to the project retain copyright to their work. However, to ensure +that they are only submitting work that they have rights to, we are requiring +everyone to acknowledge this by signing their work. + +Any copyright notices in this repo should specify the authors as "the Velero contributors". + +To sign your work, just add a line like this at the end of your commit message: + +``` +Signed-off-by: Joe Beda +``` + +This can easily be done with the `--signoff` option to `git commit`. + +By doing this you state that you can certify the following (from https://developercertificate.org/): + +``` +Developer Certificate of Origin +Version 1.1 + +Copyright (C) 2004, 2006 The Linux Foundation and its contributors. +1 Letterman Drive +Suite D4700 +San Francisco, CA, 94129 + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +(b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +(c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +(d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. +``` diff --git a/site/content/docs/v1.8/contributions/ibm-config.md b/site/content/docs/v1.8/contributions/ibm-config.md new file mode 100644 index 000000000..4aaf823a2 --- /dev/null +++ b/site/content/docs/v1.8/contributions/ibm-config.md @@ -0,0 +1,101 @@ +--- +title: "Use IBM Cloud Object Storage as Velero's storage destination." +layout: docs +--- +You can deploy Velero on IBM [Public][5] or [Private][4] clouds, or even on any other Kubernetes cluster, but anyway you can use IBM Cloud Object Store as a destination for Velero's backups. + +To set up IBM Cloud Object Storage (COS) as Velero's destination, you: + +* Download an official release of Velero +* Create your COS instance +* Create an S3 bucket +* Define a service that can store data in the bucket +* Configure and start the Velero server + +## Download Velero + +1. Download the [latest official release's](https://github.com/vmware-tanzu/velero/releases) tarball for your client platform. + + _We strongly recommend that you use an [official release](https://github.com/vmware-tanzu/velero/releases) of +Velero. The tarballs for each release contain the `velero` command-line client. The code in the main branch +of the Velero repository is under active development and is not guaranteed to be stable!_ + +1. Extract the tarball: + + ```bash + tar -xvf .tar.gz -C /dir/to/extract/to + ``` + + The directory you extracted is called the "Velero directory" in subsequent steps. + +1. Move the `velero` binary from the Velero directory to somewhere in your PATH. + +## Create COS instance +If you don’t have a COS instance, you can create a new one, according to the detailed instructions in [Creating a new resource instance][1]. + +## Create an S3 bucket +Velero requires an object storage bucket to store backups in. See instructions in [Create some buckets to store your data][2]. + +## Define a service that can store data in the bucket. +The process of creating service credentials is described in [Service credentials][3]. +Several comments: + +1. The Velero service will write its backup into the bucket, so it requires the “Writer” access role. + +2. Velero uses an AWS S3 compatible API. Which means it authenticates using a signature created from a pair of access and secret keys — a set of HMAC credentials. You can create these HMAC credentials by specifying `{“HMAC”:true}` as an optional inline parameter. See [HMAC credentials][31] guide. + +3. After successfully creating a Service credential, you can view the JSON definition of the credential. Under the `cos_hmac_keys` entry there are `access_key_id` and `secret_access_key`. Use them in the next step. + +4. Create a Velero-specific credentials file (`credentials-velero`) in your local directory: + + ``` + [default] + aws_access_key_id= + aws_secret_access_key= + ``` + + Where the access key id and secret are the values that you got above. + +## Install and start Velero + +Install Velero, including all prerequisites, into the cluster and start the deployment. This will create a namespace called `velero`, and place a deployment named `velero` in it. + +```bash +velero install \ + --provider aws \ + --bucket \ + --secret-file ./credentials-velero \ + --use-volume-snapshots=false \ + --backup-location-config region=,s3ForcePathStyle="true",s3Url= +``` + +Velero does not have a volume snapshot plugin for IBM Cloud, so creating volume snapshots is disabled. + +Additionally, you can specify `--use-restic` to enable [restic support][16], and `--wait` to wait for the deployment to be ready. + +(Optional) Specify [CPU and memory resource requests and limits][15] for the Velero/restic pods. + +Once the installation is complete, remove the default `VolumeSnapshotLocation` that was created by `velero install`, since it's specific to AWS and won't work for IBM Cloud: + +```bash +kubectl -n velero delete volumesnapshotlocation.velero.io default +``` + +For more complex installation needs, use either the Helm chart, or add `--dry-run -o yaml` options for generating the YAML representation for the installation. + +## Installing the nginx example (optional) + +If you run the nginx example, in file `examples/nginx-app/with-pv.yaml`: + +Uncomment `storageClassName: ` and replace with your `StorageClass` name. + +[0]: namespace.md +[1]: https://cloud.ibm.com/docs/cloud-object-storage/getting-started.html +[2]: https://cloud.ibm.com/docs/cloud-object-storage/getting-started.html#create-buckets +[3]: https://cloud.ibm.com/docs/cloud-object-storage/iam?topic=cloud-object-storage-service-credentials +[31]: https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-uhc-hmac-credentials-main +[4]: https://www.ibm.com/docs/en/cloud-private +[5]: https://cloud.ibm.com/docs/containers/container_index.html#container_index +[14]: http://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html +[15]: customize-installation.md#customize-resource-requests-and-limits +[16]: restic.md diff --git a/site/content/docs/v1.8/contributions/img-for-tencent/15ccaacf00640a04ae29ceed4c86195b.png b/site/content/docs/v1.8/contributions/img-for-tencent/15ccaacf00640a04ae29ceed4c86195b.png new file mode 100644 index 0000000000000000000000000000000000000000..61859ca50e9fbafb2948628d79b7e0bf69bd85de GIT binary patch literal 132711 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

    1. bHDT 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%0D84wI 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 !1-`yjuGc@{h+{c5~#C8bSt>zP{ra{|Pn| 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

      ` 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π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 CkT-R3B0ucAz=veF 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 XSX6k&spaN3z>m7J&Z8nli?{y=vTPGg literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.8/contributions/img-for-tencent/effe8a0a7ce3aa8e422db00bfdddc375.png b/site/content/docs/v1.8/contributions/img-for-tencent/effe8a0a7ce3aa8e422db00bfdddc375.png new file mode 100644 index 0000000000000000000000000000000000000000..28e1bbaad3ae0635df7e394f48b1a1836754d514 GIT binary patch literal 85131 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%0AmC`-4_;Qkg zQEHSHT4T@X8zIFnj2^X4i+3)ahjs3L>aA}M%c_$r#_1ROZ&re5OA%_leV?8F(Ne}T zK$=+v#iXtkQ@m;B4^wH69P5ZXVy*Cc&&$@3z8JdIywg#f`OudI%ihqBwb=X|oJzV| zZ+Wcf-Qsq!*Ed}KXY z5Py(A2rsH?`0{ijWO}{i(;4WT4Zs2(ku&NUN0hH92lY8q<1Yri)T9o_f zsE=yx@ksINmEC&4g)WJ}TIm^%c=dJzRu4JDAi~)y-mYL#z#(&RXkG2@UEU+L6Q8XQ z%vJH`2^~Pan{WS0l()&=V(BVTJi-vG)yp_u$FS%tmXRWtGvpo0A2@&G{`FS1wgQm! zYZz(7B&7OkZRx`|sS7a;6~5+CXGiqyB$-Kr#a}!U($;GdXw9~KEK3w9N1VMnnITiX znw?k!sE=NvY(`HuN{sI1HGC_?XO>5v>I}s?*kT=TEqU#s$eq9mkfD*NX>`{SD6*WO zyw#b~ygL@knG&y64Aj;8KJN%}Q5!$f%@b76Zh&XA@S#=HYB_PmT_$YFL1@6aE4`=S zN;7xUkS%)6Cih_%M8noBHGDj+Y{c7SzgLKedu0IxbwO0QixzLIBTnR3X{^&pps4}D zs8ywGzK!%_4zdj}Km_fAj<-9OCnaaEmu9DH8^j5j)i(UTo6Ipu#I=LwxM2!uPhS(I zuSN`o&ck}`rz+oLtvM9N+{JdRtSSNV7WT>1z3pfMB+yO)396@};U&c=Z;oT9$30+| zP3AP~43W&Ze+X==u#(=AZI0PQK6^J{B{`@GbM&Hp;ony+^OPCoINI;a;m71WsIEj4 zb!banj(Bt0xzFCTAKq~Svi557#--T=SCR2AeiQU`F_T7M6O+;@*c0c?l;1WWov|s8 z2w5b{?^PVvJ!+yk)KmWA7Di}*;z9puemcwu5TL}-MPEy* zOe|^C=j`fQHsKX_`}0kTaqrgbfs;y)L|zL}@1AM6Pi2h)n_T?37Yc~ja429(cJCi) zV_hRjls9yx-NE8(N04)G(ywa%`3pZ;WWxq~`ygc2Q*q3z=)f|TLUiH!>FpG(PomKx z>u{<)Z*ADB>ehzH>tEL!TOeiwZS)@#T}9i1;H>@#Am=fQ94y~R{0`%usdm3KJ0X0# z|C?99Jfz!P1zsDm9L~?mh|sesA4+&;G$##dcrq`kbcSbIDYi5n!%Y1KnD2L}b3(g! zocEy6i~2z~V(5fBHTo;AKPVs8=tAy3S*n3y*)eH{aK6@-l@RweQQD z;I)!_w6V(oiK{>`p^@;TE^pd-C?-L*Tqt&GDGcH~E&*3*%mGS0{!LM{-D|imT%y$V z-2jE9JTTyY63W{n>Kko=&dddfo1Z!bcKY{E2yZ%x*!|iaUUP4LYZSJP1Zj*h=1-;uj(bwPAAe_wGRH2&xB54C3FK1L1QKrVF zZ?b9zQm!51l%C}Nl4cwGlf3la-D&5Wo-F?(FC)0jBQAr63ev_Kf24q;-`%d`gRfct zO|lQ2R;Y&nIqRoxcswpzp)0d!VUjE+ZVOaGl`A4dA#A@wed+K^>qD5fScj_^`!H$C zRkOfP_+YNW6%->AT?%cCI7O=K3CM4f;2P~;_QBQ8h_XqlZCEsY@P*Bhquprg2DC3I zD-J5&9wdCna}A_^jSIjq4>#77<4r~ToD8QF!;M!h)g>h6KHj?(6T6C2dzkh}zW!!K zs}=bq08L^}Nx(L03@=%MAMLP(7o`Q{Z5Fk5ySyO&b2`44^JvlRsNk=b(Rs_ID~l+X z9b^u@IK7IOtwoMHC7f#8frcy}Fd{j@gbe^%&R<5q9GeNNS3GJRR=xe`?JINX_=;~@ z%xXmfm*@Gg4NFVYKoz^^sTl9|r~b#Z-JymQ9;CLv-#g}64aEk|&;z*OIvw-pAAYc! z)1S_5@du-}%3sU@O}I0r;swy~;R9&tA^k)l&9_(f`>hBq|A%E zDC)I-K#H<&I(*;dUrZn|!AC0_{HX$UqywXV42z+&J}sen_F*FAjZSa{qD%gkV;8@% zllnHLOzo~A2KKB%*t@UGanNaj4Ajx964pMIM)vH#gm&fzaOwL%XzLNuqGN_=fCI6r zf)>rLE}z_CJG>`PG!@oFq`VoKVyOTfG#SRj2nOF*@g&X%8{DSU{; zCOT;+&1*GdYBzws_o&;>XC8|_cqgLT_^DXof~0sGJu?X2fKV6I$55_3B~P9Ndp56p z)11Ad0vEj7vkjW3)!yxPas&s_h7U720*PABVhVrSJ>vhAShx7C-?-ntgPM#d5}OwB z^}*W`8dj+7%cFtSmLx%#ss6zvV59iYRzY|UFP-jMK% z@m7?QKK+Y4Knyodm-B_K2OiR)!|Sfm3J=)V0ov%Ab*?{E-Nudm(!&TT#@Pz{PjY4YU-){T6 z1J9>=J5TG%0`R1hDz^Bab;q_&4Og1^@`37<-fTalO=r-MYmTj}C@ESAx&l$rui?$7 zGl%WF0)(`#anGmzxS0ofARw!WOil8kP;LL+#m^kQm3D{OdN?xf$bZXZM*P4e3HK!* zw1#PCB85qAqLI_}4{Nk5qFKN^zqi(~htEt6K?pLRrQ9coy#*Gky-WP(i z<-#+d5(v9qc?$S}s<$0Zd5Q2ux;Hh1pyY>TZg72}2BHum%7+Q#G5qL_k(b!aE#L0| zJ#O#{Yh7w8?81TFAZuXp^8)i3vbXBS*F9f_YmuF#54K-8CQ9M0-)304VJD6K&qXd! zvp?Uv_(<|y#4;U^Yd*;}dcGgUT@NXa7C0uCmAMKQXxk2Q(qG(pJS+VJYprPAtm|dwBgn8Rm{vy$LDD66OT>1WEaGuDegzh&Xn02YmDdY2dcH4 zC*GsrfEa_QPc|YD(s$(W6DzHG@St^+m!(DHt$)n^F?8WPkCHLN@K|?3M#8+UxTWi9 z{?xX!z7I!zH|0tN!FGMh1u8AN@bY4CxYId;Zn4BF z506@E8jEv?VNNLg_>SbG%TWXZ`&`roO}QeOXme))EU%h(A%j+~KP`}B_= z`v3Fi*9_99X{8yZib2%>&sY3!{zDuU$Z6W&F!)gZ{Uy_W{gKrttI4$i z96CDX1MIkEN?t7@3@_^gI09^`H>Od&8y&hTSuAe`bJ0AYrGbbzsH1pvlXtvi&5XDIr+1aFkZ+;-ih*UC|0IYFd>Kjb!Iu>L z8GO_)J3<|ot5`g@d;4ODHu?4ya1H|Zq5ei`Z|Ac*#3C2W9(ZT!iHqQ6hk&YT3-o=mAu$x8;O+Tp5fyn8dJF3`aA&cQbMQKFVL z-zRSf?mLq2MSbCR_wHZb=t*&4rTlMd<-eA-FUy6RCusw=ms%Tkd!=WXiSA058tY1q zUpzpjC54AHo|Gg$vNy@Xm5iAuR)>j<{|a;mDY~^_NjU$*6EHK6JQK&1Z4ej86W5m~ zf;pvr0(cBZh&$8jPcQ&ovkhX6*;Q5sG%#e3 zJ(F~j-`8qwiB? zlK9fHu0A_X+<;#8>R}cVROSw85_bPS?n@bB_v~u$-_C~rV@3btn=)5@3pH0B+g~U5 zjSTVHO`LH8Abnk9GFM?$6IkG5=5JR3RQ%WcTQN zFwPtVP&k$kX`{4OUO!mTGe4A*p9OinNS&oJ(~1!8l8>HC@fHzfX`vNB?k=kNT7~yT z(T9==5I+HFVdx zoeL>$bENGQV<10WnafGTh*;2@h?b9(KB$Q0!L!7`dm1rGN_-HwA~KE_j8YaRJM5l2 zT<#XLaXi~mNwRmHUUF6whuG{8%OU&lKfJ8==L~cD^iGD^V6hyGgrkwh4KsI2*5?1! z*>y!Vm2drV1PdrgRfnP?!5~2tkPbT3p-K}2L69I#5k#7FL69OvAp}sGC?G>G(go?# zk&aX)q4z5N+sB!8*S+_9xH>K#d`KuK=j{L9zqWxosn`Mey@LXqJ>iD*cBA3$*Q{E< zuZTABCACS=W!GjhLBMug>TM9JdRqcf9=>vpFDWr*nBB< zDda4@b9nxGp5H$Cz%=hZHWuR$+V8++AC`JX%;d>Zr$StjQRce&A>|)Efa59lHETya z>N>2Z(SR(2W=MUC9jkKYY1`(s>W)$o(~lATgpG=pA#8g1)DT>`If!IfZA@qd6R5wOrY%dZ+j6t;PRgjdI z@Vwoo?DYj?7ri402yPq;_3}eK3fHg3kTq$t4?K;MH!F{PNKi1z6=_4(f#0tR9?CT>(SWu_>emWrR zG&AsP*4azIc=+Dvl{v#tn0Fl)w*pei4qFlpM%GZ1rcB6#y?t`I?fq=TqHpLh7_`RT zBUOpn8|S`39t0*Xnl;yU_Fa!Nb@)tfsj%|HunfSw2C`?C0K%+ElvV$ZOAOp7-@IM` zTEs%6KMy)7z?D7bk7~)2KKBJ5PVZRpFjyj!X7B4 z`dzfS65rdPj=Z^*u~ z1uKkNX(`xg{P~k(O20f|q4#M4C3c;f0w5a7cHVo-eya+Yz$Bj~M!lUQnbwfpT6RQB z4aqerm@A$JnT26iF~Ul-DHTQ!gFkHmq*>(f zJCIZQwfauthLN&U!8Ta&QdzsTOXSoOlGvq_rZl+t$*PzYSY23KFVMUSr%-d83)sE} zWoRXzlXL*kTZLaZ&jxTfX#}DHXExKP|k)?!)q{7$M|u-M^4Z+o84C34wiOPypjtmlJe=#!PAh|p&}4;MW`VC zGv2<7Q@{N;luo4P1*|jN6^*oM5g8y<8EZzC_tm@4sHr&l2l1@<@?UDD_44WF@0M@Q z;WXK-Ic{hNBz!W`7P(>3)_5mksipjd^6du&AUJlSjwYxU4g=#V^+&9a;m*_z_qc~N zk}K-R&y$51_||Ke&7Fo+u&dknPo0=?O|!*;2YhJFvq>u3u(!J~L~8S6oD1}MJ31bJ z_4{4)-^@br<2Cau=5v?#V&vZ))-wOWNdR6J#)Nd&N0^Q^l70zLhh*pn$np{w(sKp+ zOti)Y@KWubkV}EhHJ$Setq8@0-B(SIa@Vkw@uV`TMMT`(9*9+b)c2Nd8<9p~V;(T{ z>)Y-z!fAXXP19cluXdlhozqkL^DAX_- zAt$W!(ToX#wVJKiWkJ*x;w$0CM?+d+9$(ygbLNLPy9)-Wc+y5>$`C&xt;aW+%(uS{ z;le(dI@g81(N&hq7QXjtv1M z_8uo4CwBD_*}hG1&pwq&S%j@A$^>`a;6cXM9gE?jrny+Oq&V@Z*BQ^<~!x&Se6LYp*Ks2ykL+3M#x^#Y^@cmb1j2AzwG8j{TAz})! z{&@K)@bi`~cvV%N^1`1Z^3xGFY0_ozbbQ)r{5(;GK>$+c;2R&l#`@X+aT|PesszzE z=P7PSs9Yrx2F~?721!-IDD9R^B!q&DB!(Dh1Tt78)>Lb>(schumu8aii}G)`u!)fg ztVU%pWl2pyPGy_*9*|()w)q>Au#=o@>BkspXhlXIaZX&^nj22#o|7oM)$7j^ zM4wahm9_<)xKtT^%?20CqNSbx^3>%!gjr{~F;cugTSFCq!m~`~Mjnt0=5)6NUY$kD zL`gQhUGMBBv==^g423H)4D;u`J;2? zzs+G2dcWQ@1~ubFWjf!6K;18qIh;LB97Yo~C`BB;pE0$NeVXq`$%GV9m<|`pCZ|Hw zRX}znTBn4$rO_d0i51|`V;AX&&*~CRHyB~#1W!sl%$haTQ^|XZDN%F9ybrqNcIjGH zB(~OziL zUY2$-curAN(FB2ZuPcnIpn^ABe|&2DgHd>UyS}|xhsD$zW1^lg8K>NXM3nWfGG7UM z%;kvPWSvgOkXx25bc~%$v)}6aSi-U7uZcuoO)kfn`SKU`7`TWs25T(I!7kkKa5oJx z`4oE~cU4hmw1-?llGt(C+p2 zS}RqmY2|4PEHTDKW)x(FYNDdq9ysKT!#)CSJq>EwMpCbX`qXxdW7#NEhx&{xT@z!~ z{l^J}V6=P(?M^US)p={(kkA+16jHa%!vh?a@!CWtB?RB}PPb6_fhmnJ2an?`l# zA+~02d%1PJ=TDVn+N{TWIk6?`6=6#^5|KrGR+EVl4oEd}%|h?Xo!Nwfsi`Oku>eHc zgNfR?rOxnt6+vv&Mh?;!m%t$FOxXzYBTB=ZCLC+b;Dx_Pf8P29r6xfa_2Y&5U#|>1 zxR2XzjWl{hpy?TD44A=)8DDWzO4_HcT-m!#9#QGMhxY)?aJJ5m7NGKhWD$K;bu2}b zCg3iyE~TMo8bUCKC7oBy3qX|SRPHTq^R@cL{q}?CfCT+Dz^*x|h!(=E#&TJKm9g9@ zpWo9RP_oIYZTJcbSy6Hgqu4ps7q^oWMwNg4Hr&$cz9!(|!J0$bf@-K-PH_CpMm(L) zitHE#G3VSL^Jjcnzg{RD`E}kDndTV9jEmlk&Ob5M%D-o(S0$n`A=vo#`kODv#uuF3 zC%Hl3QzI#S$=!(W^Imohb6IH|oTGCfrE^5iQ%3=Zncm`7MSAr+2jv#;7di9XMN=@G z!jBU{jY48oZq2POmHkJR)GkQ+9F^W0kJsmcCrSoRyNFC!)`r$3O+CA9TLl1;AyxB5 zzV0|53tW3ZZ+D9?4&$BB`5ig#K(hQDLmqH-i`^?SyO06h`L3Q=DFjmXBTf|@qwFgN zGGApi8?%Vam*}0DZJ0;N-x5)5t;ixl2hE8{lT=;|G1YVrGJ=#^Y%rCu@v+>-Ps2p3dQjR*K zhjIgrK|h88{5$G$b(Nw_P*~Tk_a+0ru&J20AVy6>+2ZUg4x_a4i!kMecR z7;n%b?fSNm_Q(KqOFN=lIFs<}mIbCy`Oho8J=9>04G~0EQ&<+X=3@nqP@*~(1|Z8L z49n#TJ)d;4>MR)KH)&E|euU@)5`iwv}sCHV_#r z2V}=dZIe{WZIB!7rU&+|ij|ZX#zfs=7|XUrV_N}M`!xUB-2YwYpVhGyb`KF~YHQZo zV>;`r;x<|d=CrvoOyVH3sA-f#+P$R`z+ve5U{m+{xaG-pfZc>`eESi*gFkNeM{(wV zyJ&W&JT33#&6R{CX|kR_iqtC)7NfN@ArV|D@+C_FDXhl6OYLU znW+$=%N6%h9Nr&AFYLK~`#4IG@q~u@O^d|vZ70GB z!-rpds#OhVpB*4{s#nV(dbt;GEb~6e*Dt>7F?cy6oGUXl2NhDv5AtYw`ErBpo1LY_ zvI7FrV6vVAIVUd2mRLLHd(70l>s_r;_3xjSLXQh}%V>-t{m%P$b!yp7-{8b9%mlb$ z=uZo=*_W0%iksRGnrxB1HK=tj{3yVe<8k|A&&B#euhBY)6qGof8N|-Dm@54-3}i8t z2j5j3VEM*t5{epnu4@`qV;u(vadpgPC~ zj6y3vumf1-HM|%gC80Z555-?3#jz@aKH%}wICk5AGEV}Y&fQMr+!%{>u`2g~yH`|e zp-SnC-raO^xTwZjQy9>EqD8V;Kc5)=iK-ZQqEYLzNoU(lqx+KANR zSiW^r*lwb&dL2O8Ii_E9oh5guc?*W%{_#IWEHEpwW*`no!6_J)n4PLa;MFt0NKU5f zIwZR8jR}|AAbwW9YXokdWs57bB7kN@xCvr}%ixgTaBF`|)+X>Tll;yG-#6`Ikh6r2 z3fha6FE4>W)X(<-^N&)NGB#qo>z72K zAmKg8?R8y^a0EUswah|?sg&ey&ZE;lAT~8^F6!OSNGXGo$3%=B?mm`H;s4=;NihOL zZuwqTcE9#QkUN_cAkJtXB06@$fhU}UjN+>VeV6mo48kLeOO*aJPp*|w_{1We*PmK3;pSZ&M zBYy_Wb4>>tk&$2a^buK_)yHRNq(bNw*vc5rTT4OmlhnIfpYai7ujGQb`qKZ#ME+|u zxJuD*EOLg|E`gvc8|yT75~iH34OF>J2uBpRZGuD%{V>#}c_wWrxA6#6;2T2!8}o@= zZ^3Bb2zKeaMY2g24Ds= zi)vQPaf9h}0O=J&%p#2r6hP_a>M1rd0|onPy|+KN-G$sH{@nq9Zw7hxioe7X6HYg_K{CwD96)RiATZObL$TD<0q-`PEhwb) z7*?aKEBC&R=Hb3Jf=~zu96k7G-~It0Z{`7}4qEcGdm93BvgT%iR*B0gE@15%gbJ!} zo54qu0q(`O=Bg<|4Y?8sZ2yyAoyR6#pn7r%%v-C|H*5v2vu&@J?=|P?^`W=19zm5y zGih0bnsB4rP+uk^T1-=>U^X-~@V^hy1~iRsSd8pRdY*_G$JATtxg8PVwRldY=xxqs zhO2ZAFh?{W?DRZyTUWCA&mOUhlS-jK{oDCnWjSOQhtw}-O+I{goU zp8xLwhnn!A%6uBYxRJDdML;CzVSSw_n)? z)ZZC=`_u3J`;NVuOdoj%sFiSwe6?n_MCG4vvLBStZC zQAdK%&zFwBa0O3pFZdS8ewN*;|H0+|%+qPd@3}{NZ9r_PwL@j#7xreaq|r E06hp8s{jB1 literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.8/contributions/img-for-tencent/f0fff5228527edc72d6e71a50d5dc966.png b/site/content/docs/v1.8/contributions/img-for-tencent/f0fff5228527edc72d6e71a50d5dc966.png new file mode 100644 index 0000000000000000000000000000000000000000..b732cf25281e349ac940bafcad1d7d5cdbb7a915 GIT binary patch literal 49558 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 PfFA`JRp}B*1Hb.tar.gz -C /dir/to/extract/to + ``` + + The directory you extracted is called the "Velero directory" in subsequent steps. + +1. Move the `velero` binary from the Velero directory to somewhere in your PATH. + +## Set up server + +These instructions start the Velero server and a Minio instance that is accessible from within the cluster only. See [Expose Minio outside your cluster](#expose-minio-outside-your-cluster-with-a-service) for information about configuring your cluster for outside access to Minio. Outside access is required to access logs and run `velero describe` commands. + +1. Create a Velero-specific credentials file (`credentials-velero`) in your Velero directory: + + ``` + [default] + aws_access_key_id = minio + aws_secret_access_key = minio123 + ``` + +1. Start the server and the local storage service. In the Velero directory, run: + + ``` + kubectl apply -f examples/minio/00-minio-deployment.yaml + ``` + _Note_: The example Minio yaml provided uses "empty dir". Your node needs to have enough space available to store the + data being backed up plus 1GB of free space. If the node does not have enough space, you can modify the example yaml to + use a Persistent Volume instead of "empty dir" + + ``` + velero install \ + --provider aws \ + --plugins velero/velero-plugin-for-aws:v1.2.1 \ + --bucket velero \ + --secret-file ./credentials-velero \ + --use-volume-snapshots=false \ + --backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://minio.velero.svc:9000 + ``` + + This example assumes that it is running within a local cluster without a volume provider capable of snapshots, so no `VolumeSnapshotLocation` is created (`--use-volume-snapshots=false`). You may need to update AWS plugin version to one that is [compatible](https://github.com/vmware-tanzu/velero-plugin-for-aws#compatibility) with the version of Velero you are installing. + + Additionally, you can specify `--use-restic` to enable restic support, and `--wait` to wait for the deployment to be ready. + + This example also assumes you have named your Minio bucket "velero". + + +1. Deploy the example nginx application: + + ```bash + kubectl apply -f examples/nginx-app/base.yaml + ``` + +1. Check to see that both the Velero and nginx deployments are successfully created: + + ``` + kubectl get deployments -l component=velero --namespace=velero + kubectl get deployments --namespace=nginx-example + ``` + +## Back up + +1. Create a backup for any object that matches the `app=nginx` label selector: + + ``` + velero backup create nginx-backup --selector app=nginx + ``` + + Alternatively if you want to backup all objects *except* those matching the label `backup=ignore`: + + ``` + velero backup create nginx-backup --selector 'backup notin (ignore)' + ``` + +1. (Optional) Create regularly scheduled backups based on a cron expression using the `app=nginx` label selector: + + ``` + velero schedule create nginx-daily --schedule="0 1 * * *" --selector app=nginx + ``` + + Alternatively, you can use some non-standard shorthand cron expressions: + + ``` + velero schedule create nginx-daily --schedule="@daily" --selector app=nginx + ``` + + See the [cron package's documentation][30] for more usage examples. + +1. Simulate a disaster: + + ``` + kubectl delete namespace nginx-example + ``` + +1. To check that the nginx deployment and service are gone, run: + + ``` + kubectl get deployments --namespace=nginx-example + kubectl get services --namespace=nginx-example + kubectl get namespace/nginx-example + ``` + + You should get no results. + + NOTE: You might need to wait for a few minutes for the namespace to be fully cleaned up. + +## Restore + +1. Run: + + ``` + velero restore create --from-backup nginx-backup + ``` + +1. Run: + + ``` + velero restore get + ``` + + After the restore finishes, the output looks like the following: + + ``` + NAME BACKUP STATUS WARNINGS ERRORS CREATED SELECTOR + nginx-backup-20170727200524 nginx-backup Completed 0 0 2017-07-27 20:05:24 +0000 UTC + ``` + +NOTE: The restore can take a few moments to finish. During this time, the `STATUS` column reads `InProgress`. + +After a successful restore, the `STATUS` column is `Completed`, and `WARNINGS` and `ERRORS` are 0. All objects in the `nginx-example` namespace should be just as they were before you deleted them. + +If there are errors or warnings, you can look at them in detail: + +``` +velero restore describe +``` + +For more information, see [the debugging information][18]. + +## Clean up + +If you want to delete any backups you created, including data in object storage and persistent +volume snapshots, you can run: + +``` +velero backup delete BACKUP_NAME +``` + +This asks the Velero server to delete all backup data associated with `BACKUP_NAME`. You need to do +this for each backup you want to permanently delete. A future version of Velero will allow you to +delete multiple backups by name or label selector. + +Once fully removed, the backup is no longer visible when you run: + +``` +velero backup get BACKUP_NAME +``` + +To completely uninstall Velero, minio, and the nginx example app from your Kubernetes cluster: + +``` +kubectl delete namespace/velero clusterrolebinding/velero +kubectl delete crds -l component=velero +kubectl delete -f examples/nginx-app/base.yaml +``` + +## Expose Minio outside your cluster with a Service + +When you run commands to get logs or describe a backup, the Velero server generates a pre-signed URL to download the requested items. To access these URLs from outside the cluster -- that is, from your Velero client -- you need to make Minio available outside the cluster. You can: + +- Change the Minio Service type from `ClusterIP` to `NodePort`. +- Set up Ingress for your cluster, keeping Minio Service type `ClusterIP`. + +You can also specify a `publicUrl` config field for the pre-signed URL in your backup storage location config. + +### Expose Minio with Service of type NodePort + +The Minio deployment by default specifies a Service of type `ClusterIP`. You can change this to `NodePort` to easily expose a cluster service externally if you can reach the node from your Velero client. + +You must also get the Minio URL, which you can then specify as the value of the `publicUrl` field in your backup storage location config. + +1. In `examples/minio/00-minio-deployment.yaml`, change the value of Service `spec.type` from `ClusterIP` to `NodePort`. + +1. Get the Minio URL: + + - if you're running Minikube: + + ```shell + minikube service minio --namespace=velero --url + ``` + + - in any other environment: + 1. Get the value of an external IP address or DNS name of any node in your cluster. You must be able to reach this address from the Velero client. + 1. Append the value of the NodePort to get a complete URL. You can get this value by running: + + ```shell + kubectl -n velero get svc/minio -o jsonpath='{.spec.ports[0].nodePort}' + ``` + +1. Edit your `BackupStorageLocation` YAML, adding `publicUrl: ` as a field under `spec.config`. You must include the `http://` or `https://` prefix. + +## Accessing logs with an HTTPS endpoint + +If you're using Minio with HTTPS, you may see unintelligible text in the output of `velero describe`, or `velero logs` commands. + +To fix this, you can add a public URL to the `BackupStorageLocation`. + +In a terminal, run the following: + +```shell +kubectl patch -n velero backupstoragelocation default --type merge -p '{"spec":{"config":{"publicUrl":"https://:9000"}}}' +``` + +If your certificate is self-signed, see the [documentation on self-signed certificates][32]. + +## Expose Minio outside your cluster with Kubernetes in Docker (KinD): + +Kubernetes in Docker does not have support for NodePort services (see [this issue](https://github.com/kubernetes-sigs/kind/issues/99)). In this case, you can use a port forward to access the Minio bucket. + +In a terminal, run the following: + +```shell +MINIO_POD=$(kubectl get pods -n velero -l component=minio -o jsonpath='{.items[0].metadata.name}') + +kubectl port-forward $MINIO_POD -n velero 9000:9000 +``` + +Then, in another terminal: + +```shell +kubectl edit backupstoragelocation default -n velero +``` + +Add `publicUrl: http://localhost:9000` under the `spec.config` section. + + +### Work with Ingress + +Configuring Ingress for your cluster is out of scope for the Velero documentation. If you have already set up Ingress, however, it makes sense to continue with it while you run the example Velero configuration with Minio. + +In this case: + +1. Keep the Service type as `ClusterIP`. + +1. Edit your `BackupStorageLocation` YAML, adding `publicUrl: ` as a field under `spec.config`. + +[1]: #expose-minio-with-service-of-type-nodeport +[3]: ../customize-installation.md +[17]: ../restic.md +[18]: ../debugging-restores.md +[26]: https://github.com/vmware-tanzu/velero/releases +[30]: https://godoc.org/github.com/robfig/cron +[32]: ../self-signed-certificates.md diff --git a/site/content/docs/v1.8/contributions/oracle-config.md b/site/content/docs/v1.8/contributions/oracle-config.md new file mode 100644 index 000000000..b348091ca --- /dev/null +++ b/site/content/docs/v1.8/contributions/oracle-config.md @@ -0,0 +1,248 @@ +--- +title: "Use Oracle Cloud as a Backup Storage Provider for Velero" +layout: docs +--- + +## Introduction + +[Velero](https://velero.io/) is a tool used to backup and migrate Kubernetes applications. Here are the steps to use [Oracle Cloud Object Storage](https://docs.cloud.oracle.com/iaas/Content/Object/Concepts/objectstorageoverview.htm) as a destination for Velero backups. + +1. [Download Velero](#download-velero) +2. [Create A Customer Secret Key](#create-a-customer-secret-key) +3. [Create An Oracle Object Storage Bucket](#create-an-oracle-object-storage-bucket) +4. [Install Velero](#install-velero) +5. [Clean Up](#clean-up) +6. [Examples](#examples) +7. [Additional Reading](#additional-reading) + +## Download Velero + +1. Download the [latest release](https://github.com/vmware-tanzu/velero/releases/) of Velero to your development environment. This includes the `velero` CLI utility and example Kubernetes manifest files. For example: + + ``` + wget https://github.com/vmware-tanzu/velero/releases/download/v1.0.0/velero-v1.0.0-linux-amd64.tar.gz + ``` + + **NOTE:** Its strongly recommend that you use an official release of Velero. The tarballs for each release contain the velero command-line client. The code in the main branch of the Velero repository is under active development and is not guaranteed to be stable! + +2. Untar the release in your `/usr/bin` directory: `tar -xzvf .tar.gz` + + You may choose to rename the directory `velero` for the sake of simplicity: `mv velero-v1.0.0-linux-amd64 velero` + +3. Add it to your PATH: `export PATH=/usr/local/bin/velero:$PATH` + +4. Run `velero` to confirm the CLI has been installed correctly. You should see an output like this: + +``` +$ velero +Velero is a tool for managing disaster recovery, specifically for Kubernetes +cluster resources. It provides a simple, configurable, and operationally robust +way to back up your application state and associated data. + +If you're familiar with kubectl, Velero supports a similar model, allowing you to +execute commands such as 'velero get backup' and 'velero create schedule'. The same +operations can also be performed as 'velero backup get' and 'velero schedule create'. + +Usage: + velero [command] +``` + + + +## Create A Customer Secret Key + +1. Oracle Object Storage provides an API to enable interoperability with Amazon S3. To use this Amazon S3 Compatibility API, you need to generate the signing key required to authenticate with Amazon S3. This special signing key is an Access Key/Secret Key pair. Follow these steps to [create a Customer Secret Key](https://docs.cloud.oracle.com/iaas/Content/Identity/Tasks/managingcredentials.htm#To4). Refer to this link for more information about [Working with Customer Secret Keys](https://docs.cloud.oracle.com/iaas/Content/Identity/Tasks/managingcredentials.htm#s3). + +2. Create a Velero credentials file with your Customer Secret Key: + + ``` + $ vi credentials-velero + + [default] + aws_access_key_id=bae031188893d1eb83719648790ac850b76c9441 + aws_secret_access_key=MmY9heKrWiNVCSZQ2Mf5XTJ6Ys93Bw2d2D6NMSTXZlk= + ``` + + + +## Create An Oracle Object Storage Bucket + +Create an Oracle Cloud Object Storage bucket called `velero` in the root compartment of your Oracle Cloud tenancy. Refer to this page for [more information about creating a bucket with Object Storage](https://docs.cloud.oracle.com/iaas/Content/Object/Tasks/managingbuckets.htm#usingconsole). + + + +## Install Velero + +You will need the following information to install Velero into your Kubernetes cluster with Oracle Object Storage as the Backup Storage provider: + +``` +velero install \ + --provider [provider name] \ + --bucket [bucket name] \ + --prefix [tenancy name] \ + --use-volume-snapshots=false \ + --secret-file [secret file location] \ + --backup-location-config region=[region],s3ForcePathStyle="true",s3Url=[storage API endpoint] +``` + +- `--provider` This example uses the S3-compatible API, so use `aws` as the provider. +- `--bucket` The name of the bucket created in Oracle Object Storage - in our case this is named `velero`. +- ` --prefix` The name of your Oracle Cloud tenancy - in our case this is named `oracle-cloudnative`. +- `--use-volume-snapshots=false` Velero does not have a volume snapshot plugin for Oracle Cloud, so creating volume snapshots is disabled. +- `--secret-file` The path to your `credentials-velero` file. +- `--backup-location-config` The path to your Oracle Object Storage bucket. This consists of your `region` which corresponds to your Oracle Cloud region name ([List of Oracle Cloud Regions](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/regions.htm?Highlight=regions)) and the `s3Url`, the S3-compatible API endpoint for Oracle Object Storage based on your region: `https://oracle-cloudnative.compat.objectstorage.[region name].oraclecloud.com` + +For example: + +``` +velero install \ + --provider aws \ + --bucket velero \ + --prefix oracle-cloudnative \ + --use-volume-snapshots=false \ + --secret-file /Users/mboxell/bin/velero/credentials-velero \ + --backup-location-config region=us-phoenix-1,s3ForcePathStyle="true",s3Url=https://oracle-cloudnative.compat.objectstorage.us-phoenix-1.oraclecloud.com +``` + +This will create a `velero` namespace in your cluster along with a number of CRDs, a ClusterRoleBinding, ServiceAccount, Secret, and Deployment for Velero. If your pod fails to successfully provision, you can troubleshoot your installation by running: `kubectl logs [velero pod name]`. + + + +## Clean Up + +To remove Velero from your environment, delete the namespace, ClusterRoleBinding, ServiceAccount, Secret, and Deployment and delete the CRDs, run: + +``` +kubectl delete namespace/velero clusterrolebinding/velero +kubectl delete crds -l component=velero +``` + +This will remove all resources created by `velero install`. + + + +## Examples + +After creating the Velero server in your cluster, try this example: + +### Basic example (without PersistentVolumes) + +1. Start the sample nginx app: `kubectl apply -f examples/nginx-app/base.yaml` + + This will create an `nginx-example` namespace with a `nginx-deployment` deployment, and `my-nginx` service. + + ``` + $ kubectl apply -f examples/nginx-app/base.yaml + namespace/nginx-example created + deployment.apps/nginx-deployment created + service/my-nginx created + ``` + + You can see the created resources by running `kubectl get all` + + ``` + $ kubectl get all + NAME READY STATUS RESTARTS AGE + pod/nginx-deployment-67594d6bf6-4296p 1/1 Running 0 20s + pod/nginx-deployment-67594d6bf6-f9r5s 1/1 Running 0 20s + + NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE + service/my-nginx LoadBalancer 10.96.69.166 80:31859/TCP 21s + + NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE + deployment.apps/nginx-deployment 2 2 2 2 21s + + NAME DESIRED CURRENT READY AGE + replicaset.apps/nginx-deployment-67594d6bf6 2 2 2 21s + ``` + +2. Create a backup: `velero backup create nginx-backup --include-namespaces nginx-example` + + ``` + $ velero backup create nginx-backup --include-namespaces nginx-example + Backup request "nginx-backup" submitted successfully. + Run `velero backup describe nginx-backup` or `velero backup logs nginx-backup` for more details. + ``` + + At this point you can navigate to appropriate bucket, called `velero`, in the Oracle Cloud Object Storage console to see the resources backed up using Velero. + +3. Simulate a disaster by deleting the `nginx-example` namespace: `kubectl delete namespaces nginx-example` + + ``` + $ kubectl delete namespaces nginx-example + namespace "nginx-example" deleted + ``` + + Wait for the namespace to be deleted. To check that the nginx deployment, service, and namespace are gone, run: + + ``` + kubectl get deployments --namespace=nginx-example + kubectl get services --namespace=nginx-example + kubectl get namespace/nginx-example + ``` + + This should return: `No resources found.` + +4. Restore your lost resources: `velero restore create --from-backup nginx-backup` + + ``` + $ velero restore create --from-backup nginx-backup + Restore request "nginx-backup-20190604102710" submitted successfully. + Run `velero restore describe nginx-backup-20190604102710` or `velero restore logs nginx-backup-20190604102710` for more details. + ``` + + Running `kubectl get namespaces` will show that the `nginx-example` namespace has been restored along with its contents. + +5. Run: `velero restore get` to view the list of restored resources. After the restore finishes, the output looks like the following: + + ``` + $ velero restore get + NAME BACKUP STATUS WARNINGS ERRORS CREATED SELECTOR + nginx-backup-20190604104249 nginx-backup Completed 0 0 2019-06-04 10:42:39 -0700 PDT + ``` + + NOTE: The restore can take a few moments to finish. During this time, the `STATUS` column reads `InProgress`. + + After a successful restore, the `STATUS` column shows `Completed`, and `WARNINGS` and `ERRORS` will show `0`. All objects in the `nginx-example` namespace should be just as they were before you deleted them. + + If there are errors or warnings, for instance if the `STATUS` column displays `FAILED` instead of `InProgress`, you can look at them in detail with `velero restore describe ` + + +6. Clean up the environment with `kubectl delete -f examples/nginx-app/base.yaml` + + ``` + $ kubectl delete -f examples/nginx-app/base.yaml + namespace "nginx-example" deleted + deployment.apps "nginx-deployment" deleted + service "my-nginx" deleted + ``` + + If you want to delete any backups you created, including data in object storage, you can run: `velero backup delete BACKUP_NAME` + + ``` + $ velero backup delete nginx-backup + Are you sure you want to continue (Y/N)? Y + Request to delete backup "nginx-backup" submitted successfully. + The backup will be fully deleted after all associated data (disk snapshots, backup files, restores) are removed. + ``` + + This asks the Velero server to delete all backup data associated with `BACKUP_NAME`. You need to do this for each backup you want to permanently delete. A future version of Velero will allow you to delete multiple backups by name or label selector. + + Once fully removed, the backup is no longer visible when you run: `velero backup get BACKUP_NAME` or more generally `velero backup get`: + + ``` + $ velero backup get nginx-backup + An error occurred: backups.velero.io "nginx-backup" not found + ``` + + ``` + $ velero backup get + NAME STATUS CREATED EXPIRES STORAGE LOCATION SELECTOR + ``` + + + +## Additional Reading + +* [Official Velero Documentation](https://velero.io/docs/v1.8.0/) +* [Oracle Cloud Infrastructure Documentation](https://docs.cloud.oracle.com/) diff --git a/site/content/docs/v1.8/contributions/tencent-config.md b/site/content/docs/v1.8/contributions/tencent-config.md new file mode 100644 index 000000000..50edfce49 --- /dev/null +++ b/site/content/docs/v1.8/contributions/tencent-config.md @@ -0,0 +1,168 @@ +--- +title: "Use Tencent Cloud Object Storage as Velero's storage destination." +layout: docs +--- + + +You can deploy Velero on Tencent [TKE](https://cloud.tencent.com/document/product/457), or an other Kubernetes cluster, and use Tencent Cloud Object Store as a destination for Velero’s backups. + + +## Prerequisites + +- Registered [Tencent Cloud Account](https://cloud.tencent.com/register). +- [Tencent Cloud COS](https://console.cloud.tencent.com/cos) service, referred to as COS, has been launched +- A Kubernetes cluster has been created, cluster version v1.12 or later, and the cluster can use DNS and Internet services normally. If you need to create a TKE cluster, refer to the Tencent [create a cluster](https://cloud.tencent.com/document/product/457/32189) documentation. + +## Create a Tencent Cloud COS bucket + +Create an object bucket for Velero to store backups in the Tencent Cloud COS console. For how to create, please refer to Tencent Cloud COS [Create a bucket](https://cloud.tencent.com/document/product/436/13309) usage instructions. + +Set access to the bucket through the object storage console, the bucket needs to be **read** and **written**, so the account is granted data reading, data writing permissions. For how to configure, see the [permission access settings](https://cloud.tencent.com/document/product/436/13315.E5.8D.95.E4.B8.AA.E6.8E.88.E6.9D.83) Tencent user instructions. + +## Get bucket access credentials + +Velero uses an AWS S3-compatible API to access Tencent Cloud COS storage, which requires authentication using a pair of access key IDs and key-created signatures. + +In the S3 API parameter, the "access_key_id" field is the access key ID and the "secret_access_key" field is the key. + +In the [Tencent Cloud Access Management Console](https://console.cloud.tencent.com/cam/capi), Create and acquire Tencent Cloud Keys "SecretId" and "SecretKey" for COS authorized account. **Where the "SecretId" value corresponds to the value of S3 API parameter "access_key_id" field, the "SecretKey" value corresponds to the value of S3 API parameter "secret_access_key" field**. + +Create the credential profile "credentials-velero" required by Velero in the local directory based on the above correspondence: + +```bash +[default] +aws_access_key_id= +aws_secret_access_key= +``` + +## Install Velero Resources + +You need to install the Velero CLI first, see [Install the CLI](https://velero.io/docs/v1.5/basic-install/#install-the-cli) for how to install. + +Follow the Velero installation command below to create velero and restic workloads and other necessary resource objects. + +```bash +velero install --provider aws --plugins velero/velero-plugin-for-aws:v1.1.0 --bucket \ +--secret-file ./credentials-velero \ +--use-restic \ +--default-volumes-to-restic \ +--backup-location-config \ +region=ap-guangzhou,s3ForcePathStyle="true",s3Url=https://cos.ap-guangzhou.myqcloud.com +``` + +Description of the parameters: + +- `--provider`: Declares the type of plug-in provided by "aws". + +- `--plugins`: Use the AWS S3 compatible API plug-in "velero-plugin-for-aws". + +- `--bucket`: The bucket name created at Tencent Cloud COS. + +- `--secret-file`: Access tencent cloud COS access credential file for the "credentials-velero" credential file created above. + +- `--use-restic`: Back up and restore persistent volume data using the open source free backup tool [restic](https://github.com/restic/restic). However, 'hostPath' volumes are not supported, see the [restic limit](https://velero.io/docs/v1.5/restic/#limitations) for details), an integration that complements Velero's backup capabilities and is recommended to be turned on. + +- `--default-volumes-to-restic`: Enable the use of Restic to back up all Pod volumes, provided that the `--use-restic`parameter needs to be turned on. + +- `--backup-location-config`: Back up the bucket access-related configuration: + + `region`: Tencent cloud COS bucket area, for example, if the created region is Guangzhou, the Region parameter value is "ap-guangzhou". + + `s3ForcePathStyle`: Use the S3 file path format. + + `s3Url`: Tencent Cloud COS-compatible S3 API access address,Note that instead of creating a COS bucket for public network access domain name, you must use a format of "https://cos.`region`.myqcloud.com" URL, for example, if the region is Guangzhou, the parameter value is "https://cos.ap-guangzhou.myqcloud.com.". + +There are other installation parameters that can be viewed using `velero install --help`, such as setting `--use-volume-snapshots-false` to close the storage volume data snapshot backup if you do not want to back up the storage volume data. + +After executing the installation commands above, the installation process looks like this: + +{{< figure src="/docs/main/contributions/img-for-tencent/9015313121ed7987558c88081b052574.png" width="100%">}} + +After the installation command is complete, wait for the velero and restic workloads to be ready to see if the configured storage location is available. + +Executing the 'velero backup-location get' command to view the storage location status and display "Available" indicates that access to Tencent Cloud COS is OK, as shown in the following image: + +{{< figure src="/docs/main/contributions/img-for-tencent/69194157ccd5e377d1e7d914fd8c0336.png" width="100%">}} + +At this point, The installation using Tencent Cloud COS as Velero storage location is complete, If you need more installation information about Velero, You can see the official website [Velero documentation](https://velero.io/docs/) . + +## Velero backup and restore example + +In the cluster, use the helm tool to create a minio test service with a persistent volume, and the minio installation method can be found in the [minio installation](https://github.com/minio/charts), in which case can bound a load balancer for the minio service to access the management page using a public address in the browser. + +{{< figure src="/docs/main/contributions/img-for-tencent/f0fff5228527edc72d6e71a50d5dc966.png" width="100%">}} + +Sign in to the minio web management page and upload some image data for the test, as shown below: + +{{< figure src="/docs/main/contributions/img-for-tencent/e932223585c0b19891cc085ad7f438e1.png" width="100%">}} + +With Velero Backup, you can back up all objects in the cluster directly, or filter objects by type, namespace, and/or label. This example uses the following command to back up all resources under the 'default' namespace. + +``` +velero backup create default-backup --include-namespaces +``` + +Use the `velero backup get` command to see if the backup task is complete, and when the backup task status is "Completed," the backup task is completed without any errors, as shown in the following below: + +{{< figure src="/docs/main/contributions/img-for-tencent/eb2bbabae48b188748f5278bedf177f1.png" width="100%">}} + +At this point delete all of MinIO's resources, including its PVC persistence volume, as shown below:: + +{{< figure src="/docs/main/contributions/img-for-tencent/15ccaacf00640a04ae29ceed4c86195b.png" width="100%">}} + +After deleting the MinIO resource, use your backup to restore the deleted MinIO resource, and temporarily update the backup storage location to read-only mode (this prevents the backup object from being created or deleted in the backup storage location during the restore process):: + +```bash +kubectl patch backupstoragelocation default --namespace velero \ + --type merge \ + --patch '{"spec":{"accessMode":"ReadOnly"}}' + +``` + +Modifying access to Velero's storage location is "ReadOnly," as shown in the following image: + +{{< figure src="/docs/main/contributions/img-for-tencent/e8c2ab4e5e31d1370c62fad25059a8a8.png" width="100%">}} + +Now use the backup "default-backup" that Velero just created to create the restore task: + +```bash +velero restore create --from-backup +``` + +You can also use `velero restore get` to see the status of the restore task, and if the restore status is "Completed," the restore task is complete, as shown in the following image: + +{{< figure src="/docs/main/contributions/img-for-tencent/effe8a0a7ce3aa8e422db00bfdddc375.png" width="100%">}} + +When the restore is complete, you can see that the previously deleted minio-related resources have been restored successfully, as shown in the following image: + +{{< figure src="/docs/main/contributions/img-for-tencent/1d53b0115644d43657c2a5ece805c9b4.png" width="100%">}} + +Log in to minio's management page on your browser and you can see that the previously uploaded picture data is still there, indicating that the persistent volume's data was successfully restored, as shown below: + +{{< figure src="/docs/main/contributions/img-for-tencent/ceaca9ce6bc92bdce987c63d2fe71561.png" width="100%">}} + +When the restore is complete, don't forget to restore the backup storage location to read and write mode so that the next backup task can be used successfully: + +```bash +kubectl patch backupstoragelocation default --namespace velero \ + --type merge \ + --patch '{"spec":{"accessMode":"ReadWrite"}}' +``` + + + +## Uninstall Velero Resources + +To uninstall velero resources in a cluster, you can do so using the following command: + +```bash +kubectl delete namespace/velero clusterrolebinding/velero +kubectl delete crds -l component=velero +``` + + + +## Additional Reading + +- [Official Velero Documentation](https://velero.io/docs/) +- [Tencent Cloud Documentation](https://cloud.tencent.com/document/product) diff --git a/site/content/docs/v1.8/csi.md b/site/content/docs/v1.8/csi.md new file mode 100644 index 000000000..49f4f77e9 --- /dev/null +++ b/site/content/docs/v1.8/csi.md @@ -0,0 +1,77 @@ +--- +title: "Container Storage Interface Snapshot Support in Velero" +layout: docs +--- + +_This feature is under development. Documentation may not be up-to-date and features may not work as expected._ + +Integrating Container Storage Interface (CSI) snapshot support into Velero enables Velero to backup and restore CSI-backed volumes using the [Kubernetes CSI Snapshot Beta APIs](https://kubernetes.io/docs/concepts/storage/volume-snapshots/). + +By supporting CSI snapshot APIs, Velero can support any volume provider that has a CSI driver, without requiring a Velero-specific plugin to be available. + +## Prerequisites + +The following are the prerequisites for using Velero to take Container Storage Interface (CSI) snapshots: + + 1. The cluster is Kubernetes version 1.17 or greater. + 1. The cluster is running a CSI driver capable of support volume snapshots at the [v1beta1 API level](https://kubernetes.io/blog/2019/12/09/kubernetes-1-17-feature-cis-volume-snapshot-beta/). + 1. When restoring CSI volumesnapshots across clusters, the name of the CSI driver in the destination cluster is the same as that on the source cluster to ensure cross cluster portability of CSI volumesnapshots + +## Installing Velero with CSI support + +Ensure that the Velero server is running with the `EnableCSI` feature flag. See [Enabling Features][1] for more information. +Also, the Velero [CSI plugin][2] ([Docker Hub][3]) is necessary to integrate with the CSI volume snapshot APIs. + +Both of these can be added with the `velero install` command. + +```bash +velero install \ +--features=EnableCSI \ +--plugins=,velero/velero-plugin-for-csi:v0.1.0 \ +... +``` + +To include the status of CSI objects associated with a Velero backup in `velero backup describe` output, run `velero client config set features=EnableCSI`. +See [Enabling Features][1] for more information about managing client-side feature flags. + +## Implementation Choices + +This section documents some of the choices made during implementation of the Velero [CSI plugin][2]: + +1. Volumesnapshots created by the plugin will be retained only for the lifetime of the backup even if the `DeletionPolicy` on the volumesnapshotclass is set to `Retain`. To accomplish this, during deletion of the backup the prior to deleting the volumesnapshot, volumesnapshotcontent object will be patched to set its `DeletionPolicy` to `Delete`. Thus deleting volumesnapshot object will result in cascade delete of the volumesnapshotcontent and the snapshot in the storage provider. +1. Volumesnapshotcontent objects created during a velero backup that are dangling, unbound to a volumesnapshot object, will also be discovered, through labels, and deleted on backup deletion. +1. The Velero CSI plugin, to backup CSI backed PVCs, will choose the VolumeSnapshotClass in the cluster that has the same driver name and also has the `velero.io/csi-volumesnapshot-class` label set on it, like +```yaml +velero.io/csi-volumesnapshot-class: "true" +``` + +## Roadmap + +Velero's support level for CSI volume snapshotting will follow upstream Kubernetes support for the feature, and will reach general availability sometime +after volume snapshotting is GA in upstream Kubernetes. Beta support is expected to launch in Velero v1.4. + +## How it Works - Overview + +Velero's CSI support does not rely on the Velero VolumeSnapshotter plugin interface. + +Instead, Velero uses a collection of BackupItemAction plugins that act first against PersistentVolumeClaims. + +When this BackupItemAction sees PersistentVolumeClaims pointing to a PersistentVolume backed by a CSI driver, it will choose the VolumeSnapshotClass with the same driver name that has the `velero.io/csi-volumesnapshot-class` label to create a CSI VolumeSnapshot object with the PersistentVolumeClaim as a source. +This VolumeSnapshot object resides in the same namespace as the PersistentVolumeClaim that was used as a source. + +From there, the CSI external-snapshotter controller will see the VolumeSnapshot and create a VolumeSnapshotContent object, a cluster-scoped resource that will point to the actual, disk-based snapshot in the storage system. +The external-snapshotter plugin will call the CSI driver's snapshot method, and the driver will call the storage system's APIs to generate the snapshot. +Once an ID is generated and the storage system marks the snapshot as usable for restore, the VolumeSnapshotContent object will be updated with a `status.snapshotHandle` and the `status.readyToUse` field will be set. + +Velero will include the generated VolumeSnapshot and VolumeSnapshotContent objects in the backup tarball, as well as upload all VolumeSnapshots and VolumeSnapshotContents objects in a JSON file to the object storage system. +When Velero synchronizes backups into a new cluster, VolumeSnapshotContent objects will be synced into the cluster as well, so that Velero can manage backup expiration appropriately. + +The `DeletionPolicy` on the VolumeSnapshotContent will be the same as the `DeletionPolicy` on the VolumeSnapshotClass that was used to create the VolumeSnapshot. Setting a `DeletionPolicy` of `Retain` on the VolumeSnapshotClass will preserve the volume snapshot in the storage system for the lifetime of the Velero backup and will prevent the deletion of the volume snapshot, in the storage system, in the event of a disaster where the namespace with the VolumeSnapshot object may be lost. + +When the Velero backup expires, the VolumeSnapshot objects will be deleted and the VolumeSnapshotContent objects will be updated to have a `DeletionPolicy` of `Delete`, to free space on the storage system. + +For more details on how each plugin works, see the [CSI plugin repo][2]'s documentation. + +[1]: customize-installation.md#enable-server-side-features +[2]: https://github.com/vmware-tanzu/velero-plugin-for-csi/ +[3]: https://hub.docker.com/repository/docker/velero/velero-plugin-for-csi diff --git a/site/content/docs/v1.8/custom-plugins.md b/site/content/docs/v1.8/custom-plugins.md new file mode 100644 index 000000000..c4dbc03e1 --- /dev/null +++ b/site/content/docs/v1.8/custom-plugins.md @@ -0,0 +1,121 @@ +--- +title: "Plugins" +layout: docs +--- + +Velero has a plugin architecture that allows users to add their own custom functionality to Velero backups & restores without having to modify/recompile the core Velero binary. To add custom functionality, users simply create their own binary containing implementations of Velero's plugin kinds (described below), plus a small amount of boilerplate code to expose the plugin implementations to Velero. This binary is added to a container image that serves as an init container for the Velero server pod and copies the binary into a shared emptyDir volume for the Velero server to access. + +Multiple plugins, of any type, can be implemented in this binary. + +A fully-functional [sample plugin repository][1] is provided to serve as a convenient starting point for plugin authors. + +## Plugin Naming + +A plugin is identified by a prefix + name. + +**Note: Please don't use `velero.io` as the prefix for a plugin not supported by the Velero team.** The prefix should help users identify the entity developing the plugin, so please use a prefix that identify yourself. + +Whenever you define a Backup Storage Location or Volume Snapshot Location, this full name will be the value for the `provider` specification. + +For example: `oracle.io/oracle`. + +``` +apiVersion: velero.io/v1 +kind: BackupStorageLocation +spec: + provider: oracle.io/oracle +``` + +``` +apiVersion: velero.io/v1 +kind: VolumeSnapshotLocation +spec: + provider: oracle.io/oracle +``` + +When naming your plugin, keep in mind that the full name needs to conform to these rules: +- have two parts, prefix + name, separated by '/' +- none of the above parts can be empty +- the prefix is a valid DNS subdomain name +- a plugin with the same prefix + name cannot not already exist + +### Some examples: + +``` +- example.io/azure +- 1.2.3.4/5678 +- example-with-dash.io/azure +``` + +You will need to give your plugin(s) the full name when registering them by calling the appropriate `RegisterX` function: + +## Plugin Kinds + +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. +- **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 + +Velero provides a [logger][2] that can be used by plugins to log structured information to the main Velero server log or +per-backup/restore logs. It also passes a `--log-level` flag to each plugin binary, whose value is the value of the same +flag from the main Velero process. This means that if you turn on debug logging for the Velero server via `--log-level=debug`, +plugins will also emit debug-level logs. See the [sample repository][1] for an example of how to use the logger within your plugin. + +## Plugin Configuration + +Velero uses a ConfigMap-based convention for providing configuration to plugins. If your plugin needs to be configured at runtime, +define a ConfigMap like the following: + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + # any name can be used; Velero uses the labels (below) + # to identify it rather than the name + name: my-plugin-config + + # must be in the namespace where the velero deployment + # is running + namespace: velero + + labels: + # this value-less label identifies the ConfigMap as + # config for a plugin (the built-in change storageclass + # restore item action plugin) + velero.io/plugin-config: "" + + # add a label whose key corresponds to the fully-qualified + # plugin name (for example mydomain.io/my-plugin-name), and whose + # value is the plugin type (BackupItemAction, RestoreItemAction, + # ObjectStore, or VolumeSnapshotter) + : + +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. + +## Feature Flags + +Velero will pass any known features flags as a comma-separated list of strings to the `--features` argument. + +Once parsed into a `[]string`, the features can then be registered using the `NewFeatureFlagSet` function and queried with `features.Enabled()`. + +## Environment Variables + +Velero adds the `LD_LIBRARY_PATH` into the list of environment variables to provide the convenience for plugins that requires C libraries/extensions in the runtime. + +[1]: https://github.com/vmware-tanzu/velero-plugin-example +[2]: https://github.com/vmware-tanzu/velero/blob/v1.8.0/pkg/plugin/logger.go +[3]: https://github.com/vmware-tanzu/velero/blob/v1.8.0/pkg/restore/restic_restore_action.go diff --git a/site/content/docs/v1.8/customize-installation.md b/site/content/docs/v1.8/customize-installation.md new file mode 100644 index 000000000..3b25817df --- /dev/null +++ b/site/content/docs/v1.8/customize-installation.md @@ -0,0 +1,364 @@ +--- +title: "Customize Velero Install" +layout: docs +--- + +## Plugins + +During install, Velero requires that at least one plugin is added (with the `--plugins` flag). Please see the documentation under [Plugins](overview-plugins.md) + +## Install in any namespace + +Velero is installed in the `velero` namespace by default. However, you can install Velero in any namespace. See [run in custom namespace][2] for details. + +## Use non-file-based identity mechanisms + +By default, `velero install` expects a credentials file for your `velero` IAM account to be provided via the `--secret-file` flag. + +If you are using an alternate identity mechanism, such as kube2iam/kiam on AWS, Workload Identity on GKE, etc., that does not require a credentials file, you can specify the `--no-secret` flag instead of `--secret-file`. + +## Enable restic integration + +By default, `velero install` does not install Velero's [restic integration][3]. To enable it, specify the `--use-restic` flag. + +If you've already run `velero install` without the `--use-restic` flag, you can run the same command again, including the `--use-restic` flag, to add the restic integration to your existing install. + +## Default Pod Volume backup to restic + +By default, `velero install` does not enable use of restic to take backups of all pod volumes. An annotation has to be applied on every pod which contains volumes to be backed up by restic. + +To backup all pod volumes using restic without having to apply annotation on the pod, run the `velero install` command with the `--default-volumes-to-restic` flag. + +Using this flag requires restic integration to be enabled with the `--use-restic` flag. Please refer to the [restic integration][3] page for more information. + +## Enable features + +New features in Velero will be released as beta features behind feature flags which are not enabled by default. A full listing of Velero feature flags can be found [here][11]. + +### Enable server side features + +Features on the Velero server can be enabled using the `--features` flag to the `velero install` command. This flag takes as value a comma separated list of feature flags to enable. As an example [CSI snapshotting of PVCs][10] can be enabled using `EnableCSI` feature flag in the `velero install` command as shown below: + +```bash +velero install --features=EnableCSI +``` + +Another example is enabling the support of multiple API group versions, as documented at [- -features=EnableAPIGroupVersions](enable-api-group-versions-feature.md). + +Feature flags, passed to `velero install` will be passed to the Velero deployment and also to the `restic` daemon set, if `--use-restic` flag is used. + +Similarly, features may be disabled by removing the corresponding feature flags from the `--features` flag. + +Enabling and disabling feature flags will require modifying the Velero deployment and also the restic daemonset. This may be done from the CLI by uninstalling and re-installing Velero, or by editing the `deploy/velero` and `daemonset/restic` resources in-cluster. + +```bash +$ kubectl -n velero edit deploy/velero +$ kubectl -n velero edit daemonset/restic +``` + +### Enable client side features + +For some features it may be necessary to use the `--features` flag to the Velero client. This may be done by passing the `--features` on every command run using the Velero CLI or the by setting the features in the velero client config file using the `velero client config set` command as shown below: + +```bash +velero client config set features=EnableCSI +``` + +This stores the config in a file at `$HOME/.config/velero/config.json`. + +All client side feature flags may be disabled using the below command + +```bash +velero client config set features= +``` + +### Colored CLI output + +Velero CLI uses colored output for some commands, such as `velero describe`. If +the environment in which Velero is run doesn't support colored output, the +colored output will be automatically disabled. However, you can manually disable +colors with config file: + +```bash +velero client config set colorized=false +``` + +Note that if you specify `--colorized=true` as a CLI option it will override +the config file setting. + + +## Customize resource requests and limits + +At installation, Velero sets default resource requests and limits for the Velero pod and the restic pod, if you using the [restic integration](/docs/main/restic/). + +{{< table caption="Velero Customize resource requests and limits defaults" >}} +|Setting|Velero pod defaults|restic pod defaults| +|--- |--- |--- | +|CPU request|500m|500m| +|Memory requests|128Mi|512Mi| +|CPU limit|1000m (1 CPU)|1000m (1 CPU)| +|Memory limit|512Mi|1024Mi| +{{< /table >}} + +### Install with custom resource requests and limits + +You can customize these resource requests and limit when you first install using the [velero install][6] CLI command. + +``` +velero install \ + --velero-pod-cpu-request \ + --velero-pod-mem-request \ + --velero-pod-cpu-limit \ + --velero-pod-mem-limit \ + [--use-restic] \ + [--default-volumes-to-restic] \ + [--restic-pod-cpu-request ] \ + [--restic-pod-mem-request ] \ + [--restic-pod-cpu-limit ] \ + [--restic-pod-mem-limit ] +``` + +### Update resource requests and limits after install + +After installation you can adjust the resource requests and limits in the Velero Deployment spec or restic DeamonSet spec, if you are using the restic integration. + +**Velero pod** + +Update the `spec.template.spec.containers.resources.limits` and `spec.template.spec.containers.resources.requests` values in the Velero deployment. + +```bash +kubectl patch deployment velero -n velero --patch \ +'{"spec":{"template":{"spec":{"containers":[{"name": "velero", "resources": {"limits":{"cpu": "1", "memory": "512Mi"}, "requests": {"cpu": "1", "memory": "128Mi"}}}]}}}}' +``` + +**restic pod** + +Update the `spec.template.spec.containers.resources.limits` and `spec.template.spec.containers.resources.requests` values in the restic DeamonSet spec. + +```bash +kubectl patch daemonset restic -n velero --patch \ +'{"spec":{"template":{"spec":{"containers":[{"name": "restic", "resources": {"limits":{"cpu": "1", "memory": "1024Mi"}, "requests": {"cpu": "1", "memory": "512Mi"}}}]}}}}' +``` + +Additionally, you may want to update the the default Velero restic pod operation timeout (default 240 minutes) to allow larger backups more time to complete. You can adjust this timeout by adding the `- --restic-timeout` argument to the Velero Deployment spec. + +**NOTE:** Changes made to this timeout value will revert back to the default value if you re-run the Velero install command. + +1. Open the Velero Deployment spec. + + ``` + kubectl edit deploy velero -n velero + ``` + +1. Add `- --restic-timeout` to `spec.template.spec.containers`. + + ```yaml + spec: + template: + spec: + containers: + - args: + - --restic-timeout=240m + ``` + +## Configure more than one storage location for backups or volume snapshots + +Velero supports any number of backup storage locations and volume snapshot locations. For more details, see [about locations](locations.md). + +However, `velero install` only supports configuring at most one backup storage location and one volume snapshot location. + +To configure additional locations after running `velero install`, use the `velero backup-location create` and/or `velero snapshot-location create` commands along with provider-specific configuration. Use the `--help` flag on each of these commands for more details. + +## Do not configure a backup storage location during install + +If you need to install Velero without a default backup storage location (without specifying `--bucket` or `--provider`), the `--no-default-backup-location` flag is required for confirmation. + +## Install an additional volume snapshot provider + +Velero supports using different providers for volume snapshots than for object storage -- for example, you can use AWS S3 for object storage, and Portworx for block volume snapshots. + +However, `velero install` only supports configuring a single matching provider for both object storage and volume snapshots. + +To use a different volume snapshot provider: + +1. Install the Velero server components by following the instructions for your **object storage** provider + +1. Add your volume snapshot provider's plugin to Velero (look in [your provider][0]'s documentation for the image name): + + ```bash + velero plugin add + ``` + +1. Add a volume snapshot location for your provider, following [your provider][0]'s documentation for configuration: + + ```bash + velero snapshot-location create \ + --provider \ + [--config ] + ``` + +## Generate YAML only + +By default, `velero install` generates and applies a customized set of Kubernetes configuration (YAML) to your cluster. + +To generate the YAML without applying it to your cluster, use the `--dry-run -o yaml` flags. + +This is useful for applying bespoke customizations, integrating with a GitOps workflow, etc. + +## Use a storage provider secured by a self-signed certificate + +If you intend to use Velero with a storage provider that is secured by a self-signed certificate, +you may need to instruct Velero to trust that certificate. See [use Velero with a storage provider secured by a self-signed certificate][9] for details. + +## Additional options + +Run `velero install --help` or see the [Helm chart documentation](https://vmware-tanzu.github.io/helm-charts/) for the full set of installation options. + +## Optional Velero CLI configurations + +### Enabling shell autocompletion + +**Velero CLI** provides autocompletion support for `Bash` and `Zsh`, which can save you a lot of typing. + +Below are the procedures to set up autocompletion for `Bash` (including the difference between `Linux` and `macOS`) and `Zsh`. + +#### Bash on Linux + +The **Velero CLI** completion script for `Bash` can be generated with the command `velero completion bash`. Sourcing the completion script in your shell enables velero autocompletion. + +However, the completion script depends on [**bash-completion**](https://github.com/scop/bash-completion), which means that you have to install this software first (you can test if you have bash-completion already installed by running `type _init_completion`). + +##### Install bash-completion + +`bash-completion` is provided by many package managers (see [here](https://github.com/scop/bash-completion#installation)). You can install it with `apt-get install bash-completion` or `yum install bash-completion`, etc. + +The above commands create `/usr/share/bash-completion/bash_completion`, which is the main script of bash-completion. Depending on your package manager, you have to manually source this file in your `~/.bashrc` file. + +To find out, reload your shell and run `type _init_completion`. If the command succeeds, you're already set, otherwise add the following to your `~/.bashrc` file: + +```shell +source /usr/share/bash-completion/bash_completion +``` + +Reload your shell and verify that bash-completion is correctly installed by typing `type _init_completion`. + +##### Enable Velero CLI autocompletion for Bash on Linux + +You now need to ensure that the **Velero CLI** completion script gets sourced in all your shell sessions. There are two ways in which you can do this: + +- Source the completion script in your `~/.bashrc` file: + + ```shell + echo 'source <(velero completion bash)' >>~/.bashrc + ``` + +- Add the completion script to the `/etc/bash_completion.d` directory: + + ```shell + velero completion bash >/etc/bash_completion.d/velero + ``` + +- If you have an alias for velero, you can extend shell completion to work with that alias: + + ```shell + echo 'alias v=velero' >>~/.bashrc + echo 'complete -F __start_velero v' >>~/.bashrc + ``` + +> `bash-completion` sources all completion scripts in `/etc/bash_completion.d`. + +Both approaches are equivalent. After reloading your shell, velero autocompletion should be working. + +#### Bash on macOS + +The **Velero CLI** completion script for Bash can be generated with `velero completion bash`. Sourcing this script in your shell enables velero completion. + +However, the velero completion script depends on [**bash-completion**](https://github.com/scop/bash-completion) which you thus have to previously install. + + +> There are two versions of bash-completion, v1 and v2. V1 is for Bash 3.2 (which is the default on macOS), and v2 is for Bash 4.1+. The velero completion script **doesn't work** correctly with bash-completion v1 and Bash 3.2. It requires **bash-completion v2** and **Bash 4.1+**. Thus, to be able to correctly use velero completion on macOS, you have to install and use Bash 4.1+ ([*instructions*](https://itnext.io/upgrading-bash-on-macos-7138bd1066ba)). The following instructions assume that you use Bash 4.1+ (that is, any Bash version of 4.1 or newer). + + +##### Install bash-completion + +> As mentioned, these instructions assume you use Bash 4.1+, which means you will install bash-completion v2 (in contrast to Bash 3.2 and bash-completion v1, in which case kubectl completion won't work). + +You can test if you have bash-completion v2 already installed with `type _init_completion`. If not, you can install it with Homebrew: + + ```shell + brew install bash-completion@2 + ``` + +As stated in the output of this command, add the following to your `~/.bashrc` file: + + ```shell + export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d" + [[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh" + ``` + +Reload your shell and verify that bash-completion v2 is correctly installed with `type _init_completion`. + +##### Enable Velero CLI autocompletion for Bash on macOS + +You now have to ensure that the velero completion script gets sourced in all your shell sessions. There are multiple ways to achieve this: + +- Source the completion script in your `~/.bashrc` file: + + ```shell + echo 'source <(velero completion bash)' >>~/.bashrc + + ``` + +- Add the completion script to the `/usr/local/etc/bash_completion.d` directory: + + ```shell + velero completion bash >/usr/local/etc/bash_completion.d/velero + ``` + +- If you have an alias for velero, you can extend shell completion to work with that alias: + + ```shell + echo 'alias v=velero' >>~/.bashrc + echo 'complete -F __start_velero v' >>~/.bashrc + ``` + +- If you installed velero with Homebrew (as explained [above](#install-with-homebrew-on-macos)), then the velero completion script should already be in `/usr/local/etc/bash_completion.d/velero`. In that case, you don't need to do anything. + +> The Homebrew installation of bash-completion v2 sources all the files in the `BASH_COMPLETION_COMPAT_DIR` directory, that's why the latter two methods work. + +In any case, after reloading your shell, velero completion should be working. + +#### Autocompletion on Zsh + +The velero completion script for Zsh can be generated with the command `velero completion zsh`. Sourcing the completion script in your shell enables velero autocompletion. + +To do so in all your shell sessions, add the following to your `~/.zshrc` file: + + ```shell + source <(velero completion zsh) + ``` + +If you have an alias for kubectl, you can extend shell completion to work with that alias: + + ```shell + echo 'alias v=velero' >>~/.zshrc + echo 'complete -F __start_velero v' >>~/.zshrc + ``` + +After reloading your shell, kubectl autocompletion should be working. + +If you get an error like `complete:13: command not found: compdef`, then add the following to the beginning of your `~/.zshrc` file: + + ```shell + autoload -Uz compinit + compinit + ``` + +[1]: https://github.com/vmware-tanzu/velero/releases/latest +[2]: namespace.md +[3]: restic.md +[4]: on-premises.md +[6]: velero-install.md#usage +[9]: self-signed-certificates.md +[10]: csi.md +[11]: https://github.com/vmware-tanzu/velero/blob/v1.8.0/pkg/apis/velero/v1/constants.go diff --git a/site/content/docs/v1.8/debugging-install.md b/site/content/docs/v1.8/debugging-install.md new file mode 100644 index 000000000..e6a75e525 --- /dev/null +++ b/site/content/docs/v1.8/debugging-install.md @@ -0,0 +1,74 @@ +--- +title: "Debugging Installation Issues" +layout: docs +--- + +## General + +### `invalid configuration: no configuration has been provided` +This typically means that no `kubeconfig` file can be found for the Velero client to use. Velero looks for a kubeconfig in the +following locations: +* the path specified by the `--kubeconfig` flag, if any +* the path specified by the `$KUBECONFIG` environment variable, if any +* `~/.kube/config` + +### Backups or restores stuck in `New` phase +This means that the Velero controllers are not processing the backups/restores, which usually happens because the Velero server is not running. Check the pod description and logs for errors: +``` +kubectl -n velero describe pods +kubectl -n velero logs deployment/velero +``` + + +## AWS + +### `NoCredentialProviders: no valid providers in chain` + +#### Using credentials +This means that the secret containing the AWS IAM user credentials for Velero has not been created/mounted properly +into the Velero server pod. Ensure the following: + +* The `cloud-credentials` secret exists in the Velero server's namespace +* The `cloud-credentials` secret has a single key, `cloud`, whose value is the contents of the `credentials-velero` file +* The `credentials-velero` file is formatted properly and has the correct values: + + ``` + [default] + aws_access_key_id= + aws_secret_access_key= + ``` + +* The `cloud-credentials` secret is defined as a volume for the Velero deployment +* The `cloud-credentials` secret is being mounted into the Velero server pod at `/credentials` + +#### Using kube2iam +This means that Velero can't read the content of the S3 bucket. Ensure the following: + +* A Trust Policy document exists that allows the role used by kube2iam to assume Velero's role, as stated in the AWS config documentation. +* The new Velero role has all the permissions listed in the documentation regarding S3. + + +## Azure + +### `Failed to refresh the Token` or `adal: Refresh request failed` +This means that the secrets containing the Azure service principal credentials for Velero has not been created/mounted +properly into the Velero server pod. Ensure the following: + +* The `cloud-credentials` secret exists in the Velero server's namespace +* The `cloud-credentials` secret has all of the expected keys and each one has the correct value (see [setup instructions][0]) +* The `cloud-credentials` secret is defined as a volume for the Velero deployment +* The `cloud-credentials` secret is being mounted into the Velero server pod at `/credentials` + + +## GCE/GKE + +### `open credentials/cloud: no such file or directory` +This means that the secret containing the GCE service account credentials for Velero has not been created/mounted properly +into the Velero server pod. Ensure the following: + +* The `cloud-credentials` secret exists in the Velero server's namespace +* The `cloud-credentials` secret has a single key, `cloud`, whose value is the contents of the `credentials-velero` file +* The `cloud-credentials` secret is defined as a volume for the Velero deployment +* The `cloud-credentials` secret is being mounted into the Velero server pod at `/credentials` + +[0]: azure-config.md#create-service-principal diff --git a/site/content/docs/v1.8/debugging-restores.md b/site/content/docs/v1.8/debugging-restores.md new file mode 100644 index 000000000..3320349cd --- /dev/null +++ b/site/content/docs/v1.8/debugging-restores.md @@ -0,0 +1,105 @@ +--- +title: "Debugging Restores" +layout: docs +--- + +## Example + +When Velero finishes a Restore, its status changes to "Completed" regardless of whether or not there are issues during the process. The number of warnings and errors are indicated in the output columns from `velero restore get`: + +``` +NAME BACKUP STATUS WARNINGS ERRORS CREATED SELECTOR +backup-test-20170726180512 backup-test Completed 155 76 2017-07-26 11:41:14 -0400 EDT +backup-test-20170726180513 backup-test Completed 121 14 2017-07-26 11:48:24 -0400 EDT +backup-test-2-20170726180514 backup-test-2 Completed 0 0 2017-07-26 13:31:21 -0400 EDT +backup-test-2-20170726180515 backup-test-2 Completed 0 1 2017-07-26 13:32:59 -0400 EDT +``` + +To delve into the warnings and errors into more detail, you can use `velero restore describe`: + +```bash +velero restore describe backup-test-20170726180512 +``` + +The output looks like this: + +``` +Name: backup-test-20170726180512 +Namespace: velero +Labels: +Annotations: + +Backup: backup-test + +Namespaces: + Included: * + Excluded: + +Resources: + Included: serviceaccounts + Excluded: nodes, events, events.events.k8s.io + Cluster-scoped: auto + +Namespace mappings: + +Label selector: + +Restore PVs: auto + +Preserve Service NodePorts: auto + +Phase: Completed + +Validation errors: + +Warnings: + Velero: + Cluster: + Namespaces: + velero: serviceaccounts "velero" already exists + serviceaccounts "default" already exists + kube-public: serviceaccounts "default" already exists + kube-system: serviceaccounts "attachdetach-controller" already exists + serviceaccounts "certificate-controller" already exists + serviceaccounts "cronjob-controller" already exists + serviceaccounts "daemon-set-controller" already exists + serviceaccounts "default" already exists + serviceaccounts "deployment-controller" already exists + serviceaccounts "disruption-controller" already exists + serviceaccounts "endpoint-controller" already exists + serviceaccounts "generic-garbage-collector" already exists + serviceaccounts "horizontal-pod-autoscaler" already exists + serviceaccounts "job-controller" already exists + serviceaccounts "kube-dns" already exists + serviceaccounts "namespace-controller" already exists + serviceaccounts "node-controller" already exists + serviceaccounts "persistent-volume-binder" already exists + serviceaccounts "pod-garbage-collector" already exists + serviceaccounts "replicaset-controller" already exists + serviceaccounts "replication-controller" already exists + serviceaccounts "resourcequota-controller" already exists + serviceaccounts "service-account-controller" already exists + serviceaccounts "service-controller" already exists + serviceaccounts "statefulset-controller" already exists + serviceaccounts "ttl-controller" already exists + default: serviceaccounts "default" already exists + +Errors: + Velero: + Cluster: + Namespaces: +``` + +## Structure + +Errors appear for incomplete or partial restores. Warnings appear for non-blocking issues, for example, the +restore looks "normal" and all resources referenced in the backup exist in some form, although some +of them may have been pre-existing. + +Both errors and warnings are structured in the same way: + +* `Velero`: A list of system-related issues encountered by the Velero server. For example, Velero couldn't read a directory. + +* `Cluster`: A list of issues related to the restore of cluster-scoped resources. + +* `Namespaces`: A map of namespaces to the list of issues related to the restore of their respective resources. diff --git a/site/content/docs/v1.8/development.md b/site/content/docs/v1.8/development.md new file mode 100644 index 000000000..82ace894d --- /dev/null +++ b/site/content/docs/v1.8/development.md @@ -0,0 +1,56 @@ +--- +title: "Development " +layout: docs +--- + +## Update generated files + +Run `make update` to regenerate files if you make the following changes: + +* Add/edit/remove command line flags and/or their help text +* Add/edit/remove commands or subcommands +* Add new API types +* Add/edit/remove plugin protobuf message or service definitions + +The following files are automatically generated from the source code: + +* The clientset +* Listers +* Shared informers +* Documentation +* Protobuf/gRPC types + +You can run `make verify` to ensure that all generated files (clientset, listers, shared informers, docs) are up to date. + +## Linting + +You can run `make lint` which executes golangci-lint inside the build image, or `make local-lint` which executes outside of the build image. +Both `make lint` and `make local-lint` will only run the linter against changes. + +Use `lint-all` to run the linter against the entire code base. + +The default linters are defined in the `Makefile` via the `LINTERS` variable. + +You can also override the default list of linters by running the command + +`$ make lint LINTERS=gosec` + +## Test + +To run unit tests, use `make test`. + +## Vendor dependencies + +If you need to add or update the vendored dependencies, see [Vendoring dependencies][11]. + +## Using the main branch + +If you are developing or using the main branch, note that you may need to update the Velero CRDs to get new changes as other development work is completed. + +```bash +velero install --crds-only --dry-run -o yaml | kubectl apply -f - +``` + +**NOTE:** You could change the default CRD API version (v1beta1 _or_ v1) if Velero CLI can't discover the Kubernetes preferred CRD API version. The Kubernetes version < 1.16 preferred CRD API version is v1beta1; the Kubernetes version >= 1.16 preferred CRD API version is v1. + +[11]: vendoring-dependencies.md diff --git a/site/content/docs/v1.8/disaster-case.md b/site/content/docs/v1.8/disaster-case.md new file mode 100644 index 000000000..6b73e6716 --- /dev/null +++ b/site/content/docs/v1.8/disaster-case.md @@ -0,0 +1,44 @@ +--- +title: "Disaster recovery" +layout: docs +--- + +*Using Schedules and Read-Only Backup Storage Locations* + +If you periodically back up your cluster's resources, you are able to return to a previous state in case of some unexpected mishap, such as a service outage. Doing so with Velero looks like the following: + +1. After you first run the Velero server on your cluster, set up a daily backup (replacing `` in the command as desired): + + ``` + velero schedule create --schedule "0 7 * * *" + ``` + + This creates a Backup object with the name `-`. The default backup retention period, expressed as TTL (time to live), is 30 days (720 hours); you can use the `--ttl ` flag to change this as necessary. See [how velero works][1] for more information about backup expiry. + +1. A disaster happens and you need to recreate your resources. + +1. Update your backup storage location to read-only mode (this prevents backup objects from being created or deleted in the backup storage location during the restore process): + + ```bash + kubectl patch backupstoragelocation \ + --namespace velero \ + --type merge \ + --patch '{"spec":{"accessMode":"ReadOnly"}}' + ``` + +1. Create a restore with your most recent Velero Backup: + + ``` + velero restore create --from-backup - + ``` + +1. When ready, revert your backup storage location to read-write mode: + + ```bash + kubectl patch backupstoragelocation \ + --namespace velero \ + --type merge \ + --patch '{"spec":{"accessMode":"ReadWrite"}}' + ``` + +[1]: how-velero-works.md#set-a-backup-to-expire diff --git a/site/content/docs/v1.8/enable-api-group-versions-feature.md b/site/content/docs/v1.8/enable-api-group-versions-feature.md new file mode 100644 index 000000000..5c40b3e71 --- /dev/null +++ b/site/content/docs/v1.8/enable-api-group-versions-feature.md @@ -0,0 +1,115 @@ +--- +title: "Enable API Group Versions Feature" +layout: docs +--- + +## Background + +Velero serves to both restore and migrate Kubernetes applications. Typically, backup and restore does not involve upgrading Kubernetes API group versions. However, when migrating from a source cluster to a destination cluster, it is not unusual to see the API group versions differing between clusters. + +**NOTE:** Kubernetes applications are made up of various resources. Common resources are pods, jobs, and deployments. Custom resources are created via custom resource definitions (CRDs). Every resource, whether custom or not, is part of a group, and each group has a version called the API group version. + +Kubernetes by default allows changing API group versions between clusters as long as the upgrade is a single version, for example, v1 -> v2beta1. Jumping multiple versions, for example, v1 -> v3, is not supported out of the box. This is where the Velero Enable API Group Version feature can help you during an upgrade. + +Currently, the Enable API Group Version feature is in beta and can be enabled by installing Velero with a [feature flag](customize-installation.md/#enable-server-side-features), `--features=EnableAPIGroupVersions`. + +For the most up-to-date information on Kubernetes API version compatibility, you should always review the [Kubernetes release notes](https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG) for the source and destination cluster version to before starting an upgrade, migration, or restore. If there is a difference between Kubernetes API versions, use the Enable API Group Version feature to help mitigate compatibility issues. + +## How the Enable API Group Versions Feature Works + +When the Enable API Group Versions feature is enabled on the source cluster, Velero will not only back up Kubernetes preferred API group versions, but it will also back up all supported versions on the cluster. As an example, consider the resource `horizontalpodautoscalers` which falls under the `autoscaling` group. Without the feature flag enabled, only the preferred API group version for autoscaling, `v1` will be backed up. With the feature enabled, the remaining supported versions, `v2beta1` and `v2beta2` will also be backed up. Once the versions are stored in the backup tarball file, they will be available to be restored on the destination cluster. + +When the Enable API Group Versions feature is enabled on the destination cluster, Velero restore will choose the version to restore based on an API group version priority order. + +The version priorities are listed from highest to lowest priority below: + +- Priority 1: destination cluster preferred version +- Priority 2: source cluster preferred version +- Priority 3: non-preferred common supported version with the highest [Kubernetes version priority](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#version-priority) + +The highest priority (Priority 1) will be the destination cluster's preferred API group version. If the destination preferred version is found in the backup tarball, it will be the API group version chosen for restoration for that resource. However, if the destination preferred version is not found in the backup tarball, the next version in the list will be selected: the source cluster preferred version (Priority 2). + +If the source cluster preferred version is found to be supported by the destination cluster, it will be chosen as the API group version to restore. However, if the source preferred version is not supported by the destination cluster, then the next version in the list will be considered: a non-preferred common supported version (Priority 3). + +In the case that there are more than one non-preferred common supported version, which version will be chosen? The answer requires understanding the [Kubernetes version priority order](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#version-priority). Kubernetes prioritizes group versions by making the latest, most stable version the highest priority. The highest priority version is the Kubernetes preferred version. Here is a sorted version list example from the Kubernetes.io documentation: + +- v10 +- v2 +- v1 +- v11beta2 +- v10beta3 +- v3beta1 +- v12alpha1 +- v11alpha2 +- foo1 +- foo10 + +Of the non-preferred common versions, the version that has the highest Kubernetes version priority will be chosen. See the example for Priority 3 below. + +To better understand which API group version will be chosen, the following provides some concrete examples. The examples use the term "target cluster" which is synonymous to "destination cluster". + +![Priority 1 Case A example](/docs/main/img/gv_priority1-caseA.png) + +![Priority 1 Case B example](/docs/main/img/gv_priority1-caseB.png) + +![Priority 2 Case C example](/docs/main/img/gv_priority2-caseC.png) + +![Priority 3 Case D example](/docs/main/img/gv_priority3-caseD.png) + +## Procedure for Using the Enable API Group Versions Feature + +1. [Install Velero](basic-install.md) on source cluster with the [feature flag enabled](customize-installation.md/#enable-server-side-features). The flag is `--features=EnableAPIGroupVersions`. For the enable API group versions feature to work, the feature flag needs to be used for Velero installations on both the source and destination clusters. +2. Back up and restore following the [migration case instructions](migration-case.md). Note that "Cluster 1" in the instructions refers to the source cluster, and "Cluster 2" refers to the destination cluster. + +## Advanced Procedure for Customizing the Version Prioritization + +Optionally, users can create a config map to override the default API group prioritization for some or all of the resources being migrated. For each resource that is specified by the user, Velero will search for the version in both the backup tarball and the destination cluster. If there is a match, the user-specified API group version will be restored. If the backup tarball and the destination cluster does not have or support any of the user-specified versions, then the default version prioritization will be used. + +Here are the steps for creating a config map that allows users to override the default version prioritization. These steps must happen on the destination cluster before a Velero restore is initiated. + +1. Create a file called `restoreResourcesVersionPriority`. The file name will become a key in the `data` field of the config map. + - In the file, write a line for each resource group you'd like to override. Make sure each line follows the format `.=,` + - Note that the resource group and versions are separated by a single equal (=) sign. Each version is listed in order of user's priority separated by commas. + - Here is an example of the contents of a config map file: + + ```cm + rockbands.music.example.io=v2beta1,v2beta2 + orchestras.music.example.io=v2,v3alpha1 + subscriptions.operators.coreos.com=v2,v1 + ``` + +2. Apply config map with + + ```bash + kubectl create configmap enableapigroupversions --from-file=/restoreResourcesVersionPriority -n velero + ``` + +3. See the config map with + + ```bash + kubectl describe configmap enableapigroupversions -n velero + ``` + + The config map should look something like + + ```bash + Name: enableapigroupversions + Namespace: velero + Labels: + Annotations: + + Data + ==== + restoreResourcesVersionPriority: + ---- + rockbands.music.example.io=v2beta1,v2beta2 + orchestras.music.example.io=v2,v3alpha1 + subscriptions.operators.coreos.com=v2,v1 + Events: + ``` + +## Troubleshooting + +1. Refer to the [troubleshooting section](troubleshooting.md) of the docs as the techniques generally apply here as well. +2. The [debug logs](troubleshooting.md/#getting-velero-debug-logs) will contain information on which version was chosen to restore. +3. If no API group version could be found that both exists in the backup tarball file and is supported by the destination cluster, then the following error will be recorded (no need to activate debug level logging): `"error restoring rockbands.music.example.io/rockstars/beatles: the server could not find the requested resource"`. diff --git a/site/content/docs/v1.8/examples.md b/site/content/docs/v1.8/examples.md new file mode 100644 index 000000000..58a35fd5d --- /dev/null +++ b/site/content/docs/v1.8/examples.md @@ -0,0 +1,70 @@ +--- +title: "Examples" +layout: docs +--- + +After you set up the Velero server, you can clone the examples used in the following sections by running the following: +``` +git clone https://github.com/vmware-tanzu/velero.git +cd velero +``` + +## Basic example (without PersistentVolumes) + +1. Start the sample nginx app: + + ```bash + kubectl apply -f examples/nginx-app/base.yaml + ``` + +1. Create a backup: + + ```bash + velero backup create nginx-backup --include-namespaces nginx-example + ``` + +1. Simulate a disaster: + + ```bash + kubectl delete namespaces nginx-example + ``` + + Wait for the namespace to be deleted. + +1. Restore your lost resources: + + ```bash + velero restore create --from-backup nginx-backup + ``` + +## Snapshot example (with PersistentVolumes) + +> NOTE: For Azure, you must run Kubernetes version 1.7.2 or later to support PV snapshotting of managed disks. + +1. Start the sample nginx app: + + ```bash + kubectl apply -f examples/nginx-app/with-pv.yaml + ``` + +1. Create a backup with PV snapshotting: + + ```bash + velero backup create nginx-backup --include-namespaces nginx-example + ``` + +1. Simulate a disaster: + + ```bash + kubectl delete namespaces nginx-example + ``` + + Because the default [reclaim policy][1] for dynamically-provisioned PVs is "Delete", these commands should trigger your cloud provider to delete the disk that backs the PV. Deletion is asynchronous, so this may take some time. **Before continuing to the next step, check your cloud provider to confirm that the disk no longer exists.** + +1. Restore your lost resources: + + ```bash + velero restore create --from-backup nginx-backup + ``` + +[1]: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#reclaiming diff --git a/site/content/docs/v1.8/how-velero-works.md b/site/content/docs/v1.8/how-velero-works.md new file mode 100644 index 000000000..250ab2dab --- /dev/null +++ b/site/content/docs/v1.8/how-velero-works.md @@ -0,0 +1,87 @@ +--- +title: "How Velero Works" +layout: docs +--- + +Each Velero operation -- on-demand backup, scheduled backup, restore -- is a custom resource, defined with a Kubernetes [Custom Resource Definition (CRD)][20] and stored in [etcd][22]. Velero also includes controllers that process the custom resources to perform backups, restores, and all related operations. + +You can back up or restore all objects in your cluster, or you can filter objects by type, namespace, and/or label. + +Velero is ideal for the disaster recovery use case, as well as for snapshotting your application state, prior to performing system operations on your cluster, like upgrades. + +## On-demand backups + +The **backup** operation: + +1. Uploads a tarball of copied Kubernetes objects into cloud object storage. + +1. Calls the cloud provider API to make disk snapshots of persistent volumes, if specified. + +You can optionally specify backup hooks to be executed during the backup. For example, you might +need to tell a database to flush its in-memory buffers to disk before taking a snapshot. [More about backup hooks][10]. + +Note that cluster backups are not strictly atomic. If Kubernetes objects are being created or edited at the time of backup, they might not be included in the backup. The odds of capturing inconsistent information are low, but it is possible. + +## Scheduled backups + +The **schedule** operation allows you to back up your data at recurring intervals. You can create a scheduled backup at any time, and the first backup is then performed at the schedule's specified interval. These intervals are specified by a Cron expression. + +Velero saves backups created from a schedule with the name `-`, where `` is formatted as *YYYYMMDDhhmmss*. For more information see the [Backup Reference documentation](backup-reference.md). + +## Restores + +The **restore** operation allows you to restore all of the objects and persistent volumes from a previously created backup. You can also restore only a filtered subset of objects and persistent volumes. Velero supports multiple namespace remapping--for example, in a single restore, objects in namespace "abc" can be recreated under namespace "def", and the objects in namespace "123" under "456". + +The default name of a restore is `-`, where `` is formatted as *YYYYMMDDhhmmss*. You can also specify a custom name. A restored object also includes a label with key `velero.io/restore-name` and value ``. + +By default, backup storage locations are created in read-write mode. However, during a restore, you can configure a backup storage location to be in read-only mode, which disables backup creation and deletion for the storage location. This is useful to ensure that no backups are inadvertently created or deleted during a restore scenario. + +You can optionally specify restore hooks to be executed during a restore or after resources are restored. For example, you might need to perform a custom database restore operation before the database application containers start. [More about restore hooks][11]. + +## Backup workflow + +When you run `velero backup create test-backup`: + +1. The Velero client makes a call to the Kubernetes API server to create a `Backup` object. + +1. The `BackupController` notices the new `Backup` object and performs validation. + +1. The `BackupController` begins the backup process. It collects the data to back up by querying the API server for resources. + +1. The `BackupController` makes a call to the object storage service -- for example, AWS S3 -- to upload the backup file. + +By default, `velero backup create` makes disk snapshots of any persistent volumes. You can adjust the snapshots by specifying additional flags. Run `velero backup create --help` to see available flags. Snapshots can be disabled with the option `--snapshot-volumes=false`. + +![19] + +## Backed-up API versions + +Velero backs up resources using the Kubernetes API server's *preferred version* for each group/resource. When restoring a resource, this same API group/version must exist in the target cluster in order for the restore to be successful. + +For example, if the cluster being backed up has a `gizmos` resource in the `things` API group, with group/versions `things/v1alpha1`, `things/v1beta1`, and `things/v1`, and the server's preferred group/version is `things/v1`, then all `gizmos` will be backed up from the `things/v1` API endpoint. When backups from this cluster are restored, the target cluster **must** have the `things/v1` endpoint in order for `gizmos` to be restored. Note that `things/v1` **does not** need to be the preferred version in the target cluster; it just needs to exist. + +## Set a backup to expire + +When you create a backup, you can specify a TTL (time to live) by adding the flag `--ttl `. If Velero sees that an existing backup resource is expired, it removes: + +* The backup resource +* The backup file from cloud object storage +* All PersistentVolume snapshots +* All associated Restores + +The TTL flag allows the user to specify the backup retention period with the value specified in hours, minutes and seconds in the form `--ttl 24h0m0s`. If not specified, a default TTL value of 30 days will be applied. + +## Object storage sync + +Velero treats object storage as the source of truth. It continuously checks to see that the correct backup resources are always present. If there is a properly formatted backup file in the storage bucket, but no corresponding backup resource in the Kubernetes API, Velero synchronizes the information from object storage to Kubernetes. + +This allows restore functionality to work in a cluster migration scenario, where the original backup objects do not exist in the new cluster. + +Likewise, if a backup object exists in Kubernetes but not in object storage, it will be deleted from Kubernetes since the backup tarball no longer exists. + +[10]: backup-hooks.md +[11]: restore-hooks.md +[19]: /docs/main/img/backup-process.png +[20]: https://kubernetes.io/docs/concepts/api-extension/custom-resources/#customresourcedefinitions +[21]: https://kubernetes.io/docs/concepts/api-extension/custom-resources/#custom-controllers +[22]: https://github.com/coreos/etcd diff --git a/site/content/docs/v1.8/image-tagging.md b/site/content/docs/v1.8/image-tagging.md new file mode 100644 index 000000000..64e9310b5 --- /dev/null +++ b/site/content/docs/v1.8/image-tagging.md @@ -0,0 +1,24 @@ +--- +title: "Image tagging policy" +layout: docs +--- + +This document describes Velero's image tagging policy. + +## Released versions + +`velero/velero:` + +Velero follows the [Semantic Versioning](http://semver.org/) standard for releases. Each tag in the `github.com/vmware-tanzu/velero` repository has a matching image, `velero/velero:v1.0.0`. + +### Latest + +`velero/velero:latest` + +The `latest` tag follows the most recently released version of Velero. + +## Development + +`velero/velero:main` + +The `main` tag follows the latest commit to land on the `main` branch. diff --git a/site/content/docs/v1.8/img/README.md b/site/content/docs/v1.8/img/README.md new file mode 100644 index 000000000..85c071c63 --- /dev/null +++ b/site/content/docs/v1.8/img/README.md @@ -0,0 +1 @@ +Some of these diagrams (for instance backup-process.png), have been created on [draw.io](https://www.draw.io), using the "Include a copy of my diagram" option. If you want to make changes to these diagrams, try importing them into draw.io, and you should have access to the original shapes/text that went into the originals. diff --git a/site/content/docs/v1.8/img/backup-process.png b/site/content/docs/v1.8/img/backup-process.png new file mode 100644 index 0000000000000000000000000000000000000000..7d4f10d5602a3a9798f449e4f9a7be0b74923a9e GIT binary patch literal 33630 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

      Oa*AXK>A{SCkTGAeMuLb#W122eJe?g{aj^h2pED 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 literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.8/img/gv_priority1-caseA.png b/site/content/docs/v1.8/img/gv_priority1-caseA.png new file mode 100644 index 0000000000000000000000000000000000000000..a1940453fa10f8805d45fa04e2aab30afdb62000 GIT binary patch literal 57254 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%0AiOVZ8uZL* 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

      cX7&Ax)%Cv}<}XKs|EJy;pA%#0ff_JIQN)SY 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%0D_H+& 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%0D>T0#tJA_}MUckj_CIV>w)v22-j7PDXZ=Rb2> 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 aZm<^2Sb~hRU-?i0zbhI#>TlI79{mf9tP|b< literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.8/img/gv_priority3-caseD.png b/site/content/docs/v1.8/img/gv_priority3-caseD.png new file mode 100644 index 0000000000000000000000000000000000000000..11c9a11ce8bfbf020cbf7ed3e1df4227fb28a04e GIT binary patch literal 69760 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�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 literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.8/locations.md b/site/content/docs/v1.8/locations.md new file mode 100644 index 000000000..2f54077dd --- /dev/null +++ b/site/content/docs/v1.8/locations.md @@ -0,0 +1,260 @@ +--- +title: "Backup Storage Locations and Volume Snapshot Locations" +layout: docs +--- + +## Overview + +Velero has two custom resources, `BackupStorageLocation` and `VolumeSnapshotLocation`, that are used to configure where Velero backups and their associated persistent volume snapshots are stored. + +A `BackupStorageLocation` is defined as a bucket or a prefix within a bucket under which all Velero data is stored and a set of additional provider-specific fields (AWS region, Azure storage account, etc.). Velero assumes it has control over the location you provide so you should use a dedicated bucket or prefix. If you provide a prefix, then the rest of the bucket is safe to use for multiple purposes. The [API documentation][1] captures the configurable parameters for each in-tree provider. + +A `VolumeSnapshotLocation` is defined entirely by provider-specific fields (AWS region, Azure resource group, Portworx snapshot type, etc.) The [API documentation][2] captures the configurable parameters for each in-tree provider. + +The user can pre-configure one or more possible `BackupStorageLocations` and one or more `VolumeSnapshotLocations`, and can select *at backup creation time* the location in which the backup and associated snapshots should be stored. + +This configuration design enables a number of different use cases, including: + +- Take snapshots of more than one kind of persistent volume in a single Velero backup. For example, in a cluster with both EBS volumes and Portworx volumes +- Have some Velero backups go to a bucket in an eastern USA region, and others go to a bucket in a western USA region, or to a different storage provider +- For volume providers that support it, like Portworx, you can have some snapshots stored locally on the cluster and have others stored in the cloud + +## Limitations / Caveats + +- Velero supports multiple credentials for `BackupStorageLocations`, allowing you to specify the credentials to use with any `BackupStorageLocation`. + However, use of this feature requires support within the plugin for the object storage provider you wish to use. + All [plugins maintained by the Velero team][5] support this feature. + If you are using a plugin from another provider, please check their documentation to determine if this feature is supported. + +- Velero only supports a single set of credentials for `VolumeSnapshotLocations`. + Velero will always use the credentials provided at install time (stored in the `cloud-credentials` secret) for volume snapshots. + +- Volume snapshots are still limited by where your provider allows you to create snapshots. For example, AWS and Azure do not allow you to create a volume snapshot in a different region than where the volume is. If you try to take a Velero backup using a volume snapshot location with a different region than where your cluster's volumes are, the backup will fail. + +- Each Velero backup has one `BackupStorageLocation`, and one `VolumeSnapshotLocation` per volume provider. It is not possible (yet) to send a single Velero backup to multiple backup storage locations simultaneously, or a single volume snapshot to multiple locations simultaneously. However, you can always set up multiple scheduled backups that differ only in the storage locations used if redundancy of backups across locations is important. + +- Cross-provider snapshots are not supported. If you have a cluster with more than one type of volume, like EBS and Portworx, but you only have a `VolumeSnapshotLocation` configured for EBS, then Velero will **only** snapshot the EBS volumes. + +- Restic data is stored under a prefix/subdirectory of the main Velero bucket, and will go into the bucket corresponding to the `BackupStorageLocation` selected by the user at backup creation time. + +- Velero's backups are split into 2 pieces - the metadata stored in object storage, and snapshots/backups of the persistent volume data. Right now, Velero *itself* does not encrypt either of them, instead it relies on the native mechanisms in the object and snapshot systems. A special case is restic, which backs up the persistent volume data at the filesystem level and send it to Velero's object storage. + +- Velero's compression for object metadata is limited, using Golang's tar implementation. In most instances, Kubernetes objects are limited to 1.5MB in size, but many don't approach that, meaning that compression may not be necessary. Note that restic has not yet implemented compression, but does have de-deduplication capabilities. + +## Examples + +Let's look at some examples of how you can use this configuration mechanism to address some common use cases: + +### Take snapshots of more than one kind of persistent volume in a single Velero backup + +During server configuration: + +```shell +velero snapshot-location create ebs-us-east-1 \ + --provider aws \ + --config region=us-east-1 + +velero snapshot-location create portworx-cloud \ + --provider portworx \ + --config type=cloud +``` + +During backup creation: + +```shell +velero backup create full-cluster-backup \ + --volume-snapshot-locations ebs-us-east-1,portworx-cloud +``` + +Alternately, since in this example there's only one possible volume snapshot location configured for each of our two providers (`ebs-us-east-1` for `aws`, and `portworx-cloud` for `portworx`), Velero doesn't require them to be explicitly specified when creating the backup: + +```shell +velero backup create full-cluster-backup +``` + +### Have some Velero backups go to a bucket in an eastern USA region (default), and others go to a bucket in a western USA region + +In this example, two `BackupStorageLocations` will be created within the same account but in different regions. +They will both use the credentials provided at install time and stored in the `cloud-credentials` secret. +If you need to configure unique credentials for each `BackupStorageLocation`, please refer to the [later example][8]. + +During server configuration: + +```shell +velero backup-location create backups-primary \ + --provider aws \ + --bucket velero-backups \ + --config region=us-east-1 \ + --default + +velero backup-location create backups-secondary \ + --provider aws \ + --bucket velero-backups \ + --config region=us-west-1 +``` + +A "default" backup storage location (BSL) is where backups get saved to when no BSL is specified at backup creation time. + +You can change the default backup storage location at any time by setting the `--default` flag using the +`velero backup-location set` command and configure a different location to be the default. + +Examples: + +```shell +velero backup-location set backups-secondary --default +``` + + + +During backup creation: + +```shell +velero backup create full-cluster-backup +``` + +Or: + +```shell +velero backup create full-cluster-alternate-location-backup \ + --storage-location backups-secondary +``` + +### For volume providers that support it (like Portworx), have some snapshots be stored locally on the cluster and have others be stored in the cloud + +During server configuration: + +```shell +velero snapshot-location create portworx-local \ + --provider portworx \ + --config type=local + +velero snapshot-location create portworx-cloud \ + --provider portworx \ + --config type=cloud +``` + +During backup creation: + +```shell +# Note that since in this example you have two possible volume snapshot locations for the Portworx +# provider, you need to explicitly specify which one to use when creating a backup. Alternately, +# you can set the --default-volume-snapshot-locations flag on the `velero server` command (run by +# the Velero deployment) to specify which location should be used for each provider by default, in +# which case you don't need to specify it when creating a backup. +velero backup create local-snapshot-backup \ + --volume-snapshot-locations portworx-local +``` + +Or: + +```shell +velero backup create cloud-snapshot-backup \ + --volume-snapshot-locations portworx-cloud +``` + +### Use a single location + +If you don't have a use case for more than one location, it's still easy to use Velero. Let's assume you're running on AWS, in the `us-west-1` region: + +During server configuration: + +```shell +velero backup-location create backups-primary \ + --provider aws \ + --bucket velero-backups \ + --config region=us-west-1 \ + --default + +velero snapshot-location create ebs-us-west-1 \ + --provider aws \ + --config region=us-west-1 +``` + +During backup creation: + +```shell +# Velero will automatically use your configured backup storage location and volume snapshot location. +# Nothing needs to be specified when creating a backup. +velero backup create full-cluster-backup +``` + +### Create a storage location that uses unique credentials + +It is possible to create additional `BackupStorageLocations` that use their own credentials. +This enables you to save backups to another storage provider or to another account with the storage provider you are already using. + +If you create additional `BackupStorageLocations` without specifying the credentials to use, Velero will use the credentials provided at install time and stored in the `cloud-credentials` secret. +Please see the [earlier example][9] for details on how to create multiple `BackupStorageLocations` that use the same credentials. + +#### Prerequisites +- This feature requires support from the [object storage provider plugin][5] you wish to use. + All plugins maintained by the Velero team support this feature. + If you are using a plugin from another provider, please check their documentation to determine if this is supported. +- The [plugin for the object storage provider][5] you wish to use must be [installed][6]. +- You must create a file with the object storage credentials. Follow the instructions provided by your object storage provider plugin to create this file. + +Once you have installed the necessary plugin and created the credentials file, create a [Kubernetes Secret][7] in the Velero namespace that contains these credentials: + +```shell +kubectl create secret generic -n velero credentials --from-file=bsl= +``` + +This will create a secret named `credentials` with a single key (`bsl`) which contains the contents of your credentials file. +Next, create a `BackupStorageLocation` that uses this Secret by passing the Secret name and key in the `--credential` flag. +When interacting with this `BackupStroageLocation` in the future, Velero will fetch the data from the key within the Secret you provide. + +For example, a new `BackupStorageLocation` with a Secret would be configured as follows: + +```bash +velero backup-location create \ + --provider \ + --bucket \ + --config region= \ + --credential== +``` + +The `BackupStorageLocation` is ready to use when it has the phase `Available`. +You can check the status with the following command: + +```bash +velero backup-location get +``` + +To use this new `BackupStorageLocation` when performing a backup, use the flag `--storage-location ` when running `velero backup create`. +You may also set this new `BackupStorageLocation` as the default with the command `velero backup-location set --default `. + +### Modify the credentials used by an existing storage location + +By default, `BackupStorageLocations` will use the credentials provided at install time and stored in the `cloud-credentials` secret in the Velero namespace. +You can modify these existing credentials by [editing the `cloud-credentials` secret][10], however, these changes will apply to all locations using this secret. +This may be the desired outcome, for example, in the case where you wish to rotate the credentials used for a particular account. + +You can also opt to modify an existing `BackupStorageLocation` such that it uses its own credentials by using the `backup-location set` command. + +If you have a credentials file that you wish to use for a `BackupStorageLocation`, follow the instructions above to create the Secret with that file in the Velero namespace. + +Once you have created the Secret, or have an existing Secret which contains the credentials you wish to use for your `BackupStorageLocation`, set the credential to use as follows: + +```bash +velero backup-location set \ + --credential== +``` + +## Additional Use Cases + +1. If you're using Azure's AKS, you may want to store your volume snapshots outside of the "infrastructure" resource group that is automatically created when you create your AKS cluster. This is possible using a `VolumeSnapshotLocation`, by specifying a `resourceGroup` under the `config` section of the snapshot location. See the [Azure volume snapshot location documentation][3] for details. + +1. If you're using Azure, you may want to store your Velero backups across multiple storage accounts and/or resource groups/subscriptions. This is possible using a `BackupStorageLocation`, by specifying a `storageAccount`, `resourceGroup` and/or `subscriptionId`, respectively, under the `config` section of the backup location. See the [Azure backup storage location documentation][4] for details. + + + +[1]: api-types/backupstoragelocation.md +[2]: api-types/volumesnapshotlocation.md +[3]: https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure/blob/main/volumesnapshotlocation.md +[4]: https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure/blob/main/backupstoragelocation.md +[5]: /plugins +[6]: overview-plugins.md +[7]: https://kubernetes.io/docs/concepts/configuration/secret/ +[8]: #create-a-storage-location-that-uses-unique-credentials +[9]: #have-some-velero-backups-go-to-a-bucket-in-an-eastern-usa-region-default-and-others-go-to-a-bucket-in-a-western-usa-region +[10]: https://kubernetes.io/docs/concepts/configuration/secret/#editing-a-secret diff --git a/site/content/docs/v1.8/maintainers.md b/site/content/docs/v1.8/maintainers.md new file mode 100644 index 000000000..01faab1af --- /dev/null +++ b/site/content/docs/v1.8/maintainers.md @@ -0,0 +1,37 @@ +--- +title: "Instructions for Maintainers" +layout: docs +toc: "true" +--- + +There are some guidelines maintainers need to follow. We list them here for quick reference, especially for new maintainers. These guidelines apply to all projects in the Velero org, including the main project, the Velero Helm chart, and all other [related repositories](https://github.com/vmware-tanzu/velero/blob/v1.8.0/GOVERNANCE.md#code-repositories). + +Please be sure to also go through the guidance under the entire [Contribute](start-contributing/) section. + +## Reviewing PRs +- PRs require 2 approvals before it is mergeable. +- The second reviewer usually merges the PR (if you notice a PR open for a while and with 2 approvals, go ahead and merge it!) +- As you review a PR that is not yet ready to merge, please check if the "request review" needs to be refreshed for any reviewer (this is better than @mention at them) +- Refrain from @mention other maintainers to review the PR unless it is an immediate need. All maintainers already get notified through the automated add to the "request review". If it is an urgent need, please add a helpful message as to why it is so people can properly prioritize work. +- There is no need to manually request reviewers: after the PR is created, all maintainers will be automatically added to the list (note: feel free to remove people if they are on PTO, etc). +- Be familiar with the [lazy consensus](https://github.com/vmware-tanzu/velero/blob/v1.8.0/GOVERNANCE.md#lazy-consensus) policy for the project. + +Some tips for doing reviews: +- There are some [code standards and general guidelines](https://velero.io/docs/v1.8.0/code-standards) we aim for +- We have [guidelines for writing and reviewing documentation](https://velero.io/docs/v1.8.0/style-guide/) +- When reviewing a design document, ensure it follows [our format and guidelines]( https://github.com/vmware-tanzu/velero/blob/v1.8.0/design/_template.md). Also, when reviewing a PR that implements a previously accepted design, ensure the associated design doc is moved to the [design/implemented](https://github.com/vmware-tanzu/velero/tree/main/design/implemented) folder. + + +## Creating a release +Maintainers are expected to create releases for the project. We have parts of the process automated, and full [instructions](release-instructions). +We are working towards automating more the Velero testing, but there is still a need for manual testing as part of the release process. +The manual test cases for release testing are documented [here](./manual-testing). + +## Community support +Maintainers are expected to participate in the community support rotation. We have guidelines for how we handle the [support](support-process). + +## Community engagement +Maintainers for the Velero project are highly involved with the open source community. All the online community meetings for the project are listed in our [community](community) page. + +## How do I become a maintainer? +The Velero project welcomes contributors of all kinds. We are also always on the look out for a high level of engagement from contributors and opportunities to bring in new maintainers. If this is of interest, take a look at how [adding a maintainer](https://github.com/vmware-tanzu/velero/blob/v1.8.0/GOVERNANCE.md#maintainers) is decided. diff --git a/site/content/docs/v1.8/manual-testing.md b/site/content/docs/v1.8/manual-testing.md new file mode 100644 index 000000000..c66366b8a --- /dev/null +++ b/site/content/docs/v1.8/manual-testing.md @@ -0,0 +1,92 @@ +--- +title: "Manual Testing Requirements for Velero" +layout: docs +--- + +Although we have automated unit and end-to-end tests, there is still a need for Velero to undergo manual tests during a release. +This document outlines the manual test operations that Velero needs to correctly perform in order to be considered ready for release. + +## Current test cases + +The following are test cases that are currently performed as part of a Velero release. + +### Install + +- Verify that Velero CRDs are compatible with the earliest and latest versions of Kubernetes that we support: + - Kubernetes v1.16 + - Kubernetes v1.22 + +### Upgrade + +- Verify that Velero upgrade instructions work + +### Basic functionality + +The "Backup and Restore" test cases below describe general backup and restore functionality that needs to run successfully on all the following providers that we maintain plugins for: +- AWS +- GCP +- Microsoft Azure +- VMware vSphere + +#### Backup and Restore + +- Verify that a backup and restore using Volume Snapshots can be performed +- Verify that a backup and restore using Restic can be performed +- Verify that a backup of a cluster workload can be restored in a new cluster +- Verify that an installation using the latest version can be used to restore from backups created with the last 3 versions. + - e.g. Install Velero 1.6 and use it to restore backups from Velero v1.3, v1.4, v1.5. + +### Working with Multiple Providers + +The following are test cases that exercise Velero behaviour when interacting with multiple providers: + +- Verify that a backup and restore to multiple BackupStorageLocations using the same provider with unique credentials can be performed +- Verify that a backup and restore to multiple BackupStorageLocations using different providers with unique credentials can be performed +- Verify that a backup and restore that includes volume snapshots using different providers for the snapshots and object storage can be performed + - e.g. perform a backup and restore using AWS for the VolumeSnapshotLocation and Azure Blob Storage as the BackupStorageLocation + +## Future test cases + +The following are test cases that are not currently performed as part of a Velero release but cases that we will want to cover with future releases. + +### Schedules + +- Verify that schedules create a backup upon creation and create Backup resources at the correct frequency + +### Resource management + +- Verify that deleted backups are successfully removed from object storage +- Verify that backups that have been removed from object storage can still be deleted with `velero delete backup` +- Verify that Volume Snapshots associated with a deleted backup are removed +- Verify that backups that exceed their TTL are deleted +- Verify that existing backups in object storage are synced to Velero + +### Restic repository test cases + +- Verify that restic repository maintenance is performed as the specified interval + +### Backup Hooks + +- Verify that a pre backup hook provided via pod annotation is performed during backup +- Verify that a pre backup hook provided via Backup spec is performed during backup +- Verify that a post backup hook provided via pod annotation is performed during backup +- Verify that a post backup hook provided via Backup spec is performed during backup + +### Restore Hooks + +- Verify that an InitContainer restore hook provided via pod annotation is performed during restore +- Verify that an InitContainer restore hook provided via Restore spec is performed during restore +- Verify that an InitContainer restore hook provided via Restore spec is performed during restore that includes restoring restic volumes +- Verify that an Exec restore hook provided via pod annotation is performed during restore +- Verify that an Exec restore hook provided via Restore spec is performed during restore + + +#### Resource filtering + +- Verify that backups and restores correctly apply the following resource filters: + - `--include-namespaces` + - `--include-resources` + - `--include-cluster-resources` + - `--exclude-namespaces` + - `--exclude-resources` + - `velero.io/exclude-from-backup=true` label diff --git a/site/content/docs/v1.8/migration-case.md b/site/content/docs/v1.8/migration-case.md new file mode 100644 index 000000000..c547ebbb4 --- /dev/null +++ b/site/content/docs/v1.8/migration-case.md @@ -0,0 +1,58 @@ +--- +title: "Cluster migration" +layout: docs +--- + +## Using Backups and Restores + +Velero can help you port your resources from one cluster to another, as long as you point each Velero instance to the same cloud object storage location. This scenario assumes that your clusters are hosted by the same cloud provider. **Note that Velero does not natively support the migration of persistent volumes snapshots across cloud providers.** If you would like to migrate volume data between cloud platforms, please enable [restic][2], which will backup volume contents at the filesystem level. + +1. *(Cluster 1)* Assuming you haven't already been checkpointing your data with the Velero `schedule` operation, you need to first back up your entire cluster (replacing `` as desired): + + ``` + velero backup create + ``` + + The default backup retention period, expressed as TTL (time to live), is 30 days (720 hours); you can use the `--ttl ` flag to change this as necessary. See [how velero works][1] for more information about backup expiry. + +1. *(Cluster 2)* Configure `BackupStorageLocations` and `VolumeSnapshotLocations`, pointing to the locations used by *Cluster 1*, using `velero backup-location create` and `velero snapshot-location create`. Make sure to configure the `BackupStorageLocations` as read-only + by using the `--access-mode=ReadOnly` flag for `velero backup-location create`. + +1. *(Cluster 2)* Make sure that the Velero Backup object is created. Velero resources are synchronized with the backup files in cloud storage. + + ``` + velero backup describe + ``` + + **Note:** The default sync interval is 1 minute, so make sure to wait before checking. You can configure this interval with the `--backup-sync-period` flag to the Velero server. + +1. *(Cluster 2)* Once you have confirmed that the right Backup (``) is now present, you can restore everything with: + + ``` + velero restore create --from-backup + ``` + +## Verify Both Clusters + +Check that the second cluster is behaving as expected: + +1. *(Cluster 2)* Run: + + ``` + velero restore get + ``` + +1. Then run: + + ``` + velero restore describe + ``` + +If you encounter issues, make sure that Velero is running in the same namespace in both clusters. + +## Migrating Workloads Across Different Kubernetes Versions + +Migration across clusters that are not running the same version of Kubernetes might be possible, but some factors need to be considered: compatibility of API groups between clusters for each custom resource, and if a Kubernetes version upgrade breaks the compatibility of core/native API groups. For more information about API group versions, please see [EnableAPIGroupVersions](enable-api-group-versions-feature.md). + +[1]: how-velero-works.md#set-a-backup-to-expire +[2]: restic.md diff --git a/site/content/docs/v1.8/namespace.md b/site/content/docs/v1.8/namespace.md new file mode 100644 index 000000000..68561e720 --- /dev/null +++ b/site/content/docs/v1.8/namespace.md @@ -0,0 +1,22 @@ +--- +title: "Run in a non-default namespace" +layout: docs +--- + +The Velero installation and backups by default are run in the `velero` namespace. However, it is possible to use a different namespace. + +## Customize the namespace during install + +Use the `--namespace` flag, in conjunction with the other flags in the `velero install` command (as shown in the [the Velero install instructions][0]). This will inform Velero where to install. + +## Customize the namespace for operational commands + +To have namespace consistency, specify the namespace for all Velero operational commands to be the same as the namespace used to install Velero: + +```bash +velero client config set namespace= +``` + +Alternatively, you may use the global `--namespace` flag with any operational command to tell Velero where to run. + +[0]: basic-install.md#install-the-cli diff --git a/site/content/docs/v1.8/on-premises.md b/site/content/docs/v1.8/on-premises.md new file mode 100644 index 000000000..30ddf98b3 --- /dev/null +++ b/site/content/docs/v1.8/on-premises.md @@ -0,0 +1,95 @@ +--- +title: "On-Premises Environments" +layout: docs +--- + +You can run Velero in an on-premises cluster in different ways depending on your requirements. + +### Selecting an object storage provider + +You must select an object storage backend that Velero can use to store backup data. [Supported providers][0] contains information on various +options that are supported or have been reported to work by users. + +If you do not already have an object storage system, [MinIO][2] is an open-source S3-compatible object storage system that can be installed on-premises and is compatible with Velero. The details of configuring it for production usage are out of scope for Velero's documentation, but an [evaluation install guide][3] using MinIO is provided for convenience. + +### (Optional) Selecting volume snapshot providers + +If you need to back up persistent volume data, you must select a volume backup solution. [Supported providers][0] contains information on the supported options. + +For example, if you use [Portworx][4] for persistent storage, you can install their Velero plugin to get native Portworx snapshots as part of your Velero backups. + +If there is no native snapshot plugin available for your storage platform, you can use Velero's [restic integration][1], which provides a platform-agnostic file-level backup solution for volume data. + +### Air-gapped deployments + +In an air-gapped deployment, there is no access to the public internet, and therefore no access to public container registries. + +In these scenarios, you will need to make sure that you have an internal registry, such as [Harbor][5], installed and the Velero core and plugin images loaded into your internal registry. + +Below you will find instructions to downloading the Velero images to your local machine, tagging them, then uploading them to your custom registry. + +#### Preparing the Velero image + +First, download the Velero image, tag it for the your private registry, then upload it into the registry so that it can be pulled by your cluster. + +```bash +PRIVATE_REG= +VELERO_VERSION= + +docker pull velero/velero:$VELERO_VERSION +docker tag velero/velero:$VELERO_VERSION $PRIVATE_REG/velero:$VELERO_VERSION +docker push $PRIVATE_REG/velero:$VELERO_VERSION +``` + +#### Preparing plugin images + +Next, repeat these steps for any plugins you may need. This example will use the AWS plugin, but the plugin name should be replaced with the plugins you will need. + +```bash +PRIVATE_REG= +PLUGIN_VERSION= + +docker pull velero/velero-plugin-for-aws:$PLUGIN_VERSION +docker tag velero/velero-plugin-for-aws:$PLUGIN_VERSION $PRIVATE_REG/velero-plugin-for-aws:$PLUGIN_VERSION +docker push $PRIVATE_REG/velero-plugin-for-aws:$PLUGIN_VERSION +``` + +#### Preparing the restic helper image (optional) + +If you are using restic, you will also need to upload the restic helper image. + +```bash +PRIVATE_REG= +VELERO_VERSION= + +docker pull velero/velero-restic-restore-helper:$VELERO_VERSION +docker tag velero/velero-restic-restore-helper:$VELERO_VERSION $PRIVATE_REG/velero-restic-restore-helper:$VELERO_VERSION +docker push $PRIVATE_REG/velero-restic-restore-helper:$VELERO_VERSION +``` + +#### Pulling specific architecture images (optional) + +Velero uses Docker manifests for its images, allowing Docker to pull the image needed based on your client machine's architecture. + +If you need to pull a specific image, you should replace the `velero/velero` image with the specific architecture image, such as `velero/velero-arm`. + +To see an up-to-date list of architectures, be sure to enable Docker experimental features and use `docker manifest inspect velero/velero` (or whichever image you're interested in), and join the architecture string to the end of the image name with `-`. + +#### Installing Velero + +By default, `velero install` will use the public `velero/velero` image. When using an air-gapped deployment, use your private registry's image for Velero and your private registry's images for any plugins. + +```bash +velero install \ + --image=$PRIVATE_REG/velero:$VELERO_VERSION \ + --plugins=$PRIVATE_REG/velero-plugin-for-aws:$PLUGIN_VERSION \ +<....> +``` + + +[0]: supported-providers.md +[1]: restic.md +[2]: https://min.io +[3]: contributions/minio.md +[4]: https://portworx.com +[5]: https://goharbor.io/ diff --git a/site/content/docs/v1.8/output-file-format.md b/site/content/docs/v1.8/output-file-format.md new file mode 100644 index 000000000..8d4823505 --- /dev/null +++ b/site/content/docs/v1.8/output-file-format.md @@ -0,0 +1,224 @@ +--- +title: "Output file format" +layout: docs +--- + +A backup is a gzip-compressed tar file whose name matches the Backup API resource's `metadata.name` (what is specified during `velero backup create `). + +In cloud object storage, each backup file is stored in its own subdirectory in the bucket specified in the Velero server configuration. This subdirectory includes an additional file called `velero-backup.json`. The JSON file lists all information about your associated Backup resource, including any default values. This gives you a complete historical record of the backup configuration. The JSON file also specifies `status.version`, which corresponds to the output file format. + +The directory structure in your cloud storage looks something like: + +``` +rootBucket/ + backup1234/ + velero-backup.json + backup1234.tar.gz +``` + +## Example backup JSON file + +```json +{ + "kind": "Backup", + "apiVersion": "velero.io/v1", + "metadata": { + "name": "test-backup", + "namespace": "velero", + "selfLink": "/apis/velero.io/v1/namespaces/velero/backups/test-backup", + "uid": "a12345cb-75f5-11e7-b4c2-abcdef123456", + "resourceVersion": "337075", + "creationTimestamp": "2017-07-31T13:39:15Z" + }, + "spec": { + "includedNamespaces": [ + "*" + ], + "excludedNamespaces": null, + "includedResources": [ + "*" + ], + "excludedResources": null, + "labelSelector": null, + "snapshotVolumes": true, + "ttl": "24h0m0s" + }, + "status": { + "version": 1, + "formatVersion": "1.1.0", + "expiration": "2017-08-01T13:39:15Z", + "phase": "Completed", + "volumeBackups": { + "pvc-e1e2d345-7583-11e7-b4c2-abcdef123456": { + "snapshotID": "snap-04b1a8e11dfb33ab0", + "type": "gp2", + "iops": 100 + } + }, + "validationErrors": null + } +} +``` +Note that this file includes detailed info about your volume snapshots in the `status.volumeBackups` field, which can be helpful if you want to manually check them in your cloud provider GUI. + +## Output File Format Versioning + +The Velero output file format is intended to be relatively stable, but may change over time to support new features. + +To accommodate this, Velero follows [Semantic Versioning](http://semver.org/) for the file format version. + +Minor and patch versions will indicate backwards-compatible changes that previous versions of Velero can restore, including new directories or files. + +A major version would indicate that a version of Velero older than the version that created the backup could not restore it, usually because of moved or renamed directories or files. + +Major versions of the file format will be incremented with major version releases of Velero. +However, a major version release of Velero does not necessarily mean that the backup format version changed - Velero 3.0 could still use backup file format 2.0, as an example. + +## Versions + +### File Format Version: 1.1 (Current) + +Version 1.1 added support of API groups versions as part of the backup. Previously, only the preferred version of each API groups was backed up. Each resource has one or more sub-directories: one sub-directory for each supported version of the API group. The preferred version API Group of each resource has the suffix "-preferredversion" as part of the sub-directory name. For backward compatibility, we kept the classic directory structure without the API group version, which sits on the same level as the API group sub-directory versions. + +By default, only the preferred API group of each resource is backed up. To take a backup of all API group versions, you need to run the Velero server with the `--features=EnableAPIGroupVersions` feature flag. This is an experimental flag and the restore logic to handle multiple API group versions is documented at [EnableAPIGroupVersions](enable-api-group-versions-feature.md). + +When unzipped, a typical backup directory (`backup1234.tar.gz`) taken with this file format version looks like the following (with the feature flag): + +``` +resources/ + persistentvolumes/ + cluster/ + pv01.json + ... + v1-preferredversion/ + cluster/ + pv01.json + ... + configmaps/ + namespaces/ + namespace1/ + myconfigmap.json + ... + namespace2/ + ... + v1-preferredversion/ + namespaces/ + namespace1/ + myconfigmap.json + ... + namespace2/ + ... + pods/ + namespaces/ + namespace1/ + mypod.json + ... + namespace2/ + ... + v1-preferredversion/ + namespaces/ + namespace1/ + mypod.json + ... + namespace2/ + ... + jobs.batch/ + namespaces/ + namespace1/ + awesome-job.json + ... + namespace2/ + ... + v1-preferredversion/ + namespaces/ + namespace1/ + awesome-job.json + ... + namespace2/ + ... + deployments/ + namespaces/ + namespace1/ + cool-deployment.json + ... + namespace2/ + ... + v1-preferredversion/ + namespaces/ + namespace1/ + cool-deployment.json + ... + namespace2/ + ... + horizontalpodautoscalers.autoscaling/ + namespaces/ + namespace1/ + hpa-to-the-rescue.json + ... + namespace2/ + ... + v1-preferredversion/ + namespaces/ + namespace1/ + hpa-to-the-rescue.json + ... + namespace2/ + ... + v2beta1/ + namespaces/ + namespace1/ + hpa-to-the-rescue.json + ... + namespace2/ + ... + v2beta2/ + namespaces/ + namespace1/ + hpa-to-the-rescue.json + ... + namespace2/ + ... + + ... +``` + +### File Format Version: 1 + +When unzipped, a typical backup directory (`backup1234.tar.gz`) looks like the following: + +``` +resources/ + persistentvolumes/ + cluster/ + pv01.json + ... + configmaps/ + namespaces/ + namespace1/ + myconfigmap.json + ... + namespace2/ + ... + pods/ + namespaces/ + namespace1/ + mypod.json + ... + namespace2/ + ... + jobs/ + namespaces/ + namespace1/ + awesome-job.json + ... + namespace2/ + ... + deployments/ + namespaces/ + namespace1/ + cool-deployment.json + ... + namespace2/ + ... + ... +``` diff --git a/site/content/docs/v1.8/overview-plugins.md b/site/content/docs/v1.8/overview-plugins.md new file mode 100644 index 000000000..037601d51 --- /dev/null +++ b/site/content/docs/v1.8/overview-plugins.md @@ -0,0 +1,29 @@ +--- +title: "Velero plugin system" +layout: docs +--- + +Velero uses storage provider plugins to integrate with a variety of storage systems to support backup and snapshot operations. + +For server installation, Velero requires that at least one plugin is added (with the `--plugins` flag). The plugin will be either of the type object store or volume snapshotter, or a plugin that contains both. An exception to this is that when the user is not configuring a backup storage location or a snapshot storage location at the time of install, this flag is optional. + +Any plugin can be added after Velero has been installed by using the command `velero plugin add `. + +Example with a dockerhub image: `velero plugin add velero/velero-plugin-for-aws:v1.0.0`. + +In the same way, any plugin can be removed by using the command `velero plugin remove `. + +## Creating a new plugin + +Anyone can add integrations for any platform to provide additional backup and volume storage without modifying the Velero codebase. To write a plugin for a new backup or volume storage platform, take a look at our [example repo][1] and at our documentation for [Custom plugins][2]. + +## Adding a new plugin + +After you publish your plugin on your own repository, open a PR that adds a link to it under the appropriate list of [supported providers][3] page in our documentation. + +You can also add the [`velero-plugin` GitHub Topic][4] to your repo, and it will be shown under the aggregated list of repositories automatically. + +[1]: https://github.com/vmware-tanzu/velero-plugin-example/ +[2]: custom-plugins.md +[3]: supported-providers.md +[4]: https://github.com/topics/velero-plugin diff --git a/site/content/docs/v1.8/plugin-release-instructions.md b/site/content/docs/v1.8/plugin-release-instructions.md new file mode 100644 index 000000000..4323d8c9a --- /dev/null +++ b/site/content/docs/v1.8/plugin-release-instructions.md @@ -0,0 +1,30 @@ +--- +title: Releasing Velero plugins +layout: docs +toc: "true" +--- + +Velero plugins maintained by the core maintainers do not have any shipped binaries, only container images, so there is no need to invoke a GoReleaser script. +Container images are built via a CI job on git push. + +Plugins the Velero core team is responsible include all those listed in [the Velero-supported providers list](supported-providers.md) _except_ the vSphere plugin. + + +## Steps +### Open a PR to prepare the repo +1. Update the README.md file to update the compatibility matrix and `velero install` instructions with the expected version number and open a PR. +1. Determining the version number is based on semantic versioning and whether the plugin uses any newly introduced, changed, or removed methods or variables from Velero. +2. Roll all unreleased changelogs into a new `CHANGELOG-v.md` file and delete the content of the `unreleased` folder. Edit the new changelog file as needed. +### Tag +1. Once the PR is merged, checkout the upstream `main` branch. Your local upstream might be named `upstream` or `origin`, so use this command: `git checkout /main`. +1. Tag the git version - `git tag v`. +1. Push the git tag - `git push --tags ` to trigger the image build. +2. Wait for the container images to build. You may check the progress of the GH action that triggers the image build at `https://github.com/vmware-tanzu//actions` +3. Verify that an image with the new tag is available at `https://hub.docker.com/repository/docker/velero//`. +4. Run the Velero [e2e tests][2] using the new image. Until it is made configurable, you will have to edit the [plugin version][1] in the test. +### Release +1. If all e2e tests pass, go to the GitHub release page of the plugin (`https://github.com/vmware-tanzu//releases`) and manually create a release for the new tag. +1. Copy and paste the content of the new changelog file into the release description field. + +[1]: https://github.com/vmware-tanzu/velero/blob/c8dfd648bbe85db0184ea53296de4220895497e6/test/e2e/velero_utils.go#L27 +[2]: https://github.com/vmware-tanzu/velero/tree/main/test/e2e diff --git a/site/content/docs/v1.8/rbac.md b/site/content/docs/v1.8/rbac.md new file mode 100644 index 000000000..a9c22b9f1 --- /dev/null +++ b/site/content/docs/v1.8/rbac.md @@ -0,0 +1,50 @@ +--- +title: "Run Velero more securely with restrictive RBAC settings" +layout: docs +--- + +By default Velero runs with an RBAC policy of ClusterRole `cluster-admin`. This is to make sure that Velero can back up or restore anything in your cluster. But `cluster-admin` access is wide open -- it gives Velero components access to everything in your cluster. Depending on your environment and your security needs, you should consider whether to configure additional RBAC policies with more restrictive access. + +**Note:** Roles and RoleBindings are associated with a single namespaces, not with an entire cluster. PersistentVolume backups are associated only with an entire cluster. This means that any backups or restores that use a restrictive Role and RoleBinding pair can manage only the resources that belong to the namespace. You do not need a wide open RBAC policy to manage PersistentVolumes, however. You can configure a ClusterRole and ClusterRoleBinding that allow backups and restores only of PersistentVolumes, not of all objects in the cluster. + +For more information about RBAC and access control generally in Kubernetes, see the Kubernetes documentation about [access control][1], [managing service accounts][2], and [RBAC authorization][3]. + +## Set up Roles and RoleBindings + +Here's a sample Role and RoleBinding pair. + +```yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + namespace: YOUR_NAMESPACE_HERE + name: ROLE_NAME_HERE + labels: + component: velero +rules: + - apiGroups: + - velero.io + verbs: + - "*" + resources: + - "*" +``` + +```yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: ROLEBINDING_NAME_HERE +subjects: + - kind: ServiceAccount + name: YOUR_SERVICEACCOUNT_HERE +roleRef: + kind: Role + name: ROLE_NAME_HERE + apiGroup: rbac.authorization.k8s.io +``` + +[1]: https://kubernetes.io/docs/reference/access-authn-authz/controlling-access/ +[2]: https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/ +[3]: https://kubernetes.io/docs/reference/access-authn-authz/rbac/ +[4]: namespace.md diff --git a/site/content/docs/v1.8/release-instructions.md b/site/content/docs/v1.8/release-instructions.md new file mode 100644 index 000000000..43e2e632a --- /dev/null +++ b/site/content/docs/v1.8/release-instructions.md @@ -0,0 +1,167 @@ +--- +title: "Release Instructions" +layout: docs +toc: "true" +--- +This page covers the steps to perform when releasing a new version of Velero. + +## General notes +- Please read the documented variables in each script to understand what they are for and how to properly format their values. +- You will need to have an upstream remote configured to use to the [vmware-tanzu/velero](https://github.com/vmware-tanzu/velero) repository. + You can check this using `git remote -v`. + The release script ([`tag-release.sh`](https://github.com/vmware-tanzu/velero/blob/v1.8.0/hack/release-tools/tag-release.sh)) will use `upstream` as the default remote name if it is not specified using the environment variable `REMOTE`. +- GA release: major and minor releases only. Example: 1.0 (major), 1.5 (minor). +- Pre-releases: Any release leading up to a GA. Example: 1.4.0-beta.1, 1.5.0-rc.1 +- RC releases: Release Candidate, contains everything that is supposed to ship with the GA release. This is still a pre-release. + +## Velero Release Requirements + +Velero is on a "train leaves the station" model for releases. We will generate a release candidate (RC) +at the scheduled time. Multiple release candidates may be generated, depending on if bugs are found during testing. +When testing has passed a release build will be generated. + +### Release Candidate criteria +The release candidate commit must meet the following criteria: + +* No major bugs outstanding +* Unit tests pass +* E2E tests against latest Kubernetes on AWS, vSphere and kind pass + +Once the release has moved to RC, a code freeze is in effect. Only changes needed to release are allowable. + +### Release criteria +In order for a release candidate to be released, it must meet the following criteria: + +* Unit tests pass +* E2E tests against latest K8S and earliest supported K8S on Azure, vSphere, Kind, AWS, GCP +* Manual tests pass (manual tests will be converted to automated testing) + +When bugs are identified by any of these methods, we will determine whether the bug is a release blocker or not and +a fix generated if it is. When release blocker bugs identifies in an release candidate are fixed, another RC will +be generated and the test cycle will restart. + +## Preparing + +### Create release blog post (GA only) +For each major or minor release, create and publish a blog post to let folks know what's new. Please follow these [instructions](how-to-write-and-release-a-blog-post). + +### Changelog and Docs PR +#### Troubleshooting +- If you encounter the error `You don't have enough free space in /var/cache/apt/archives/` when running `make serve-docs`: run `docker system prune`. + +#### Steps +1. If it doesn't already exist: in a branch, create the file `changelogs/CHANGELOG-..md` by copying the most recent one. +1. Update the file `changelogs/CHANGELOG-..md` + - Run `make changelog` to generate a list of all unreleased changes. + - Copy/paste the output into `CHANGELOG-..md`, under the "All Changes" section for the release. + - You *may* choose to tweak formatting on the list of changes by adding code blocks, etc. + - Update links at the top of the file to point to the new release version +1. Update the main `CHANGELOG.md` file to properly reference the release-specific changelog file + - Under "Current release": + - Should contain only the current GA release. + - Under "Development release": + - Should contain only the latest pre-release + - Move any prior pre-release into "Older releases" +1. GA Only: Remove all changelog files from `changelogs/unreleased`. +1. Generate new docs + - Run `make gen-docs`, passing the appropriate variables. Examples: + a) `VELERO_VERSION=v1.5.0-rc.1 NEW_DOCS_VERSION=v1.5.0-rc.1 make gen-docs`. + b) `VELERO_VERSION=v1.5.0 NEW_DOCS_VERSION=v1.5 make gen-docs`). + - Note: `PREVIOUS_DOCS_VERSION=` is optional; when not set, it will default to the latest doc version. +1. Clean up when there is an existing set of pre-release versioned docs for the version you are releasing + - Example: `site/content/docs/v1.5.0-beta.1` exists, and you're releasing `v1.5.0-rc.1` or `v1.5` + - Remove the directory containing the pre-release docs, i.e. `site/content/docs/`. + - Delete the pre-release docs table of contents file, i.e. `site/data/docs/-toc.yml`. + - Remove the pre-release docs table of contents mapping entry from `site/data/toc-mapping.yml`. + - Remove all references to the pre-release docs from `site/config.yml`. +1. Create the "Upgrade to $major.minor" page if it does not already exist ([example](https://velero.io/docs/v1.5/upgrade-to-1.5/)). + If it already exists, update any usage of the previous version string within this file to use the new version string instead ([example](https://github.com/vmware-tanzu/velero/pull/2941/files#diff-d594f8fd0901fed79c39aab4b348193d)). + This needs to be done in both the versioned and the `main` folders. +1. Review and submit PR + - Follow the additional instructions at `site/README-HUGO.md` to complete the docs generation process. + - Do a review of the diffs, and/or run `make serve-docs` and review the site. + - Submit a PR containing the changelog and the version-tagged docs. + +### Pin the base image +The image of velero is built based on [Distroless docker image](https://github.com/GoogleContainerTools/distroless). +For the reproducibility of the release, before the release candidate is tagged, we need to make sure the in the Dockerfile +on the release branch, the base image is referenced by digest, such as +https://github.com/vmware-tanzu/velero/blob/release-1.7/Dockerfile#L53-L54 + +## Velero release +### Notes +- Pre-requisite: PR with the changelog and docs is merged, so that it's included in the release tag. +- This process is the same for both pre-release and GA. +- Refer to the [General notes](general-notes) above for instructions. + +#### Troubleshooting +- If the dry-run fails with random errors, try running it again. + +#### Steps +1. Create a tagged release in dry-run mode + - This won't push anything to GitHub. + - Run `VELERO_VERSION=v1.0.0-rc.1 REMOTE= GITHUB_TOKEN=REDACTED ./hack/release-tools/tag-release.sh`. + - Fix any issue. +1. Create a tagged release and push it to GitHub + - Run `VELERO_VERSION=v1.0.0-rc.1 REMOTE= GITHUB_TOKEN=REDACTED ./hack/release-tools/tag-release.sh publish`. +1. Publish the release + - Navigate to the draft GitHub release at https://github.com/vmware-tanzu/velero/releases and edit the release. + - If this is a patch release (e.g. `v1.4.1`), note that the full `CHANGELOG-1.4.md` contents will be included in the body of the GitHub release. You need to delete the previous releases' content (e.g. `v1.2.0`'s changelog) so that only the latest patch release's changelog shows. + - Do a quick review for formatting. + - **Note:** the `goreleaser` process should have detected if it's a pre-release version and, if so, checked the box at the bottom of the GitHub release page appropriately, but it's always worth double-checking. + - Verify that GitHub has built and pushed all the images (it takes a while): https://github.com/vmware-tanzu/velero/actions + - Verify that the images are on Docker Hub: https://hub.docker.com/r/velero/velero/tags + - Verify that the assets were published to the GitHub release + - Publish the release. +1. Test the release + - By now, the Docker images should have been published. + - Perform a smoke-test - for example: + - Download the CLI from the GitHub release + - Use it to install Velero into a cluster (or manually update an existing deployment to use the new images) + - Verify that `velero version` shows the expected output + - Run a backup/restore and ensure it works + +## Homebrew release (GA only) +These are the steps to update the Velero Homebrew version. + +### Steps +- If you don't already have one, create a [GitHub access token for Homebrew](https://github.com/settings/tokens/new?scopes=gist,public_repo&description=Homebrew) +- Run `export HOMEBREW_GITHUB_API_TOKEN=your_token_here` on your command line to make sure that `brew` can work on GitHub on your behalf. +- Run `hack/release-tools/brew-update.sh`. This script will download the necessary files, do the checks, and invoke the brew helper to submit the PR, which will open in your browser. +- Update Windows Chocolatey version. From a Windows computer, follow the step-by-step instructions to [create the Windows Chocolatey package for Velero CLI](https://github.com/adamrushuk/velero-choco/blob/main/README.md) +- +## Plugins + +To release plugins maintained by the Velero team, follow the [plugin release instructions](plugin-release-instructions.md). + +After the plugin images are built, be sure to update any [e2e tests][3] that use these plugins. + +## How to write and release a blog post +What to include in a release blog: +* Thank all contributors for their involvement in the release. + * Where possible shoutout folks by name or consider spotlighting new maintainers. +* Highlight the themes, or areas of focus, for the release. Some examples of themes are security, bug fixes, feature improvements. See past Velero [release blog posts][1] for more examples. +* Include summaries of new features or workflows introduced in a release. + * This can also include new project initiatives, like a code-of-conduct update. + * Consider creating additional blog posts that go through new features in more detail. Plan to publish additional blogs after the release blog (all blogs don’t have to be publish all at once). + +Release blog post PR: +* Prepare a PR containing the release blog post. Read the [website guidelines][2] for more information on creating a blog post. It's usually easiest to make a copy of the most recent existing post, then replace the content as appropriate. +* You also need to update `site/index.html` to have "Latest Release Information" contain a link to the new post. +* Plan to publish the blog post the same day as the release. + +## Announce a release +Once you are finished doing the release, let the rest of the world know it's available by posting messages in the following places. +1. GA Only: Merge the blog post PR. +1. Velero's Twitter account. Maintainers are encouraged to help spread the word by posting or reposting on social media. +1. Community Slack channel. +1. Google group message. + +What to include: +* Thank all contributors +* A brief list of highlights in the release +* Link to the release blog post, release notes, and/or github release page + +[1]: https://velero.io/blog +[2]: website-guidelines.md +[3]: https://github.com/vmware-tanzu/velero/tree/main/test/e2e diff --git a/site/content/docs/v1.8/release-schedule.md b/site/content/docs/v1.8/release-schedule.md new file mode 100644 index 000000000..ca88383d2 --- /dev/null +++ b/site/content/docs/v1.8/release-schedule.md @@ -0,0 +1,15 @@ +--- +title: "Release Schedule" +layout: docs +toc: "true" +--- + +Definitions borrowed from [the Kubernetes release process document](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-release/release.md#definitions) + +General phases for a Velero release +- Enhancement/Design freeze +- Implementation phase +- Feature freeze & pruning +- Code freeze & prerelease +- Release + diff --git a/site/content/docs/v1.8/resource-filtering.md b/site/content/docs/v1.8/resource-filtering.md new file mode 100644 index 000000000..ddcd97e4a --- /dev/null +++ b/site/content/docs/v1.8/resource-filtering.md @@ -0,0 +1,138 @@ +--- +title: "Resource filtering" +layout: docs +--- + +*Filter objects by namespace, type, or labels.* + +Velero includes all objects in a backup or restore when no filtering options are used. + +## Includes + +Only specific resources are included, excluding all others. + +Wildcard takes precedence when both a wildcard and specific resource are included. + +### --include-namespaces + +* Backup a namespace and it's objects. + + ```bash + velero backup create --include-namespaces + ``` + +* Restore two namespaces and their objects. + + ```bash + velero restore create --include-namespaces , + ``` + +### --include-resources + +* Backup all deployments in the cluster. + + ```bash + velero backup create --include-resources deployments + ``` + +* Restore all deployments and configmaps in the cluster. + + ```bash + velero restore create --include-resources deployments,configmaps + ``` + +* Backup the deployments in a namespace. + + ```bash + velero backup create --include-resources deployments --include-namespaces + ``` + +### --include-cluster-resources + + This option can have three possible values: + +* `true`: all cluster-scoped resources are included. + +* `false`: no cluster-scoped resources are included. + +* `nil` ("auto" or not supplied): + + - Cluster-scoped resources are included when backing up or restoring all namespaces. Default: `true`. + + - Cluster-scoped resources are not included when namespace filtering is used. Default: `false`. + + * Some related cluster-scoped resources may still be backed/restored up if triggered by a custom action (for example, PVC->PV) unless `--include-cluster-resources=false`. + +* Backup entire cluster including cluster-scoped resources. + + ```bash + velero backup create + ``` + +* Restore only namespaced resources in the cluster. + + ```bash + velero restore create --include-cluster-resources=false + ``` + +* Backup a namespace and include cluster-scoped resources. + + ```bash + velero backup create --include-namespaces --include-cluster-resources=true + ``` + +### --selector + +* Include resources matching the label selector. + + ```bash + velero backup create --selector = + ``` +* Include resources that are not matching the selector + ```bash + velero backup create --selector != + ``` + +For more information read the [Kubernetes label selector documentation](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors) + + +## Excludes + +Exclude specific resources from the backup. + +Wildcard excludes are ignored. + +### --exclude-namespaces + +* Exclude kube-system from the cluster backup. + + ```bash + velero backup create --exclude-namespaces kube-system + ``` + +* Exclude two namespaces during a restore. + + ```bash + velero restore create --exclude-namespaces , + ``` + +### --exclude-resources + +* Exclude secrets from the backup. + + ```bash + velero backup create --exclude-resources secrets + ``` + +* Exclude secrets and rolebindings. + + ```bash + velero backup create --exclude-resources secrets,rolebindings + ``` + +### velero.io/exclude-from-backup=true + +* Resources with the label `velero.io/exclude-from-backup=true` are not included in backup, even if it contains a matching selector label. + + + diff --git a/site/content/docs/v1.8/restic.md b/site/content/docs/v1.8/restic.md new file mode 100644 index 000000000..a15e08bf2 --- /dev/null +++ b/site/content/docs/v1.8/restic.md @@ -0,0 +1,528 @@ +--- +title: "Restic Integration" +layout: docs +--- + +Velero supports backing up and restoring Kubernetes volumes using a free open-source backup tool called [restic][1]. This support is considered beta quality. Please see the list of [limitations](#limitations) to understand if it fits your use case. + +Velero allows you to take snapshots of persistent volumes as part of your backups if you’re using one of +the supported cloud providers’ block storage offerings (Amazon EBS Volumes, Azure Managed Disks, Google Persistent Disks). +It also provides a plugin model that enables anyone to implement additional object and block storage backends, outside the +main Velero repository. + +Velero's Restic integration was added to give you an out-of-the-box solution for backing up and restoring almost any type of Kubernetes volume. This integration is an addition to Velero's capabilities, not a replacement for existing functionality. If you're running on AWS, and taking EBS snapshots as part of your regular Velero backups, there's no need to switch to using Restic. However, if you need a volume snapshot plugin for your storage platform, or if you're using EFS, AzureFile, NFS, emptyDir, +local, or any other volume type that doesn't have a native snapshot concept, Restic might be for you. + +Restic is not tied to a specific storage platform, which means that this integration also paves the way for future work to enable +cross-volume-type data migrations. + +**NOTE:** hostPath volumes are not supported, but the [local volume type][4] is supported. + +## Setup Restic + +### Prerequisites + +- Understand how Velero performs [backups with the Restic integration](#how-backup-and-restore-work-with-restic). +- [Download][3] the latest Velero release. +- Kubernetes v1.12.0 and later. Velero's Restic integration requires the Kubernetes [MountPropagation feature][6], which is enabled by default in Kubernetes v1.12.0 and later. + +### Install Restic + +To install Restic, use the `--use-restic` flag in the `velero install` command. See the [install overview][2] for more details on other flags for the install command. + +``` +velero install --use-restic +``` + +When using Restic on a storage provider that doesn't have Velero support for snapshots, the `--use-volume-snapshots=false` flag prevents an unused `VolumeSnapshotLocation` from being created on installation. + +### Configure Restic DaemonSet spec + +After installation, some PaaS/CaaS platforms based on Kubernetes also require modifications the Restic DaemonSet spec. The steps in this section are only needed if you are installing on RancherOS, OpenShift, VMware Tanzu Kubernetes Grid Integrated Edition (formerly VMware Enterprise PKS), or Microsoft Azure. + + +**RancherOS** + + +Update the host path for volumes in the Restic DaemonSet in the Velero namespace from `/var/lib/kubelet/pods` to `/opt/rke/var/lib/kubelet/pods`. + +```yaml +hostPath: + path: /var/lib/kubelet/pods +``` + +to + +```yaml +hostPath: + path: /opt/rke/var/lib/kubelet/pods +``` + + +**OpenShift** + + +To mount the correct hostpath to pods volumes, run the Restic pod in `privileged` mode. + +1. Add the `velero` ServiceAccount to the `privileged` SCC: + + ``` + $ oc adm policy add-scc-to-user privileged -z velero -n velero + ``` + +2. For OpenShift version >= `4.1`, modify the DaemonSet yaml to request a privileged mode: + + ```diff + @@ -67,3 +67,5 @@ spec: + value: /credentials/cloud + - name: VELERO_SCRATCH_DIR + value: /scratch + + securityContext: + + privileged: true + ``` + + or + + ```shell + oc patch ds/restic \ + --namespace velero \ + --type json \ + -p '[{"op":"add","path":"/spec/template/spec/containers/0/securityContext","value": { "privileged": true}}]' + ``` + +3. For OpenShift version < `4.1`, modify the DaemonSet yaml to request a privileged mode and mount the correct hostpath to pods volumes. + + ```diff + @@ -35,7 +35,7 @@ spec: + secretName: cloud-credentials + - name: host-pods + hostPath: + - path: /var/lib/kubelet/pods + + path: /var/lib/origin/openshift.local.volumes/pods + - name: scratch + emptyDir: {} + containers: + @@ -67,3 +67,5 @@ spec: + value: /credentials/cloud + - name: VELERO_SCRATCH_DIR + value: /scratch + + securityContext: + + privileged: true + ``` + + or + + ```shell + oc patch ds/restic \ + --namespace velero \ + --type json \ + -p '[{"op":"add","path":"/spec/template/spec/containers/0/securityContext","value": { "privileged": true}}]' + + oc patch ds/restic \ + --namespace velero \ + --type json \ + -p '[{"op":"replace","path":"/spec/template/spec/volumes/0/hostPath","value": { "path": "/var/lib/origin/openshift.local.volumes/pods"}}]' + ``` + + +If Restic is not running in a privileged mode, it will not be able to access pods volumes within the mounted hostpath directory because of the default enforced SELinux mode configured in the host system level. You can [create a custom SCC](https://docs.openshift.com/container-platform/3.11/admin_guide/manage_scc.html) to relax the security in your cluster so that Restic pods are allowed to use the hostPath volume plug-in without granting them access to the `privileged` SCC. + +By default a userland openshift namespace will not schedule pods on all nodes in the cluster. + +To schedule on all nodes the namespace needs an annotation: + +``` +oc annotate namespace openshift.io/node-selector="" +``` + +This should be done before velero installation. + +Or the ds needs to be deleted and recreated: + +``` +oc get ds restic -o yaml -n > ds.yaml +oc annotate namespace openshift.io/node-selector="" +oc create -n -f ds.yaml +``` + +**VMware Tanzu Kubernetes Grid Integrated Edition (formerly VMware Enterprise PKS)** + +You need to enable the `Allow Privileged` option in your plan configuration so that Restic is able to mount the hostpath. + +The hostPath should be changed from `/var/lib/kubelet/pods` to `/var/vcap/data/kubelet/pods` + +```yaml +hostPath: + path: /var/vcap/data/kubelet/pods +``` + + +**Microsoft Azure** + +If you are using [Azure Files][8], you need to add `nouser_xattr` to your storage class's `mountOptions`. See [this restic issue][9] for more details. + +You can use the following command to patch the storage class: + +```bash +kubectl patch storageclass/ \ + --type json \ + --patch '[{"op":"add","path":"/mountOptions/-","value":"nouser_xattr"}]' +``` + + +## To back up + +Velero supports two approaches of discovering pod volumes that need to be backed up using Restic: + +- Opt-in approach: Where every pod containing a volume to be backed up using Restic must be annotated with the volume's name. +- Opt-out approach: Where all pod volumes are backed up using Restic, with the ability to opt-out any volumes that should not be backed up. + +The following sections provide more details on the two approaches. + +### Using the opt-out approach + +In this approach, Velero will back up all pod volumes using Restic with the exception of: + +- Volumes mounting the default service account token, kubernetes secrets, and config maps +- Hostpath volumes + +It is possible to exclude volumes from being backed up using the `backup.velero.io/backup-volumes-excludes` annotation on the pod. + +Instructions to back up using this approach are as follows: + +1. Run the following command on each pod that contains volumes that should **not** be backed up using Restic + + ```bash + kubectl -n YOUR_POD_NAMESPACE annotate pod/YOUR_POD_NAME backup.velero.io/backup-volumes-excludes=YOUR_VOLUME_NAME_1,YOUR_VOLUME_NAME_2,... + ``` + where the volume names are the names of the volumes in the pod spec. + + For example, in the following pod: + + ```yaml + apiVersion: v1 + kind: Pod + metadata: + name: app1 + namespace: sample + spec: + containers: + - image: k8s.gcr.io/test-webserver + name: test-webserver + volumeMounts: + - name: pvc1-vm + mountPath: /volume-1 + - name: pvc2-vm + mountPath: /volume-2 + volumes: + - name: pvc1-vm + persistentVolumeClaim: + claimName: pvc1 + - name: pvc2-vm + claimName: pvc2 + ``` + to exclude Restic backup of volume `pvc1-vm`, you would run: + + ```bash + kubectl -n sample annotate pod/app1 backup.velero.io/backup-volumes-excludes=pvc1-vm + ``` + +2. Take a Velero backup: + + ```bash + velero backup create BACKUP_NAME --default-volumes-to-restic OTHER_OPTIONS + ``` + + The above steps uses the opt-out approach on a per backup basis. + + Alternatively, this behavior may be enabled on all velero backups running the `velero install` command with the `--default-volumes-to-restic` flag. Refer [install overview][11] for details. + +3. When the backup completes, view information about the backups: + + ```bash + velero backup describe YOUR_BACKUP_NAME + ``` + ```bash + kubectl -n velero get podvolumebackups -l velero.io/backup-name=YOUR_BACKUP_NAME -o yaml + ``` + +### Using opt-in pod volume backup + +Velero, by default, uses this approach to discover pod volumes that need to be backed up using Restic, where every pod containing a volume to be backed up using Restic must be annotated with the volume's name. + +Instructions to back up using this approach are as follows: + +1. Run the following for each pod that contains a volume to back up: + + ```bash + kubectl -n YOUR_POD_NAMESPACE annotate pod/YOUR_POD_NAME backup.velero.io/backup-volumes=YOUR_VOLUME_NAME_1,YOUR_VOLUME_NAME_2,... + ``` + + where the volume names are the names of the volumes in the pod spec. + + For example, for the following pod: + + ```yaml + apiVersion: v1 + kind: Pod + metadata: + name: sample + namespace: foo + spec: + containers: + - image: k8s.gcr.io/test-webserver + name: test-webserver + volumeMounts: + - name: pvc-volume + mountPath: /volume-1 + - name: emptydir-volume + mountPath: /volume-2 + volumes: + - name: pvc-volume + persistentVolumeClaim: + claimName: test-volume-claim + - name: emptydir-volume + emptyDir: {} + ``` + + You'd run: + + ```bash + kubectl -n foo annotate pod/sample backup.velero.io/backup-volumes=pvc-volume,emptydir-volume + ``` + + This annotation can also be provided in a pod template spec if you use a controller to manage your pods. + +1. Take a Velero backup: + + ```bash + velero backup create NAME OPTIONS... + ``` + +1. When the backup completes, view information about the backups: + + ```bash + velero backup describe YOUR_BACKUP_NAME + ``` + ```bash + kubectl -n velero get podvolumebackups -l velero.io/backup-name=YOUR_BACKUP_NAME -o yaml + ``` + +## To restore + +Regardless of how volumes are discovered for backup using Restic, the process of restoring remains the same. + +1. Restore from your Velero backup: + + ```bash + velero restore create --from-backup BACKUP_NAME OPTIONS... + ``` + +1. When the restore completes, view information about your pod volume restores: + + ```bash + velero restore describe YOUR_RESTORE_NAME + ``` + ```bash + kubectl -n velero get podvolumerestores -l velero.io/restore-name=YOUR_RESTORE_NAME -o yaml + ``` + +## Limitations + +- `hostPath` volumes are not supported. [Local persistent volumes][4] are supported. +- Those of you familiar with [restic][1] may know that it encrypts all of its data. Velero uses a static, +common encryption key for all Restic repositories it creates. **This means that anyone who has access to your +bucket can decrypt your Restic backup data**. Make sure that you limit access to the Restic bucket +appropriately. +- An incremental backup chain will be maintained across pod reschedules for PVCs. However, for pod volumes that are *not* +PVCs, such as `emptyDir` volumes, when a pod is deleted/recreated (for example, by a ReplicaSet/Deployment), the next backup of those +volumes will be full rather than incremental, because the pod volume's lifecycle is assumed to be defined by its pod. +- Restic scans each file in a single thread. This means that large files (such as ones storing a database) will take a long time to scan for data deduplication, even if the actual +difference is small. +- If you plan to use Velero's Restic integration to backup 100GB of data or more, you may need to [customize the resource limits](/docs/main/customize-installation/#customize-resource-requests-and-limits) to make sure backups complete successfully. +- Velero's Restic integration backs up data from volumes by accessing the node's filesystem, on which the pod is running. For this reason, Velero's Restic integration can only backup volumes that are mounted by a pod and not directly from the PVC. For orphan PVC/PV pairs (without running pods), some Velero users overcame this limitation running a staging pod (i.e. a busybox or alpine container with an infinite sleep) to mount these PVC/PV pairs prior taking a Velero backup. + +## Customize Restore Helper Container + +Velero uses a helper init container when performing a Restic restore. By default, the image for this container is `velero/velero-restic-restore-helper:`, +where `VERSION` matches the version/tag of the main Velero image. You can customize the image that is used for this helper by creating a ConfigMap in the Velero namespace with +the alternate image. + +In addition, you can customize the resource requirements for the init container, should you need. + +The ConfigMap must look like the following: + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + # any name can be used; Velero uses the labels (below) + # to identify it rather than the name + name: restic-restore-action-config + # must be in the velero namespace + namespace: velero + # the below labels should be used verbatim in your + # ConfigMap. + labels: + # this value-less label identifies the ConfigMap as + # config for a plugin (i.e. the built-in restic restore + # item action plugin) + velero.io/plugin-config: "" + # this label identifies the name and kind of plugin + # that this ConfigMap is for. + velero.io/restic: RestoreItemAction +data: + # The value for "image" can either include a tag or not; + # if the tag is *not* included, the tag from the main Velero + # image will automatically be used. + image: myregistry.io/my-custom-helper-image[:OPTIONAL_TAG] + + # "cpuRequest" sets the request.cpu value on the restic init containers during restore. + # If not set, it will default to "100m". A value of "0" is treated as unbounded. + cpuRequest: 200m + + # "memRequest" sets the request.memory value on the restic init containers during restore. + # If not set, it will default to "128Mi". A value of "0" is treated as unbounded. + memRequest: 128Mi + + # "cpuLimit" sets the request.cpu value on the restic init containers during restore. + # If not set, it will default to "100m". A value of "0" is treated as unbounded. + cpuLimit: 200m + + # "memLimit" sets the request.memory value on the restic init containers during restore. + # If not set, it will default to "128Mi". A value of "0" is treated as unbounded. + memLimit: 128Mi + + # "secCtxRunAsUser sets the securityContext.runAsUser value on the restic init containers during restore." + secCtxRunAsUser: 1001 + + # "secCtxRunAsGroup sets the securityContext.runAsGroup value on the restic init containers during restore." + secCtxRunAsGroup: 999 +``` + +## Troubleshooting + +Run the following checks: + +Are your Velero server and daemonset pods running? + +```bash +kubectl get pods -n velero +``` + +Does your Restic repository exist, and is it ready? + +```bash +velero restic repo get + +velero restic repo get REPO_NAME -o yaml +``` + +Are there any errors in your Velero backup/restore? + +```bash +velero backup describe BACKUP_NAME +velero backup logs BACKUP_NAME + +velero restore describe RESTORE_NAME +velero restore logs RESTORE_NAME +``` + +What is the status of your pod volume backups/restores? + +```bash +kubectl -n velero get podvolumebackups -l velero.io/backup-name=BACKUP_NAME -o yaml + +kubectl -n velero get podvolumerestores -l velero.io/restore-name=RESTORE_NAME -o yaml +``` + +Is there any useful information in the Velero server or daemon pod logs? + +```bash +kubectl -n velero logs deploy/velero +kubectl -n velero logs DAEMON_POD_NAME +``` + +**NOTE**: You can increase the verbosity of the pod logs by adding `--log-level=debug` as an argument +to the container command in the deployment/daemonset pod template spec. + +## How backup and restore work with Restic + +Velero has three custom resource definitions and associated controllers: + +- `ResticRepository` - represents/manages the lifecycle of Velero's [restic repositories][5]. Velero creates +a Restic repository per namespace when the first Restic backup for a namespace is requested. The controller +for this custom resource executes Restic repository lifecycle commands -- `restic init`, `restic check`, +and `restic prune`. + + You can see information about your Velero's Restic repositories by running `velero restic repo get`. + +- `PodVolumeBackup` - represents a Restic backup of a volume in a pod. The main Velero backup process creates +one or more of these when it finds an annotated pod. Each node in the cluster runs a controller for this +resource (in a daemonset) that handles the `PodVolumeBackups` for pods on that node. The controller executes +`restic backup` commands to backup pod volume data. + +- `PodVolumeRestore` - represents a Restic restore of a pod volume. The main Velero restore process creates one +or more of these when it encounters a pod that has associated Restic backups. Each node in the cluster runs a +controller for this resource (in the same daemonset as above) that handles the `PodVolumeRestores` for pods +on that node. The controller executes `restic restore` commands to restore pod volume data. + +### Backup + +1. Based on configuration, the main Velero backup process uses the opt-in or opt-out approach to check each pod that it's backing up for the volumes to be backed up using Restic. +1. When found, Velero first ensures a Restic repository exists for the pod's namespace, by: + - checking if a `ResticRepository` custom resource already exists + - if not, creating a new one, and waiting for the `ResticRepository` controller to init/check it +1. Velero then creates a `PodVolumeBackup` custom resource per volume listed in the pod annotation +1. The main Velero process now waits for the `PodVolumeBackup` resources to complete or fail +1. Meanwhile, each `PodVolumeBackup` is handled by the controller on the appropriate node, which: + - has a hostPath volume mount of `/var/lib/kubelet/pods` to access the pod volume data + - finds the pod volume's subdirectory within the above volume + - runs `restic backup` + - updates the status of the custom resource to `Completed` or `Failed` +1. As each `PodVolumeBackup` finishes, the main Velero process adds it to the Velero backup in a file named `-podvolumebackups.json.gz`. This file gets uploaded to object storage alongside the backup tarball. It will be used for restores, as seen in the next section. + +### Restore + +1. The main Velero restore process checks each existing `PodVolumeBackup` custom resource in the cluster to backup from. +1. For each `PodVolumeBackup` found, Velero first ensures a Restic repository exists for the pod's namespace, by: + - checking if a `ResticRepository` custom resource already exists + - if not, creating a new one, and waiting for the `ResticRepository` controller to init/check it (note that + in this case, the actual repository should already exist in object storage, so the Velero controller will simply + check it for integrity) +1. Velero adds an init container to the pod, whose job is to wait for all Restic restores for the pod to complete (more +on this shortly) +1. Velero creates the pod, with the added init container, by submitting it to the Kubernetes API. Then, the Kubernetes scheduler schedules this pod to a worker node, and the pod must be in a running state. If the pod fails to start for some reason (i.e. lack of cluster resources), the Restic restore will not be done. +1. Velero creates a `PodVolumeRestore` custom resource for each volume to be restored in the pod +1. The main Velero process now waits for each `PodVolumeRestore` resource to complete or fail +1. Meanwhile, each `PodVolumeRestore` is handled by the controller on the appropriate node, which: + - has a hostPath volume mount of `/var/lib/kubelet/pods` to access the pod volume data + - waits for the pod to be running the init container + - finds the pod volume's subdirectory within the above volume + - runs `restic restore` + - on success, writes a file into the pod volume, in a `.velero` subdirectory, whose name is the UID of the Velero restore + that this pod volume restore is for + - updates the status of the custom resource to `Completed` or `Failed` +1. The init container that was added to the pod is running a process that waits until it finds a file +within each restored volume, under `.velero`, whose name is the UID of the Velero restore being run +1. Once all such files are found, the init container's process terminates successfully and the pod moves +on to running other init containers/the main containers. + +## 3rd party controllers + +### Monitor backup annotation + +Velero does not provide a mechanism to detect persistent volume claims that are missing the Restic backup annotation. + +To solve this, a controller was written by Thomann Bits&Beats: [velero-pvc-watcher][7] + +[1]: https://github.com/restic/restic +[2]: customize-installation.md#enable-restic-integration +[3]: https://github.com/vmware-tanzu/velero/releases/ +[4]: https://kubernetes.io/docs/concepts/storage/volumes/#local +[5]: http://restic.readthedocs.io/en/latest/100_references.html#terminology +[6]: https://kubernetes.io/docs/concepts/storage/volumes/#mount-propagation +[7]: https://github.com/bitsbeats/velero-pvc-watcher +[8]: https://docs.microsoft.com/en-us/azure/aks/azure-files-dynamic-pv +[9]: https://github.com/restic/restic/issues/1800 +[11]: customize-installation.md#default-pod-volume-backup-to-restic diff --git a/site/content/docs/v1.8/restore-hooks.md b/site/content/docs/v1.8/restore-hooks.md new file mode 100644 index 000000000..0ec36c5d7 --- /dev/null +++ b/site/content/docs/v1.8/restore-hooks.md @@ -0,0 +1,261 @@ +--- +title: "Restore Hooks" +layout: docs +--- + +Velero supports Restore Hooks, custom actions that can be executed during or after the restore process. There are two kinds of Restore Hooks: + +1. InitContainer Restore Hooks: These will add init containers into restored pods to perform any necessary setup before the application containers of the restored pod can start. +1. Exec Restore Hooks: These can be used to execute custom commands or scripts in containers of a restored Kubernetes pod. + +## InitContainer Restore Hooks + +Use an `InitContainer` hook to add init containers into a pod before it's restored. You can use these init containers to run any setup needed for the pod to resume running from its backed-up state. +The InitContainer added by the restore hook will be the first init container in the `podSpec` of the restored pod. +In the case where the pod had volumes backed up using restic, then, the restore hook InitContainer will be added after the `restic-wait` InitContainer. + +NOTE: This ordering can be altered by any mutating webhooks that may be installed in the cluster. + +There are two ways to specify `InitContainer` restore hooks: +1. Specifying restore hooks in annotations +1. Specifying restore hooks in the restore spec + +### Specifying Restore Hooks As Pod Annotations + +Below are the annotations that can be added to a pod to specify restore hooks: +* `init.hook.restore.velero.io/container-image` + * The container image for the init container to be added. +* `init.hook.restore.velero.io/container-name` + * The name for the init container that is being added. +* `init.hook.restore.velero.io/command` + * This is the `ENTRYPOINT` for the init container being added. This command is not executed within a shell and the container image's `ENTRYPOINT` is used if this is not provided. + +#### Example + +Use the below commands to add annotations to the pods before taking a backup. + +```bash +$ kubectl annotate pod -n \ + init.hook.restore.velero.io/container-name=restore-hook \ + init.hook.restore.velero.io/container-image=alpine:latest \ + init.hook.restore.velero.io/command='["/bin/ash", "-c", "date"]' +``` + +With the annotation above, Velero will add the following init container to the pod when it's restored. + +```json +{ + "command": [ + "/bin/ash", + "-c", + "date" + ], + "image": "alpine:latest", + "imagePullPolicy": "Always", + "name": "restore-hook" + ... +} +``` + +### Specifying Restore Hooks In Restore Spec + +Init container restore hooks can also be specified using the `RestoreSpec`. +Please refer to the documentation on the [Restore API Type][1] for how to specify hooks in the Restore spec. + +#### Example + +Below is an example of specifying restore hooks in `RestoreSpec` + +```yaml +apiVersion: velero.io/v1 +kind: Restore +metadata: + name: r2 + namespace: velero +spec: + backupName: b2 + excludedResources: + ... + includedNamespaces: + - '*' + hooks: + resources: + - name: restore-hook-1 + includedNamespaces: + - app + postHooks: + - init: + initContainers: + - name: restore-hook-init1 + image: alpine:latest + volumeMounts: + - mountPath: /restores/pvc1-vm + name: pvc1-vm + command: + - /bin/ash + - -c + - echo -n "FOOBARBAZ" >> /restores/pvc1-vm/foobarbaz + - name: restore-hook-init2 + image: alpine:latest + volumeMounts: + - mountPath: /restores/pvc2-vm + name: pvc2-vm + command: + - /bin/ash + - -c + - echo -n "DEADFEED" >> /restores/pvc2-vm/deadfeed +``` + +The `hooks` in the above `RestoreSpec`, when restored, will add two init containers to every pod in the `app` namespace + +```json +{ + "command": [ + "/bin/ash", + "-c", + "echo -n \"FOOBARBAZ\" >> /restores/pvc1-vm/foobarbaz" + ], + "image": "alpine:latest", + "imagePullPolicy": "Always", + "name": "restore-hook-init1", + "resources": {}, + "terminationMessagePath": "/dev/termination-log", + "terminationMessagePolicy": "File", + "volumeMounts": [ + { + "mountPath": "/restores/pvc1-vm", + "name": "pvc1-vm" + } + ] + ... +} +``` + +and + +```json +{ + "command": [ + "/bin/ash", + "-c", + "echo -n \"DEADFEED\" >> /restores/pvc2-vm/deadfeed" + ], + "image": "alpine:latest", + "imagePullPolicy": "Always", + "name": "restore-hook-init2", + "resources": {}, + "terminationMessagePath": "/dev/termination-log", + "terminationMessagePolicy": "File", + "volumeMounts": [ + { + "mountPath": "/restores/pvc2-vm", + "name": "pvc2-vm" + } + ] + ... +} +``` + +## Exec Restore Hooks + +Use an Exec Restore hook to execute commands in a restored pod's containers after they start. + +There are two ways to specify `Exec` restore hooks: +1. Specifying exec restore hooks in annotations +1. Specifying exec restore hooks in the restore spec + +If a pod has the annotation `post.hook.restore.velero.io/command` then that is the only hook that will be executed in the pod. +No hooks from the restore spec will be executed in that pod. + +### Specifying Exec Restore Hooks As Pod Annotations + +Below are the annotations that can be added to a pod to specify exec restore hooks: +* `post.hook.restore.velero.io/container` + * The container name where the hook will be executed. Defaults to the first container. Optional. +* `post.hook.restore.velero.io/command` + * The command that will be executed in the container. Required. +* `post.hook.restore.velero.io/on-error` + * How to handle execution failures. Valid values are `Fail` and `Continue`. Defaults to `Continue`. With `Continue` mode, execution failures are logged only. With `Fail` mode, no more restore hooks will be executed in any container in any pod and the status of the Restore will be `PartiallyFailed`. Optional. +* `post.hook.restore.velero.io/exec-timeout` + * How long to wait once execution begins. Defaults to 30 seconds. Optional. +* `post.hook.restore.velero.io/wait-timeout` + * How long to wait for a container to become ready. This should be long enough for the container to start plus any preceding hooks in the same container to complete. The wait timeout begins when the container is restored and may require time for the image to pull and volumes to mount. If not set the restore will wait indefinitely. Optional. + +#### Example + +Use the below commands to add annotations to the pods before taking a backup. + +```bash +$ kubectl annotate pod -n \ + post.hook.restore.velero.io/container=postgres \ + post.hook.restore.velero.io/command='["/bin/bash", "-c", "psql < /backup/backup.sql"]' \ + post.hook.restore.velero.io/wait-timeout=5m \ + post.hook.restore.velero.io/exec-timeout=45s \ + post.hook.restore.velero.io/on-error=Continue +``` + +### Specifying Exec Restore Hooks in Restore Spec + +Exec restore hooks can also be specified using the `RestoreSpec`. +Please refer to the documentation on the [Restore API Type][1] for how to specify hooks in the Restore spec. + +#### Multiple Exec Restore Hooks Example + +Below is an example of specifying restore hooks in a `RestoreSpec`. +When using the restore spec it is possible to specify multiple hooks for a single pod, as this example demonstrates. + +All hooks applicable to a single container will be executed sequentially in that container once it starts. +The ordering of hooks executed in a single container follows the order of the restore spec. +In this example, the `pg_isready` hook is guaranteed to run before the `psql` hook because they both apply to the same container and the `pg_isready` hook is defined first. + +If a pod has multiple containers with applicable hooks, all hooks for a single container will be executed before executing hooks in another container. +In this example, if the postgres container starts before the sidecar container, both postgres hooks will run before the hook in the sidecar. +This means the sidecar container may be running for several minutes before its hook is executed. + +Velero guarantees that no two hooks for a single pod are executed in parallel, but hooks executing in different pods may run in parallel. + + +```yaml +apiVersion: velero.io/v1 +kind: Restore +metadata: + name: r2 + namespace: velero +spec: + backupName: b2 + excludedResources: + ... + includedNamespaces: + - '*' + hooks: + resources: + - name: restore-hook-1 + includedNamespaces: + - app + postHooks: + - exec: + execTimeout: 1m + waitTimeout: 5m + onError: Fail + container: postgres + command: + - /bin/bash + - '-c' + - 'while ! pg_isready; do sleep 1; done' + - exec: + container: postgres + waitTimeout: 6m + execTimeout: 1m + command: + - /bin/bash + - '-c' + - 'psql < /backup/backup.sql' + - exec: + container: sidecar + command: + - /bin/bash + - '-c' + - 'date > /start' +``` + +[1]: api-types/restore.md diff --git a/site/content/docs/v1.8/restore-reference.md b/site/content/docs/v1.8/restore-reference.md new file mode 100644 index 000000000..bb14977bc --- /dev/null +++ b/site/content/docs/v1.8/restore-reference.md @@ -0,0 +1,144 @@ +--- +title: "Restore Reference" +layout: docs +--- + +## Restoring Into a Different Namespace + +Velero can restore resources into a different namespace than the one they were backed up from. To do this, use the `--namespace-mappings` flag: + +```bash +velero restore create RESTORE_NAME \ + --from-backup BACKUP_NAME \ + --namespace-mappings old-ns-1:new-ns-1,old-ns-2:new-ns-2 +``` +## What happens when user removes restore objects +A **restore** object represents the restore operation. There are two types of deletion for restore objects: +1. Deleting with **`velero restore delete`**. +This command will delete the custom resource representing it, along with its individual log and results files. But, it will not delete any objects that were created by it from your cluster. +2. Deleting with **`kubectl -n velero delete restore`**. +This command will delete the custom resource representing the restore, but will not delete log/results files from object storage, or any objects that were created during the restore in your cluster. + +## Restore command-line options +To see all commands for restores, run : `velero restore --help` +To see all options associated with a specific command, provide the --help flag to that command. For example, **`velero restore create --help`** shows all options associated with the **create** command. + +To list all options of restore, use **`velero restore --help`** + +```Usage: + velero restore [command] + +Available Commands: + create Create a restore + delete Delete restores + describe Describe restores + get Get restores + logs Get restore logs +``` + +## What happens to NodePorts when restoring Services + +**Auto assigned** NodePorts **deleted** by default and Services get new **auto assigned** nodePorts after restore. + +**Explicitly specified** NodePorts auto detected using **`last-applied-config`** annotation and **preserved** after restore. NodePorts can be explicitly specified as .spec.ports[*].nodePort field on Service definition. + +#### Always Preserve NodePorts + +It is not always possible to set nodePorts explicitly on some big clusters because of operation complexity. Official Kubernetes documents states that preventing port collisions is responsibility of the user when explicitly specifying nodePorts: + +``` +If you want a specific port number, you can specify a value in the `nodePort` field. The control plane will either allocate you that port or report that the API transaction failed. This means that you need to take care of possible port collisions yourself. You also have to use a valid port number, one that's inside the range configured for NodePort use. + +https://kubernetes.io/docs/concepts/services-networking/service/#nodeport +``` + +The clusters which are not explicitly specifying nodePorts still may need to restore original NodePorts in case of disaster. Auto assigned nodePorts most probably defined on Load Balancers which located front side of cluster. Changing all these nodePorts on Load Balancers is another operation complexity after disaster if nodePorts are changed. + +Velero has a flag to let user deciding the preservation of nodePorts. **`velero restore create`** sub command has **`--preserve-nodeports`** flag to **preserve** Service nodePorts **always** regardless of nodePorts **explicitly specified** or **not**. This flag used for preserving the original nodePorts from backup and can be used as **`--preserve-nodeports`** or **`--preserve-nodeports=true`** + +If this flag given and/or set to true, Velero does not remove the nodePorts when restoring Service and tries to use the nodePorts which written on backup. + +Trying to preserve nodePorts may cause **port conflicts** when restoring on situations below: + +- If the nodePort from the backup already allocated on the target cluster then Velero prints error log as shown below and continue to restore operation. + + ``` + time="2020-11-23T12:58:31+03:00" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201123125825 + + time="2020-11-23T12:58:31+03:00" level=info msg="Restoring Services with original NodePort(s)" cmd=_output/bin/linux/amd64/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201123125825 + + time="2020-11-23T12:58:31+03:00" level=info msg="Attempting to restore Service: hello-service" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201123125825 + + time="2020-11-23T12:58:31+03:00" level=error msg="error restoring hello-service: Service \"hello-service\" is invalid: spec.ports[0].nodePort: Invalid value: 31536: provided port is already allocated" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201123125825 + ``` + + + +- If the nodePort from the backup is not in the nodePort range of target cluster then Velero prints error log as below and continue to restore operation. Kubernetes default nodePort range is 30000-32767 but on the example cluster nodePort range is 20000-22767 and tried to restore Service with nodePort 31536 + + ``` + time="2020-11-23T13:09:17+03:00" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201123130915 + + time="2020-11-23T13:09:17+03:00" level=info msg="Restoring Services with original NodePort(s)" cmd=_output/bin/linux/amd64/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201123130915 + + time="2020-11-23T13:09:17+03:00" level=info msg="Attempting to restore Service: hello-service" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201123130915 + + time="2020-11-23T13:09:17+03:00" level=error msg="error restoring hello-service: Service \"hello-service\" is invalid: spec.ports[0].nodePort: Invalid value: 31536: provided port is not in the valid range. The range of valid ports is 20000-22767" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201123130915 + ``` + +## Changing PV/PVC Storage Classes + +Velero can change the storage class of persistent volumes and persistent volume claims during restores. To configure a storage class mapping, create a config map in the Velero namespace like the following: + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + # any name can be used; Velero uses the labels (below) + # to identify it rather than the name + name: change-storage-class-config + # must be in the velero namespace + namespace: velero + # the below labels should be used verbatim in your + # ConfigMap. + labels: + # this value-less label identifies the ConfigMap as + # config for a plugin (i.e. the built-in restore item action plugin) + velero.io/plugin-config: "" + # this label identifies the name and kind of plugin + # that this ConfigMap is for. + velero.io/change-storage-class: RestoreItemAction +data: + # add 1+ key-value pairs here, where the key is the old + # storage class name and the value is the new storage + # class name. + : +``` + +## Changing PVC selected-node + +Velero can update the selected-node annotation of persistent volume claim during restores, if selected-node doesn't exist in the cluster then it will remove the selected-node annotation from PersistentVolumeClaim. To configure a node mapping, create a config map in the Velero namespace like the following: + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + # any name can be used; Velero uses the labels (below) + # to identify it rather than the name + name: change-pvc-node-selector-config + # must be in the velero namespace + namespace: velero + # the below labels should be used verbatim in your + # ConfigMap. + labels: + # this value-less label identifies the ConfigMap as + # config for a plugin (i.e. the built-in restore item action plugin) + velero.io/plugin-config: "" + # this label identifies the name and kind of plugin + # that this ConfigMap is for. + velero.io/change-pvc-node-selector: RestoreItemAction +data: + # add 1+ key-value pairs here, where the key is the old + # node name and the value is the new node name. + : +``` diff --git a/site/content/docs/v1.8/run-locally.md b/site/content/docs/v1.8/run-locally.md new file mode 100644 index 000000000..897ee1893 --- /dev/null +++ b/site/content/docs/v1.8/run-locally.md @@ -0,0 +1,53 @@ +--- +title: "Run Velero locally in development" +layout: docs +--- + +Running the Velero server locally can speed up iterative development. This eliminates the need to rebuild the Velero server +image and redeploy it to the cluster with each change. + +## Run Velero locally with a remote cluster + +Velero runs against the Kubernetes API server as the endpoint (as per the `kubeconfig` configuration), so both the Velero server and client use the same `client-go` to communicate with Kubernetes. This means the Velero server can be run locally just as functionally as if it was running in the remote cluster. + +### Prerequisites + +When running Velero, you will need to ensure that you set up all of the following: + +* Appropriate RBAC permissions in the cluster + * Read access for all data from the source cluster and namespaces + * Write access to the target cluster and namespaces +* Cloud provider credentials + * Read/write access to volumes + * Read/write access to object storage for backup data +* A [BackupStorageLocation][20] object definition for the Velero server +* (Optional) A [VolumeSnapshotLocation][21] object definition for the Velero server, to take PV snapshots + +### 1. Install Velero + +See documentation on how to install Velero in some specific providers: [Install overview][22] + +### 2. Scale deployment down to zero + +After you use the `velero install` command to install Velero into your cluster, you scale the Velero deployment down to 0 so it is not simultaneously being run on the remote cluster and potentially causing things to get out of sync: + +`kubectl scale --replicas=0 deployment velero -n velero` + +#### 3. Start the Velero server locally + +* To run the server locally, use the full path according to the binary you need. Example, if you are on a Mac, and using `AWS` as a provider, this is how to run the binary you built from source using the full path: `AWS_SHARED_CREDENTIALS_FILE= ./_output/bin/darwin/amd64/velero`. Alternatively, you may add the `velero` binary to your `PATH`. + +* Start the server: `velero server [CLI flags]`. The following CLI flags may be useful to customize, but see `velero server --help` for full details: + * `--log-level`: set the Velero server's log level (default `info`, use `debug` for the most logging) + * `--kubeconfig`: set the path to the kubeconfig file the Velero server uses to talk to the Kubernetes apiserver (default `$KUBECONFIG`) + * `--namespace`: the set namespace where the Velero server should look for backups, schedules, restores (default `velero`) + * `--plugin-dir`: set the directory where the Velero server looks for plugins (default `/plugins`) + * The `--plugin-dir` flag requires the plugin binary to be present locally, and should be set to the directory containing this built binary. + * `--metrics-address`: set the bind address and port where Prometheus metrics are exposed (default `:8085`) + +[15]: https://docs.aws.amazon.com/cli/latest/topic/config-vars.html#the-shared-credentials-file +[16]: https://cloud.google.com/docs/authentication/getting-started#setting_the_environment_variable +[18]: https://eksctl.io/ +[20]: api-types/backupstoragelocation.md +[21]: api-types/volumesnapshotlocation.md +[22]: basic-install.md diff --git a/site/content/docs/v1.8/self-signed-certificates.md b/site/content/docs/v1.8/self-signed-certificates.md new file mode 100644 index 000000000..0bb55be8c --- /dev/null +++ b/site/content/docs/v1.8/self-signed-certificates.md @@ -0,0 +1,48 @@ +--- +title: "Use Velero with a storage provider secured by a self-signed certificate" +layout: docs +--- + +If you are using an S3-Compatible storage provider that is secured with a self-signed certificate, connections to the object store may fail with a `certificate signed by unknown authority` message. +To proceed, provide a certificate bundle when adding the storage provider. + +## Trusting a self-signed certificate during installation + +When using the `velero install` command, you can use the `--cacert` flag to provide a path +to a PEM-encoded certificate bundle to trust. + +```bash +velero install \ + --plugins + --provider \ + --bucket \ + --secret-file \ + --cacert +``` + +Velero will then automatically use the provided CA bundle to verify TLS connections to +that storage provider when backing up and restoring. + +## Trusting a self-signed certificate with the Velero client + +To use the describe, download, or logs commands to access a backup or restore contained +in storage secured by a self-signed certificate as in the above example, you must use +the `--cacert` flag to provide a path to the certificate to be trusted. + +```bash +velero backup describe my-backup --cacert +``` + +## Error with client certificate with custom S3 server + +In case you are using a custom S3-compatible server, you may encounter that the backup fails with an error similar to one below. + +``` +rpc error: code = Unknown desc = RequestError: send request failed caused by: +Get https://minio.com:3000/k8s-backup-bucket?delimiter=%2F&list-type=2&prefix=: remote error: tls: alert(116) +``` + +Error 116 represents certificate required as seen here in [error codes](https://datatracker.ietf.org/doc/html/rfc8446#appendix-B.2). +Velero as a client does not include its certificate while performing SSL handshake with the server. +From [TLS 1.3 spec](https://tools.ietf.org/html/rfc8446), verifying client certificate is optional on the server. +You will need to change this setting on the server to make it work. diff --git a/site/content/docs/v1.8/start-contributing.md b/site/content/docs/v1.8/start-contributing.md new file mode 100644 index 000000000..c7a72b1f5 --- /dev/null +++ b/site/content/docs/v1.8/start-contributing.md @@ -0,0 +1,34 @@ +--- +title: "Start contributing" +layout: docs +--- + +## Before you start + +* Please familiarize yourself with the [Code of Conduct][1] before contributing. +* Also, see [CONTRIBUTING.md][2] for instructions on the developer certificate of origin that we require. + +## Creating a design doc + +Having a high level design document with the proposed change and the impacts helps the maintainers evaluate if a major change should be incorporated. + +To make a design pull request, you can copy the template found in the `design/_template.md` file into a new Markdown file. + +## Finding your way around + +You may join the Velero community and contribute in many different ways, including helping us design or test new features. For any significant feature we consider adding, we start with a design document. You may find a list of in progress new designs here: https://github.com/vmware-tanzu/velero/pulls?q=is%3Aopen+is%3Apr+label%3ADesign. Feel free to review and help us with your input. + +You can also vote on issues using :+1: and :-1:, as explained in our [Feature enhancement request][3] and [Bug issue][4] templates. This will help us quantify importance and prioritize issues. + +For information on how to connect with our maintainers and community, join our online meetings, or find good first issues, start on our [Velero community](https://velero.io/community/) page. + +Please browse our list of resources, including a playlist of past online community meetings, blog posts, and other resources to help you get familiar with our project: [Velero resources](https://velero.io/resources/). + +## Contributing + +If you are ready to jump in and test, add code, or help with documentation, please use the navigation on the left under `Contribute`. + +[1]: https://github.com/vmware-tanzu/velero/blob/v1.8.0/CODE_OF_CONDUCT.md +[2]: https://github.com/vmware-tanzu/velero/blob/v1.8.0/CONTRIBUTING.md +[3]: https://github.com/vmware-tanzu/velero/blob/v1.8.0/.github/ISSUE_TEMPLATE/feature-enhancement-request.md +[4]: https://github.com/vmware-tanzu/velero/blob/v1.8.0/.github/ISSUE_TEMPLATE/bug_report.md diff --git a/site/content/docs/v1.8/style-guide.md b/site/content/docs/v1.8/style-guide.md new file mode 100644 index 000000000..1b98e59dd --- /dev/null +++ b/site/content/docs/v1.8/style-guide.md @@ -0,0 +1,344 @@ +--- +title: "Documentation Style Guide" +layout: docs +--- + +_This style guide is adapted from the [Kubernetes style guide](https://kubernetes.io/docs/contribute/style/style-guide/)._ + +This page outlines writing style guidelines for the Velero documentation and you should use this page as a reference you write or edit content. Note that these are guidelines, not rules. Use your best judgment as you write documentation, and feel free to propose changes to these guidelines. Changes to the style guide are made by the Velero maintainers as a group. To propose a change or addition create an issue/PR, or add a suggestion to the [community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA) and attend the meeting to participate in the discussion. + +The Velero documentation uses the [kramdown](https://kramdown.gettalong.org/) Markdown renderer. + +## Content best practices +### Use present tense + +{{< table caption="Do and Don't - Use present tense" >}} +|Do|Don't| +|--- |--- | +|This `command` starts a proxy.|This command will start a proxy.| +{{< /table >}} + +Exception: Use future or past tense if it is required to convey the correct meaning. + +### Use active voice + +{{< table caption="Do and Don't - Use active voice" >}} +|Do|Don't| +|--- |--- | +|You can explore the API using a browser.|The API can be explored using a browser.| +|The YAML file specifies the replica count.|The replica count is specified in the YAML file.| +{{< /table >}} + +Exception: Use passive voice if active voice leads to an awkward sentence construction. + +### Use simple and direct language + +Use simple and direct language. Avoid using unnecessary phrases, such as saying "please." + +{{< table caption="Do and Don't - Use simple and direct language" >}} +|Do|Don't| +|--- |--- | +|To create a ReplicaSet, ...|In order to create a ReplicaSet, ...| +|See the configuration file.|Please see the configuration file.| +|View the Pods.|With this next command, we'll view the Pods.| +{{< /table >}} + +### Address the reader as "you" + +{{< table caption="Do and Don't - Addressing the reader" >}} +|Do|Don't| +|--- |--- | +|You can create a Deployment by ...|We'll create a Deployment by ...| +|In the preceding output, you can see...|In the preceding output, we can see ...| +{{< /table >}} + +### Avoid Latin phrases + +Prefer English terms over Latin abbreviations. + +{{< table caption="Do and Don't - Avoid Latin phrases" >}} +|Do|Don't| +|--- |--- | +|For example, ...|e.g., ...| +|That is, ...|i.e., ...| +{{< /table >}} + +Exception: Use "etc." for et cetera. + +## Patterns to avoid + + +### Avoid using "we" + +Using "we" in a sentence can be confusing, because the reader might not know +whether they're part of the "we" you're describing. + +{{< table caption="Do and Don't - Avoid using we" >}} +|Do|Don't| +|--- |--- | +|Version 1.4 includes ...|In version 1.4, we have added ...| +|Kubernetes provides a new feature for ...|We provide a new feature ...| +|This page teaches you how to use Pods.|In this page, we are going to learn about Pods.| +{{< /table >}} + +### Avoid jargon and idioms + +Many readers speak English as a second language. Avoid jargon and idioms to help them understand better. + +{{< table caption="Do and Don't - Avoid jargon and idioms" >}} +|Do|Don't| +|--- |--- | +|Internally, ...|Under the hood, ...| +|Create a new cluster.|Turn up a new cluster.| +{{< /table >}} + +### Avoid statements about the future or that will soon be out of date + +Avoid making promises or giving hints about the future. If you need to talk about +a beta feature, put the text under a heading that identifies it as beta +information. + +Also avoid words like “recently”, "currently" and "new." A feature that is new today might not be +considered new in a few months. + +{{< table caption="Do and Don't - Avoid statements that will soon be out of date" >}} +|Do|Don't| +|--- |--- | +|In version 1.4, ...|In the current version, ...| +|The Federation feature provides ...|The new Federation feature provides ...| +{{< /table >}} + +### Language + +This documentation uses U.S. English spelling and grammar. + +## Documentation formatting standards + +### Use camel case for API objects + +When you refer to an API object, use the same uppercase and lowercase letters +that are used in the actual object name. Typically, the names of API +objects use +[camel case](https://en.wikipedia.org/wiki/Camel_case). + +Don't split the API object name into separate words. For example, use +PodTemplateList, not Pod Template List. + +Refer to API objects without saying "object," unless omitting "object" +leads to an awkward sentence construction. + +{{< table caption="Do and Don't - Do and Don't - API objects" >}} +|Do|Don't| +|--- |--- | +|The Pod has two containers.|The pod has two containers.| +|The Deployment is responsible for ...|The Deployment object is responsible for ...| +|A PodList is a list of Pods.|A Pod List is a list of pods.| +|The two ContainerPorts ...|The two ContainerPort objects ...| +|The two ContainerStateTerminated objects ...|The two ContainerStateTerminateds ...| +{{< /table >}} + +### Use angle brackets for placeholders + +Use angle brackets for placeholders. Tell the reader what a placeholder represents. + +1. Display information about a Pod: + + kubectl describe pod -n + + If the pod is in the default namespace, you can omit the '-n' parameter. + +### Use bold for user interface elements + +{{< table caption="Do and Don't - Bold interface elements" >}} +|Do|Don't| +|--- |--- | +|Click **Fork**.|Click "Fork".| +|Select **Other**.|Select "Other".| +{{< /table >}} + +### Use italics to define or introduce new terms + +{{< table caption="Do and Don't - Use italics for new terms" >}} +|Do|Don't| +|--- |--- | +|A _cluster_ is a set of nodes ...|A "cluster" is a set of nodes ...| +|These components form the _control plane_.|These components form the **control plane**.| +{{< /table >}} + +### Use code style for filenames, directories, paths, object field names and namespaces +{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} +|Do|Don't| +|--- |--- | +|Open the `envars.yaml` file.|Open the envars.yaml file.| +|Go to the `/docs/tutorials` directory.|Go to the /docs/tutorials directory.| +|Open the `/_data/concepts.yaml` file.|Open the /\_data/concepts.yaml file.| +{{< /table >}} + + +### Use punctuation inside quotes +{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} +|Do|Don't| +|--- |--- | +|events are recorded with an associated "stage."|events are recorded with an associated "stage".| +|The copy is called a "fork."|The copy is called a "fork".| +{{< /table >}} + +Exception: When the quoted word is a user input. + +Example: +* My user ID is “IM47g”. +* Did you try the password “mycatisawesome”? + +## Inline code formatting + + +### Use code style for inline code and commands + +For inline code in an HTML document, use the `` tag. In a Markdown +document, use the backtick (`` ` ``). + +{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} +|Do|Don't| +|--- |--- | +|The `kubectl run` command creates a Deployment.|The "kubectl run" command creates a Deployment.| +|For declarative management, use `kubectl apply`.|For declarative management, use "kubectl apply".| +|Use single backticks to enclose inline code. For example, `var example = true`.|Use two asterisks (`**`) or an underscore (`_`) to enclose inline code. For example, **var example = true**.| +|Use triple backticks (\`\`\`) before and after a multi-line block of code for fenced code blocks.|Use multi-line blocks of code to create diagrams, flowcharts, or other illustrations.| +|Use meaningful variable names that have a context.|Use variable names such as 'foo','bar', and 'baz' that are not meaningful and lack context.| +|Remove trailing spaces in the code.|Add trailing spaces in the code, where these are important, because a screen reader will read out the spaces as well.| +{{< /table >}} + +### Starting a sentence with a component tool or component name + +{{< table caption="Do and Don't - Starting a sentence with a component tool or component name" >}} +|Do|Don't| +|--- |--- | +|The `kubeadm` tool bootstraps and provisions machines in a cluster.|`kubeadm` tool bootstraps and provisions machines in a cluster.| +|The kube-scheduler is the default scheduler for Kubernetes.|kube-scheduler is the default scheduler for Kubernetes.| +{{< /table >}} + +### Use normal style for string and integer field values + +For field values of type string or integer, use normal style without quotation marks. + +{{< table caption="Do and Don't - Use normal style for string and integer field values" >}} +|Do|Don't| +|--- |--- | +|Set the value of `imagePullPolicy` to `Always`.|Set the value of `imagePullPolicy` to "Always".| +|Set the value of `image` to `nginx:1.16`.|Set the value of `image` to nginx:1.16.| +|Set the value of the `replicas` field to `2`.|Set the value of the `replicas` field to 2.| +{{< /table >}} + +## Code snippet formatting + + +### Don't include the command prompt + +{{< table caption="Do and Don't - Don't include the command prompt" >}} +|Do|Don't| +|--- |--- | +|kubectl get pods|$ kubectl get pods| +{{< /table >}} + +### Separate commands from output + +Verify that the Pod is running on your chosen node: + +``` +kubectl get pods --output=wide +``` + +The output is similar to this: + +``` +NAME READY STATUS RESTARTS AGE IP NODE +nginx 1/1 Running 0 13s 10.200.0.4 worker0 +``` + +## Velero.io word list + + +A list of Velero-specific terms and words to be used consistently across the site. + +{{< table caption="Velero.io word list" >}} +|Trem|Usage| +|--- |--- | +|Kubernetes|Kubernetes should always be capitalized.| +|Docker|Docker should always be capitalized.| +|Velero|Velero should always be capitalized.| +|VMware|VMware should always be correctly capitalized.| +|On-premises|On-premises or on-prem rather than on-premise or other variations.| +|Backup|Backup rather than back up, back-up or other variations.| +|Plugin|Plugin rather than plug-in or other variations.| +|Allowlist|Use allowlist instead of whitelist.| +|Denylist|Use denylist instead of blacklist.| +{{< /table >}} + +## Markdown elements + +### Headings +People accessing this documentation may use a screen reader or other assistive technology (AT). [Screen readers](https://en.wikipedia.org/wiki/Screen_reader) are linear output devices, they output items on a page one at a time. If there is a lot of content on a page, you can use headings to give the page an internal structure. A good page structure helps all readers to easily navigate the page or filter topics of interest. + +{{< table caption="Do and Don't - Headings" >}} +|Do|Don't| +|--- |--- | +|Include a title on each page or blog post.|Include more than one title headings (#) in a page.| +|Use ordered headings to provide a meaningful high-level outline of your content.|Use headings level 4 through 6, unless it is absolutely necessary. If your content is that detailed, it may need to be broken into separate articles.| +|Use sentence case for headings. For example, **Extend kubectl with plugins**|Use title case for headings. For example, **Extend Kubectl With Plugins**| +{{< /table >}} + +### Paragraphs + +{{< table caption="Do and Don't - Paragraphs" >}} + +|Do|Don't| +|--- |--- | +|Try to keep paragraphs under 6 sentences.|Write long-winded paragraphs.| +|Use three hyphens (`---`) to create a horizontal rule for breaks in paragraph content.|Use horizontal rules for decoration.| +{{< /table >}} + +### Links + +{{< table caption="Do and Don't - Links" >}} +|Do|Don't| +|--- |--- | +|Write hyperlinks that give you context for the content they link to. For example: Certain ports are open on your machines. See [check required ports](#check-required-ports) for more details.|Use ambiguous terms such as “click here”. For example: Certain ports are open on your machines. See [here](#check-required-ports) for more details.| +|Write Markdown-style links: `[link text](URL)`. For example: `[community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA)` and the output is [community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA).|Write HTML-style links: `Visit our tutorial!`| +{{< /table >}} + + +### Lists + +Group items in a list that are related to each other and need to appear in a specific order or to indicate a correlation between multiple items. When a screen reader comes across a list—whether it is an ordered or unordered list—it will be announced to the user that there is a group of list items. The user can then use the arrow keys to move up and down between the various items in the list. +Website navigation links can also be marked up as list items; after all they are nothing but a group of related links. + + - End each item in a list with a period if one or more items in the list are complete sentences. For the sake of consistency, normally either all items or none should be complete sentences. + + - Ordered lists that are part of an incomplete introductory sentence can be in lowercase and punctuated as if each item was a part of the introductory sentence. + + - Use the number one (`1.`) for ordered lists. + + - Use (`+`), (`*`), or (`-`) for unordered lists - be consistent within the same document. + + - Leave a blank line after each list. + + - Indent nested lists with four spaces (for example, ⋅⋅⋅⋅). + + - List items may consist of multiple paragraphs. Each subsequent paragraph in a list item must be indented by either four spaces or one tab. + +### Tables + +The semantic purpose of a data table is to present tabular data. Sighted users can quickly scan the table but a screen reader goes through line by line. A table [caption](https://www.w3schools.com/tags/tag_caption.asp) is used to create a descriptive title for a data table. Assistive technologies (AT) use the HTML table caption element to identify the table contents to the user within the page structure. + +If you need to create a table, create the table in markdown and use the table [Hugo shortcode](https://gohugo.io/content-management/shortcodes/) to include a caption. + +``` +{{}} +Parameter | Description | Default +:---------|:------------|:------- +`timeout` | The timeout for requests | `30s` +`logLevel` | The log level for log output | `INFO` +{{< /table */>}} + +``` +**Note:** This shortcode does not support markdown reference-style links. Use inline-style links in tables. See more information about [markdown link styles](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#links). diff --git a/site/content/docs/v1.8/support-process.md b/site/content/docs/v1.8/support-process.md new file mode 100644 index 000000000..d07268c52 --- /dev/null +++ b/site/content/docs/v1.8/support-process.md @@ -0,0 +1,44 @@ +--- +title: "Support Process" +layout: docs +--- + +## Weekly Rotation + +The Velero maintainers use a weekly rotation to manage community support. Each week, a different maintainer is the point person for responding to incoming support issues via Slack, GitHub, and the Google group. The point person is *not* expected to be on-call 24x7. Instead, they choose one or more hour(s) per day to be available/responding to incoming issues. They will communicate to the community what that time slot will be each week. + +## Start of Week + +We will update the public Slack channel's topic to indicate that you are the point person for the week, and what hours you'll be available. + +## During the Week + +### Where we will monitor +- `#velero` public Slack channel in Kubernetes org +- [all Velero-related repos][0] in GitHub (`velero`, `velero-plugin-for-[aws|gcp|microsoft-azure|csi]`, `helm-charts`) +- [Project Velero Google Group][1] + +### GitHub issue flow + +Generally speaking, new GitHub issues will fall into one of several categories. We use the following process for each: + +1. **Feature request** + - Label the issue with `Enhancement/User` or `Enhancement/Dev` + - Leave the issue in the `New Issues` swimlane for triage by product mgmt +1. **Bug** + - Label the issue with `Bug` + - Leave the issue in the `New Issues` swimlane for triage by product mgmt +1. **User question/problem** that does not clearly fall into one of the previous categories + - When you start investigating/responding, label the issue with `Investigating` + - Add comments as you go, so both the user and future support people have as much context as possible + - Use the `Needs Info` label to indicate an issue is waiting for information from the user. Remove/re-add the label as needed. + - If you resolve the issue with the user, close it out + - If the issue ends up being a feature request or a bug, update the title and follow the appropriate process for it + - If the reporter becomes unresponsive after multiple pings, close out the issue due to inactivity and comment that the user can always reach out again as needed + +## End of Week + +We ensure all GitHub issues worked on during the week on are labeled with `Investigating` and `Needs Info` (if appropriate), and have updated comments so the next person can pick them up. + +[0]: https://github.com/vmware-tanzu?q=velero&type=&language= +[1]: https://groups.google.com/forum/#!forum/projectvelero diff --git a/site/content/docs/v1.8/supported-providers.md b/site/content/docs/v1.8/supported-providers.md new file mode 100644 index 000000000..5e75dc1e2 --- /dev/null +++ b/site/content/docs/v1.8/supported-providers.md @@ -0,0 +1,70 @@ +--- +title: "Providers" +layout: docs +--- + +Velero supports a variety of storage providers for different backup and snapshot operations. Velero has a plugin system which allows anyone to add compatibility for additional backup and volume storage platforms without modifying the Velero codebase. + +## Velero supported providers + +{{< table caption="Velero supported providers" >}} + +| Provider | Object Store | Volume Snapshotter | Plugin Provider Repo | Setup Instructions | +|-----------------------------------|---------------------|------------------------------|-----------------------------------------|-------------------------------| +| [Amazon Web Services (AWS)](https://aws.amazon.com) | AWS S3 | AWS EBS | [Velero plugin for AWS](https://github.com/vmware-tanzu/velero-plugin-for-aws) | [AWS Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-aws#setup) | +| [Google Cloud Platform (GCP)](https://cloud.google.com) | Google Cloud Storage| Google Compute Engine Disks | [Velero plugin for GCP](https://github.com/vmware-tanzu/velero-plugin-for-gcp) | [GCP Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-gcp#setup) | +| [Microsoft Azure](https://azure.com) | Azure Blob Storage | Azure Managed Disks | [Velero plugin for Microsoft Azure](https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure) | [Azure Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure#setup) | +| [VMware vSphere](https://www.vmware.com/ca/products/vsphere.html) | 🚫 | vSphere Volumes | [VMware vSphere](https://github.com/vmware-tanzu/velero-plugin-for-vsphere) | [vSphere Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-vsphere#velero-plugin-for-vsphere-installation-and-configuration-details) | +| [Container Storage Interface (CSI)](https://kubernetes.io/blog/2019/01/15/container-storage-interface-ga/)| 🚫 | CSI Volumes | [Velero plugin for CSI](https://github.com/vmware-tanzu/velero-plugin-for-csi/) | [CSI Plugin Setup](https://github.com/vmware-tanzu/velero-plugin-for-csi#kinds-of-plugins-included) | +{{< /table >}} + +Contact: [#Velero Slack](https://kubernetes.slack.com/messages/velero), [GitHub Issues](https://github.com/vmware-tanzu/velero/issues) + +## Community supported providers +{{< table caption="Community supported providers" >}} + +| Provider | Object Store | Volume Snapshotter | Plugin Documentation | Contact | +|---------------------------|------------------------------|------------------------------------|------------------------|---------------------------------| +| [AlibabaCloud](https://www.alibabacloud.com/) | Alibaba Cloud OSS | Alibaba Cloud | [AlibabaCloud](https://github.com/AliyunContainerService/velero-plugin) | [GitHub Issue](https://github.com/AliyunContainerService/velero-plugin/issues) | +| [DigitalOcean](https://www.digitalocean.com/) | DigitalOcean Object Storage | DigitalOcean Volumes Block Storage | [StackPointCloud](https://github.com/StackPointCloud/ark-plugin-digitalocean) | | +| [Hewlett Packard](https://www.hpe.com/us/en/storage.html) | 🚫 | HPE Storage | [Hewlett Packard](https://github.com/hpe-storage/velero-plugin) | [Slack](https://slack.hpedev.io/), [GitHub Issue](https://github.com/hpe-storage/velero-plugin/issues) | +| [OpenEBS](https://openebs.io/) | 🚫 | OpenEBS CStor Volume | [OpenEBS](https://github.com/openebs/velero-plugin) | [Slack](https://openebs-community.slack.com/), [GitHub Issue](https://github.com/openebs/velero-plugin/issues) | +| [OpenStack](https://www.openstack.org/) | Swift | Cinder | [OpenStack](https://github.com/Lirt/velero-plugin-for-openstack) | [GitHub Issue](https://github.com/Lirt/velero-plugin-for-openstack/issues) | +| [Portworx](https://portworx.com/) | 🚫 | Portworx Volume | [Portworx](https://docs.portworx.com/scheduler/kubernetes/ark.html) | [Slack](https://portworx.slack.com/messages/px-k8s), [GitHub Issue](https://github.com/portworx/ark-plugin/issues) | +| [Storj](https://storj.io) | Storj Object Storage | 🚫 | [Storj](https://github.com/storj-thirdparty/velero-plugin) | [GitHub Issue](https://github.com/storj-thirdparty/velero-plugin/issues) | +{{< /table >}} + +## S3-Compatible object store providers + +Velero's AWS Object Store plugin uses [Amazon's Go SDK][0] to connect to the AWS S3 API. Some third-party storage providers also support the S3 API, and users have reported the following providers work with Velero: + +_Note that these storage providers are not regularly tested by the Velero team._ + + * [IBM Cloud][1] + * [Oracle Cloud][2] + * [Minio][3] + * [DigitalOcean][4] + * [NooBaa][5] + * [Tencent Cloud][7] + * Ceph RADOS v12.2.7 + * Quobyte + * [Cloudian HyperStore][38] + +_Some storage providers, like Quobyte, may need a different [signature algorithm version][6]._ + +## Non-supported volume snapshots + +In the case you want to take volume snapshots but didn't find a plugin for your provider, Velero has support for snapshotting using restic. Please see the [restic integration][30] documentation. + +[0]: https://github.com/aws/aws-sdk-go/aws +[1]: contributions/ibm-config.md +[2]: contributions/oracle-config.md +[3]: contributions/minio.md +[4]: https://github.com/StackPointCloud/ark-plugin-digitalocean +[5]: http://www.noobaa.com/ +[6]: https://github.com/vmware-tanzu/velero-plugin-for-aws/blob/main/backupstoragelocation.md +[7]: contributions/tencent-config.md +[25]: https://github.com/hpe-storage/velero-plugin +[30]: restic.md +[36]: https://github.com/vmware-tanzu/velero-plugin-for-gcp#setup +[38]: https://www.cloudian.com/ diff --git a/site/content/docs/v1.8/tilt.md b/site/content/docs/v1.8/tilt.md new file mode 100644 index 000000000..42f68cfe4 --- /dev/null +++ b/site/content/docs/v1.8/tilt.md @@ -0,0 +1,210 @@ +--- +title: "Rapid iterative Velero development with Tilt " +layout: docs +--- + +## Overview +This document describes how to use [Tilt](https://tilt.dev) with any cluster for a simplified +workflow that offers easy deployments and rapid iterative builds. + +This setup allows for continuing deployment of the Velero server and, if specified, any provider plugin or the restic daemonset. +It does this work by: + +1. Deploying the necessary Kubernetes resources, such as the Velero CRDs and Velero deployment +1. Building a local binary for Velero and (if specified) provider plugins as a `local_resource` +1. Invoking `docker_build` to live update any binary into the container/init container and trigger a re-start + +Tilt will look for configuration files under `velero/tilt-resources`. Most of the +files in this directory are gitignored so you may configure your setup according to your needs. + +## Prerequisites +1. [Docker](https://docs.docker.com/install/) v19.03 or newer +1. A Kubernetes cluster v1.12 or greater (does not have to be Kind) +1. [Tilt](https://docs.tilt.dev/install.html) v0.12.0 or newer +1. Clone the [Velero project](https://github.com/vmware-tanzu/velero) repository + locally +1. Access to an S3 object storage +1. Clone any [provider plugin(s)](https://velero.io/plugins/) you want to make changes to and deploy (optional, must be configured to be deployed by the Velero Tilt's setup, [more info below](#provider-plugins)) + +Note: To properly configure any plugin you use, please follow the plugin's documentation. + +## Getting started + +### tl;dr +- Copy all sample files under `velero/tilt-resources/examples` into `velero/tilt-resources`. +- Configure the `velero_v1_backupstoragelocation.yaml` file, and the `cloud` file for the storage credentials/secret. + +- Run `tilt up`. + +### Create a Tilt settings file +Create a configuration file named `tilt-settings.json` and place it in your local copy of `velero/tilt-resources`. Alternatively, +you may copy and paste the sample file found in `velero/tilt-resources/examples`. + +Here is an example: + +```json +{ + "default_registry": "", + "enable_providers": [ + "aws", + "gcp", + "azure", + "csi" + ], + "providers": { + "aws": "../velero-plugin-for-aws", + "gcp": "../velero-plugin-for-gcp", + "azure": "../velero-plugin-for-microsoft-azure", + "csi": "../velero-plugin-for-csi" + }, + "allowed_contexts": [ + "development" + ], + "enable_restic": false, + "create_backup_locations": true, + "setup-minio": true, + "enable_debug": false, + "debug_continue_on_start": true +} +``` + +#### tilt-settings.json fields +**default_registry** (String, default=""): The image registry to use if you need to push images. See the [Tilt +*documentation](https://docs.tilt.dev/api.html#api.default_registry) for more details. + +**provider_repos** (Array[]String, default=[]): A list of paths to all the provider plugins you want to make changes to. Each provider must have a +`tilt-provider.json` file describing how to build the provider. + +**enable_providers** (Array[]String, default=[]): A list of the provider plugins to enable. See [provider plugins](provider-plugins) +for more details. Note: when not making changes to a plugin, it is not necessary to load them into +Tilt: an existing image and version might be specified in the Velero deployment instead, and Tilt will load that. + +**allowed_contexts** (Array, default=[]): A list of kubeconfig contexts Tilt is allowed to use. See the Tilt documentation on +*[allow_k8s_contexts](https://docs.tilt.dev/api.html#api.allow_k8s_contexts) for more details. Note: Kind is automatically allowed. + +**enable_restic** (Bool, default=false): Indicate whether to deploy the restic Daemonset. If set to `true`, Tilt will look for a `velero/tilt-resources/restic.yaml` file +containing the configuration of the Velero restic DaemonSet. + +**create_backup_locations** (Bool, default=false): Indicate whether to create one or more backup storage locations. If set to `true`, Tilt will look for a `velero/tilt-resources/velero_v1_backupstoragelocation.yaml` file +containing at least one configuration for a Velero backup storage location. + +**setup-minio** (Bool, default=false): Configure this to `true` if you want to configure backup storage locations in a Minio instance running inside your cluster. + +**enable_debug** (Bool, default=false): Configure this to `true` if you want to debug the velero process using [Delve](https://github.com/go-delve/delve). + +**debug_continue_on_start** (Bool, default=true): Configure this to `true` if you want the velero process to continue on start when in debug mode. See [Delve CLI documentation](https://github.com/go-delve/delve/blob/master/Documentation/usage/dlv.md). + +### Create Kubernetes resource files to deploy +All needed Kubernetes resource files are provided as ready to use samples in the `velero/tilt-resources/examples` directory. You only have to move them to the `velero/tilt-resources` level. + +Because the Velero Kubernetes deployment as well as the restic DaemonSet contain the configuration +for any plugin to be used, files for these resources are expected to be provided by the user so you may choose +which provider plugin to load as a init container. Currently, the sample files provided are configured with all the +plugins supported by Velero, feel free to remove any of them as needed. + +For Velero to operate fully, it also needs at least one backup +storage location. A sample file is provided that needs to be modified with the specific +configuration for your object storage. See the next sub-section for more details on this. + +### Configure a backup storage location +You will have to configure the `velero/tilt-resources/velero_v1_backupstoragelocation.yaml` with the proper values according to your storage provider. Read the [plugin documentation](https://velero.io/plugins/) +to learn what field/value pairs are required for your particular provider's backup storage location configuration. + +Below are some ways to configure a backup storage location for Velero. +#### As a storage with a service provider +Follow the provider documentation to provision the storage. We have a [list of all known object storage providers](supported-providers/) with corresponding plugins for Velero. + +#### Using MinIO as an object storage +Note: to use MinIO as an object storage, you will need to use the [`AWS` plugin](https://github.com/vmware-tanzu/velero-plugin-for-aws), and configure the storage location with the `spec.provider` set to `aws` and the `spec.config.region` set to `minio`. Example: +``` +spec: + config: + region: minio + s3ForcePathStyle: "true" + s3Url: http://minio.velero.svc:9000 + objectStorage: + bucket: velero + provider: aws +``` + +Here are two ways to use MinIO as the storage: + +1) As a MinIO instance running inside your cluster (don't do this for production!) + + In the `tilt-settings.json` file, set `"setup-minio": true`. This will configure a Kubernetes deployment containing a running +instance of MinIO inside your cluster. There are [extra steps](contributions/minio/#expose-minio-outside-your-cluster-with-a-service) +necessary to expose MinIO outside the cluster. + + To access this storage, you will need to expose MinIO outside the cluster by forwarding the MinIO port to the local machine using kubectl port-forward -n svc/minio 9000. Update the BSL configuration to use that as its "public URL" by adding `publicUrl: http://localhost:9000` to the BSL config. This is necessary to do things like download a backup file. + + Note: with this setup, when your cluster is terminated so is the storage and any backup/restore in it. + +1) As a standalone MinIO instance running locally in a Docker container + + See [these instructions](https://github.com/vmware-tanzu/velero/discussions/3381) to run MinIO locally on your computer, as a standalone as opposed to running it on a Pod. + +Please see our [locations documentation](locations/) to learn more how backup locations work. + +### Configure the provider credentials (secret) +Whatever object storage provider you use, configure the credentials for in the `velero/tilt-resources/cloud` file. Read the [plugin documentation](https://velero.io/plugins/) +to learn what field/value pairs are required for your provider's credentials. The Tilt file will invoke Kustomize to create the secret under the hard-coded key `secret.cloud-credentials.data.cloud` in the Velero namespace. + +There is a sample credentials file properly formatted for a MinIO storage credentials in `velero/tilt-resources/examples/cloud`. + +### Configure debugging with Delve +If you would like to debug the Velero process, you can enable debug mode by setting the field `enable_debug` to `true` in your `tilt-resources/tile-settings.json` file. +This will enable you to debug the process using [Delve](https://github.com/go-delve/delve). +By enabling debug mode, the Velero executable will be built in debug mode (using the flags `-gcflags="-N -l"` which disables optimizations and inlining), and the process will be started in the Velero deployment using [`dlv exec`](https://github.com/go-delve/delve/blob/master/Documentation/usage/dlv_exec.md). + +The debug server will accept connections on port 2345 and Tilt is configured to forward this port to the local machine. +Once Tilt is [running](#run-tilt) and the Velero resource is ready, you can connect to the debug server to begin debugging. +To connect to the session, you can use the Delve CLI locally by running `dlv connect 127.0.0.1:2345`. See the [Delve CLI documentation](https://github.com/go-delve/delve/tree/master/Documentation/cli) for more guidance on how to use Delve. +Delve can also be used within a number of [editors and IDEs](https://github.com/go-delve/delve/blob/master/Documentation/EditorIntegration.md). + +By default, the Velero process will continue on start when in debug mode. +This means that the process will run until a breakpoint is set. +You can disable this by setting the field `debug_continue_on_start` to `false` in your `tilt-resources/tile-settings.json` file. +When this setting is disabled, the Velero process will not continue to run until a `continue` instruction is issued through your Delve session. + +When exiting your debug session, the CLI and editor integrations will typically ask if the remote process should be stopped. +It is important to leave the remote process running and just disconnect from the debugging session. +By stopping the remote process, that will cause the Velero container to stop and the pod to restart. +If backups are in progress, these will be left in a stale state as they are not resumed when the Velero pod restarts. + +### Run Tilt! +To launch your development environment, run: + +``` bash +tilt up +``` + +This will output the address to a web browser interface where you can monitor Tilt's status and the logs for each Tilt resource. After a brief amount of time, you should have a running development environment, and you should now be able to +create backups/restores and fully operate Velero. + +Note: Running `tilt down` after exiting out of Tilt [will delete all resources](https://docs.tilt.dev/cli/tilt_down.html) specified in the Tiltfile. + +Tip: Create an alias to `velero/_tuiltbuild/local/velero` and you won't have to run `make local` to get a refreshed version of the Velero CLI, just use the alias. + +Please see the documentation for [how Velero works](how-velero-works/). + +## Provider plugins +A provider must supply a `tilt-provider.json` file describing how to build it. Here is an example: + +```json +{ + "plugin_name": "velero-plugin-for-aws", + "context": ".", + "image": "velero/velero-plugin-for-aws", + "live_reload_deps": [ + "velero-plugin-for-aws" + ], + "go_main": "./velero-plugin-for-aws" +} +``` + +## Live updates +Each provider plugin configured to be deployed by Velero's Tilt setup has a `live_reload_deps` list. This defines the files and/or directories that Tilt +should monitor for changes. When a dependency is modified, Tilt rebuilds the provider's binary **on your local +machine**, copies the binary to the init container, and triggers a restart of the Velero container. This is significantly faster +than rebuilding the container image for each change. It also helps keep the size of each development image as small as +possible (the container images do not need the entire go toolchain, source code, module dependencies, etc.). diff --git a/site/content/docs/v1.8/troubleshooting.md b/site/content/docs/v1.8/troubleshooting.md new file mode 100644 index 000000000..cdfd25305 --- /dev/null +++ b/site/content/docs/v1.8/troubleshooting.md @@ -0,0 +1,220 @@ +--- +title: "Troubleshooting" +layout: docs +--- + +These tips can help you troubleshoot known issues. If they don't help, you can [file an issue][4], or talk to us on the [#velero channel][25] on the Kubernetes Slack server. + +## Debug installation/ setup issues + +- [Debug installation/setup issues][2] + +## Debug restores + +- [Debug restores][1] + +## General troubleshooting information + +You can use the `velero bug` command to open a [Github issue][4] by launching a browser window with some prepopulated values. Values included are OS, CPU architecture, `kubectl` client and server versions (if available) and the `velero` client version. This information isn't submitted to Github until you click the `Submit new issue` button in the Github UI, so feel free to add, remove or update whatever information you like. + +You can use the `velero debug` command to generate a debug bundle, which is a tarball +that contains: +* Version information +* Logs of velero server and plugins +* Resources managed by velero server such as backup, restore, podvolumebackup, podvolumerestore, etc. +* Logs of the backup and restore, if specified in the parameters + +Please use command `velero debug --help` to see more usage details. + +### Getting velero debug logs + +You can increase the verbosity of the Velero server by editing your Velero deployment to look like this: + + +``` +kubectl edit deployment/velero -n velero +... + containers: + - name: velero + image: velero/velero:latest + command: + - /velero + args: + - server + - --log-level # Add this line + - debug # Add this line +... +``` + +## Known issue with restoring LoadBalancer Service + +Because of how Kubernetes handles Service objects of `type=LoadBalancer`, when you restore these objects you might encounter an issue with changed values for Service UIDs. Kubernetes automatically generates the name of the cloud resource based on the Service UID, which is different when restored, resulting in a different name for the cloud load balancer. If the DNS CNAME for your application points to the DNS name of your cloud load balancer, you'll need to update the CNAME pointer when you perform a Velero restore. + +Alternatively, you might be able to use the Service's `spec.loadBalancerIP` field to keep connections valid, if your cloud provider supports this value. See [the Kubernetes documentation about Services of Type LoadBalancer](https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer). + +## Miscellaneous issues + +### Velero reports `custom resource not found` errors when starting up. + +Velero's server will not start if the required Custom Resource Definitions are not found in Kubernetes. Run `velero install` again to install any missing custom resource definitions. + +### `velero backup logs` returns a `SignatureDoesNotMatch` error + +Downloading artifacts from object storage utilizes temporary, signed URLs. In the case of S3-compatible +providers, such as Ceph, there may be differences between their implementation and the official S3 +API that cause errors. + +Here are some things to verify if you receive `SignatureDoesNotMatch` errors: + + * Make sure your S3-compatible layer is using [signature version 4][5] (such as Ceph RADOS v12.2.7) + * For Ceph, try using a native Ceph account for credentials instead of external providers such as OpenStack Keystone + +## Velero (or a pod it was backing up) restarted during a backup and the backup is stuck InProgress + +Velero cannot resume backups that were interrupted. Backups stuck in the `InProgress` phase can be deleted with `kubectl delete backup -n `. +Backups in the `InProgress` phase have not uploaded any files to object storage. + +## Velero is not publishing prometheus metrics + +Steps to troubleshoot: + +- Confirm that your velero deployment has metrics publishing enabled. The [latest Velero helm charts][6] have been setup with [metrics enabled by default][7]. +- Confirm that the Velero server pod exposes the port on which the metrics server listens on. By default, this value is 8085. + +```yaml + ports: + - containerPort: 8085 + name: metrics + protocol: TCP +``` + +- Confirm that the metric server is listening for and responding to connections on this port. This can be done using [port-forwarding][9] as shown below + +```bash +$ kubectl -n port-forward 8085:8085 +Forwarding from 127.0.0.1:8085 -> 8085 +Forwarding from [::1]:8085 -> 8085 +. +. +. +``` + +Now, visiting http://localhost:8085/metrics on a browser should show the metrics that are being scraped from Velero. + +- Confirm that the Velero server pod has the necessary [annotations][8] for prometheus to scrape metrics. +- Confirm, from the Prometheus UI, that the Velero pod is one of the targets being scraped from Prometheus. + + +## Is Velero using the correct cloud credentials? + +Cloud provider credentials are given to Velero to store and retrieve backups from the object store and to perform volume snapshotting operations. + +These credentials are either passed to Velero at install time using: +1. `--secret-file` flag to the `velero install` command. OR +1. `--set-file credentials.secretContents.cloud` flag to the `helm install` command. + +Or, they are specified when creating a `BackupStorageLocation` using the `--credential` flag. + +### Troubleshooting credentials provided during install + +If using the credentials provided at install time, they are stored in the cluster as a Kubernetes secret named `cloud-credentials` in the same namespace in which Velero is installed. + +Follow the below troubleshooting steps to confirm that Velero is using the correct credentials: +1. Confirm that the `cloud-credentials` secret exists and has the correct content. + ```bash + $ kubectl -n velero get secrets cloud-credentials + NAME TYPE DATA AGE + cloud-credentials Opaque 1 11h + $ kubectl -n velero get secrets cloud-credentials -ojsonpath={.data.cloud} | base64 --decode + + ``` + +1. Confirm that velero deployment is mounting the `cloud-credentials` secret. + ```bash + $ kubectl -n velero get deploy velero -ojson | jq .spec.template.spec.containers[0].volumeMounts + [ + { + "mountPath": "/plugins", + "name": "plugins" + }, + { + "mountPath": "/scratch", + "name": "scratch" + }, + { + "mountPath": "/credentials", + "name": "cloud-credentials" + } + ] + ``` + + If [restic-integration][3] is enabled, then, confirm that the restic daemonset is also mounting the `cloud-credentials` secret. + ```bash + $ kubectl -n velero get ds restic -ojson |jq .spec.template.spec.containers[0].volumeMounts + [ + { + "mountPath": "/host_pods", + "mountPropagation": "HostToContainer", + "name": "host-pods" + }, + { + "mountPath": "/scratch", + "name": "scratch" + }, + { + "mountPath": "/credentials", + "name": "cloud-credentials" + } + ] + ``` + +1. Confirm if the correct credentials are mounted into the Velero pod. + ```bash + $ kubectl -n velero exec -ti deploy/velero -- bash + nobody@velero-69f9c874c-l8mqp:/$ cat /credentials/cloud + + ``` + +### Troubleshooting `BackupStorageLocation` credentials + +Follow the below troubleshooting steps to confirm that Velero is using the correct credentials if using credentials specific to a [`BackupStorageLocation`][10]: +1. Confirm that the object storage provider plugin being used supports multiple credentials. + + If the logs from the Velero deployment contain the error message `"config has invalid keys credentialsFile"`, the version of your object storage plugin does not yet support multiple credentials. + + The object storage plugins [maintained by the Velero team][11] support this feature, so please update your plugin to the latest version if you see the above error message. + + If you are using a plugin from a different provider, please contact them for further advice. + +1. Confirm that the secret and key referenced by the `BackupStorageLocation` exists in the Velero namespace and has the correct content: + ```bash + # Determine which secret and key the BackupStorageLocation is using + BSL_SECRET=$(kubectl get backupstoragelocations.velero.io -n velero -o yaml -o jsonpath={.spec.credential.name}) + BSL_SECRET_KEY=$(kubectl get backupstoragelocations.velero.io -n velero -o yaml -o jsonpath={.spec.credential.key}) + + # Confirm that the secret exists + kubectl -n velero get secret $BSL_SECRET + + # Print the content of the secret and ensure it is correct + kubectl -n velero get secret $BSL_SECRET -ojsonpath={.data.$BSL_SECRET_KEY} | base64 --decode + ``` + If the secret can't be found, the secret does not exist within the Velero namespace and must be created. + + If no output is produced when printing the contents of the secret, the key within the secret may not exist or may have no content. + Ensure that the key exists within the secret's data by checking the output from `kubectl -n velero describe secret $BSL_SECRET`. + If it does not exist, follow the instructions for [editing a Kubernetes secret][12] to add the base64 encoded credentials data. + + +[1]: debugging-restores.md +[2]: debugging-install.md +[3]: restic.md +[4]: https://github.com/vmware-tanzu/velero/issues +[5]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html +[6]: https://github.com/vmware-tanzu/helm-charts/blob/main/charts/velero +[7]: https://github.com/vmware-tanzu/helm-charts/blob/main/charts/velero/values.yaml#L44 +[8]: https://github.com/vmware-tanzu/helm-charts/blob/main/charts/velero/values.yaml#L49-L52 +[9]: https://kubectl.docs.kubernetes.io/pages/container_debugging/port_forward_to_pods.html +[10]: locations.md +[11]: /plugins +[12]: https://kubernetes.io/docs/concepts/configuration/secret/#editing-a-secret +[25]: https://kubernetes.slack.com/messages/velero diff --git a/site/content/docs/v1.8/uninstalling.md b/site/content/docs/v1.8/uninstalling.md new file mode 100644 index 000000000..f0b7b8d17 --- /dev/null +++ b/site/content/docs/v1.8/uninstalling.md @@ -0,0 +1,11 @@ +--- +title: "Uninstalling Velero" +layout: docs +--- + +If you would like to completely uninstall Velero from your cluster, the following commands will remove all resources created by `velero install`: + +```bash +kubectl delete namespace/velero clusterrolebinding/velero +kubectl delete crds -l component=velero +``` diff --git a/site/content/docs/v1.8/upgrade-to-1.8.md b/site/content/docs/v1.8/upgrade-to-1.8.md new file mode 100644 index 000000000..3a1e80cf5 --- /dev/null +++ b/site/content/docs/v1.8/upgrade-to-1.8.md @@ -0,0 +1,92 @@ +--- +title: "Upgrading to Velero 1.8" +layout: docs +--- + +## Prerequisites + +- Velero [v1.7.x][7] installed. + +If you're not yet running at least Velero v1.6, see the following: + +- [Upgrading to v1.1][1] +- [Upgrading to v1.2][2] +- [Upgrading to v1.3][3] +- [Upgrading to v1.4][4] +- [Upgrading to v1.5][5] +- [Upgrading to v1.6][6] +- [Upgrading to v1.7][7] + +Before upgrading, check the [Velero compatibility matrix](https://github.com/vmware-tanzu/velero#velero-compatabilty-matrix) to make sure your version of Kubernetes is supported by the new version of Velero. + +## Instructions + +1. Install the Velero v1.8 command-line interface (CLI) by following the [instructions here][0]. + + Verify that you've properly installed it by running: + + ```bash + velero version --client-only + ``` + + You should see the following output: + + ```bash + Client: + Version: v1.8.0 + Git commit: + ``` + +1. Update the Velero custom resource definitions (CRDs) to include schema changes across all CRDs that are at the core of the new features in this release: + + ```bash + velero install --crds-only --dry-run -o yaml | kubectl apply -f - + ``` + + **NOTE:** Since velero v1.8.0 only v1 CRD will be supported during installation, therefore, the v1.8.0 will only work on kubernetes version >= v1.16 + +1. Update the container image used by the Velero deployment and, optionally, the restic daemon set: + + ```bash + kubectl set image deployment/velero \ + velero=velero/velero:v1.8.0 \ + --namespace velero + + # optional, if using the restic daemon set + kubectl set image daemonset/restic \ + restic=velero/velero:v1.8.0 \ + --namespace velero + ``` + +1. Confirm that the deployment is up and running with the correct version by running: + + ```bash + velero version + ``` + + You should see the following output: + + ```bash + Client: + Version: v1.8.0 + Git commit: + + Server: + Version: v1.8.0 + ``` + +## Notes +### Default backup storage location +We have deprecated the way to indicate the default backup storage location. Previously, that was indicated according to the backup storage location name set on the velero server-side via the flag `velero server --default-backup-storage-location`. Now we configure the default backup storage location on the velero client-side. Please refer to the [About locations][9] on how to indicate which backup storage location is the default one. + +After upgrading, if there is a previously created backup storage location with the name that matches what was defined on the server side as the default, it will be automatically set as the `default`. + +[0]: basic-install.md#install-the-cli +[1]: https://velero.io/docs/v1.1.0/upgrade-to-1.1/ +[2]: https://velero.io/docs/v1.2.0/upgrade-to-1.2/ +[3]: https://velero.io/docs/v1.3.2/upgrade-to-1.3/ +[4]: https://velero.io/docs/v1.4/upgrade-to-1.4/ +[5]: https://velero.io/docs/v1.5/upgrade-to-1.5 +[6]: https://velero.io/docs/v1.6/upgrade-to-1.6 +[7]: https://velero.io/docs/v1.7/upgrade-to-1.7 +[9]: https://velero.io/docs/v1.8/locations diff --git a/site/content/docs/v1.8/velero-install.md b/site/content/docs/v1.8/velero-install.md new file mode 100644 index 000000000..8cc6d4d2e --- /dev/null +++ b/site/content/docs/v1.8/velero-install.md @@ -0,0 +1,49 @@ +--- +title: "Velero Install CLI" +layout: docs +--- + +This document serves as a guide to using the `velero install` CLI command to install `velero` server components into your kubernetes cluster. + +_NOTE_: `velero install` will, by default, use the CLI's version information to determine the version of the server components to deploy. This behavior may be overridden by using the `--image` flag. Refer to [Building Server Component Container Images][1]. + +## Usage + +This section explains some of the basic flags supported by the `velero install` CLI command. For a complete explanation of the flags, please run `velero install --help` + +```bash +velero install \ + --plugins + --provider \ + --bucket \ + --secret-file \ + --velero-pod-cpu-request \ + --velero-pod-mem-request \ + --velero-pod-cpu-limit \ + --velero-pod-mem-limit \ + [--use-restic] \ + [--default-volumes-to-restic] \ + [--restic-pod-cpu-request ] \ + [--restic-pod-mem-request ] \ + [--restic-pod-cpu-limit ] \ + [--restic-pod-mem-limit ] +``` + +The values for the resource requests and limits flags follow the same format as [Kubernetes resource requirements][3] +For plugin container images, please refer to our [supported providers][2] page. + +## Examples + +This section provides examples that serve as a starting point for more customized installations. + +```bash +velero install --provider gcp --plugins velero/velero-plugin-for-gcp:v1.0.0 --bucket mybucket --secret-file ./gcp-service-account.json + +velero install --provider aws --plugins velero/velero-plugin-for-aws:v1.0.0 --bucket backups --provider aws --secret-file ./aws-iam-creds --backup-location-config region=us-east-2 --snapshot-location-config region=us-east-2 --use-restic + +velero install --provider azure --plugins velero/velero-plugin-for-microsoft-azure:v1.0.0 --bucket $BLOB_CONTAINER --secret-file ./credentials-velero --backup-location-config resourceGroup=$AZURE_BACKUP_RESOURCE_GROUP,storageAccount=$AZURE_STORAGE_ACCOUNT_ID[,subscriptionId=$AZURE_BACKUP_SUBSCRIPTION_ID] --snapshot-location-config apiTimeout=[,resourceGroup=$AZURE_BACKUP_RESOURCE_GROUP,subscriptionId=$AZURE_BACKUP_SUBSCRIPTION_ID] +``` + +[1]: build-from-source.md#making-images-and-updating-velero +[2]: supported-providers.md +[3]: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ diff --git a/site/content/docs/v1.8/vendoring-dependencies.md b/site/content/docs/v1.8/vendoring-dependencies.md new file mode 100644 index 000000000..9fc1bcac1 --- /dev/null +++ b/site/content/docs/v1.8/vendoring-dependencies.md @@ -0,0 +1,21 @@ +--- +title: "Vendoring dependencies" +layout: docs +--- + +## Overview + +We are using [dep][0] to manage dependencies. You can install it by following [these +instructions][1]. + +## Adding a new dependency + +Run `dep ensure`. If you want to see verbose output, you can append `-v` as in +`dep ensure -v`. + +## Updating an existing dependency + +Run `dep ensure -update [ ...]` to update one or more dependencies. + +[0]: https://github.com/golang/dep +[1]: https://golang.github.io/dep/docs/installation.html diff --git a/site/content/docs/v1.8/website-guidelines.md b/site/content/docs/v1.8/website-guidelines.md new file mode 100644 index 000000000..c5373f4d8 --- /dev/null +++ b/site/content/docs/v1.8/website-guidelines.md @@ -0,0 +1,45 @@ +--- +title: "Website Guidelines" +layout: docs +--- + +## Running the website locally + +When making changes to the website, please run the site locally before submitting a PR and manually verify your changes. + +At the root of the project, run: + +```bash +make serve-docs +``` + +This runs all the Hugo dependencies in a container. + +Alternatively, for quickly loading the website, under the `velero/site/` directory run: + +```bash +hugo serve +``` + +For more information on how to run the website locally, please see our [Hugo documentation](https://gohugo.io/getting-started/). + +## Adding a blog post + +To add a blog post, create a new markdown (.MD) file in the `/site/content/posts/` folder. A blog post requires the following front matter. + +```yaml +title: "Title of the blog" +excerpt: Brief summary of thee blog post that appears as a preview on velero.io/blogs +author_name: Jane Smith +slug: URL-For-Blog +# Use different categories that apply to your blog. This is used to connect related blogs on the site +categories: ['velero','release'] +# Image to use for blog. The path is relative to the site/static/ folder +image: /img/posts/example-image.jpg +# Tag should match author to drive author pages. Tags can have multiple values. +tags: ['Velero Team', 'Nolan Brubaker'] +``` + +Include the `author_name` value in tags field so the page that lists the author's posts will work properly, for example https://velero.io/tags/carlisia-thompson/. + +Ideally each blog will have a unique image to use on the blog home page, but if you do not include an image, the default Velero logo will be used instead. Use an image that is less than 70KB and add it to the `/site/static/img/posts` folder. diff --git a/site/data/docs/main-toc.yml b/site/data/docs/main-toc.yml index ec0585229..7d21ed6cf 100644 --- a/site/data/docs/main-toc.yml +++ b/site/data/docs/main-toc.yml @@ -13,8 +13,8 @@ toc: url: /basic-install - page: Customize Installation url: /customize-installation - - page: Upgrade to 1.7 - url: /upgrade-to-1.7 + - page: Upgrade to 1.8 + url: /upgrade-to-1.8 - page: Supported providers url: /supported-providers - page: Evaluation install diff --git a/site/data/docs/toc-mapping.yml b/site/data/docs/toc-mapping.yml index 4dc739ee3..f520c0f8b 100644 --- a/site/data/docs/toc-mapping.yml +++ b/site/data/docs/toc-mapping.yml @@ -3,6 +3,7 @@ # that the navigation for older versions still work. main: main-toc +v1.8: v1-8-toc v1.7: v1-7-toc v1.6: v1-6-toc v1.5: v1-5-toc diff --git a/site/data/docs/v1-8-toc.yml b/site/data/docs/v1-8-toc.yml new file mode 100644 index 000000000..7d21ed6cf --- /dev/null +++ b/site/data/docs/v1-8-toc.yml @@ -0,0 +1,97 @@ +toc: + - title: Introduction + subfolderitems: + - page: About Velero + url: /index.html + - page: How Velero works + url: /how-velero-works + - page: About locations + url: /locations + - title: Install + subfolderitems: + - page: Basic Install + url: /basic-install + - page: Customize Installation + url: /customize-installation + - page: Upgrade to 1.8 + url: /upgrade-to-1.8 + - page: Supported providers + url: /supported-providers + - page: Evaluation install + url: /contributions/minio + - page: Restic integration + url: /restic + - page: Examples + url: /examples + - page: Uninstalling + url: /uninstalling + - title: Use + subfolderitems: + - page: Disaster recovery + url: /disaster-case + - page: Cluster migration + url: /migration-case + - page: Enable API group versions + url: /enable-api-group-versions-feature + - page: Resource filtering + url: /resource-filtering + - page: Backup reference + url: /backup-reference + - page: Backup hooks + url: /backup-hooks + - page: Restore reference + url: /restore-reference + - page: Restore hooks + url: /restore-hooks + - page: Run in any namespace + url: /namespace + - page: CSI Support (beta) + url: /csi + - page: Verifying Self-signed Certificates + url: /self-signed-certificates + - page: Changing RBAC permissions + url: /rbac + - title: Plugins + subfolderitems: + - page: Overview + url: /overview-plugins + - page: Custom plugins + url: /custom-plugins + - title: Troubleshoot + subfolderitems: + - page: Troubleshooting + url: /troubleshooting + - page: Troubleshoot an install or setup + url: /debugging-install + - page: Troubleshoot a restore + url: /debugging-restores + - page: Troubleshoot Restic + url: /restic#troubleshooting + - title: Contribute + subfolderitems: + - page: Start Contributing + url: /start-contributing + - page: Development + url: /development + - page: Rapid development with Tilt + url: /tilt + - page: Build from source + url: /build-from-source + - page: Run locally + url: /run-locally + - page: Code standards + url: /code-standards + - page: Website guidelines + url: /website-guidelines + - page: Documentation style guide + url: /style-guide + - title: More information + subfolderitems: + - page: Backup file format + url: /output-file-format + - page: API types + url: /api-types + - page: Support process + url: /support-process + - page: For maintainers + url: /maintainers From 459365013ca5d03fe647a15e2cbf2d4e8e594edf Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Fri, 14 Jan 2022 22:20:53 +0800 Subject: [PATCH 101/136] Update changelog for v1.8.0 (#4530) Signed-off-by: Daniel Jiang --- changelogs/CHANGELOG-1.8.md | 92 +++++++++++++++++++++++++ changelogs/unreleased/3708-sseago | 1 - changelogs/unreleased/4058-danfengliu | 1 - changelogs/unreleased/4077-dsmithuchida | 2 - changelogs/unreleased/4126-sseago | 1 - changelogs/unreleased/4141-danfengliu | 1 - changelogs/unreleased/4185-reasonerjt | 1 - changelogs/unreleased/4274-ywk253100 | 1 - changelogs/unreleased/4281-ywk253100 | 1 - changelogs/unreleased/4306-alaypatel07 | 1 - changelogs/unreleased/4322-zubron | 1 - changelogs/unreleased/4336-ywk253100 | 1 - changelogs/unreleased/4341-jxun | 1 - changelogs/unreleased/4343-reasonerjt | 1 - changelogs/unreleased/4346-half-life666 | 1 - changelogs/unreleased/4350-reasonerjt | 1 - changelogs/unreleased/4353-jxun | 1 - changelogs/unreleased/4372-danfengliu | 1 - changelogs/unreleased/4375-Box-Cube | 1 - changelogs/unreleased/4376-reasonerjt | 1 - changelogs/unreleased/4377-codegold79 | 1 - changelogs/unreleased/4382-jxun | 4 -- changelogs/unreleased/4386-mqiu | 1 - changelogs/unreleased/4391-ywk253100 | 1 - changelogs/unreleased/4397-reasonerjt | 1 - changelogs/unreleased/4398-ywk253100 | 1 - changelogs/unreleased/4401-danfengliu | 1 - changelogs/unreleased/4404-mqiu | 1 - changelogs/unreleased/4409-epk | 1 - changelogs/unreleased/4410-dsu | 2 - changelogs/unreleased/4416-dsmithuchida | 2 - changelogs/unreleased/4423-jxun | 1 - changelogs/unreleased/4429-dsmithuchida | 8 --- changelogs/unreleased/4431-reasonerjt | 1 - changelogs/unreleased/4437-mqiu | 1 - changelogs/unreleased/4438-mqiu | 1 - changelogs/unreleased/4440-mqiu | 1 - changelogs/unreleased/4446-jxun | 1 - changelogs/unreleased/4455-mqiu | 1 - changelogs/unreleased/4457-jxun | 1 - changelogs/unreleased/4462-ywk253100 | 1 - changelogs/unreleased/4465-reasonerjt | 1 - changelogs/unreleased/4480-mqiu | 1 - changelogs/unreleased/4491-ywk253100 | 1 - changelogs/unreleased/4513-ywk253100 | 1 - changelogs/unreleased/4521-mqiu | 1 - 46 files changed, 92 insertions(+), 58 deletions(-) create mode 100644 changelogs/CHANGELOG-1.8.md delete mode 100644 changelogs/unreleased/3708-sseago delete mode 100644 changelogs/unreleased/4058-danfengliu delete mode 100644 changelogs/unreleased/4077-dsmithuchida delete mode 100644 changelogs/unreleased/4126-sseago delete mode 100644 changelogs/unreleased/4141-danfengliu delete mode 100644 changelogs/unreleased/4185-reasonerjt delete mode 100644 changelogs/unreleased/4274-ywk253100 delete mode 100644 changelogs/unreleased/4281-ywk253100 delete mode 100644 changelogs/unreleased/4306-alaypatel07 delete mode 100644 changelogs/unreleased/4322-zubron delete mode 100644 changelogs/unreleased/4336-ywk253100 delete mode 100644 changelogs/unreleased/4341-jxun delete mode 100644 changelogs/unreleased/4343-reasonerjt delete mode 100644 changelogs/unreleased/4346-half-life666 delete mode 100644 changelogs/unreleased/4350-reasonerjt delete mode 100644 changelogs/unreleased/4353-jxun delete mode 100644 changelogs/unreleased/4372-danfengliu delete mode 100644 changelogs/unreleased/4375-Box-Cube delete mode 100644 changelogs/unreleased/4376-reasonerjt delete mode 100644 changelogs/unreleased/4377-codegold79 delete mode 100644 changelogs/unreleased/4382-jxun delete mode 100644 changelogs/unreleased/4386-mqiu delete mode 100644 changelogs/unreleased/4391-ywk253100 delete mode 100644 changelogs/unreleased/4397-reasonerjt delete mode 100644 changelogs/unreleased/4398-ywk253100 delete mode 100644 changelogs/unreleased/4401-danfengliu delete mode 100644 changelogs/unreleased/4404-mqiu delete mode 100644 changelogs/unreleased/4409-epk delete mode 100644 changelogs/unreleased/4410-dsu delete mode 100644 changelogs/unreleased/4416-dsmithuchida delete mode 100644 changelogs/unreleased/4423-jxun delete mode 100644 changelogs/unreleased/4429-dsmithuchida delete mode 100644 changelogs/unreleased/4431-reasonerjt delete mode 100644 changelogs/unreleased/4437-mqiu delete mode 100644 changelogs/unreleased/4438-mqiu delete mode 100644 changelogs/unreleased/4440-mqiu delete mode 100644 changelogs/unreleased/4446-jxun delete mode 100644 changelogs/unreleased/4455-mqiu delete mode 100644 changelogs/unreleased/4457-jxun delete mode 100644 changelogs/unreleased/4462-ywk253100 delete mode 100644 changelogs/unreleased/4465-reasonerjt delete mode 100644 changelogs/unreleased/4480-mqiu delete mode 100644 changelogs/unreleased/4491-ywk253100 delete mode 100644 changelogs/unreleased/4513-ywk253100 delete mode 100644 changelogs/unreleased/4521-mqiu diff --git a/changelogs/CHANGELOG-1.8.md b/changelogs/CHANGELOG-1.8.md new file mode 100644 index 000000000..94e94a687 --- /dev/null +++ b/changelogs/CHANGELOG-1.8.md @@ -0,0 +1,92 @@ +## v1.8.0 +### 2022-01-14 + +### Download +https://github.com/vmware-tanzu/velero/releases/tag/v1.8.0 + +### Container Image +`velero/velero:v1.8.0` + +### Documentation +https://velero.io/docs/v1.8 + +### Upgrading +https://velero.io/docs/v1.8/upgrade-to-1.8/ + +### Highlights + +#### The plugins to support handling volumes created by the AWS CSI driver +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: + +| Plugin | Version | CSI Driver | +| --- | ----------- | ---------- | +| velero-plugin-for-aws | v1.4.0 | ebs.csi.aws.com | +| velero-plugin-for-microsoft-azure | v1.4.0 | disk.csi.azure.com | +| velero-plugin-for-gcp | v1.4.0 | pd.csi.storage.gke.io | + +#### Break change +Starting v1.8 velero will only support v1 CRD, therefore, it will only run on Kubernetes v1.16+ + +### All changes + +* 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) +* Fix e2e 2500 namespaces scale test timeout problem (#4480, @mqiu) +* Add backup deletion e2e test (#4401, @danfengliu) +* Return the error when getting backup store in backup deletion controller (#4465, @reasonerjt) +* Ignore the provided port is already allocated error when restoring the LoadBalancer service (#4462, @ywk253100) +* Revert #4423 migrate backup sync controller to kubebuilder. (#4457, @jxun) +* Add rbac and annotation test cases (#4455, @mqiu) +* remove --crds-version in velero install command. (#4446, @jxun) +* Upgrade e2e test vsphere plugin (#4440, @mqiu) +* Fix e2e test failures for the inappropriate optimaze of velero install (#4438, @mqiu) +* Limit backup namespaces on test resource filtering cases (#4437, @mqiu) +* Bump up Go to 1.17 (#4431, @reasonerjt) +* Added ``-itemsnapshots.json.gz to the backup format. This file exists + when item snapshots are taken and contains an array of volume.Itemsnapshots + containing the information about the snapshots. This will not be used unless + upload progress monitoring and item snapshots are enabled and an ItemSnapshot + plugin is used to take snapshots. + +Also added DownloadTargetKindBackupItemSnapshots for retrieving the signed URL to download only the ``-itemsnapshots.json.gz part of a backup for use by +`velero backup describe`. (#4429, @dsmithuchida) +* Migrate backup sync controller from code-generator to kubebuilder. (#4423, @jxun) +* Added UploadProgressFeature flag to enable Upload Progress Monitoring and Item + Snapshotters. (#4416, @dsmithuchida) +* Added BackupWithResolvers and RestoreWithResolvers calls. Will eventually replace Backup and Restore methods. + Adds ItemSnapshotters to Backup and Restore workflows. (#4410, @dsu) +* Build for darwin-arm64 (#4409, @epk) +* Add resource filtering test cases (#4404, @mqiu) +* Fix the issue that the backup cannot be deleted after the application uninstalled (#4398, @ywk253100) +* Add restoreactionitem plugin to handle admission webhook configurations (#4397, @reasonerjt) +* Keep the annotation "pv.kubernetes.io/provisioned-by" when restoring PVs (#4391, @ywk253100) +* Adjust structure of e2e test codes (#4386, @mqiu) +* feat: migrate velero controller from kubebuilder v2 to v3 + From Velero v1.8, apiextesions.k8s.io/v1beta1 is no longer supported, + which means only CRD of apiextensions.k8s.io/v1 is supported, + and the supported Kubernetes version is updated to v1.16 and later. (#4382, @jxun) +* Delete backups and Restic repos associated with deleted BSL(s) (#4377, @codegold79) +* Add the key for GKE zone for AZ collection (#4376, @reasonerjt) +* Fix statefulsets volumeClaimTemplates storageClassName when use Changing PV/PVC Storage Classes (#4375, @Box-Cube) +* Fix snapshot e2e test issue of jsonpath (#4372, @danfengliu) +* Modify the timestamp in the name of a backup generated from schedule to use UTC. (#4353, @jxun) +* Read Availability zone from nodeAffinity requirements (#4350, @reasonerjt) +* Use factory.Namespace() to replace hardcoded velero namespace (#4346, @half-life666) +* Return the error if velero failed to detect S3 region for restic repo (#4343, @reasonerjt) +* Add init log option for velero controller-runtime manager. (#4341, @jxun) +* Ignore the `provided port is already allocated` error when restoring the `NodePort` service (#4336, @ywk253100) +* Fixed an issue with the `backup-location create` command where the BSL Credential field would be set to an invalid empty SecretKeySelector when no credential details were provided. (#4322, @zubron) +* fix buggy pager func (#4306, @alaypatel07) +* Don't create a backup immediately after creating a schedule (#4281, @ywk253100) +* Fix CVE-2020-29652 and CVE-2020-26160 (#4274, @ywk253100) +* Refine tag-release.sh to align with change in release process (#4185, @reasonerjt) +* Fix plugins incompatible issue in upgrade test (#4141, @danfengliu) +* Verify group before treating resource as cohabitating (#4126, @sseago) +* Added ItemSnapshotter plugin definition and plugin framework - addresses #3533. + Part of the Upload Progress enhancement (#3533) (#4077, @dsmithuchida) +* Add upgrade test in E2E test (#4058, @danfengliu) +* Handle namespace mapping for PVs without snapshots on restore (#3708, @sseago) + diff --git a/changelogs/unreleased/3708-sseago b/changelogs/unreleased/3708-sseago deleted file mode 100644 index 96c9f3cef..000000000 --- a/changelogs/unreleased/3708-sseago +++ /dev/null @@ -1 +0,0 @@ -Handle namespace mapping for PVs without snapshots on restore diff --git a/changelogs/unreleased/4058-danfengliu b/changelogs/unreleased/4058-danfengliu deleted file mode 100644 index b1cdb0245..000000000 --- a/changelogs/unreleased/4058-danfengliu +++ /dev/null @@ -1 +0,0 @@ -Add upgrade test in E2E test \ No newline at end of file diff --git a/changelogs/unreleased/4077-dsmithuchida b/changelogs/unreleased/4077-dsmithuchida deleted file mode 100644 index 3c15e4da3..000000000 --- a/changelogs/unreleased/4077-dsmithuchida +++ /dev/null @@ -1,2 +0,0 @@ -Added ItemSnapshotter plugin definition and plugin framework - addresses #3533. -Part of the Upload Progress enhancement (#3533) diff --git a/changelogs/unreleased/4126-sseago b/changelogs/unreleased/4126-sseago deleted file mode 100644 index baefcbf48..000000000 --- a/changelogs/unreleased/4126-sseago +++ /dev/null @@ -1 +0,0 @@ -Verify group before treating resource as cohabitating diff --git a/changelogs/unreleased/4141-danfengliu b/changelogs/unreleased/4141-danfengliu deleted file mode 100644 index 1cce90f13..000000000 --- a/changelogs/unreleased/4141-danfengliu +++ /dev/null @@ -1 +0,0 @@ -Fix plugins incompatible issue in upgrade test \ No newline at end of file diff --git a/changelogs/unreleased/4185-reasonerjt b/changelogs/unreleased/4185-reasonerjt deleted file mode 100644 index bc6926806..000000000 --- a/changelogs/unreleased/4185-reasonerjt +++ /dev/null @@ -1 +0,0 @@ -Refine tag-release.sh to align with change in release process \ No newline at end of file diff --git a/changelogs/unreleased/4274-ywk253100 b/changelogs/unreleased/4274-ywk253100 deleted file mode 100644 index 19b1e6b32..000000000 --- a/changelogs/unreleased/4274-ywk253100 +++ /dev/null @@ -1 +0,0 @@ -Fix CVE-2020-29652 and CVE-2020-26160 \ No newline at end of file diff --git a/changelogs/unreleased/4281-ywk253100 b/changelogs/unreleased/4281-ywk253100 deleted file mode 100644 index 29ff20281..000000000 --- a/changelogs/unreleased/4281-ywk253100 +++ /dev/null @@ -1 +0,0 @@ -Don't create a backup immediately after creating a schedule \ No newline at end of file diff --git a/changelogs/unreleased/4306-alaypatel07 b/changelogs/unreleased/4306-alaypatel07 deleted file mode 100644 index e11c33039..000000000 --- a/changelogs/unreleased/4306-alaypatel07 +++ /dev/null @@ -1 +0,0 @@ -fix buggy pager func \ No newline at end of file diff --git a/changelogs/unreleased/4322-zubron b/changelogs/unreleased/4322-zubron deleted file mode 100644 index fed1addc8..000000000 --- a/changelogs/unreleased/4322-zubron +++ /dev/null @@ -1 +0,0 @@ -Fixed an issue with the `backup-location create` command where the BSL Credential field would be set to an invalid empty SecretKeySelector when no credential details were provided. diff --git a/changelogs/unreleased/4336-ywk253100 b/changelogs/unreleased/4336-ywk253100 deleted file mode 100644 index 7efb628bb..000000000 --- a/changelogs/unreleased/4336-ywk253100 +++ /dev/null @@ -1 +0,0 @@ -Ignore the `provided port is already allocated` error when restoring the `NodePort` service \ No newline at end of file diff --git a/changelogs/unreleased/4341-jxun b/changelogs/unreleased/4341-jxun deleted file mode 100644 index ae3c58538..000000000 --- a/changelogs/unreleased/4341-jxun +++ /dev/null @@ -1 +0,0 @@ -Add init log option for velero controller-runtime manager. diff --git a/changelogs/unreleased/4343-reasonerjt b/changelogs/unreleased/4343-reasonerjt deleted file mode 100644 index 1a8e548e6..000000000 --- a/changelogs/unreleased/4343-reasonerjt +++ /dev/null @@ -1 +0,0 @@ -Return the error if velero failed to detect S3 region for restic repo \ No newline at end of file diff --git a/changelogs/unreleased/4346-half-life666 b/changelogs/unreleased/4346-half-life666 deleted file mode 100644 index 09807f4b8..000000000 --- a/changelogs/unreleased/4346-half-life666 +++ /dev/null @@ -1 +0,0 @@ -Use factory.Namespace() to replace hardcoded velero namespace diff --git a/changelogs/unreleased/4350-reasonerjt b/changelogs/unreleased/4350-reasonerjt deleted file mode 100644 index 7fb91ec87..000000000 --- a/changelogs/unreleased/4350-reasonerjt +++ /dev/null @@ -1 +0,0 @@ -Read Availability zone from nodeAffinity requirements \ No newline at end of file diff --git a/changelogs/unreleased/4353-jxun b/changelogs/unreleased/4353-jxun deleted file mode 100644 index 310a9e632..000000000 --- a/changelogs/unreleased/4353-jxun +++ /dev/null @@ -1 +0,0 @@ -Modify the timestamp in the name of a backup generated from schedule to use UTC. diff --git a/changelogs/unreleased/4372-danfengliu b/changelogs/unreleased/4372-danfengliu deleted file mode 100644 index ca34a1b46..000000000 --- a/changelogs/unreleased/4372-danfengliu +++ /dev/null @@ -1 +0,0 @@ -Fix snapshot e2e test issue of jsonpath \ No newline at end of file diff --git a/changelogs/unreleased/4375-Box-Cube b/changelogs/unreleased/4375-Box-Cube deleted file mode 100644 index fd1b1b231..000000000 --- a/changelogs/unreleased/4375-Box-Cube +++ /dev/null @@ -1 +0,0 @@ -Fix statefulsets volumeClaimTemplates storageClassName when use Changing PV/PVC Storage Classes \ No newline at end of file diff --git a/changelogs/unreleased/4376-reasonerjt b/changelogs/unreleased/4376-reasonerjt deleted file mode 100644 index 73406dade..000000000 --- a/changelogs/unreleased/4376-reasonerjt +++ /dev/null @@ -1 +0,0 @@ -Add the key for GKE zone for AZ collection \ No newline at end of file diff --git a/changelogs/unreleased/4377-codegold79 b/changelogs/unreleased/4377-codegold79 deleted file mode 100644 index 27bc88d2f..000000000 --- a/changelogs/unreleased/4377-codegold79 +++ /dev/null @@ -1 +0,0 @@ -Delete backups and Restic repos associated with deleted BSL(s) \ No newline at end of file diff --git a/changelogs/unreleased/4382-jxun b/changelogs/unreleased/4382-jxun deleted file mode 100644 index c2dd49743..000000000 --- a/changelogs/unreleased/4382-jxun +++ /dev/null @@ -1,4 +0,0 @@ -feat: migrate velero controller from kubebuilder v2 to v3 -From Velero v1.8, apiextesions.k8s.io/v1beta1 is no longer supported, -which means only CRD of apiextensions.k8s.io/v1 is supported, -and the supported Kubernetes version is updated to v1.16 and later. \ No newline at end of file diff --git a/changelogs/unreleased/4386-mqiu b/changelogs/unreleased/4386-mqiu deleted file mode 100644 index 568a1af77..000000000 --- a/changelogs/unreleased/4386-mqiu +++ /dev/null @@ -1 +0,0 @@ -Adjust structure of e2e test codes diff --git a/changelogs/unreleased/4391-ywk253100 b/changelogs/unreleased/4391-ywk253100 deleted file mode 100644 index 99a1ae5fa..000000000 --- a/changelogs/unreleased/4391-ywk253100 +++ /dev/null @@ -1 +0,0 @@ -Keep the annotation "pv.kubernetes.io/provisioned-by" when restoring PVs \ No newline at end of file diff --git a/changelogs/unreleased/4397-reasonerjt b/changelogs/unreleased/4397-reasonerjt deleted file mode 100644 index 243350200..000000000 --- a/changelogs/unreleased/4397-reasonerjt +++ /dev/null @@ -1 +0,0 @@ -Add restoreactionitem plugin to handle admission webhook configurations \ No newline at end of file diff --git a/changelogs/unreleased/4398-ywk253100 b/changelogs/unreleased/4398-ywk253100 deleted file mode 100644 index ae700d49b..000000000 --- a/changelogs/unreleased/4398-ywk253100 +++ /dev/null @@ -1 +0,0 @@ -Fix the issue that the backup cannot be deleted after the application uninstalled \ No newline at end of file diff --git a/changelogs/unreleased/4401-danfengliu b/changelogs/unreleased/4401-danfengliu deleted file mode 100644 index e0982ae12..000000000 --- a/changelogs/unreleased/4401-danfengliu +++ /dev/null @@ -1 +0,0 @@ -Add backup deletion e2e test \ No newline at end of file diff --git a/changelogs/unreleased/4404-mqiu b/changelogs/unreleased/4404-mqiu deleted file mode 100644 index 99fa88dca..000000000 --- a/changelogs/unreleased/4404-mqiu +++ /dev/null @@ -1 +0,0 @@ -Add resource filtering test cases diff --git a/changelogs/unreleased/4409-epk b/changelogs/unreleased/4409-epk deleted file mode 100644 index be9792451..000000000 --- a/changelogs/unreleased/4409-epk +++ /dev/null @@ -1 +0,0 @@ -Build for darwin-arm64 diff --git a/changelogs/unreleased/4410-dsu b/changelogs/unreleased/4410-dsu deleted file mode 100644 index 7762509c0..000000000 --- a/changelogs/unreleased/4410-dsu +++ /dev/null @@ -1,2 +0,0 @@ -Added BackupWithResolvers and RestoreWithResolvers calls. Will eventually replace Backup and Restore methods. -Adds ItemSnapshotters to Backup and Restore workflows. diff --git a/changelogs/unreleased/4416-dsmithuchida b/changelogs/unreleased/4416-dsmithuchida deleted file mode 100644 index 60e4a30fa..000000000 --- a/changelogs/unreleased/4416-dsmithuchida +++ /dev/null @@ -1,2 +0,0 @@ -Added UploadProgressFeature flag to enable Upload Progress Monitoring and Item -Snapshotters. diff --git a/changelogs/unreleased/4423-jxun b/changelogs/unreleased/4423-jxun deleted file mode 100644 index d2274476e..000000000 --- a/changelogs/unreleased/4423-jxun +++ /dev/null @@ -1 +0,0 @@ -Migrate backup sync controller from code-generator to kubebuilder. \ No newline at end of file diff --git a/changelogs/unreleased/4429-dsmithuchida b/changelogs/unreleased/4429-dsmithuchida deleted file mode 100644 index 4e4c6b5a4..000000000 --- a/changelogs/unreleased/4429-dsmithuchida +++ /dev/null @@ -1,8 +0,0 @@ -Added ``-itemsnapshots.json.gz to the backup format. This file exists -when item snapshots are taken and contains an array of volume.Itemsnapshots -containing the information about the snapshots. This will not be used unless -upload progress monitoring and item snapshots are enabled and an ItemSnapshot -plugin is used to take snapshots. - -Also added DownloadTargetKindBackupItemSnapshots for retrieving the signed URL to download only the ``-itemsnapshots.json.gz part of a backup for use by -`velero backup describe`. diff --git a/changelogs/unreleased/4431-reasonerjt b/changelogs/unreleased/4431-reasonerjt deleted file mode 100644 index 4e9dd6900..000000000 --- a/changelogs/unreleased/4431-reasonerjt +++ /dev/null @@ -1 +0,0 @@ -Bump up Go to 1.17 \ No newline at end of file diff --git a/changelogs/unreleased/4437-mqiu b/changelogs/unreleased/4437-mqiu deleted file mode 100644 index 75c03a143..000000000 --- a/changelogs/unreleased/4437-mqiu +++ /dev/null @@ -1 +0,0 @@ -Limit backup namespaces on test resource filtering cases diff --git a/changelogs/unreleased/4438-mqiu b/changelogs/unreleased/4438-mqiu deleted file mode 100644 index 5166acfcc..000000000 --- a/changelogs/unreleased/4438-mqiu +++ /dev/null @@ -1 +0,0 @@ -Fix e2e test failures for the inappropriate optimaze of velero install diff --git a/changelogs/unreleased/4440-mqiu b/changelogs/unreleased/4440-mqiu deleted file mode 100644 index 0d8a196bd..000000000 --- a/changelogs/unreleased/4440-mqiu +++ /dev/null @@ -1 +0,0 @@ -Upgrade e2e test vsphere plugin diff --git a/changelogs/unreleased/4446-jxun b/changelogs/unreleased/4446-jxun deleted file mode 100644 index 43b2c5836..000000000 --- a/changelogs/unreleased/4446-jxun +++ /dev/null @@ -1 +0,0 @@ -remove --crds-version in velero install command. \ No newline at end of file diff --git a/changelogs/unreleased/4455-mqiu b/changelogs/unreleased/4455-mqiu deleted file mode 100644 index 84aba9797..000000000 --- a/changelogs/unreleased/4455-mqiu +++ /dev/null @@ -1 +0,0 @@ -Add rbac and annotation test cases diff --git a/changelogs/unreleased/4457-jxun b/changelogs/unreleased/4457-jxun deleted file mode 100644 index 5d90eaf80..000000000 --- a/changelogs/unreleased/4457-jxun +++ /dev/null @@ -1 +0,0 @@ -Revert #4423 migrate backup sync controller to kubebuilder. \ No newline at end of file diff --git a/changelogs/unreleased/4462-ywk253100 b/changelogs/unreleased/4462-ywk253100 deleted file mode 100644 index e02b9ed34..000000000 --- a/changelogs/unreleased/4462-ywk253100 +++ /dev/null @@ -1 +0,0 @@ -Ignore the provided port is already allocated error when restoring the LoadBalancer service \ No newline at end of file diff --git a/changelogs/unreleased/4465-reasonerjt b/changelogs/unreleased/4465-reasonerjt deleted file mode 100644 index f6f15ec62..000000000 --- a/changelogs/unreleased/4465-reasonerjt +++ /dev/null @@ -1 +0,0 @@ -Return the error when getting backup store in backup deletion controller \ No newline at end of file diff --git a/changelogs/unreleased/4480-mqiu b/changelogs/unreleased/4480-mqiu deleted file mode 100644 index 0bde027ec..000000000 --- a/changelogs/unreleased/4480-mqiu +++ /dev/null @@ -1 +0,0 @@ -Fix e2e 2500 namespaces scale test timeout problem diff --git a/changelogs/unreleased/4491-ywk253100 b/changelogs/unreleased/4491-ywk253100 deleted file mode 100644 index 5f8a3bff8..000000000 --- a/changelogs/unreleased/4491-ywk253100 +++ /dev/null @@ -1 +0,0 @@ -Initialize the labels field of `velero backup-location create` option to avoid #4484 \ No newline at end of file diff --git a/changelogs/unreleased/4513-ywk253100 b/changelogs/unreleased/4513-ywk253100 deleted file mode 100644 index 62118cb61..000000000 --- a/changelogs/unreleased/4513-ywk253100 +++ /dev/null @@ -1 +0,0 @@ -Check whether the volume is provisioned by CSI driver or not by the annotation as well \ No newline at end of file diff --git a/changelogs/unreleased/4521-mqiu b/changelogs/unreleased/4521-mqiu deleted file mode 100644 index 495b9fb21..000000000 --- a/changelogs/unreleased/4521-mqiu +++ /dev/null @@ -1 +0,0 @@ -E2E test on ssr object with controller namespace mix-ups From 1e44edce674aafea2e9504498a0bad1e6aff6e26 Mon Sep 17 00:00:00 2001 From: dkeven Date: Thu, 6 Jan 2022 14:40:20 +0800 Subject: [PATCH 102/136] Fix: skip not mounted volumes when backing up Signed-off-by: dkeven --- changelogs/unreleased/4497-dkeven | 1 + pkg/restic/backupper.go | 21 ++++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 changelogs/unreleased/4497-dkeven diff --git a/changelogs/unreleased/4497-dkeven b/changelogs/unreleased/4497-dkeven new file mode 100644 index 000000000..63d246e42 --- /dev/null +++ b/changelogs/unreleased/4497-dkeven @@ -0,0 +1 @@ +Skip not mounted volumes when backing up diff --git a/pkg/restic/backupper.go b/pkg/restic/backupper.go index cb8e8569a..4e411c62d 100644 --- a/pkg/restic/backupper.go +++ b/pkg/restic/backupper.go @@ -25,6 +25,7 @@ import ( "github.com/sirupsen/logrus" corev1api "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" corev1client "k8s.io/client-go/kubernetes/typed/core/v1" "k8s.io/client-go/tools/cache" @@ -118,9 +119,10 @@ func (b *backupper) BackupPodVolumes(backup *velerov1api.Backup, pod *corev1api. b.resultsLock.Unlock() var ( - errs []error - podVolumeBackups []*velerov1api.PodVolumeBackup - podVolumes = make(map[string]corev1api.Volume) + errs []error + podVolumeBackups []*velerov1api.PodVolumeBackup + podVolumes = make(map[string]corev1api.Volume) + mountedPodVolumes = sets.String{} ) // put the pod's volumes in a map for efficient lookup below @@ -128,6 +130,12 @@ func (b *backupper) BackupPodVolumes(backup *velerov1api.Backup, pod *corev1api. podVolumes[podVolume.Name] = podVolume } + for _, container := range pod.Spec.Containers { + for _, volumeMount := range container.VolumeMounts { + mountedPodVolumes.Insert(volumeMount.Name) + } + } + var numVolumeSnapshots int for _, volumeName := range volumesToBackup { volume, ok := podVolumes[volumeName] @@ -162,6 +170,13 @@ func (b *backupper) BackupPodVolumes(backup *velerov1api.Backup, pod *corev1api. continue } + // volumes that are not mounted by any container should not be backed up, because + // its directory is not created + if !mountedPodVolumes.Has(volumeName) { + log.Warnf("Volume %s is declared in pod %s/%s but not mounted by any container, skipping", volumeName, pod.Namespace, pod.Name) + continue + } + volumeBackup := newPodVolumeBackup(backup, pod, volume, repo.Spec.ResticIdentifier, pvc) if volumeBackup, err = b.repoManager.veleroClient.VeleroV1().PodVolumeBackups(volumeBackup.Namespace).Create(context.TODO(), volumeBackup, metav1.CreateOptions{}); err != nil { errs = append(errs, err) From caa80db92c72fac66ed68be1b007caeb574947ed Mon Sep 17 00:00:00 2001 From: Ming Date: Tue, 18 Jan 2022 10:18:49 +0800 Subject: [PATCH 103/136] Add E2E test of backups sync from BSL Signed-off-by: Ming --- changelogs/unreleased/4545-mqiu | 1 + test/e2e/backups/sync_backups.go | 155 +++++++++++++++++++++++++++ test/e2e/e2e_suite_test.go | 1 + test/e2e/util/velero/velero_utils.go | 32 ++++++ 4 files changed, 189 insertions(+) create mode 100644 changelogs/unreleased/4545-mqiu create mode 100644 test/e2e/backups/sync_backups.go diff --git a/changelogs/unreleased/4545-mqiu b/changelogs/unreleased/4545-mqiu new file mode 100644 index 000000000..bc9eca647 --- /dev/null +++ b/changelogs/unreleased/4545-mqiu @@ -0,0 +1 @@ +Add E2E test of backups sync from BSL diff --git a/test/e2e/backups/sync_backups.go b/test/e2e/backups/sync_backups.go new file mode 100644 index 000000000..bd81014d0 --- /dev/null +++ b/test/e2e/backups/sync_backups.go @@ -0,0 +1,155 @@ +/* + * + * Copyright the Velero contributors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * 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. + * / + */ + +//Refer to https://github.com/vmware-tanzu/velero/issues/4253 +package backups + +import ( + "context" + "flag" + "fmt" + "math/rand" + "time" + + "github.com/google/uuid" + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "k8s.io/apimachinery/pkg/util/wait" + + . "github.com/vmware-tanzu/velero/test/e2e" + . "github.com/vmware-tanzu/velero/test/e2e/util/k8s" + . "github.com/vmware-tanzu/velero/test/e2e/util/providers" + . "github.com/vmware-tanzu/velero/test/e2e/util/velero" +) + +type SyncBackups struct { + testNS string + backupName string + ctx context.Context +} + +func (b *SyncBackups) Init() { + rand.Seed(time.Now().UnixNano()) + UUIDgen, _ = uuid.NewRandom() + b.testNS = "sync-bsl-test-" + UUIDgen.String() + b.backupName = "sync-bsl-test-" + UUIDgen.String() + b.ctx, _ = context.WithTimeout(context.Background(), time.Duration(time.Minute*10)) +} + +func BackupsSyncTest() { + test := new(SyncBackups) + client, err := NewTestClient() + if err != nil { + println(err.Error()) + } + Expect(err).To(Succeed(), "Failed to instantiate cluster client for backup tests") + + BeforeEach(func() { + flag.Parse() + if VeleroCfg.InstallVelero { + Expect(VeleroInstall(context.Background(), &VeleroCfg, "", false)).To(Succeed()) + } + }) + + AfterEach(func() { + if VeleroCfg.InstallVelero { + Expect(VeleroUninstall(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace)).To(Succeed()) + } + }) + + It("Backups in object storage should be synced to a new Velero successfully", func() { + test.Init() + By(fmt.Sprintf("Prepare workload as target to backup by creating namespace %s namespace", test.testNS)) + Expect(CreateNamespace(test.ctx, client, test.testNS)).To(Succeed(), + fmt.Sprintf("Failed to create %s namespace", test.testNS)) + + defer func() { + Expect(DeleteNamespace(test.ctx, client, test.testNS, false)).To(Succeed(), fmt.Sprintf("Failed to delete the namespace %s", test.testNS)) + }() + + By(fmt.Sprintf("Backup the workload in %s namespace", test.testNS), func() { + if err = VeleroBackupNamespace(test.ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, test.backupName, test.testNS, "", false); err != nil { + RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, test.backupName, "") + } + Expect(err).To(Succeed(), fmt.Sprintf("Failed to backup %s namespace", test.testNS)) + }) + + By("Uninstall velero", func() { + Expect(VeleroUninstall(test.ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace)).To(Succeed()) + }) + + By("Install velero", func() { + VeleroCfg.ObjectStoreProvider = "" + Expect(VeleroInstall(test.ctx, &VeleroCfg, "", false)).To(Succeed()) + }) + + By("Check all backups in object storage are synced to Velero", func() { + Expect(test.IsBackupsSynced()).To(Succeed(), fmt.Sprintf("Failed to sync backup %s from object storage", test.backupName)) + }) + }) + + It("Deleted backups in object storage are synced to be deleted in Velero", func() { + test.Init() + By(fmt.Sprintf("Prepare workload as target to backup by creating namespace in %s namespace", test.testNS), func() { + Expect(CreateNamespace(test.ctx, client, test.testNS)).To(Succeed(), + fmt.Sprintf("Failed to create %s namespace", test.testNS)) + }) + + defer func() { + Expect(DeleteNamespace(test.ctx, client, test.testNS, false)).To(Succeed(), + fmt.Sprintf("Failed to delete the namespace %s", test.testNS)) + }() + + By(fmt.Sprintf("Backup the workload in %s namespace", test.testNS), func() { + if err = VeleroBackupNamespace(test.ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, test.backupName, test.testNS, "", false); err != nil { + RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, test.backupName, "") + } + Expect(err).To(Succeed(), fmt.Sprintf("Failed to backup %s namespace", test.testNS)) + }) + + By(fmt.Sprintf("Delete %s backup files in object store", test.backupName), func() { + err = DeleteObjectsInBucket(VeleroCfg.CloudProvider, VeleroCfg.CloudCredentialsFile, VeleroCfg.BSLBucket, + VeleroCfg.BSLPrefix, VeleroCfg.BSLConfig, test.backupName, BackupObjectsPrefix) + Expect(err).To(Succeed(), fmt.Sprintf("Failed to delete object in bucket %s with err %v", test.backupName, err)) + }) + + By(fmt.Sprintf("Check %s backup files in object store is deleted", test.backupName), func() { + err = ObjectsShouldNotBeInBucket(VeleroCfg.CloudProvider, VeleroCfg.CloudCredentialsFile, VeleroCfg.BSLBucket, + VeleroCfg.BSLPrefix, VeleroCfg.BSLConfig, test.backupName, BackupObjectsPrefix, 1) + Expect(err).To(Succeed(), fmt.Sprintf("Failed to delete object in bucket %s with err %v", test.backupName, err)) + }) + + By("Check if backups are deleted as a result of sync from BSL", func() { + Expect(WaitBackupDeleted(test.ctx, VeleroCfg.VeleroCLI, test.backupName, time.Minute*10)).To(Succeed(), fmt.Sprintf("Failed to check backup %s deleted", test.backupName)) + }) + }) +} + +func (b *SyncBackups) IsBackupsSynced() error { + return wait.PollImmediate(10*time.Second, 10*time.Minute, func() (bool, error) { + if exist, err := IsBackupExist(b.ctx, VeleroCfg.VeleroCLI, b.backupName); err != nil { + return false, err + } else { + if exist { + return true, nil + } else { + return false, nil + } + } + }) +} diff --git a/test/e2e/e2e_suite_test.go b/test/e2e/e2e_suite_test.go index 8540cf619..0c582f600 100644 --- a/test/e2e/e2e_suite_test.go +++ b/test/e2e/e2e_suite_test.go @@ -91,6 +91,7 @@ var _ = Describe("[ResourceFiltering][IncludeResources][Restore] Velero test on var _ = Describe("[ResourceFiltering][LabelSelector] Velero test on backup include resources matching the label selector", BackupWithLabelSelector) var _ = Describe("[Backups][Deletion] Velero tests on cluster using the plugin provider for object storage and Restic for volume backups", Backup_deletion_with_restic) var _ = Describe("[PrivilegesMgmt][SSR] Velero test on ssr object when controller namespace mix-ups", SSRTest) +var _ = Describe("[Backups][BackupsSync] Backups in object storage are synced to a new Velero and deleted backups in object storage are synced to be deleted in Velero", BackupsSyncTest) func TestE2e(t *testing.T) { // Skip running E2E tests when running only "short" tests because: diff --git a/test/e2e/util/velero/velero_utils.go b/test/e2e/util/velero/velero_utils.go index faa317c72..c1e6046cd 100644 --- a/test/e2e/util/velero/velero_utils.go +++ b/test/e2e/util/velero/velero_utils.go @@ -596,3 +596,35 @@ func DeleteBackupResource(ctx context.Context, veleroCLI string, backupName stri } return nil } + +func GetBackup(ctx context.Context, veleroCLI string, backupName string) (string, string, error) { + args := []string{"backup", "get", backupName} + cmd := exec.CommandContext(ctx, veleroCLI, args...) + return veleroexec.RunCommand(cmd) +} + +func IsBackupExist(ctx context.Context, veleroCLI string, backupName string) (bool, error) { + if _, outerr, err := GetBackup(ctx, veleroCLI, backupName); err != nil { + if err != nil { + if strings.Contains(outerr, "not found") { + return false, nil + } + return false, err + } + } + return true, nil +} + +func WaitBackupDeleted(ctx context.Context, veleroCLI string, backupName string, timeout time.Duration) error { + return wait.PollImmediate(10*time.Second, timeout, func() (bool, error) { + if exist, err := IsBackupExist(ctx, veleroCLI, backupName); err != nil { + return false, err + } else { + if exist { + return false, nil + } else { + return true, nil + } + } + }) +} From 015e8e7db900a3171a761580e8fbbfa8dcc155f1 Mon Sep 17 00:00:00 2001 From: Rafael Brito Date: Wed, 19 Jan 2022 16:57:10 -0600 Subject: [PATCH 104/136] #4067 Initial design of the new plugins - pre-post backup and restore (#4083) * #4067 Initial design of the new plugins - pre-post backup and restore Signed-off-by: Rafael Brito * Update new-prepost-backuprestore-plugin-hooks.md * Updated design doc as per feedback Signed-off-by: Rafael Brito * Adding design changes as per feedback * Update design on prepost-backup-restore plugins * More color on how to call plugins Signed-off-by: Rafael Brito * Proposing annotations to skip plugin execution Signed-off-by: Rafael Brito --- .../new-prepost-backuprestore-plugin-hooks.md | 735 ++++++++++++++++++ 1 file changed, 735 insertions(+) create mode 100644 design/new-prepost-backuprestore-plugin-hooks.md diff --git a/design/new-prepost-backuprestore-plugin-hooks.md b/design/new-prepost-backuprestore-plugin-hooks.md new file mode 100644 index 000000000..65e305147 --- /dev/null +++ b/design/new-prepost-backuprestore-plugin-hooks.md @@ -0,0 +1,735 @@ +# Pre-Backup, Post-Backup, Pre-Restore, and Post-Restore Action Plugin Hooks + +## Abstract + +Velero should provide a way to trigger actions before and after each backup and restore. +**Important**: These proposed plugin hooks are fundamentally different from the existing plugin hooks, BackupItemAction and RestoreItemAction, which are triggered per resource item during backup and restore, respectively. +The proposed plugin hooks are to be executed only once: pre-backup (before backup starts), post-backup (after the backup is completed and uploaded to object storage, including volumes snapshots), pre-restore (before restore starts) and post-restore (after the restore is completed, including volumes are restored). + +### PreBackup and PostBackup Actions + +For the backup, the sequence of events of Velero backup are the following (these sequence depicted is prior upcoming changes for [upload progress #3533](https://github.com/vmware-tanzu/velero/issues/3533) ): + +``` +New Backup Request + |--> Validation of the request + |--> Set Backup Phase "In Progress" + | --> Start Backup + | --> Discover all Plugins + |--> Check if Backup Exists + |--> Backup all K8s Resource Items + |--> Perform all Volumes Snapshots + |--> Final Backup Phase is determined + |--> Persist Backup and Logs on Object Storage +``` +We propose the pre-backup and post-backup plugin hooks to be executed in this sequence: + +``` +New Backup Request + |--> Validation of the request + |--> Set Backup Phase "In Progress" + | --> Start Backup + | --> Discover all Plugins + |--> Check if Backup Exists + |--> **PreBackupActions** are executed, logging actions on existent backup log file + |--> Backup all K8s Resource Items + |--> Perform all Volumes Snapshots + |--> Final Backup Phase is determined + |--> Persist Backup and logs on Object Storage + |--> **PostBackupActions** are executed, logging to its own file +``` +These plugin hooks will be invoked: + +- PreBackupAction: plugin actions are executed after the backup object is created and validated but before the backup is being processed, more precisely _before_ function [c.backupper.Backup](https://github.com/vmware-tanzu/velero/blob/74476db9d791fa91bba0147eac8ec189820adb3d/pkg/controller/backup_controller.go#L590). If the PreBackupActions return an err, the backup object is not processed and the Backup phase will be set as `FailedPreBackupActions`. + +- PostBackupAction: plugin actions are executed after the backup is finished and persisted, more precisely _after_ function [c.runBackup](https://github.com/vmware-tanzu/velero/blob/74476db9d791fa91bba0147eac8ec189820adb3d/pkg/controller/backup_controller.go#L274). + +The proposed plugin hooks will execute actions that will have statuses on their own: +`Backup.Status.PreBackupActionsStatuses` and `Backup.Status.PostBackupActionsStatuses` which will be an array of a proposed struct `ActionStatus` with PluginName, StartTimestamp, CompletionTimestamp and Phase. + +### PreRestore and PostRestore Actions + +For the restore, the sequence of events of Velero restore are the following (these sequence depicted is prior upcoming changes for [upload progress #3533](https://github.com/vmware-tanzu/velero/issues/3533) ): +``` +New Restore Request + |--> Validation of the request + |--> Checks if restore is from a backup or a schedule + |--> Fetches backup + |--> Set Restore Phase "In Progress" + |--> Start Restore + |--> Discover all Plugins + |--> Download backup file to temp + |--> Fetch list of volumes snapshots + |--> Restore K8s items, including PVs + |--> Final Restore Phase is determined + |--> Persist Restore logs on Object Storage +``` +We propose the pre-restore and post-restore plugin hooks to be executed in this sequence: +``` +New Restore Request + |--> Validation of the request + |--> Checks if restore is from a backup or a schedule + |--> Fetches backup + |--> Set Restore Phase "In Progress" + |--> Start Restore + |--> Discover all Plugins + |--> Download backup file to temp + |--> Fetch list of volumes snapshots + |--> **PreRestoreActions** are executed, logging actions on existent backup log file + |--> Restore K8s items, including PVs + |--> Final Restore Phase is determined + |--> Persist Restore logs on Object Storage + |--> **PostRestoreActions** are executed, logging to its own file +``` + +These plugin hooks will be invoked: + +- PreRestoreAction: plugin actions are executed after the restore object is created and validated and before the backup object is fetched, more precisely in function `runValidatedRestore` _after_ function [info.backupStore.GetBackupVolumeSnapshots](https://github.com/vmware-tanzu/velero/blob/7c75cd6cf854064c9a454e53ba22cc5881d3f1f0/pkg/controller/restore_controller.go#L460). If the PreRestoreActions return an err, the restore object is not processed and the Restore phase will be set a `FailedPreRestoreActions`. + +- PostRestoreAction: plugin actions are executed after the restore finishes processing all items and volumes snapshots are restored and logs persisted, more precisely in function `processRestore` _after_ setting [`restore.Status.CompletionTimestamp`](https://github.com/vmware-tanzu/velero/blob/7c75cd6cf854064c9a454e53ba22cc5881d3f1f0/pkg/controller/restore_controller.go#L273). + +The proposed plugin hooks will execute actions that will have statuses on their own: +`Restore.Status.PreRestoreActionsStatuses` and `Restore.Status.PostRestoreActionsStatuses` which will be an array of a proposed struct `ActionStatus` with PluginName, StartTimestamp, CompletionTimestamp and Phase. + +## Background + +Increasingly, Velero is employed for workload migrations across different Kubernetes clusters. +Using Velero for migrations requires an atomic operation involving a Velero backup on a source cluster followed by a Velero restore on a destination cluster. + +It is common during these migrations to perform many actions inside and outside Kubernetes clusters. +**Attention**: these actions are not per resource item, but they are actions to be executed _once_ before and/or after the migration itself (remember, migration in this context is Velero Backup + Velero Restore). + +One important use case driving this proposal is migrating stateful workloads at scale across different clusters/storage backends. +Today, Velero's Restic integration is the response for such use cases, but there are some limitations: + +- Quiesce/unquiesce workloads: Pod hooks are useful for quiescing/unquiescing workloads, but platform engineers often do not have the luxury/visibility/time/knowledge to go through each pod in order to add specific commands to quiesce/unquiesce workloads. +- Orphan PVC/PV pairs: PVCs/PVs that do not have associated running pods are not backed up and consequently, are not migrated. + +Aiming to address these two limitations, and separate from this proposal, we would like to write a Velero plugin that takes advantage of the proposed Pre-Backup plugin hook. This plugin will be executed _once_ (not per resource item) prior backup. It will scale down the applications setting `.spec.replicas=0` to all deployments, statefulsets, daemonsets, replicasets, etc. and will start a small-footprint staging pod that will mount all PVC/PV pairs. Similarly, we would like to write another plugin that will utilize the proposed Post-Restore plugin hook. This plugin will unquiesce migrated applications by killing the staging pod and reinstating original `.spec.replicas` values after the Velero restore is completed. + +Other examples of plugins that can use the proposed plugin hooks are: + +- PostBackupAction: trigger a Velero Restore after a successful Velero backup (and complete the migration operation). +- PreRestoreAction: pre-expand the cluster's capacity via Cluster API to avoid starvation of cluster resources before the restore. +- PostRestoreAction: call actions to be performed outside Kubernetes clusters, such as configure a global load balancer (GLB) that enables the new cluster. + +The post backup actions will be executed after the backup is uploaded (persisted) on the disk. The logs of post-backup actions will be uploaded on the disk once the actions are completed. + +The post restore actions will be executed after the restore is uploaded (persisted) on the disk. The logs of post-restore actions will be uploaded on the disk once the actions are completed. + +This design seeks to provide missing extension points. This proposal's scope is to only add the new plugin hooks, not the plugins themselves. + +## Goals + +- Provide PreBackupAction, PostBackupAction, PreRestoreAction, and PostRestoreAction APIs for plugins to implement. +- Update Velero backup and restore creation logic to invoke registered PreBackupAction and PreRestoreAction plugins before processing the backup and restore respectively. +- Update Velero backup and restore complete logic to invoke registered PostBackupAction and PostRestoreAction plugins the objects are uploaded on disk. +- Create one `ActionStatus` struct to keep track of execution of the plugin hooks. This struct has PluginName, StartTimestamp, CompletionTimestamp and Phase. +- Add sub statuses for the plugins on Backup object: `Backup.Status.PreBackupActionsStatuses` and `Backup.Status.PostBackupActionsStatuses`. They will be flagged as optional and nullable. They will be populated only each plugin registered for the PreBackup and PostBackup hooks, respectively. +- Add sub statuses for the plugins on Restore object: `Backup.Status.PreRestoreActionsStatuses` and `Backup.Status.PostRestoreActionsStatuses`. They will be flagged as optional and nullable. They will be populated only each plugin registered for the PreRestore and PostRestore hooks, respectively. +- that will be populated optionally if Pre/Post Backup/Restore. + +## Non-Goals + +- Specific implementations of the PreBackupAction, PostBackupAction, PreRestoreAction and PostRestoreAction API beyond test cases. +- For migration specific actions (Velero Backup + Velero Restore), add disk synchronization during the validation of the Restore (making sure the newly created backup will show during restore) + +## High-Level Design + +The Velero backup controller package will be modified for `PreBackupAction` and `PostBackupAction`. + +The PreBackupAction plugin API will resemble the BackupItemAction plugin hook design, but with the fundamental difference that it will receive only as input the Velero `Backup` object created. +It will not receive any resource list items because the backup is not yet running at that stage. +In addition, the `PreBackupAction` interface will only have an `Execute()` method since the plugin will be executed once per Backup creation, not per item. + +The Velero backup controller will be modified so that if there are any PreBackupAction plugins registered, they will be + +The PostBackupAction plugin API will resemble the BackupItemAction plugin design, but with the fundamental difference that it will receive only as input the Velero `Backup` object without any resource list items. +By this stage, the backup has already been executed, with items backed up and volumes snapshots processed and persisted. +The `PostBackupAction` interface will only have an `Execute()` method since the plugin will be executed only once per Backup, not per item. + +If there are any PostBackupAction plugins registered, they will be executed after the backup is finished and persisted, more precisely _after_ function [c.runBackup](https://github.com/vmware-tanzu/velero/blob/74476db9d791fa91bba0147eac8ec189820adb3d/pkg/controller/backup_controller.go#L274). + +The Velero restore controller package will be modified for `PreRestoreAction` and `PostRestoreAction`. + +The PreRestoreAction plugin API will resemble the RestoreItemAction plugin design, but with the fundamental difference that it will receive only as input the Velero `Restore` object created. +It will not receive any resource list items because the restore has not yet been running at that stage. +In addition, the `PreRestoreAction` interface will only have an `Execute()` method since the plugin will be executed only once per Restore creation, not per item. + +The Velero restore controller will be modified so that if there are any PreRestoreAction plugins registered, they will be executed after the restore object is created and validated and before the backup object is fetched, more precisely in function `runValidatedRestore` _after_ function [info.backupStore.GetBackupVolumeSnapshots](https://github.com/vmware-tanzu/velero/blob/7c75cd6cf854064c9a454e53ba22cc5881d3f1f0/pkg/controller/restore_controller.go#L460). If the PreRestoreActions return an err, the restore object is not processed and the Restore phase will be set a `FailedPreRestoreActions`. + +The PostRestoreAction plugin API will resemble the RestoreItemAction plugin design, but with the fundamental difference that it will receive only as input the Velero `Restore` object without any resource list items. +At this stage, the restore has already been executed. +The `PostRestoreAction` interface will only have an `Execute()` method since the plugin will be executed only once per Restore, not per item. + +If any PostRestoreAction plugins are registered, they will be executed after the restore finishes processing all items and volumes snapshots are restored and logs persisted, more precisely in function `processRestore` _after_ setting [`restore.Status.CompletionTimestamp`](https://github.com/vmware-tanzu/velero/blob/7c75cd6cf854064c9a454e53ba22cc5881d3f1f0/pkg/controller/restore_controller.go#L273). + +## Detailed Design + +### New Status struct + +To keep the status of the plugins, we propose the following struct: + +```go +type ActionStatus struct { + // PluginName is the name of the registered plugin + // retrieved by the PluginManager as id.Name + // +optional + // +nullable + PluginName string `json:"pluginName,omitempty"` + + // StartTimestamp records the time the plugin started. + // +optional + // +nullable + StartTimestamp *metav1.Time `json:"startTimestamp,omitempty"` + + // CompletionTimestamp records the time the plugin was completed. + // +optional + // +nullable + CompletionTimestamp *metav1.Time `json:"completionTimestamp,omitempty"` + + // Phase is the current state of the Action. + // +optional + // +nullable + Phase ActionPhase `json:"phase,omitempty"` +} + +// ActionPhase is a string representation of the lifecycle phase of an action being executed by a plugin +// of a Velero backup. +// +kubebuilder:validation:Enum=InProgress;Completed;Failed +type ActionPhase string + +const ( + // ActionPhaseInProgress means the action has being executed + ActionPhaseInProgress ActionPhase = "InProgress" + + // ActionPhaseCompleted means the action finished successfully + ActionPhaseCompleted ActionPhase = "Completed" + + // ActionPhaseFailed means the action failed + ActionPhaseFailed ActionPhase = "Failed" +) + +``` + +### Backup Status of the Plugins + +The `Backup` Status section will have the follow: + +```go +type BackupStatus struct { + (...) + // PreBackupActionsStatuses contains information about the pre backup plugins's execution. + // Note that this information is will be only populated if there are prebackup plugins actions + // registered + // +optional + // +nullable + PreBackupActionsStatuses *[]ActionStatus `json:"preBackupActionsStatuses,omitempty"` + + // PostBackupActionsStatuses contains information about the post backup plugins's execution. + // Note that this information is will be only populated if there are postbackup plugins actions + // registered + // +optional + // +nullable + PostBackupActionsStatuses *[]ActionStatus `json:"postBackupActionsStatuses,omitempty"` + +} +``` + +### Restore Status of the Plugins + +The `Restore` Status section will have the follow: + +```go +type RestoreStatus struct { + (...) + // PreRestoreActionsStatuses contains information about the pre Restore plugins's execution. + // Note that this information is will be only populated if there are preRestore plugins actions + // registered + // +optional + // +nullable + PreRestoreActionsStatuses *[]ActionStatus `json:"preRestoreActionsStatuses,omitempty"` + + // PostRestoreActionsStatuses contains information about the post restore plugins's execution. + // Note that this information is will be only populated if there are postrestore plugins actions + // registered + // +optional + // +nullable + PostRestoreActionsStatuses *[]ActionStatus `json:"postRestoreActionsStatuses,omitempty"` + +} +``` + +### New Backup and Restore Phases + +#### New Backup Phase: FailedPreBackupActions + +In case the PreBackupActionsStatuses has at least one `ActionPhase` = `Failed`, it means al least one of the plugins returned an error and consequently, the backup will not move forward. The final status of the Backup object will be set as `FailedPreBackupActions`: + +```go + +// BackupPhase is a string representation of the lifecycle phase +// of a Velero backup. +// +kubebuilder:validation:Enum=New;FailedValidation;FailedPreBackupActions;InProgress;Uploading;UploadingPartialFailure;Completed;PartiallyFailed;Failed;Deleting +type BackupPhase string + +const ( + + (...) + + // BackupPhaseFailedPreBackupActions means one or more the Pre Backup Actions has failed + // and therefore backup will not run. + BackupPhaseFailedPreBackupActions BackupPhase = "FailedPreBackupActions" + + (...) +) + +``` + +#### New Restore Phase FailedPreRestoreActions + +In case the PreRestoreActionsStatuses has at least one `ActionPhase` = `Failed`, it means al least one of the plugins returned an error and consequently, the restore will not move forward. The final status of the Restore object will be set as `FailedPreRestoreActions`: + +```go + +// RestorePhase is a string representation of the lifecycle phase +// of a Velero restore +// +kubebuilder:validation:Enum=New;FailedValidation;FailedPreRestoreActions;InProgress;Completed;PartiallyFailed;Failed +type RestorePhase string + +const ( + + (...) + + // RestorePhaseFailedPreRestoreActions means one or more the Pre Restore Actions has failed + // and therefore restore will not run. + RestorePhaseFailedPreRestoreActions BackupPhase = "FailedPreRestoreActions" + + (...) +) + +``` + +### New Interface types + +#### PreBackupAction + +The `PreBackupAction` interface is as follows: + +```go +// PreBackupAction provides a hook into the backup process before it begins. +type PreBackupAction interface { + // Execute the PreBackupAction plugin providing it access to the Backup that + // is being executed + Execute(backup *api.Backup) error +} +``` + +`PreBackupAction` will be defined in `pkg/plugin/velero/pre_backup_action.go`. + +#### PostBackupAction + +The `PostBackupAction` interface is as follows: + +```go +// PostBackupAction provides a hook into the backup process after it completes. +type PostBackupAction interface { + // Execute the PostBackupAction plugin providing it access to the Backup that + // has been completed + Execute(backup *api.Backup) error +} +``` + +`PostBackupAction` will be defined in `pkg/plugin/velero/post_backup_action.go`. + +#### PreRestoreAction + +The `PreRestoreAction` interface is as follows: + +```go +// PreRestoreAction provides a hook into the restore process before it begins. +type PreRestoreAction interface { + // Execute the PreRestoreAction plugin providing it access to the Restore that + // is being executed + Execute(restore *api.Restore) error +} +``` + +`PreRestoreAction` will be defined in `pkg/plugin/velero/pre_restore_action.go`. + +#### PostRestoreAction + +The `PostRestoreAction` interface is as follows: + +```go +// PostRestoreAction provides a hook into the restore process after it completes. +type PostRestoreAction interface { + // Execute the PostRestoreAction plugin providing it access to the Restore that + // has been completed + Execute(restore *api.Restore) error +} +``` + +`PostRestoreAction` will be defined in `pkg/plugin/velero/post_restore_action.go`. + +### New BackupStore Interface Methods + +For the persistence of the logs originated from the PostBackup and PostRestore plugins, create two additional methods on `BackupStore` interface: + +```go +type BackupStore interface { + (...) + PutPostBackuplog(backup string, log io.Reader) error + PutPostRestoreLog(backup, restore string, log io.Reader) error + (...) +``` + +The implementation of these new two methods will go hand-in-hand with the changes of uploading phases rebase. + + +### Generate Protobuf Definitions and Client/Servers + +In `pkg/plugin/proto`, add the following: + +1. Protobuf definitions will be necessary for PreBackupAction in `pkg/plugin/proto/PreBackupAction.proto`. + +```protobuf +message PreBackupActionExecuteRequest { + ... +} + +service PreBackupAction { + rpc Execute(PreBackupActionExecuteRequest) returns (Empty) +} +``` + +Once these are written, then a client and server implementation can be written in `pkg/plugin/framework/pre_backup_action_client.go` and `pkg/plugin/framework/pre_backup_action_server.go`, respectively. + +2. Protobuf definitions will be necessary for PostBackupAction in `pkg/plugin/proto/PostBackupAction.proto`. + +```protobuf +message PostBackupActionExecuteRequest { + ... +} + +service PostBackupAction { + rpc Execute(PostBackupActionExecuteRequest) returns (Empty) +} +``` + +Once these are written, then a client and server implementation can be written in `pkg/plugin/framework/post_backup_action_client.go` and `pkg/plugin/framework/post_backup_action_server.go`, respectively. + +3. Protobuf definitions will be necessary for PreRestoreAction in `pkg/plugin/proto/PreRestoreAction.proto`. + +```protobuf +message PreRestoreActionExecuteRequest { + ... +} + +service PreRestoreAction { + rpc Execute(PreRestoreActionExecuteRequest) returns (Empty) +} +``` + +Once these are written, then a client and server implementation can be written in `pkg/plugin/framework/pre_restore_action_client.go` and `pkg/plugin/framework/pre_restore_action_server.go`, respectively. + +4. Protobuf definitions will be necessary for PostRestoreAction in `pkg/plugin/proto/PostRestoreAction.proto`. + +```protobuf +message PostRestoreActionExecuteRequest { + ... +} + +service PostRestoreAction { + rpc Execute(PostRestoreActionExecuteRequest) returns (Empty) +} +``` + +Once these are written, then a client and server implementation can be written in `pkg/plugin/framework/post_restore_action_client.go` and `pkg/plugin/framework/post_restore_action_server.go`, respectively. + +### Restartable Delete Plugins + +Similar to the `RestoreItemAction` and `BackupItemAction` plugins, restartable processes will need to be implemented (with the difference that there is no `AppliedTo()` method). + +In `pkg/plugin/clientmgmt/`, add + +1. `restartable_pre_backup_action.go`, creating the following unexported type: + +```go +type restartablePreBackupAction struct { + key kindAndName + sharedPluginProcess RestartableProcess +} + +func newRestartablePreBackupAction(name string, sharedPluginProcess RestartableProcess) *restartablePreBackupAction { + // ... +} + +func (r *restartablePreBackupAction) getPreBackupAction() (velero.PreBackupAction, error) { + // ... +} + +func (r *restartablePreBackupAction) getDelegate() (velero.PreBackupAction, error) { + // ... +} + +// Execute restarts the plugin's process if needed, then delegates the call. +func (r *restartablePreBackupAction) Execute(input *velero.PreBackupActionInput) (error) { + // ... +} +``` + +2. `restartable_post_backup_action.go`, creating the following unexported type: + +```go +type restartablePostBackupAction struct { + key kindAndName + sharedPluginProcess RestartableProcess +} + +func newRestartablePostBackupAction(name string, sharedPluginProcess RestartableProcess) *restartablePostBackupAction { + // ... +} + +func (r *restartablePostBackupAction) getPostBackupAction() (velero.PostBackupAction, error) { + // ... +} + +func (r *restartablePostBackupAction) getDelegate() (velero.PostBackupAction, error) { + // ... +} + +// Execute restarts the plugin's process if needed, then delegates the call. +func (r *restartablePostBackupAction) Execute(input *velero.PostBackupActionInput) (error) { + // ... +} +``` + +3. `restartable_pre_restore_action.go`, creating the following unexported type: + +```go +type restartablePreRestoreAction struct { + key kindAndName + sharedPluginProcess RestartableProcess +} + +func newRestartablePreRestoreAction(name string, sharedPluginProcess RestartableProcess) *restartablePreRestoreAction { + // ... +} + +func (r *restartablePreRestoreAction) getPreRestoreAction() (velero.PreRestoreAction, error) { + // ... +} + +func (r *restartablePreRestoreAction) getDelegate() (velero.PreRestoreAction, error) { + // ... +} + +// Execute restarts the plugin's process if needed, then delegates the call. +func (r *restartablePreRestoreAction) Execute(input *velero.PreRestoreActionInput) (error) { + // ... +} +``` + +4. `restartable_post_restore_action.go`, creating the following unexported type: + +```go +type restartablePostRestoreAction struct { + key kindAndName + sharedPluginProcess RestartableProcess +} + +func newRestartablePostRestoreAction(name string, sharedPluginProcess RestartableProcess) *restartablePostRestoreAction { + // ... +} + +func (r *restartablePostRestoreAction) getPostRestoreAction() (velero.PostRestoreAction, error) { + // ... +} + +func (r *restartablePostRestoreAction) getDelegate() (velero.PostRestoreAction, error) { + // ... +} + +// Execute restarts the plugin's process if needed, then delegates the call. +func (r *restartablePostRestoreAction) Execute(input *velero.PostRestoreActionInput) (error) { + // ... +} +``` + +### Plugin Manager Changes + +Add the following methods to the `Manager` interface in `pkg/plugin/clientmgmt/manager.go`: + +```go +type Manager interface { + ... + // Get PreBackupAction returns a PreBackupAction plugin for name. + GetPreBackupAction(name string) (PreBackupAction, error) + + // Get PreBackupActions returns the all PreBackupAction plugins. + GetPreBackupActions() ([]PreBackupAction, error) + + // Get PostBackupAction returns a PostBackupAction plugin for name. + GetPostBackupAction(name string) (PostBackupAction, error) + + // GetPostBackupActions returns the all PostBackupAction plugins. + GetPostBackupActions() ([]PostBackupAction, error) + + // Get PreRestoreAction returns a PreRestoreAction plugin for name. + GetPreRestoreAction(name string) (PreRestoreAction, error) + + // Get PreRestoreActions returns the all PreRestoreAction plugins. + GetPreRestoreActions() ([]PreRestoreAction, error) + + // Get PostRestoreAction returns a PostRestoreAction plugin for name. + GetPostRestoreAction(name string) (PostRestoreAction, error) + + // GetPostRestoreActions returns the all PostRestoreAction plugins. + GetPostRestoreActions() ([]PostRestoreAction, error) + +} +``` + +`GetPreBackupAction` and `GetPreBackupActions` will invoke the `restartablePreBackupAction` implementations. +`GetPostBackupAction` and `GetPostBackupActions` will invoke the `restartablePostBackupAction` implementations. +`GetPreRestoreAction` and `GetPreRestoreActions` will invoke the `restartablePreRestoreAction` implementations. +`GetPostRestoreAction` and `GetPostRestoreActions` will invoke the `restartablePostRestoreAction` implementations. + +### How to invoke the Plugins + +#### Getting Pre/Post Backup Actions + +Getting Actions on `backup_controller.go` in `runBackup`: + +```go + + backupLog.Info("Getting PreBackup actions") + preBackupActions, err := pluginManager.GetPreBackupActions() + if err != nil { + return err + } + + backupLog.Info("Getting PostBackup actions") + postBackupActions, err := pluginManager.GetPostBackupActions() + if err != nil { + return err + } +``` + +#### Pre Backup Actions Plugins + +Calling the Pre Backup actions: + +```go + for _, preBackupAction := range preBackupActions { + err := preBackupAction.Execute(backup.Backup) + if err != nil { + backup.Backup.Status.Phase = velerov1api.BackupPhaseFailedPreBackupActions + return err + } + } +``` + +#### Post Backup Actions Plugins + +Calling the Post Backup actions: + +```go + for _, postBackupAction := range postBackupActions { + err := postBackupAction.Execute(backup.Backup) + if err != nil { + postBackupLog.Error(err) + } + } +``` + +#### Getting Pre/Post Restore Actions + +Getting Actions on `restore_controller.go` in `runValidatedRestore`: + +```go + + restoreLog.Info("Getting PreRestore actions") + preRestoreActions, err := pluginManager.GetPreRestoreActions() + if err != nil { + return errors.Wrap(err, "error getting pre-restore actions") + } + + restoreLog.Info("Getting PostRestore actions") + postRestoreActions, err := pluginManager.GetPostRestoreActions() + if err != nil { + return errors.Wrap(err, "error getting post-restore actions") + } +``` + +#### Pre Restore Actions Plugins + +Calling the Pre Restore actions: + +```go + for _, preRestoreAction := range preRestoreActions { + err := preRestoreAction.Execute(restoreReq.Restore) + if err != nil { + restoreReq.Restore.Status.Phase = velerov1api.RestorePhaseFailedPreRestoreActions + return errors.Wrap(err, "error executing pre-restore action") + } + } +``` + +#### Post Restore Actions Plugins + +Calling the Post Restore actions: + +```go + for _, postRestoreAction := range postRestoreActions { + err := postRestoreAction.Execute(restoreReq.Restore) + if err != nil { + postRestoreLog.Error(err.Error()) + } + } +``` + +### Giving the User the Option to Skip the Execution of the Plugins + +Velero plugins are loaded as init containers. If plugins are unloaded, they trigger a restart of the Velero controller. +Not mentioning if one plugin does get loaded for any reason (i.e., docker hub image pace limit), Velero does not start. +In other words, the constant load/unload of plugins can disrupt the Velero controller, and they cannot be the only method to run the actions from these plugins selectively. +As part of this proposal, we want to give the velero user the ability to skip the execution of the plugins via annotations on the Velero CR backup and restore objects. +If one of these exists, the given plugin, referenced below as `plugin-name`, will be skipped. + +Backup Object Annotations: + +``` + /prebackup=skip + /postbackup=skip +``` + +Restore Object Annotations: + +``` + /prerestore=skip + /postrestore=skip +``` + +## Alternatives Considered + +An alternative to these plugin hooks is to implement all the pre/post backup/restore logic _outside_ Velero. +In this case, one would need to write an external controller that works similar to what [Konveyor Crane](https://github.com/konveyor/mig-controller/blob/master/pkg/controller/migmigration/quiesce.go) does today when quiescing applications. +We find this a viable way, but we think that Velero users can benefit from Velero having greater embedded capabilities, which will allow users to write or load plugins extensions without relying on an external components. + +## Security Considerations + +The plugins will only be invoked if loaded per a user's discretion. +It is recommended to check security vulnerabilities before execution. + +## Compatibility + +In terms of backward compatibility, this design should stay compatible with most Velero installations that are upgrading. +If plugins are not present, then the backup/restore process should proceed the same way it worked before their inclusion. + +## Implementation + +The implementation dependencies are roughly in the order as they are described in the [Detailed Design](#detailed-design) section. + +## Open Issues From 8bf0e05f1210f567d5e04e853c090ce57f16af32 Mon Sep 17 00:00:00 2001 From: danfengl Date: Thu, 20 Jan 2022 07:18:57 +0000 Subject: [PATCH 105/136] Upload debug tarball in PR CI E2E pipeline Signed-off-by: danfengl --- .github/workflows/e2e-test-kind.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/e2e-test-kind.yaml b/.github/workflows/e2e-test-kind.yaml index e2ed379b7..e00bc6a54 100644 --- a/.github/workflows/e2e-test-kind.yaml +++ b/.github/workflows/e2e-test-kind.yaml @@ -122,4 +122,9 @@ jobs: ADDITIONAL_OBJECT_STORE_PROVIDER=aws ADDITIONAL_BSL_CONFIG=region=minio,s3ForcePathStyle="true",s3Url=http://$(hostname -i):9000 \ ADDITIONAL_CREDS_FILE=/tmp/credential ADDITIONAL_BSL_BUCKET=additional-bucket \ GINKGO_FOCUS=Basic VELERO_IMAGE=velero:pr-test \ - make -C test/e2e run \ No newline at end of file + make -C test/e2e run + - name: Upload debug bundle + uses: actions/upload-artifact@v2 + with: + name: DebugBundle + path: /home/runner/work/velero/velero/test/e2e/debug-bundle* \ No newline at end of file From a6abc03e4398789efca8d2da9366543e8f92d4ff Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Mon, 24 Jan 2022 15:06:19 +0800 Subject: [PATCH 106/136] Remove reference of restic_restore_action.go from the doc fixes #4554 Signed-off-by: Daniel Jiang --- site/content/docs/main/custom-plugins.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/site/content/docs/main/custom-plugins.md b/site/content/docs/main/custom-plugins.md index 3e2d72832..34497c3b8 100644 --- a/site/content/docs/main/custom-plugins.md +++ b/site/content/docs/main/custom-plugins.md @@ -103,8 +103,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 +117,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 From 6e4194bc6057e73bdd5c4a735ac8556311dc4013 Mon Sep 17 00:00:00 2001 From: danfengl Date: Tue, 25 Jan 2022 07:39:30 +0000 Subject: [PATCH 107/136] Add continue-on-error in ci e2e test Signed-off-by: danfengl --- .github/workflows/e2e-test-kind.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/e2e-test-kind.yaml b/.github/workflows/e2e-test-kind.yaml index e00bc6a54..24e06d2cd 100644 --- a/.github/workflows/e2e-test-kind.yaml +++ b/.github/workflows/e2e-test-kind.yaml @@ -124,6 +124,7 @@ jobs: GINKGO_FOCUS=Basic VELERO_IMAGE=velero:pr-test \ make -C test/e2e run - name: Upload debug bundle + if: ${{ failure() }} uses: actions/upload-artifact@v2 with: name: DebugBundle From e8120f66fa82ed8d6e80de4198fd4e7dc560bb4d Mon Sep 17 00:00:00 2001 From: Dave Smith-Uchida Date: Mon, 24 Jan 2022 10:56:00 -0800 Subject: [PATCH 108/136] Change dsu-igeek affiliation to Kasten, requires governance vote Signed-off-by: Dave Smith-Uchida --- MAINTAINERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 56909a488..63539895b 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -7,7 +7,7 @@ | 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) | [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) | Daniel Jiang | [reasonerjt](https://github.com/reasonerjt) | [VMware](https://www.github.com/vmware/) From 52590a4426897354bcfda0817c7517ea3cf5a451 Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Wed, 26 Jan 2022 10:52:07 +0800 Subject: [PATCH 109/136] Nominate Xun Jiang and Ming Qiu to become maintainers (#4578) --- .github/auto-assignees.yml | 2 ++ MAINTAINERS.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/auto-assignees.yml b/.github/auto-assignees.yml index 9fc3fe100..d798ce4d5 100644 --- a/.github/auto-assignees.yml +++ b/.github/auto-assignees.yml @@ -15,6 +15,8 @@ reviewers: - sseago - reasonerjt - ywk253100 + - blackpiglet + - qiuming-best tech-writer: - a-mccarthy diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 63539895b..0c59711ea 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -12,6 +12,8 @@ | Scott Seago | [sseago](https://github.com/sseago) | [OpenShift](https://github.com/openshift) | Daniel Jiang | [reasonerjt](https://github.com/reasonerjt) | [VMware](https://www.github.com/vmware/) | Wenkai Yin | [ywk253100](https://github.com/ywk253100) | [VMware](https://www.github.com/vmware/) | +| Xun Jiang | [blackpiglet](https://github.com/blackpiglet) | [VMware](https://www.github.com/vmware/) | +| Ming Qiu | [qiuming-best](https://github.com/qiuming-best) | [VMware](https://www.github.com/vmware/) | ## Emeritus Maintainers * Adnan Abdulhussein ([prydonius](https://github.com/prydonius)) From 5571f25f11cb44daddb8ff1d56dfb9929b58236f Mon Sep 17 00:00:00 2001 From: danfengl Date: Wed, 26 Jan 2022 09:24:24 +0000 Subject: [PATCH 110/136] Add timeout for CI e2e job Signed-off-by: danfengl --- .github/workflows/e2e-test-kind.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/e2e-test-kind.yaml b/.github/workflows/e2e-test-kind.yaml index 24e06d2cd..38fcd1d2a 100644 --- a/.github/workflows/e2e-test-kind.yaml +++ b/.github/workflows/e2e-test-kind.yaml @@ -123,6 +123,7 @@ jobs: ADDITIONAL_CREDS_FILE=/tmp/credential ADDITIONAL_BSL_BUCKET=additional-bucket \ GINKGO_FOCUS=Basic VELERO_IMAGE=velero:pr-test \ make -C test/e2e run + timeout-minutes: 30 - name: Upload debug bundle if: ${{ failure() }} uses: actions/upload-artifact@v2 From e4046017db584893cdb899f9b6f5ea0abf3df590 Mon Sep 17 00:00:00 2001 From: Ming Date: Fri, 28 Jan 2022 14:13:10 +0800 Subject: [PATCH 111/136] E2E SSR test add retry mechanism and logs Signed-off-by: Ming --- changelogs/unreleased/4591-mqiu | 1 + test/e2e/privilegesmgmt/ssr.go | 32 +++++++++++++++++++++++--------- 2 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 changelogs/unreleased/4591-mqiu diff --git a/changelogs/unreleased/4591-mqiu b/changelogs/unreleased/4591-mqiu new file mode 100644 index 000000000..fb68c9305 --- /dev/null +++ b/changelogs/unreleased/4591-mqiu @@ -0,0 +1 @@ +E2E SSR test add retry mechanism and logs diff --git a/test/e2e/privilegesmgmt/ssr.go b/test/e2e/privilegesmgmt/ssr.go index 8d1ce6940..91af0f8b8 100644 --- a/test/e2e/privilegesmgmt/ssr.go +++ b/test/e2e/privilegesmgmt/ssr.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(), From b28093ede1e6b99a41f58bb923e856d152e7a9fe Mon Sep 17 00:00:00 2001 From: Bridget McErlean Date: Fri, 28 Jan 2022 18:20:32 -0500 Subject: [PATCH 112/136] Remove Bridget McErlean from maintainers Signed-off-by: Bridget McErlean --- MAINTAINERS.md | 2 +- .../contributors/02-bridget-mcerlean.md | 7 ------- .../img/contributors/bridget-mcerlean.png | Bin 220894 -> 0 bytes 3 files changed, 1 insertion(+), 8 deletions(-) delete mode 100644 site/content/contributors/02-bridget-mcerlean.md delete mode 100644 site/static/img/contributors/bridget-mcerlean.png diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 0c59711ea..2de9607ac 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -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 diff --git a/site/content/contributors/02-bridget-mcerlean.md b/site/content/contributors/02-bridget-mcerlean.md deleted file mode 100644 index fda4e4532..000000000 --- a/site/content/contributors/02-bridget-mcerlean.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -first_name: Bridget -last_name: McErlean -image: /img/contributors/bridget-mcerlean.png -github_handle: zubron ---- -Engineer diff --git a/site/static/img/contributors/bridget-mcerlean.png b/site/static/img/contributors/bridget-mcerlean.png deleted file mode 100644 index 3dbf1f47efd04afb8a5f96130274c07937a8d578..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220894 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Š@tZ6D3QnW(3%p}I% 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%0A3l|j<1~-s$VF1uRd6+Vq?EFmTIoT|%I$93 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⋙FDVMt6Zd^6xQc6k8DU{8O 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 From 5fa7d08fa16425d8c2838a6e843cb87b7f9b7ef2 Mon Sep 17 00:00:00 2001 From: Dominic Brekau <35068626+dbrekau@users.noreply.github.com> Date: Sat, 29 Jan 2022 08:47:55 +0100 Subject: [PATCH 113/136] Use OrderedResources in schedules (#4550) * Use OrderedResources in schedules Make ParseOrderedResources public for use in schedules Add changelog Signed-off-by: Dominic * Rename function in comment section Signed-off-by: Dominic --- changelogs/unreleased/4550-dbrekau | 1 + pkg/cmd/cli/backup/create.go | 6 +++--- pkg/cmd/cli/backup/create_test.go | 8 ++++---- pkg/cmd/cli/schedule/create.go | 10 ++++++++++ 4 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 changelogs/unreleased/4550-dbrekau diff --git a/changelogs/unreleased/4550-dbrekau b/changelogs/unreleased/4550-dbrekau new file mode 100644 index 000000000..dea16b567 --- /dev/null +++ b/changelogs/unreleased/4550-dbrekau @@ -0,0 +1 @@ +Fix: OrderedResources in Schedules diff --git a/pkg/cmd/cli/backup/create.go b/pkg/cmd/cli/backup/create.go index e0eb06b5c..f2d165df5 100644 --- a/pkg/cmd/cli/backup/create.go +++ b/pkg/cmd/cli/backup/create.go @@ -291,11 +291,11 @@ func (o *CreateOptions) Run(c *cobra.Command, f client.Factory) error { return nil } -// parseOrderedResources converts to map of Kinds to an ordered list of specific resources of that Kind. +// ParseOrderedResources converts to map of Kinds to an ordered list of specific resources of that Kind. // Resource names in the list are in format 'namespace/resourcename' and separated by commas. // Key-value pairs in the mapping are separated by semi-colon. // Ex: 'pods=ns1/pod1,ns1/pod2;persistentvolumeclaims=ns1/pvc4,ns1/pvc8'. -func parseOrderedResources(orderMapStr string) (map[string]string, error) { +func ParseOrderedResources(orderMapStr string) (map[string]string, error) { entries := strings.Split(orderMapStr, ";") if len(entries) == 0 { return nil, fmt.Errorf("Invalid OrderedResources '%s'.", orderMapStr) @@ -337,7 +337,7 @@ func (o *CreateOptions) BuildBackup(namespace string) (*velerov1api.Backup, erro StorageLocation(o.StorageLocation). VolumeSnapshotLocations(o.SnapshotLocations...) if len(o.OrderedResources) > 0 { - orders, err := parseOrderedResources(o.OrderedResources) + orders, err := ParseOrderedResources(o.OrderedResources) if err != nil { return nil, err } diff --git a/pkg/cmd/cli/backup/create_test.go b/pkg/cmd/cli/backup/create_test.go index ec6236994..401e93e47 100644 --- a/pkg/cmd/cli/backup/create_test.go +++ b/pkg/cmd/cli/backup/create_test.go @@ -34,7 +34,7 @@ func TestCreateOptions_BuildBackup(t *testing.T) { o := NewCreateOptions() o.Labels.Set("velero.io/test=true") o.OrderedResources = "pods=p1,p2;persistentvolumeclaims=pvc1,pvc2" - orders, err := parseOrderedResources(o.OrderedResources) + orders, err := ParseOrderedResources(o.OrderedResources) assert.NoError(t, err) backup, err := o.BuildBackup(testNamespace) @@ -100,10 +100,10 @@ func TestCreateOptions_BuildBackupFromSchedule(t *testing.T) { } func TestCreateOptions_OrderedResources(t *testing.T) { - orderedResources, err := parseOrderedResources("pods= ns1/p1; ns1/p2; persistentvolumeclaims=ns2/pvc1, ns2/pvc2") + orderedResources, err := ParseOrderedResources("pods= ns1/p1; ns1/p2; persistentvolumeclaims=ns2/pvc1, ns2/pvc2") assert.NotNil(t, err) - orderedResources, err = parseOrderedResources("pods= ns1/p1,ns1/p2 ; persistentvolumeclaims=ns2/pvc1,ns2/pvc2") + orderedResources, err = ParseOrderedResources("pods= ns1/p1,ns1/p2 ; persistentvolumeclaims=ns2/pvc1,ns2/pvc2") assert.NoError(t, err) expectedResources := map[string]string{ @@ -112,7 +112,7 @@ func TestCreateOptions_OrderedResources(t *testing.T) { } assert.Equal(t, orderedResources, expectedResources) - orderedResources, err = parseOrderedResources("pods= ns1/p1,ns1/p2 ; persistentvolumes=pv1,pv2") + orderedResources, err = ParseOrderedResources("pods= ns1/p1,ns1/p2 ; persistentvolumes=pv1,pv2") assert.NoError(t, err) expectedMixedResources := map[string]string{ diff --git a/pkg/cmd/cli/schedule/create.go b/pkg/cmd/cli/schedule/create.go index 7a4971aa7..5e15ac6bc 100644 --- a/pkg/cmd/cli/schedule/create.go +++ b/pkg/cmd/cli/schedule/create.go @@ -111,11 +111,20 @@ func (o *CreateOptions) Complete(args []string, f client.Factory) error { } func (o *CreateOptions) Run(c *cobra.Command, f client.Factory) error { + var orders map[string]string + veleroClient, err := f.Client() if err != nil { return err } + if len(o.BackupOptions.OrderedResources) > 0 { + orders, err = backup.ParseOrderedResources(o.BackupOptions.OrderedResources) + if err != nil { + return err + } + } + schedule := &api.Schedule{ ObjectMeta: metav1.ObjectMeta{ Namespace: f.Namespace(), @@ -135,6 +144,7 @@ func (o *CreateOptions) Run(c *cobra.Command, f client.Factory) error { StorageLocation: o.BackupOptions.StorageLocation, VolumeSnapshotLocations: o.BackupOptions.SnapshotLocations, DefaultVolumesToRestic: o.BackupOptions.DefaultVolumesToRestic.Value, + OrderedResources: orders, }, Schedule: o.Schedule, UseOwnerReferencesInBackup: &o.UseOwnerReferencesInBackup, From 33219e6c4c8f2997ed04fe9dd987fbb19f5851d0 Mon Sep 17 00:00:00 2001 From: danfengl Date: Sat, 29 Jan 2022 09:14:36 +0000 Subject: [PATCH 114/136] Add 1.8 plugins map in e2e test Signed-off-by: danfengl --- test/e2e/util/velero/velero_utils.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/test/e2e/util/velero/velero_utils.go b/test/e2e/util/velero/velero_utils.go index c1e6046cd..3f8cdc162 100644 --- a/test/e2e/util/velero/velero_utils.go +++ b/test/e2e/util/velero/velero_utils.go @@ -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-rc1"}, + "azure": {"velero/velero-plugin-for-microsoft-azure:v1.4.0-rc.1"}, + "vsphere": {"velero/velero-plugin-for-aws:v1.4.0-rc1", "vsphereveleroplugin/velero-plugin-for-vsphere:v1.3.1"}, + "gcp": {"velero/velero-plugin-for-gcp:v1.4.0-rc1"}, + }, "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"}, }, } From f757540c6db79c50f617bbca05b9be35412f562c Mon Sep 17 00:00:00 2001 From: danfengl Date: Sat, 29 Jan 2022 09:32:54 +0000 Subject: [PATCH 115/136] Fix E2E gcp plugin tag name Signed-off-by: danfengl --- test/e2e/util/velero/velero_utils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/util/velero/velero_utils.go b/test/e2e/util/velero/velero_utils.go index 3f8cdc162..624a90caa 100644 --- a/test/e2e/util/velero/velero_utils.go +++ b/test/e2e/util/velero/velero_utils.go @@ -74,7 +74,7 @@ var pluginsMatrix = map[string]map[string][]string{ "aws": {"velero/velero-plugin-for-aws:v1.4.0-rc1"}, "azure": {"velero/velero-plugin-for-microsoft-azure:v1.4.0-rc.1"}, "vsphere": {"velero/velero-plugin-for-aws:v1.4.0-rc1", "vsphereveleroplugin/velero-plugin-for-vsphere:v1.3.1"}, - "gcp": {"velero/velero-plugin-for-gcp:v1.4.0-rc1"}, + "gcp": {"velero/velero-plugin-for-gcp:v1.4.0-rc.1"}, }, "main": { "aws": {"velero/velero-plugin-for-aws:main"}, From 7c4bd099d998ee55b4a26a15949ff8073ad52134 Mon Sep 17 00:00:00 2001 From: danfengl Date: Sat, 29 Jan 2022 10:11:17 +0000 Subject: [PATCH 116/136] Change 1.8 plugins version to release version Signed-off-by: danfengl --- test/e2e/util/velero/velero_utils.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/e2e/util/velero/velero_utils.go b/test/e2e/util/velero/velero_utils.go index 624a90caa..2dff360f5 100644 --- a/test/e2e/util/velero/velero_utils.go +++ b/test/e2e/util/velero/velero_utils.go @@ -71,10 +71,10 @@ var pluginsMatrix = map[string]map[string][]string{ "gcp": {"velero/velero-plugin-for-gcp:v1.3.0"}, }, "v1.8": { - "aws": {"velero/velero-plugin-for-aws:v1.4.0-rc1"}, - "azure": {"velero/velero-plugin-for-microsoft-azure:v1.4.0-rc.1"}, - "vsphere": {"velero/velero-plugin-for-aws:v1.4.0-rc1", "vsphereveleroplugin/velero-plugin-for-vsphere:v1.3.1"}, - "gcp": {"velero/velero-plugin-for-gcp:v1.4.0-rc.1"}, + "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"}, From f0a29276cc5b3d919f3e7427ed400316468c1d3f Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Sun, 30 Jan 2022 14:26:55 +0800 Subject: [PATCH 117/136] Undeprecate the volumesnapshot plugin in the doc Since Itemsnapshotter plugin is still WIP, this commit removes the reference and the deprecation of volumeSnapshotter plugin from the doc to avoid confusion. We'll update the doc when it's ready and we have a reference implementation. Signed-off-by: Daniel Jiang --- site/content/docs/main/custom-plugins.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/site/content/docs/main/custom-plugins.md b/site/content/docs/main/custom-plugins.md index 34497c3b8..c0937c20c 100644 --- a/site/content/docs/main/custom-plugins.md +++ b/site/content/docs/main/custom-plugins.md @@ -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 From 131c6de407ffd97c802f89df0dd182b44c62375e Mon Sep 17 00:00:00 2001 From: "F. Gold" Date: Wed, 2 Feb 2022 10:39:13 -0800 Subject: [PATCH 118/136] Check for nil before logging DefaultVolumestToRestic value Signed-off-by: F. Gold --- pkg/backup/backup.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/backup/backup.go b/pkg/backup/backup.go index ef03e78f7..15fba183d 100644 --- a/pkg/backup/backup.go +++ b/pkg/backup/backup.go @@ -200,7 +200,11 @@ func (kb *kubernetesBackupper) BackupWithResolvers(log logrus.FieldLogger, backupRequest.ResourceIncludesExcludes = collections.GetResourceIncludesExcludes(kb.discoveryHelper, backupRequest.Spec.IncludedResources, backupRequest.Spec.ExcludedResources) log.Infof("Including resources: %s", backupRequest.ResourceIncludesExcludes.IncludesString()) log.Infof("Excluding resources: %s", backupRequest.ResourceIncludesExcludes.ExcludesString()) - log.Infof("Backing up all pod volumes using restic: %t", *backupRequest.Backup.Spec.DefaultVolumesToRestic) + if backupRequest.Backup.Spec.DefaultVolumesToRestic != nil { + log.Infof("Backing up all pod volumes using Restic: %t", *backupRequest.Backup.Spec.DefaultVolumesToRestic) + } else { + log.Infof("DefaultVolumesToRestic for backing up all pod volumes using Restic is %v", backupRequest.Backup.Spec.DefaultVolumesToRestic) + } var err error backupRequest.ResourceHooks, err = getResourceHooks(backupRequest.Spec.Hooks.Resources, kb.discoveryHelper) From 95c43d5b657db49d39d401e393f1be8b2957f9db Mon Sep 17 00:00:00 2001 From: "F. Gold" Date: Wed, 2 Feb 2022 17:02:22 -0800 Subject: [PATCH 119/136] Minor change to trigger GitHub actions Signed-off-by: F. Gold --- pkg/backup/backup.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/backup/backup.go b/pkg/backup/backup.go index 15fba183d..c201fc5e9 100644 --- a/pkg/backup/backup.go +++ b/pkg/backup/backup.go @@ -1,5 +1,5 @@ /* -Copyright the Velero contributors. +Copyright the Velero Contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From a251fffc699165cfad130d8c342ecc3f50ac10f7 Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Tue, 8 Feb 2022 10:55:19 +0800 Subject: [PATCH 120/136] Make sure the tag-release script fail on any error Signed-off-by: Daniel Jiang --- hack/release-tools/tag-release.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hack/release-tools/tag-release.sh b/hack/release-tools/tag-release.sh index 964f558e8..a8591a899 100755 --- a/hack/release-tools/tag-release.sh +++ b/hack/release-tools/tag-release.sh @@ -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 )" From 491942cf2de685a6ba85a61b38b3c9338b7b1113 Mon Sep 17 00:00:00 2001 From: "F. Gold" Date: Wed, 9 Feb 2022 16:58:07 -0800 Subject: [PATCH 121/136] Simplify by assuming nil is false and use boolptr util function Signed-off-by: F. Gold --- pkg/backup/backup.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/pkg/backup/backup.go b/pkg/backup/backup.go index c201fc5e9..697be8500 100644 --- a/pkg/backup/backup.go +++ b/pkg/backup/backup.go @@ -47,6 +47,7 @@ import ( "github.com/vmware-tanzu/velero/pkg/plugin/velero" "github.com/vmware-tanzu/velero/pkg/podexec" "github.com/vmware-tanzu/velero/pkg/restic" + "github.com/vmware-tanzu/velero/pkg/util/boolptr" "github.com/vmware-tanzu/velero/pkg/util/collections" ) @@ -200,11 +201,7 @@ func (kb *kubernetesBackupper) BackupWithResolvers(log logrus.FieldLogger, backupRequest.ResourceIncludesExcludes = collections.GetResourceIncludesExcludes(kb.discoveryHelper, backupRequest.Spec.IncludedResources, backupRequest.Spec.ExcludedResources) log.Infof("Including resources: %s", backupRequest.ResourceIncludesExcludes.IncludesString()) log.Infof("Excluding resources: %s", backupRequest.ResourceIncludesExcludes.ExcludesString()) - if backupRequest.Backup.Spec.DefaultVolumesToRestic != nil { - log.Infof("Backing up all pod volumes using Restic: %t", *backupRequest.Backup.Spec.DefaultVolumesToRestic) - } else { - log.Infof("DefaultVolumesToRestic for backing up all pod volumes using Restic is %v", backupRequest.Backup.Spec.DefaultVolumesToRestic) - } + log.Infof("Backing up all pod volumes using Restic: %t", boolptr.IsSetToTrue(backupRequest.Backup.Spec.DefaultVolumesToRestic)) var err error backupRequest.ResourceHooks, err = getResourceHooks(backupRequest.Spec.Hooks.Resources, kb.discoveryHelper) From 6a61a418caba9a4eaf2aeddceec5bd5df4bc0d9c Mon Sep 17 00:00:00 2001 From: Ming Date: Mon, 14 Feb 2022 10:12:45 +0800 Subject: [PATCH 122/136] Fix E2E backup namespaces test Signed-off-by: Ming --- changelogs/unreleased/4634-qiuming-best | 1 + test/e2e/basic/resources-check/namespaces.go | 26 +++++++++++--------- test/e2e/test/test.go | 12 +++++++-- 3 files changed, 25 insertions(+), 14 deletions(-) create mode 100644 changelogs/unreleased/4634-qiuming-best diff --git a/changelogs/unreleased/4634-qiuming-best b/changelogs/unreleased/4634-qiuming-best new file mode 100644 index 000000000..b3569ea03 --- /dev/null +++ b/changelogs/unreleased/4634-qiuming-best @@ -0,0 +1 @@ +Fix E2E backup namespaces test diff --git a/test/e2e/basic/resources-check/namespaces.go b/test/e2e/basic/resources-check/namespaces.go index 73d1d4543..366e3adfb 100644 --- a/test/e2e/basic/resources-check/namespaces.go +++ b/test/e2e/basic/resources-check/namespaces.go @@ -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 } diff --git a/test/e2e/test/test.go b/test/e2e/test/test.go index 91a957ad4..5648c06de 100644 --- a/test/e2e/test/test.go +++ b/test/e2e/test/test.go @@ -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 } From 9419aa91a7f2c70c7fb2a1fc60b41c146d1b57b7 Mon Sep 17 00:00:00 2001 From: Xun Jiang Date: Mon, 14 Feb 2022 19:58:45 +0800 Subject: [PATCH 123/136] Update e2e test image to gcr.io By now, only busybox:latest is used by e2e. It is already upload to gcr.io/velero-gcp/busybox:latest Change the image to gcr.io to avoid pulling rate limitation from docker hub. Signed-off-by: Xun Jiang --- changelogs/unreleased/4639-jxun | 1 + test/e2e/util/k8s/deployment.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/4639-jxun diff --git a/changelogs/unreleased/4639-jxun b/changelogs/unreleased/4639-jxun new file mode 100644 index 000000000..a027b1b00 --- /dev/null +++ b/changelogs/unreleased/4639-jxun @@ -0,0 +1 @@ +Update image used by E2E test to gcr.io diff --git a/test/e2e/util/k8s/deployment.go b/test/e2e/util/k8s/deployment.go index 6763c3e9b..bfa1252a2 100644 --- a/test/e2e/util/k8s/deployment.go +++ b/test/e2e/util/k8s/deployment.go @@ -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"}, }, }, From 70d12ea16e5856acc40b5bb7defd7605146693cb Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Tue, 15 Feb 2022 19:13:26 +0800 Subject: [PATCH 124/136] Refine the release note of v1.8 Signed-off-by: Daniel Jiang --- changelogs/CHANGELOG-1.8.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/changelogs/CHANGELOG-1.8.md b/changelogs/CHANGELOG-1.8.md index 94e94a687..ed41f1d21 100644 --- a/changelogs/CHANGELOG-1.8.md +++ b/changelogs/CHANGELOG-1.8.md @@ -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,6 +26,13 @@ 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. + #### Break change Starting v1.8 velero will only support v1 CRD, therefore, it will only run on Kubernetes v1.16+ From e3685786faf7e42627de0b747b7fe21a1a3eabb1 Mon Sep 17 00:00:00 2001 From: "F. Gold" Date: Tue, 15 Feb 2022 10:53:46 -0800 Subject: [PATCH 125/136] Add delete BSL cleanup highlight and fixed grammar in heading Signed-off-by: F. Gold --- changelogs/CHANGELOG-1.8.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/changelogs/CHANGELOG-1.8.md b/changelogs/CHANGELOG-1.8.md index 94e94a687..9050fe6bf 100644 --- a/changelogs/CHANGELOG-1.8.md +++ b/changelogs/CHANGELOG-1.8.md @@ -26,7 +26,11 @@ 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 | -#### Break change +#### 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 @@ -89,4 +93,3 @@ Also added DownloadTargetKindBackupItemSnapshots for retrieving the signed URL t Part of the Upload Progress enhancement (#3533) (#4077, @dsmithuchida) * Add upgrade test in E2E test (#4058, @danfengliu) * Handle namespace mapping for PVs without snapshots on restore (#3708, @sseago) - From 768a30618f37a91c8c98283e4c30e051565540c8 Mon Sep 17 00:00:00 2001 From: bynare <1852531+bynare@users.noreply.github.com> Date: Wed, 16 Feb 2022 10:34:58 +1300 Subject: [PATCH 126/136] restic backupper: ignore volumes of non-running pods (#4584) --- changelogs/unreleased/4584-bynare | 1 + pkg/restic/backupper.go | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 changelogs/unreleased/4584-bynare diff --git a/changelogs/unreleased/4584-bynare b/changelogs/unreleased/4584-bynare new file mode 100644 index 000000000..008c138c4 --- /dev/null +++ b/changelogs/unreleased/4584-bynare @@ -0,0 +1 @@ +Skip volumes of non-running pods when backing up diff --git a/pkg/restic/backupper.go b/pkg/restic/backupper.go index 4e411c62d..fd366a36b 100644 --- a/pkg/restic/backupper.go +++ b/pkg/restic/backupper.go @@ -153,6 +153,11 @@ func (b *backupper) BackupPodVolumes(backup *velerov1api.Backup, pod *corev1api. } } + // ignore non-running pods + if pod.Status.Phase != corev1api.PodRunning { + log.Warnf("Skipping volume %s in pod %s/%s - pod not running", volumeName, pod.Namespace, pod.Name) + continue + } // hostPath volumes are not supported because they're not mounted into /var/lib/kubelet/pods, so our // daemonset pod has no way to access their data. isHostPath, err := isHostPathVolume(&volume, pvc, b.pvClient.PersistentVolumes()) @@ -165,11 +170,6 @@ func (b *backupper) BackupPodVolumes(backup *velerov1api.Backup, pod *corev1api. continue } - // emptyDir volumes on finished pods are not supported because the volume is already gone and would result in an error - if (pod.Status.Phase == corev1api.PodSucceeded || pod.Status.Phase == corev1api.PodFailed) && volume.EmptyDir != nil { - continue - } - // volumes that are not mounted by any container should not be backed up, because // its directory is not created if !mountedPodVolumes.Has(volumeName) { From b7b339b9c93416cc094141bf408b0f6cf647e71d Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Wed, 16 Feb 2022 05:37:21 +0800 Subject: [PATCH 127/136] Add more exempt labels for stalebot (#4641) --- .github/stale.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/stale.yml b/.github/stale.yml index 4c2adae9b..ce96631aa 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -14,9 +14,15 @@ exemptLabels: - Area/Design - Area/Documentation - Area/Plugins + - Bug - Enhancement/User + - kind/requirement + - kind/refactor - kind/tech-debt + - limitation - Needs investigation + - Needs triage + - Needs Product - P0 - Hair on fire - P1 - Important - P2 - Long-term important From 9fd241a1a0fbe19cbd48fe058901d9ba15726057 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wenkai=20Yin=28=E5=B0=B9=E6=96=87=E5=BC=80=29?= Date: Wed, 16 Feb 2022 08:27:44 +0800 Subject: [PATCH 128/136] Update release note to reflect the fix for #1980 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update release note to reflect the fix for #1980 Signed-off-by: Wenkai Yin(尹文开) --- changelogs/CHANGELOG-1.8.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelogs/CHANGELOG-1.8.md b/changelogs/CHANGELOG-1.8.md index ed41f1d21..178d5c911 100644 --- a/changelogs/CHANGELOG-1.8.md +++ b/changelogs/CHANGELOG-1.8.md @@ -32,6 +32,8 @@ By successfully running the E2E test on IPv6 dual stack environment, we've verfi 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. +#### Respect the cron setting of schedule +The creation time is taken into account to calculate the next run for scheduled backup. #### Break change Starting v1.8 velero will only support v1 CRD, therefore, it will only run on Kubernetes v1.16+ From bdcb6d3e981709ca2d4b4834e09dd576f8715a4e Mon Sep 17 00:00:00 2001 From: Abigail McCarthy Date: Wed, 16 Feb 2022 11:53:09 -0500 Subject: [PATCH 129/136] Copy edits for 1.8 release notes Signed-off-by: Abigail McCarthy --- changelogs/CHANGELOG-1.8.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/changelogs/CHANGELOG-1.8.md b/changelogs/CHANGELOG-1.8.md index 2a877c689..aad674ea6 100644 --- a/changelogs/CHANGELOG-1.8.md +++ b/changelogs/CHANGELOG-1.8.md @@ -15,8 +15,8 @@ https://velero.io/docs/v1.8/upgrade-to-1.8/ ### Highlights -#### 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. +#### Velero plugins now support handling volumes created by the CSI drivers of cloud providers +Versions 1.4 of the Velero plugins for AWS, Azure and GCP now support 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 cloud providers without using the Velero CSI plugin. The CSI plugin 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: @@ -27,13 +27,13 @@ For the version of the plugins and the CSI drivers they support respectively ple | 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. +We've verified the functionality of Velero on IPv6 dual stack by successfully running the E2E test on IPv6 dual stack environment. +#### Refactor the controllers using Kubebuilder v3 +In this release we continued our code modernization work, rewriting some controllers using Kubebuilder v3. This work is ongoing and we will continue to make progress in future releases. #### Enhancements to E2E test cases More test cases have been added to the E2E test suite to improve the release health. -#### Respect the cron setting of schedule -The creation time is taken into account to calculate the next run for scheduled backup. +#### Respect the cron setting of scheduled backup +The creation time is now taken into account to calculate the next run for scheduled backup. #### Deleting BSLs also cleans up related resources @@ -41,7 +41,7 @@ When a Backup Storage Location (BSL) is deleted, backup and Restic repository re #### Breaking changes -Starting v1.8 velero will only support v1 CRD, therefore, it will only run on Kubernetes v1.16+ +Starting in v1.8, Velero will only support Kubernetes v1 CRD meaning that Velero v1.8+ will only run on Kubernetes v1.16+. Before upgrading, make sure you are running a supported Kubernetes version. For more information, see our [compatibility matrix](https://github.com/vmware-tanzu/velero#velero-compatibility-matrix). ### All changes From 926f40170da3e4c64476b8602331774acd4dbfa1 Mon Sep 17 00:00:00 2001 From: "David L. Smith-Uchida" Date: Wed, 16 Feb 2022 10:30:11 -0800 Subject: [PATCH 130/136] Updates to 1.8 changelog Signed-off-by: David L. Smith-Uchida --- changelogs/CHANGELOG-1.8.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelogs/CHANGELOG-1.8.md b/changelogs/CHANGELOG-1.8.md index 94e94a687..f4635ef1c 100644 --- a/changelogs/CHANGELOG-1.8.md +++ b/changelogs/CHANGELOG-1.8.md @@ -29,6 +29,11 @@ For the version of the plugins and the CSI drivers they support respectively ple #### Break change Starting v1.8 velero will only support v1 CRD, therefore, it will only run on Kubernetes v1.16+ +#### Upload Progress Monitoring and Item Snapshotter +Item Snapshotter plugin API was merged. This will support both Upload Progress +monitoring and the planned Data Mover. Upload Progress monitoring PRs are +in progress for 1.9. + ### All changes * E2E test on ssr object with controller namespace mix-ups (#4521, @mqiu) From e0791a7fd0f826127dd776bd55c3e1e1baaa55cb Mon Sep 17 00:00:00 2001 From: Xun Jiang/Bruce Jiang <59276555+blackpiglet@users.noreply.github.com> Date: Thu, 17 Feb 2022 08:52:28 +0800 Subject: [PATCH 131/136] Add Xun Jiang's profile information into Velero Website. (#4620) Signed-off-by: Xun Jiang --- site/content/contributors/02-xun-jiang.md | 7 +++++++ site/static/img/contributors/xun-jiang.png | Bin 0 -> 262094 bytes 2 files changed, 7 insertions(+) create mode 100644 site/content/contributors/02-xun-jiang.md create mode 100644 site/static/img/contributors/xun-jiang.png diff --git a/site/content/contributors/02-xun-jiang.md b/site/content/contributors/02-xun-jiang.md new file mode 100644 index 000000000..0afc2dec7 --- /dev/null +++ b/site/content/contributors/02-xun-jiang.md @@ -0,0 +1,7 @@ +--- +first_name: Xun +last_name: Jiang +image: /img/contributors/xun-jiang.png +github_handle: blackpiglet +--- +Engineer \ No newline at end of file diff --git a/site/static/img/contributors/xun-jiang.png b/site/static/img/contributors/xun-jiang.png new file mode 100644 index 0000000000000000000000000000000000000000..24e6f05c93b6f4ad73a39bb472e197b0965c2d14 GIT binary patch literal 262094 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%0AC4Lq@RfJpQ(_tDUB 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

      Z3iji}5o_p69`(Tk7MHJ9rq4 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 Date: Thu, 17 Feb 2022 06:27:02 +0530 Subject: [PATCH 132/136] Add CloudCasa to "Adopters of Velero" section on velero.io (#4588) - Added CloudCasa logo - Added description of CloudCasa and its integration with Velero Signed-off-by: Kiran Kothule --- ADOPTERS.md | 12 +++++-- site/static/img/adopters/cloudcasa.svg | 50 ++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 site/static/img/adopters/cloudcasa.svg diff --git a/ADOPTERS.md b/ADOPTERS.md index 636c96e41..44f25513c 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -14,7 +14,7 @@ If you're using Velero and want to add your organization to this list, sighup.io      mayadata.io      replicated.com - +cloudcasa.io ## Success Stories Below is a list of adopters of Velero in **production environments** that have @@ -56,8 +56,11 @@ MayaData is a large user of Velero as well as a contributor. MayaData offers a D Okteto integrates Velero in [Okteto Cloud][94] and [Okteto Enterprise][95] to periodically backup and restore our clusters for disaster recovery. Velero is also a core software building block to provide namespace cloning capabilities, a feature that allows our users cloning staging environments into their personal development namespace for providing production-like development environments. **[Replicated][100]**
      -Replicated uses the Velero open source project to enable snapshots in [KOTS][101] to backup Kubernetes manifests & persistent volumes. In addition to the default functionality that Velero provides, [KOTS][101] provides a detailed interface in the [Admin Console][102] that can be used to manage the storage destination and schedule, and to perform and monitor the backup and restore process. -​ +Replicated uses the Velero open source project to enable snapshots in [KOTS][101] to backup Kubernetes manifests & persistent volumes. In addition to the default functionality that Velero provides, [KOTS][101] provides a detailed interface in the [Admin Console][102] that can be used to manage the storage destination and schedule, and to perform and monitor the backup and restore process.
      + +**[CloudCasa][103]**
      +[Catalogic Software][104] integrates Velero with [CloudCasa][103] - A Smart Home in the Cloud for Backups. CloudCasa is a simple, scalable, cloud-native solution providing data protection and disaster recovery as a service. This solution is built using Kubernetes for protecting Kubernetes clusters.
      + ## Adding your organization to the list of Velero Adopters If you are using Velero and would like to be included in the list of `Velero Adopters`, add an SVG version of your logo to the `site/static/img/adopters` directory in this repo and submit a [pull request][3] with your change. Name the image file something that reflects your company (e.g., if your company is called Acme, name the image acme.png). See this for an example [PR][4]. @@ -110,3 +113,6 @@ If you would like to add your logo to a future `Adopters of Velero` section on [ [100]: https://www.replicated.com [101]: https://kots.io [102]: https://kots.io/kotsadm/snapshots/overview/ + +[103]: https://cloudcasa.io/ +[104]: https://www.catalogicsoftware.com/ diff --git a/site/static/img/adopters/cloudcasa.svg b/site/static/img/adopters/cloudcasa.svg new file mode 100644 index 000000000..e93dc2416 --- /dev/null +++ b/site/static/img/adopters/cloudcasa.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From aedcdcccad4b2899686659e708bf1e8d5cc9a2a4 Mon Sep 17 00:00:00 2001 From: Jonas Rosland Date: Thu, 17 Feb 2022 14:28:19 -0500 Subject: [PATCH 133/136] Remove the office hours from the community page Signed-off-by: Jonas Rosland --- site/content/community/_index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/site/content/community/_index.md b/site/content/community/_index.md index b6740d946..bc57977b5 100644 --- a/site/content/community/_index.md +++ b/site/content/community/_index.md @@ -20,4 +20,3 @@ You can follow the work we do, see our milestones, and our backlog on our [GitHu * Read and comment on the [meeting notes](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA?view) * See previous community meetings on our [YouTube Channel](https://www.youtube.com/playlist?list=PL7bmigfV0EqQRysvqvqOtRNk4L5S7uqwM) * Have a question to discuss in the community meeting? Please add it to our [Q&A Discussion board](https://github.com/vmware-tanzu/velero/discussions/categories/community-support-q-a) -* Have a question about "how do I configure Velero to do X?", or "how can I backup X with Velero?", or "how do I start to contribute to Velero?" and would like to chat with us face to face, come join the [Velero Office Hours](https://hackmd.io/I3u1x0u9T46KhuYZN4LX-A?view) that's held twice per month. From 7be12a92206beb1ee11e5e9dcf4a09dd778605f8 Mon Sep 17 00:00:00 2001 From: Xun Jiang Date: Mon, 21 Feb 2022 22:04:21 +0800 Subject: [PATCH 134/136] [fix] Add regional PV support for GKE fix #4663. For GKE pv, when create backup, return all zones retrived from node affinity. Signed-off-by: Xun Jiang --- changelogs/unreleased/4680-jxun | 1 + pkg/backup/item_backupper.go | 16 +++++++++++++++- pkg/backup/item_backupper_test.go | 15 +++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/4680-jxun diff --git a/changelogs/unreleased/4680-jxun b/changelogs/unreleased/4680-jxun new file mode 100644 index 000000000..9d6b56ba2 --- /dev/null +++ b/changelogs/unreleased/4680-jxun @@ -0,0 +1 @@ +Support regional pv for GKE \ No newline at end of file diff --git a/pkg/backup/item_backupper.go b/pkg/backup/item_backupper.go index a2830484a..648447625 100644 --- a/pkg/backup/item_backupper.go +++ b/pkg/backup/item_backupper.go @@ -21,6 +21,7 @@ import ( "encoding/json" "fmt" "path/filepath" + "strings" "time" "github.com/pkg/errors" @@ -384,6 +385,7 @@ const ( awsEbsCsiZoneKey = "topology.ebs.csi.aws.com/zone" azureCsiZoneKey = "topology.disk.csi.azure.com/zone" gkeCsiZoneKey = "topology.gke.io/zone" + zoneSeparator = "__" ) // takePVSnapshot triggers a snapshot for the volume/disk underlying a PersistentVolume if the provided @@ -539,15 +541,27 @@ func zoneFromPVNodeAffinity(res *corev1api.PersistentVolume, topologyKeys ...str return "", "" } keySet := sets.NewString(topologyKeys...) + providerGke := false + zones := make([]string, 0) for _, term := range nodeAffinity.Required.NodeSelectorTerms { if term.MatchExpressions == nil { continue } for _, exp := range term.MatchExpressions { if keySet.Has(exp.Key) && exp.Operator == "In" && len(exp.Values) > 0 { - return exp.Key, exp.Values[0] + if exp.Key == gkeCsiZoneKey { + providerGke = true + zones = append(zones, exp.Values[0]) + } else { + return exp.Key, exp.Values[0] + } } } } + + if providerGke { + return gkeCsiZoneKey, strings.Join(zones, zoneSeparator) + } + return "", "" } diff --git a/pkg/backup/item_backupper_test.go b/pkg/backup/item_backupper_test.go index 819ca54d8..03ed7c017 100644 --- a/pkg/backup/item_backupper_test.go +++ b/pkg/backup/item_backupper_test.go @@ -131,6 +131,21 @@ func Test_zoneFromPVNodeAffinity(t *testing.T) { wantKey: "topology.disk.csi.azure.com/zone", wantValue: "us-central", }, + { + name: "Volume with multiple valid keys, and provider is gke, returns the all match", // it should never happen + pv: builder.ForPersistentVolume("multi-matching-pv").NodeAffinityRequired( + builder.ForNodeSelector( + *builder.NewNodeSelectorTermBuilder().WithMatchExpression("topology.gke.io/zone", + "In", "us-central1-c").Result(), + *builder.NewNodeSelectorTermBuilder().WithMatchExpression("topology.gke.io/zone", + "In", "us-east-2c", "us-east-2b").Result(), + *builder.NewNodeSelectorTermBuilder().WithMatchExpression("topology.gke.io/zone", + "In", "europe-north1-a").Result(), + ).Result(), + ).Result(), + wantKey: "topology.gke.io/zone", + wantValue: "us-central1-c__us-east-2c__europe-north1-a", + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { From 4c8d1c2693ba12a1b86feb0c1dea316643c6b3c0 Mon Sep 17 00:00:00 2001 From: Xun Jiang Date: Tue, 22 Feb 2022 16:06:39 +0800 Subject: [PATCH 135/136] Modify according to comments 1. rename zoneSeparator to gkeZoneSeparator 2. add example of regional PV's node affinity. modify test case description. Signed-off-by: Xun Jiang --- pkg/backup/item_backupper.go | 4 ++-- pkg/backup/item_backupper_test.go | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/pkg/backup/item_backupper.go b/pkg/backup/item_backupper.go index 648447625..32a9f5504 100644 --- a/pkg/backup/item_backupper.go +++ b/pkg/backup/item_backupper.go @@ -385,7 +385,7 @@ const ( awsEbsCsiZoneKey = "topology.ebs.csi.aws.com/zone" azureCsiZoneKey = "topology.disk.csi.azure.com/zone" gkeCsiZoneKey = "topology.gke.io/zone" - zoneSeparator = "__" + gkeZoneSeparator = "__" ) // takePVSnapshot triggers a snapshot for the volume/disk underlying a PersistentVolume if the provided @@ -560,7 +560,7 @@ func zoneFromPVNodeAffinity(res *corev1api.PersistentVolume, topologyKeys ...str } if providerGke { - return gkeCsiZoneKey, strings.Join(zones, zoneSeparator) + return gkeCsiZoneKey, strings.Join(zones, gkeZoneSeparator) } return "", "" diff --git a/pkg/backup/item_backupper_test.go b/pkg/backup/item_backupper_test.go index 03ed7c017..2152a5301 100644 --- a/pkg/backup/item_backupper_test.go +++ b/pkg/backup/item_backupper_test.go @@ -132,7 +132,22 @@ func Test_zoneFromPVNodeAffinity(t *testing.T) { wantValue: "us-central", }, { - name: "Volume with multiple valid keys, and provider is gke, returns the all match", // it should never happen + /* an valid example of node affinity in a GKE's regional PV + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: topology.gke.io/zone + operator: In + values: + - us-central1-a + - matchExpressions: + - key: topology.gke.io/zone + operator: In + values: + - us-central1-c + */ + name: "Volume with multiple valid keys, and provider is gke, returns all valid entries's first zone value", pv: builder.ForPersistentVolume("multi-matching-pv").NodeAffinityRequired( builder.ForNodeSelector( *builder.NewNodeSelectorTermBuilder().WithMatchExpression("topology.gke.io/zone", From 9cb81d825eb0dba6a0a6f59b08df9aa1f031e3d0 Mon Sep 17 00:00:00 2001 From: Xun Jiang Date: Wed, 23 Feb 2022 13:12:36 +0800 Subject: [PATCH 136/136] Add skip case support in e2e test Signed-off-by: Xun Jiang --- changelogs/unreleased/4692-jxun | 1 + test/e2e/Makefile | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/4692-jxun diff --git a/changelogs/unreleased/4692-jxun b/changelogs/unreleased/4692-jxun new file mode 100644 index 000000000..b18f53f86 --- /dev/null +++ b/changelogs/unreleased/4692-jxun @@ -0,0 +1 @@ +Add GINKGO_SKIP to support skip specific case in e2e test. \ No newline at end of file diff --git a/test/e2e/Makefile b/test/e2e/Makefile index cf8eacd24..b49829ab6 100644 --- a/test/e2e/Makefile +++ b/test/e2e/Makefile @@ -46,6 +46,7 @@ GINKGO := $(GOPATH)/bin/ginkgo KUSTOMIZE := $(TOOLS_BIN_DIR)/kustomize OUTPUT_DIR := _output/$(GOOS)/$(GOARCH)/bin GINKGO_FOCUS ?= +GINKGO_SKIP ?= VELERO_CLI ?=$$(pwd)/../../_output/bin/$(GOOS)/$(GOARCH)/velero VELERO_IMAGE ?= velero/velero:main VELERO_VERSION ?= $(VERSION) @@ -85,7 +86,7 @@ run: ginkgo (echo "Bucket to store the backups from E2E tests is required, please re-run with BSL_BUCKET="; exit 1 ) @[ "${CLOUD_PROVIDER}" ] && echo "Using cloud provider ${CLOUD_PROVIDER}" || \ (echo "Cloud provider for target cloud/plug-in provider is required, please rerun with CLOUD_PROVIDER="; exit 1) - @$(GINKGO) -v -focus="$(GINKGO_FOCUS)" . -- -velerocli=$(VELERO_CLI) \ + @$(GINKGO) -v -focus="$(GINKGO_FOCUS)" -skip="$(GINKGO_SKIP)" . -- -velerocli=$(VELERO_CLI) \ -velero-image=$(VELERO_IMAGE) \ -plugins=$(PLUGINS) \ -velero-version=$(VELERO_VERSION) \

      AjI(EJ}}d3T-=| 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�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

    2. IZ`LFqwfbe$eQ6t@&18)&3r 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 literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.8/contributions/img-for-tencent/1d53b0115644d43657c2a5ece805c9b4.png b/site/content/docs/v1.8/contributions/img-for-tencent/1d53b0115644d43657c2a5ece805c9b4.png new file mode 100644 index 0000000000000000000000000000000000000000..57de0cde0607257ac55de3ef30d834db31709587 GIT binary patch literal 74478 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 aL$88LY}It)7mk;}9|c(znS7~dKK~Cm_kk?{ literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.8/contributions/img-for-tencent/69194157ccd5e377d1e7d914fd8c0336.png b/site/content/docs/v1.8/contributions/img-for-tencent/69194157ccd5e377d1e7d914fd8c0336.png new file mode 100644 index 0000000000000000000000000000000000000000..f363eb1a78073b9a07ed91b046293d5f7224a7c8 GIT binary patch literal 32817 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∓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 literal 0 HcmV?d00001 diff --git a/site/content/docs/v1.8/contributions/img-for-tencent/ceaca9ce6bc92bdce987c63d2fe71561.png b/site/content/docs/v1.8/contributions/img-for-tencent/ceaca9ce6bc92bdce987c63d2fe71561.png new file mode 100644 index 0000000000000000000000000000000000000000..36805831bbe57b7118c9bc47bed1a7a7306c4f2c GIT binary patch literal 292269 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�N0#guo@BIW9C2ADdpl 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%0Au#9PG7pO??panqT21X0|4(e7D9cC1Mld6 z_sMn~2(tG8sj*-)Hr!Pp*5xRi@|??0@UHDw7l~o*Lmn3gRC47m4}zN9pD2%vs_qaV zO63EL)8<$d$rBjcFQ6LY2q`)3t@{c!B>x65WRpD4y-!`FKkd_T4~edb>oe~ocgL%8 zX(5h|X|q;RG)z0miyVW$W8iCVypAFmFd1?M^G`@VE%Kj&I=+&H%AJLOi7jt|>~ly!B9PDqPh)6M~AZI> z_j@dU>#qz|cxv^{OTCOM+plYg$38&Tr%qbL?Jt48%Rh6YS3=_j$pN}lPOm6X%4n6& z{@1o4+9AvP0-y8NXFi{u_wq?!x~Oq1!PQ1E79AgBF|6AVFAJhPU)0sme87cxjr+_Y z)@K)e%6CE8_{V#V(8+J(wsuCp|IX#_XPeC*`;ot~{Ll}6?{e?t0eZj?pbUhL7n|)u zH;Xnza@?!W+m7~yeWZ>IO>4TL$F}pCZ|O{vhlh2~=}Fx2C;gu5b@WxsHY~r&*s%Pi z^XPd_p5agHX;?k(Y!gmGR%21pQe{?=4IUUbzW(

    AjI(EJ}}d3T-=| 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�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