From 5f814d957e5c48b265e8e835810dbbd3a5207ca1 Mon Sep 17 00:00:00 2001 From: Zihong Zheng Date: Mon, 22 May 2017 18:13:48 -0700 Subject: [PATCH] Detect ExternalTrafficPolicy and HealthCheckNodePort changes in needsUpdate() --- pkg/controller/service/servicecontroller.go | 10 ++++++++++ .../service/servicecontroller_test.go | 18 ++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/pkg/controller/service/servicecontroller.go b/pkg/controller/service/servicecontroller.go index 11b99ac396..d0b3fc0226 100644 --- a/pkg/controller/service/servicecontroller.go +++ b/pkg/controller/service/servicecontroller.go @@ -474,6 +474,16 @@ func (s *ServiceController) needsUpdate(oldService *v1.Service, newService *v1.S oldService.UID, newService.UID) return true } + if oldService.Spec.ExternalTrafficPolicy != newService.Spec.ExternalTrafficPolicy { + s.eventRecorder.Eventf(newService, v1.EventTypeNormal, "ExternalTrafficPolicy", "%v -> %v", + oldService.Spec.ExternalTrafficPolicy, newService.Spec.ExternalTrafficPolicy) + return true + } + if oldService.Spec.HealthCheckNodePort != newService.Spec.HealthCheckNodePort { + s.eventRecorder.Eventf(newService, v1.EventTypeNormal, "HealthCheckNodePort", "%v -> %v", + oldService.Spec.HealthCheckNodePort, newService.Spec.HealthCheckNodePort) + return true + } return false } diff --git a/pkg/controller/service/servicecontroller_test.go b/pkg/controller/service/servicecontroller_test.go index 0a7329f1d9..8f7f67508d 100644 --- a/pkg/controller/service/servicecontroller_test.go +++ b/pkg/controller/service/servicecontroller_test.go @@ -673,6 +673,24 @@ func TestDoesExternalLoadBalancerNeedsUpdate(t *testing.T) { }, expectedNeedsUpdate: true, }, + { + testName: "If ExternalTrafficPolicy is different", + updateFn: func() { + oldSvc = defaultExternalService() + newSvc = defaultExternalService() + newSvc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + }, + expectedNeedsUpdate: true, + }, + { + testName: "If HealthCheckNodePort is different", + updateFn: func() { + oldSvc = defaultExternalService() + newSvc = defaultExternalService() + newSvc.Spec.HealthCheckNodePort = 30123 + }, + expectedNeedsUpdate: true, + }, } controller, _, _ := newController()