domino_admin_toolkit.checks.test_keycloak module

Description:

Validates keycloak is running and can be accessed

Result:

Test can login to keycloak successfully and returns a version, version may contain known issue as seen below

exception domino_admin_toolkit.checks.test_keycloak.KeycloakClientNotFound

Bases: KeycloakError

Raised when a Keycloak client lookup returns no clients.

exception domino_admin_toolkit.checks.test_keycloak.KeycloakError

Bases: Exception

Raised when a Keycloak operation fails.

domino_admin_toolkit.checks.test_keycloak.keycloak_status(k8s_client, timeout=30.0)
Return type:

CheckResult

domino_admin_toolkit.checks.test_keycloak.test_keycloak_clients_matches(k8s_client, request)
Description:

Validates that the client secrets in Keycloak match the secrets in the Domino credential store.

Result:

If the client secrets in Keycloak match the secrets in the Domino credential store, the test passes. If the secrets do not match, an assertion error is raised. Clients retired from Keycloak in a given Domino version (for example mlflow-deployments-client in 6.4.0) are skipped on that version and later. If the Domino version cannot be determined, a retired client that is absent from Keycloak is tolerated, but its secret is still compared when it exists.

domino_admin_toolkit.checks.test_keycloak.test_keycloak_version(k8s_client)
Description:

Checks the Keycloak version. Retrieves the host, port and protocol information.

Result:

Failure to connect to the Keycloak Admin logs an error message. If it succeeds, it retrieves the server information and extracts the version from it. The function then asserts that the version is not empty and is not equal to “8.0.1”. Keycloak 8.0.1 has a known bug which breaks the Domino “First broker login” flow, Note if the bug has been fixed manually this check would still flag it as it only checks the Keycloak version

Public Facing KB:

https://docs.dominodatalab.com/en/latest/admin_guide/0e334d/configure-single-sign-on-sso/#_domino_first_broker_login_authentication_flow