diff --git a/README.md b/README.md index c2a4d315..7d27b6b7 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ $ cd deployment ## Docker compose deployment > **Important** -> [Docker Compose v2](https://docs.docker.com/compose/install/standalone/) is mandatory. +> [Docker Compose v2.20.0+](https://docs.docker.com/compose/install/standalone/) is mandatory. > _See instructions in [sub-section](#installing--updating-docker-compose-to-v2)_ diff --git a/docker-compose/allowed-issuers.yml b/docker-compose/_base/config/allowed-issuers.yml similarity index 100% rename from docker-compose/allowed-issuers.yml rename to docker-compose/_base/config/allowed-issuers.yml diff --git a/docker-compose/env.json b/docker-compose/_base/config/apps/env.json similarity index 100% rename from docker-compose/env.json rename to docker-compose/_base/config/apps/env.json diff --git a/docker-compose/study/gridadmin-app-idpSettings.json b/docker-compose/_base/config/apps/gridadmin-app-idpSettings.json similarity index 100% rename from docker-compose/study/gridadmin-app-idpSettings.json rename to docker-compose/_base/config/apps/gridadmin-app-idpSettings.json diff --git a/docker-compose/dynamic-mapping/griddyna-app-idpSettings.json b/docker-compose/_base/config/apps/griddyna-app-idpSettings.json similarity index 100% rename from docker-compose/dynamic-mapping/griddyna-app-idpSettings.json rename to docker-compose/_base/config/apps/griddyna-app-idpSettings.json diff --git a/docker-compose/study/gridexplore-app-idpSettings.json b/docker-compose/_base/config/apps/gridexplore-app-idpSettings.json similarity index 100% rename from docker-compose/study/gridexplore-app-idpSettings.json rename to docker-compose/_base/config/apps/gridexplore-app-idpSettings.json diff --git a/docker-compose/study/gridstudy-app-idpSettings.json b/docker-compose/_base/config/apps/gridstudy-app-idpSettings.json similarity index 100% rename from docker-compose/study/gridstudy-app-idpSettings.json rename to docker-compose/_base/config/apps/gridstudy-app-idpSettings.json diff --git a/docker-compose/technical/grafana/dashboards/alerts_summary.json b/docker-compose/_base/config/grafana/dashboards/alerts_summary.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/alerts_summary.json rename to docker-compose/_base/config/grafana/dashboards/alerts_summary.json diff --git a/docker-compose/technical/grafana/dashboards/application_pools.json b/docker-compose/_base/config/grafana/dashboards/application_pools.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/application_pools.json rename to docker-compose/_base/config/grafana/dashboards/application_pools.json diff --git a/docker-compose/technical/grafana/dashboards/cases_metrics.json b/docker-compose/_base/config/grafana/dashboards/cases_metrics.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/cases_metrics.json rename to docker-compose/_base/config/grafana/dashboards/cases_metrics.json diff --git a/docker-compose/technical/grafana/dashboards/computations_metrics.json b/docker-compose/_base/config/grafana/dashboards/computations_metrics.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/computations_metrics.json rename to docker-compose/_base/config/grafana/dashboards/computations_metrics.json diff --git a/docker-compose/technical/grafana/dashboards/dashboard.yml b/docker-compose/_base/config/grafana/dashboards/dashboard.yml similarity index 100% rename from docker-compose/technical/grafana/dashboards/dashboard.yml rename to docker-compose/_base/config/grafana/dashboards/dashboard.yml diff --git a/docker-compose/technical/grafana/dashboards/db_connection_pools/all_services.json b/docker-compose/_base/config/grafana/dashboards/db_connection_pools/all_services.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/db_connection_pools/all_services.json rename to docker-compose/_base/config/grafana/dashboards/db_connection_pools/all_services.json diff --git a/docker-compose/technical/grafana/dashboards/db_connection_pools/by_service.json b/docker-compose/_base/config/grafana/dashboards/db_connection_pools/by_service.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/db_connection_pools/by_service.json rename to docker-compose/_base/config/grafana/dashboards/db_connection_pools/by_service.json diff --git a/docker-compose/technical/grafana/dashboards/elasticsearch.json b/docker-compose/_base/config/grafana/dashboards/elasticsearch.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/elasticsearch.json rename to docker-compose/_base/config/grafana/dashboards/elasticsearch.json diff --git a/docker-compose/technical/grafana/dashboards/external_services_supervision.json b/docker-compose/_base/config/grafana/dashboards/external_services_supervision.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/external_services_supervision.json rename to docker-compose/_base/config/grafana/dashboards/external_services_supervision.json diff --git a/docker-compose/technical/grafana/dashboards/logs.json b/docker-compose/_base/config/grafana/dashboards/logs.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/logs.json rename to docker-compose/_base/config/grafana/dashboards/logs.json diff --git a/docker-compose/technical/grafana/dashboards/network_conversion_metrics.json b/docker-compose/_base/config/grafana/dashboards/network_conversion_metrics.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/network_conversion_metrics.json rename to docker-compose/_base/config/grafana/dashboards/network_conversion_metrics.json diff --git a/docker-compose/technical/grafana/dashboards/network_modification_metrics.json b/docker-compose/_base/config/grafana/dashboards/network_modification_metrics.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/network_modification_metrics.json rename to docker-compose/_base/config/grafana/dashboards/network_modification_metrics.json diff --git a/docker-compose/technical/grafana/dashboards/network_storage_metrics.json b/docker-compose/_base/config/grafana/dashboards/network_storage_metrics.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/network_storage_metrics.json rename to docker-compose/_base/config/grafana/dashboards/network_storage_metrics.json diff --git a/docker-compose/technical/grafana/dashboards/pods_supervision.json b/docker-compose/_base/config/grafana/dashboards/pods_supervision.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/pods_supervision.json rename to docker-compose/_base/config/grafana/dashboards/pods_supervision.json diff --git a/docker-compose/technical/grafana/dashboards/postgres.json b/docker-compose/_base/config/grafana/dashboards/postgres.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/postgres.json rename to docker-compose/_base/config/grafana/dashboards/postgres.json diff --git a/docker-compose/technical/grafana/dashboards/rabbitmq.json b/docker-compose/_base/config/grafana/dashboards/rabbitmq.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/rabbitmq.json rename to docker-compose/_base/config/grafana/dashboards/rabbitmq.json diff --git a/docker-compose/technical/grafana/dashboards/service-pods-metrics.json b/docker-compose/_base/config/grafana/dashboards/service-pods-metrics.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/service-pods-metrics.json rename to docker-compose/_base/config/grafana/dashboards/service-pods-metrics.json diff --git a/docker-compose/technical/grafana/dashboards/stateestimation_orchestrator_metrics.json b/docker-compose/_base/config/grafana/dashboards/stateestimation_orchestrator_metrics.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/stateestimation_orchestrator_metrics.json rename to docker-compose/_base/config/grafana/dashboards/stateestimation_orchestrator_metrics.json diff --git a/docker-compose/technical/grafana/dashboards/users_metrics.json b/docker-compose/_base/config/grafana/dashboards/users_metrics.json similarity index 100% rename from docker-compose/technical/grafana/dashboards/users_metrics.json rename to docker-compose/_base/config/grafana/dashboards/users_metrics.json diff --git a/docker-compose/technical/grafana/datasources/datasource.yml b/docker-compose/_base/config/grafana/datasources/datasource.yml similarity index 100% rename from docker-compose/technical/grafana/datasources/datasource.yml rename to docker-compose/_base/config/grafana/datasources/datasource.yml diff --git a/docker-compose/technical/logstash.conf b/docker-compose/_base/config/logstash/logstash.conf similarity index 100% rename from docker-compose/technical/logstash.conf rename to docker-compose/_base/config/logstash/logstash.conf diff --git a/docker-compose/technical/pipelines.yml b/docker-compose/_base/config/logstash/pipelines.yml similarity index 100% rename from docker-compose/technical/pipelines.yml rename to docker-compose/_base/config/logstash/pipelines.yml diff --git a/docker-compose/apps-metadata.json b/docker-compose/_base/config/metadata/apps-metadata.json similarity index 100% rename from docker-compose/apps-metadata.json rename to docker-compose/_base/config/metadata/apps-metadata.json diff --git a/docker-compose/gridapps-metadata-httpd.conf b/docker-compose/_base/config/metadata/gridapps-metadata-httpd.conf similarity index 100% rename from docker-compose/gridapps-metadata-httpd.conf rename to docker-compose/_base/config/metadata/gridapps-metadata-httpd.conf diff --git a/docker-compose/version.json b/docker-compose/_base/config/metadata/version.json similarity index 100% rename from docker-compose/version.json rename to docker-compose/_base/config/metadata/version.json diff --git a/docker-compose/technical/Dockerfile-postgres b/docker-compose/_base/config/postgresql/Dockerfile-postgres similarity index 100% rename from docker-compose/technical/Dockerfile-postgres rename to docker-compose/_base/config/postgresql/Dockerfile-postgres diff --git a/docker-compose/technical/create-postgres-databases.sh b/docker-compose/_base/config/postgresql/create-postgres-databases.sh old mode 100755 new mode 100644 similarity index 100% rename from docker-compose/technical/create-postgres-databases.sh rename to docker-compose/_base/config/postgresql/create-postgres-databases.sh diff --git a/docker-compose/technical/init-databases.sh b/docker-compose/_base/config/postgresql/init-databases.sh old mode 100755 new mode 100644 similarity index 100% rename from docker-compose/technical/init-databases.sh rename to docker-compose/_base/config/postgresql/init-databases.sh diff --git a/docker-compose/technical/init-geo-data.sh b/docker-compose/_base/config/postgresql/init-geo-data.sh old mode 100755 new mode 100644 similarity index 100% rename from docker-compose/technical/init-geo-data.sh rename to docker-compose/_base/config/postgresql/init-geo-data.sh diff --git a/docker-compose/technical/init-lines-catalog.sh b/docker-compose/_base/config/postgresql/init-lines-catalog.sh old mode 100755 new mode 100644 similarity index 100% rename from docker-compose/technical/init-lines-catalog.sh rename to docker-compose/_base/config/postgresql/init-lines-catalog.sh diff --git a/docker-compose/technical/prometheus.yml b/docker-compose/_base/config/prometheus.yml similarity index 100% rename from docker-compose/technical/prometheus.yml rename to docker-compose/_base/config/prometheus.yml diff --git a/docker-compose/technical/servers_pgadmin.json b/docker-compose/_base/config/servers_pgadmin.json similarity index 100% rename from docker-compose/technical/servers_pgadmin.json rename to docker-compose/_base/config/servers_pgadmin.json diff --git a/docker-compose/_base/docker-compose.fronts.yml b/docker-compose/_base/docker-compose.fronts.yml new file mode 100644 index 00000000..bba05dd9 --- /dev/null +++ b/docker-compose/_base/docker-compose.fronts.yml @@ -0,0 +1,92 @@ +services: + gridadmin-app: + profiles: + - all + - suite + - study + image: gridsuite/gridadmin-app:latest + ports: + - 82:8080 + volumes: + - ./config/apps/gridadmin-app-idpSettings.json:/opt/bitnami/apache/htdocs/gridadmin/idpSettings.json:Z + - ./config/apps/env.json:/opt/bitnami/apache/htdocs/gridadmin/env.json:Z + depends_on: + logspout: + condition: "service_started" + required: false + memswap_limit: 128m + deploy: + resources: + limits: + memory: 128m + restart: unless-stopped + + gridexplore-app: + profiles: + - all + - suite + - study + - study-light + - dynamic-simulation + image: gridsuite/gridexplore-app:latest + ports: + - 80:8080 + volumes: + - ./config/apps/gridexplore-app-idpSettings.json:/opt/bitnami/apache/htdocs/gridexplore/idpSettings.json:Z + - ./config/apps/env.json:/opt/bitnami/apache/htdocs/gridexplore/env.json:Z + depends_on: + logspout: + condition: "service_started" + required: false + memswap_limit: 128m + deploy: + resources: + limits: + memory: 128m + restart: unless-stopped + + gridstudy-app: + profiles: + - all + - suite + - study + - dynamic-simulation + image: gridsuite/gridstudy-app:latest + ports: + - 84:8080 + volumes: + - ./config/apps/gridstudy-app-idpSettings.json:/opt/bitnami/apache/htdocs/gridstudy/idpSettings.json:Z + - ./config/apps/env.json:/opt/bitnami/apache/htdocs/gridstudy/env.json:Z + depends_on: + logspout: + condition: "service_started" + required: false + memswap_limit: 128m + deploy: + resources: + limits: + memory: 128m + restart: unless-stopped + + griddyna-app: + profiles: + - all + - suite + - dynamic-mapping + - dynamic-simulation + image: gridsuite/griddyna-app:latest + ports: + - 83:8080 + volumes: + - ./config/apps/griddyna-app-idpSettings.json:/opt/bitnami/apache/htdocs/griddyna/idpSettings.json:Z + - ./config/apps/env.json:/opt/bitnami/apache/htdocs/griddyna/env.json:Z + depends_on: + logspout: + condition: "service_started" + required: false + memswap_limit: 128m + deploy: + resources: + limits: + memory: 128m + restart: unless-stopped diff --git a/docker-compose/technical/docker-compose.technical.yml b/docker-compose/_base/docker-compose.infra.yml similarity index 50% rename from docker-compose/technical/docker-compose.technical.yml rename to docker-compose/_base/docker-compose.infra.yml index e305a09f..423e58bf 100644 --- a/docker-compose/technical/docker-compose.technical.yml +++ b/docker-compose/_base/docker-compose.infra.yml @@ -1,6 +1,95 @@ -version: '4.0' - services: + mock-user-service: + profiles: + - all + - suite + - study + - study-light + - dynamic-mapping + - dynamic-simulation + - import + image: gridsuite/oidc-mock-server + ports: + - 9090:9090 + environment: + - PORT=9090 + - ISSUER_HOST=172.17.0.1:9090 + - USERS_PROFILE=UTILISATEURS|ADMIN|ADMIN_EXPLORE + - CLIENT_COUNT=8 + + # Client IDs for containers (grid*-app-idpSettings.json) + - CLIENT_ID=gridexplore-client + - CLIENT_REDIRECT_URI=http://localhost:80/sign-in-callback + - CLIENT_LOGOUT_REDIRECT_URI=http://localhost:80/logout-callback + - CLIENT_SILENT_REDIRECT_URI=http://localhost:80/silent-renew-callback + + - CLIENT_ID_2=gridadmin-client + - CLIENT_REDIRECT_URI_2=http://localhost:82/sign-in-callback + - CLIENT_LOGOUT_REDIRECT_URI_2=http://localhost:82/logout-callback + - CLIENT_SILENT_REDIRECT_URI_2=http://localhost:82/silent-renew-callback + + - CLIENT_ID_3=griddyna-client + - CLIENT_REDIRECT_URI_3=http://localhost:83/sign-in-callback + - CLIENT_LOGOUT_REDIRECT_URI_3=http://localhost:83/logout-callback + - CLIENT_SILENT_REDIRECT_URI_3=http://localhost:83/silent-renew-callback + + - CLIENT_ID_4=gridstudy-client + - CLIENT_REDIRECT_URI_4=http://localhost:84/sign-in-callback + - CLIENT_LOGOUT_REDIRECT_URI_4=http://localhost:84/logout-callback + - CLIENT_SILENT_REDIRECT_URI_4=http://localhost:84/silent-renew-callback + + # Client IDs for local dev (grid*-app/public/idpSettings.json) + - CLIENT_ID_5=gridexplore-local + - CLIENT_REDIRECT_URI_5=http://localhost:3000/sign-in-callback + - CLIENT_LOGOUT_REDIRECT_URI_5=http://localhost:3000/logout-callback + - CLIENT_SILENT_REDIRECT_URI_5=http://localhost:3000/silent-renew-callback + + - CLIENT_ID_6=gridadmin-local + - CLIENT_REDIRECT_URI_6=http://localhost:3002/sign-in-callback + - CLIENT_LOGOUT_REDIRECT_URI_6=http://localhost:3002/logout-callback + - CLIENT_SILENT_REDIRECT_URI_6=http://localhost:3002/silent-renew-callback + + - CLIENT_ID_7=griddyna-local + - CLIENT_REDIRECT_URI_7=http://localhost:3003/sign-in-callback + - CLIENT_LOGOUT_REDIRECT_URI_7=http://localhost:3003/logout-callback + - CLIENT_SILENT_REDIRECT_URI_7=http://localhost:3003/silent-renew-callback + + - CLIENT_ID_8=gridstudy-local + - CLIENT_REDIRECT_URI_8=http://localhost:3004/sign-in-callback + - CLIENT_LOGOUT_REDIRECT_URI_8=http://localhost:3004/logout-callback + - CLIENT_SILENT_REDIRECT_URI_8=http://localhost:3004/silent-renew-callback + depends_on: + logspout: + condition: "service_started" + required: false + restart: unless-stopped + + apps-metadata-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-mapping + - dynamic-simulation + - import + image: bitnami/apache:2.4.55-debian-11-r3@sha256:bbe50190eb3bbf3be6f61318004480b3230846bfd52dec9286bd1862254c1719 + ports: + - 8070:8080 + volumes: + - ./config/metadata/apps-metadata.json:/opt/bitnami/apache/htdocs/apps-metadata.json:Z + - ./config/metadata/version.json:/opt/bitnami/apache/htdocs/version.json:Z + - ./config/metadata/gridapps-metadata-httpd.conf:/opt/bitnami/apache/conf/bitnami/bitnami.conf:Z + depends_on: + logspout: + condition: "service_started" + required: false + memswap_limit: 128m + deploy: + resources: + limits: + memory: 128m + restart: unless-stopped rabbitmq: image: rabbitmq:4.0.4-management @@ -14,16 +103,32 @@ services: required: false restart: unless-stopped + s3-storage: + image: minio/minio:RELEASE.2023-09-27T15-22-50Z + # need to override entrypoint to create the bucket, is there a simpler way ? + entrypoint: sh + # We couldn't find yet another way to conditionnally start or not the minio container. Better solution appreciated. + command: -c '[ "${STORAGE_TYPE-FS}" = "S3" ] || exit 0; mkdir -p /data/ws-bucket && /usr/bin/docker-entrypoint.sh server /data --console-address ":19090"' + ports: + - 19000:9000 + - 19090:19090 + environment: + - MINIO_ROOT_USER=s3username + - MINIO_ROOT_PASSWORD=s3password + volumes: + - $GRIDSUITE_DATABASES/cases_v1/miniodata:/data:Z + restart: on-failure + postgres: build: - context: $PWD/../technical + context: ./config/postgresql dockerfile: Dockerfile-postgres args: - http_proxy=${http_proxy-} - https_proxy=${https_proxy-} - no_proxy=${no_proxy-} ports: - - "5432:5432" + - 5432:5432 command: "/init-databases.sh -c listen_addresses='*' -c shared_preload_libraries='auto_explain' @@ -41,10 +146,10 @@ services: volumes: - $GRIDSUITE_DATABASES/postgres/data:/var/lib/postgresql/data:Z - $GRIDSUITE_DATABASES/init:/init-data:Z - - $PWD/../technical/create-postgres-databases.sh:/create-postgres-databases.sh:Z - - $PWD/../technical/init-databases.sh:/init-databases.sh:Z - - $PWD/../technical/init-geo-data.sh:/init-geo-data.sh:Z - - $PWD/../technical/init-lines-catalog.sh:/init-lines-catalog.sh:Z + - ./config/postgresql/create-postgres-databases.sh:/create-postgres-databases.sh:Z + - ./config/postgresql/init-databases.sh:/init-databases.sh:Z + - ./config/postgresql/init-geo-data.sh:/init-geo-data.sh:Z + - ./config/postgresql/init-lines-catalog.sh:/init-lines-catalog.sh:Z restart: unless-stopped postgres-exporter: @@ -53,7 +158,7 @@ services: - metrics image: prometheuscommunity/postgres-exporter:v0.15.0 ports: - - "9187:9187" + - 9187:9187 environment: - DATA_SOURCE_USER=postgres - DATA_SOURCE_PASS=postgres @@ -62,6 +167,20 @@ services: depends_on: - postgres + pgadmin: + profiles: + - all + - pgadmin + image: dpage/pgadmin4:latest + ports: + - 12080:80 + environment: + - PGADMIN_DEFAULT_EMAIL=admin@localhost.com + - PGADMIN_DEFAULT_PASSWORD=admin + volumes: + - ./config/servers_pgadmin.json:/pgadmin4/servers.json + restart: unless-stopped + elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.7.1 ports: @@ -83,10 +202,9 @@ services: - all - metrics image: prometheuscommunity/elasticsearch-exporter:v1.7.0 - command: - - '--es.uri=http://elasticsearch:9200' + command: --es.uri=http://elasticsearch:9200 ports: - - "9114:9114" + - 9114:9114 restart: unless-stopped depends_on: - elasticsearch @@ -110,8 +228,8 @@ services: - kibana image: docker.elastic.co/logstash/logstash:8.7.1 volumes: - - $PWD/../technical/pipelines.yml:/config/pipelines.yml:Z - - $PWD/../technical/logstash.conf:/usr/share/logstash/pipeline/logstash.conf:Z + - ./config/logstash/pipelines.yml:/config/pipelines.yml:Z + - ./config/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf:Z environment: - LOGSPOUT=ignore depends_on: @@ -142,36 +260,6 @@ services: - socat restart: unless-stopped - pgadmin: - profiles: - - all - - pgadmin - image: dpage/pgadmin4:latest - ports: - - "12080:80" - environment: - - PGADMIN_DEFAULT_EMAIL=admin@localhost.com - - PGADMIN_DEFAULT_PASSWORD=admin - volumes: - - $PWD/../technical/servers_pgadmin.json:/pgadmin4/servers.json - restart: unless-stopped - - s3-storage: - image: minio/minio:RELEASE.2023-09-27T15-22-50Z - # need to override entrypoint to create the bucket, is there a simpler way ? - entrypoint: sh - # We couldn't find yet another way to conditionnally start or not the minio container. Better solution appreciated. - command: -c '[ "${STORAGE_TYPE-FS}" = "S3" ] || exit 0; mkdir -p /data/ws-bucket && /usr/bin/docker-entrypoint.sh server /data --console-address ":19090"' - ports: - - "19000:9000" - - "19090:19090" - environment: - - MINIO_ROOT_USER=s3username - - MINIO_ROOT_PASSWORD=s3password - volumes: - - $GRIDSUITE_DATABASES/cases_v1/miniodata:/data:Z - restart: on-failure - prometheus: profiles: - all @@ -179,10 +267,10 @@ services: image: prom/prometheus:v2.28.1 command: --enable-feature=exemplar-storage volumes: - - $PWD/../technical/prometheus.yml:/prometheus/prometheus.yml:ro + - ./config/prometheus.yml:/prometheus/prometheus.yml:ro restart: unless-stopped ports: - - "8000:9090" + - 8000:9090 grafana: profiles: @@ -190,9 +278,9 @@ services: - metrics image: grafana/grafana:10.2.2 volumes: - - $PWD/../technical/grafana/datasources:/etc/grafana/provisioning/datasources:ro - - $PWD/../technical/grafana/dashboards:/etc/grafana/provisioning/dashboards:ro - - $PWD/../technical/grafana/alerting:/etc/grafana/provisioning/alerting:ro + - ./config/grafana/datasources:/etc/grafana/provisioning/datasources:ro + - ./config/grafana/dashboards:/etc/grafana/provisioning/dashboards:ro + - ./config/grafana/alerting:/etc/grafana/provisioning/alerting:ro restart: unless-stopped environment: - GF_AUTH_ANONYMOUS_ENABLED=true @@ -201,4 +289,4 @@ services: - GF_ANALYTICS_REPORTING_ENABLED=false - GF_ANALYTICS_CHECK_FOR_UPDATES=false ports: - - "7000:3000" + - 7000:3000 diff --git a/docker-compose/_base/docker-compose.servers.yml b/docker-compose/_base/docker-compose.servers.yml new file mode 100644 index 00000000..57d71a33 --- /dev/null +++ b/docker-compose/_base/docker-compose.servers.yml @@ -0,0 +1,960 @@ +services: + gateway: + profiles: + - all + - suite + - study + - study-light + - dynamic-mapping + - dynamic-simulation + - import + image: gridsuite/gateway:latest + ports: + - 9000:80 + volumes: + - ../../k8s/resources/common/config/gateway-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + - ./config/allowed-issuers.yml:/config/allowed-issuers.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx96m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 384m + deploy: + resources: + limits: + memory: 384m + + actions-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-mapping + - dynamic-simulation + - import + image: gridsuite/actions-server:latest + ports: + - 5022:80 + volumes: + - ../../k8s/resources/common/config/actions-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx576m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1g + deploy: + resources: + limits: + memory: 1g + + case-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-mapping + - dynamic-simulation + - import + image: powsybl/case-server:latest + ports: + - 5000:80 + volumes: + - ../../k8s/resources/common/config/case-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + - $GRIDSUITE_DATABASES/cases:/cases:Z + depends_on: + logspout: + condition: "service_started" + required: false + restart: unless-stopped + environment: + - JAVA_TOOL_OPTIONS=-Xmx186m #deployment: 768m + command: > + --server.port=80 + --spring.config.additional-location=/config/ + --storage.type=${STORAGE_TYPE-FS} + --case-home=/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 512m + deploy: + resources: + limits: + memory: 512m + + #just here for dev purpose, we don't want to start with this profile unless we need to. + case-import-server: + profiles: + - all + - import + image: gridsuite/case-import-server:latest + ports: + - 5039:80 + volumes: + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx96m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 384m + deploy: + resources: + limits: + memory: 384m + + cgmes-gl-server: + profiles: + - all + - suite + - study + image: gridsuite/cgmes-gl-server:latest + ports: + - 8095:80 + volumes: + - ../../k8s/resources/study/config/cgmes-gl-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx96m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 384m + deploy: + resources: + limits: + memory: 384m + + config-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-mapping + - dynamic-simulation + - import + image: gridsuite/config-server:latest + ports: + - 5025:80 + volumes: + - ../../k8s/resources/common/config/config-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + environment: + - JAVA_TOOL_OPTIONS=-Xmx96m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 384m + deploy: + resources: + limits: + memory: 384m + + config-notification-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-mapping + - dynamic-simulation + - import + image: gridsuite/config-notification-server:latest + ports: + - 5024:80 + volumes: + - ../../k8s/resources/common/config/config-notification-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + environment: + - JAVA_TOOL_OPTIONS=-Xmx96m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 384m + deploy: + resources: + limits: + memory: 384m + + directory-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-simulation + image: gridsuite/directory-server-native:latest + ports: + - 5026:80 + volumes: + - ../../k8s/resources/study/config/directory-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx186m # not used by the native image + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 256m #jvm image: 512m + deploy: + resources: + limits: + memory: 256m #jvm image: 512m + + directory-notification-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-simulation + image: gridsuite/directory-notification-server:latest + ports: + - 5004:80 + volumes: + - ../../k8s/resources/study/config/directory-notification-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx96m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 384m + deploy: + resources: + limits: + memory: 384m + + dynamic-mapping-server: + profiles: + - all + - suite + - dynamic-mapping + - dynamic-simulation + image: gridsuite/dynamic-mapping-server:latest + ports: + - 5036:80 + volumes: + - ../../k8s/resources/dynamic-mapping/config/dynamic-mapping-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx576m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1g + deploy: + resources: + limits: + memory: 1g + + dynamic-security-analysis-server: + profiles: + - all + - suite + - dynamic-simulation + image: gridsuite/dynamic-security-analysis-server:latest + ports: + - 5040:80 + volumes: + - ../../k8s/resources/study/config/dynamic-security-analysis-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + - ../../k8s/resources/study/config/dynawo-itools-config.yml:/home/powsybl/.itools/config.yml:Z + restart: unless-stopped + environment: + - JAVA_TOOL_OPTIONS=-Xmx768m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1792m + deploy: + resources: + limits: + memory: 1792m + + dynamic-simulation-server: + profiles: + - all + - suite + - dynamic-simulation + image: gridsuite/dynamic-simulation-server:latest + ports: + - 5032:80 + volumes: + - ../../k8s/resources/study/config/dynamic-simulation-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + - ../../k8s/resources/study/config/dynawo-itools-config.yml:/home/powsybl/.itools/config.yml:Z + restart: unless-stopped + environment: + - JAVA_TOOL_OPTIONS=-Xmx768m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1792m + deploy: + resources: + limits: + memory: 1792m + + explore-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-simulation + image: gridsuite/explore-server:latest + ports: + - 5029:80 + volumes: + - ../../k8s/resources/study/config/explore-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx384m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 768m + deploy: + resources: + limits: + memory: 768m + + filter-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-mapping + - dynamic-simulation + - import + image: gridsuite/filter-server:latest + ports: + - 5027:80 + volumes: + - ../../k8s/resources/common/config/filter-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + environment: + - JAVA_TOOL_OPTIONS=-Xmx576m + memswap_limit: 1g + deploy: + resources: + limits: + memory: 1g + + geo-data-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-simulation + image: gridsuite/geo-data-server:latest + ports: + - 8087:80 + volumes: + - ../../k8s/resources/study/config/geo-data-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx576m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1g + deploy: + resources: + limits: + memory: 1g + + loadflow-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-mapping + - dynamic-simulation + - import + image: gridsuite/loadflow-server:latest + ports: + - 5008:80 + volumes: + - ../../k8s/resources/common/config/loadflow-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + - ../../k8s/resources/common/config/loadflow-server-config.yml:/home/powsybl/.itools/config.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: 1408m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1792m #deployment: 3072m + deploy: + resources: + limits: + memory: 1792m #deployment: 3072m + + network-conversion-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-mapping + - dynamic-simulation + - import + image: powsybl/network-conversion-server:latest + ports: + - 5003:80 + volumes: + - ../../k8s/resources/common/config/network-conversion-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + - ../../k8s/resources/common/config/network-conversion-server-config.yml:/home/powsybl/.itools/config.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: 1408m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1280m #deployment: 2048m + deploy: + resources: + limits: + memory: 1280m #deployment: 2048m + + network-map-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-simulation + image: gridsuite/network-map-server:latest + ports: + - 5006:80 + volumes: + - ../../k8s/resources/study/config/network-map-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx576m #deployment: 768m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1g #deployment: 1280m + deploy: + resources: + limits: + memory: 1g #deployment: 1280m + + network-modification-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-simulation + image: gridsuite/network-modification-server:latest + ports: + - 5007:80 + volumes: + - ../../k8s/resources/study/config/network-modification-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/study/config/network-modification-server-config.yml:/home/powsybl/.itools/config.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: 1086m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1280m #deployment: 1664m + deploy: + resources: + limits: + memory: 1280m #deployment: 1664m + + network-store-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-mapping + - dynamic-simulation + - import + image: powsybl/network-store-server:latest + ports: + - 8080:80 + volumes: + - ../../k8s/resources/common/config/network-store-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx1086m #deployment: 1408m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1664m #deployment: 2048m + deploy: + resources: + limits: + memory: 1664m #deployment: 2048m + + odre-server: + profiles: + - all + - suite + - study + image: gridsuite/odre-server:latest + ports: + - 8090:80 + volumes: + - ../../k8s/resources/study/config/odre-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx768m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1.25g + deploy: + resources: + limits: + memory: 1.25g + + report-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-mapping + - dynamic-simulation + - import + image: gridsuite/report-server:latest + ports: + - 5028:80 + volumes: + - ../../k8s/resources/common/config/report-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + environment: + - JAVA_TOOL_OPTIONS=-Xmx384m + memswap_limit: 768m + deploy: + resources: + limits: + memory: 768m + + security-analysis-server: + profiles: + - all + - suite + - study + image: gridsuite/security-analysis-server:latest + ports: + - 5023:80 + volumes: + - ../../k8s/resources/study/config/security-analysis-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + - ../../k8s/resources/study/config/security-analysis-server-config.yml:/home/powsybl/.itools/config.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx1086m #deployment: 3072m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1792m #deployment: 5632m + deploy: + resources: + limits: + memory: 1792m #deployment: 5632m + + sensitivity-analysis-server: + profiles: + - all + - suite + - study + image: gridsuite/sensitivity-analysis-server:latest + ports: + - 5030:80 + volumes: + - ../../k8s/resources/study/config/sensitivity-analysis-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + - ../../k8s/resources/study/config/sensitivity-analysis-server-config.yml:/home/powsybl/.itools/config.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: 1408m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1792m #deployment: 3072m + deploy: + resources: + limits: + memory: 1792m #deployment: 3072m + + shortcircuit-server: + profiles: + - all + - suite + - study + image: gridsuite/shortcircuit-server:latest + ports: + - 5031:80 + volumes: + - ../../k8s/resources/study/config/shortcircuit-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + - ../../k8s/resources/study/config/shortcircuit-server-config.yml:/home/powsybl/.itools/config.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx768m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1792m + deploy: + resources: + limits: + memory: 1792m + + single-line-diagram-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-simulation + image: powsybl/single-line-diagram-server:latest + ports: + - 5005:80 + volumes: + - ../../k8s/resources/study/config/single-line-diagram-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx384m #deployment: 576m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 768m #deployment: 1024m + deploy: + resources: + limits: + memory: 768m #deployment: 1024m + + study-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-simulation + image: gridsuite/study-server:latest + ports: + - 5001:80 + volumes: + - ../../k8s/resources/study/config/study-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx576m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1g + deploy: + resources: + limits: + memory: 1g + + study-config-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-mapping + - dynamic-simulation + - import + image: gridsuite/study-config-server:latest + ports: + - 5035:80 + volumes: + - ../../k8s/resources/common/config/study-config-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + environment: + - JAVA_TOOL_OPTIONS=-Xmx96m + memswap_limit: 384m + deploy: + resources: + limits: + memory: 384m + + study-notification-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-simulation + image: gridsuite/study-notification-server:latest + ports: + - 5009:80 + volumes: + - ../../k8s/resources/study/config/study-notification-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx96m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 384m + deploy: + resources: + limits: + memory: 384m + + timeseries-server: + profiles: + - all + - suite + - dynamic-simulation + image: gridsuite/timeseries-server:latest + ports: + - 5037:80 + volumes: + - ../../k8s/resources/study/config/timeseries-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx576m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1g + deploy: + resources: + limits: + memory: 1g + + user-admin-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-mapping + - dynamic-simulation + - import + image: gridsuite/user-admin-server:latest + ports: + - 5033:80 + volumes: + - ../../k8s/resources/common/config/user-admin-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + environment: + - JAVA_TOOL_OPTIONS=-Xmx96m + memswap_limit: 384m + deploy: + resources: + limits: + memory: 384m + + user-identity-server: + profiles: + - all + - suite + - study + - study-light + - dynamic-mapping + - dynamic-simulation + - import + image: gridsuite/user-identity-oidc-replication-server:latest + ports: + - 5034:80 + volumes: + - ../../k8s/resources/common/config/user-identity-oidc-replication-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + environment: + - JAVA_TOOL_OPTIONS=-Xmx96m + memswap_limit: 384m + deploy: + resources: + limits: + memory: 384m + + voltage-init-server: + profiles: + - all + - suite + - study + image: gridsuite/voltage-init-server:latest + ports: + - 5038:80 + volumes: + - ../../k8s/resources/study/config/voltage-init-server-application.yml:/config/specific/application.yml:Z + - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z + - ../../k8s/resources/study/config/voltage-init-server-config.yml:/home/powsybl/.itools/config.yml:Z + restart: unless-stopped + depends_on: + logspout: + condition: "service_started" + required: false + environment: + - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: -Xmx1086m + command: --server.port=80 --spring.config.additional-location=/config/ + sysctls: + - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 + memswap_limit: 1792m #deployment: 2432m + deploy: + resources: + limits: + memory: 1792m #deployment: 2432m diff --git a/docker-compose/_base/docker-compose.yml b/docker-compose/_base/docker-compose.yml new file mode 100644 index 00000000..b094fd04 --- /dev/null +++ b/docker-compose/_base/docker-compose.yml @@ -0,0 +1,4 @@ +include: + - docker-compose.infra.yml + - docker-compose.fronts.yml + - docker-compose.servers.yml diff --git a/docker-compose/docker-compose.base.yml b/docker-compose/docker-compose.base.yml deleted file mode 100644 index 1c5f703c..00000000 --- a/docker-compose/docker-compose.base.yml +++ /dev/null @@ -1,496 +0,0 @@ -version: '4.0' -services: - case-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-mapping - - dynamic-simulation - - import - image: powsybl/case-server:latest - ports: - - 5000:80 - volumes: - - $PWD/../../k8s/resources/common/config/case-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - - $GRIDSUITE_DATABASES/cases:/cases:Z - depends_on: - logspout: - condition: "service_started" - required: false - restart: unless-stopped - environment: - - JAVA_TOOL_OPTIONS=-Xmx186m #deployment: 768m - command: > - --server.port=80 - --spring.config.additional-location=/config/ - --storage.type=${STORAGE_TYPE-FS} - --case-home=/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 512m - deploy: - resources: - limits: - memory: 512m - - actions-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-mapping - - dynamic-simulation - - import - image: gridsuite/actions-server:latest - ports: - - 5022:80 - volumes: - - $PWD/../../k8s/resources/common/config/actions-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx576m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1g - deploy: - resources: - limits: - memory: 1g - - filter-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-mapping - - dynamic-simulation - - import - image: gridsuite/filter-server:latest - ports: - - 5027:80 - volumes: - - $PWD/../../k8s/resources/common/config/filter-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - environment: - - JAVA_TOOL_OPTIONS=-Xmx576m - memswap_limit: 1g - deploy: - resources: - limits: - memory: 1g - - user-admin-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-mapping - - dynamic-simulation - - import - image: gridsuite/user-admin-server:latest - ports: - - 5033:80 - volumes: - - $PWD/../../k8s/resources/common/config/user-admin-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - environment: - - JAVA_TOOL_OPTIONS=-Xmx96m - memswap_limit: 384m - deploy: - resources: - limits: - memory: 384m - - study-config-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-mapping - - dynamic-simulation - - import - image: gridsuite/study-config-server:latest - ports: - - 5035:80 - volumes: - - $PWD/../../k8s/resources/common/config/study-config-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - environment: - - JAVA_TOOL_OPTIONS=-Xmx96m - memswap_limit: 384m - deploy: - resources: - limits: - memory: 384m - - user-identity-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-mapping - - dynamic-simulation - - import - image: gridsuite/user-identity-oidc-replication-server:latest - ports: - - 5034:80 - volumes: - - $PWD/../../k8s/resources/common/config/user-identity-oidc-replication-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - environment: - - JAVA_TOOL_OPTIONS=-Xmx96m - memswap_limit: 384m - deploy: - resources: - limits: - memory: 384m - - report-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-mapping - - dynamic-simulation - - import - image: gridsuite/report-server:latest - ports: - - 5028:80 - volumes: - - $PWD/../../k8s/resources/common/config/report-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - environment: - - JAVA_TOOL_OPTIONS=-Xmx384m - memswap_limit: 768m - deploy: - resources: - limits: - memory: 768m - - network-store-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-mapping - - dynamic-simulation - - import - image: powsybl/network-store-server:latest - ports: - - 8080:80 - volumes: - - $PWD/../../k8s/resources/common/config/network-store-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx1086m #deployment: 1408m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1664m #deployment: 2048m - deploy: - resources: - limits: - memory: 1664m #deployment: 2048m - - network-conversion-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-mapping - - dynamic-simulation - - import - image: powsybl/network-conversion-server:latest - ports: - - 5003:80 - volumes: - - $PWD/../../k8s/resources/common/config/network-conversion-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - - $PWD/../../k8s/resources/common/config/network-conversion-server-config.yml:/home/powsybl/.itools/config.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: 1408m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1280m #deployment: 2048m - deploy: - resources: - limits: - memory: 1280m #deployment: 2048m - - loadflow-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-mapping - - dynamic-simulation - - import - image: gridsuite/loadflow-server:latest - ports: - - 5008:80 - volumes: - - $PWD/../../k8s/resources/common/config/loadflow-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - - $PWD/../../k8s/resources/common/config/loadflow-server-config.yml:/home/powsybl/.itools/config.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: 1408m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1792m #deployment: 3072m - deploy: - resources: - limits: - memory: 1792m #deployment: 3072m - - config-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-mapping - - dynamic-simulation - - import - image: gridsuite/config-server:latest - ports: - - 5025:80 - volumes: - - $PWD/../../k8s/resources/common/config/config-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - environment: - - JAVA_TOOL_OPTIONS=-Xmx96m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 384m - deploy: - resources: - limits: - memory: 384m - - config-notification-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-mapping - - dynamic-simulation - - import - image: gridsuite/config-notification-server:latest - ports: - - 5024:80 - volumes: - - $PWD/../../k8s/resources/common/config/config-notification-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - environment: - - JAVA_TOOL_OPTIONS=-Xmx96m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 384m - deploy: - resources: - limits: - memory: 384m - - gateway: - profiles: - - all - - suite - - study - - study-light - - dynamic-mapping - - dynamic-simulation - - import - image: gridsuite/gateway:latest - ports: - - 9000:80 - volumes: - - $PWD/../../k8s/resources/common/config/gateway-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - - $PWD/../allowed-issuers.yml:/config/allowed-issuers.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx96m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 384m - deploy: - resources: - limits: - memory: 384m - - mock-user-service: - profiles: - - all - - suite - - study - - study-light - - dynamic-mapping - - dynamic-simulation - - import - image: gridsuite/oidc-mock-server - ports: - - 9090:9090 - environment: - - PORT=9090 - - ISSUER_HOST=172.17.0.1:9090 - - USERS_PROFILE=UTILISATEURS|ADMIN|ADMIN_EXPLORE - - CLIENT_COUNT=8 - - # Client IDs for containers (grid*-app-idpSettings.json) - - CLIENT_ID=gridexplore-client - - CLIENT_REDIRECT_URI=http://localhost:80/sign-in-callback - - CLIENT_LOGOUT_REDIRECT_URI=http://localhost:80/logout-callback - - CLIENT_SILENT_REDIRECT_URI=http://localhost:80/silent-renew-callback - - - CLIENT_ID_2=gridadmin-client - - CLIENT_REDIRECT_URI_2=http://localhost:82/sign-in-callback - - CLIENT_LOGOUT_REDIRECT_URI_2=http://localhost:82/logout-callback - - CLIENT_SILENT_REDIRECT_URI_2=http://localhost:82/silent-renew-callback - - - CLIENT_ID_3=griddyna-client - - CLIENT_REDIRECT_URI_3=http://localhost:83/sign-in-callback - - CLIENT_LOGOUT_REDIRECT_URI_3=http://localhost:83/logout-callback - - CLIENT_SILENT_REDIRECT_URI_3=http://localhost:83/silent-renew-callback - - - CLIENT_ID_4=gridstudy-client - - CLIENT_REDIRECT_URI_4=http://localhost:84/sign-in-callback - - CLIENT_LOGOUT_REDIRECT_URI_4=http://localhost:84/logout-callback - - CLIENT_SILENT_REDIRECT_URI_4=http://localhost:84/silent-renew-callback - - # Client IDs for local dev (grid*-app/public/idpSettings.json) - - CLIENT_ID_5=gridexplore-local - - CLIENT_REDIRECT_URI_5=http://localhost:3000/sign-in-callback - - CLIENT_LOGOUT_REDIRECT_URI_5=http://localhost:3000/logout-callback - - CLIENT_SILENT_REDIRECT_URI_5=http://localhost:3000/silent-renew-callback - - - CLIENT_ID_6=gridadmin-local - - CLIENT_REDIRECT_URI_6=http://localhost:3002/sign-in-callback - - CLIENT_LOGOUT_REDIRECT_URI_6=http://localhost:3002/logout-callback - - CLIENT_SILENT_REDIRECT_URI_6=http://localhost:3002/silent-renew-callback - - - CLIENT_ID_7=griddyna-local - - CLIENT_REDIRECT_URI_7=http://localhost:3003/sign-in-callback - - CLIENT_LOGOUT_REDIRECT_URI_7=http://localhost:3003/logout-callback - - CLIENT_SILENT_REDIRECT_URI_7=http://localhost:3003/silent-renew-callback - - - CLIENT_ID_8=gridstudy-local - - CLIENT_REDIRECT_URI_8=http://localhost:3004/sign-in-callback - - CLIENT_LOGOUT_REDIRECT_URI_8=http://localhost:3004/logout-callback - - CLIENT_SILENT_REDIRECT_URI_8=http://localhost:3004/silent-renew-callback - depends_on: - logspout: - condition: "service_started" - required: false - restart: unless-stopped - - apps-metadata-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-mapping - - dynamic-simulation - - import - image: bitnami/apache:2.4.55-debian-11-r3@sha256:bbe50190eb3bbf3be6f61318004480b3230846bfd52dec9286bd1862254c1719 - ports: - - 8070:8080 - volumes: - - $PWD/../apps-metadata.json:/opt/bitnami/apache/htdocs/apps-metadata.json:Z - - $PWD/../version.json:/opt/bitnami/apache/htdocs/version.json:Z - - $PWD/../gridapps-metadata-httpd.conf:/opt/bitnami/apache/conf/bitnami/bitnami.conf:Z - depends_on: - logspout: - condition: "service_started" - required: false - memswap_limit: 128m - deploy: - resources: - limits: - memory: 128m - restart: unless-stopped diff --git a/docker-compose/dynamic-mapping/.env b/docker-compose/dynamic-mapping/.env index 28673c04..b4461cbc 100644 --- a/docker-compose/dynamic-mapping/.env +++ b/docker-compose/dynamic-mapping/.env @@ -1,5 +1,3 @@ PROJECT_DIR_NAME=dynamic-mapping -COMPOSE_PATH_SEPARATOR=: COMPOSE_PROJECT_NAME=griddynamicmapping -COMPOSE_FILE=docker-compose.override.yml:../docker-compose.base.yml:../study/docker-compose.override.yml:../technical/docker-compose.technical.yml COMPOSE_PROFILES=dynamic-mapping diff --git a/docker-compose/dynamic-mapping/docker-compose.override.yml b/docker-compose/dynamic-mapping/docker-compose.override.yml deleted file mode 100644 index a981d2f8..00000000 --- a/docker-compose/dynamic-mapping/docker-compose.override.yml +++ /dev/null @@ -1,53 +0,0 @@ -version: '4.0' - -services: - griddyna-app: - profiles: - - all - - suite - - dynamic-mapping - - dynamic-simulation - image: gridsuite/griddyna-app:latest - ports: - - 83:8080 - volumes: - - $PWD/../dynamic-mapping/griddyna-app-idpSettings.json:/opt/bitnami/apache/htdocs/griddyna/idpSettings.json:Z - - $PWD/../env.json:/opt/bitnami/apache/htdocs/griddyna/env.json:Z - depends_on: - logspout: - condition: "service_started" - required: false - memswap_limit: 128m - deploy: - resources: - limits: - memory: 128m - restart: unless-stopped - - dynamic-mapping-server: - profiles: - - all - - suite - - dynamic-mapping - - dynamic-simulation - image: gridsuite/dynamic-mapping-server:latest - ports: - - 5036:80 - volumes: - - $PWD/../../k8s/resources/dynamic-mapping/config/dynamic-mapping-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx576m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1g - deploy: - resources: - limits: - memory: 1g \ No newline at end of file diff --git a/docker-compose/dynamic-mapping/docker-compose.yml b/docker-compose/dynamic-mapping/docker-compose.yml new file mode 100644 index 00000000..7f107273 --- /dev/null +++ b/docker-compose/dynamic-mapping/docker-compose.yml @@ -0,0 +1,2 @@ +include: + - ../_base/docker-compose.yml diff --git a/docker-compose/explicit-profiles/.env b/docker-compose/explicit-profiles/.env index 7e515bd7..6f7e0612 100644 --- a/docker-compose/explicit-profiles/.env +++ b/docker-compose/explicit-profiles/.env @@ -6,6 +6,4 @@ DATABASE_PREFIX_NAME= # will block postgres container if geo-data-server container is not started (because the user explicitly chose other profiles) # and the PROJECT_DIR_NAME is one of those values PROJECT_DIR_NAME=explicit-profiles -COMPOSE_PATH_SEPARATOR=: COMPOSE_PROJECT_NAME=grid -COMPOSE_FILE=../docker-compose.base.yml:../study/docker-compose.override.yml:../dynamic-mapping/docker-compose.override.yml:../technical/docker-compose.technical.yml diff --git a/docker-compose/explicit-profiles/docker-compose.yml b/docker-compose/explicit-profiles/docker-compose.yml new file mode 100644 index 00000000..7f107273 --- /dev/null +++ b/docker-compose/explicit-profiles/docker-compose.yml @@ -0,0 +1,2 @@ +include: + - ../_base/docker-compose.yml diff --git a/docker-compose/study/.env b/docker-compose/study/.env index cb1a2740..6c94f36e 100644 --- a/docker-compose/study/.env +++ b/docker-compose/study/.env @@ -1,6 +1,4 @@ PROJECT_DIR_NAME=study PROJECT_STUDY_DIR_NAME=study -COMPOSE_PATH_SEPARATOR=: COMPOSE_PROJECT_NAME=gridstudy -COMPOSE_FILE=docker-compose.override.yml:../docker-compose.base.yml:../dynamic-mapping/docker-compose.override.yml:../technical/docker-compose.technical.yml COMPOSE_PROFILES=study diff --git a/docker-compose/study/docker-compose.override.yml b/docker-compose/study/docker-compose.override.yml deleted file mode 100644 index 19bb69f1..00000000 --- a/docker-compose/study/docker-compose.override.yml +++ /dev/null @@ -1,600 +0,0 @@ -version: '4.0' - -services: - study-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-simulation - image: gridsuite/study-server:latest - ports: - - 5001:80 - volumes: - - $PWD/../../k8s/resources/study/config/study-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx576m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1g - deploy: - resources: - limits: - memory: 1g - - geo-data-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-simulation - image: gridsuite/geo-data-server:latest - ports: - - 8087:80 - volumes: - - $PWD/../../k8s/resources/study/config/geo-data-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx576m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1g - deploy: - resources: - limits: - memory: 1g - - single-line-diagram-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-simulation - image: powsybl/single-line-diagram-server:latest - ports: - - 5005:80 - volumes: - - $PWD/../../k8s/resources/study/config/single-line-diagram-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx384m #deployment: 576m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 768m #deployment: 1024m - deploy: - resources: - limits: - memory: 768m #deployment: 1024m - - network-modification-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-simulation - image: gridsuite/network-modification-server:latest - ports: - - 5007:80 - volumes: - - $PWD/../../k8s/resources/study/config/network-modification-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/study/config/network-modification-server-config.yml:/home/powsybl/.itools/config.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: 1086m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1280m #deployment: 1664m - deploy: - resources: - limits: - memory: 1280m #deployment: 1664m - - study-notification-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-simulation - image: gridsuite/study-notification-server:latest - ports: - - 5009:80 - volumes: - - $PWD/../../k8s/resources/study/config/study-notification-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx96m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 384m - deploy: - resources: - limits: - memory: 384m - - directory-notification-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-simulation - image: gridsuite/directory-notification-server:latest - ports: - - 5004:80 - volumes: - - $PWD/../../k8s/resources/study/config/directory-notification-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx96m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 384m - deploy: - resources: - limits: - memory: 384m - - network-map-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-simulation - image: gridsuite/network-map-server:latest - ports: - - 5006:80 - volumes: - - $PWD/../../k8s/resources/study/config/network-map-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx576m #deployment: 768m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1g #deployment: 1280m - deploy: - resources: - limits: - memory: 1g #deployment: 1280m - - cgmes-gl-server: - profiles: - - all - - suite - - study - image: gridsuite/cgmes-gl-server:latest - ports: - - 8095:80 - volumes: - - $PWD/../../k8s/resources/study/config/cgmes-gl-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx96m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 384m - deploy: - resources: - limits: - memory: 384m - - odre-server: - profiles: - - all - - suite - - study - image: gridsuite/odre-server:latest - ports: - - 8090:80 - volumes: - - $PWD/../../k8s/resources/study/config/odre-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx768m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1.25g - deploy: - resources: - limits: - memory: 1.25g - - gridstudy-app: - profiles: - - all - - suite - - study - - dynamic-simulation - image: gridsuite/gridstudy-app:latest - ports: - - 84:8080 - volumes: - - $PWD/../study/gridstudy-app-idpSettings.json:/opt/bitnami/apache/htdocs/gridstudy/idpSettings.json:Z - - $PWD/../env.json:/opt/bitnami/apache/htdocs/gridstudy/env.json:Z - depends_on: - logspout: - condition: "service_started" - required: false - memswap_limit: 128m - deploy: - resources: - limits: - memory: 128m - restart: unless-stopped - - security-analysis-server: - profiles: - - all - - suite - - study - image: gridsuite/security-analysis-server:latest - ports: - - 5023:80 - volumes: - - $PWD/../../k8s/resources/study/config/security-analysis-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - - $PWD/../../k8s/resources/study/config/security-analysis-server-config.yml:/home/powsybl/.itools/config.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx1086m #deployment: 3072m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1792m #deployment: 5632m - deploy: - resources: - limits: - memory: 1792m #deployment: 5632m - - dynamic-simulation-server: - profiles: - - all - - suite - - dynamic-simulation - image: gridsuite/dynamic-simulation-server:latest - ports: - - 5032:80 - volumes: - - $PWD/../../k8s/resources/study/config/dynamic-simulation-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - - $PWD/../../k8s/resources/study/config/dynawo-itools-config.yml:/home/powsybl/.itools/config.yml:Z - restart: unless-stopped - environment: - - JAVA_TOOL_OPTIONS=-Xmx768m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1792m - deploy: - resources: - limits: - memory: 1792m - - dynamic-security-analysis-server: - profiles: - - all - - suite - - dynamic-simulation - image: gridsuite/dynamic-security-analysis-server:latest - ports: - - 5040:80 - volumes: - - $PWD/../../k8s/resources/study/config/dynamic-security-analysis-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - - $PWD/../../k8s/resources/study/config/dynawo-itools-config.yml:/home/powsybl/.itools/config.yml:Z - restart: unless-stopped - environment: - - JAVA_TOOL_OPTIONS=-Xmx768m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1792m - deploy: - resources: - limits: - memory: 1792m - - directory-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-simulation - image: gridsuite/directory-server-native:latest - ports: - - 5026:80 - volumes: - - $PWD/../../k8s/resources/study/config/directory-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx186m # not used by the native image - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 256m #jvm image: 512m - deploy: - resources: - limits: - memory: 256m #jvm image: 512m - - gridexplore-app: - profiles: - - all - - suite - - study - - study-light - - dynamic-simulation - image: gridsuite/gridexplore-app:latest - ports: - - 80:8080 - volumes: - - $PWD/../study/gridexplore-app-idpSettings.json:/opt/bitnami/apache/htdocs/gridexplore/idpSettings.json:Z - - $PWD/../env.json:/opt/bitnami/apache/htdocs/gridexplore/env.json:Z - depends_on: - logspout: - condition: "service_started" - required: false - memswap_limit: 128m - deploy: - resources: - limits: - memory: 128m - restart: unless-stopped - - explore-server: - profiles: - - all - - suite - - study - - study-light - - dynamic-simulation - image: gridsuite/explore-server:latest - ports: - - 5029:80 - volumes: - - $PWD/../../k8s/resources/study/config/explore-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx384m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 768m - deploy: - resources: - limits: - memory: 768m - - sensitivity-analysis-server: - profiles: - - all - - suite - - study - image: gridsuite/sensitivity-analysis-server:latest - ports: - - 5030:80 - volumes: - - $PWD/../../k8s/resources/study/config/sensitivity-analysis-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - - $PWD/../../k8s/resources/study/config/sensitivity-analysis-server-config.yml:/home/powsybl/.itools/config.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: 1408m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1792m #deployment: 3072m - deploy: - resources: - limits: - memory: 1792m #deployment: 3072m - - shortcircuit-server: - profiles: - - all - - suite - - study - image: gridsuite/shortcircuit-server:latest - ports: - - 5031:80 - volumes: - - $PWD/../../k8s/resources/study/config/shortcircuit-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - - $PWD/../../k8s/resources/study/config/shortcircuit-server-config.yml:/home/powsybl/.itools/config.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx768m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1792m - deploy: - resources: - limits: - memory: 1792m - - timeseries-server: - profiles: - - all - - suite - - dynamic-simulation - image: gridsuite/timeseries-server:latest - ports: - - 5037:80 - volumes: - - $PWD/../../k8s/resources/study/config/timeseries-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx576m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1g - deploy: - resources: - limits: - memory: 1g - - voltage-init-server: - profiles: - - all - - suite - - study - image: gridsuite/voltage-init-server:latest - ports: - - 5038:80 - volumes: - - $PWD/../../k8s/resources/study/config/voltage-init-server-application.yml:/config/specific/application.yml:Z - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - - $PWD/../../k8s/resources/study/config/voltage-init-server-config.yml:/home/powsybl/.itools/config.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: -Xmx1086m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 1792m #deployment: 2432m - deploy: - resources: - limits: - memory: 1792m #deployment: 2432m - - #just here for dev purpose, we don't want to start with this profile unless we need to. - case-import-server: - profiles: - - all - - import - image: gridsuite/case-import-server:latest - ports: - - 5039:80 - volumes: - - $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z - restart: unless-stopped - depends_on: - logspout: - condition: "service_started" - required: false - environment: - - JAVA_TOOL_OPTIONS=-Xmx96m - command: --server.port=80 --spring.config.additional-location=/config/ - sysctls: - - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 - memswap_limit: 384m - deploy: - resources: - limits: - memory: 384m - - gridadmin-app: - profiles: - - all - - suite - - study - image: gridsuite/gridadmin-app:latest - ports: - - 82:8080 - volumes: - - $PWD/../study/gridadmin-app-idpSettings.json:/opt/bitnami/apache/htdocs/gridadmin/idpSettings.json:Z - - $PWD/../env.json:/opt/bitnami/apache/htdocs/gridadmin/env.json:Z - depends_on: - logspout: - condition: "service_started" - required: false - memswap_limit: 128m - deploy: - resources: - limits: - memory: 128m - restart: unless-stopped diff --git a/docker-compose/study/docker-compose.yml b/docker-compose/study/docker-compose.yml new file mode 100644 index 00000000..7f107273 --- /dev/null +++ b/docker-compose/study/docker-compose.yml @@ -0,0 +1,2 @@ +include: + - ../_base/docker-compose.yml diff --git a/docker-compose/suite/.env b/docker-compose/suite/.env index 51a3a917..1f17b39b 100644 --- a/docker-compose/suite/.env +++ b/docker-compose/suite/.env @@ -1,6 +1,4 @@ PROJECT_DIR_NAME=suite PROJECT_SUITE_DIR_NAME=suite -COMPOSE_PATH_SEPARATOR=: COMPOSE_PROJECT_NAME=gridsuite -COMPOSE_FILE=docker-compose.marker.yml:../docker-compose.base.yml:../study/docker-compose.override.yml:../dynamic-mapping/docker-compose.override.yml:../technical/docker-compose.technical.yml COMPOSE_PROFILES=study,dynamic-mapping diff --git a/docker-compose/suite/docker-compose.marker.yml b/docker-compose/suite/docker-compose.marker.yml deleted file mode 100644 index 651b5675..00000000 --- a/docker-compose/suite/docker-compose.marker.yml +++ /dev/null @@ -1,4 +0,0 @@ -version: '4.0' -services: {} - -# This file is here only for $COMPOSE_PROFILES to be recognized by docker compose, nothing more diff --git a/docker-compose/suite/docker-compose.yml b/docker-compose/suite/docker-compose.yml new file mode 100644 index 00000000..7f107273 --- /dev/null +++ b/docker-compose/suite/docker-compose.yml @@ -0,0 +1,2 @@ +include: + - ../_base/docker-compose.yml diff --git a/docker-compose/technical/.env b/docker-compose/technical/.env index d5e07aa0..92f45065 100644 --- a/docker-compose/technical/.env +++ b/docker-compose/technical/.env @@ -1,6 +1,4 @@ PROJECT_STUDY_DIR_NAME=study PROJECT_SUITE_DIR_NAME=suite PROJECT_DIR_NAME=technical -COMPOSE_PATH_SEPARATOR=: COMPOSE_PROJECT_NAME=gridtechnical -COMPOSE_FILE=docker-compose.technical.yml diff --git a/docker-compose/technical/docker-compose.yml b/docker-compose/technical/docker-compose.yml new file mode 100644 index 00000000..7f107273 --- /dev/null +++ b/docker-compose/technical/docker-compose.yml @@ -0,0 +1,2 @@ +include: + - ../_base/docker-compose.yml