NGINX Ingress with regex

1/29/2020

I would like to create an INGRESS object that redirects url calls to correct service.

The url should look like https://beta-api.mycompany.com/doc/common or https://beta-api.company.com/doc/common/

I have tried to use this ingress creation object

# -----------------
# Ingress object
# -----------------
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: common-api-ingress
  namespace: documentation
  annotations:
    kubernetes.io/ingress.class: nginx
    #Default is 'true'
    #nginx.ingress.kubernetes.io/ssl-redirect: "false" 
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  tls:
  - hosts:
    - beta-api.traceparts.com
    secretName: aks-ingress-tls-star-traceparts-com 
  rules:
  - host: beta-api.traceparts.com
    http:
      paths:
      - backend:
          serviceName: common-api-service
          servicePort: 80
        path: /doc/common(/|$)(.*)

With this code :

When I look at the url calls for second URL case, I get for instance something like https://beta-api.mycompany.com/doc/styles/docfx.vendor.css instead of https://beta-api.traceparts.com/doc/common/styles/docfx.vendor.css.

I have followed :https://kubernetes.github.io/ingress-nginx/examples/rewrite/ to write my K8S Ingress object creation. I guess I have missed something.

Can anyone help me?

Thanks,

-- Seb HO
kubernetes
kubernetes-ingress
nginx-ingress

0 Answers