|
|
|
@ -4,29 +4,30 @@ keycloak_id: "{{ inventory_hostname }}-keycloak"
|
|
|
|
keycloak_postgres_id: "{{ inventory_hostname }}-postgres-keycloak"
|
|
|
|
keycloak_postgres_id: "{{ inventory_hostname }}-postgres-keycloak"
|
|
|
|
|
|
|
|
|
|
|
|
keycloak_labels: [
|
|
|
|
keycloak_labels: [
|
|
|
|
|
|
|
|
# open all
|
|
|
|
'"traefik.enable=true"',
|
|
|
|
'"traefik.enable=true"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}.service={{ keycloak_id }}"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-public.service={{ keycloak_id }}"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}.rule=Host(`{{ stage_server_domain }}`)"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-public.rule=Host(`{{ stage_server_domain }}`)"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}.entrypoints=websecure"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-public.entrypoints=websecure"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}.tls=true"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-public.tls=true"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}.tls.certresolver=letsencrypt"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-public.tls.certresolver=letsencrypt"',
|
|
|
|
'"traefik.http.services.{{ keycloak_id }}.loadbalancer.server.port={{ service_port }}"',
|
|
|
|
'"traefik.http.services.{{ keycloak_id }}-public.loadbalancer.server.port={{ service_port }}"',
|
|
|
|
|
|
|
|
# allow login / login page (except for master)
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-auth.service={{ keycloak_id }}"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-public-login.service={{ keycloak_id }}"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-auth.rule=Host(`{{ stage_server_domain }}`) && (PathPrefix(`/auth/realms/{realm:[^/]+}/login-actions/authenticate`) && !PathPrefix(`/auth/realms/master/login-actions/authenticate`))"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-public-login.rule=Host(`{{ stage_server_domain }}`) && (PathPrefix(`/auth/realms/{realm:[^/]+}/login-actions/authenticate`) && !PathPrefix(`/auth/realms/master/login-actions/authenticate`))"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-auth.entrypoints=websecure"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-public-login.entrypoints=websecure"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-auth.tls=true"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-public-login.tls=true"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-auth.tls.certresolver=letsencrypt"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-public-login.tls.certresolver=letsencrypt"',
|
|
|
|
'"traefik.http.services.{{ keycloak_id }}-auth.loadbalancer.server.port={{ service_port }}"',
|
|
|
|
'"traefik.http.services.{{ keycloak_id }}-public-login.loadbalancer.server.port={{ service_port }}"',
|
|
|
|
|
|
|
|
# restrict all POST, PUT, DELETE, PATCH to intranet
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-state-change.service={{ keycloak_id }}"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-private.service={{ keycloak_id }}"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-state-change.rule=Host(`{{ stage_server_domain }}`)&&Method(`POST`,`PUT`,`DELETE`, `PATCH`)"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-private.rule=Host(`{{ stage_server_domain }}`)&&Method(`POST`,`PUT`,`DELETE`, `PATCH`)"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-state-change.entrypoints=websecure"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-private.entrypoints=websecure"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-state-change.tls=true"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-private.tls=true"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-state-change.tls.certresolver=letsencrypt"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-private.tls.certresolver=letsencrypt"',
|
|
|
|
'"traefik.http.services.{{ keycloak_id }}-state-change.loadbalancer.server.port={{ service_port }}"',
|
|
|
|
'"traefik.http.services.{{ keycloak_id }}-private.loadbalancer.server.port={{ service_port }}"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-state-change.middlewares={{ keycloak_id }}-state-change-ipwhitelist"',
|
|
|
|
'"traefik.http.routers.{{ keycloak_id }}-private.middlewares={{ keycloak_id }}-private-ipwhitelist"',
|
|
|
|
'"traefik.http.middlewares.{{ keycloak_id }}-state-change-ipwhitelist.ipwhitelist.sourcerange={{ (ip_whitelist + k8s_worker_node_ips) | join(",") }}"',
|
|
|
|
'"traefik.http.middlewares.{{ keycloak_id }}-private-ipwhitelist.ipwhitelist.sourcerange={{ (ip_whitelist + k8s_worker_node_ips + keycloak_ip_whitelist) | join(",") }}"',
|
|
|
|
]
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
keycloak_docker: {
|
|
|
|
keycloak_docker: {
|
|
|
|
|