---
# Non-secret oauth2-proxy configuration (client_id/secret/cookie_secret come
# from the watchstate-oauth-credentials Secret). Single auth front for the
# WatchState UI + API: every path requires a valid Authentik session. Access is
# authorized Authentik-side (the watchstate application binds akR-global-admin
# only), so no oauth2-proxy group allowlist is set here.
apiVersion: v1
kind: ConfigMap
metadata:
  name: watchstate-oauth2-env
  namespace: watchstate
data:
  OAUTH2_PROXY_HTTP_ADDRESS: "0.0.0.0:4180"
  OAUTH2_PROXY_PROVIDER: "oidc"
  OAUTH2_PROXY_OIDC_ISSUER_URL: "https://identity.k8s.syd1.au.unkin.net/application/o/watchstate/"
  # 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 watchstate.unkin.net and internal
  # watchstate.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://watchstate.watchstate.svc.cluster.local:8080/"
  OAUTH2_PROXY_SCOPE: "openid email profile ak_groups"
  OAUTH2_PROXY_OIDC_GROUPS_CLAIM: "ak_groups"
  OAUTH2_PROXY_PASS_USER_HEADERS: "true"
  OAUTH2_PROXY_EMAIL_DOMAINS: "*"
  # Authentik hardcodes email_verified=false in the id_token; authorization is
  # enforced Authentik-side, 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: "watchstate.unkin.net,watchstate.k8s.syd1.au.unkin.net"
  OAUTH2_PROXY_WHITELIST_DOMAINS: "watchstate.unkin.net,watchstate.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"
