Skip to content

Commit 62f3328

Browse files
authoredJul 12, 2023
fix lrp eip not clean (#3026)
1 parent 047af4a commit 62f3328

File tree

1 file changed

+27
-31
lines changed

1 file changed

+27
-31
lines changed
 

‎pkg/controller/vpc.go

+27-31
Original file line numberDiff line numberDiff line change
@@ -103,21 +103,14 @@ func (c *Controller) handleDelVpc(vpc *kubeovnv1.Vpc) error {
103103
return err
104104
}
105105

106-
err := c.deleteVpcRouter(vpc.Status.Router)
107-
if err != nil {
108-
return err
109-
}
110-
111106
if err := c.handleDelVpcExternal(vpc.Name); err != nil {
112107
klog.Errorf("failed to delete external connection for vpc %s, error %v", vpc.Name, err)
113108
return err
114109
}
115-
if vpc.Spec.EnableBfd || vpc.Status.EnableBfd {
116-
lrpEipName := fmt.Sprintf("%s-%s", vpc.Name, c.config.ExternalGatewaySwitch)
117-
if err := c.ovnClient.DeleteBFD(lrpEipName, ""); err != nil {
118-
klog.Error(err)
119-
return err
120-
}
110+
111+
err := c.deleteVpcRouter(vpc.Status.Router)
112+
if err != nil {
113+
return err
121114
}
122115
return nil
123116
}
@@ -897,43 +890,46 @@ func (c *Controller) handleDeleteVpcStaticRoute(key string) error {
897890
}
898891

899892
func (c *Controller) handleDelVpcExternal(key string) error {
900-
cachedVpc, err := c.vpcsLister.Get(key)
901-
if err != nil {
902-
if k8serrors.IsNotFound(err) {
903-
return nil
904-
}
905-
return err
906-
}
907-
908893
lspName := fmt.Sprintf("%s-%s", c.config.ExternalGatewaySwitch, key)
909894
lrpName := fmt.Sprintf("%s-%s", key, c.config.ExternalGatewaySwitch)
910895
klog.V(3).Infof("delete vpc lrp %s", lrpName)
911-
912896
if err := c.ovnClient.RemoveLogicalPatchPort(lspName, lrpName); err != nil {
913897
klog.Errorf("failed to disconnect router '%s' to external, %v", key, err)
914898
return err
915899
}
916900

901+
if err := c.config.KubeOvnClient.KubeovnV1().OvnEips().Delete(context.Background(), lrpName, metav1.DeleteOptions{}); err != nil {
902+
if !k8serrors.IsNotFound(err) {
903+
klog.Errorf("failed to delete ovn eip %s, %v", lrpName, err)
904+
return err
905+
}
906+
}
907+
if err := c.ovnClient.DeleteBFD(lrpName, ""); err != nil {
908+
klog.Error(err)
909+
return err
910+
}
911+
cachedVpc, err := c.vpcsLister.Get(key)
912+
if err != nil {
913+
if k8serrors.IsNotFound(err) {
914+
return nil
915+
}
916+
klog.Errorf("failed to get vpc %s, %v", key, err)
917+
return err
918+
}
917919
vpc := cachedVpc.DeepCopy()
918920
vpc.Status.EnableExternal = cachedVpc.Spec.EnableExternal
921+
vpc.Status.EnableBfd = cachedVpc.Spec.EnableBfd
919922
bytes, err := vpc.Status.Bytes()
920923
if err != nil {
924+
klog.Errorf("failed to marshal vpc status: %v", err)
921925
return err
922926
}
923927
if _, err = c.config.KubeOvnClient.KubeovnV1().Vpcs().Patch(context.Background(),
924928
vpc.Name, types.MergePatchType, bytes, metav1.PatchOptions{}, "status"); err != nil {
925-
return err
926-
}
927-
if err = c.config.KubeOvnClient.KubeovnV1().OvnEips().Delete(context.Background(), lrpName, metav1.DeleteOptions{}); err != nil {
928-
if !k8serrors.IsNotFound(err) {
929-
klog.Errorf("failed to delete ovn eip %s, %v", lrpName, err)
930-
return err
929+
if k8serrors.IsNotFound(err) {
930+
return nil
931931
}
932-
}
933-
934-
// del all vpc bfds
935-
if err := c.ovnClient.DeleteBFD(lrpName, ""); err != nil {
936-
klog.Error(err)
932+
klog.Errorf("failed to patch vpc %s, %v", key, err)
937933
return err
938934
}
939935
return nil

0 commit comments

Comments
 (0)
Please sign in to comment.