version: "3.7" services: oauth2-proxy-{{ item }}: image: bitnami/oauth2-proxy:7.3.0 depends_on: - redis restart: always command: {% if keycloak_clients[item].get("skips") %} {% for route in keycloak_clients[item].skips %} - --skip-auth-route - {{ route }} {% endfor %} {% endif %} - --http-address - 0.0.0.0:{{ services[item].port }} ports: - {{ services[item].port }}:{{ services[item].port }} environment: OAUTH2_PROXY_UPSTREAMS: http://{{ ansible_default_ipv4.address }}:{{ services[item].port + 1000 }}/ OAUTH2_PROXY_EMAIL_DOMAINS: '*' OAUTH2_PROXY_PROVIDER: oidc OAUTH2_PROXY_PROVIDER_DISPLAY_NAME: "AtlantisHQ Accounts" OAUTH2_PROXY_REDIRECT_URL: "{{ keycloak_clients[item].master_address }}/oauth2/callback" OAUTH2_PROXY_OIDC_ISSUER_URL: "https://{{ keycloak_address }}/realms/master" OAUTH2_PROXY_CLIENT_ID: "{{ keycloak_clients[item].client_id }}" OAUTH2_PROXY_CLIENT_SECRET: "{{ keycloak_clients[item].client_secret }}" OAUTH2_PROXY_ALLOWED_ROLES: "{{ keycloak_clients[item].groups }}" OAUTH2_PROXY_OIDC_EMAIL_CLAIM: sub OAUTH2_PROXY_SESSION_STORE_TYPE: redis OAUTH2_PROXY_REDIS_CONNECTION_URL: redis://redis OAUTH2_PROXY_COOKIE_REFRESH: 30m OAUTH2_PROXY_COOKIE_NAME: SESSION OAUTH2_PROXY_COOKIE_SECRET: "{{ keycloak_clients[item].party_secret }}" redis: image: redis:7.0.2-alpine3.16 restart: always volumes: - cache:/data volumes: cache: driver: local