From e2baf89eacc8f9e5eb7d22c5b606a7d99c7a0125 Mon Sep 17 00:00:00 2001 From: Dmitry Bashkatov Date: Mon, 2 Jul 2018 13:02:40 +0300 Subject: [PATCH] discovery/kubernetes/ingress: fix scheme discovery (Closes #4327) Signed-off-by: Dmitry Bashkatov --- discovery/kubernetes/ingress.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/discovery/kubernetes/ingress.go b/discovery/kubernetes/ingress.go index 592550212..0d48af998 100644 --- a/discovery/kubernetes/ingress.go +++ b/discovery/kubernetes/ingress.go @@ -176,13 +176,24 @@ func (s *Ingress) buildIngress(ingress *v1beta1.Ingress) *targetgroup.Group { } tg.Labels = ingressLabels(ingress) - schema := "http" + tlsHosts := make(map[string]struct{}) if ingress.Spec.TLS != nil { - schema = "https" + for _, tls := range ingress.Spec.TLS { + for _, host := range tls.Hosts { + tlsHosts[host] = struct{}{} + } + } } + for _, rule := range ingress.Spec.Rules { paths := pathsFromIngressRule(&rule.IngressRuleValue) + schema := "http" + _, isTLS := tlsHosts[rule.Host] + if isTLS { + schema = "https" + } + for _, path := range paths { tg.Targets = append(tg.Targets, model.LabelSet{ model.AddressLabel: lv(rule.Host),