refactor: migrate from ingress-nginx to Traefik v3

Replace ingress-nginx 4.15.1 with Traefik v3 (Helm chart 39.0.7)
as the ingress controller for the local kind cluster.

- Replace k8s/nginx/ with k8s/traefik/ (Helm chart, values, namespace)
- Update setup script selectors and namespace references
- Convert nginx upstream-vhost annotations to Traefik Middleware CRDs
- Update ingressClassName from nginx to traefik

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
refactor: migrate from ingress-nginx to Traefik v3

Replace ingress-nginx 4.15.1 with Traefik v3 (Helm chart 39.0.7)
as the ingress controller for the local kind cluster.

- Replace k8s/nginx/ with k8s/traefik/ (Helm chart, values, namespace)
- Update setup script selectors and namespace references
- Convert nginx upstream-vhost annotations to Traefik Middleware CRDs
- Update ingressClassName from nginx to traefik
- Add .claude/ to .gitignore

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-15 14:55:12 +02:00
parent 17c97b4333
commit 39551a1862
7 changed files with 76 additions and 22 deletions
+6 -6
View File
@@ -12,20 +12,20 @@ kubectl create secret docker-registry gitlab \
kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "gitlab"}]}'
kustomized="$(mktemp -t unboundnginx.yaml.XXXXXX)"
kustomized="$(mktemp -t unboundtraefik.yaml.XXXXXX)"
kubectl kustomize --enable-helm "k8s/nginx" >> "${kustomized}"
kubectl kustomize --enable-helm "k8s/traefik" >> "${kustomized}"
kubectl apply -f "${kustomized}" --server-side || true
printf "\nWait for pod app.kubernetes.io/component=controller to be created."
printf "\nWait for pod app.kubernetes.io/name=traefik to be created."
while :; do
sleep 2
[ -n "$(kubectl -n ingress-nginx get pod --selector=app.kubernetes.io/component=controller 2>/dev/null)" ] && printf "\n\n" && break
[ -n "$(kubectl -n traefik get pod --selector=app.kubernetes.io/name=traefik 2>/dev/null)" ] && printf "\n\n" && break
printf "."
done
echo "Wait for nginx to be available."
until [[ $(kubectl -n ingress-nginx get endpointslices -l 'kubernetes.io/service-name=ingress-nginx-controller' -o=jsonpath='{.items[*].endpoints[*].addresses[*]}') ]]; do sleep 5; done
echo "Wait for traefik to be available."
until [[ $(kubectl -n traefik get endpointslices -l 'kubernetes.io/service-name=traefik' -o=jsonpath='{.items[*].endpoints[*].addresses[*]}') ]]; do sleep 5; done
kustomized="$(mktemp -t unboundinfra.yaml.XXXXXX)"