HTTP HTTPS redirect with Traefik v2
Once you have setup Traefik running in your Kubernetes cluster, you might want to configure additional thing like http to https redirect. For more information about the Traefik setup check part 1. More information about routing entryPoints can be found on the Traefik official website: https://docs.traefik.io/routing/entrypoints/#redirection.
If you would like to redirect all http traffic to https you easily do this in the values.yaml file we’ve used in part 1 in the Configure ports section. In this section you see two entrypoints web and websecure. To redirect all traffic from web to websecure simply add redirectTo: websecure in the web section of the values.yaml.
# Configure ports ports: web: port: 8000 expose: true exposedPort: 80 protocol: TCP # https://docs.traefik.io/routing/entrypoints/#redirection redirectTo: websecure websecure: port: 4443 expose: true exposedPort: 443 protocol: TCP
After updating the values.yaml you have to update the helm deployment:
helm upgrade --namespace=traefik --values=values.yaml traefik traefik/traefik
After the update the entryPoint for the IngressRoute needs to be updated, as the old configuration has the entryPoint web defined, instead of websecure. Apply the updated IngressRoute by:
kubectl apply -f ingressroute.yaml
apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: ingress-app1 namespace: app1 spec: entryPoints: - websecure routes: - match: Host(`www.cloudt.it`) kind: Rule services: - name: app1-service port: 80
After applying the new IngressRoute all http traffic will redirect to https.