Skip to content

Commit 3f29616

Browse files
authored
sync ingress status on ingress class updates (istio#44926)
1 parent ea74e8c commit 3f29616

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

pilot/pkg/config/kube/ingress/status.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func NewStatusSyncer(meshHolder mesh.Watcher, kc kubelib.Client, options kubecon
7777
// For any ingress change, enqueue it - we may need to update the status.
7878
c.ingresses.AddEventHandler(controllers.ObjectHandler(c.queue.AddObject))
7979
// For any class change, sync all ingress; the handler will filter non-matching ones already
80-
c.ingresses.AddEventHandler(controllers.ObjectHandler(func(o controllers.Object) {
80+
c.ingressClasses.AddEventHandler(controllers.ObjectHandler(func(o controllers.Object) {
8181
// Just sync them all
8282
c.enqueueAll()
8383
}))
@@ -102,7 +102,7 @@ func NewStatusSyncer(meshHolder mesh.Watcher, kc kubelib.Client, options kubecon
102102
c.enqueueAll()
103103
}
104104
}))
105-
// Mesh may have changed ingress fields, enqueu everything
105+
// Mesh may have changed ingress fields, enqueue everything
106106
c.meshConfig.AddMeshHandler(c.enqueueAll)
107107
return c
108108
}

pilot/pkg/config/kube/ingress/status_test.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ func TestStatusController(t *testing.T) {
135135
c := makeStatusSyncer(t, "istio-ingress")
136136
ing := clienttest.Wrap(t, c.ingresses)
137137
svc := clienttest.Wrap(t, c.services)
138+
ingc := clienttest.Wrap(t, c.ingressClasses)
138139
ing.Create(&knetworking.Ingress{
139140
ObjectMeta: metav1.ObjectMeta{
140141
Name: "ingress",
@@ -168,6 +169,30 @@ func TestStatusController(t *testing.T) {
168169
},
169170
})
170171
assert.EventuallyEqual(t, getIPs(ing, "ingress", "default"), []string{})
172+
173+
ingressClassName := "istio"
174+
// Set IngressClassName
175+
ing.Update(&knetworking.Ingress{
176+
ObjectMeta: metav1.ObjectMeta{
177+
Name: "ingress",
178+
Namespace: "default",
179+
},
180+
Spec: knetworking.IngressSpec{
181+
IngressClassName: &ingressClassName,
182+
},
183+
})
184+
assert.EventuallyEqual(t, getIPs(ing, "ingress", "default"), []string{})
185+
186+
// Create IngressClass
187+
ingc.Create(&knetworking.IngressClass{
188+
ObjectMeta: metav1.ObjectMeta{
189+
Name: ingressClassName,
190+
},
191+
Spec: knetworking.IngressClassSpec{
192+
Controller: IstioIngressController,
193+
},
194+
})
195+
assert.EventuallyEqual(t, getIPs(ing, "ingress", "default"), []string{"5.6.7.8"})
171196
}
172197

173198
func TestRunningAddresses(t *testing.T) {

0 commit comments

Comments
 (0)