From 25099b35ecb9af40507776a3e495e8cc651df291 Mon Sep 17 00:00:00 2001 From: davidefalcone1 Date: Sun, 23 May 2021 15:20:57 +0000 Subject: [PATCH] Fix ExternalCIDR set before PodCIDR and ServiceCIDR --- .../tunnelEndpointCreator-config.go | 8 ++++---- pkg/liqonet/ipam_test.go | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/internal/liqonet/tunnelEndpointCreator/tunnelEndpointCreator-config.go b/internal/liqonet/tunnelEndpointCreator/tunnelEndpointCreator-config.go index 482f9d098b..63dd9aaf87 100644 --- a/internal/liqonet/tunnelEndpointCreator/tunnelEndpointCreator-config.go +++ b/internal/liqonet/tunnelEndpointCreator/tunnelEndpointCreator-config.go @@ -19,10 +19,6 @@ import ( func (tec *TunnelEndpointCreator) setNetParameters(config *configv1alpha1.ClusterConfig) { podCIDR := config.Spec.LiqonetConfig.PodCIDR serviceCIDR := config.Spec.LiqonetConfig.ServiceCIDR - externalCIDR, err := tec.IPManager.GetExternalCIDR(liqonet.GetMask(podCIDR)) - if err != nil { - klog.Error(err) - } if tec.PodCIDR != podCIDR { if err := tec.IPManager.SetPodCIDR(podCIDR); err != nil { klog.Error(err) @@ -37,6 +33,10 @@ func (tec *TunnelEndpointCreator) setNetParameters(config *configv1alpha1.Cluste klog.Infof("ServiceCIDR set to %s", serviceCIDR) tec.ServiceCIDR = serviceCIDR } + externalCIDR, err := tec.IPManager.GetExternalCIDR(liqonet.GetMask(podCIDR)) + if err != nil { + klog.Error(err) + } if tec.ExternalCIDR != externalCIDR { klog.Infof("ExternalCIDR set to %s", externalCIDR) tec.ExternalCIDR = externalCIDR diff --git a/pkg/liqonet/ipam_test.go b/pkg/liqonet/ipam_test.go index ed5ed5846c..3e9400abc0 100644 --- a/pkg/liqonet/ipam_test.go +++ b/pkg/liqonet/ipam_test.go @@ -510,6 +510,24 @@ var _ = Describe("Ipam", func() { Expect(err).ToNot(BeNil()) }) }) + Context("Call after SetPodCIDR", func() { + It("should return no errors", func() { + err := ipam.SetPodCIDR("10.0.0.0/24") + Expect(err).To(BeNil()) + _, err = ipam.GetExternalCIDR(24) + Expect(err).To(BeNil()) + }) + }) + Context("Call before SetPodCIDR", func() { + It("should produce an error in SetPodCIDR", func() { + _, err := ipam.GetExternalCIDR(24) + Expect(err).To(BeNil()) + // ExternalCIDR has been assigned "10.0.0.0/24", so the network + // is not available anymore. + err = ipam.SetPodCIDR("10.0.0.0/24") + Expect(err).ToNot(BeNil()) + }) + }) }) Describe("SetPodCIDR", func() {