From 15fd547b30ab4e09915130fccdef5e7f9cd7502a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=A5=96=E5=BB=BA?= Date: Fri, 2 Dec 2022 15:13:55 +0800 Subject: [PATCH] fix policy route for subnets with logical gateway (#2108) --- pkg/controller/pod.go | 11 ++++++----- pkg/controller/subnet.go | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/pkg/controller/pod.go b/pkg/controller/pod.go index 9ef7cd620a2..63a7a7a810f 100644 --- a/pkg/controller/pod.go +++ b/pkg/controller/pod.go @@ -10,10 +10,6 @@ import ( "strings" "time" - kubeovnv1 "github.com/kubeovn/kube-ovn/pkg/apis/kubeovn/v1" - "github.com/kubeovn/kube-ovn/pkg/ipam" - "github.com/kubeovn/kube-ovn/pkg/ovs" - "github.com/kubeovn/kube-ovn/pkg/util" "gopkg.in/k8snetworkplumbingwg/multus-cni.v3/pkg/logging" multustypes "gopkg.in/k8snetworkplumbingwg/multus-cni.v3/pkg/types" v1 "k8s.io/api/core/v1" @@ -25,6 +21,11 @@ import ( "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/cache" "k8s.io/klog/v2" + + kubeovnv1 "github.com/kubeovn/kube-ovn/pkg/apis/kubeovn/v1" + "github.com/kubeovn/kube-ovn/pkg/ipam" + "github.com/kubeovn/kube-ovn/pkg/ovs" + "github.com/kubeovn/kube-ovn/pkg/util" ) func isPodAlive(p *v1.Pod) bool { @@ -805,7 +806,7 @@ func (c *Controller) handleUpdatePod(key string) error { podIP = pod.Annotations[fmt.Sprintf(util.IpAddressAnnotationTemplate, podNet.ProviderName)] subnet = podNet.Subnet - if podIP != "" && subnet.Spec.Vlan == "" && subnet.Spec.Vpc == util.DefaultVpc { + if podIP != "" && (subnet.Spec.Vlan == "" || subnet.Spec.LogicalGateway) && subnet.Spec.Vpc == util.DefaultVpc { node, err := c.nodesLister.Get(pod.Spec.NodeName) if err != nil { klog.Errorf("failed to get node %s: %v", pod.Spec.NodeName, err) diff --git a/pkg/controller/subnet.go b/pkg/controller/subnet.go index 9f442b5c0b2..b455aa4f2bf 100644 --- a/pkg/controller/subnet.go +++ b/pkg/controller/subnet.go @@ -1827,7 +1827,7 @@ func (c *Controller) deletePolicyRouteForDistributedSubnet(subnet *kubeovnv1.Sub } func (c *Controller) deletePolicyRouteByGatewayType(subnet *kubeovnv1.Subnet, gatewayType string, isDelete bool) error { - if subnet.Spec.Vlan != "" || subnet.Spec.Vpc != util.DefaultVpc { + if (subnet.Spec.Vlan != "" && !subnet.Spec.LogicalGateway) || subnet.Spec.Vpc != util.DefaultVpc { return nil }