@@ -21,30 +21,21 @@ func BuildV1AndV2NetPols(simplify bool, netpols []*networkingv1.NetworkPolicy, a
21
21
np .AddTarget (false , egress )
22
22
}
23
23
24
- var banpIngress * Target
25
- var banpEgress * Target
26
-
27
- if banp != nil {
28
- // there can only be one BANP by definition
29
- banpIngress , banpEgress = BuildTargetBANP (banp )
30
- np .AddTarget (true , banpIngress )
31
- np .AddTarget (false , banpEgress )
32
- }
33
-
34
24
priorities := make (map [int32 ]struct {})
35
25
for _ , p := range anps {
36
26
if _ , ok := priorities [p .Spec .Priority ]; ok {
37
- panic (errors .Errorf ("duplicate priorities are now allowed . priority: %d" , p .Spec .Priority ))
27
+ panic (errors .Errorf ("duplicate priorities are undefined . priority: %d" , p .Spec .Priority ))
38
28
}
39
29
priorities [p .Spec .Priority ] = struct {}{}
40
30
41
31
ingress , egress := BuildTargetANP (p )
42
- if banpIngress != nil && ingress .GetPrimaryKey () == banpIngress .GetPrimaryKey () {
43
- ingress .CombineCommonPeers (banpIngress )
44
- egress .CombineCommonPeers (banpEgress )
45
-
46
- }
32
+ np .AddTarget (true , ingress )
33
+ np .AddTarget (false , egress )
34
+ }
47
35
36
+ if banp != nil {
37
+ // there can only be one BANP by definition
38
+ ingress , egress := BuildTargetBANP (banp )
48
39
np .AddTarget (true , ingress )
49
40
np .AddTarget (false , egress )
50
41
}
@@ -73,27 +64,16 @@ func BuildTarget(netpol *networkingv1.NetworkPolicy) (*Target, *Target) {
73
64
for _ , pType := range netpol .Spec .PolicyTypes {
74
65
switch pType {
75
66
case networkingv1 .PolicyTypeIngress :
76
- p := map [string ][]PeerMatcher {}
77
- ingressPeers := BuildIngressMatcher (policyNamespace , netpol .Spec .Ingress )
78
- if len (ingressPeers ) > 0 {
79
- p ["" ] = ingressPeers
80
- }
81
-
82
67
ingress = & Target {
83
68
SubjectMatcher : NewSubjectV1 (policyNamespace , netpol .Spec .PodSelector ),
84
69
SourceRules : []NetPolID {netPolID (netpol )},
85
- Peers : p ,
70
+ Peers : BuildIngressMatcher ( policyNamespace , netpol . Spec . Ingress ) ,
86
71
}
87
72
case networkingv1 .PolicyTypeEgress :
88
- p := map [string ][]PeerMatcher {}
89
- egressPeers := BuildEgressMatcher (policyNamespace , netpol .Spec .Egress )
90
- if len (egressPeers ) > 0 {
91
- p ["" ] = egressPeers
92
- }
93
73
egress = & Target {
94
74
SubjectMatcher : NewSubjectV1 (policyNamespace , netpol .Spec .PodSelector ),
95
75
SourceRules : []NetPolID {netPolID (netpol )},
96
- Peers : p ,
76
+ Peers : BuildEgressMatcher ( policyNamespace , netpol . Spec . Egress ) ,
97
77
}
98
78
}
99
79
}
@@ -238,36 +218,34 @@ func BuildTargetANP(anp *v1alpha1.AdminNetworkPolicy) (*Target, *Target) {
238
218
ingress = & Target {
239
219
SubjectMatcher : NewSubjectAdmin (& anp .Spec .Subject ),
240
220
SourceRules : []NetPolID {netPolID (anp )},
241
- Peers : make (map [string ][]PeerMatcher ),
242
221
}
243
222
244
223
for _ , r := range anp .Spec .Ingress {
245
224
v := AdminActionToVerdict (r .Action )
246
225
matchers := BuildPeerMatcherAdmin (r .From , r .Ports )
247
226
for _ , m := range matchers {
248
227
matcherAdmin := NewPeerMatcherANP (m , v , int (anp .Spec .Priority ), anp .Name )
249
- k := m .Pod .PrimaryKey () + m .Namespace .PrimaryKey () + m .Port .GetPrimaryKey ()
250
- ingress .Peers [k ] = append (ingress .Peers [k ], matcherAdmin )
228
+ ingress .Peers = append (ingress .Peers , matcherAdmin )
251
229
}
252
230
}
253
231
}
232
+
254
233
if len (anp .Spec .Egress ) > 0 {
255
234
egress = & Target {
256
235
SubjectMatcher : NewSubjectAdmin (& anp .Spec .Subject ),
257
236
SourceRules : []NetPolID {netPolID (anp )},
258
- Peers : make (map [string ][]PeerMatcher ),
259
237
}
260
238
261
239
for _ , r := range anp .Spec .Egress {
262
240
v := AdminActionToVerdict (r .Action )
263
241
matchers := BuildPeerMatcherAdmin (r .To , r .Ports )
264
242
for _ , m := range matchers {
265
243
matcherAdmin := NewPeerMatcherANP (m , v , int (anp .Spec .Priority ), anp .Name )
266
- k := m .Pod .PrimaryKey () + m .Namespace .PrimaryKey () + m .Port .GetPrimaryKey ()
267
- egress .Peers [k ] = append (egress .Peers [k ], matcherAdmin )
244
+ egress .Peers = append (egress .Peers , matcherAdmin )
268
245
}
269
246
}
270
247
}
248
+
271
249
return ingress , egress
272
250
}
273
251
@@ -283,16 +261,14 @@ func BuildTargetBANP(banp *v1alpha1.BaselineAdminNetworkPolicy) (*Target, *Targe
283
261
ingress = & Target {
284
262
SubjectMatcher : NewSubjectAdmin (& banp .Spec .Subject ),
285
263
SourceRules : []NetPolID {netPolID (banp )},
286
- Peers : make (map [string ][]PeerMatcher ),
287
264
}
288
265
289
266
for _ , r := range banp .Spec .Ingress {
290
267
v := BaselineAdminActionToVerdict (r .Action )
291
268
matchers := BuildPeerMatcherAdmin (r .From , r .Ports )
292
269
for _ , m := range matchers {
293
- matcherAdmin := NewPeerMatcherBANP (m , v , r .Name )
294
- k := m .Pod .PrimaryKey () + m .Namespace .PrimaryKey () + m .Port .GetPrimaryKey ()
295
- ingress .Peers [k ] = append (ingress .Peers [k ], matcherAdmin )
270
+ matcherAdmin := NewPeerMatcherBANP (m , v , banp .Name )
271
+ ingress .Peers = append (ingress .Peers , matcherAdmin )
296
272
}
297
273
}
298
274
}
@@ -301,16 +277,14 @@ func BuildTargetBANP(banp *v1alpha1.BaselineAdminNetworkPolicy) (*Target, *Targe
301
277
egress = & Target {
302
278
SubjectMatcher : NewSubjectAdmin (& banp .Spec .Subject ),
303
279
SourceRules : []NetPolID {netPolID (banp )},
304
- Peers : make (map [string ][]PeerMatcher ),
305
280
}
306
281
307
282
for _ , r := range banp .Spec .Egress {
308
283
v := BaselineAdminActionToVerdict (r .Action )
309
284
matchers := BuildPeerMatcherAdmin (r .To , r .Ports )
310
285
for _ , m := range matchers {
311
- matcherAdmin := NewPeerMatcherBANP (m , v , r .Name )
312
- k := m .Pod .PrimaryKey () + m .Namespace .PrimaryKey () + m .Port .GetPrimaryKey ()
313
- egress .Peers [k ] = append (egress .Peers [k ], matcherAdmin )
286
+ matcherAdmin := NewPeerMatcherBANP (m , v , banp .Name )
287
+ egress .Peers = append (egress .Peers , matcherAdmin )
314
288
}
315
289
}
316
290
}
0 commit comments