Solution for Keycloak cant connect to database while in docker (only on windows)
is Given Below:
I cannot get Keycloak to work using docker-compose whilst on a windows machine. The same docker-compose works perfectly fine on my Ubuntu virtual machine and on macOS. The error I get in the terminal is:
Failed to connect to database
If someone could point me in the right direction it would be greatly appreciated.
I’ve added my docker-compose and a condensed version of my terminal log with the errors on the bottom of this question.
My docker-compose.yml:
version: '3'
volumes:
keycloak-db:
name: all-services-keycloak-db
services:
keycloak-db:
container_name: keycloak-db
image: mariadb:10.6.2
ports:
- "3306:3306"
volumes:
- keycloak-db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: keycloak
MYSQL_USER: keycloak
MYSQL_PASSWORD: password
networks:
test:
ipv4_address: "172.5.1.1"
keycloak:
container_name: keycloak
image: jboss/keycloak:12.0.4
ports:
- "8443:8443"
volumes:
- ../https:/etc/x509/https
environment:
DB_VENDOR: mariadb
DB_ADDR: 172.5.1.1
DB_PORT: 3306
DB_DATABASE: keycloak
DB_USER: keycloak
DB_PASSWORD: password
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
depends_on:
- keycloak-db
networks:
test:
ipv4_address: "172.5.1.3"
networks:
test:
driver: bridge
ipam:
config:
- subnet: 172.5.0.0/16
name: test_net
My terminal log where the error occurs:
keycloak | at org.mariadb.jdbc//org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:622)
keycloak | at org.mariadb.jdbc//org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:142)
keycloak | at org.mariadb.jdbc//org.mariadb.jdbc.Driver.connect(Driver.java:86)
keycloak | at [email protected]//org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createLocalManagedConnection(LocalManagedConnectionFactory.java:321
)
keycloak | ... 57 more
keycloak | Caused by: java.sql.SQLException: Host '172.5.1.3' is not allowed to connect to this MariaDB server
keycloak | at org.mariadb.jdbc//org.mariadb.jdbc.internal.com.read.ReadInitialHandShakePacket.<init>(ReadInitialHandShakePacket.java:93)
keycloak | at org.mariadb.jdbc//org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.createConnection(AbstractConnectProtocol.java:480)
keycloak | at org.mariadb.jdbc//org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1238)
keycloak | ... 61 more
keycloak |
keycloak | 17:44:41,944 FATAL [org.keycloak.services] (ServerService Thread Pool -- 62) Error during startup: java.lang.RuntimeException: Failed to connect to database
keycloak | at [email protected]//org.keycloak.connections.jpa.DefaultJpaConnectionProviderFactory.getConnection(DefaultJpaConnectionProviderFactory.java:377)
keycloak | at [email protected]//org.keycloak.connections.jpa.updater.liquibase.lock.LiquibaseDBLockProvider.lazyInit(LiquibaseDBLockProvider.java:65)
keycloak | at [email protected]//org.keycloak.connections.jpa.updater.liquibase.lock.LiquibaseDBLockProvider.lambda$waitForLock$2(LiquibaseDBLockProvider.java:96)
keycloak | at [email protected]//org.keycloak.models.utils.KeycloakModelUtils.suspendJtaTransaction(KeycloakModelUtils.java:654)
keycloak | at [email protected]//org.keycloak.connections.jpa.updater.liquibase.lock.LiquibaseDBLockProvider.waitForLock(LiquibaseDBLockProvider.java:94)
keycloak | at [email protected]//org.keycloak.services.resources.KeycloakApplication$1.run(KeycloakApplication.java:136)
keycloak | at [email protected]//org.keycloak.models.utils.KeycloakModelUtils.runJobInTransaction(KeycloakModelUtils.java:228)
keycloak | at [email protected]//org.keycloak.services.resources.KeycloakApplication.startup(KeycloakApplication.java:129)
keycloak | at [email protected]//org.keycloak.provider.wildfly.WildflyPlatform.onStartup(WildflyPlatform.java:29)
keycloak | at [email protected]//org.keycloak.services.resources.KeycloakApplication.<init>(KeycloakApplication.java:115)
keycloak | at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
keycloak | at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
keycloak | at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
keycloak | at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
keycloak | at [email protected]//org.jboss.resteasy.core.ConstructorInjectorImpl.construct(ConstructorInjectorImpl.java:152)
keycloak | at [email protected]//org.jboss.resteasy.spi.ResteasyProviderFactory.createProviderInstance(ResteasyProviderFactory.java:2815)
keycloak | at [email protected]//org.jboss.resteasy.spi.ResteasyDeployment.createApplication(ResteasyDeployment.java:371)
keycloak | at [email protected]//org.jboss.resteasy.spi.ResteasyDeployment.startInternal(ResteasyDeployment.java:283)
keycloak | at [email protected]//org.jboss.resteasy.spi.ResteasyDeployment.start(ResteasyDeployment.java:93)
keycloak | at [email protected]//org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.init(ServletContainerDispatcher.java:140)
keycloak | at [email protected]//org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.init(HttpServletDispatcher.java:42)
keycloak | at [email protected]//io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:117)
keycloak | at [email protected]//org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.init(RunAsLifecycleInterceptor.java:78)
keycloak | at [email protected]//io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:103)
keycloak | at [email protected]//io.undertow.servlet.core.ManagedServlet$DefaultInstanceStrategy.start(ManagedServlet.java:305)
keycloak | at [email protected]//io.undertow.servlet.core.ManagedServlet.createServlet(ManagedServlet.java:145)
keycloak | at [email protected]//io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:588)
keycloak | at [email protected]//io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:559)
keycloak | at [email protected]//io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
keycloak | at [email protected]//io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
keycloak | at [email protected]//org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
keycloak | at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInf
oService.java:1530)
keycloak | at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInf
oService.java:1530)
keycloak | at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInf
oService.java:1530)
keycloak | at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInf
oService.java:1530)
keycloak | at [email protected]//io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:601)
keycloak | at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:97)
keycloak | at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:78)
keycloak | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
keycloak | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
keycloak | at [email protected]//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
keycloak | at [email protected]//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
keycloak | at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
keycloak | at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
keycloak | at java.base/java.lang.Thread.run(Thread.java:829)
keycloak | at [email protected]//org.jboss.threads.JBossThread.run(JBossThread.java:513)
keycloak | Caused by: java.sql.SQLException: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:jboss/datasources/KeycloakDS
keycloak | at [email protected]//org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:159)
keycloak | at [email protected]//org.jboss.as.connector.subsystems.datasources.WildFlyDataSource.getConnection(WildFlyDataSource.java:64)
keycloak | at [email protected]//org.keycloak.connections.jpa.DefaultJpaConnectionProviderFactory.getConnection(DefaultJpaConnectionProviderFactory.java:371)
keycloak | ... 45 more
keycloak | Caused by: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:jboss/datasources/KeycloakDS
keycloak | at [email protected]//org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:690)
keycloak | at org.j[email protected]//org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:440)
keycloak | at [email protected]//org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:789)
keycloak | at [email protected]//org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:151)
keycloak | ... 47 more
keycloak | Caused by: javax.resource.ResourceException: IJ031084: Unable to create connection
keycloak | at [email protected]//org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createLocalManagedConnection(LocalManagedConnectionFactory.java:345
)
keycloak | at [email protected]//org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:352)
keycloak | at [email protected]//org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:287)
keycloak | at [email protected]//org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.createConnectionEventListener(SemaphoreCo
ncurrentLinkedDequeManagedConnectionPool.java:1322)
keycloak | at [email protected]//org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.getConnection(SemaphoreConcurrentLinkedDe
queManagedConnectionPool.java:499)
keycloak | at [email protected]//org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:632)
keycloak | at [email protected]//org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:604)
keycloak | at [email protected]//org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:624)
keycloak | ... 50 more
keycloak | Caused by: java.sql.SQLNonTransientConnectionException: Could not connect to HostAddress{host="172.5.1.1", port=3306, type="master"}. Host '172.5.1.3' is not allowed to connect to this Maria
DB server
keycloak | at org.mariadb.jdbc//org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:241)
keycloak | at org.mariadb.jdbc//org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.connException(ExceptionMapper.java:87)
keycloak | at org.mariadb.jdbc//org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1254)
keycloak | at org.mariadb.jdbc//org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:622)
keycloak | at org.mariadb.jdbc//org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:142)
keycloak | at org.mariadb.jdbc//org.mariadb.jdbc.Driver.connect(Driver.java:86)
keycloak | at [email protected]//org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createLocalManagedConnection(LocalManagedConnectionFactory.java:321
)
keycloak | ... 57 more
keycloak | Caused by: java.sql.SQLException: Host '172.5.1.3' is not allowed to connect to this MariaDB server
keycloak | at org.mariadb.jdbc//org.mariadb.jdbc.internal.com.read.ReadInitialHandShakePacket.<init>(ReadInitialHandShakePacket.java:93)
keycloak | at org.mariadb.jdbc//org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.createConnection(AbstractConnectProtocol.java:480)
keycloak | at org.mariadb.jdbc//org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1238)
keycloak | ... 61 more
keycloak |
keycloak | 17:44:41,949 INFO [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 62) RESTEASY002225: Deploying javax.ws.rs.core.Application: class org.keycloak.services.resources.Ke
ycloakApplication
keycloak | 17:44:41,950 INFO [org.jboss.as.server] (Thread-1) WFLYSRV0220: Server shutdown has been requested via an OS signal
keycloak | 17:44:41,950 INFO [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 62) RESTEASY002200: Adding class resource org.keycloak.services.resources.JsResource from Applicatio
n class org.keycloak.services.resources.KeycloakApplication
keycloak | 17:44:41,952 INFO [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 62) RESTEASY002205: Adding provider class org.keycloak.services.filters.KeycloakSecurityHeadersFilte
r from Application class org.keycloak.services.resources.KeycloakApplication
keycloak | 17:44:41,952 INFO [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 62) RESTEASY002205: Adding provider class org.keycloak.services.error.KeycloakErrorHandler from Appl
ication class org.keycloak.services.resources.KeycloakApplication
keycloak | 17:44:41,952 INFO [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 62) RESTEASY002200: Adding class resource org.keycloak.services.resources.ThemeResource from Applica
tion class org.keycloak.services.resources.KeycloakApplication
keycloak | 17:44:41,952 INFO [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 62) RESTEASY002210: Adding provider singleton org.keycloak.services.util.ObjectMapperResolver from A
pplication class org.keycloak.services.resources.KeycloakApplication
keycloak | 17:44:41,953 INFO [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 62) RESTEASY002220: Adding singleton resource org.keycloak.services.resources.WelcomeResource from A
pplication class org.keycloak.services.resources.KeycloakApplication
keycloak | 17:44:41,953 INFO [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 62) RESTEASY002220: Adding singleton resource org.keycloak.services.resources.RobotsResource from Ap
plication class org.keycloak.services.resources.KeycloakApplication
keycloak | 17:44:41,954 INFO [org.jboss.resteasy.resteasy_jaxrs.i18n]
keycloak | 17:44:42,188 INFO [org.jboss.as.server.deployment] (MSC service thread 1-7) WFLYSRV0028: Stopped deployment keycloak-server.war (runtime-name: keycloak-server.war) in 234ms
keycloak | 17:44:42,194 INFO [org.infinispan.CLUSTER] (ServerService Thread Pool -- 70) ISPN000080: Disconnecting JGroups channel ejb
keycloak | 17:44:42,211 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([("subsystem" => "microprofile-metrics-smallrye")
]): java.lang.NullPointerException
keycloak | at [email protected]//org.wildfly.extension.microprofile.metrics.MicroProfileMetricsSubsystemAdd$2.execute(MicroProfileMetricsSubsystemA
dd.java:89)
keycloak | at [email protected]//org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:1005)
keycloak | at [email protected]//org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:744)
keycloak | at [email protected]//org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:468)
keycloak | at [email protected]//org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1415)
keycloak | at [email protected]//org.jboss.as.controller.ModelControllerImpl.boot(ModelControllerImpl.java:529)
keycloak | at [email protected].3.Final//org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:515)
keycloak | at [email protected]//org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:477)
keycloak | at [email protected]//org.jboss.as.server.ServerService.boot(ServerService.java:451)
keycloak | at [email protected]//org.jboss.as.server.ServerService.boot(ServerService.java:404)
keycloak | at [email protected]//org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:416)
keycloak | at java.base/java.lang.Thread.run(Thread.java:829)
keycloak |
keycloak | 17:44:42,215 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 36) WFLYCTL0403: Unexpected failure during execution of the following operation(s): []: java.l
ang.RuntimeException: WFLYCTL0195: Interrupted awaiting transaction commit or rollback
keycloak | at [email protected]//org.jboss.as.controller.ParallelBootOperationStepHandler$ParallelBootTransactionControl.operationPrepared(ParallelBootOperationStepHandler.jav
a:458)
keycloak | at [email protected]//org.jboss.as.controller.ModelController$OperationTransactionControl.operationPrepared(ModelController.java:131)
keycloak | at [email protected]//org.jboss.as.controller.AbstractOperationContext.executeDoneStage(AbstractOperationContext.java:839)
keycloak | at [email protected]//org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:770)
keycloak | at [email protected]//org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:468)
keycloak | at [email protected]//org.jboss.as.controller.ParallelBootOperationStepHandler$ParallelBootTask.run(ParallelBootOperationStepHandler.java:384)
keycloak | at [email protected]//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
keycloak | at [email protected]//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
keycloak | at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
keycloak | at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1348)
keycloak | at java.base/java.lang.Thread.run(Thread.java:829)
keycloak | at [email protected]//org.jboss.threads.JBossThread.run(JBossThread.java:513)
keycloak |
keycloak | 17:44:42,215 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 10) WFLYCTL0403: Unexpected failure during execution of the following operation(s): [{
keycloak | "operation" => "add",
keycloak | "address" => [("subsystem" => "microprofile-metrics-smallrye")],
keycloak | "security-enabled" => false,
keycloak | "exposed-subsystems" => ["*"],
keycloak | "prefix" => expression "${wildfly.metrics.prefix:wildfly}"
keycloak | }]: java.lang.RuntimeException: WFLYCTL0195: Interrupted awaiting transaction commit or rollback
keycloak | at [email protected]//org.jboss.as.controller.ParallelBootOperationStepHandler$ParallelBootTransactionControl.operationPrepared(ParallelBootOperationStepHandler.jav
a:458)
keycloak | at [email protected]//org.jboss.as.controller.ModelController$OperationTransactionControl.operationPrepared(ModelController.java:131)
keycloak | at [email protected]//org.jboss.as.controller.AbstractOperationContext.executeDoneStage(AbstractOperationContext.java:839)
keycloak | at [email protected]//org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:770)
keycloak | at [email protected]//org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:468)
keycloak | at [email protected]//org.jboss.as.controller.ParallelBootOperationStepHandler$ParallelBootTask.run(ParallelBootOperationStepHandler.java:384)
keycloak | at [email protected]//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
keycloak | at [email protected]//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
keycloak | at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
keycloak | at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
keycloak | at java.base/java.lang.Thread.run(Thread.java:829)
keycloak | at [email protected]//org.jboss.threads.JBossThread.run(JBossThread.java:513)
keycloak |
keycloak | 17:44:42,217 ERROR [org.jboss.as.server] (ServerService Thread Pool -- 46) WFLYSRV0022: Deploy of deployment "keycloak-server.war" was rolled back with no failure message
keycloak | 17:44:42,215 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 17) WFLYCTL0403: Unexpected failure during execution of the following operation(s): [{
keycloak | "operation" => "add",
keycloak | "address" => [("subsystem" => "modcluster")]
keycloak | }, {
keycloak | "operation" => "add",
keycloak | "address" => [
keycloak | ("subsystem" => "modcluster"),
keycloak | ("proxy" => "default")
keycloak | ],
keycloak | "advertise-socket" => "modcluster",
keycloak | "listener" => "ajp"
keycloak | }, {
keycloak | "operation" => "add",
keycloak | "address" => [
keycloak | ("subsystem" => "modcluster"),
keycloak | ("proxy" => "default"),
keycloak | ("load-provider" => "dynamic")
keycloak | ]
keycloak | }, {
keycloak | "operation" => "add",
keycloak | "address" => [
keycloak | ("subsystem" => "modcluster"),
keycloak | ("proxy" => "default"),
keycloak | ("load-provider" => "dynamic"),
keycloak | ("load-metric" => "cpu")
keycloak | ],
keycloak | "type" => "cpu"