diff options
Diffstat (limited to 'plugin/kubernetes/kubernetes.go')
-rw-r--r-- | plugin/kubernetes/kubernetes.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/plugin/kubernetes/kubernetes.go b/plugin/kubernetes/kubernetes.go index 03b93748b..eaadb142c 100644 --- a/plugin/kubernetes/kubernetes.go +++ b/plugin/kubernetes/kubernetes.go @@ -459,13 +459,17 @@ func (k *Kubernetes) findServices(r recordRequest, zone string) (services []msg. for _, addr := range eps.Addresses { // See comments in parse.go parseRequest about the endpoint handling. - if r.endpoint != "" { if !match(r.endpoint, endpointHostname(addr, k.endpointNameMode)) { continue } } + if len(eps.Ports) == 0 { + // add a sentinel port (-1) entry so we create records for services without any declared ports + eps.Ports = append(eps.Ports, api.EndpointPort{Port: -1}) + } + for _, p := range eps.Ports { if !(match(r.port, p.Name) && match(r.protocol, string(p.Protocol))) { continue @@ -496,6 +500,10 @@ func (k *Kubernetes) findServices(r recordRequest, zone string) (services []msg. } // ClusterIP service + if len(svc.Spec.Ports) == 0 { + // add a sentinel port (-1) entry so we create records for services without any declared ports + svc.Spec.Ports = append(svc.Spec.Ports, api.ServicePort{Port: -1}) + } for _, p := range svc.Spec.Ports { if !(match(r.port, p.Name) && match(r.protocol, string(p.Protocol))) { continue |