@@ -1396,6 +1396,7 @@ func GetIngressClassV1Beta1(ctx context.Context, c client.Client, log logr.Logge
13961396 return & ic , nil
13971397 }
13981398 }
1399+ log .V (1 ).Info ("no default ingress class(v1beta1) found" )
13991400 return nil , errors .New ("no default ingress class found" )
14001401 }
14011402
@@ -1412,12 +1413,7 @@ func GetIngressClassV1Beta1(ctx context.Context, c client.Client, log logr.Logge
14121413 return nil , errors .New ("ingress class is not controlled by us" )
14131414}
14141415
1415- func FindMatchingIngressClass (ctx context.Context , c client.Client , log logr.Logger , obj client.Object ) (* networkingv1.IngressClass , error ) {
1416- ingressClassName := ExtractIngressClass (obj )
1417- return FindMatchingIngressClassByName (ctx , c , log , ingressClassName )
1418- }
1419-
1420- func FindMatchingIngressClassByName (ctx context.Context , c client.Client , log logr.Logger , ingressClassName string ) (* networkingv1.IngressClass , error ) {
1416+ func GetIngressClassV1 (ctx context.Context , c client.Client , log logr.Logger , ingressClassName string ) (* networkingv1.IngressClass , error ) {
14211417 if ingressClassName == "" {
14221418 // Check for default ingress class
14231419 ingressClassList := & networkingv1.IngressClassList {}
@@ -1451,7 +1447,21 @@ func FindMatchingIngressClassByName(ctx context.Context, c client.Client, log lo
14511447 return nil , errors .New ("ingress class is not controlled by us" )
14521448}
14531449
1454- func GetIngressClass (ctx context.Context , c client.Client , log logr.Logger , ingressClassName string , apiVersion string ) (* networkingv1.IngressClass , error ) {
1450+ func FindMatchingIngressClassByObject (ctx context.Context , c client.Client , log logr.Logger , obj client.Object , apiVersion string ) (* networkingv1.IngressClass , error ) {
1451+ ingressClassName := ExtractIngressClass (obj )
1452+ switch apiVersion {
1453+ case networkingv1beta1 .SchemeGroupVersion .String ():
1454+ icBeta , err := GetIngressClassV1Beta1 (ctx , c , log , ingressClassName )
1455+ if err != nil {
1456+ return nil , err
1457+ }
1458+ return pkgutils .ConvertToIngressClassV1 (icBeta ), nil
1459+ default :
1460+ return GetIngressClassV1 (ctx , c , log , ingressClassName )
1461+ }
1462+ }
1463+
1464+ func FindMatchingIngressClassByName (ctx context.Context , c client.Client , log logr.Logger , ingressClassName string , apiVersion string ) (* networkingv1.IngressClass , error ) {
14551465 switch apiVersion {
14561466 case networkingv1beta1 .SchemeGroupVersion .String ():
14571467 icBeta , err := GetIngressClassV1Beta1 (ctx , c , log , ingressClassName )
@@ -1460,7 +1470,7 @@ func GetIngressClass(ctx context.Context, c client.Client, log logr.Logger, ingr
14601470 }
14611471 return pkgutils .ConvertToIngressClassV1 (icBeta ), nil
14621472 default :
1463- return GetIngressClassv1 (ctx , c , log , ingressClassName )
1473+ return GetIngressClassV1 (ctx , c , log , ingressClassName )
14641474 }
14651475}
14661476
@@ -1634,18 +1644,18 @@ func filterEndpointSliceByTargetPod(ctx context.Context, c client.Client, item d
16341644 return item
16351645}
16361646
1637- func MatchesIngressClassPredicate (c client.Client , log logr.Logger ) predicate.Funcs {
1647+ func MatchesIngressClassPredicateByAPIVersion (c client.Client , log logr.Logger , apiVersion string ) predicate.Funcs {
16381648 predicateFuncs := predicate .NewPredicateFuncs (func (obj client.Object ) bool {
1639- return MatchesIngressClass (c , log , obj )
1649+ return MatchesIngressClassByAPIVersion (c , log , obj , apiVersion )
16401650 })
16411651 predicateFuncs .UpdateFunc = func (e event.UpdateEvent ) bool {
1642- return MatchesIngressClass (c , log , e .ObjectOld ) || MatchesIngressClass (c , log , e .ObjectNew )
1652+ return MatchesIngressClassByAPIVersion (c , log , e .ObjectOld , apiVersion ) || MatchesIngressClassByAPIVersion (c , log , e .ObjectNew , apiVersion )
16431653 }
16441654 return predicateFuncs
16451655}
16461656
1647- func MatchesIngressClass (c client.Client , log logr.Logger , obj client.Object ) bool {
1648- _ , err := FindMatchingIngressClass (context .Background (), c , log , obj )
1657+ func MatchesIngressClassByAPIVersion (c client.Client , log logr.Logger , obj client.Object , apiVersion string ) bool {
1658+ _ , err := FindMatchingIngressClassByObject (context .Background (), c , log , obj , apiVersion )
16491659 return err == nil
16501660}
16511661
0 commit comments