You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2024/04/17 04:31:22 UTC
(airavata-custos) 02/03: integrating keycloak with a mysql db
This is an automated email from the ASF dual-hosted git repository.
lahirujayathilake pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata-custos.git
commit 65a4d7c8fbf1c6108762d633aa540ce8d78c3f04
Author: lahiruj <la...@gmail.com>
AuthorDate: Sun Feb 4 23:31:38 2024 -0500
integrating keycloak with a mysql db
---
.../custos-keycloak/src/main/resources/standalone-ha.xml | 16 +++++++++++-----
.../custos-keycloak/src/main/resources/standalone.xml | 16 +++++++++++-----
.../src/main/containers/docker-compose.yml | 9 ++++++++-
.../main/containers/init/mysql/scripts/bash/init-db.sh | 14 ++++++++++++++
4 files changed, 44 insertions(+), 11 deletions(-)
diff --git a/custos-services/custos-external-services-distributions/custos-keycloak/src/main/resources/standalone-ha.xml b/custos-services/custos-external-services-distributions/custos-keycloak/src/main/resources/standalone-ha.xml
index 4e99163bc..00aa97bb8 100644
--- a/custos-services/custos-external-services-distributions/custos-keycloak/src/main/resources/standalone-ha.xml
+++ b/custos-services/custos-external-services-distributions/custos-keycloak/src/main/resources/standalone-ha.xml
@@ -133,15 +133,21 @@
<password>sa</password>
</security>
</datasource>
- <datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}">
- <connection-url>jdbc:h2:${jboss.server.data.dir}/keycloak;AUTO_SERVER=TRUE</connection-url>
- <driver>h2</driver>
+ <datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true">
+ <connection-url>jdbc:mysql://host.docker.internal:3306/keycloak</connection-url>
+ <driver>mysql</driver>
+ <pool>
+ <max-pool-size>20</max-pool-size>
+ </pool>
<security>
- <user-name>sa</user-name>
- <password>sa</password>
+ <user-name>admin</user-name>
+ <password>admin</password>
</security>
</datasource>
<drivers>
+ <driver name="mysql" module="com.mysql">
+ <xa-datasource-class>com.mysql.cj.jdbc.MysqlXADataSource</xa-datasource-class>
+ </driver>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
diff --git a/custos-services/custos-external-services-distributions/custos-keycloak/src/main/resources/standalone.xml b/custos-services/custos-external-services-distributions/custos-keycloak/src/main/resources/standalone.xml
index dd2690d9a..829602cea 100644
--- a/custos-services/custos-external-services-distributions/custos-keycloak/src/main/resources/standalone.xml
+++ b/custos-services/custos-external-services-distributions/custos-keycloak/src/main/resources/standalone.xml
@@ -131,15 +131,21 @@
<password>sa</password>
</security>
</datasource>
- <datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}">
- <connection-url>jdbc:h2:${jboss.server.data.dir}/keycloak;AUTO_SERVER=TRUE</connection-url>
- <driver>h2</driver>
+ <datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true">
+ <connection-url>jdbc:mysql://host.docker.internal:3306/keycloak</connection-url>
+ <driver>mysql</driver>
+ <pool>
+ <max-pool-size>20</max-pool-size>
+ </pool>
<security>
- <user-name>sa</user-name>
- <password>sa</password>
+ <user-name>admin</user-name>
+ <password>admin</password>
</security>
</datasource>
<drivers>
+ <driver name="mysql" module="com.mysql">
+ <xa-datasource-class>com.mysql.cj.jdbc.MysqlXADataSource</xa-datasource-class>
+ </driver>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
diff --git a/custos-utilities/ide-integration/src/main/containers/docker-compose.yml b/custos-utilities/ide-integration/src/main/containers/docker-compose.yml
index af90161f2..1f8291de1 100644
--- a/custos-utilities/ide-integration/src/main/containers/docker-compose.yml
+++ b/custos-utilities/ide-integration/src/main/containers/docker-compose.yml
@@ -8,6 +8,14 @@ services:
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
PROXY_ADDRESS_FORWARDING: 'true'
+ DB_VENDOR: mysql
+ DB_ADDR: my_sql_local
+ DB_DATABASE: keycloak
+ DB_USER: admin
+ DB_PASSWORD: admin
+ depends_on:
+ - my_sql_local
+
nginx:
image: apachecustos/keycloak-nginx:latest
ports:
@@ -50,7 +58,6 @@ services:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: root
- MYSQL_DATABASE: core_services_db
MYSQL_USER: admin
MYSQL_PASSWORD: admin
MAX_ALLOWED_PACKET: 1073741824
diff --git a/custos-utilities/ide-integration/src/main/containers/init/mysql/scripts/bash/init-db.sh b/custos-utilities/ide-integration/src/main/containers/init/mysql/scripts/bash/init-db.sh
new file mode 100755
index 000000000..7d7ec9783
--- /dev/null
+++ b/custos-utilities/ide-integration/src/main/containers/init/mysql/scripts/bash/init-db.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+echo "Creating databases and users..."
+
+mysql -u root -p"$MYSQL_ROOT_PASSWORD" <<-EOSQL
+ CREATE DATABASE IF NOT EXISTS core_services_db;
+ CREATE DATABASE IF NOT EXISTS keycloak;
+ CREATE USER IF NOT EXISTS 'admin'@'%' IDENTIFIED BY 'admin';
+ GRANT ALL PRIVILEGES ON core_services_db.* TO 'admin'@'%';
+ GRANT ALL PRIVILEGES ON keycloak.* TO 'admin'@'%';
+ FLUSH PRIVILEGES;
+EOSQL
+
+echo "Databases and users created"