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"
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