@@ -25,7 +25,7 @@ const (
2525 TestNamespace = "test-namespace"
2626 TestWebhookName = "test-webhook"
2727 TestServicePodName = "test-service-pod"
28- TestControlPlaneIP = "111.222.333 .4"
28+ TestControlPlaneIP = "11.22.33 .4"
2929)
3030
3131var OtterizeIngressNetpols = []v1.NetworkPolicy {
@@ -103,7 +103,7 @@ type NetworkPolicyHandlerTestSuite struct {
103103
104104func (s * NetworkPolicyHandlerTestSuite ) SetupTest () {
105105 s .MocksSuiteBase .SetupTest ()
106- s .handler = NewNetworkPolicyHandler (s .Client , & runtime.Scheme {}, automate_third_party_network_policy .IfBlockedByOtterize , 32 )
106+ s .handler = NewNetworkPolicyHandler (s .Client , & runtime.Scheme {}, automate_third_party_network_policy .IfBlockedByOtterize , 32 , false )
107107 s .handler .InjectRecorder (s .Recorder )
108108
109109 s .validatingWebhook = ValidatingWebhookConfiguration .DeepCopy ()
@@ -154,7 +154,7 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_HandleIfBlocked
154154 s .mockGetControlPlaneIPs ()
155155 s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
156156
157- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort })
157+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, false )
158158 s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
159159 err := s .handler .HandleAll (context .Background ())
160160 s .Require ().NoError (err )
@@ -189,7 +189,7 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_HandleIfBlocked
189189
190190 s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
191191
192- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort })
192+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s . handler . allowAllIncomingTraffic )
193193 s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
194194 err := s .handler .HandleAll (context .Background ())
195195 s .Require ().NoError (err )
@@ -225,7 +225,7 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_HandleIfBlocked
225225
226226 s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
227227
228- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {secondPort , TestServicePort })
228+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {secondPort , TestServicePort }, s . handler . allowAllIncomingTraffic )
229229 s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
230230 err := s .handler .HandleAll (context .Background ())
231231 s .Require ().NoError (err )
@@ -238,8 +238,15 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_HandleIfBlocked
238238 s .mockReturningWebhookService ()
239239 s .mockServiceIsBlockedByOtterize (OtterizeIngressNetpols )
240240 s .mockGetControlPlaneIPs ()
241- s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {* getExpectedNetpolWithPorts ([]int32 {TestServicePort })})
242- s .mockGetNetworkPolicyForUpdate (* getExpectedNetpolWithPorts ([]int32 {TestServicePort }))
241+ s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {
242+ NewNetworkPolicyBuilder (ExpectedNetpol ).
243+ WithPorts ([]int32 {TestServicePort }).
244+ WithFromIPBlock (s .handler .allowAllIncomingTraffic ).
245+ Build ()})
246+ s .mockGetNetworkPolicyForUpdate (NewNetworkPolicyBuilder (ExpectedNetpol ).
247+ WithPorts ([]int32 {TestServicePort }).
248+ WithFromIPBlock (s .handler .allowAllIncomingTraffic ).
249+ Build ())
243250
244251 //netpolMatcher := NewNetworkPolicyMatcher([]int32{TestServicePort})
245252 //s.Client.EXPECT().Create(gomock.Any(), gomock.All(netpolMatcher)).Return(nil)
@@ -254,10 +261,18 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_HandleIfBlocked
254261 s .mockReturningWebhookService ()
255262 s .mockServiceIsBlockedByOtterize (OtterizeIngressNetpols )
256263 s .mockGetControlPlaneIPs ()
257- s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {* getExpectedNetpolWithPorts ([]int32 {12129 })})
258- s .mockGetNetworkPolicyForUpdate (* getExpectedNetpolWithPorts ([]int32 {12129 }))
259-
260- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort })
264+ s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {
265+ NewNetworkPolicyBuilder (ExpectedNetpol ).
266+ WithPorts ([]int32 {12129 }).
267+ WithFromIPBlock (s .handler .allowAllIncomingTraffic ).
268+ Build ()})
269+ s .mockGetNetworkPolicyForUpdate (
270+ NewNetworkPolicyBuilder (ExpectedNetpol ).
271+ WithPorts ([]int32 {12129 }).
272+ WithFromIPBlock (s .handler .allowAllIncomingTraffic ).
273+ Build ())
274+
275+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic )
261276 s .Client .EXPECT ().Patch (gomock .Any (), gomock .All (netpolMatcher ), gomock .Any ()).Return (nil )
262277 err := s .handler .HandleAll (context .Background ())
263278 s .Require ().NoError (err )
@@ -281,7 +296,7 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_HandleIfBlocked
281296}
282297
283298func (s * NetworkPolicyHandlerTestSuite ) TestNetworkPolicyHandler_HandleOff_ServiceIsBlockedByOtterize_DoNothing () {
284- s .handler = NewNetworkPolicyHandler (s .Client , & runtime.Scheme {}, automate_third_party_network_policy .Off , 32 )
299+ s .handler = NewNetworkPolicyHandler (s .Client , & runtime.Scheme {}, automate_third_party_network_policy .Off , 32 , false )
285300
286301 s .mockForReturningValidatingWebhook ()
287302 //s.mockReturningWebhookService()
@@ -298,15 +313,19 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_HandleOff_Servi
298313}
299314
300315func (s * NetworkPolicyHandlerTestSuite ) TestNetworkPolicyHandler_HandleOff_ServiceIsBlockedByOtterize_ExistingWebhookPolicy_DeletePolicy () {
301- s .handler = NewNetworkPolicyHandler (s .Client , & runtime.Scheme {}, automate_third_party_network_policy .Off , 32 )
316+ s .handler = NewNetworkPolicyHandler (s .Client , & runtime.Scheme {}, automate_third_party_network_policy .Off , 32 , false )
302317
303318 s .mockForReturningValidatingWebhook ()
304319 //s.mockReturningWebhookService()
305320 //s.mockServiceIsBlockedByOtterize(OtterizeIngressNetpols)
306321 //s.mockGetControlPlaneIPs()
307- s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {* getExpectedNetpolWithPorts ([]int32 {TestServicePort })})
322+ s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {
323+ NewNetworkPolicyBuilder (ExpectedNetpol ).
324+ WithPorts ([]int32 {TestServicePort }).
325+ WithFromIPBlock (s .handler .allowAllIncomingTraffic ).
326+ Build ()})
308327
309- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort })
328+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s . handler . allowAllIncomingTraffic )
310329 s .Client .EXPECT ().Delete (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
311330 err := s .handler .HandleAll (context .Background ())
312331 s .Require ().NoError (err )
@@ -315,7 +334,7 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_HandleOff_Servi
315334}
316335
317336func (s * NetworkPolicyHandlerTestSuite ) TestNetworkPolicyHandler_HandleAlways_ServiceIsNotBlockedByOtterize_CreatePolicy () {
318- s .handler = NewNetworkPolicyHandler (s .Client , & runtime.Scheme {}, automate_third_party_network_policy .Always , 32 )
337+ s .handler = NewNetworkPolicyHandler (s .Client , & runtime.Scheme {}, automate_third_party_network_policy .Always , 32 , false )
319338 s .handler .InjectRecorder (s .Recorder )
320339
321340 s .mockForReturningValidatingWebhook ()
@@ -324,7 +343,7 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_HandleAlways_Se
324343 s .mockGetControlPlaneIPs ()
325344 s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
326345
327- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort })
346+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s . handler . allowAllIncomingTraffic )
328347 s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
329348 err := s .handler .HandleAll (context .Background ())
330349 s .Require ().NoError (err )
@@ -339,7 +358,7 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_MutatingWebhook
339358 s .mockGetControlPlaneIPs ()
340359 s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
341360
342- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort })
361+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s . handler . allowAllIncomingTraffic )
343362 s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
344363 err := s .handler .HandleAll (context .Background ())
345364 s .Require ().NoError (err )
@@ -354,7 +373,25 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_CRDsWebhooks_Ha
354373 s .mockGetControlPlaneIPs ()
355374 s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
356375
357- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort })
376+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic )
377+ s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
378+ err := s .handler .HandleAll (context .Background ())
379+ s .Require ().NoError (err )
380+ s .ExpectEvent (ReasonCreatingWebhookTrafficNetpol )
381+ s .ExpectEvent (ReasonCreatingWebhookTrafficNetpolSuccess )
382+ }
383+
384+ func (s * NetworkPolicyHandlerTestSuite ) TestNetworkPolicyHandler_HandleAlways_AllowAllIncomingTraffic_CreatingWebhookPolicy () {
385+ s .handler = NewNetworkPolicyHandler (s .Client , & runtime.Scheme {}, automate_third_party_network_policy .Always , 32 , true )
386+ s .handler .InjectRecorder (s .Recorder )
387+
388+ s .mockForReturningValidatingWebhook ()
389+ s .mockReturningWebhookService ()
390+ //s.mockServiceIsBlockedByOtterize(OtterizeIngressNetpols)
391+ //s.mockGetControlPlaneIPs()
392+ s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
393+
394+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic )
358395 s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
359396 err := s .handler .HandleAll (context .Background ())
360397 s .Require ().NoError (err )
@@ -499,7 +536,7 @@ func (s *NetworkPolicyHandlerTestSuite) mockGetControlPlaneIPs() {
499536 gomock .Any (), gomock .Eq (types.NamespacedName {Name : "kubernetes" , Namespace : "default" }), gomock .Eq (& corev1.Service {}),
500537 ).DoAndReturn (
501538 func (_ any , _ any , svc * corev1.Service , _ ... any ) error {
502- svc .Spec .ClusterIP = TestControlPlaneIP
539+ svc .Spec .ClusterIPs = [] string { TestControlPlaneIP }
503540 svc .Name = "kubernetes"
504541 svc .Namespace = "default"
505542 return nil
0 commit comments