diff --git a/pkg/servicelb/controller.go b/pkg/servicelb/controller.go index d7a9f6c301..b34dd52477 100644 --- a/pkg/servicelb/controller.go +++ b/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 diff --git a/types/codegen/main.go b/types/codegen/main.go index 3f11edf655..2351a2ad5f 100644 --- a/types/codegen/main.go +++ b/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{},