@@ -73,25 +73,21 @@ func (v *ciliumNetworkPolicyValidator) handleCreateOrUpdate(ctx context.Context,
7373 return admission .Errored (http .StatusInternalServerError , err )
7474 }
7575
76- if ! v .shouldValidate (ns , & nparl ) {
77- return admission .Allowed ("" )
78- }
79-
80- res = v .validateIP (nparl , cnp )
76+ res = v .validateIP (nparl , cnp , ns .Labels )
8177 if ! res .Allowed {
8278 return res
8379 }
8480
85- return v .validateEntity (nparl , cnp )
81+ return v .validateEntity (nparl , cnp , ns . Labels )
8682}
8783
88- func (v * ciliumNetworkPolicyValidator ) validateIP (nparl tenetv1beta2.NetworkPolicyAdmissionRuleList , cnp * unstructured.Unstructured ) admission.Response {
84+ func (v * ciliumNetworkPolicyValidator ) validateIP (nparl tenetv1beta2.NetworkPolicyAdmissionRuleList , cnp * unstructured.Unstructured , ls map [ string ] string ) admission.Response {
8985 egressPolicies , ingressPolicies , err := v .gatherIPPolicies (cnp )
9086 if err != nil {
9187 return admission .Errored (http .StatusBadRequest , err )
9288 }
9389
94- egressFilters , ingressFilters , err := v .gatherIPFilters (& nparl )
90+ egressFilters , ingressFilters , err := v .gatherIPFilters (& nparl , ls )
9591 if err != nil {
9692 return admission .Errored (http .StatusInternalServerError , err )
9793 }
@@ -112,12 +108,12 @@ func (v *ciliumNetworkPolicyValidator) validateIP(nparl tenetv1beta2.NetworkPoli
112108 return admission .Allowed ("" )
113109}
114110
115- func (v * ciliumNetworkPolicyValidator ) validateEntity (nparl tenetv1beta2.NetworkPolicyAdmissionRuleList , cnp * unstructured.Unstructured ) admission.Response {
111+ func (v * ciliumNetworkPolicyValidator ) validateEntity (nparl tenetv1beta2.NetworkPolicyAdmissionRuleList , cnp * unstructured.Unstructured , ls map [ string ] string ) admission.Response {
116112 egressPolicies , ingressPolicies , err := v .gatherEntityPolicies (cnp )
117113 if err != nil {
118114 return admission .Errored (http .StatusBadRequest , err )
119115 }
120- egressFilters , ingressFilters := v .gatherEntityFilters (& nparl )
116+ egressFilters , ingressFilters := v .gatherEntityFilters (& nparl , ls )
121117 for _ , egressPolicy := range egressPolicies {
122118 for _ , egressFilter := range egressFilters {
123119 if egressPolicy == egressFilter {
@@ -135,12 +131,10 @@ func (v *ciliumNetworkPolicyValidator) validateEntity(nparl tenetv1beta2.Network
135131 return admission .Allowed ("" )
136132}
137133
138- func (v * ciliumNetworkPolicyValidator ) shouldValidate (ns * corev1.Namespace , nparl * tenetv1beta2.NetworkPolicyAdmissionRuleList ) bool {
139- for _ , npar := range nparl .Items {
140- for k , v := range npar .Spec .NamespaceSelector .ExcludeLabels {
141- if ns .Labels [k ] == v {
142- return false
143- }
134+ func (v * ciliumNetworkPolicyValidator ) shouldValidate (npar * tenetv1beta2.NetworkPolicyAdmissionRule , ls map [string ]string ) bool {
135+ for k , v := range npar .Spec .NamespaceSelector .ExcludeLabels {
136+ if ls [k ] == v {
137+ return false
144138 }
145139 }
146140 return true
0 commit comments