Skip to content

Commit c5459b2

Browse files
committed
Update docker-cluster to keycloak 1.4
1 parent 8232773 commit c5459b2

File tree

6 files changed

+92
-21
lines changed

6 files changed

+92
-21
lines changed

testsuite/docker-cluster/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ $ cd distribution
1919
$ mvn clean install
2020
````
2121

22-
3) Build Docker with maven to ensure that needed data will be accessible to Docker+Fig volumes:
22+
3) Build docker-cluster module with maven to ensure that needed data will be accessible to Docker+Fig volumes:
2323
```shell
2424
$ cd $KEYCLOAK_HOME/testsuite/docker-cluster
2525
$ mvn clean install

testsuite/docker-cluster/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
</dependency>
2222
<dependency>
2323
<groupId>org.keycloak</groupId>
24-
<artifactId>keycloak-wf8-adapter-dist</artifactId>
24+
<artifactId>keycloak-wf9-adapter-dist</artifactId>
2525
<type>zip</type>
2626
</dependency>
2727
<dependency>
@@ -69,7 +69,7 @@
6969
</artifactItem>
7070
<artifactItem>
7171
<groupId>org.keycloak</groupId>
72-
<artifactId>keycloak-wf8-adapter-dist</artifactId>
72+
<artifactId>keycloak-wf9-adapter-dist</artifactId>
7373
<type>zip</type>
7474
<version>${project.version}</version>
7575
<outputDirectory>${project.build.directory}/wildfly-adapter</outputDirectory>

testsuite/docker-cluster/shared-files/keycloak-base-prepare.sh

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,13 @@ mkdir -p mysql/main && mv /mysql-connector-java-5.1.32.jar mysql/main/
1212
cp /keycloak-docker-cluster/shared-files/mysql-module.xml mysql/main/module.xml
1313
mv mysql $JBOSS_MODULES_HOME/com/
1414

15-
sed -i -e "s/<extensions>/&\n <extension module=\"org.keycloak.keycloak-server-subsystem\"\/>/" $JBOSS_HOME/standalone/configuration/standalone-ha.xml
16-
sed -i -e 's/<profile>/&\n <subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">\n <auth-server name="main-auth-server">\n <enabled>true<\/enabled>\n <web-context>auth<\/web-context>\n <\/auth-server> \n <\/subsystem>/' $JBOSS_HOME/standalone/configuration/standalone-ha.xml && \
17-
sed -i -e 's/<security-domains>/&\n <security-domain name="keycloak">\n <authentication>\n <login-module code="org.keycloak.adapters.jboss.KeycloakLoginModule" flag="required"\/>\n <\/authentication>\n <\/security-domain>/' $JBOSS_HOME/standalone/configuration/standalone-ha.xml && \
18-
sed -i -e 's/<drivers>/&\n <driver name="mysql" module="com.mysql">\n <xa-datasource-class>com.mysql.jdbc.Driver<\/xa-datasource-class>\n <driver-class>com.mysql.jdbc.Driver<\/driver-class>\n <\/driver>/' $JBOSS_HOME/standalone/configuration/standalone-ha.xml && \
19-
sed -i -e 's/<\/periodic-rotating-file-handler>/&\n <logger category=\"org.keycloak\">\n <level name=\"DEBUG\" \/> \n <\/logger>\n <logger category=\"org.jboss.resteasy.core.ResourceLocator\">\n <level name=\"ERROR\" \/> \n <\/logger>/' $JBOSS_HOME/standalone/configuration/standalone-ha.xml
20-
21-
sed -i -e 's/<subsystem xmlns=\"urn:jboss:domain:infinispan:[0-9]\.[0-9]\">/&\n <cache-container name=\"keycloak\" jndi-name=\"infinispan\/Keycloak\" start=\"EAGER\"> \
22-
\n <transport lock-timeout=\"60000\"\/>\n <distributed-cache name=\"sessions\" mode=\"SYNC\" owners=\"2\" segments=\"60\"\/> \
23-
\n <distributed-cache name=\"loginFailures\" mode=\"SYNC\" owners=\"2\" segments=\"60\"\/> \
24-
\n <invalidation-cache name=\"realms\" mode=\"SYNC\"\/>\n \
25-
\n <invalidation-cache name=\"users\" mode=\"SYNC\"\/>\n <\/cache-container>/' $JBOSS_HOME/standalone/configuration/standalone-ha.xml
26-
27-
sed -i "s|<mod-cluster-config .*>|<mod-cluster-config advertise-socket=\"modcluster\" proxy-list=\"\$\{httpd.proxyList\}\" proxy-url=\"\/\" balancer=\"mycluster\" advertise=\"false\" connector=\"ajp\" sticky-session=\"true\">|" $JBOSS_HOME/standalone/configuration/standalone-ha.xml
15+
# Transform standalone-keycloak-ha.xml
16+
java -jar /usr/share/java/saxon.jar -s:$JBOSS_HOME/standalone/configuration/standalone-keycloak-ha.xml -xsl:/keycloak-docker-cluster/shared-files/standaloneXmlChanges.xsl -o:$JBOSS_HOME/standalone/configuration/standalone-keycloak-ha.xml
2817

2918
sed -i "s|#JAVA_OPTS=\"\$JAVA_OPTS -agentlib:jdwp=transport=dt_socket|JAVA_OPTS=\"\$JAVA_OPTS -agentlib:jdwp=transport=dt_socket|" $JBOSS_HOME/bin/standalone.conf
3019

3120
cp /keycloak-docker-cluster/shared-files/mysql-keycloak-ds.xml $JBOSS_HOME/standalone/deployments/
3221

3322
# Enable Infinispan provider
34-
sed -i "s|\"provider\".*: \"mem\"|\"provider\": \"infinispan\"|" $JBOSS_HOME/standalone/configuration/keycloak-server.json
35-
sed -i -e "s/\"connectionsJpa\"/\n \"connectionsInfinispan\": \{\n \"default\" : \{\n \"cacheContainer\" : \"java:jboss\/infinispan\/Keycloak\"\n \}\n \},\n &/" $JBOSS_HOME/standalone/configuration/keycloak-server.json
23+
#sed -i "s|\"provider\".*: \"mem\"|\"provider\": \"infinispan\"|" $JBOSS_HOME/standalone/configuration/keycloak-server.json
24+
#sed -i -e "s/\"connectionsJpa\"/\n \"connectionsInfinispan\": \{\n \"default\" : \{\n \"cacheContainer\" : \"java:jboss\/infinispan\/Keycloak\"\n \}\n \},\n &/" $JBOSS_HOME/standalone/configuration/keycloak-server.json

testsuite/docker-cluster/shared-files/keycloak-run-node.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,6 @@ export JBOSS_HOME=/keycloak-docker-shared/keycloak-$JBOSS_TYPE-$MYHOST;
7373

7474
cd $JBOSS_HOME/bin/
7575

76-
./standalone.sh -c standalone-ha.xml -Djboss.node.name=$MYHOST -b `hostname -i` -Djboss.mod_cluster.jvmRoute=$MYHOST \
77-
-Dmysql.host=$MYSQL_PORT_3306_TCP_ADDR -Dhttpd.proxyList=$HTTPD_1_PORT_10001_TCP_ADDR:$HTTPD_PORT_10001_TCP_PORT \
76+
./standalone.sh -c standalone-keycloak-ha.xml -Djboss.node.name=$MYHOST -b `hostname -i` -Djboss.mod_cluster.jvmRoute=$MYHOST \
77+
-Dmysql.host=$MYSQL_PORT_3306_TCP_ADDR -Dhttpd.proxyHost=$HTTPD_1_PORT_10001_TCP_ADDR -Dhttpd.proxyPort=$HTTPD_PORT_10001_TCP_PORT \
7878
-Dkeycloak.import=/keycloak-docker-cluster/examples/testrealm.json "$@"
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<xsl:stylesheet version="2.0"
4+
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5+
xmlns:xalan="http://xml.apache.org/xalan"
6+
xmlns:ds="urn:jboss:domain:datasources:3.0"
7+
xmlns:logging="urn:jboss:domain:logging:3.0"
8+
xmlns:ispn="urn:jboss:domain:infinispan:3.0"
9+
xmlns:mcluster="urn:jboss:domain:modcluster:2.0"
10+
xmlns:server="urn:jboss:domain:3.0"
11+
exclude-result-prefixes='ds logging ispn mcluster xalan server'
12+
>
13+
14+
<xsl:output method="xml" indent="yes" xalan:indent-amount="4" standalone="no"/>
15+
<xsl:strip-space elements="*"/>
16+
17+
<xsl:template match="//ds:subsystem/ds:datasources/ds:datasource[@jndi-name='java:jboss/datasources/KeycloakDS']" >
18+
<ds:datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true">
19+
<ds:connection-url>jdbc:mysql://${mysql.host}/keycloak_db</ds:connection-url>
20+
<ds:driver>mysql</ds:driver>
21+
<ds:security>
22+
<ds:user-name>root</ds:user-name>
23+
<ds:password>mysecretpassword</ds:password>
24+
</ds:security>
25+
</ds:datasource>
26+
</xsl:template>
27+
28+
<xsl:template match="//ds:subsystem/ds:datasources/ds:drivers">
29+
<xsl:copy>
30+
<xsl:apply-templates select="@*|node()"/>
31+
<ds:driver name="mysql" module="com.mysql">
32+
<ds:xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</ds:xa-datasource-class>
33+
</ds:driver>
34+
</xsl:copy>
35+
</xsl:template>
36+
37+
<xsl:template match="//logging:subsystem/logging:periodic-rotating-file-handler">
38+
<xsl:copy>
39+
<xsl:apply-templates select="@*|node()"/>
40+
</xsl:copy>
41+
<logging:logger category="org.keycloak">
42+
<logging:level name="DEBUG" />
43+
</logging:logger>
44+
<logging:logger category="org.jboss.resteasy.core.ResourceLocator">
45+
<logging:level name="ERROR" />
46+
</logging:logger>
47+
</xsl:template>
48+
49+
<xsl:template match="//ispn:subsystem/ispn:cache-container[@name='keycloak']">
50+
<ispn:cache-container name="keycloak" jndi-name="infinispan/Keycloak">
51+
<ispn:transport lock-timeout="60000"/>
52+
<ispn:invalidation-cache name="realms" mode="SYNC"/>
53+
<ispn:invalidation-cache name="users" mode="SYNC"/>
54+
<ispn:distributed-cache name="sessions" mode="SYNC" owners="2"/>
55+
<ispn:distributed-cache name="loginFailures" mode="SYNC" owners="2"/>
56+
</ispn:cache-container>
57+
</xsl:template>
58+
59+
<xsl:template match="//mcluster:subsystem/mcluster:mod-cluster-config">
60+
<mcluster:mod-cluster-config advertise-socket="modcluster" proxies='myproxy' proxy-url="/" balancer="mycluster" advertise="false" connector="ajp" sticky-session="true">
61+
<mcluster:dynamic-load-provider>
62+
<mcluster:load-metric type="cpu"/>
63+
</mcluster:dynamic-load-provider>
64+
</mcluster:mod-cluster-config>
65+
</xsl:template>
66+
67+
<xsl:template match="//server:socket-binding-group">
68+
<xsl:copy>
69+
<xsl:apply-templates select="@*|node()"/>
70+
<server:outbound-socket-binding name="myproxy">
71+
<server:remote-destination host="${{httpd.proxyHost}}" port="${{httpd.proxyPort}}"/>
72+
</server:outbound-socket-binding>
73+
</xsl:copy>
74+
</xsl:template>
75+
76+
<xsl:template match="@*|node()">
77+
<xsl:copy>
78+
<xsl:apply-templates select="@*|node()"/>
79+
</xsl:copy>
80+
</xsl:template>
81+
82+
</xsl:stylesheet>

testsuite/docker-cluster/wildfly/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM jboss/wildfly:8.2.0.Final
1+
FROM jboss/wildfly:9.0.1.Final
22

33
USER root
44

0 commit comments

Comments
 (0)