nginx-ingress config map snippets being ignored by the nginx.conf
I spent a day untill got that for ingress-nginx (from Kubernetes) there are *-snippet
, but for nginx-ingress (from NGINX) that *-snippets
with s.
Look here:
- ingress-nginx: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#main-snippet
- nginx-ingress: https://docs.nginx.com/nginx-ingress-controller/configuration/global-configuration/configmap-resource/#snippets-and-custom-templates
If you'd like to modify your Kubernetes Ingress
the annotation options are these:
nginx.ingress.kubernetes.io/configuration-snippet
for an nginx location block snippetnginx.ingress.kubernetes.io/server-snippet
for a snippet in the nginx config service block
Looks like you are using nginx.org/location-snippets:
for that case.
There's also a YAML invalid syntax on nginx config example and also you should use plurals as in server-snippets
according to this example. There's a typo in the docs as of this writing. Opened this ticket to follow up.
It should be something like this:
server-snippets: |
location /messagehub {
proxy_set_header Upgrade $http_upgrade;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header Connection "upgrade";
proxy_cache_bypass $http_upgrade;
}
instead of this:
server-snippet: |
location /messagehub {
proxy_set_header Upgrade $http_upgrade;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header Connection "upgrade";
proxy_cache_bypass $http_upgrade;
}
Notice the indentation of the last curly brace.