@@ -38,30 +38,29 @@ type httpRouteConfigurationTranslator struct {
38
38
}
39
39
40
40
func (h * httpRouteConfigurationTranslator ) ComputeRouteConfiguration (ctx context.Context , vhosts []* ir.VirtualHost ) * envoy_config_route_v3.RouteConfiguration {
41
- attachedPoliciesSlice := []ir. AttachedPolicies {
42
- h . gw . AttachedHttpPolicies ,
43
- h . attachedPolicies ,
41
+
42
+ attachedPolicies := ir. AttachedPolicies {
43
+ Policies : map [schema. GroupKind ][]ir. PolicyAtt {} ,
44
44
}
45
+ attachedPolicies .Append (h .gw .AttachedHttpPolicies , h .attachedPolicies )
45
46
cfg := & envoy_config_route_v3.RouteConfiguration {
46
47
Name : h .routeConfigName ,
47
48
}
48
49
typedPerFilterConfigRoute := ir .TypedFilterConfigMap (map [string ]proto.Message {})
49
50
50
- for _ , attachedPolicies := range attachedPoliciesSlice {
51
- for gk , pols := range attachedPolicies .Policies {
52
- pass := h .PluginPass [gk ]
53
- if pass == nil {
54
- // TODO: user error - they attached a non http policy
55
- continue
56
- }
57
- for _ , pol := range mergePolicies (pass , pols ) {
58
- reportPolicyAcceptanceStatus (h .reporter , h .listener .PolicyAncestorRef , pols ... )
59
- pass .ApplyRouteConfigPlugin (ctx , & ir.RouteConfigContext {
60
- FilterChainName : h .fc .FilterChainName ,
61
- TypedFilterConfig : typedPerFilterConfigRoute ,
62
- Policy : pol .PolicyIr ,
63
- }, cfg )
64
- }
51
+ for gk , pols := range attachedPolicies .Policies {
52
+ pass := h .PluginPass [gk ]
53
+ if pass == nil {
54
+ // TODO: user error - they attached a non http policy
55
+ continue
56
+ }
57
+ for _ , pol := range mergePolicies (pass , pols ) {
58
+ reportPolicyAcceptanceStatus (h .reporter , h .listener .PolicyAncestorRef , pols ... )
59
+ pass .ApplyRouteConfigPlugin (ctx , & ir.RouteConfigContext {
60
+ FilterChainName : h .fc .FilterChainName ,
61
+ TypedFilterConfig : typedPerFilterConfigRoute ,
62
+ Policy : pol .PolicyIr ,
63
+ }, cfg )
65
64
}
66
65
}
67
66
@@ -207,26 +206,22 @@ func toPerFilterConfigMap(typedPerFilterConfig ir.TypedFilterConfigMap) map[stri
207
206
208
207
func (h * httpRouteConfigurationTranslator ) runVhostPlugins (ctx context.Context , virtualHost * ir.VirtualHost , out * envoy_config_route_v3.VirtualHost ,
209
208
typedPerFilterConfig ir.TypedFilterConfigMap ) {
210
- attachedPoliciesSlice := []ir.AttachedPolicies {
211
- virtualHost .AttachedPolicies ,
212
- }
213
- for _ , attachedPolicies := range attachedPoliciesSlice {
214
- for gk , pols := range attachedPolicies .Policies {
215
- pass := h .PluginPass [gk ]
216
- if pass == nil {
217
- // TODO: user error - they attached a non http policy
218
- continue
219
- }
220
- for _ , pol := range mergePolicies (pass , pols ) {
221
- reportPolicyAcceptanceStatus (h .reporter , h .listener .PolicyAncestorRef , pols ... )
222
- pctx := & ir.VirtualHostContext {
223
- Policy : pol .PolicyIr ,
224
- TypedFilterConfig : typedPerFilterConfig ,
225
- FilterChainName : h .fc .FilterChainName ,
226
- }
227
- pass .ApplyVhostPlugin (ctx , pctx , out )
228
- // TODO: check return value, if error returned, log error and report condition
209
+
210
+ for gk , pols := range virtualHost .AttachedPolicies .Policies {
211
+ pass := h .PluginPass [gk ]
212
+ if pass == nil {
213
+ // TODO: user error - they attached a non http policy
214
+ continue
215
+ }
216
+ for _ , pol := range mergePolicies (pass , pols ) {
217
+ reportPolicyAcceptanceStatus (h .reporter , h .listener .PolicyAncestorRef , pols ... )
218
+ pctx := & ir.VirtualHostContext {
219
+ Policy : pol .PolicyIr ,
220
+ TypedFilterConfig : typedPerFilterConfig ,
221
+ FilterChainName : h .fc .FilterChainName ,
229
222
}
223
+ pass .ApplyVhostPlugin (ctx , pctx , out )
224
+ // TODO: check return value, if error returned, log error and report condition
230
225
}
231
226
}
232
227
}
@@ -271,7 +266,6 @@ func (h *httpRouteConfigurationTranslator) runRoutePlugins(
271
266
errs = append (errs , err )
272
267
}
273
268
}
274
-
275
269
for gk , pols := range attachedPolicies .Policies {
276
270
pass := h .PluginPass [gk ]
277
271
if pass == nil {
0 commit comments