Sort ingresses by creation timestamp
This commit is contained in:
parent
cac694ecce
commit
b2fa243b97
3 changed files with 29 additions and 9 deletions
|
@ -120,13 +120,7 @@ func (n *NGINXController) syncIngress(interface{}) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// sort Ingresses using the ResourceVersion field
|
|
||||||
ings := n.store.ListIngresses()
|
ings := n.store.ListIngresses()
|
||||||
sort.SliceStable(ings, func(i, j int) bool {
|
|
||||||
ir := ings[i].ResourceVersion
|
|
||||||
jr := ings[j].ResourceVersion
|
|
||||||
return ir < jr
|
|
||||||
})
|
|
||||||
|
|
||||||
upstreams, servers := n.getBackendServers(ings)
|
upstreams, servers := n.getBackendServers(ings)
|
||||||
var passUpstreams []*ingress.SSLPassthroughBackend
|
var passUpstreams []*ingress.SSLPassthroughBackend
|
||||||
|
|
|
@ -21,6 +21,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"sort"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -736,6 +737,13 @@ func (s *k8sStore) ListIngresses() []*ingress.Ingress {
|
||||||
ingresses = append(ingresses, ing)
|
ingresses = append(ingresses, ing)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// sort Ingresses using the CreationTimestamp field
|
||||||
|
sort.SliceStable(ingresses, func(i, j int) bool {
|
||||||
|
ir := ingresses[i].CreationTimestamp
|
||||||
|
jr := ingresses[j].CreationTimestamp
|
||||||
|
return ir.Before(&jr)
|
||||||
|
})
|
||||||
|
|
||||||
return ingresses
|
return ingresses
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ import (
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
|
||||||
"k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/client-go/kubernetes"
|
"k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/client-go/kubernetes/fake"
|
"k8s.io/client-go/kubernetes/fake"
|
||||||
"k8s.io/ingress-nginx/internal/file"
|
"k8s.io/ingress-nginx/internal/file"
|
||||||
|
@ -939,6 +939,8 @@ func TestUpdateSecretIngressMap(t *testing.T) {
|
||||||
func TestListIngresses(t *testing.T) {
|
func TestListIngresses(t *testing.T) {
|
||||||
s := newStore(t)
|
s := newStore(t)
|
||||||
|
|
||||||
|
sameTime := metav1.NewTime(time.Now())
|
||||||
|
|
||||||
ingressToIgnore := &ingress.Ingress{
|
ingressToIgnore := &ingress.Ingress{
|
||||||
Ingress: extensions.Ingress{
|
Ingress: extensions.Ingress{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
@ -947,6 +949,7 @@ func TestListIngresses(t *testing.T) {
|
||||||
Annotations: map[string]string{
|
Annotations: map[string]string{
|
||||||
"kubernetes.io/ingress.class": "something",
|
"kubernetes.io/ingress.class": "something",
|
||||||
},
|
},
|
||||||
|
CreationTimestamp: sameTime,
|
||||||
},
|
},
|
||||||
Spec: extensions.IngressSpec{
|
Spec: extensions.IngressSpec{
|
||||||
Backend: &extensions.IngressBackend{
|
Backend: &extensions.IngressBackend{
|
||||||
|
@ -963,6 +966,7 @@ func TestListIngresses(t *testing.T) {
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "test-3",
|
Name: "test-3",
|
||||||
Namespace: "testns",
|
Namespace: "testns",
|
||||||
|
CreationTimestamp: sameTime,
|
||||||
},
|
},
|
||||||
Spec: extensions.IngressSpec{
|
Spec: extensions.IngressSpec{
|
||||||
Rules: []extensions.IngressRule{
|
Rules: []extensions.IngressRule{
|
||||||
|
@ -995,6 +999,7 @@ func TestListIngresses(t *testing.T) {
|
||||||
Annotations: map[string]string{
|
Annotations: map[string]string{
|
||||||
"kubernetes.io/ingress.class": "nginx",
|
"kubernetes.io/ingress.class": "nginx",
|
||||||
},
|
},
|
||||||
|
CreationTimestamp: metav1.NewTime(time.Now()),
|
||||||
},
|
},
|
||||||
Spec: extensions.IngressSpec{
|
Spec: extensions.IngressSpec{
|
||||||
Rules: []extensions.IngressRule{
|
Rules: []extensions.IngressRule{
|
||||||
|
@ -1021,9 +1026,22 @@ func TestListIngresses(t *testing.T) {
|
||||||
s.listers.IngressWithAnnotation.Add(ingressWithNginxClass)
|
s.listers.IngressWithAnnotation.Add(ingressWithNginxClass)
|
||||||
|
|
||||||
ingresses := s.ListIngresses()
|
ingresses := s.ListIngresses()
|
||||||
|
|
||||||
if s := len(ingresses); s != 3 {
|
if s := len(ingresses); s != 3 {
|
||||||
t.Errorf("Expected 3 Ingresses but got %v", s)
|
t.Errorf("Expected 3 Ingresses but got %v", s)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ingresses[0].Name != "test-2" {
|
||||||
|
t.Errorf("Expected Ingress test-2 but got %v", ingresses[0].Name)
|
||||||
|
}
|
||||||
|
|
||||||
|
if ingresses[1].Name != "test-3" {
|
||||||
|
t.Errorf("Expected Ingress test-3 but got %v", ingresses[1].Name)
|
||||||
|
}
|
||||||
|
|
||||||
|
if ingresses[2].Name != "test-4" {
|
||||||
|
t.Errorf("Expected Ingress test-4 but got %v", ingresses[2].Name)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestWriteSSLSessionTicketKey(t *testing.T) {
|
func TestWriteSSLSessionTicketKey(t *testing.T) {
|
||||||
|
|
Loading…
Reference in a new issue