How to Migrate Bold BI from ingress‑nginx to Traefik on Kubernetes with zero downtime
Migrating Bold BI from ingress-nginx to Traefik (Zero Downtime)
Overview
This article explains how to migrate an existing Bold BI deployment from ingress-nginx to Traefik in a Kubernetes cluster without downtime.
The migration process allows both ingress controllers to run in parallel, ensuring uninterrupted access during the transition.
You can migrate using one of the following methods:
- Using
kubectl(manual YAML configuration) - Using
Helm(chart-based deployment)
1. Prerequisites
Ensure the following requirements are met before starting the migration:
- A running Kubernetes cluster.
- Bold BI deployed and accessible using ingress-nginx.
- DNS access to update the domain A-record.
helmandkubectlinstalled and configured.- Sufficient permissions to modify Kubernetes resources.
2. Install Traefik on Kubernetes
Install Traefik alongside ingress-nginx so that both controllers can coexist during the migration process.
2.1 Add the Traefik Helm Repository
Add the official Traefik Helm repository to your local Helm configuration.
helm repo add traefik https://traefik.github.io/charts
helm repo update
2.2 Install Traefik Using Helm
Deploy Traefik in a dedicated namespace.
helm install traefik traefik/traefik --namespace traefik --create-namespace
Once installed, verify that the Traefik pods are running:
kubectl get pods -n traefik
Official documentation:
https://doc.traefik.io/traefik/getting-started/
3. Migration Option A: Using kubectl
Use this method if Bold BI was deployed using Kubernetes manifests (non-Helm deployment).
Step 1 — Download traefik.yaml
Download the Traefik IngressRoute YAML file from:
https://raw.githubusercontent.com/boldbi/boldbi-kubernetes/refs/heads/main/deploy/traefik.yaml
Step 2 — Update Domain, TLS, and Namespace
Edit the downloaded YAML file and update the following values:
- Domain name for all services
- TLS secret name
- Namespace (default:
bold-services)
Step 3 — Apply the Traefik Configuration
kubectl apply -f traefik.yaml
Step 4 — Verify IngressRoute
kubectl get ingressroute -n <your-namespace>
Ensure the IngressRoute resources are created successfully.
Step 5 — Get Traefik External IP
kubectl get svc -n traefik
Identify the external IP address assigned to Traefik.
Step 6 — Update DNS
Update your domain’s A-record to point to the Traefik external IP.
Step 7 — Validate the Application
Open the Bold BI base URL in a browser and verify that dashboards and login pages load correctly.
Step 8 — Cleanup Old nginx Ingress (Optional)
After confirming successful access through Traefik, remove the old ingress resources:
kubectl delete ingress bold-ingress bold-etl-ingress -n <your-namespace>
4. Migration Option B: Using Helm
Use this method if Bold BI was installed using Helm.
Step 1 — Preserve Existing Ingress Resources
Prevent Helm from deleting existing ingress resources during the upgrade:
kubectl annotate ingress bold-ingress helm.sh/resource-policy=keep -n <your-namespace> --overwrite
kubectl annotate ingress bold-etl-ingress helm.sh/resource-policy=keep -n <your-namespace> --overwrite
Step 2 — Update values.yaml
Modify your values.yaml file to configure Traefik as the load balancer:
loadBalancer:
type: traefik
Step 3 — Upgrade Bold BI
Apply the changes by upgrading the Helm release:
helm upgrade boldbi boldbi/boldbi -f <your-values.yaml> -n <your-namespace>
Step 4 — Verify IngressRoute
kubectl get ingressroute -n <your-namespace>
Step 5 — Get Traefik External IP
kubectl get svc -n traefik
Step 6 — Update DNS
Update your domain’s A-record to point to the Traefik external IP.
Step 7 — Validate the Application
Open the Bold BI base URL and confirm that the application is functioning correctly.
Step 8 — Cleanup Old nginx Ingress (Optional)
kubectl delete ingress <ingress-name> -n <your-namespace>
5. Zero-Downtime Best Practices
Follow these recommendations to ensure a smooth migration:
- Install Traefik before removing ingress-nginx.
- Verify IngressRoute resources before updating DNS.
- Keep both ingress controllers active during the transition.
- Ensure TLS secrets are correctly configured.
- Validate application functionality before cleanup.
6. Summary
This guide provides a structured approach to migrate Bold BI from ingress-nginx to Traefik without service interruption.
Both kubectl and Helm-based deployments are supported, allowing flexibility based on your existing setup.