# Lab ingress and Traefik K3s packaged Traefik은 유지하며 `gitops/platform/traefik/overlays/lab/helmchartconfig.yaml`의 `HelmChartConfig`로만 설정합니다. 금지: - `/var/lib/rancher/k3s/server/manifests/traefik.yaml` 직접 수정 - health/metrics/admin endpoint 공개 - 인증 없는 management ingress - lab HTTP/self-signed 구성을 staging/prod로 승격 ## Request path ```text client -> Traefik Ingress -> ForwardAuth Middleware -> oauth2-proxy -> Keycloak authorization endpoint -> oauth2-proxy callback/session -> auth-server ``` auth-server는 ForwardAuth 결과만 신뢰하지 않고 Keycloak JWT를 다시 검증합니다. Ingress 인증과 API authorization은 서로 다른 경계입니다. ## Source paths | Path | Role | | --- | --- | | `gitops/platform/traefik/overlays/lab` | K3s HelmChartConfig와 공통 security headers | | `gitops/platform/forward-auth/component` | oauth2-proxy, Middleware, protected ingress patch | | `gitops/platform/forward-auth/overlays/lab` | component의 lab composition | | `gitops/apps/auth-server/overlays/lab` | auth-server ingress와 issuer/JWK setting | | `gitops/platform/keycloak/overlays/lab` | Keycloak public/admin ingress split | | `gitops/apps/keycloak-realm-import/overlays/lab` | versioned realm/client import | ## Apply boundary 개별 ingress 디렉터리를 임의 순서로 적용하지 않습니다. ```bash export KUBE_CONTEXT_LAB='' bash scripts/bin/bootstrap.sh lab ``` bootstrap은 operator와 Keycloak 준비, realm import 완료 후 auth-server를 적용합니다. ## Lab DNS/TLS 현재 host 값은 lab 검증용이며 공개 서비스 계약이 아닙니다. 브라우저 E2E를 하려면 운영자가 DNS/hosts와 인증서 trust를 별도로 맞춰야 합니다. staging/prod는 다음이 준비된 뒤 별도 overlay로 만듭니다. - 실제 DNS ownership - cert-manager Issuer/Certificate - TLS redirect와 HSTS - 신뢰 가능한 oauth2-proxy OIDC issuer - registry ingress의 인증·TLS