---
# Non-secret oauth2-proxy configuration (client_id/secret/cookie_secret come
# from the oauth-credentials Secret). Single auth front for repospawner on both
# host names; access is gated here on the akP-repospawner-admin Authentik group
# and re-checked by the app from X-Forwarded-Groups.
apiVersion: v1
kind: ConfigMap
metadata:
  name: repospawner-oauth2-env
  namespace: repospawner
data:
  OAUTH2_PROXY_HTTP_ADDRESS: "0.0.0.0:4180"
  OAUTH2_PROXY_PROVIDER: "oidc"
  OAUTH2_PROXY_OIDC_ISSUER_URL: "https://identity.unkin.net/application/o/repospawner/"
  # Relative (host-less) redirect URL: with reverse-proxy mode on, oauth2-proxy
  # derives scheme+host per request from X-Forwarded-Proto/Host, so the same
  # deployment serves BOTH the external repospawner.unkin.net and internal
  # repospawner.k8s.syd1.au.unkin.net callbacks. Both absolute callback URIs are
  # registered on the Authentik provider (terraform-authentik, separate PR).
  OAUTH2_PROXY_REDIRECT_URL: "/oauth2/callback"
  OAUTH2_PROXY_UPSTREAMS: "http://repospawner.repospawner.svc.cluster.local:8080/"
  OAUTH2_PROXY_SCOPE: "openid email profile ak_groups"
  # Populate session.Groups from the Authentik ak_groups claim; pass-user-headers
  # then emits it as a single comma-joined X-Forwarded-Groups header.
  OAUTH2_PROXY_OIDC_GROUPS_CLAIM: "ak_groups"
  OAUTH2_PROXY_ALLOWED_GROUPS: "akP-repospawner-admin"
  # Forward identity + groups to repospawner as X-Forwarded-{User,Email,Groups}.
  # NOTE: set-xauthrequest is intentionally NOT set -- it only populates
  # auth_request *response* headers, which never reach a proxied upstream.
  OAUTH2_PROXY_PASS_USER_HEADERS: "true"
  OAUTH2_PROXY_EMAIL_DOMAINS: "*"
  # Authentik hardcodes email_verified=false in the id_token; authorization is
  # enforced via ak_groups, so accepting the unverified email is safe.
  OAUTH2_PROXY_INSECURE_OIDC_ALLOW_UNVERIFIED_EMAIL: "true"
  OAUTH2_PROXY_COOKIE_SECURE: "true"
  # One cookie domain per host (a single parent-domain cookie can't span
  # unkin.net and k8s.syd1.au.unkin.net cleanly); oauth2-proxy picks the domain
  # matching the request host. Whitelist both so post-auth `rd` redirects to
  # either front door are honoured.
  OAUTH2_PROXY_COOKIE_DOMAINS: "repospawner.unkin.net,repospawner.k8s.syd1.au.unkin.net"
  OAUTH2_PROXY_WHITELIST_DOMAINS: "repospawner.unkin.net,repospawner.k8s.syd1.au.unkin.net"
  OAUTH2_PROXY_REVERSE_PROXY: "true"
  OAUTH2_PROXY_PROVIDER_CA_FILES: "/etc/ssl/combined/ca-certificates.crt"
  OAUTH2_PROXY_CODE_CHALLENGE_METHOD: "S256"
  OAUTH2_PROXY_SKIP_PROVIDER_BUTTON: "true"
