From 286db706e9623766c0391761f0c064fd9a9afd1b 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, 20 Jun 2023 14:34:50 +0800 Subject: [PATCH] Restore Endpoints before Services (#6316) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Restore Endpoints before Services Fixes #6280 Signed-off-by: Wenkai Yin(尹文开) --- changelogs/unreleased/6316-ywk253100 | 1 + pkg/cmd/server/server.go | 6 +++++- pkg/uploader/provider/provider.go | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 changelogs/unreleased/6316-ywk253100 diff --git a/changelogs/unreleased/6316-ywk253100 b/changelogs/unreleased/6316-ywk253100 new file mode 100644 index 000000000..d96d6c1fc --- /dev/null +++ b/changelogs/unreleased/6316-ywk253100 @@ -0,0 +1 @@ +Restore Endpoints before Services \ No newline at end of file diff --git a/pkg/cmd/server/server.go b/pkg/cmd/server/server.go index b65cd4680..62d932ff7 100644 --- a/pkg/cmd/server/server.go +++ b/pkg/cmd/server/server.go @@ -514,10 +514,13 @@ High priorities: - Replica sets go before deployments/other controllers so they can be explicitly restored and be adopted by controllers. - CAPI ClusterClasses go before Clusters. + - Endpoints go before Services so no new Endpoints will be created + - Services go before Clusters so they can be adopted by AKO-operator and no new Services will be created + for the same clusters Low priorities: - Tanzu ClusterBootstraps go last as it can reference any other kind of resources. - ClusterBootstraps go before CAPI Clusters otherwise a new default ClusterBootstrap object is created for the cluster + - ClusterBootstraps go before CAPI Clusters otherwise a new default ClusterBootstrap object is created for the cluster - CAPI Clusters come before ClusterResourceSets because failing to do so means the CAPI controller-manager will panic. Both Clusters and ClusterResourceSets need to come before ClusterResourceSetBinding in order to properly restore workload clusters. See https://github.com/kubernetes-sigs/cluster-api/issues/4105 @@ -543,6 +546,7 @@ var defaultRestorePriorities = restore.Priorities{ // in the backup. "replicasets.apps", "clusterclasses.cluster.x-k8s.io", + "endpoints", "services", }, LowPriorities: []string{ diff --git a/pkg/uploader/provider/provider.go b/pkg/uploader/provider/provider.go index 3d0c452dc..042b9f440 100644 --- a/pkg/uploader/provider/provider.go +++ b/pkg/uploader/provider/provider.go @@ -71,7 +71,7 @@ func NewUploaderProvider( log logrus.FieldLogger, ) (Provider, error) { if credGetter.FromFile == nil { - return nil, errors.New("uninitialized FileStore credentail is not supported") + return nil, errors.New("uninitialized FileStore credential is not supported") } if uploaderType == uploader.KopiaType { // We use the hardcode repositoryType velerov1api.BackupRepositoryTypeKopia for now, because we have only one implementation of unified repo.