aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/object/endpoint.go
diff options
context:
space:
mode:
authorGravatar Chris O'Haver <cohaver@infoblox.com> 2020-06-15 10:15:41 -0400
committerGravatar GitHub <noreply@github.com> 2020-06-15 10:15:41 -0400
commitd902e859199e4085cd27453f30367fd1b0799bc5 (patch)
tree907bb1a8ae35452d4f82bab798a9c1d0f89d3f1b /plugin/kubernetes/object/endpoint.go
parentd35c8e9eda7d6f2bb570165d4d1bf98ae5f813d9 (diff)
downloadcoredns-d902e859199e4085cd27453f30367fd1b0799bc5.tar.gz
coredns-d902e859199e4085cd27453f30367fd1b0799bc5.tar.zst
coredns-d902e859199e4085cd27453f30367fd1b0799bc5.zip
plugin/kubernetes: fix tombstone unwrapping (#3924)
* fix tombstone unwrapping Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
Diffstat (limited to 'plugin/kubernetes/object/endpoint.go')
-rw-r--r--plugin/kubernetes/object/endpoint.go21
1 files changed, 19 insertions, 2 deletions
diff --git a/plugin/kubernetes/object/endpoint.go b/plugin/kubernetes/object/endpoint.go
index 2a7d69acf..f3ce9c2d6 100644
--- a/plugin/kubernetes/object/endpoint.go
+++ b/plugin/kubernetes/object/endpoint.go
@@ -1,6 +1,8 @@
package object
import (
+ "fmt"
+
api "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/runtime"
)
@@ -43,8 +45,19 @@ type EndpointPort struct {
// EndpointsKey return a string using for the index.
func EndpointsKey(name, namespace string) string { return name + "." + namespace }
-// ToEndpoints converts an api.Endpoints to a *Endpoints.
-func ToEndpoints(end *api.Endpoints) *Endpoints {
+// ToEndpoints returns a function that converts an *api.Endpoints to a *Endpoints.
+func ToEndpoints(skipCleanup bool) ToFunc {
+ return func(obj interface{}) (interface{}, error) {
+ eps, ok := obj.(*api.Endpoints)
+ if !ok {
+ return nil, fmt.Errorf("unexpected object %v", obj)
+ }
+ return toEndpoints(skipCleanup, eps), nil
+ }
+}
+
+// toEndpoints converts an *api.Endpoints to a *Endpoints.
+func toEndpoints(skipCleanup bool, end *api.Endpoints) *Endpoints {
e := &Endpoints{
Version: end.GetResourceVersion(),
Name: end.GetName(),
@@ -88,6 +101,10 @@ func ToEndpoints(end *api.Endpoints) *Endpoints {
}
}
+ if !skipCleanup {
+ *end = api.Endpoints{}
+ }
+
return e
}