refactor(k8s): default to nil headers struct.
This commit is contained in:
parent
53388a3570
commit
4497ddbb0e
3 changed files with 82 additions and 33 deletions
|
@ -214,9 +214,9 @@ func priority(value int) func(*types.Frontend) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func headers() func(*types.Frontend) {
|
func headers(h *types.Headers) func(*types.Frontend) {
|
||||||
return func(f *types.Frontend) {
|
return func(f *types.Frontend) {
|
||||||
f.Headers = &types.Headers{}
|
f.Headers = h
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -558,7 +558,7 @@ func getStickiness(service *v1.Service) *types.Stickiness {
|
||||||
}
|
}
|
||||||
|
|
||||||
func getHeader(i *v1beta1.Ingress) *types.Headers {
|
func getHeader(i *v1beta1.Ingress) *types.Headers {
|
||||||
return &types.Headers{
|
headers := &types.Headers{
|
||||||
CustomRequestHeaders: label.GetMapValue(i.Annotations, annotationKubernetesCustomRequestHeaders),
|
CustomRequestHeaders: label.GetMapValue(i.Annotations, annotationKubernetesCustomRequestHeaders),
|
||||||
CustomResponseHeaders: label.GetMapValue(i.Annotations, annotationKubernetesCustomResponseHeaders),
|
CustomResponseHeaders: label.GetMapValue(i.Annotations, annotationKubernetesCustomResponseHeaders),
|
||||||
AllowedHosts: label.GetSliceStringValue(i.Annotations, annotationKubernetesAllowedHosts),
|
AllowedHosts: label.GetSliceStringValue(i.Annotations, annotationKubernetesAllowedHosts),
|
||||||
|
@ -580,6 +580,12 @@ func getHeader(i *v1beta1.Ingress) *types.Headers {
|
||||||
ReferrerPolicy: label.GetStringValue(i.Annotations, annotationKubernetesReferrerPolicy, ""),
|
ReferrerPolicy: label.GetStringValue(i.Annotations, annotationKubernetesReferrerPolicy, ""),
|
||||||
IsDevelopment: label.GetBoolValue(i.Annotations, annotationKubernetesIsDevelopment, false),
|
IsDevelopment: label.GetBoolValue(i.Annotations, annotationKubernetesIsDevelopment, false),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !headers.HasSecureHeadersDefined() && !headers.HasCustomHeadersDefined() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return headers
|
||||||
}
|
}
|
||||||
|
|
||||||
func getRateLimit(i *v1beta1.Ingress) *types.RateLimit {
|
func getRateLimit(i *v1beta1.Ingress) *types.RateLimit {
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
|
|
||||||
"github.com/containous/traefik/provider/label"
|
"github.com/containous/traefik/provider/label"
|
||||||
"github.com/containous/traefik/tls"
|
"github.com/containous/traefik/tls"
|
||||||
|
"github.com/containous/traefik/types"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
"k8s.io/client-go/pkg/api/v1"
|
"k8s.io/client-go/pkg/api/v1"
|
||||||
|
@ -139,21 +140,18 @@ func TestLoadIngresses(t *testing.T) {
|
||||||
),
|
),
|
||||||
frontends(
|
frontends(
|
||||||
frontend("foo/bar",
|
frontend("foo/bar",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(
|
routes(
|
||||||
route("/bar", "PathPrefix:/bar"),
|
route("/bar", "PathPrefix:/bar"),
|
||||||
route("foo", "Host:foo")),
|
route("foo", "Host:foo")),
|
||||||
),
|
),
|
||||||
frontend("foo/namedthing",
|
frontend("foo/namedthing",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(
|
routes(
|
||||||
route("/namedthing", "PathPrefix:/namedthing"),
|
route("/namedthing", "PathPrefix:/namedthing"),
|
||||||
route("foo", "Host:foo")),
|
route("foo", "Host:foo")),
|
||||||
),
|
),
|
||||||
frontend("bar",
|
frontend("bar",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(route("bar", "Host:bar")),
|
routes(route("bar", "Host:bar")),
|
||||||
),
|
),
|
||||||
|
@ -227,7 +225,6 @@ func TestRuleType(t *testing.T) {
|
||||||
require.NoError(t, err, "error loading ingresses")
|
require.NoError(t, err, "error loading ingresses")
|
||||||
|
|
||||||
expected := buildFrontends(frontend("host/path",
|
expected := buildFrontends(frontend("host/path",
|
||||||
headers(),
|
|
||||||
routes(
|
routes(
|
||||||
route("/path", fmt.Sprintf("%s:/path", test.frontendRuleType)),
|
route("/path", fmt.Sprintf("%s:/path", test.frontendRuleType)),
|
||||||
route("host", "Host:host")),
|
route("host", "Host:host")),
|
||||||
|
@ -273,7 +270,6 @@ func TestGetPassHostHeader(t *testing.T) {
|
||||||
backends(backend("foo/bar", lbMethod("wrr"), servers())),
|
backends(backend("foo/bar", lbMethod("wrr"), servers())),
|
||||||
frontends(
|
frontends(
|
||||||
frontend("foo/bar",
|
frontend("foo/bar",
|
||||||
headers(),
|
|
||||||
routes(
|
routes(
|
||||||
route("/bar", "PathPrefix:/bar"),
|
route("/bar", "PathPrefix:/bar"),
|
||||||
route("foo", "Host:foo")),
|
route("foo", "Host:foo")),
|
||||||
|
@ -317,7 +313,6 @@ func TestGetPassTLSCert(t *testing.T) {
|
||||||
expected := buildConfiguration(
|
expected := buildConfiguration(
|
||||||
backends(backend("foo/bar", lbMethod("wrr"), servers())),
|
backends(backend("foo/bar", lbMethod("wrr"), servers())),
|
||||||
frontends(frontend("foo/bar",
|
frontends(frontend("foo/bar",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
passTLSCert(),
|
passTLSCert(),
|
||||||
routes(
|
routes(
|
||||||
|
@ -372,7 +367,6 @@ func TestOnlyReferencesServicesFromOwnNamespace(t *testing.T) {
|
||||||
expected := buildConfiguration(
|
expected := buildConfiguration(
|
||||||
backends(backend("foo", lbMethod("wrr"), servers())),
|
backends(backend("foo", lbMethod("wrr"), servers())),
|
||||||
frontends(frontend("foo",
|
frontends(frontend("foo",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(route("foo", "Host:foo")),
|
routes(route("foo", "Host:foo")),
|
||||||
)),
|
)),
|
||||||
|
@ -415,7 +409,6 @@ func TestHostlessIngress(t *testing.T) {
|
||||||
expected := buildConfiguration(
|
expected := buildConfiguration(
|
||||||
backends(backend("/bar", lbMethod("wrr"), servers())),
|
backends(backend("/bar", lbMethod("wrr"), servers())),
|
||||||
frontends(frontend("/bar",
|
frontends(frontend("/bar",
|
||||||
headers(),
|
|
||||||
routes(route("/bar", "PathPrefix:/bar")))),
|
routes(route("/bar", "PathPrefix:/bar")))),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -586,14 +579,12 @@ func TestServiceAnnotations(t *testing.T) {
|
||||||
),
|
),
|
||||||
frontends(
|
frontends(
|
||||||
frontend("foo/bar",
|
frontend("foo/bar",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(
|
routes(
|
||||||
route("/bar", "PathPrefix:/bar"),
|
route("/bar", "PathPrefix:/bar"),
|
||||||
route("foo", "Host:foo")),
|
route("foo", "Host:foo")),
|
||||||
),
|
),
|
||||||
frontend("bar",
|
frontend("bar",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(route("bar", "Host:bar"))),
|
routes(route("bar", "Host:bar"))),
|
||||||
frontend("baz",
|
frontend("baz",
|
||||||
|
@ -601,7 +592,6 @@ func TestServiceAnnotations(t *testing.T) {
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(route("baz", "Host:baz"))),
|
routes(route("baz", "Host:baz"))),
|
||||||
frontend("max-conn",
|
frontend("max-conn",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(
|
routes(
|
||||||
route("max-conn", "Host:max-conn"))),
|
route("max-conn", "Host:max-conn"))),
|
||||||
|
@ -737,6 +727,35 @@ func TestIngressAnnotations(t *testing.T) {
|
||||||
iPaths(onePath(iPath("/ratelimit"), iBackend("service1", intstr.FromInt(80))))),
|
iPaths(onePath(iPath("/ratelimit"), iBackend("service1", intstr.FromInt(80))))),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
buildIngress(
|
||||||
|
iNamespace("testing"),
|
||||||
|
iAnnotation(annotationKubernetesIngressClass, "traefik"),
|
||||||
|
iAnnotation(annotationKubernetesCustomRequestHeaders, "Access-Control-Allow-Methods:POST,GET,OPTIONS || Content-type: application/json; charset=utf-8"),
|
||||||
|
iAnnotation(annotationKubernetesCustomResponseHeaders, "Access-Control-Allow-Methods:POST,GET,OPTIONS || Content-type: application/json; charset=utf-8"),
|
||||||
|
iAnnotation(annotationKubernetesSSLProxyHeaders, "Access-Control-Allow-Methods:POST,GET,OPTIONS || Content-type: application/json; charset=utf-8"),
|
||||||
|
iAnnotation(annotationKubernetesAllowedHosts, "foo, fii, fuu"),
|
||||||
|
iAnnotation(annotationKubernetesProxyHeaders, "foo, fii, fuu"),
|
||||||
|
iAnnotation(annotationKubernetesHSTSMaxAge, "666"),
|
||||||
|
iAnnotation(annotationKubernetesSSLRedirect, "true"),
|
||||||
|
iAnnotation(annotationKubernetesSSLTemporaryRedirect, "true"),
|
||||||
|
iAnnotation(annotationKubernetesHSTSIncludeSubdomains, "true"),
|
||||||
|
iAnnotation(annotationKubernetesForceHSTSHeader, "true"),
|
||||||
|
iAnnotation(annotationKubernetesHSTSPreload, "true"),
|
||||||
|
iAnnotation(annotationKubernetesFrameDeny, "true"),
|
||||||
|
iAnnotation(annotationKubernetesContentTypeNosniff, "true"),
|
||||||
|
iAnnotation(annotationKubernetesBrowserXSSFilter, "true"),
|
||||||
|
iAnnotation(annotationKubernetesIsDevelopment, "true"),
|
||||||
|
iAnnotation(annotationKubernetesSSLHost, "foo"),
|
||||||
|
iAnnotation(annotationKubernetesCustomFrameOptionsValue, "foo"),
|
||||||
|
iAnnotation(annotationKubernetesContentSecurityPolicy, "foo"),
|
||||||
|
iAnnotation(annotationKubernetesPublicKey, "foo"),
|
||||||
|
iAnnotation(annotationKubernetesReferrerPolicy, "foo"),
|
||||||
|
iRules(
|
||||||
|
iRule(
|
||||||
|
iHost("custom-headers"),
|
||||||
|
iPaths(onePath(iPath("/customheaders"), iBackend("service1", intstr.FromInt(80))))),
|
||||||
|
),
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
services := []*v1.Service{
|
services := []*v1.Service{
|
||||||
|
@ -843,23 +862,26 @@ func TestIngressAnnotations(t *testing.T) {
|
||||||
server("http://example.com", weight(1))),
|
server("http://example.com", weight(1))),
|
||||||
lbMethod("wrr"),
|
lbMethod("wrr"),
|
||||||
),
|
),
|
||||||
|
backend("custom-headers/customheaders",
|
||||||
|
servers(
|
||||||
|
server("http://example.com", weight(1)),
|
||||||
|
server("http://example.com", weight(1))),
|
||||||
|
lbMethod("wrr"),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
frontends(
|
frontends(
|
||||||
frontend("foo/bar",
|
frontend("foo/bar",
|
||||||
headers(),
|
|
||||||
routes(
|
routes(
|
||||||
route("/bar", "PathPrefix:/bar"),
|
route("/bar", "PathPrefix:/bar"),
|
||||||
route("foo", "Host:foo")),
|
route("foo", "Host:foo")),
|
||||||
),
|
),
|
||||||
frontend("other/stuff",
|
frontend("other/stuff",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(
|
routes(
|
||||||
route("/stuff", "PathPrefix:/stuff"),
|
route("/stuff", "PathPrefix:/stuff"),
|
||||||
route("other", "Host:other")),
|
route("other", "Host:other")),
|
||||||
),
|
),
|
||||||
frontend("other/",
|
frontend("other/",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
entryPoints("http", "https"),
|
entryPoints("http", "https"),
|
||||||
routes(
|
routes(
|
||||||
|
@ -867,7 +889,6 @@ func TestIngressAnnotations(t *testing.T) {
|
||||||
route("other", "Host:other")),
|
route("other", "Host:other")),
|
||||||
),
|
),
|
||||||
frontend("other/sslstuff",
|
frontend("other/sslstuff",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
passTLSCert(),
|
passTLSCert(),
|
||||||
routes(
|
routes(
|
||||||
|
@ -875,7 +896,6 @@ func TestIngressAnnotations(t *testing.T) {
|
||||||
route("other", "Host:other")),
|
route("other", "Host:other")),
|
||||||
),
|
),
|
||||||
frontend("other/sslstuff",
|
frontend("other/sslstuff",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
passTLSCert(),
|
passTLSCert(),
|
||||||
routes(
|
routes(
|
||||||
|
@ -883,7 +903,6 @@ func TestIngressAnnotations(t *testing.T) {
|
||||||
route("other", "Host:other")),
|
route("other", "Host:other")),
|
||||||
),
|
),
|
||||||
frontend("basic/auth",
|
frontend("basic/auth",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
basicAuth("myUser:myEncodedPW"),
|
basicAuth("myUser:myEncodedPW"),
|
||||||
routes(
|
routes(
|
||||||
|
@ -891,7 +910,6 @@ func TestIngressAnnotations(t *testing.T) {
|
||||||
route("basic", "Host:basic")),
|
route("basic", "Host:basic")),
|
||||||
),
|
),
|
||||||
frontend("redirect/https",
|
frontend("redirect/https",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
redirectEntryPoint("https"),
|
redirectEntryPoint("https"),
|
||||||
routes(
|
routes(
|
||||||
|
@ -899,7 +917,6 @@ func TestIngressAnnotations(t *testing.T) {
|
||||||
route("redirect", "Host:redirect")),
|
route("redirect", "Host:redirect")),
|
||||||
),
|
),
|
||||||
frontend("test/whitelist-source-range",
|
frontend("test/whitelist-source-range",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
whitelistSourceRange("1.1.1.1/24", "1234:abcd::42/32"),
|
whitelistSourceRange("1.1.1.1/24", "1234:abcd::42/32"),
|
||||||
routes(
|
routes(
|
||||||
|
@ -907,14 +924,12 @@ func TestIngressAnnotations(t *testing.T) {
|
||||||
route("test", "Host:test")),
|
route("test", "Host:test")),
|
||||||
),
|
),
|
||||||
frontend("rewrite/api",
|
frontend("rewrite/api",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(
|
routes(
|
||||||
route("/api", "PathPrefix:/api;ReplacePath:/"),
|
route("/api", "PathPrefix:/api;ReplacePath:/"),
|
||||||
route("rewrite", "Host:rewrite")),
|
route("rewrite", "Host:rewrite")),
|
||||||
),
|
),
|
||||||
frontend("error-pages/errorpages",
|
frontend("error-pages/errorpages",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
errorPage("foo", errorQuery("/bar"), errorStatus("123", "456"), errorBackend("bar")),
|
errorPage("foo", errorQuery("/bar"), errorStatus("123", "456"), errorBackend("bar")),
|
||||||
routes(
|
routes(
|
||||||
|
@ -922,7 +937,6 @@ func TestIngressAnnotations(t *testing.T) {
|
||||||
route("error-pages", "Host:error-pages")),
|
route("error-pages", "Host:error-pages")),
|
||||||
),
|
),
|
||||||
frontend("rate-limit/ratelimit",
|
frontend("rate-limit/ratelimit",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
rateLimit(rateExtractorFunc("client.ip"),
|
rateLimit(rateExtractorFunc("client.ip"),
|
||||||
rateSet("foo", limitPeriod(6*time.Second), limitAverage(12), limitBurst(18)),
|
rateSet("foo", limitPeriod(6*time.Second), limitAverage(12), limitBurst(18)),
|
||||||
|
@ -931,6 +945,43 @@ func TestIngressAnnotations(t *testing.T) {
|
||||||
route("/ratelimit", "PathPrefix:/ratelimit"),
|
route("/ratelimit", "PathPrefix:/ratelimit"),
|
||||||
route("rate-limit", "Host:rate-limit")),
|
route("rate-limit", "Host:rate-limit")),
|
||||||
),
|
),
|
||||||
|
frontend("custom-headers/customheaders",
|
||||||
|
passHostHeader(),
|
||||||
|
headers(&types.Headers{
|
||||||
|
CustomRequestHeaders: map[string]string{
|
||||||
|
"Access-Control-Allow-Methods": "POST,GET,OPTIONS",
|
||||||
|
"Content-Type": "application/json; charset=utf-8",
|
||||||
|
},
|
||||||
|
CustomResponseHeaders: map[string]string{
|
||||||
|
"Access-Control-Allow-Methods": "POST,GET,OPTIONS",
|
||||||
|
"Content-Type": "application/json; charset=utf-8",
|
||||||
|
},
|
||||||
|
SSLProxyHeaders: map[string]string{
|
||||||
|
"Access-Control-Allow-Methods": "POST,GET,OPTIONS",
|
||||||
|
"Content-Type": "application/json; charset=utf-8",
|
||||||
|
},
|
||||||
|
AllowedHosts: []string{"foo", "fii", "fuu"},
|
||||||
|
HostsProxyHeaders: []string{"foo", "fii", "fuu"},
|
||||||
|
STSSeconds: 666,
|
||||||
|
SSLRedirect: true,
|
||||||
|
SSLTemporaryRedirect: true,
|
||||||
|
STSIncludeSubdomains: true,
|
||||||
|
STSPreload: true,
|
||||||
|
ForceSTSHeader: true,
|
||||||
|
FrameDeny: true,
|
||||||
|
ContentTypeNosniff: true,
|
||||||
|
BrowserXSSFilter: true,
|
||||||
|
IsDevelopment: true,
|
||||||
|
CustomFrameOptionsValue: "foo",
|
||||||
|
SSLHost: "foo",
|
||||||
|
ContentSecurityPolicy: "foo",
|
||||||
|
PublicKey: "foo",
|
||||||
|
ReferrerPolicy: "foo",
|
||||||
|
}),
|
||||||
|
routes(
|
||||||
|
route("/customheaders", "PathPrefix:/customheaders"),
|
||||||
|
route("custom-headers", "Host:custom-headers")),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -985,7 +1036,6 @@ func TestPriorityHeaderValue(t *testing.T) {
|
||||||
),
|
),
|
||||||
frontends(
|
frontends(
|
||||||
frontend("foo/bar",
|
frontend("foo/bar",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
priority(1337),
|
priority(1337),
|
||||||
routes(
|
routes(
|
||||||
|
@ -1044,7 +1094,6 @@ func TestInvalidPassTLSCertValue(t *testing.T) {
|
||||||
),
|
),
|
||||||
frontends(
|
frontends(
|
||||||
frontend("foo/bar",
|
frontend("foo/bar",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(
|
routes(
|
||||||
route("/bar", "PathPrefix:/bar"),
|
route("/bar", "PathPrefix:/bar"),
|
||||||
|
@ -1102,7 +1151,6 @@ func TestInvalidPassHostHeaderValue(t *testing.T) {
|
||||||
),
|
),
|
||||||
frontends(
|
frontends(
|
||||||
frontend("foo/bar",
|
frontend("foo/bar",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(
|
routes(
|
||||||
route("/bar", "PathPrefix:/bar"),
|
route("/bar", "PathPrefix:/bar"),
|
||||||
|
@ -1276,17 +1324,14 @@ func TestMissingResources(t *testing.T) {
|
||||||
),
|
),
|
||||||
frontends(
|
frontends(
|
||||||
frontend("fully_working",
|
frontend("fully_working",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(route("fully_working", "Host:fully_working")),
|
routes(route("fully_working", "Host:fully_working")),
|
||||||
),
|
),
|
||||||
frontend("missing_endpoints",
|
frontend("missing_endpoints",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(route("missing_endpoints", "Host:missing_endpoints")),
|
routes(route("missing_endpoints", "Host:missing_endpoints")),
|
||||||
),
|
),
|
||||||
frontend("missing_endpoint_subsets",
|
frontend("missing_endpoint_subsets",
|
||||||
headers(),
|
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(route("missing_endpoint_subsets", "Host:missing_endpoint_subsets")),
|
routes(route("missing_endpoint_subsets", "Host:missing_endpoint_subsets")),
|
||||||
),
|
),
|
||||||
|
@ -1447,7 +1492,6 @@ func TestTLSSecretLoad(t *testing.T) {
|
||||||
),
|
),
|
||||||
frontends(
|
frontends(
|
||||||
frontend("example.com",
|
frontend("example.com",
|
||||||
headers(),
|
|
||||||
entryPoints("ep1", "ep2"),
|
entryPoints("ep1", "ep2"),
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(
|
routes(
|
||||||
|
@ -1455,7 +1499,6 @@ func TestTLSSecretLoad(t *testing.T) {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
frontend("example.org",
|
frontend("example.org",
|
||||||
headers(),
|
|
||||||
entryPoints("ep1", "ep2"),
|
entryPoints("ep1", "ep2"),
|
||||||
passHostHeader(),
|
passHostHeader(),
|
||||||
routes(
|
routes(
|
||||||
|
|
Loading…
Add table
Reference in a new issue