From 7283d7eb2f19e90e6628a8b3ad11b0a09e9579c6 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Doumenjou Date: Tue, 7 Jan 2020 10:46:04 +0100 Subject: [PATCH] Log the ignored namespace only when needed --- .../kubernetes/crd/kubernetes_http.go | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/pkg/provider/kubernetes/crd/kubernetes_http.go b/pkg/provider/kubernetes/crd/kubernetes_http.go index ed318e276..6f6129850 100644 --- a/pkg/provider/kubernetes/crd/kubernetes_http.go +++ b/pkg/provider/kubernetes/crd/kubernetes_http.go @@ -380,11 +380,11 @@ func (c configBuilder) nameAndService(ctx context.Context, namespaceService stri return "", nil, err } - fullName := fullServiceName(svcCtx, namespace, service.Name, service.Port) + fullName := fullServiceName(svcCtx, namespace, service, service.Port) return fullName, serversLB, nil case service.Kind == "TraefikService": - return fullServiceName(svcCtx, namespace, service.Name, 0), nil, nil + return fullServiceName(svcCtx, namespace, service, 0), nil, nil default: return "", nil, fmt.Errorf("unsupported service kind %s", service.Kind) } @@ -399,27 +399,22 @@ func splitSvcNameProvider(name string) (string, string) { return svc, pvd } -func fullServiceName(ctx context.Context, namespace, serviceName string, port int32) string { +func fullServiceName(ctx context.Context, namespace string, service v1alpha1.LoadBalancerSpec, port int32) string { if port != 0 { - return provider.Normalize(fmt.Sprintf("%s-%s-%d", namespace, serviceName, port)) + return provider.Normalize(fmt.Sprintf("%s-%s-%d", namespace, service.Name, port)) } - if !strings.Contains(serviceName, providerNamespaceSeparator) { - return provider.Normalize(fmt.Sprintf("%s-%s", namespace, serviceName)) + if !strings.Contains(service.Name, providerNamespaceSeparator) { + return provider.Normalize(fmt.Sprintf("%s-%s", namespace, service.Name)) } - name, pName := splitSvcNameProvider(serviceName) + name, pName := splitSvcNameProvider(service.Name) if pName == providerName { return provider.Normalize(fmt.Sprintf("%s-%s", namespace, name)) } - // At this point, if namespace == "default", we do not know whether it had been intentionally set as such, - // or if we're simply hitting the value set by default. - // But as it is most likely very much the latter, - // and we do not want to systematically log spam users in that case, - // we skip logging whenever the namespace is "default". - if namespace != "default" { - log.FromContext(ctx).Warnf("namespace %q is ignored in cross-provider context", namespace) + if service.Namespace != "" { + log.FromContext(ctx).Warnf("namespace %q is ignored in cross-provider context", service.Namespace) } return provider.Normalize(name) + providerNamespaceSeparator + pName