Skip to content

Add Traefik ingress controller chart and ingress#1316

Open
EmmanuelNwa247 wants to merge 3 commits intomainfrom
feature/traefik-ingress-controller
Open

Add Traefik ingress controller chart and ingress#1316
EmmanuelNwa247 wants to merge 3 commits intomainfrom
feature/traefik-ingress-controller

Conversation

@EmmanuelNwa247
Copy link

@EmmanuelNwa247 EmmanuelNwa247 commented Mar 6, 2026

Description

Adds Traefik v3.x ingress controller configuration as a replacement for the NGINX Ingress Controller, which is being retired by the Kubernetes project in March 2026.
Includes Helm values for AWS (EKS) and Azure (AKS), Traefik Middleware CRDs for response headers and body size limits and cached asset headers rendered conditionally via the Helm templates.
Helm template integration intomodernization-apiand dataingestion-service charts, using a traefikIngress.enabled flag (same pattern as istioGatewayIngress)

Creating a new Helm chart?

  1. Not a full Helm chart — charts/traefik/ contains only Helm values files used with the upstream traefik/traefik chart. No templates, Chart.yaml, or helpers are needed since the chart is installed directly from the Traefik Helm repository.

  2. Files Added

  • charts/traefik/
    values.yaml — AWS (EKS) configuration with NLB
    values-azure.yaml — Azure (AKS) configuration with internal load balancer
    README.md — Deployment instructions

  • charts/modernization-api/templates/ — Conditional Traefik templates (rendered when traefikIngress.enabled: true)

traefik-ingress.yaml — Main app routes (KeyCloak + NBS Gateway)
traefik-ingressroute-cached.yaml — Static asset caching with regex path (IngressRoute CRD)
traefik-middlewares.yaml — Response headers, body size limit (100MB), cached headers

charts/modernization-api/values.yaml — Added traefikIngress block
charts/dataingestion-service/templates/ — Conditional Traefik template

traefik-ingress.yaml — Data ingestion and reporting service routes (with body-size-limit middleware)

charts/dataingestion-service/values.yaml — Added traefikIngress block

Notes

  • Existing NGINX configuration in charts/nginx-ingress/ is unchanged
  • Existing Helm templates in charts/modernization-api/ and charts/dataingestion-service/ are unchanged
  • Image tag is managed by the chart's appVersion — not pinned in values files
  • values-azure.yaml requires load balancer IP to be set via --set service.spec.loadBalancerIP=XX.XX.XX.XX
  • Validated with zero-downtime migration from NGINX

@EmmanuelNwa247 EmmanuelNwa247 requested a review from a team March 6, 2026 22:08
@EmmanuelNwa247 EmmanuelNwa247 marked this pull request as ready for review March 6, 2026 22:11
@EmmanuelNwa247 EmmanuelNwa247 force-pushed the feature/traefik-ingress-controller branch from c9e0b4c to 8c134db Compare March 10, 2026 00:01
@EmmanuelNwa247 EmmanuelNwa247 changed the title Add Traefik ingress controller chart and ingress/middleware manifests Add Traefik ingress controller chart and ingress Mar 10, 2026
Copy link
Contributor

@szamfir-skylight szamfir-skylight left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! Looks good

Copy link
Contributor

@cmansky cmansky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants