From 03373d20b7e5221b075d826a80bb39e7debd1e32 Mon Sep 17 00:00:00 2001 From: NicolasH2604 Date: Wed, 5 Feb 2025 11:08:38 +0100 Subject: [PATCH] Implementation of automatic server registration in pgadmin --- .env.template | 2 +- .github/workflows/cd.yml | 3 +++ docker-compose.yml | 18 +++++++++++++++--- pgadmin_servers.json.template | 13 +++++++++++++ src/dataland_qa_lab/bin/server.py | 2 +- 5 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 pgadmin_servers.json.template diff --git a/.env.template b/.env.template index f13d67c..3b735cc 100644 --- a/.env.template +++ b/.env.template @@ -15,4 +15,4 @@ POSTGRES_USER="${POSTGRES_USER}" PGADMIN_DEFAULT_EMAIL="${PGADMIN_DEFAULT_EMAIL}" PGADMIN_DEFAULT_PASSWORD="${PGADMIN_DEFAULT_PASSWORD}" -DATABASE_CONNECTION_STRING="postgresql+pg8000://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/dataland_qa_lab" +DATABASE_CONNECTION_STRING="postgresql+pg8000://${POSTGRES_USER}:${POSTGRES_PASSWORD}@data_reviewer-db:5432/dataland_qa_lab" diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index d35dca2..0663a41 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -77,6 +77,9 @@ jobs: - name: Push files for deployment run: scp docker-compose.yml ubuntu@"$SERVER_URL":~/qalab/docker-compose.yml + - name: Push servers.json for pgadmin + run: scp pgadmin_servers.json.template ubuntu@"$SERVER_URL":~/qalab/servers.json + - name: Create .env file for deployment run: envsubst < .env.template | ssh ubuntu@"$SERVER_URL" "cat > ~/qalab/.env" diff --git a/docker-compose.yml b/docker-compose.yml index a619adf..9253e5f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,6 +11,11 @@ services: AZURE_OPENAI_ENDPOINT: ${AZURE_OPENAI_ENDPOINT} AZURE_DOCINTEL_API_KEY: ${AZURE_DOCINTEL_API_KEY} AZURE_DOCINTEL_ENDPOINT: ${AZURE_DOCINTEL_ENDPOINT} + PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL} + PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + DATABASE_CONNECTION_STRING: ${DATABASE_CONNECTION_STRING} qa-lab-server-prod: profiles: - prod @@ -22,12 +27,17 @@ services: AZURE_OPENAI_ENDPOINT: ${AZURE_OPENAI_ENDPOINT} AZURE_DOCINTEL_API_KEY: ${AZURE_DOCINTEL_API_KEY} AZURE_DOCINTEL_ENDPOINT: ${AZURE_DOCINTEL_ENDPOINT} - database: + PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL} + PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + DATABASE_CONNECTION_STRING: ${DATABASE_CONNECTION_STRING} + data_reviewer-db: image: postgres:17.2 restart: always environment: - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: dataland_qa_lab volumes: - pgdata:/var/lib/postgresql/data @@ -41,8 +51,10 @@ services: environment: PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL} PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD} + volumes: + - ./servers.json:/pgadmin4/servers.json ports: - "127.0.0.1:5050:80" volumes: - pgdata: \ No newline at end of file + pgdata: diff --git a/pgadmin_servers.json.template b/pgadmin_servers.json.template new file mode 100644 index 0000000..91a4bba --- /dev/null +++ b/pgadmin_servers.json.template @@ -0,0 +1,13 @@ +{ + "Servers": { + "1": { + "Name": "dataland_qa_lab", + "Group": "Servers", + "Host": "data_reviewer-db", + "Port": 5432, + "MaintenanceDB": "dataland_qa_lab", + "Username": "data_reviewer", + "SSLMode" : "prefer" + } + } +} \ No newline at end of file diff --git a/src/dataland_qa_lab/bin/server.py b/src/dataland_qa_lab/bin/server.py index b61a40a..b690ee4 100644 --- a/src/dataland_qa_lab/bin/server.py +++ b/src/dataland_qa_lab/bin/server.py @@ -15,7 +15,7 @@ def main(single_pass_e2e: bool = False) -> None: logger.info("Still running") if single_pass_e2e: break - time.sleep(10) + time.sleep(30) if __name__ == "__main__":