From f8911322acbf87e446d3e74d7cb4e6b0cf30486f Mon Sep 17 00:00:00 2001 From: bobz965 Date: Thu, 22 Aug 2024 13:48:13 +0800 Subject: [PATCH 1/4] fix: init default vpc Signed-off-by: bobz965 --- pkg/controller/init.go | 46 ++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/pkg/controller/init.go b/pkg/controller/init.go index 70ee96dda98..6611d6ff880 100644 --- a/pkg/controller/init.go +++ b/pkg/controller/init.go @@ -66,31 +66,37 @@ func (c *Controller) InitOVN() error { func (c *Controller) InitDefaultVpc() error { cachedVpc, err := c.vpcsLister.Get(c.config.ClusterRouter) - if !k8serrors.IsNotFound(err) { - klog.Errorf("get default vpc %s failed: %v", c.config.DefaultLogicalSwitch, err) - return err - } - - if k8serrors.IsNotFound(err) { - vpc := &kubeovnv1.Vpc{ - ObjectMeta: metav1.ObjectMeta{Name: c.config.ClusterRouter}, - } - cachedVpc, err = c.config.KubeOvnClient.KubeovnV1().Vpcs().Create(context.Background(), vpc, metav1.CreateOptions{}) - if err != nil { - klog.Errorf("init default vpc failed: %v", err) + if err != nil { + if !k8serrors.IsNotFound(err) { + klog.Errorf("failed to get default vpc %q: %v", c.config.ClusterRouter, err) return err } + + if k8serrors.IsNotFound(err) { + vpc := &kubeovnv1.Vpc{ + ObjectMeta: metav1.ObjectMeta{Name: c.config.ClusterRouter}, + } + cachedVpc, err = c.config.KubeOvnClient.KubeovnV1().Vpcs().Create(context.Background(), vpc, metav1.CreateOptions{}) + if err != nil { + klog.Errorf("failed to create default vpc %q: %v", c.config.ClusterRouter, err) + return err + } + } } vpc := cachedVpc.DeepCopy() - vpc.Status.DefaultLogicalSwitch = c.config.DefaultLogicalSwitch - vpc.Status.Router = c.config.ClusterRouter - vpc.Status.Standby = true - vpc.Status.Default = true - - if _, err = c.config.KubeOvnClient.KubeovnV1().Vpcs().UpdateStatus(context.Background(), vpc, metav1.UpdateOptions{}); err != nil { - klog.Errorf("init default vpc failed: %v", err) - return err + if !vpc.Status.Default || !vpc.Status.Standby || + vpc.Status.Router != c.config.ClusterRouter || + vpc.Status.DefaultLogicalSwitch != c.config.DefaultLogicalSwitch { + vpc.Status.Standby = true + vpc.Status.Default = true + vpc.Status.Router = c.config.ClusterRouter + vpc.Status.DefaultLogicalSwitch = c.config.DefaultLogicalSwitch + + if _, err = c.config.KubeOvnClient.KubeovnV1().Vpcs().UpdateStatus(context.Background(), vpc, metav1.UpdateOptions{}); err != nil { + klog.Errorf("failed to update default vpc %q: %v", c.config.ClusterRouter, err) + return err + } } return nil From 3f9a854661693024b2e8e4e07a61caf1cedc8086 Mon Sep 17 00:00:00 2001 From: bobz965 Date: Thu, 22 Aug 2024 14:32:51 +0800 Subject: [PATCH 2/4] fix: log Signed-off-by: bobz965 --- pkg/controller/init.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/pkg/controller/init.go b/pkg/controller/init.go index 6611d6ff880..ae133f56a50 100644 --- a/pkg/controller/init.go +++ b/pkg/controller/init.go @@ -153,8 +153,11 @@ func (c *Controller) initDefaultLogicalSwitch() error { defaultSubnet.Spec.U2OInterconnection = c.config.DefaultU2OInterconnection } - _, err = c.config.KubeOvnClient.KubeovnV1().Subnets().Create(context.Background(), &defaultSubnet, metav1.CreateOptions{}) - return err + if _, err = c.config.KubeOvnClient.KubeovnV1().Subnets().Create(context.Background(), &defaultSubnet, metav1.CreateOptions{}); err != nil { + klog.Errorf("failed to create default subnet %q: %v", c.config.DefaultLogicalSwitch, err) + return err + } + return nil } // InitNodeSwitch init node switch to connect host and pod @@ -195,9 +198,8 @@ func (c *Controller) initNodeSwitch() error { }, } - _, err = c.config.KubeOvnClient.KubeovnV1().Subnets().Create(context.Background(), &nodeSubnet, metav1.CreateOptions{}) - if err != nil { - klog.Errorf("failed to create subnet %s: %v", c.config.NodeSwitch, err) + if _, err = c.config.KubeOvnClient.KubeovnV1().Subnets().Create(context.Background(), &nodeSubnet, metav1.CreateOptions{}); err != nil { + klog.Errorf("failed to create node subnet %q: %v", c.config.NodeSwitch, err) return err } return nil @@ -282,8 +284,7 @@ func (c *Controller) initLoadBalancer() error { klog.Error(err) return err } - _, err = c.config.KubeOvnClient.KubeovnV1().Vpcs().Patch(context.Background(), vpc.Name, types.MergePatchType, bytes, metav1.PatchOptions{}, "status") - if err != nil { + if _, err = c.config.KubeOvnClient.KubeovnV1().Vpcs().Patch(context.Background(), vpc.Name, types.MergePatchType, bytes, metav1.PatchOptions{}, "status"); err != nil { klog.Error(err) return err } @@ -692,7 +693,7 @@ func (c *Controller) syncVpcNatGatewayCR() error { // get vpc nat gateway enable state cm, err := c.configMapsLister.ConfigMaps(c.config.PodNamespace).Get(util.VpcNatGatewayConfig) if err != nil && !k8serrors.IsNotFound(err) { - klog.Errorf("failed to get %s, %v", util.VpcNatGatewayConfig, err) + klog.Errorf("failed to get config map %s, %v", util.VpcNatGatewayConfig, err) return err } if k8serrors.IsNotFound(err) || cm.Data["enable-vpc-nat-gw"] == "false" { @@ -702,15 +703,15 @@ func (c *Controller) syncVpcNatGatewayCR() error { cm, err = c.configMapsLister.ConfigMaps(c.config.PodNamespace).Get(util.VpcNatConfig) if err != nil { if k8serrors.IsNotFound(err) { - klog.Errorf("configMap of %s not set, %v", util.VpcNatConfig, err) + klog.Errorf("should set config map for vpc-nat-gateway %s, %v", util.VpcNatConfig, err) return err } - klog.Errorf("failed to get %s, %v", util.VpcNatConfig, err) + klog.Errorf("failed to get config map %s, %v", util.VpcNatConfig, err) return err } if cm.Data["image"] == "" { - err = errors.New("image of vpc-nat-gateway not set") + err = errors.New("should set image for vpc-nat-gateway pod") klog.Error(err) return err } From 789d4f3053a934966c990f86498eadae07a9bec3 Mon Sep 17 00:00:00 2001 From: bobz965 Date: Fri, 23 Aug 2024 10:01:43 +0800 Subject: [PATCH 3/4] Update pkg/controller/init.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 张祖建 --- pkg/controller/init.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/controller/init.go b/pkg/controller/init.go index ae133f56a50..5f502df9237 100644 --- a/pkg/controller/init.go +++ b/pkg/controller/init.go @@ -72,7 +72,6 @@ func (c *Controller) InitDefaultVpc() error { return err } - if k8serrors.IsNotFound(err) { vpc := &kubeovnv1.Vpc{ ObjectMeta: metav1.ObjectMeta{Name: c.config.ClusterRouter}, } From 0b906f8b1b449d340bd84061167353fa8ed14bb2 Mon Sep 17 00:00:00 2001 From: bobz965 Date: Fri, 23 Aug 2024 02:22:36 +0000 Subject: [PATCH 4/4] fix after review Signed-off-by: bobz965 --- pkg/controller/init.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkg/controller/init.go b/pkg/controller/init.go index 5f502df9237..1878e31207f 100644 --- a/pkg/controller/init.go +++ b/pkg/controller/init.go @@ -71,18 +71,18 @@ func (c *Controller) InitDefaultVpc() error { klog.Errorf("failed to get default vpc %q: %v", c.config.ClusterRouter, err) return err } - - vpc := &kubeovnv1.Vpc{ - ObjectMeta: metav1.ObjectMeta{Name: c.config.ClusterRouter}, - } - cachedVpc, err = c.config.KubeOvnClient.KubeovnV1().Vpcs().Create(context.Background(), vpc, metav1.CreateOptions{}) - if err != nil { - klog.Errorf("failed to create default vpc %q: %v", c.config.ClusterRouter, err) - return err - } + // create default vpc + vpc := &kubeovnv1.Vpc{ + ObjectMeta: metav1.ObjectMeta{Name: c.config.ClusterRouter}, + } + cachedVpc, err = c.config.KubeOvnClient.KubeovnV1().Vpcs().Create(context.Background(), vpc, metav1.CreateOptions{}) + if err != nil { + klog.Errorf("failed to create default vpc %q: %v", c.config.ClusterRouter, err) + return err } } + // update default vpc status vpc := cachedVpc.DeepCopy() if !vpc.Status.Default || !vpc.Status.Standby || vpc.Status.Router != c.config.ClusterRouter ||