# rsauth2-proxy: forward-auth for services that have no OIDC of their own. # Needs, besides this file: # - Secret auth-proxy-creds (AUTH_PROXY_CLIENT_ID, AUTH_PROXY_CLIENT_SECRET, # AUTH_PROXY_COOKIE_SECRET); the client secret is the one of the Keycloak # client "rsauth2-proxy". Created by hand until Vaultwarden is the source. # - ConfigMap auth-proxy-routes, managed by Terraform (terraform/keycloak). apiVersion: apps/v1 kind: Deployment metadata: name: auth-proxy labels: app: auth-proxy spec: replicas: 1 selector: matchLabels: app: auth-proxy template: metadata: labels: app: auth-proxy spec: containers: - name: auth-proxy image: ultradesu/rsauth2-proxy:latest ports: - containerPort: 8080 name: http protocol: TCP envFrom: - secretRef: name: auth-proxy-creds env: - name: AUTH_PROXY_OIDC_ISSUER value: "https://auth.hexor.cy/auth/realms/hexor" - name: AUTH_PROXY_COOKIE_DOMAIN value: ".hexor.cy" - name: AUTH_PROXY_CALLBACK_URL value: "https://oauth.hexor.cy/callback" - name: AUTH_PROXY_ROUTES_FILE value: "/config/routes.yaml" - name: AUTH_PROXY_LOG_LEVEL value: "debug" volumeMounts: - name: routes mountPath: /config readOnly: true resources: requests: cpu: 50m memory: 32Mi limits: cpu: 200m memory: 64Mi readinessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 3 periodSeconds: 10 livenessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 5 periodSeconds: 30 securityContext: allowPrivilegeEscalation: false readOnlyRootFilesystem: true runAsNonRoot: true runAsUser: 1000 runAsGroup: 1000 capabilities: drop: - ALL volumes: - name: routes configMap: name: auth-proxy-routes --- apiVersion: v1 kind: Service metadata: name: auth-proxy labels: app: auth-proxy spec: ports: - name: http port: 80 targetPort: 8080 protocol: TCP selector: app: auth-proxy --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: auth-proxy spec: entryPoints: - websecure routes: - match: Host(`oauth.hexor.cy`) kind: Rule services: - name: auth-proxy port: 80 tls: secretName: auth-proxy-tls --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: auth-proxy-tls spec: secretName: auth-proxy-tls issuerRef: name: letsencrypt kind: ClusterIssuer dnsNames: - oauth.hexor.cy