Fix TLS does not get updated when changed
This commit is contained in:
parent
0f7102a356
commit
bc810d8eef
1 changed files with 20 additions and 0 deletions
|
@ -26,6 +26,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
|
"github.com/kylelemons/godebug/pretty"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
|
@ -178,6 +179,7 @@ func newIngressController(config *Configuration) *GenericController {
|
||||||
ic.syncQueue.Enqueue(obj)
|
ic.syncQueue.Enqueue(obj)
|
||||||
},
|
},
|
||||||
UpdateFunc: func(old, cur interface{}) {
|
UpdateFunc: func(old, cur interface{}) {
|
||||||
|
oldIng := old.(*extensions.Ingress)
|
||||||
curIng := cur.(*extensions.Ingress)
|
curIng := cur.(*extensions.Ingress)
|
||||||
if !IsValidClass(curIng, config.IngressClass) {
|
if !IsValidClass(curIng, config.IngressClass) {
|
||||||
return
|
return
|
||||||
|
@ -186,6 +188,24 @@ func newIngressController(config *Configuration) *GenericController {
|
||||||
if !reflect.DeepEqual(old, cur) {
|
if !reflect.DeepEqual(old, cur) {
|
||||||
upIng := cur.(*extensions.Ingress)
|
upIng := cur.(*extensions.Ingress)
|
||||||
ic.recorder.Eventf(upIng, api.EventTypeNormal, "UPDATE", fmt.Sprintf("Ingress %s/%s", upIng.Namespace, upIng.Name))
|
ic.recorder.Eventf(upIng, api.EventTypeNormal, "UPDATE", fmt.Sprintf("Ingress %s/%s", upIng.Namespace, upIng.Name))
|
||||||
|
// the referenced secret is different?
|
||||||
|
if diff := pretty.Compare(curIng.Spec.TLS, oldIng.Spec.TLS); diff != "" {
|
||||||
|
for _, secretName := range curIng.Spec.TLS {
|
||||||
|
secKey := fmt.Sprintf("%v/%v", curIng.Namespace, secretName.SecretName)
|
||||||
|
go func() {
|
||||||
|
glog.Infof("TLS section in ingress %v/%v changed (secret is now %v)", upIng.Namespace, upIng.Name, secKey)
|
||||||
|
// we need to wait until the ingress store is updated
|
||||||
|
time.Sleep(10 * time.Second)
|
||||||
|
key, err := ic.GetSecret(secKey)
|
||||||
|
if err != nil {
|
||||||
|
glog.Errorf("unexpected error: %v", err)
|
||||||
|
}
|
||||||
|
if key != nil {
|
||||||
|
ic.secretQueue.Enqueue(key)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
}
|
||||||
ic.syncQueue.Enqueue(cur)
|
ic.syncQueue.Enqueue(cur)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue