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"