From 50ad7937cc8f57150b08794e76ca9b63e4c7a6d0 Mon Sep 17 00:00:00 2001 From: Pierre Delpy Date: Fri, 6 Nov 2026 13:43:45 +0100 Subject: [PATCH] Add exporter and reporter to the itcc project Enabled with ENABLE_EXPORTER. The export template itcc and the quality report itcc-qb come with the dktk-exporter and dktk-reporter images, like the cce templates. All routes are behind the auth middleware, because export and quality report contain local identifiers. --- itcc/modules/exporter-compose.yml | 56 +++++++++++++++++++++++++++++++ itcc/modules/exporter-setup.sh | 8 +++++ 2 files changed, 64 insertions(+) create mode 100644 itcc/modules/exporter-compose.yml create mode 100644 itcc/modules/exporter-setup.sh diff --git a/itcc/modules/exporter-compose.yml b/itcc/modules/exporter-compose.yml new file mode 100644 index 0000000..b2eb836 --- /dev/null +++ b/itcc/modules/exporter-compose.yml @@ -0,0 +1,56 @@ +services: + exporter: + image: docker.verbis.dkfz.de/ccp/dktk-exporter:latest + container_name: bridgehead-itcc-exporter + environment: + JAVA_OPTS: "-Xms1G -Xmx8G -XX:+UseG1GC" + LOG_LEVEL: "INFO" + EXPORTER_API_KEY: "${EXPORTER_API_KEY}" # Set in exporter-setup.sh + CROSS_ORIGINS: "https://${HOST}" + EXPORTER_DB_USER: "exporter" + EXPORTER_DB_PASSWORD: "${EXPORTER_DB_PASSWORD}" # Set in exporter-setup.sh + EXPORTER_DB_URL: "jdbc:postgresql://exporter-db:5432/exporter" + HTTP_RELATIVE_PATH: "/itcc-exporter" + SITE: "${SITE_ID}" + HTTP_SERVLET_REQUEST_SCHEME: "https" + labels: + - "traefik.enable=true" + - "traefik.http.routers.exporter_itcc.rule=Host(`${HOST}`) && PathPrefix(`/itcc-exporter`)" + - "traefik.http.services.exporter_itcc.loadbalancer.server.port=8092" + - "traefik.http.routers.exporter_itcc.tls=true" + - "traefik.http.middlewares.exporter_itcc_strip.stripprefix.prefixes=/itcc-exporter" + - "traefik.http.routers.exporter_itcc.middlewares=exporter_itcc_strip,auth" + volumes: + - "/var/cache/bridgehead/itcc/exporter-files:/app/exporter-files/output" + + exporter-db: + image: docker.verbis.dkfz.de/cache/postgres:${POSTGRES_TAG} + container_name: bridgehead-itcc-exporter-db + environment: + POSTGRES_USER: "exporter" + POSTGRES_PASSWORD: "${EXPORTER_DB_PASSWORD}" # Set in exporter-setup.sh + POSTGRES_DB: "exporter" + volumes: + - "/var/cache/bridgehead/itcc/exporter-db:/var/lib/postgresql/data" + + reporter: + image: docker.verbis.dkfz.de/ccp/dktk-reporter:latest + container_name: bridgehead-itcc-reporter + environment: + JAVA_OPTS: "-Xms1G -Xmx8G -XX:+UseG1GC" + LOG_LEVEL: "INFO" + CROSS_ORIGINS: "https://${HOST}" + HTTP_RELATIVE_PATH: "/itcc-reporter" + SITE: "${SITE_ID}" + EXPORTER_API_KEY: "${EXPORTER_API_KEY}" # Set in exporter-setup.sh + EXPORTER_URL: "http://exporter:8092" + HTTP_SERVLET_REQUEST_SCHEME: "https" + volumes: + - "/var/cache/bridgehead/itcc/reporter-files:/app/reports" + labels: + - "traefik.enable=true" + - "traefik.http.routers.reporter_itcc.rule=Host(`${HOST}`) && PathPrefix(`/itcc-reporter`)" + - "traefik.http.services.reporter_itcc.loadbalancer.server.port=8095" + - "traefik.http.routers.reporter_itcc.tls=true" + - "traefik.http.middlewares.reporter_itcc_strip.stripprefix.prefixes=/itcc-reporter" + - "traefik.http.routers.reporter_itcc.middlewares=reporter_itcc_strip,auth" diff --git a/itcc/modules/exporter-setup.sh b/itcc/modules/exporter-setup.sh new file mode 100644 index 0000000..d49a58a --- /dev/null +++ b/itcc/modules/exporter-setup.sh @@ -0,0 +1,8 @@ +#!/bin/bash -e + +if [ "$ENABLE_EXPORTER" == true ]; then + log INFO "Exporter setup detected -- will start Exporter and Reporter services." + OVERRIDE+=" -f ./$PROJECT/modules/exporter-compose.yml" + EXPORTER_DB_PASSWORD="$(generate_simple_password 'exporter-db')" + EXPORTER_API_KEY="$(generate_simple_password 'exporter')" +fi