aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/object/service.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/kubernetes/object/service.go')
-rw-r--r--plugin/kubernetes/object/service.go14
1 files changed, 11 insertions, 3 deletions
diff --git a/plugin/kubernetes/object/service.go b/plugin/kubernetes/object/service.go
index a41100ab9..295715e2d 100644
--- a/plugin/kubernetes/object/service.go
+++ b/plugin/kubernetes/object/service.go
@@ -26,8 +26,14 @@ type Service struct {
// ServiceKey return a string using for the index.
func ServiceKey(name, namespace string) string { return name + "." + namespace }
-// ToService converts an api.Service to a *Service.
-func ToService(obj interface{}) interface{} {
+// ToService returns a function that converts an api.Service to a *Service.
+func ToService(skipCleanup bool) ToFunc {
+ return func(obj interface{}) interface{} {
+ return toService(skipCleanup, obj)
+ }
+}
+
+func toService(skipCleanup bool, obj interface{}) interface{} {
svc, ok := obj.(*api.Service)
if !ok {
return nil
@@ -58,7 +64,9 @@ func ToService(obj interface{}) interface{} {
s.ExternalIPs[li+i] = lb.IP
}
- *svc = api.Service{}
+ if !skipCleanup {
+ *svc = api.Service{}
+ }
return s
}