@@ -920,17 +920,23 @@ func (c *Controller) fetchPodsOnNode(nodeName string, pods []*v1.Pod) ([]string,
920
920
return ports , nil
921
921
}
922
922
923
- func (c * Controller ) checkPodsChangedOnNode (pgName string , nameIdMap map [string ]string , pgPorts , ports []string ) (bool , error ) {
923
+ func (c * Controller ) checkPodsChangedOnNode (pgName string , nameIdMap map [string ]string , pgPorts , ports []string ) (bool , []string , error ) {
924
+
925
+ toAddPorts := make ([]string , 0 )
924
926
for _ , port := range ports {
925
927
if portId , ok := nameIdMap [port ]; ok {
926
928
if ! util .IsStringIn (portId , pgPorts ) {
927
- klog .Infof ("pod on node changed, new added port %v should add to node port group %v" , port , pgName )
928
- return true , nil
929
+ toAddPorts = append (toAddPorts , port )
929
930
}
930
931
}
931
932
}
932
933
933
- return false , nil
934
+ if len (toAddPorts ) != 0 {
935
+ klog .Infof ("pod on node changed, new added port %v should add to node port group %v" , toAddPorts , pgName )
936
+ return true , toAddPorts , nil
937
+ }
938
+
939
+ return false , toAddPorts , nil
934
940
}
935
941
936
942
func (c * Controller ) CheckNodePortGroup () {
@@ -974,14 +980,14 @@ func (c *Controller) checkAndUpdateNodePortGroup() error {
974
980
// The port-group should already created when add node
975
981
pgName := strings .Replace (node .Annotations [util .PortNameAnnotation ], "-" , "." , - 1 )
976
982
nodeIP := node .Annotations [util .IpAddressAnnotation ]
977
-
983
+ var toAddPorts [] string
978
984
ports , err := c .fetchPodsOnNode (node .Name , pods )
979
985
if err != nil {
980
986
klog .Errorf ("failed to fetch pods for node %v, %v" , node .Name , err )
981
987
return err
982
988
}
983
989
984
- changed , err := c .checkPodsChangedOnNode (pgName , nameIdMap , namePortsMap [pgName ], ports )
990
+ changed , toAddPorts , err := c .checkPodsChangedOnNode (pgName , nameIdMap , namePortsMap [pgName ], ports )
985
991
if err != nil {
986
992
klog .Errorf ("failed to check pod status for node %v, %v" , node .Name , err )
987
993
continue
@@ -998,10 +1004,15 @@ func (c *Controller) checkAndUpdateNodePortGroup() error {
998
1004
}
999
1005
lastNpExists [node .Name ] = networkPolicyExists
1000
1006
1001
- err = c .ovnLegacyClient .SetPortsToPortGroup (pgName , ports )
1002
- if err != nil {
1003
- klog .Errorf ("failed to set port group for node %v, %v" , node .Name , err )
1004
- return err
1007
+ if len (toAddPorts ) != 0 {
1008
+ c .ovnPgKeyMutex .Lock (pgName )
1009
+ for _ , toAddPort := range toAddPorts {
1010
+ if err = c .ovnClient .PortGroupAddPort (pgName , toAddPort ); err != nil {
1011
+ c .ovnPgKeyMutex .Unlock (pgName )
1012
+ return err
1013
+ }
1014
+ }
1015
+ c .ovnPgKeyMutex .Unlock (pgName )
1005
1016
}
1006
1017
1007
1018
if networkPolicyExists {
0 commit comments