Files
project-infra/docs/ingress-traefik.md
T

2.0 KiB

Lab ingress and Traefik

K3s packaged Traefik은 유지하며 gitops/platform/traefik/overlays/lab/helmchartconfig.yamlHelmChartConfig로만 설정합니다.

금지:

  • /var/lib/rancher/k3s/server/manifests/traefik.yaml 직접 수정
  • health/metrics/admin endpoint 공개
  • 인증 없는 management ingress
  • lab HTTP/self-signed 구성을 staging/prod로 승격

Request path

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 디렉터리를 임의 순서로 적용하지 않습니다.

export KUBE_CONTEXT_LAB='<expected-context>'
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