From 9399c1e1f64e2ae9df9004e0135d154f43201c4c Mon Sep 17 00:00:00 2001 From: bobz965 Date: Mon, 3 Apr 2023 16:23:45 +0800 Subject: [PATCH] fix log (#2586) * fix log * lsp set should ignore non ovn lsp ip --------- Co-authored-by: bobz965 <1220582684@qq.com> --- pkg/controller/init.go | 29 +++++----- pkg/controller/switch_lb_rule.go | 21 +++---- pkg/controller/vpc_dns.go | 49 ++++++++++------ pkg/controller/vpc_nat_gateway.go | 96 +++++++++++++++++++------------ 4 files changed, 116 insertions(+), 79 deletions(-) diff --git a/pkg/controller/init.go b/pkg/controller/init.go index 677dab30f9c..b7bb21374be 100644 --- a/pkg/controller/init.go +++ b/pkg/controller/init.go @@ -395,23 +395,24 @@ func (c *Controller) InitIPAM() error { klog.Errorf("failed to create/update ips CR %s.%s with ip address %s: %v", podName, pod.Namespace, ip, err) } } - - externalIDs := make(map[string]string, 3) - if _, ok := lspWithoutVendor[portName]; ok { - externalIDs["vendor"] = util.CniTypeName - externalIDs["pod"] = fmt.Sprintf("%s/%s", pod.Namespace, pod.Name) - } - if uuid := lspWithoutLS[portName]; uuid != "" { - for ls, ports := range lsPortsMap { - if _, ok := ports[uuid]; ok { - externalIDs[logicalSwitchKey] = ls - break + if podNet.ProviderName == util.OvnProvider || strings.HasSuffix(podNet.ProviderName, util.OvnProvider) { + externalIDs := make(map[string]string, 3) + if _, ok := lspWithoutVendor[portName]; ok { + externalIDs["vendor"] = util.CniTypeName + externalIDs["pod"] = fmt.Sprintf("%s/%s", pod.Namespace, pod.Name) + } + if uuid := lspWithoutLS[portName]; uuid != "" { + for ls, ports := range lsPortsMap { + if _, ok := ports[uuid]; ok { + externalIDs[logicalSwitchKey] = ls + break + } } } - } - if err = c.initAppendLspExternalIds(portName, externalIDs); err != nil { - klog.Errorf("failed to append external-ids for logical switch port %s: %v", portName, err) + if err = c.initAppendLspExternalIds(portName, externalIDs); err != nil { + klog.Errorf("failed to append external-ids for logical switch port %s: %v", portName, err) + } } } } diff --git a/pkg/controller/switch_lb_rule.go b/pkg/controller/switch_lb_rule.go index bd8c500167a..81652f0c872 100644 --- a/pkg/controller/switch_lb_rule.go +++ b/pkg/controller/switch_lb_rule.go @@ -149,15 +149,15 @@ func (c *Controller) handleAddOrUpdateSwitchLBRule(key string) error { svc := genHeadlessService(slr, oldSvc) if needToCreate { - _, err = c.config.KubeClient.CoreV1().Services(slr.Spec.Namespace).Create(context.Background(), svc, metav1.CreateOptions{}) - if err != nil { - klog.Errorf("failed to create service '%s', err: %v", svc, err) + if _, err = c.config.KubeClient.CoreV1().Services(slr.Spec.Namespace).Create(context.Background(), svc, metav1.CreateOptions{}); err != nil { + err := fmt.Errorf("failed to create service '%s', err: %v", svc, err) + klog.Error(err) return err } } else { - _, err = c.config.KubeClient.CoreV1().Services(slr.Spec.Namespace).Update(context.Background(), svc, metav1.UpdateOptions{}) - if err != nil { - klog.Errorf("failed to update service '%s', err: %v", svc, err) + if _, err = c.config.KubeClient.CoreV1().Services(slr.Spec.Namespace).Update(context.Background(), svc, metav1.UpdateOptions{}); err != nil { + err := fmt.Errorf("failed to update service '%s', err: %v", svc, err) + klog.Error(err) return err } } @@ -172,11 +172,12 @@ func (c *Controller) handleAddOrUpdateSwitchLBRule(key string) error { } formatPorts = fmt.Sprintf("%s,%d/%s", formatPorts, port.Port, protocol) } - newSlr.Status.Ports = strings.TrimPrefix(formatPorts, ",") - _, err = c.config.KubeOvnClient.KubeovnV1().SwitchLBRules().UpdateStatus(context.Background(), newSlr, metav1.UpdateOptions{}) - if err != nil { - klog.Errorf("update SwitchLBRule status failed, %v", err) + newSlr.Status.Ports = strings.TrimPrefix(formatPorts, ",") + if _, err = c.config.KubeOvnClient.KubeovnV1().SwitchLBRules().UpdateStatus(context.Background(), newSlr, metav1.UpdateOptions{}); err != nil { + err := fmt.Errorf("failed to update switch lb rule status, %v", err) + klog.Error(err) + return err } return nil diff --git a/pkg/controller/vpc_dns.go b/pkg/controller/vpc_dns.go index db884d4485c..d9cdf29ea79 100644 --- a/pkg/controller/vpc_dns.go +++ b/pkg/controller/vpc_dns.go @@ -139,7 +139,7 @@ func (c *Controller) handleAddOrUpdateVpcDns(key string) error { if !enableCoredns { time.Sleep(10 * time.Second) if !enableCoredns { - return fmt.Errorf("failed to add/update vpc-dns, enable ='%v'", enableCoredns) + return fmt.Errorf("failed to add or update vpc-dns, not enabled") } } @@ -158,59 +158,68 @@ func (c *Controller) handleAddOrUpdateVpcDns(key string) error { newVpcDns.Status.Active = false } - _, err = c.config.KubeOvnClient.KubeovnV1().VpcDnses().UpdateStatus(context.Background(), - newVpcDns, metav1.UpdateOptions{}) - if err != nil { - klog.Errorf("update vpc-dns status failed, %v", err) + if _, err = c.config.KubeOvnClient.KubeovnV1().VpcDnses().UpdateStatus(context.Background(), + newVpcDns, metav1.UpdateOptions{}); err != nil { + err := fmt.Errorf("failed to update vpc dns status, %v", err) + klog.Error(err) } }() if len(corednsImage) == 0 { - err := fmt.Errorf("failed to get the vpc-dns coredns image parameter") - klog.Errorf("failed to get corednsImage, err: %s", err) + err := fmt.Errorf("vpc-dns coredns image should be set") + klog.Error(err) return err } if len(corednsVip) == 0 { - err := fmt.Errorf("the configuration parameter corednsVip is empty") - klog.Errorf("failed to get corednsVip, err: %s", err) + err := fmt.Errorf("vpc-dns corednsVip should be set") + klog.Error(err) return err } if _, err := c.vpcsLister.Get(vpcDns.Spec.Vpc); err != nil { - klog.Errorf("failed to get vpc '%s', err: %v", vpcDns.Spec.Vpc, err) + err := fmt.Errorf("failed to get vpc '%s', err: %v", vpcDns.Spec.Vpc, err) + klog.Error(err) return err } if _, err := c.subnetsLister.Get(vpcDns.Spec.Subnet); err != nil { - klog.Errorf("failed to get subnet '%s', err: %v", vpcDns.Spec.Subnet, err) + err := fmt.Errorf("failed to get subnet '%s', err: %v", vpcDns.Spec.Subnet, err) + klog.Error(err) return err } if err := c.checkOvnNad(); err != nil { - klog.Errorf("failed to check nad, %v", err) + err := fmt.Errorf("failed to check nad, %v", err) + klog.Error(err) return err } - if err := c.checkOvnProvided(); err != nil { - klog.Errorf("failed to check %s provided, %v", util.DefaultSubnet, err) + if err := c.checkOvnDefaultSpecProvider(); err != nil { + err := fmt.Errorf("failed to check %s spec provider, %v", util.DefaultSubnet, err) + klog.Error(err) return err } if err := c.checkVpcDnsDuplicated(vpcDns); err != nil { - klog.Errorf("failed to deploy %s, %v", vpcDns.Name, err) + err = fmt.Errorf("failed to deploy %s, %v", vpcDns.Name, err) + klog.Error(err) return err } if err := c.createOrUpdateVpcDnsDep(vpcDns); err != nil { + err = fmt.Errorf("failed to create or update vpc dns %s, %v", vpcDns.Name, err) + klog.Error(err) return err } if err := c.createOrUpdateVpcDnsSlr(vpcDns); err != nil { + err = fmt.Errorf("failed to create or update slr for vpc dns %s, %v", vpcDns.Name, err) + klog.Error(err) return err } - return nil + return err } func (c *Controller) handleDelVpcDns(key string) error { @@ -218,13 +227,15 @@ func (c *Controller) handleDelVpcDns(key string) error { name := genVpcDnsDpName(key) err := c.config.KubeClient.AppsV1().Deployments(c.config.PodNamespace).Delete(context.Background(), name, metav1.DeleteOptions{}) if err != nil && !k8serrors.IsNotFound(err) { - klog.Errorf("failed to delete Deployments: %v", err) + err := fmt.Errorf("failed to delete vpc dns deployment: %v", err) + klog.Error(err) return err } err = c.config.KubeOvnClient.KubeovnV1().SwitchLBRules().Delete(context.Background(), name, metav1.DeleteOptions{}) if err != nil && !k8serrors.IsNotFound(err) { - klog.Errorf("failed to delete SwitchLBRule: %v", err) + err := fmt.Errorf("failed to delete switch lb rule: %v", err) + klog.Error(err) return err } return nil @@ -482,7 +493,7 @@ func (c *Controller) checkOvnNad() error { return nil } -func (c *Controller) checkOvnProvided() error { +func (c *Controller) checkOvnDefaultSpecProvider() error { cachedSubnet, err := c.subnetsLister.Get(util.DefaultSubnet) if err != nil { return fmt.Errorf("failed to get default subnet %v", err) diff --git a/pkg/controller/vpc_nat_gateway.go b/pkg/controller/vpc_nat_gateway.go index 85fc50cbaee..f315551bb82 100644 --- a/pkg/controller/vpc_nat_gateway.go +++ b/pkg/controller/vpc_nat_gateway.go @@ -187,9 +187,7 @@ func (c *Controller) processNextWorkItem(processName string, queue workqueue.Rat return nil } if err := handler(key); err != nil { - if !k8serrors.IsNotFound(err) { - return fmt.Errorf("error syncing '%s': %s, requeuing", key, err.Error()) - } + return fmt.Errorf("error syncing '%s': %s, requeuing", key, err.Error()) } queue.Forget(obj) return nil @@ -233,11 +231,13 @@ func (c *Controller) handleAddOrUpdateVpcNatGw(key string) error { return err } if _, err := c.vpcsLister.Get(gw.Spec.Vpc); err != nil { - klog.Errorf("failed to get vpc '%s', err: %v", gw.Spec.Vpc, err) + err = fmt.Errorf("failed to get vpc '%s', err: %v", gw.Spec.Vpc, err) + klog.Error(err) return err } if _, err := c.subnetsLister.Get(gw.Spec.Subnet); err != nil { - klog.Errorf("failed to get subnet '%s', err: %v", gw.Spec.Subnet, err) + err = fmt.Errorf("failed to get subnet '%s', err: %v", gw.Spec.Subnet, err) + klog.Error(err) return err } @@ -257,20 +257,19 @@ func (c *Controller) handleAddOrUpdateVpcNatGw(key string) error { newSts := c.genNatGwStatefulSet(gw, oldSts.DeepCopy()) if needToCreate { - _, err := c.config.KubeClient.AppsV1().StatefulSets(c.config.PodNamespace). - Create(context.Background(), newSts, metav1.CreateOptions{}) // if pod create successfully, will add initVpcNatGatewayQueue - if err != nil { - klog.Errorf("failed to create statefulset '%s', err: %v", newSts.Name, err) + if _, err := c.config.KubeClient.AppsV1().StatefulSets(c.config.PodNamespace). + Create(context.Background(), newSts, metav1.CreateOptions{}); err != nil { + err := fmt.Errorf("failed to create statefulset '%s', err: %v", newSts.Name, err) + klog.Error(err) return err } return nil } else { - _, err := c.config.KubeClient.AppsV1().StatefulSets(c.config.PodNamespace). - Update(context.Background(), newSts, metav1.UpdateOptions{}) - - if err != nil { - klog.Errorf("failed to update statefulset '%s', err: %v", newSts.Name, err) + if _, err := c.config.KubeClient.AppsV1().StatefulSets(c.config.PodNamespace). + Update(context.Background(), newSts, metav1.UpdateOptions{}); err != nil { + err := fmt.Errorf("failed to update statefulset '%s', err: %v", newSts.Name, err) + klog.Error(err) return err } } @@ -298,12 +297,15 @@ func (c *Controller) handleInitVpcNatGw(key string) error { } if err := c.updateCrdNatGw(gw.Name); err != nil { - klog.Errorf("failed to update nat gw: %v", gw.Name, err) + err := fmt.Errorf("failed to update nat gw %s: %v", gw.Name, err) + klog.Error(err) return err } oriPod, err := c.getNatGwPod(key) if err != nil { + err := fmt.Errorf("failed to get nat gw %s pod: %v", gw.Name, err) + klog.Error(err) return err } pod := oriPod.DeepCopy() @@ -319,7 +321,8 @@ func (c *Controller) handleInitVpcNatGw(key string) error { NAT_GW_CREATED_AT = pod.CreationTimestamp.Format("2006-01-02T15:04:05") klog.V(3).Infof("nat gw pod '%s' inited at %s", key, NAT_GW_CREATED_AT) if err = c.execNatGwRules(pod, natGwInit, []string{v4Cidr}); err != nil { - klog.Errorf("failed to init vpc nat gateway, %v", err) + err = fmt.Errorf("failed to init vpc nat gateway, %v", err) + klog.Error(err) return err } c.updateVpcFloatingIpQueue.Add(key) @@ -334,7 +337,8 @@ func (c *Controller) handleInitVpcNatGw(key string) error { } if _, err := c.config.KubeClient.CoreV1().Pods(pod.Namespace).Patch(context.Background(), pod.Name, types.StrategicMergePatchType, patch, metav1.PatchOptions{}, ""); err != nil { - klog.Errorf("patch pod %s/%s failed %v", pod.Name, pod.Namespace, err) + err := fmt.Errorf("patch pod %s/%s failed %v", pod.Name, pod.Namespace, err) + klog.Error(err) return err } return nil @@ -348,7 +352,8 @@ func (c *Controller) handleUpdateVpcFloatingIp(natGwKey string) error { defer c.vpcNatGwKeyMutex.Unlock(natGwKey) // refresh exist fips if err := c.initCreateAt(natGwKey); err != nil { - klog.Errorf("failed to init nat gw pod '%s' create at, %v", natGwKey, err) + err = fmt.Errorf("failed to init nat gw pod '%s' create at, %v", natGwKey, err) + klog.Error(err) return err } @@ -357,7 +362,8 @@ func (c *Controller) handleUpdateVpcFloatingIp(natGwKey string) error { }) if err != nil { - klog.Errorf("failed to get all fips, %v", err) + err := fmt.Errorf("failed to get all fips, %v", err) + klog.Error(err) return err } @@ -365,7 +371,7 @@ func (c *Controller) handleUpdateVpcFloatingIp(natGwKey string) error { if fip.Status.Redo != NAT_GW_CREATED_AT { klog.V(3).Infof("redo fip %s", fip.Name) if err = c.redoFip(fip.Name, NAT_GW_CREATED_AT, false); err != nil { - klog.Errorf("failed to update eip '%s' to make sure applied, %v", fip.Spec.EIP, err) + klog.Errorf("failed to update eip '%s' to re-apply, %v", fip.Spec.EIP, err) return err } } @@ -381,19 +387,22 @@ func (c *Controller) handleUpdateVpcEip(natGwKey string) error { defer c.vpcNatGwKeyMutex.Unlock(natGwKey) // refresh exist fips if err := c.initCreateAt(natGwKey); err != nil { - klog.Errorf("failed to init nat gw pod '%s' create at, %v", natGwKey, err) + err = fmt.Errorf("failed to init nat gw pod '%s' create at, %v", natGwKey, err) + klog.Error(err) return err } eips, err := c.config.KubeOvnClient.KubeovnV1().IptablesEIPs().List(context.Background(), metav1.ListOptions{}) if err != nil { - klog.Errorf("failed to get eip list, %v", err) + err = fmt.Errorf("failed to get eip list, %v", err) + klog.Error(err) return err } for _, eip := range eips.Items { if eip.Spec.NatGwDp == natGwKey && eip.Status.Redo != NAT_GW_CREATED_AT && eip.Annotations[util.VpcNatAnnotation] == "" { klog.V(3).Infof("redo eip %s", eip.Name) if err = c.patchEipStatus(eip.Name, "", NAT_GW_CREATED_AT, "", false); err != nil { - klog.Errorf("failed to update eip '%s' to make sure applied, %v", eip.Name, err) + err = fmt.Errorf("failed to update eip '%s' to re-apply, %v", eip.Name, err) + klog.Error(err) return err } } @@ -409,21 +418,24 @@ func (c *Controller) handleUpdateVpcSnat(natGwKey string) error { defer c.vpcNatGwKeyMutex.Unlock(natGwKey) // refresh exist snats if err := c.initCreateAt(natGwKey); err != nil { - klog.Errorf("failed to init nat gw pod '%s' create at, %v", natGwKey, err) + err = fmt.Errorf("failed to init nat gw pod '%s' create at, %v", natGwKey, err) + klog.Error(err) return err } snats, err := c.config.KubeOvnClient.KubeovnV1().IptablesSnatRules().List(context.Background(), metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector(util.VpcNatGatewayNameLabel, natGwKey).String(), }) if err != nil { - klog.Errorf("failed to get all snats, %v", err) + err = fmt.Errorf("failed to get all snats, %v", err) + klog.Error(err) return err } for _, snat := range snats.Items { if snat.Status.Redo != NAT_GW_CREATED_AT { klog.V(3).Infof("redo snat %s", snat.Name) if err = c.redoSnat(snat.Name, NAT_GW_CREATED_AT, false); err != nil { - klog.Errorf("failed to update eip '%s' to make sure applied, %v", snat.Spec.EIP, err) + err = fmt.Errorf("failed to update eip '%s' to re-apply, %v", snat.Spec.EIP, err) + klog.Error(err) return err } } @@ -439,7 +451,8 @@ func (c *Controller) handleUpdateVpcDnat(natGwKey string) error { defer c.vpcNatGwKeyMutex.Unlock(natGwKey) // refresh exist dnats if err := c.initCreateAt(natGwKey); err != nil { - klog.Errorf("failed to init nat gw pod '%s' create at, %v", natGwKey, err) + err = fmt.Errorf("failed to init nat gw pod '%s' create at, %v", natGwKey, err) + klog.Error(err) return err } @@ -447,14 +460,16 @@ func (c *Controller) handleUpdateVpcDnat(natGwKey string) error { LabelSelector: fields.OneTermEqualSelector(util.VpcNatGatewayNameLabel, natGwKey).String(), }) if err != nil { - klog.Errorf("failed to get all dnats, %v", err) + err = fmt.Errorf("failed to get all dnats, %v", err) + klog.Error(err) return err } for _, dnat := range dnats.Items { if dnat.Status.Redo != NAT_GW_CREATED_AT { klog.V(3).Infof("redo dnat %s", dnat.Name) if err = c.redoDnat(dnat.Name, NAT_GW_CREATED_AT, false); err != nil { - klog.Errorf("failed to update dnat '%s' to make sure applied, %v", dnat.Name, err) + err := fmt.Errorf("failed to update dnat '%s' to redo, %v", dnat.Name, err) + klog.Error(err) return err } } @@ -508,6 +523,8 @@ func (c *Controller) handleUpdateNatGwSubnetRoute(natGwKey string) error { oriPod, err := c.getNatGwPod(natGwKey) if err != nil { + err = fmt.Errorf("failed to get nat gw '%s' pod, %v", natGwKey, err) + klog.Error(err) return err } pod := oriPod.DeepCopy() @@ -521,17 +538,20 @@ func (c *Controller) handleUpdateNatGwSubnetRoute(natGwKey string) error { } extRules = append(extRules, fmt.Sprintf("%s,%s", v4ExternalCidr, v4ExternalGw)) if err = c.execNatGwRules(pod, natGwExtSubnetRouteAdd, extRules); err != nil { - klog.Errorf("failed to exec nat gateway rule, err: %v", err) + err = fmt.Errorf("failed to exec nat gateway rule, err: %v", err) + klog.Error(err) return err } if v4InternalGw, _, err = c.GetGwBySubnet(gw.Spec.Subnet); err != nil { - klog.Errorf("failed to get gw, err: %v", err) + err = fmt.Errorf("failed to get gw, err: %v", err) + klog.Error(err) return err } vpc, err := c.vpcsLister.Get(gw.Spec.Vpc) if err != nil { - klog.Errorf("failed to get vpc, err: %v", err) + err = fmt.Errorf("failed to get vpc, err: %v", err) + klog.Error(err) return err } @@ -541,7 +561,8 @@ func (c *Controller) handleUpdateNatGwSubnetRoute(natGwKey string) error { for _, s := range vpc.Status.Subnets { subnet, ok := c.ipam.Subnets[s] if !ok { - klog.Errorf("failed to get subnet, err: %v", err) + err = fmt.Errorf("failed to get subnet, err: %v", err) + klog.Error(err) return err } newCIDRS = append(newCIDRS, subnet.V4CIDR.String()) @@ -567,7 +588,8 @@ func (c *Controller) handleUpdateNatGwSubnetRoute(natGwKey string) error { } if len(rules) > 0 { if err = c.execNatGwRules(pod, natGwSubnetRouteAdd, rules); err != nil { - klog.Errorf("failed to exec nat gateway rule, err: %v", err) + err = fmt.Errorf("failed to exec nat gateway rule, err: %v", err) + klog.Error(err) return err } } @@ -576,7 +598,8 @@ func (c *Controller) handleUpdateNatGwSubnetRoute(natGwKey string) error { if len(toBeDelCIDRs) > 0 { for _, cidr := range toBeDelCIDRs { if err = c.execNatGwRules(pod, natGwSubnetRouteDel, []string{cidr}); err != nil { - klog.Errorf("failed to exec nat gateway rule, err: %v", err) + err = fmt.Errorf("failed to exec nat gateway rule, err: %v", err) + klog.Error(err) return err } } @@ -594,7 +617,8 @@ func (c *Controller) handleUpdateNatGwSubnetRoute(natGwKey string) error { } if _, err := c.config.KubeClient.CoreV1().Pods(pod.Namespace).Patch(context.Background(), pod.Name, types.StrategicMergePatchType, patch, metav1.PatchOptions{}, ""); err != nil { - klog.Errorf("patch pod %s/%s failed %v", pod.Name, pod.Namespace, err) + err = fmt.Errorf("patch pod %s/%s failed %v", pod.Name, pod.Namespace, err) + klog.Error(err) return err }