Monitor endpoint changes to trigger service-lb

This commit is contained in:
Darren Shepherd 2019-02-07 21:11:30 -07:00
parent 793ac4fb89
commit 3df9155d02
2 changed files with 14 additions and 3 deletions

View File

@ -50,9 +50,10 @@ func Register(ctx context.Context, kubernetes kubernetes.Interface, enabled bool
clients.Service.OnChange(ctx, "svccontroller", h.onChange)
changeset.Watch(ctx, "svccontroller-watcher",
h.onPodChange,
h.onResourceChange,
clients.Service,
clients.Pod)
clients.Pod,
clients.Endpoints)
return nil
}
@ -66,7 +67,16 @@ type handler struct {
services coregetter.ServicesGetter
}
func (h *handler) onPodChange(name, namespace string, obj runtime.Object) ([]changeset.Key, error) {
func (h *handler) onResourceChange(name, namespace string, obj runtime.Object) ([]changeset.Key, error) {
if ep, ok := obj.(*core.Endpoints); ok {
return []changeset.Key{
{
Name: ep.Name,
Namespace: ep.Namespace,
},
}, nil
}
pod, ok := obj.(*core.Pod)
if !ok {
return nil, nil

View File

@ -72,6 +72,7 @@ func main() {
if err := generator.ControllersForForeignTypes(basePackage, corev1.SchemeGroupVersion, []interface{}{
corev1.ServiceAccount{},
corev1.Endpoints{},
corev1.Service{},
corev1.Pod{},
corev1.ConfigMap{},