fix: install Traefik CRDs for IngressRouteTCP SSH routing

The IngressRouteTCP resource was being silently ignored because
Traefik CRDs were never installed. This caused SSH traffic on
port 22 to be handled as HTTP, returning 400 Bad Request.

Add CRD installation step before Traefik deployment.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Eric Garcia 2026-02-03 13:00:28 -05:00
parent f23ea198f0
commit 3879d2fe35

View file

@ -63,6 +63,18 @@ until kubectl get nodes 2>/dev/null | grep -q "Ready"; do
done done
echo "k3s is ready" echo "k3s is ready"
# -----------------------------------------------------------------------------
# Install Traefik CRDs (required for IngressRouteTCP)
# -----------------------------------------------------------------------------
echo "Installing Traefik CRDs..."
kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v3.2/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml
# Wait for CRDs to be established
echo "Waiting for Traefik CRDs to be ready..."
kubectl wait --for=condition=Established crd/ingressroutetcps.traefik.io --timeout=60s || true
kubectl wait --for=condition=Established crd/ingressroutes.traefik.io --timeout=60s || true
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Install Traefik with Let's Encrypt # Install Traefik with Let's Encrypt
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------