Skip to main content
  1. How To/

Nginx Ingress Sample Configurations for Helm values

·248 words·2 mins
Ravi Singh
Author
Ravi Singh
Software engineer with 15+ years building backend systems and cloud platforms across fintech, automotive, and academia. I write about the things I build, debug, and learn — so I don’t forget them.

Ingress configurations in helm values files. The following setup assumes that you have a helm chart which provides the configuration to deploy a service and an ingress for it

Now, lets look at few of the sample helm values file configurations for ingress configurations with ingress-nginx.

Enable Cors
#

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/enable-cors: "true"
    nginx.ingress.kubernetes.io/cors-allow-methods: "DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT"
    nginx.ingress.kubernetes.io/cors-allow-headers: "*"
    nginx.ingress.kubernetes.io/cors-allow-origin: "*"
    nginx.ingress.kubernetes.io/cors-max-age: "100"
    nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
  hosts:
    - host: ravikrs.com
      paths:
        - path: /test/path1
          pathType: Prefix
        - path: /path2
          pathType: Prefix

External Authentication
#

External Authentication configuration based from doc

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
    # authentication/authorization service url
    nginx.ingress.kubernetes.io/auth-url: http://auth-service.namespace.svc.cluster.local:8080/auth/urls
    # response urls to be returned from auth service and passed to services
    nginx.ingress.kubernetes.io/auth-response-headers: "X-Header1, X-Header2, X-Header3"
  hosts:
    - host: ravikrs.com
      paths:
        - path: /test/path
          pathType: Prefix

Setup additional headers
#

Setup additional headers returned to the caller/client based from doc

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/configuration-snippet: |
      more_set_headers "X-Header1: value1";
      more_set_headers "Deprecation: true";
  hosts:
    - host: ravikrs.com
      paths:
        - path: /test
          pathType: Prefix

Path Rewrite
#

Rewrite path /service1/swagger url to /swagger/ path for kubernetes service exposing deployment. See docs

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /swagger/$1
  hosts:
    - host: ravikrs.com
      paths:
        - path: /service1/swagger/(.*)
          pathType: Prefix

Use Regex in Path
#

We may also use regular expression to handle ingress path configurations. See docs

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: "true"
  hosts:
    - host: ravikrs.com
      paths:
        - path: /path/[A-Za-z0-9]+
          pathType: Prefix

Links#


Discussion