Skip to content

Commit 5b28420

Browse files
committed
support ingressClassName
1 parent db1ce93 commit 5b28420

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

managers/ingress.go

+45
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,17 @@ import (
2727
"k8s.io/apimachinery/pkg/types"
2828
ctrl "sigs.k8s.io/controller-runtime"
2929
"sigs.k8s.io/controller-runtime/pkg/client"
30+
"sigs.k8s.io/controller-runtime/pkg/event"
3031
"sigs.k8s.io/controller-runtime/pkg/log"
32+
"sigs.k8s.io/controller-runtime/pkg/predicate"
3133

3234
loxiapi "github.com/loxilb-io/kube-loxilb/pkg/api"
3335
)
3436

37+
const (
38+
loxilbIngressClassName = "loxilb"
39+
)
40+
3541
type LoxilbIngressReconciler struct {
3642
client.Client
3743
Scheme *runtime.Scheme
@@ -173,7 +179,46 @@ func (r *LoxilbIngressReconciler) createLoxiModelList(ctx context.Context, ingre
173179
}
174180

175181
func (r *LoxilbIngressReconciler) SetupWithManager(mgr ctrl.Manager) error {
182+
checkIngClassNameFunc := func(ing *netv1.Ingress) bool {
183+
if ing.Spec.IngressClassName != nil {
184+
if *ing.Spec.IngressClassName == loxilbIngressClassName {
185+
return true
186+
}
187+
}
188+
return false
189+
}
190+
176191
return ctrl.NewControllerManagedBy(mgr).
177192
For(&netv1.Ingress{}).
193+
WithEventFilter(predicate.Funcs{
194+
UpdateFunc: func(e event.UpdateEvent) bool {
195+
ing, ok := e.ObjectNew.(*netv1.Ingress)
196+
if ok {
197+
return checkIngClassNameFunc(ing)
198+
}
199+
return false
200+
},
201+
DeleteFunc: func(e event.DeleteEvent) bool {
202+
ing, ok := e.Object.(*netv1.Ingress)
203+
if ok {
204+
return checkIngClassNameFunc(ing)
205+
}
206+
return false
207+
},
208+
CreateFunc: func(e event.CreateEvent) bool {
209+
ing, ok := e.Object.(*netv1.Ingress)
210+
if ok {
211+
return checkIngClassNameFunc(ing)
212+
}
213+
return false
214+
},
215+
GenericFunc: func(e event.GenericEvent) bool {
216+
ing, ok := e.Object.(*netv1.Ingress)
217+
if ok {
218+
return checkIngClassNameFunc(ing)
219+
}
220+
return false
221+
},
222+
}).
178223
Complete(r)
179224
}

0 commit comments

Comments
 (0)