@@ -28,8 +28,6 @@ import (
2828 "sigs.k8s.io/controller-runtime/pkg/log"
2929
3030 v1 "k8s.io/api/core/v1"
31-
32- gatewayv1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1"
3331)
3432
3533type EndpointsReconciler struct {
@@ -56,35 +54,33 @@ func (r *EndpointsReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
5654 if err := r .Get (ctx , req .NamespacedName , & obj ); err != nil {
5755 if client .IgnoreNotFound (err ) == nil {
5856 svc := pkg .ActiveSIGs .GetService (req .NamespacedName .String ())
59- gwmap , hrmap , svcmap := map [string ]* gatewayv1beta1.Gateway {}, map [string ]* gatewayv1beta1.HTTPRoute {}, map [string ]* v1.Service {}
60- pkg .ActiveSIGs .GetRelatedObjs (nil , nil , []* v1.Service {svc }, & gwmap , & hrmap , & svcmap )
57+ gws := pkg .ActiveSIGs .GetRootGateways (svc )
6158 drs := map [string ]pkg.DeployRequest {}
6259
63- for _ , gw := range gwmap {
60+ for _ , gw := range gws {
6461 if _ , f := drs [string (gw .Spec .GatewayClassName )]; ! f {
6562 drs [string (gw .Spec .GatewayClassName )] = pkg.DeployRequest {
6663 Meta : fmt .Sprintf ("deleting endpoints '%s'" , req .NamespacedName .String ()),
6764 Partition : string (gw .Spec .GatewayClassName ),
6865 }
6966 }
7067 dr := drs [string (gw .Spec .GatewayClassName )]
71- if ocfgs , err := pkg .ParseRelatedForClass (string (gw .Spec .GatewayClassName ), nil , nil , [] * v1. Service { svc } ); err != nil {
68+ if ocfgs , err := pkg .ParseGatewayRelatedForClass (string (gw .Spec .GatewayClassName ), gws ); err != nil {
7269 return ctrl.Result {}, err
7370 } else {
7471 dr .From = & ocfgs
7572 }
7673 }
77- hrs := pkg .ActiveSIGs .HTTPRoutesRefsOf (svc )
7874 pkg .ActiveSIGs .UnsetEndpoints (req .NamespacedName .String ())
79- for _ , gw := range gwmap {
75+ for _ , gw := range gws {
8076 if _ , f := drs [string (gw .Spec .GatewayClassName )]; ! f {
8177 drs [string (gw .Spec .GatewayClassName )] = pkg.DeployRequest {
8278 Meta : fmt .Sprintf ("deleting endpoints '%s'" , req .NamespacedName .String ()),
8379 Partition : string (gw .Spec .GatewayClassName ),
8480 }
8581 }
8682 dr := drs [string (gw .Spec .GatewayClassName )]
87- if ncfgs , err := pkg .ParseRelatedForClass (string (gw .Spec .GatewayClassName ), nil , hrs , nil ); err != nil {
83+ if ncfgs , err := pkg .ParseGatewayRelatedForClass (string (gw .Spec .GatewayClassName ), gws ); err != nil {
8884 return ctrl.Result {}, err
8985 } else {
9086 dr .To = & ncfgs
@@ -106,35 +102,34 @@ func (r *EndpointsReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
106102 }
107103 } else {
108104 svc := pkg .ActiveSIGs .GetService (req .NamespacedName .String ())
109- gwmap , hrmap , svcmap := map [string ]* gatewayv1beta1.Gateway {}, map [string ]* gatewayv1beta1.HTTPRoute {}, map [string ]* v1.Service {}
110- pkg .ActiveSIGs .GetRelatedObjs (nil , nil , []* v1.Service {svc }, & gwmap , & hrmap , & svcmap )
105+ gws := pkg .ActiveSIGs .GetRootGateways (svc )
111106
112107 drs := map [string ]pkg.DeployRequest {}
113108
114- for _ , gw := range gwmap {
109+ for _ , gw := range gws {
115110 if _ , f := drs [string (gw .Spec .GatewayClassName )]; ! f {
116111 drs [string (gw .Spec .GatewayClassName )] = pkg.DeployRequest {
117112 Meta : fmt .Sprintf ("upserting endpoints '%s'" , req .NamespacedName .String ()),
118113 Partition : string (gw .Spec .GatewayClassName ),
119114 }
120115 }
121116 dr := drs [string (gw .Spec .GatewayClassName )]
122- if ocfgs , err := pkg .ParseRelatedForClass (string (gw .Spec .GatewayClassName ), nil , nil , [] * v1. Service { svc } ); err != nil {
117+ if ocfgs , err := pkg .ParseGatewayRelatedForClass (string (gw .Spec .GatewayClassName ), gws ); err != nil {
123118 return ctrl.Result {}, err
124119 } else {
125120 dr .From = & ocfgs
126121 }
127122 }
128123 pkg .ActiveSIGs .SetEndpoints (obj .DeepCopy ())
129- for _ , gw := range gwmap {
124+ for _ , gw := range gws {
130125 if _ , f := drs [string (gw .Spec .GatewayClassName )]; ! f {
131126 drs [string (gw .Spec .GatewayClassName )] = pkg.DeployRequest {
132127 Meta : fmt .Sprintf ("upserting endpoints '%s'" , req .NamespacedName .String ()),
133128 Partition : string (gw .Spec .GatewayClassName ),
134129 }
135130 }
136131 dr := drs [string (gw .Spec .GatewayClassName )]
137- if ncfgs , err := pkg .ParseRelatedForClass (string (gw .Spec .GatewayClassName ), nil , nil , [] * v1. Service { svc } ); err != nil {
132+ if ncfgs , err := pkg .ParseGatewayRelatedForClass (string (gw .Spec .GatewayClassName ), gws ); err != nil {
138133 return ctrl.Result {}, err
139134 } else {
140135 dr .To = & ncfgs
@@ -162,36 +157,35 @@ func (r *ServiceReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
162157 if err := r .Get (ctx , req .NamespacedName , & obj ); err != nil {
163158 if client .IgnoreNotFound (err ) == nil {
164159 svc := pkg .ActiveSIGs .GetService (req .NamespacedName .String ())
165-
166- gwmap , hrmap , svcmap := map [string ]* gatewayv1beta1.Gateway {}, map [string ]* gatewayv1beta1.HTTPRoute {}, map [string ]* v1.Service {}
167- pkg .ActiveSIGs .GetRelatedObjs (nil , nil , []* v1.Service {svc }, & gwmap , & hrmap , & svcmap )
160+ gws := pkg .ActiveSIGs .GetRootGateways (svc )
168161 drs := map [string ]pkg.DeployRequest {}
169162
170- for _ , gw := range gwmap {
163+ for _ , gw := range gws {
171164 if _ , f := drs [string (gw .Spec .GatewayClassName )]; ! f {
172165 drs [string (gw .Spec .GatewayClassName )] = pkg.DeployRequest {
173166 Meta : fmt .Sprintf ("deleting service '%s'" , req .NamespacedName .String ()),
174167 Partition : string (gw .Spec .GatewayClassName ),
175168 }
176169 }
177170 dr := drs [string (gw .Spec .GatewayClassName )]
178- if ocfgs , err := pkg .ParseRelatedForClass (string (gw .Spec .GatewayClassName ), nil , nil , [] * v1. Service { svc } ); err != nil {
171+ if ocfgs , err := pkg .ParseGatewayRelatedForClass (string (gw .Spec .GatewayClassName ), gws ); err != nil {
179172 return ctrl.Result {}, err
180173 } else {
181174 dr .From = & ocfgs
182175 }
183176 }
184- hrs := pkg . ActiveSIGs . HTTPRoutesRefsOf ( svc )
177+
185178 pkg .ActiveSIGs .UnsetService (req .NamespacedName .String ())
186- for _ , gw := range gwmap {
179+
180+ for _ , gw := range gws {
187181 if _ , f := drs [string (gw .Spec .GatewayClassName )]; ! f {
188182 drs [string (gw .Spec .GatewayClassName )] = pkg.DeployRequest {
189183 Meta : fmt .Sprintf ("deleting service '%s'" , req .NamespacedName .String ()),
190184 Partition : string (gw .Spec .GatewayClassName ),
191185 }
192186 }
193187 dr := drs [string (gw .Spec .GatewayClassName )]
194- if ncfgs , err := pkg .ParseRelatedForClass (string (gw .Spec .GatewayClassName ), nil , hrs , nil ); err != nil {
188+ if ncfgs , err := pkg .ParseGatewayRelatedForClass (string (gw .Spec .GatewayClassName ), gws ); err != nil {
195189 return ctrl.Result {}, err
196190 } else {
197191 dr .To = & ncfgs
@@ -214,35 +208,34 @@ func (r *ServiceReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
214208 }
215209 } else {
216210 svc := pkg .ActiveSIGs .GetService (req .NamespacedName .String ())
217- gwmap , hrmap , svcmap := map [string ]* gatewayv1beta1.Gateway {}, map [string ]* gatewayv1beta1.HTTPRoute {}, map [string ]* v1.Service {}
218- pkg .ActiveSIGs .GetRelatedObjs (nil , nil , []* v1.Service {svc }, & gwmap , & hrmap , & svcmap )
211+ gws := pkg .ActiveSIGs .GetRootGateways (svc )
219212
220213 drs := map [string ]pkg.DeployRequest {}
221214
222- for _ , gw := range gwmap {
215+ for _ , gw := range gws {
223216 if _ , f := drs [string (gw .Spec .GatewayClassName )]; ! f {
224217 drs [string (gw .Spec .GatewayClassName )] = pkg.DeployRequest {
225218 Meta : fmt .Sprintf ("upserting service '%s'" , req .NamespacedName .String ()),
226219 Partition : string (gw .Spec .GatewayClassName ),
227220 }
228221 }
229222 dr := drs [string (gw .Spec .GatewayClassName )]
230- if ocfgs , err := pkg .ParseRelatedForClass (string (gw .Spec .GatewayClassName ), nil , nil , [] * v1. Service { svc } ); err != nil {
223+ if ocfgs , err := pkg .ParseGatewayRelatedForClass (string (gw .Spec .GatewayClassName ), gws ); err != nil {
231224 return ctrl.Result {}, err
232225 } else {
233226 dr .From = & ocfgs
234227 }
235228 }
236229 pkg .ActiveSIGs .SetService (obj .DeepCopy ())
237- for _ , gw := range gwmap {
230+ for _ , gw := range gws {
238231 if _ , f := drs [string (gw .Spec .GatewayClassName )]; ! f {
239232 drs [string (gw .Spec .GatewayClassName )] = pkg.DeployRequest {
240233 Meta : fmt .Sprintf ("upserting service '%s'" , req .NamespacedName .String ()),
241234 Partition : string (gw .Spec .GatewayClassName ),
242235 }
243236 }
244237 dr := drs [string (gw .Spec .GatewayClassName )]
245- if ncfgs , err := pkg .ParseRelatedForClass (string (gw .Spec .GatewayClassName ), nil , nil , [] * v1. Service { svc } ); err != nil {
238+ if ncfgs , err := pkg .ParseGatewayRelatedForClass (string (gw .Spec .GatewayClassName ), gws ); err != nil {
246239 return ctrl.Result {}, err
247240 } else {
248241 dr .To = & ncfgs
0 commit comments