@@ -24,10 +24,6 @@ import (
2424 "sigs.k8s.io/controller-runtime/pkg/reconcile"
2525)
2626
27- // +kubebuilder:rbac:groups=networking.k8s.io,resources=ingresses,verbs=get;list;watch;update
28- // +kubebuilder:rbac:groups=networking.k8s.io,resources=ingresses/status,verbs=get;update
29- // +kubebuilder:rbac:groups=networking.k8s.io,resources=ingressclasses,verbs=get;list;watch
30-
3127// IngressReconciler reconciles a Ingress object.
3228type IngressReconciler struct { //nolint:revive
3329 client.Client
@@ -128,7 +124,9 @@ func (r *IngressReconciler) checkIngressClass(obj client.Object) bool {
128124 // handle the case where IngressClassName is not specified
129125 // find all ingress classes and check if any of them is marked as default
130126 ingressClassList := & networkingv1.IngressClassList {}
131- if err := r .List (context .Background (), ingressClassList ); err != nil {
127+ if err := r .List (context .Background (), ingressClassList , client.MatchingFields {
128+ indexer .IngressClass : config .GetControllerName (),
129+ }); err != nil {
132130 r .Log .Error (err , "failed to list ingress classes" )
133131 return false
134132 }
@@ -310,7 +308,10 @@ func (r *IngressReconciler) processBackendService(ctx context.Context, tctx *pro
310308 Namespace : namespace ,
311309 Name : backendService .Name ,
312310 }, & service ); err != nil {
313- r .Log .Error (err , "failed to get service" , "namespace" , namespace , "name" , backendService .Name )
311+ if client .IgnoreNotFound (err ) == nil {
312+ r .Log .Info ("service not found" , "namespace" , namespace , "name" , backendService .Name )
313+ return nil
314+ }
314315 return err
315316 }
316317
@@ -392,8 +393,7 @@ func (r *IngressReconciler) updateStatus(ctx context.Context, ingress *networkin
392393 return fmt .Errorf ("failed to get publish service %s: %w" , publishService , err )
393394 }
394395
395- if svc .Spec .Type != corev1 .ServiceTypeLoadBalancer {
396- r .Log .Error (fmt .Errorf ("publish service %s is not a load balancer service" , publishService ), "publish service is not a load balancer service" )
396+ if svc .Spec .Type == corev1 .ServiceTypeLoadBalancer {
397397 // get the LoadBalancer IP and Hostname of the service
398398 for _ , ip := range svc .Status .LoadBalancer .Ingress {
399399 if ip .IP != "" {
@@ -408,20 +408,6 @@ func (r *IngressReconciler) updateStatus(ctx context.Context, ingress *networkin
408408 }
409409 }
410410 }
411-
412- } else {
413- // 3. if the PublishService is not configured, try to use the Gateway's Addresses
414- cfg := config .GetFirstGatewayConfig ()
415- if cfg != nil {
416- for _ , addr := range cfg .Addresses {
417- if addr == "" {
418- continue
419- }
420- loadBalancerStatus .Ingress = append (loadBalancerStatus .Ingress , networkingv1.IngressLoadBalancerIngress {
421- IP : addr ,
422- })
423- }
424- }
425411 }
426412 }
427413
0 commit comments