diff --git a/changelogs/unreleased/6288-ywk253100 b/changelogs/unreleased/6288-ywk253100 new file mode 100644 index 000000000..e54a45042 --- /dev/null +++ b/changelogs/unreleased/6288-ywk253100 @@ -0,0 +1 @@ +Hardcode the restore order for IPAM resources \ No newline at end of file diff --git a/pkg/cmd/server/server.go b/pkg/cmd/server/server.go index ba8b5685b..840a11f08 100644 --- a/pkg/cmd/server/server.go +++ b/pkg/cmd/server/server.go @@ -510,10 +510,11 @@ func (s *server) veleroResourcesExist() error { // - CAPI ClusterClasses go before Clusters. // - Services go before Clusters so they can be adopted by AKO-operator and no new Services will be created // for the same clusters +// - IPAM GlobalInClusterPool/InClusterPool/IPAddress go before IPAddressClaim so no new IPAddress is created for the claim // // 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 @@ -539,6 +540,10 @@ var defaultRestorePriorities = restore.Priorities{ "replicasets.apps", "clusterclasses.cluster.x-k8s.io", "services", + "globalinclusterippools.ipam.cluster.x-k8s.io", + "inclusterippools.ipam.cluster.x-k8s.io", + "ipaddresses.ipam.cluster.x-k8s.io", + "ipaddressclaims.ipam.cluster.x-k8s.io", }, LowPriorities: []string{ "clusterbootstraps.run.tanzu.vmware.com",