Allow empty path with App-root annotation

This commit is contained in:
Daniel Tomcej 2018-12-26 04:52:03 -06:00 committed by Traefiker Bot
parent bc6e9d5042
commit f7c6c562a5
2 changed files with 25 additions and 1 deletions

View file

@ -939,7 +939,7 @@ func loadAuthTLSSecret(namespace, secretName string, k8sClient Client) (string,
func getFrontendRedirect(i *extensionsv1beta1.Ingress, baseName, path string) *types.Redirect {
permanent := getBoolValue(i.Annotations, annotationKubernetesRedirectPermanent, false)
if appRoot := getStringValue(i.Annotations, annotationKubernetesAppRoot, ""); appRoot != "" && path == "/" {
if appRoot := getStringValue(i.Annotations, annotationKubernetesAppRoot, ""); appRoot != "" && (path == "/" || path == "") {
return &types.Redirect{
Regex: fmt.Sprintf("%s$", baseName),
Replacement: fmt.Sprintf("%s/%s", strings.TrimRight(baseName, "/"), strings.TrimLeft(appRoot, "/")),

View file

@ -1308,6 +1308,18 @@ rateset:
),
),
),
buildIngress(
iNamespace("testing"),
iAnnotation(annotationKubernetesAppRoot, "/root"),
iRules(
iRule(
iHost("root3"),
iPaths(
onePath(iBackend("service1", intstr.FromInt(80))),
),
),
),
),
buildIngress(
iNamespace("testing"),
iAnnotation(annotationKubernetesIngressClass, "traefik"),
@ -1518,6 +1530,11 @@ rateset:
servers(),
lbMethod("wrr"),
),
backend("root3",
servers(
server("http://example.com", weight(1))),
lbMethod("wrr"),
),
backend("protocol/valid",
servers(
server("h2c://example.com", weight(1)),
@ -1684,6 +1701,13 @@ rateset:
route("root", "Host:root"),
),
),
frontend("root3",
passHostHeader(),
redirectRegex("root3$", "root3/root"),
routes(
route("root3", "Host:root3"),
),
),
frontend("protocol/valid",
passHostHeader(),
routes(