1919from testcontainers .core .container import DockerContainer
2020from testcontainers .core .waiting_utils import wait_container_is_ready
2121
22+ # Since Keycloak v26.0.0
23+ # See: https://www.keycloak.org/server/all-config#category-bootstrap_admin
24+ ADMIN_USERNAME_ENVIRONMENT_VARIABLE = "KC_BOOTSTRAP_ADMIN_USERNAME"
25+ ADMIN_PASSWORD_ENVIRONMENT_VARIABLE = "KC_BOOTSTRAP_ADMIN_PASSWORD"
2226
2327class KeycloakContainer (DockerContainer ):
2428 has_realm_imports = False
25- # Since Keycloak v26.0.0
26- # See: https://www.keycloak.org/server/all-config#category-bootstrap_admin
27- ADMIN_USERNAME_ENVIRONMENT_VARIABLE = "KC_BOOTSTRAP_ADMIN_USERNAME"
28- ADMIN_PASSWORD_ENVIRONMENT_VARIABLE = "KC_BOOTSTRAP_ADMIN_PASSWORD"
2929
3030 """
3131 Keycloak container.
@@ -51,16 +51,19 @@ def __init__(
5151 cmd : Optional [str ] = "start-dev" ,
5252 ) -> None :
5353 super ().__init__ (image = image )
54- self .username = username or os .environ .get (self . ADMIN_USERNAME_ENVIRONMENT_VARIABLE , "test" )
55- self .password = password or os .environ .get (self . ADMIN_PASSWORD_ENVIRONMENT_VARIABLE , "test" )
54+ self .username = username or os .environ .get (ADMIN_USERNAME_ENVIRONMENT_VARIABLE , "test" )
55+ self .password = password or os .environ .get (ADMIN_PASSWORD_ENVIRONMENT_VARIABLE , "test" )
5656 self .port = port
5757 self .management_port = management_port
5858 self .with_exposed_ports (self .port , self .management_port )
5959 self .cmd = cmd
6060
6161 def _configure (self ) -> None :
62- self .with_env (self .ADMIN_USERNAME_ENVIRONMENT_VARIABLE , self .username )
63- self .with_env (self .ADMIN_PASSWORD_ENVIRONMENT_VARIABLE , self .password )
62+ self .with_env (ADMIN_USERNAME_ENVIRONMENT_VARIABLE , self .username )
63+ self .with_env (ADMIN_PASSWORD_ENVIRONMENT_VARIABLE , self .password )
64+ # legacy env vars (<= 26.0.0)
65+ self .with_env ("KEYCLOAK_ADMIN" , self .username )
66+ self .with_env ("KEYCLOAK_ADMIN_PASSWORD" , self .password )
6467 # Enable health checks
6568 # see: https://www.keycloak.org/server/health#_relevant_options
6669 self .with_env ("KC_HEALTH_ENABLED" , "true" )
0 commit comments