@@ -194,31 +194,31 @@ func (d *Driver) setNgrokMetadataOwner(owner string, customNgrokMetadata map[str
194194 return string (jsonString ), nil
195195}
196196
197- func listObjectsForType (ctx context.Context , client client.Reader , v interface {}) ([]client.Object , error ) {
197+ func listObjectsForType (ctx context.Context , client client.Reader , v interface {}, listOpts ... client. ListOption ) ([]client.Object , error ) {
198198 switch v .(type ) {
199199
200200 // ----------------------------------------------------------------------------
201201 // Kubernetes Core API Support
202202 // ----------------------------------------------------------------------------
203203 case * corev1.Service :
204204 services := & corev1.ServiceList {}
205- err := client .List (ctx , services )
205+ err := client .List (ctx , services , listOpts ... )
206206 return util .ToClientObjects (services .Items ), err
207207 case * corev1.Secret :
208208 secrets := & corev1.SecretList {}
209- err := client .List (ctx , secrets )
209+ err := client .List (ctx , secrets , listOpts ... )
210210 return util .ToClientObjects (secrets .Items ), err
211211 case * corev1.ConfigMap :
212212 configmaps := & corev1.ConfigMapList {}
213- err := client .List (ctx , configmaps )
213+ err := client .List (ctx , configmaps , listOpts ... )
214214 return util .ToClientObjects (configmaps .Items ), err
215215 case * corev1.Namespace :
216216 namespaces := & corev1.NamespaceList {}
217217 err := client .List (ctx , namespaces )
218218 return util .ToClientObjects (namespaces .Items ), err
219219 case * netv1.Ingress :
220220 ingresses := & netv1.IngressList {}
221- err := client .List (ctx , ingresses )
221+ err := client .List (ctx , ingresses , listOpts ... )
222222 return util .ToClientObjects (ingresses .Items ), err
223223 case * netv1.IngressClass :
224224 ingressClasses := & netv1.IngressClassList {}
@@ -234,43 +234,43 @@ func listObjectsForType(ctx context.Context, client client.Reader, v interface{}
234234 return util .ToClientObjects (gatewayClasses .Items ), err
235235 case * gatewayv1.Gateway :
236236 gateways := & gatewayv1.GatewayList {}
237- err := client .List (ctx , gateways )
237+ err := client .List (ctx , gateways , listOpts ... )
238238 return util .ToClientObjects (gateways .Items ), err
239239 case * gatewayv1.HTTPRoute :
240240 httproutes := & gatewayv1.HTTPRouteList {}
241- err := client .List (ctx , httproutes )
241+ err := client .List (ctx , httproutes , listOpts ... )
242242 return util .ToClientObjects (httproutes .Items ), err
243243 case * gatewayv1alpha2.TCPRoute :
244244 tcpRoutes := & gatewayv1alpha2.TCPRouteList {}
245- err := client .List (ctx , tcpRoutes )
245+ err := client .List (ctx , tcpRoutes , listOpts ... )
246246 return util .ToClientObjects (tcpRoutes .Items ), err
247247 case * gatewayv1alpha2.TLSRoute :
248248 tlsRoutes := & gatewayv1alpha2.TLSRouteList {}
249- err := client .List (ctx , tlsRoutes )
249+ err := client .List (ctx , tlsRoutes , listOpts ... )
250250 return util .ToClientObjects (tlsRoutes .Items ), err
251251 case * gatewayv1beta1.ReferenceGrant :
252252 referenceGrants := & gatewayv1beta1.ReferenceGrantList {}
253- err := client .List (ctx , referenceGrants )
253+ err := client .List (ctx , referenceGrants , listOpts ... )
254254 return util .ToClientObjects (referenceGrants .Items ), err
255255
256256 // ----------------------------------------------------------------------------
257257 // Ngrok API Support
258258 // ----------------------------------------------------------------------------
259259 case * ingressv1alpha1.Domain :
260260 domains := & ingressv1alpha1.DomainList {}
261- err := client .List (ctx , domains )
261+ err := client .List (ctx , domains , listOpts ... )
262262 return util .ToClientObjects (domains .Items ), err
263263 case * ngrokv1alpha1.NgrokTrafficPolicy :
264264 policies := & ngrokv1alpha1.NgrokTrafficPolicyList {}
265- err := client .List (ctx , policies )
265+ err := client .List (ctx , policies , listOpts ... )
266266 return util .ToClientObjects (policies .Items ), err
267267 case * ngrokv1alpha1.AgentEndpoint :
268268 agentEndpoints := & ngrokv1alpha1.AgentEndpointList {}
269- err := client .List (ctx , agentEndpoints )
269+ err := client .List (ctx , agentEndpoints , listOpts ... )
270270 return util .ToClientObjects (agentEndpoints .Items ), err
271271 case * ngrokv1alpha1.CloudEndpoint :
272272 cloudEndpoints := & ngrokv1alpha1.CloudEndpointList {}
273- err := client .List (ctx , cloudEndpoints )
273+ err := client .List (ctx , cloudEndpoints , listOpts ... )
274274 return util .ToClientObjects (cloudEndpoints .Items ), err
275275 }
276276 return nil , fmt .Errorf ("unsupported type %T" , v )
@@ -298,7 +298,7 @@ func listObjectsForType(ctx context.Context, client client.Reader, v interface{}
298298// - AgentEndpoints
299299// - CloudEndpoints
300300// When the sync method becomes a background process, this likely won't be needed anymore
301- func (d * Driver ) Seed (ctx context.Context , c client.Reader ) error {
301+ func (d * Driver ) Seed (ctx context.Context , c client.Reader , listOpts ... client. ListOption ) error {
302302 typesToSeed := []interface {}{
303303 & netv1.Ingress {},
304304 & netv1.IngressClass {},
@@ -331,7 +331,7 @@ func (d *Driver) Seed(ctx context.Context, c client.Reader) error {
331331 }
332332
333333 for _ , v := range typesToSeed {
334- objects , err := listObjectsForType (ctx , c , v )
334+ objects , err := listObjectsForType (ctx , c , v , listOpts ... )
335335 if err != nil {
336336 return err
337337 }
0 commit comments