Example: 3-node HA cluster
The complete cluster definition for a production 3-node HA install — this is the only file you edit. Run ./configure -c examples/ha-3node.yml against it.
---
# keelinfra/keycloak cluster definition
# This is the only file you need to edit. Run: ./configure -c examples/ha-3node.yml
cluster_name: keycloak-prod
# The three nodes. First node also hosts the backup repository,
# Prometheus, and Grafana. All nodes run Keycloak + PostgreSQL + etcd.
nodes:
- host: 10.0.0.11
name: kc-node1
- host: 10.0.0.12
name: kc-node2
- host: 10.0.0.13
name: kc-node3
# SSH connection for Ansible (agent or key-based; password auth not supported)
ssh_user: ubuntu
# ssh_private_key: ~/.ssh/id_ed25519 # optional, defaults to agent
# Public entrypoint. Users reach Keycloak at https://<domain>/
# Point DNS at the VIP (if enabled) or at any node / your external LB.
domain: sso.example.com
# Optional keepalived VIP shared by the three nodes (same L2 segment required).
# Leave empty to skip VIP and use an external load balancer or round-robin DNS.
vip: ""
# Keycloak version to install. Upgrades are driven by ./upgrade, not by editing this.
keycloak_version: "26.7.3"
# TLS: "selfsigned" generates a local CA and certs (good for eval/intranet).
# Set to "custom" and drop your cert/key at files/tls/<domain>.crt|.key for production.
tls_mode: selfsigned
Synced from keelinfra/keycloak/examples/ha-3node.yml @ f86d62b — to change it, edit it there.