You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hetzner-ansible/roles/keycloak/defaults/main.yml

104 lines
3.4 KiB
YAML

---
# TODO doesn't bind to local port (currently used by setup keycloak with ansible)
service_port_keycloak_external: "8110"
keycloak_version: "12.0.4"
keycloak_admin_username: "keycloak-admin"
keycloak_admin_password: "keycloak-admin"
keycloak_postgres_version: "12"
keycloak_postgres_database: "keycloak-postgres"
keycloak_postgres_admin_username: "keycloak-postgres-admin"
keycloak_postgres_admin_password: "keycloak-postgres-admin"
keycloak_id: "{{ service_name }}-keycloak"
keycloak_postgres_id: "{{ service_name }}-postgres-keycloak"
keycloak_labels: [
'"traefik.enable=true"',
'"traefik.http.routers.{{ keycloak_id }}.service={{ keycloak_id }}"',
'"traefik.http.routers.{{ keycloak_id }}.rule=Host(`{{ stage_server_url_host }}`)"',
'"traefik.http.routers.{{ keycloak_id }}.entrypoints=websecure"',
'"traefik.http.routers.{{ keycloak_id }}.tls=true"',
'"traefik.http.routers.{{ keycloak_id }}.tls.certresolver=letsencrypt"',
'"traefik.http.services.{{ keycloak_id }}.loadbalancer.server.port={{ service_port }}"',
'"traefik.http.routers.{{ keycloak_id }}-monitor.service={{ service_name }}-node-exporter"',
'"traefik.http.routers.{{ keycloak_id }}-monitor.rule=Host(`{{ stage_server_url_host }}`)"',
'"traefik.http.routers.{{ keycloak_id }}-monitor.entrypoints=admin-system"',
'"traefik.http.routers.{{ keycloak_id }}-monitor.tls=true"',
'"traefik.http.routers.{{ keycloak_id }}-monitor.tls.certresolver=letsencrypt"',
]
keycloak_docker: {
networks: [
{
name: back-tier,
external: true,
},
{
name: front-tier,
external: true,
},
],
volumes: [
{
name: "{{ keycloak_postgres_id }}-data"
}
],
services: [
{
name: "{{ keycloak_id }}",
image_name: "jboss/keycloak",
image_version: "{{ keycloak_version }}",
labels: "{{ keycloak_labels + ( keycloak_labels_additional | default([])) }}",
environment: [
"PROXY_ADDRESS_FORWARDING: \"true\"",
"KEYCLOAK_USER: \"{{ keycloak_admin_username }}\"",
"KEYCLOAK_PASSWORD: \"{{ keycloak_admin_password }}\"",
"DB_VENDOR: postgres",
"DB_DATABASE: \"{{ keycloak_postgres_database }}\"",
"DB_USER: \"{{ keycloak_postgres_admin_username }}\"",
"DB_PASSWORD: \"{{ keycloak_postgres_admin_password }}\"",
"DB_ADDR: \"{{ keycloak_postgres_id }}\"",
"JAVA_OPTS_APPEND: \"-Dkeycloak.profile.feature.docker=enabled\"",
],
volumes: [
'"./eden-theme:/opt/jboss/keycloak/themes/eden-theme:ro"',
'"./smardigo-theme:/opt/jboss/keycloak/themes/smardigo-theme:ro"',
],
networks: [
'"back-tier"',
'"front-tier"',
],
ports: [
{
external: "{{ service_port_keycloak_external }}",
internal: "{{ service_port_keycloak }}",
},
],
extra_hosts: "{{ keycloak_extra_hosts | default([]) }}",
},
{
name: "{{ keycloak_postgres_id }}",
image_name: "postgres",
image_version: "{{ keycloak_postgres_version }}",
environment: [
'POSTGRES_DB: "{{ keycloak_postgres_database }}"',
'POSTGRES_USER: "{{ keycloak_postgres_admin_username }}"',
'POSTGRES_PASSWORD: "{{ keycloak_postgres_admin_password }}"',
],
volumes: [
'"{{ keycloak_postgres_id }}-data:/var/lib/postgresql/data"',
],
networks: [
'"back-tier"',
],
ports: "{{ keycloak_postgres_ports | default([]) }}",
},
],
}