apiVersion: apps/v1 kind: Deployment metadata: name: foundryvtt-proxy-foundryvtt namespace: security spec: replicas: 1 selector: matchLabels: app: oauth2-proxy-foundryvtt template: metadata: labels: app: oauth2-proxy-foundryvtt spec: containers: - name: oauth2-proxy image: quay.io/oauth2-proxy/oauth2-proxy:v7.6.0 envFrom: - secretRef: name: foundry-oauth-secrets args: - "--provider=oidc" - "--oidc-issuer-url=https://sso.mynest.love/realms/nest" - "--oidc-groups-claim=groups" - "--redirect-url=https://foundry.mynest.love/oauth2/callback" - "--email-domain=*" - "--allowed-group=foundryvtt" - "--skip-provider-button=true" - "--cookie-secure=true" - "--cookie-domain=foundry.mynest.love" - "--http-address=0.0.0.0:4180" - "--reverse-proxy=true" - "--upstream=static://200" - "--whitelist-domain=foundry.mynest.love" ports: - containerPort: 4180 --- apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: name: foundry-oauth-secrets namespace: security spec: refreshInterval: "1h" secretStoreRef: name: vault-external-secrets-store kind: ClusterSecretStore target: name: foundry-oauth-secrets creationPolicy: Owner data: - secretKey: OAUTH2_PROXY_CLIENT_ID remoteRef: key: oauth2-proxy/foundryvtt property: client-id - secretKey: OAUTH2_PROXY_CLIENT_SECRET remoteRef: key: oauth2-proxy/foundryvtt property: client-secret - secretKey: OAUTH2_PROXY_COOKIE_SECRET remoteRef: key: oauth2-proxy/foundryvtt property: cookie-secret --- apiVersion: v1 kind: Service metadata: name: oauth2-proxy-foundryvtt namespace: security spec: ports: - port: 4180 targetPort: 4180 selector: app: oauth2-proxy-foundryvtt --- apiVersion: traefik.io/v1alpha1 kind: Middleware metadata: name: auth-foundryvtt namespace: security spec: forwardAuth: address: "http://oauth2-proxy-foundryvtt.security.svc.cluster.local:4180" trustForwardHeader: true