19
19
from testcontainers .core .container import DockerContainer
20
20
from testcontainers .core .waiting_utils import wait_container_is_ready
21
21
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"
22
26
23
27
class KeycloakContainer (DockerContainer ):
24
28
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"
29
29
30
30
"""
31
31
Keycloak container.
@@ -51,16 +51,19 @@ def __init__(
51
51
cmd : Optional [str ] = "start-dev" ,
52
52
) -> None :
53
53
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" )
56
56
self .port = port
57
57
self .management_port = management_port
58
58
self .with_exposed_ports (self .port , self .management_port )
59
59
self .cmd = cmd
60
60
61
61
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 )
64
67
# Enable health checks
65
68
# see: https://www.keycloak.org/server/health#_relevant_options
66
69
self .with_env ("KC_HEALTH_ENABLED" , "true" )
0 commit comments