From 7af2dcc6a1bc0a1f1d3f34d53f6fa93a60e9d074 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Mon, 29 Jul 2024 14:38:03 +0000
Subject: [PATCH] Dev

---
 .docker/.env                                  |   6 +++---
 .docker/config/.gitkeep                       |   0
 .docker/dist.tar.gz                           | Bin 0 -> 9911 bytes
 .docker/docker-compose.yml                    |  18 ++++++++----------
 .gitignore                                    |   1 +
 .../{setup-schema.sql => 1_setup-schema.sql}  |   0
 .../{setup-data.sql => 2_setup-data.sql}      |   0
 dbrepo-search-service/init/app.py             |  11 +++++------
 docker-compose.yml                            |   6 ++----
 install.sh                                    |  15 +++------------
 make/dev.mk                                   |  12 ++++++++++++
 11 files changed, 34 insertions(+), 35 deletions(-)
 create mode 100644 .docker/config/.gitkeep
 create mode 100644 .docker/dist.tar.gz
 rename dbrepo-metadata-db/{setup-schema.sql => 1_setup-schema.sql} (100%)
 rename dbrepo-metadata-db/{setup-data.sql => 2_setup-data.sql} (100%)

diff --git a/.docker/.env b/.docker/.env
index 0cba4f0b8c..16b95b4b46 100644
--- a/.docker/.env
+++ b/.docker/.env
@@ -1,6 +1,6 @@
 # general
-BASE_URL=https://example.com
-ADMIN_EMAIL=support@example.com
+BASE_URL=http://localhost
+ADMIN_EMAIL=support@localhost
 # password for the identity service admin user
 IDENTITY_SERVICE_ADMIN_PASSWORD=admin
 # password for the auth service admin user
@@ -9,7 +9,7 @@ AUTH_SERVICE_ADMIN_PASSWORD=admin
 METADATA_DB_PASSWORD=dbrepo
 DATA_DB_PASSWORD=dbrepo
 AUTH_DB_PASSWORD=dbrepo
-SEARCH_DB_PASSWORD=dbrepo
+SEARCH_DB_PASSWORD=admin
 # storage service
 S3_SECRET_ACCESS_KEY=seaweedfsadmin
 # internal admin user, requires a change of the value of auth_ldap.dn_lookup_bind.password in dist/rabbitmq.conf
diff --git a/.docker/config/.gitkeep b/.docker/config/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/.docker/dist.tar.gz b/.docker/dist.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..8de17c93ea61448bb57c66d16d836b7340fa000b
GIT binary patch
literal 9911
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
DA$wvy

literal 0
HcmV?d00001

diff --git a/.docker/docker-compose.yml b/.docker/docker-compose.yml
index 2b11669278..167523e721 100644
--- a/.docker/docker-compose.yml
+++ b/.docker/docker-compose.yml
@@ -1,5 +1,3 @@
-version: "3.6"
-
 volumes:
   metadata-db-data:
   data-db-data:
@@ -18,8 +16,8 @@ services:
     image: docker.io/bitnami/mariadb:11.1.3-debian-11-r6
     volumes:
       - metadata-db-data:/bitnami/mariadb
-      - ./dist/setup-schema.sql:/docker-entrypoint-initdb.d/1_setup-schema.sql
-      - ./dist/setup-data.sql:/docker-entrypoint-initdb.d/2_setup-data.sql
+      - ./config/1_setup-schema.sql:/docker-entrypoint-initdb.d/1_setup-schema.sql
+      - ./config/2_setup-data.sql:/docker-entrypoint-initdb.d/2_setup-data.sql
     ports:
       - "3306:3306"
     environment:
@@ -195,10 +193,10 @@ services:
     ports:
       - 5672:5672
     volumes:
-      - ./dist/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
-      - ./dist/advanced.config:/etc/rabbitmq/advanced.config
-      - ./dist/enabled_plugins:/etc/rabbitmq/enabled_plugins
-      - ./dist/definitions.json:/app/definitions.json
+      - ./config/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
+      - ./config/advanced.config:/etc/rabbitmq/advanced.config
+      - ./config/enabled_plugins:/etc/rabbitmq/enabled_plugins
+      - ./config/definitions.json:/app/definitions.json
       - broker-service-data:/bitnami/rabbitmq/mnesia
     depends_on:
       dbrepo-identity-service:
@@ -300,7 +298,7 @@ services:
       - "80:80"
       - "443:443"
     volumes:
-      - ./dist/dbrepo.conf:/etc/nginx/conf.d/default.conf
+      - ./config/dbrepo.conf:/etc/nginx/conf.d/default.conf
     depends_on:
       dbrepo-analyse-service:
         condition: service_healthy
@@ -363,7 +361,7 @@ services:
     image: docker.io/chrislusf/seaweedfs:3.59
     command: [ "server", "-dir=/data", "-s3", "-s3.port=9000", "-s3.config=/app/s3_config.json", "-metricsPort=9091" ]
     volumes:
-      - ./dist/s3_config.json:/app/s3_config.json
+      - ./config/s3_config.json:/app/s3_config.json
       - storage-service-data:/data
     ports:
       - "9000:9000"
diff --git a/.gitignore b/.gitignore
index 78a833095c..b8d8c03487 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,6 +13,7 @@ build/
 tmp.yaml
 .docs/.swagger/api-*
 .scannerwork/
+.docker/config/*
 
 # docs
 .docs/.swagger/dist/
diff --git a/dbrepo-metadata-db/setup-schema.sql b/dbrepo-metadata-db/1_setup-schema.sql
similarity index 100%
rename from dbrepo-metadata-db/setup-schema.sql
rename to dbrepo-metadata-db/1_setup-schema.sql
diff --git a/dbrepo-metadata-db/setup-data.sql b/dbrepo-metadata-db/2_setup-data.sql
similarity index 100%
rename from dbrepo-metadata-db/setup-data.sql
rename to dbrepo-metadata-db/2_setup-data.sql
diff --git a/dbrepo-search-service/init/app.py b/dbrepo-search-service/init/app.py
index 4c8bde0bf9..fccbd92fea 100644
--- a/dbrepo-search-service/init/app.py
+++ b/dbrepo-search-service/init/app.py
@@ -2,7 +2,6 @@ import json
 import os
 import logging
 from typing import List
-from flask import current_app
 
 import opensearchpy.exceptions
 from dbrepo.RestClient import RestClient
@@ -49,11 +48,11 @@ class App:
     search_instance: OpenSearch = None
 
     def __init__(self):
-        self.metadata_service_endpoint = current_app.config["METADATA_SERVICE_ENDPOINT"]
-        self.search_host = current_app.config["OPENSEARCH_HOST"]
-        self.search_port = int(current_app.config["OPENSEARCH_PORT"])
-        self.search_username = current_app.config["OPENSEARCH_USERNAME"]
-        self.search_password = current_app.config["OPENSEARCH_PASSWORD"]
+        self.metadata_service_endpoint = os.getenv("METADATA_SERVICE_ENDPOINT")
+        self.search_host = os.getenv("OPENSEARCH_HOST")
+        self.search_port = int(os.getenv("OPENSEARCH_PORT"))
+        self.search_username = os.getenv("OPENSEARCH_USERNAME")
+        self.search_password = os.getenv("OPENSEARCH_PASSWORD")
 
     def _instance(self) -> OpenSearch:
         """
diff --git a/docker-compose.yml b/docker-compose.yml
index aa869d7bc2..1e77531c42 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,5 +1,3 @@
-version: "3.6"
-
 volumes:
   metadata-db-data:
   data-db-data:
@@ -18,8 +16,8 @@ services:
     image: docker.io/bitnami/mariadb:11.1.3-debian-11-r6
     volumes:
       - metadata-db-data:/bitnami/mariadb
-      - ./dbrepo-metadata-db/setup-schema.sql:/docker-entrypoint-initdb.d/1_setup-schema.sql
-      - ./dbrepo-metadata-db/setup-data.sql:/docker-entrypoint-initdb.d/2_setup-data.sql
+      - ./dbrepo-metadata-db/1_setup-schema.sql:/docker-entrypoint-initdb.d/1_setup-schema.sql
+      - ./dbrepo-metadata-db/2_setup-data.sql:/docker-entrypoint-initdb.d/2_setup-data.sql
     ports:
       - "3306:3306"
     environment:
diff --git a/install.sh b/install.sh
index 1dc5cdf82b..a9fcf6d10d 100644
--- a/install.sh
+++ b/install.sh
@@ -41,7 +41,7 @@ if [[ $SKIP_CHECKS -eq 0 ]] && [[ $DOWNLOAD_ONLY -ne 1 ]]; then
   else
     echo "RAM ${RAM}GB OK"
   fi
-  MAX_MAP_COUNT=$(cat /etc/sysctl.conf | grep -oP "vm.max_map_count=.*" | grep -oP "[0-9]+")
+  MAX_MAP_COUNT=$(cat /proc/sys/vm/max_map_count)
   if [[ $MAX_MAP_COUNT -lt $MIN_MAP_COUNT ]]; then
     echo "You do not have enough max. map counts:"
     echo ""
@@ -58,17 +58,8 @@ fi
 
 # environment
 echo "[🚀] Gathering environment for version ${VERSION} ..."
-mkdir -p ./dist
-curl -sSL -o ./docker-compose.yml "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/.docker/docker-compose.yml"
-curl -sSL -o ./.env "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/.docker/.env"
-curl -sSL -o ./dist/1_setup-schema.sql "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/dbrepo-metadata-db/setup-schema.sql"
-curl -sSL -o ./dist/2_setup-data.sql "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/dbrepo-metadata-db/setup-data.sql"
-curl -sSL -o ./dist/rabbitmq.conf "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/dbrepo-broker-service/rabbitmq.conf"
-curl -sSL -o ./dist/enabled_plugins "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/dbrepo-broker-service/enabled_plugins"
-curl -sSL -o ./dist/definitions.json "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/dbrepo-broker-service/definitions.json"
-curl -sSL -o ./dist/advanced.config "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/dbrepo-broker-service/advanced.config"
-curl -sSL -o ./dist/dbrepo.conf "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/dbrepo-gateway-service/dbrepo.conf"
-curl -sSL -o ./dist/s3_config.json "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/dbrepo-storage-service/s3_config.json"
+curl -sSL -o ./dist.tar.gz "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/.docker/dist.tar.gz"
+tar xzfv ./dist.tar.gz
 
 if [[ $DOWNLOAD_ONLY -eq 1 ]]; then
   echo "[🎉] Successfully downloaded environment!"
diff --git a/make/dev.mk b/make/dev.mk
index 14eba11d52..fa3c71a537 100644
--- a/make/dev.mk
+++ b/make/dev.mk
@@ -8,3 +8,15 @@ start-dev: build-images ## Start the development deployment.
 .PHONY: stop-dev
 stop-dev: ## Stop the development deployment and remove all data.
 	docker compose down
+
+.PHONY: package-config
+package-config: ## Package the config files
+	cp ./dbrepo-metadata-db/1_setup-schema.sql ./.docker/config
+	cp ./dbrepo-metadata-db/2_setup-data.sql ./.docker/config
+	cp ./dbrepo-broker-service/rabbitmq.conf ./.docker/config
+	cp ./dbrepo-broker-service/enabled_plugins ./.docker/config
+	cp ./dbrepo-broker-service/definitions.json ./.docker/config
+	cp ./dbrepo-broker-service/advanced.config ./.docker/config
+	cp ./dbrepo-storage-service/s3_config.json ./.docker/config
+	cp ./dbrepo-gateway-service/dbrepo.conf ./.docker/config
+	cd ./.docker && tar czfv ./dist.tar.gz ./docker-compose.yml ./.env ./config
-- 
GitLab