Helm3 ingress controller Location denied, reason: invalid format (namespace/name)

4/13/2020

I am using helm3 to deploy a PHP based application in kubernetes. I am using ingress controller with below version. I am getting below mentioned error. Even though there are secrets in desired namespace it is giving this error. When I do the deployment using "kubectl apply -f yaml", it works perfectly fine. Nginx controller support HTTPS backend with this annotation "nginx.ingress.kubernetes.io/backend-protocol: "HTTPS", but somehow it is not being recognized as shown in the error. Can someone help?

NGINX Ingress controller
  Release:       0.30.0
  Build:         git-7e65b90c4
  Repository:    https://github.com/kubernetes/ingress-nginx
  nginx version: nginx/1.17.8

Nginx controller error

W0413 17:30:53.061666       6 main.go:60] Protocol "HTTPS" is not a valid value for the backend-protocol annotation. Using HTTP as protocol
W0413 17:30:56.382073       6 controller.go:1105] Error getting SSL certificate "tls-test/php-tls-secret": local SSL certificate tls-test/php-tls-secret was not found. Using default certificate
E0413 17:19:32.942187       6 annotations.go:200] error reading ProxySSL annotation in Ingress tls-test/abc-demo: Location denied, reason: invalid format (namespace/name) found in "abc-tls-secret

"

Values.yaml

  annotations:
    nginx.ingress.kubernetes.io/proxy-ssl-secret: |
      "tls-test/abc-tls-secret"
    nginx.ingress.kubernetes.io/auth-tls-secret: |
       "tls-test/php-tls-secret"
    nginx.ingress.kubernetes.io/backend-protocol: |
      "HTTPS"
-- user3847894
kubernetes
kubernetes-helm
kubernetes-ingress

1 Answer

4/14/2020
nginx.ingress.kubernetes.io/backend-protocol: |
  "HTTPS"

Does not specify HTTPS as the backend-protocol, it specifies "HTTPS"\n as the backned-protocol

nginx.ingress.kubernetes.io/backend-protocol: HTTPS

is the correct setting, not only because it removes the newline caused by the yaml pipe operator, but also the double quoting that is going on between the pipe and the literal " characters


as for the error message, it couldn't be more clear: remove the namespace qualifier, since there is no outcome through which an Ingress resource would consult any namespace other than the one in which it is created

-- mdaniel
Source: StackOverflow