@@ -15,6 +15,7 @@ import (
1515 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1616 "k8s.io/apimachinery/pkg/runtime"
1717 "k8s.io/apimachinery/pkg/types"
18+ "k8s.io/apimachinery/pkg/util/intstr"
1819 "sigs.k8s.io/controller-runtime/pkg/client"
1920 "testing"
2021)
@@ -117,6 +118,12 @@ func (s *NetworkPolicyHandlerTestSuite) SetupTest() {
117118 Selector : map [string ]string {
118119 "Taylor" : "Swift" ,
119120 },
121+ Ports : []corev1.ServicePort {
122+ {
123+ Port : TestServicePort ,
124+ Protocol : corev1 .ProtocolTCP ,
125+ },
126+ },
120127 },
121128 }
122129
@@ -154,7 +161,7 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_HandleIfBlocked
154161 s .mockGetControlPlaneIPs ()
155162 s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
156163
157- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, false )
164+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, false , nil )
158165 s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
159166 err := s .handler .HandleAll (context .Background ())
160167 s .Require ().NoError (err )
@@ -189,43 +196,7 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_HandleIfBlocked
189196
190197 s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
191198
192- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic )
193- s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
194- err := s .handler .HandleAll (context .Background ())
195- s .Require ().NoError (err )
196- s .ExpectEvent (ReasonCreatingWebhookTrafficNetpol )
197- s .ExpectEvent (ReasonCreatingWebhookTrafficNetpolSuccess )
198- }
199-
200- func (s * NetworkPolicyHandlerTestSuite ) TestNetworkPolicyHandler_HandleIfBlockedByOtterize_ServiceIsBlockedByOtterize_TwoWebhooksToSameServiceDifferentPorts_CreatingOneWebhookPolicy () {
201- secondPort := int32 (1432 )
202- s .validatingWebhook .Webhooks = append (s .validatingWebhook .Webhooks ,
203- admissionv1.ValidatingWebhook {
204- Name : "Second" ,
205- ClientConfig : admissionv1.WebhookClientConfig {
206- Service : & admissionv1.ServiceReference {
207- Name : TestServiceName ,
208- Namespace : TestNamespace ,
209- Port : lo .ToPtr (secondPort ),
210- },
211- },
212- })
213-
214- s .mockForReturningValidatingWebhook ()
215-
216- // Called once for "First" webhook
217- s .mockReturningWebhookService ()
218- s .mockServiceIsBlockedByOtterize (OtterizeIngressNetpols )
219- s .mockGetControlPlaneIPs ()
220-
221- // Called second time for "Second"" webhook
222- s .mockReturningWebhookService ()
223- s .mockServiceIsBlockedByOtterize (OtterizeIngressNetpols )
224- s .mockGetControlPlaneIPs ()
225-
226- s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
227-
228- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {secondPort , TestServicePort }, s .handler .allowAllIncomingTraffic )
199+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic , nil )
229200 s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
230201 err := s .handler .HandleAll (context .Background ())
231202 s .Require ().NoError (err )
@@ -272,7 +243,7 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_HandleIfBlocked
272243 WithFromIPBlock (s .handler .allowAllIncomingTraffic ).
273244 Build ())
274245
275- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic )
246+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic , nil )
276247 s .Client .EXPECT ().Patch (gomock .Any (), gomock .All (netpolMatcher ), gomock .Any ()).Return (nil )
277248 err := s .handler .HandleAll (context .Background ())
278249 s .Require ().NoError (err )
@@ -325,7 +296,7 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_HandleOff_Servi
325296 WithFromIPBlock (s .handler .allowAllIncomingTraffic ).
326297 Build ()})
327298
328- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic )
299+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic , nil )
329300 s .Client .EXPECT ().Delete (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
330301 err := s .handler .HandleAll (context .Background ())
331302 s .Require ().NoError (err )
@@ -343,7 +314,7 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_HandleAlways_Se
343314 s .mockGetControlPlaneIPs ()
344315 s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
345316
346- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic )
317+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic , nil )
347318 s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
348319 err := s .handler .HandleAll (context .Background ())
349320 s .Require ().NoError (err )
@@ -358,7 +329,7 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_MutatingWebhook
358329 s .mockGetControlPlaneIPs ()
359330 s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
360331
361- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic )
332+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic , nil )
362333 s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
363334 err := s .handler .HandleAll (context .Background ())
364335 s .Require ().NoError (err )
@@ -373,7 +344,7 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_CRDsWebhooks_Ha
373344 s .mockGetControlPlaneIPs ()
374345 s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
375346
376- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic )
347+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic , nil )
377348 s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
378349 err := s .handler .HandleAll (context .Background ())
379350 s .Require ().NoError (err )
@@ -391,7 +362,64 @@ func (s *NetworkPolicyHandlerTestSuite) TestNetworkPolicyHandler_HandleAlways_Al
391362 //s.mockGetControlPlaneIPs()
392363 s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
393364
394- netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic )
365+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, s .handler .allowAllIncomingTraffic , nil )
366+ s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
367+ err := s .handler .HandleAll (context .Background ())
368+ s .Require ().NoError (err )
369+ s .ExpectEvent (ReasonCreatingWebhookTrafficNetpol )
370+ s .ExpectEvent (ReasonCreatingWebhookTrafficNetpolSuccess )
371+ }
372+
373+ func (s * NetworkPolicyHandlerTestSuite ) TestNetworkPolicyHandler_HandleAlways_ServiceHasDifferentTargetPortThanPort_CreatePolicy () {
374+ s .handler = NewNetworkPolicyHandler (s .Client , & runtime.Scheme {}, automate_third_party_network_policy .Always , 32 , false )
375+ s .handler .InjectRecorder (s .Recorder )
376+ targetPort := int32 (1820 )
377+ s .webhookService = & corev1.Service {
378+ ObjectMeta : metav1.ObjectMeta {
379+ Name : TestServiceName ,
380+ Namespace : TestNamespace ,
381+ },
382+ Spec : corev1.ServiceSpec {
383+ Selector : map [string ]string {
384+ "Taylor" : "Swift" ,
385+ },
386+ Ports : []corev1.ServicePort {
387+ {
388+ Port : TestServicePort ,
389+ TargetPort : intstr .FromInt32 (targetPort ),
390+ Protocol : corev1 .ProtocolTCP ,
391+ },
392+ },
393+ },
394+ }
395+
396+ s .mockForReturningValidatingWebhook ()
397+ s .mockReturningWebhookService ()
398+ //s.mockServiceIsBlockedByOtterize(make([]v1.NetworkPolicy, 0))
399+ s .mockGetControlPlaneIPs ()
400+ s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
401+
402+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {targetPort , TestServicePort }, s .handler .allowAllIncomingTraffic , nil )
403+ s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
404+ err := s .handler .HandleAll (context .Background ())
405+ s .Require ().NoError (err )
406+ s .ExpectEvent (ReasonCreatingWebhookTrafficNetpol )
407+ s .ExpectEvent (ReasonCreatingWebhookTrafficNetpolSuccess )
408+ }
409+
410+ func (s * NetworkPolicyHandlerTestSuite ) TestNetworkPolicyHandler_HandleAlways_WebhookNameTooLong_CreatePolicy () {
411+ s .handler = NewNetworkPolicyHandler (s .Client , & runtime.Scheme {}, automate_third_party_network_policy .Always , 32 , false )
412+ s .handler .InjectRecorder (s .Recorder )
413+ s .validatingWebhook = ValidatingWebhookConfiguration .DeepCopy ()
414+ s .validatingWebhook .Name = "A-lantern-lit-her-journey-through-the-meadow-A-breeze-whispered-shadows-danced-and-the-forest-echoed-with-silent-wonder"
415+
416+ s .mockForReturningValidatingWebhook ()
417+ s .mockReturningWebhookService ()
418+ //s.mockServiceIsBlockedByOtterize(make([]v1.NetworkPolicy, 0))
419+ s .mockGetControlPlaneIPs ()
420+ s .mockGetExistingOtterizeWebhooksNetpols ([]v1.NetworkPolicy {})
421+
422+ netpolMatcher := NewNetworkPolicyMatcher ([]int32 {TestServicePort }, false , lo .ToPtr ("A-lantern-lit-her-journey-through-the-meadow-A-breeze-whispered-shadows-danced-and-the-forest-echoed-with-silent-wonder" ))
395423 s .Client .EXPECT ().Create (gomock .Any (), gomock .All (netpolMatcher )).Return (nil )
396424 err := s .handler .HandleAll (context .Background ())
397425 s .Require ().NoError (err )
0 commit comments