Browse Source

Monitor endpoint changes to trigger service-lb

pull/22/head
Darren Shepherd 6 years ago
parent
commit
3df9155d02
  1. 16
      pkg/servicelb/controller.go
  2. 1
      types/codegen/main.go

16
pkg/servicelb/controller.go

@ -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

1
types/codegen/main.go

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

Loading…
Cancel
Save