@@ -915,239 +915,6 @@ var _ = ginkgo.Describe("Cluster Manager", func() {
915915 })
916916 gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
917917 })
918-
919- ginkgo .It ("clear the node annotations for gateway router port ips and check" , func () {
920- app .Action = func (ctx * cli.Context ) error {
921- nodes := []corev1.Node {
922- {
923- ObjectMeta : metav1.ObjectMeta {
924- Name : "node1" ,
925- },
926- },
927- {
928- ObjectMeta : metav1.ObjectMeta {
929- Name : "node2" ,
930- },
931- },
932- {
933- ObjectMeta : metav1.ObjectMeta {
934- Name : "node3" ,
935- },
936- },
937- }
938- kubeFakeClient := fake .NewSimpleClientset (& corev1.NodeList {
939- Items : nodes ,
940- })
941- fakeClient := & util.OVNClusterManagerClientset {
942- KubeClient : kubeFakeClient ,
943- }
944-
945- _ , err := config .InitConfig (ctx , nil , nil )
946- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
947- config .Kubernetes .HostNetworkNamespace = ""
948-
949- f , err = factory .NewClusterManagerWatchFactory (fakeClient )
950- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
951- err = f .Start ()
952- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
953-
954- clusterManager , err := NewClusterManager (fakeClient , f , "identity" , nil )
955- gomega .Expect (clusterManager ).NotTo (gomega .BeNil ())
956- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
957- err = clusterManager .Start (ctx .Context )
958- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
959- defer clusterManager .Stop ()
960-
961- nodeAddrs := make (map [string ]string )
962- // Check that cluster manager has set the node-gateway-router-lrp-ifaddr annotation for each node.
963- for _ , n := range nodes {
964- gomega .Eventually (func () error {
965- updatedNode , err := fakeClient .KubeClient .CoreV1 ().Nodes ().Get (context .TODO (), n .Name , metav1.GetOptions {})
966- if err != nil {
967- return err
968- }
969-
970- gwLRPAddrs , err := udn .GetGWRouterIPs (updatedNode , & util.DefaultNetInfo {})
971- if err != nil {
972- return err
973- }
974- gomega .Expect (gwLRPAddrs ).NotTo (gomega .BeNil ())
975- gomega .Expect (gwLRPAddrs ).To (gomega .HaveLen (2 ))
976- nodeAddrs [n .Name ] = updatedNode .Annotations [util .OVNNodeGRLRPAddrs ]
977- return nil
978- }).ShouldNot (gomega .HaveOccurred ())
979- }
980-
981- // Clear the node-gateway-router-lrp-ifaddr annotation of nodes and make sure it is reset by cluster manager
982- // with the same addrs.
983- for _ , n := range nodes {
984- nodeAnnotator := kube .NewNodeAnnotator (& kube.Kube {KClient : kubeFakeClient }, n .Name )
985-
986- nodeAnnotations := n .Annotations
987- for k , v := range nodeAnnotations {
988- gomega .Expect (nodeAnnotator .Set (k , v )).To (gomega .Succeed ())
989- }
990- nodeAnnotator .Delete (util .OVNNodeGRLRPAddrs )
991- err = nodeAnnotator .Run ()
992- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
993- }
994-
995- for _ , n := range nodes {
996- gomega .Eventually (func () error {
997- updatedNode , err := fakeClient .KubeClient .CoreV1 ().Nodes ().Get (context .TODO (), n .Name , metav1.GetOptions {})
998- if err != nil {
999- return err
1000- }
1001-
1002- nodeGWRPIPs , ok := updatedNode .Annotations [util .OVNNodeGRLRPAddrs ]
1003- if ! ok {
1004- return fmt .Errorf ("expected node annotation for node %s to have node gateway-router-lrp-ifaddr allocated" , n .Name )
1005- }
1006-
1007- gomega .Expect (nodeGWRPIPs ).To (gomega .Equal (nodeAddrs [n .Name ]))
1008- return nil
1009- }).ShouldNot (gomega .HaveOccurred ())
1010- }
1011- return nil
1012- }
1013-
1014- err := app .Run ([]string {
1015- app .Name ,
1016- "-cluster-subnets=" + clusterCIDR + "," + clusterv6CIDR ,
1017- "-k8s-service-cidr=10.96.0.0/16,fd00:10:96::/112" ,
1018- })
1019- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
1020- })
1021-
1022- ginkgo .It ("Stop cluster manager, change id of a node and verify the gateway router port addr node annotation" , func () {
1023- app .Action = func (ctx * cli.Context ) error {
1024- nodes := []corev1.Node {
1025- {
1026- ObjectMeta : metav1.ObjectMeta {
1027- Name : "node1" ,
1028- },
1029- },
1030- {
1031- ObjectMeta : metav1.ObjectMeta {
1032- Name : "node2" ,
1033- },
1034- },
1035- {
1036- ObjectMeta : metav1.ObjectMeta {
1037- Name : "node3" ,
1038- },
1039- },
1040- }
1041- kubeFakeClient := fake .NewSimpleClientset (& corev1.NodeList {
1042- Items : nodes ,
1043- })
1044- fakeClient := & util.OVNClusterManagerClientset {
1045- KubeClient : kubeFakeClient ,
1046- }
1047-
1048- _ , err := config .InitConfig (ctx , nil , nil )
1049- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
1050- config .Kubernetes .HostNetworkNamespace = ""
1051-
1052- f , err = factory .NewClusterManagerWatchFactory (fakeClient )
1053- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
1054- err = f .Start ()
1055- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
1056-
1057- wg1 := & sync.WaitGroup {}
1058- clusterManager , err := NewClusterManager (fakeClient , f , "identity" , nil )
1059- gomega .Expect (clusterManager ).NotTo (gomega .BeNil ())
1060- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
1061- err = clusterManager .Start (ctx .Context )
1062- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
1063-
1064- node3GWRPAnnotation := ""
1065- // Check that cluster manager has set the node-gateway-router-lrp-ifaddr annotation for each node.
1066- for _ , n := range nodes {
1067- gomega .Eventually (func () error {
1068- updatedNode , err := fakeClient .KubeClient .CoreV1 ().Nodes ().Get (context .TODO (), n .Name , metav1.GetOptions {})
1069- if err != nil {
1070- return err
1071- }
1072-
1073- gwLRPAddrs , err := udn .GetGWRouterIPs (updatedNode , & util.DefaultNetInfo {})
1074- if err != nil {
1075- return err
1076- }
1077- gomega .Expect (gwLRPAddrs ).NotTo (gomega .BeNil ())
1078- gomega .Expect (gwLRPAddrs ).To (gomega .HaveLen (2 ))
1079-
1080- // Store the node 3's gw router port addresses
1081- if updatedNode .Name == "node3" {
1082- node3GWRPAnnotation = updatedNode .Annotations [util .OVNNodeGRLRPAddrs ]
1083- }
1084- return nil
1085- }).ShouldNot (gomega .HaveOccurred ())
1086- }
1087-
1088- // stop the cluster manager.
1089- clusterManager .Stop ()
1090- wg1 .Wait ()
1091-
1092- updatedNodes := []corev1.Node {}
1093-
1094- for _ , n := range nodes {
1095- updatedNode , _ := fakeClient .KubeClient .CoreV1 ().Nodes ().Get (context .TODO (), n .Name , metav1.GetOptions {})
1096- if updatedNode .Name == "node3" {
1097- // Change the id of node3 duplicate.
1098- updatedNode .Annotations [ovnNodeIDAnnotaton ] = "50"
1099- }
1100- updatedNodes = append (updatedNodes , * updatedNode )
1101- }
1102-
1103- // Close the watch factory and create a new one
1104- f .Shutdown ()
1105- kubeFakeClient = fake .NewSimpleClientset (& corev1.NodeList {
1106- Items : updatedNodes ,
1107- })
1108- fakeClient = & util.OVNClusterManagerClientset {
1109- KubeClient : kubeFakeClient ,
1110- }
1111- f , err = factory .NewClusterManagerWatchFactory (fakeClient )
1112- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
1113- err = f .Start ()
1114- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
1115-
1116- // Start a new cluster manager
1117- cm2 , err := NewClusterManager (fakeClient , f , "cm2" , nil )
1118- gomega .Expect (cm2 ).NotTo (gomega .BeNil ())
1119- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
1120- err = cm2 .Start (ctx .Context )
1121- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
1122- defer cm2 .Stop ()
1123-
1124- gomega .Eventually (func () error {
1125- updatedNode , err := fakeClient .KubeClient .CoreV1 ().Nodes ().Get (context .TODO (), "node3" , metav1.GetOptions {})
1126- if err != nil {
1127- return err
1128- }
1129-
1130- node3UpdatedGWRPAnnotation := updatedNode .Annotations [util .OVNNodeGRLRPAddrs ]
1131- gomega .Expect (node3UpdatedGWRPAnnotation ).NotTo (gomega .Equal (node3GWRPAnnotation ))
1132-
1133- gwLRPAddrs , err := udn .GetGWRouterIPs (updatedNode , & util.DefaultNetInfo {})
1134- if err != nil {
1135- return err
1136- }
1137- gomega .Expect (gwLRPAddrs ).NotTo (gomega .BeNil ())
1138- gomega .Expect (gwLRPAddrs ).To (gomega .HaveLen (2 ))
1139- return nil
1140- }).ShouldNot (gomega .HaveOccurred ())
1141- return nil
1142- }
1143-
1144- err := app .Run ([]string {
1145- app .Name ,
1146- "-cluster-subnets=" + clusterCIDR + "," + clusterv6CIDR ,
1147- "-k8s-service-cidr=10.96.0.0/16,fd00:10:96::/112" ,
1148- })
1149- gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
1150- })
1151918 })
1152919
1153920 ginkgo .Context ("Transit switch port IP allocations" , func () {
0 commit comments