Closed guidograzioli closed 2 weeks ago
@hwo-wd please review; if we agree on this coauthored PR, I'll find another pair of eye to do the formal review
@hwo-wd I believe all your notes were addressed, and we got the green flag from Andy; if you have other commits to push or comments please do; or, I'll proceed and merge. This has been pretty epic :)
lgtm, thanks for the journey :)
Builds on and supersedes #230; a directory for restart strategies is provided with three implementations:
none
(nothing is restarted),serial
(restart hosts in a serial fashion),serial_then_parallel
(restart first node, verify health url, proceed with the rest in parallel). Restart health check can be mix-and-matched with the wait_for parameters.The default strategy file, imported from the restart handler, is 'serial_then_parallel'; user can use that, choose one of the other too, or specify their custom taskfile (in a relative path of the calling playbook).
serial
is the only viable restart behaviour on keycloak with default embedded infinispan caches (distributed-caches with owners = 2 implies a single point of failure).serial_then_parallel
is for the case of remote infinispan caches, where liveliness of the first node to be restarted allows the other keycloak node to be restarted in parallelThe molecule scenario
quarkus_ha
tests a cluster of two keycloak instances with a shared postgresql instance, restart in serial strategyNew parameters:
keycloak_quarkus_restart_strategy
restart/serial.yml
keycloak_quarkus_restart_health_check
{{ keycloak_quarkus_ha_enabled }}
keycloak_quarkus_restart_health_check_delay
10
keycloak_quarkus_restart_health_check_reries
25
keycloak_quarkus_restart_pause
15
Fix #182 Fix #221