Skip to Content
Deploying ApplicationsHow TosCreate Ingress with IP Whitelisting

Create Ingress with IP Whitelisting

This uses beta features in the platform and breaking changes may occur in the future

Create middleware

If on your resource you come across a middleware.traefik.containo.us, that is an older version of Treaefik’s CRD. It will be deprecated in the future.

Create a middleware.traefik.io object to whitelist IP addresses :

apiVersion: traefik.io/v1alpha1 kind: Middleware metadata: name: <middlewareName> namespace: <middlewareNamespace> spec: ipWhiteList: ipStrategy: depth: 2 # depth is required as request is forwarded from load balancer. See https://doc.traefik.io/traefik/middlewares/http/ipwhitelist/#ipstrategydepth for more details sourceRange: - <ip-address> - <ip-address>

Use Middleware in Ingress

Reference middleware in our Ingress object with the annotation traefik.ingress.kubernetes.io/router.middlewares: <middlewareNamespace>-<middlewareName>@kubernetescrd, for example:

apiVersion: networking.k8s.io/v1 kind: Ingress metadata: labels: annotations: external-dns.alpha.kubernetes.io/hostname: foo.gcp-dev.cecg.platform.cecg.io # change this to point to your hostname external-dns.alpha.kubernetes.io/target: gcp-dev.cecg.platform.cecg.io # change this to point to your domain traefik.ingress.kubernetes.io/router.middlewares: <middlewareNamespace>-<middlewareName>@kubernetescrd name: foo-app namespace: foo spec: ingressClassName: platform-ingress rules: - host: foo.gcp-dev.cecg.platform.cecg.io http: paths: - backend: service: name: foo-service port: number: 80 path: / pathType: ImplementationSpecific

After you apply this, only users with whitelisted IPs will be able to use that ingress URL.

Debugging

Dashboard

To validate that your Middleware has been applied successfully, check the Traefik Dashboard and ensure that it contains no errors.

Traefik Dashboard

Logs

Check traefik logs to see whether request is being whitelisted:

Traefik Logs