@@ -103,21 +103,14 @@ func (c *Controller) handleDelVpc(vpc *kubeovnv1.Vpc) error {
103
103
return err
104
104
}
105
105
106
- err := c .deleteVpcRouter (vpc .Status .Router )
107
- if err != nil {
108
- return err
109
- }
110
-
111
106
if err := c .handleDelVpcExternal (vpc .Name ); err != nil {
112
107
klog .Errorf ("failed to delete external connection for vpc %s, error %v" , vpc .Name , err )
113
108
return err
114
109
}
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
121
114
}
122
115
return nil
123
116
}
@@ -897,43 +890,46 @@ func (c *Controller) handleDeleteVpcStaticRoute(key string) error {
897
890
}
898
891
899
892
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
-
908
893
lspName := fmt .Sprintf ("%s-%s" , c .config .ExternalGatewaySwitch , key )
909
894
lrpName := fmt .Sprintf ("%s-%s" , key , c .config .ExternalGatewaySwitch )
910
895
klog .V (3 ).Infof ("delete vpc lrp %s" , lrpName )
911
-
912
896
if err := c .ovnClient .RemoveLogicalPatchPort (lspName , lrpName ); err != nil {
913
897
klog .Errorf ("failed to disconnect router '%s' to external, %v" , key , err )
914
898
return err
915
899
}
916
900
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
+ }
917
919
vpc := cachedVpc .DeepCopy ()
918
920
vpc .Status .EnableExternal = cachedVpc .Spec .EnableExternal
921
+ vpc .Status .EnableBfd = cachedVpc .Spec .EnableBfd
919
922
bytes , err := vpc .Status .Bytes ()
920
923
if err != nil {
924
+ klog .Errorf ("failed to marshal vpc status: %v" , err )
921
925
return err
922
926
}
923
927
if _ , err = c .config .KubeOvnClient .KubeovnV1 ().Vpcs ().Patch (context .Background (),
924
928
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
931
931
}
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 )
937
933
return err
938
934
}
939
935
return nil
0 commit comments