diff --git a/README.md b/README.md index 0d9ae647..fa0c28f9 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ $ cd deployment ### Application profiles _(alias)_ > [!NOTE] -> If you want to use profiles other than the ones associated with the folders (`dynamic-mapping`, `monitor`, `study`, `suite`, `technical`), you have to use profiles as explained in the [next section](#docker-compose-profiles). +> If you want to use profiles other than the ones associated with the folders (`dynamic-mapping`, `monitor`, `study`, `suite`, `technical`, `study-light`), you have to use profiles as explained in the [next section](#docker-compose-profiles). ```bash $ cd docker-compose/suite @@ -68,6 +68,10 @@ $ cd docker-compose/study $ docker compose up ``` ```bash +$ cd docker-compose/study-light +$ docker compose up +``` +```bash $ cd docker-compose/dynamic-mapping $ docker compose up ``` @@ -91,22 +95,22 @@ _Everything described in this section is inside the folder `explicit-profiles`._ Here's the summary of the profiles and what services they includes: | **Component \ Service** | **_(none)_** | **study** | **study-light** | **dynamic-mapping** | **dynamic-simulation** | **suite** | **import** | **kibana** | **pgadmin** | **metrics** | **monitor** | |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- | -| rabbitmq
postgres
elasticsearch
minio* | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | ✅ | -| kibana
logstash
socat
logspout | | | | | | | | ✅ | | | | +| case-import-server | | | | | | | ✅ | | | | | +| kibana
logspout
logstash
socat | | | | | | | | ✅ | | | | +| elasticsearch-exporter
grafana
postgres-exporter
prometheus | | | | | | | | | | ✅ | | +| gridmonitor-app
monitor-lf-worker-server
monitor-notification-server
monitor-sa-worker-server
monitor-server | | | | | | | | | | | ✅ | | pgadmin | | | | | | | | | ✅ | | | -| apps‑metadata‑server
mock‑user‑service
gateway
config‑server
loadflow‑server
user‑admin‑server | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | | ✅ | -| config‑notification‑server
network‑conversion‑server
network‑store‑server | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | | | -| actions‑server
case‑server
filter‑server
report‑server | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | | ✅ | -| griddyna‑app
dynamic‑mapping‑server | | | | ✅ | ✅ | ✅ | | | | | | -| gridstudy‑app
dynamic‑simulation‑server
dynamic‑security‑analysis‑server
dynamic‑margin‑calculation‑server
timeseries‑server | | | | | ✅ | ✅ | | | | | | -| cgmes‑gl‑server
odre‑server
sensitivity‑analysis‑server
shortcircuit‑server
voltage‑init‑server
gridadmin‑app | | ✅ | | | | ✅ | | | | | | -| security‑analysis‑server | | ✅ | | | | ✅ | | | | | ✅ | -| directory‑server | | ✅ | ✅ | | ✅ | ✅ | | | | | ✅ | -| directory‑notification‑server
explore‑server
geo‑data‑server
gridexplore‑app
network‑map‑server
single‑line‑diagram‑server
study‑notification‑server
study‑server | | ✅ | ✅ | | ✅ | ✅ | | | | | | -| network‑modification‑server | | ✅ | ✅ | | ✅ | ✅ | | | | | ✅ | -| gridmonitor-app
monitor-server
monitor-sa-worker-server
monitor-lf-worker-server
monitor-notification-server | | | | | | | | | | | ✅ | -| case‑import‑server | | | | | | | ✅ | | | | | -| grafana
prometheus | | | | | | | | | | ✅ | | +| dynamic-margin-calculation-server
dynamic-security-analysis-server
dynamic-simulation-server
timeseries-server | | | | | ✅ | ✅ | | | | | | +| cgmes-gl-server
gridadmin-app
odre-server
sensitivity-analysis-server
shortcircuit-server
voltage-init-server | | ✅ | | | | ✅ | | | | | | +| dynamic-mapping-server
griddyna-app | | | | ✅ | ✅ | ✅ | | | | | | +| geo-data-server | | ✅ | | | ✅ | ✅ | | | | | | +| security-analysis-server | | ✅ | | | | ✅ | | | | | ✅ | +| directory-notification-server
explore-server
gridexplore-app
gridstudy-app
network-map-server
single-line-diagram-server
study-notification-server
study-server | | ✅ | ✅ | | ✅ | ✅ | | | | | | +| directory-server
network-modification-server | | ✅ | ✅ | | ✅ | ✅ | | | | | ✅ | +| actions-server | | ✅ | | ✅ | ✅ | ✅ | ✅ | | | | ✅ | +| config-notification-server
network-conversion-server
network-store-server
study-config-server
user-identity-server | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | | | +| apps-metadata-server
case-server
config-server
filter-server
gateway
loadflow-server
mock-user-service
report-server
user-admin-server | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | | ✅ | +| elasticsearch
postgres
rabbitmq
s3-storage | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | To use a profile, you use: ```shell @@ -561,4 +565,3 @@ services: ... ``` Now, when using ```docker compose up```, your custom Docker image will be used. - diff --git a/docker-compose/docker-compose.base.yml b/docker-compose/docker-compose.base.yml index 33f9a36b..f1d41ec1 100644 --- a/docker-compose/docker-compose.base.yml +++ b/docker-compose/docker-compose.base.yml @@ -1,5 +1,3 @@ -version: '4.0' - services: case-server: profiles: @@ -18,12 +16,20 @@ services: - ../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 depends_on: + postgres: + condition: service_healthy + elasticsearch: + condition: service_healthy + s3-storage: + condition: service_healthy + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false restart: unless-stopped environment: - - JAVA_TOOL_OPTIONS=-Xmx186m #deployment: 768m + - JAVA_TOOL_OPTIONS=-Xmx186m command: > --server.port=80 --spring.config.additional-location=/config/ @@ -41,7 +47,6 @@ services: - all - suite - study - - study-light - dynamic-mapping - dynamic-simulation - import @@ -54,19 +59,23 @@ services: - ../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx576m + - 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: 1g + memswap_limit: 768m deploy: resources: limits: - memory: 1g + memory: 768m filter-server: profiles: @@ -86,6 +95,10 @@ services: - ../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false @@ -93,12 +106,12 @@ services: sysctls: - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 environment: - - JAVA_TOOL_OPTIONS=-Xmx576m - memswap_limit: 1g + - JAVA_TOOL_OPTIONS=-Xmx384m + memswap_limit: 768m deploy: resources: limits: - memory: 1g + memory: 768m user-admin-server: profiles: @@ -118,6 +131,10 @@ services: - ../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false @@ -149,6 +166,8 @@ services: - ../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy logspout: condition: "service_started" required: false @@ -180,6 +199,8 @@ services: - ../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy logspout: condition: "service_started" required: false @@ -212,6 +233,8 @@ services: - ../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy logspout: condition: "service_started" required: false @@ -219,12 +242,12 @@ services: sysctls: - net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0 environment: - - JAVA_TOOL_OPTIONS=-Xmx384m - memswap_limit: 768m + - JAVA_TOOL_OPTIONS=-Xmx186m + memswap_limit: 512m deploy: resources: limits: - memory: 768m + memory: 512m network-store-server: profiles: @@ -243,19 +266,21 @@ services: - ../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx1086m #deployment: 1408m + - 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: 1664m #deployment: 2048m + memswap_limit: 1280m deploy: resources: limits: - memory: 1664m #deployment: 2048m + memory: 1280m network-conversion-server: profiles: @@ -275,19 +300,25 @@ services: - ../k8s/resources/common/config/network-conversion-server-config.yml:/home/powsybl/.itools/config.yml:Z restart: unless-stopped depends_on: + elasticsearch: + condition: service_healthy + s3-storage: + condition: service_healthy + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: 1408m + - 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: 1280m #deployment: 2048m + memswap_limit: 1g deploy: resources: limits: - memory: 1280m #deployment: 2048m + memory: 1g loadflow-server: profiles: @@ -308,19 +339,23 @@ services: - ../k8s/resources/common/config/loadflow-server-config.yml:/home/powsybl/.itools/config.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: 1408m + - 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: 1792m #deployment: 3072m + memswap_limit: 1g deploy: resources: limits: - memory: 1792m #deployment: 3072m + memory: 1g config-server: profiles: @@ -339,6 +374,11 @@ services: - ../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 + depends_on: + postgres: + condition: service_healthy + rabbitmq: + condition: service_healthy environment: - JAVA_TOOL_OPTIONS=-Xmx96m command: --server.port=80 --spring.config.additional-location=/config/ @@ -366,6 +406,9 @@ services: - ../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 + depends_on: + rabbitmq: + condition: service_healthy environment: - JAVA_TOOL_OPTIONS=-Xmx96m command: --server.port=80 --spring.config.additional-location=/config/ diff --git a/docker-compose/dynamic-mapping/docker-compose.dynamic-mapping.yml b/docker-compose/dynamic-mapping/docker-compose.dynamic-mapping.yml index 74a32790..e9002c99 100644 --- a/docker-compose/dynamic-mapping/docker-compose.dynamic-mapping.yml +++ b/docker-compose/dynamic-mapping/docker-compose.dynamic-mapping.yml @@ -1,5 +1,3 @@ -version: '4.0' - services: griddyna-app: profiles: @@ -38,16 +36,18 @@ services: - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx576m + - 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: 1g + memswap_limit: 768m deploy: resources: limits: - memory: 1g \ No newline at end of file + memory: 768m diff --git a/docker-compose/monitor/docker-compose.monitor.yml b/docker-compose/monitor/docker-compose.monitor.yml index 4e3f06ca..ea1d368a 100644 --- a/docker-compose/monitor/docker-compose.monitor.yml +++ b/docker-compose/monitor/docker-compose.monitor.yml @@ -1,5 +1,3 @@ -version: '4.0' - services: monitor-server: profiles: @@ -15,6 +13,12 @@ services: logspout: condition: "service_started" required: false + postgres: + condition: service_healthy + s3-storage: + condition: service_healthy + rabbitmq: + condition: service_healthy restart: unless-stopped environment: - JAVA_TOOL_OPTIONS=-Xmx96m @@ -40,17 +44,21 @@ services: logspout: condition: "service_started" required: false + s3-storage: + condition: service_healthy + rabbitmq: + condition: service_healthy restart: unless-stopped environment: - - JAVA_TOOL_OPTIONS=-Xmx1086m #deployment: 3072m + - 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 #deployment: 5632m + memswap_limit: 1280m deploy: resources: limits: - memory: 1792m #deployment: 5632m + memory: 1280m monitor-lf-worker-server: profiles: @@ -65,17 +73,21 @@ services: logspout: condition: "service_started" required: false + s3-storage: + condition: service_healthy + rabbitmq: + condition: service_healthy restart: unless-stopped environment: - - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: 1408m + - 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: 1536m #deployment: 3072m + memswap_limit: 1280m deploy: resources: limits: - memory: 1536m #deployment: 3072m + memory: 1280m monitor-notification-server: profiles: @@ -92,6 +104,8 @@ services: logspout: condition: "service_started" required: false + rabbitmq: + condition: service_healthy environment: - JAVA_TOOL_OPTIONS=-Xmx96m command: --server.port=80 --spring.config.additional-location=/config/ diff --git a/docker-compose/study-light/.env b/docker-compose/study-light/.env new file mode 100644 index 00000000..380c3a26 --- /dev/null +++ b/docker-compose/study-light/.env @@ -0,0 +1,5 @@ +SHOULD_INIT_GEO_DATA=true +SHOULD_INIT_LINES_CATALOG=true + +COMPOSE_PROJECT_NAME=gridstudylight +COMPOSE_PROFILES=study-light diff --git a/docker-compose/study-light/docker-compose.yml b/docker-compose/study-light/docker-compose.yml new file mode 100644 index 00000000..56f1b702 --- /dev/null +++ b/docker-compose/study-light/docker-compose.yml @@ -0,0 +1,4 @@ +include: + - ../docker-compose.base.yml + - ../technical/docker-compose.technical.yml + - ../study/docker-compose.study.yml diff --git a/docker-compose/study/docker-compose.study.yml b/docker-compose/study/docker-compose.study.yml index 59f73c08..b44f4ebc 100644 --- a/docker-compose/study/docker-compose.study.yml +++ b/docker-compose/study/docker-compose.study.yml @@ -1,5 +1,3 @@ -version: '4.0' - services: study-server: profiles: @@ -16,26 +14,31 @@ services: - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy + elasticsearch: + condition: service_healthy + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx576m + - 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: 1g + memswap_limit: 768m deploy: resources: limits: - memory: 1g + memory: 768m geo-data-server: profiles: - all - suite - study - - study-light - dynamic-simulation image: gridsuite/geo-data-server:latest ports: @@ -45,19 +48,21 @@ services: - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx576m + - 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: 1g + memswap_limit: 768m deploy: resources: limits: - memory: 1g + memory: 768m single-line-diagram-server: profiles: @@ -74,19 +79,21 @@ services: - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx384m #deployment: 576m + - JAVA_TOOL_OPTIONS=-Xmx186m 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 + memswap_limit: 512m deploy: resources: limits: - memory: 768m #deployment: 1024m + memory: 512m network-modification-server: profiles: @@ -105,19 +112,25 @@ services: - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy + elasticsearch: + condition: service_healthy + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: 1086m + - 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: 1280m #deployment: 1664m + memswap_limit: 1g deploy: resources: limits: - memory: 1280m #deployment: 1664m + memory: 1g study-notification-server: profiles: @@ -134,6 +147,8 @@ services: - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false @@ -163,6 +178,8 @@ services: - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false @@ -196,15 +213,15 @@ services: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx576m #deployment: 768m + - 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: 1g #deployment: 1280m + memswap_limit: 768m deploy: resources: limits: - memory: 1g #deployment: 1280m + memory: 768m cgmes-gl-server: profiles: @@ -250,21 +267,22 @@ services: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx768m + - 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: 1.25g + memswap_limit: 1g deploy: resources: limits: - memory: 1.25g + memory: 1g gridstudy-app: profiles: - all - suite - study + - study-light - dynamic-simulation image: gridsuite/gridstudy-app:latest ports: @@ -298,19 +316,23 @@ services: - ../../k8s/resources/study/config/security-analysis-server-config.yml:/home/powsybl/.itools/config.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx1086m #deployment: 3072m + - 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 #deployment: 5632m + memswap_limit: 1280m deploy: resources: limits: - memory: 1792m #deployment: 5632m + memory: 1280m dynamic-simulation-server: profiles: @@ -325,16 +347,23 @@ services: - ../../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 + depends_on: + postgres: + condition: service_healthy + s3-storage: + condition: service_healthy + rabbitmq: + condition: service_healthy environment: - - JAVA_TOOL_OPTIONS=-Xmx768m + - 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: 1792m + memswap_limit: 1g deploy: resources: limits: - memory: 1792m + memory: 1g dynamic-security-analysis-server: profiles: @@ -349,16 +378,23 @@ services: - ../../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 + depends_on: + postgres: + condition: service_healthy + s3-storage: + condition: service_healthy + rabbitmq: + condition: service_healthy environment: - - JAVA_TOOL_OPTIONS=-Xmx768m + - 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: 1792m + memswap_limit: 1g deploy: resources: limits: - memory: 1792m + memory: 1g dynamic-margin-calculation-server: profiles: @@ -373,16 +409,23 @@ services: - ../../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 + depends_on: + postgres: + condition: service_healthy + s3-storage: + condition: service_healthy + rabbitmq: + condition: service_healthy environment: - - JAVA_TOOL_OPTIONS=-Xmx768m + - 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: 1792m + memswap_limit: 1g deploy: resources: limits: - memory: 1792m + memory: 1g directory-server: profiles: @@ -400,19 +443,25 @@ services: - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy + elasticsearch: + condition: service_healthy + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx186m + - 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: 512m + memswap_limit: 384m deploy: resources: limits: - memory: 512m + memory: 384m gridexplore-app: profiles: @@ -453,19 +502,21 @@ services: - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx384m + - JAVA_TOOL_OPTIONS=-Xmx186m 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 + memswap_limit: 512m deploy: resources: limits: - memory: 768m + memory: 512m sensitivity-analysis-server: profiles: @@ -481,19 +532,23 @@ services: - ../../k8s/resources/study/config/sensitivity-analysis-server-config.yml:/home/powsybl/.itools/config.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: 1408m + - 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: 1792m #deployment: 3072m + memswap_limit: 1g deploy: resources: limits: - memory: 1792m #deployment: 3072m + memory: 1g shortcircuit-server: profiles: @@ -509,19 +564,25 @@ services: - ../../k8s/resources/study/config/shortcircuit-server-config.yml:/home/powsybl/.itools/config.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy + s3-storage: + condition: service_healthy + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx768m + - 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: 1792m + memswap_limit: 1g deploy: resources: limits: - memory: 1792m + memory: 1g timeseries-server: profiles: @@ -536,19 +597,21 @@ services: - ../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx576m + - 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: 1g + memswap_limit: 768m deploy: resources: limits: - memory: 1g + memory: 768m voltage-init-server: profiles: @@ -564,19 +627,25 @@ services: - ../../k8s/resources/study/config/voltage-init-server-config.yml:/home/powsybl/.itools/config.yml:Z restart: unless-stopped depends_on: + postgres: + condition: service_healthy + s3-storage: + condition: service_healthy + rabbitmq: + condition: service_healthy logspout: condition: "service_started" required: false environment: - - JAVA_TOOL_OPTIONS=-Xmx768m #deployment: -Xmx1086m + - 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: 1792m #deployment: 2432m + memswap_limit: 1g deploy: resources: limits: - memory: 1792m #deployment: 2432m + memory: 1g #just here for dev purpose, we don't want to start with this profile unless we need to. case-import-server: diff --git a/docker-compose/technical/docker-compose.technical.yml b/docker-compose/technical/docker-compose.technical.yml index cbec35a8..ae1618e9 100644 --- a/docker-compose/technical/docker-compose.technical.yml +++ b/docker-compose/technical/docker-compose.technical.yml @@ -1,5 +1,3 @@ -version: '4.0' - services: rabbitmq: @@ -8,6 +6,11 @@ services: - 15672:15672 - 5672:5672 - 15692:15692 + healthcheck: + test: ["CMD-SHELL", "rabbitmq-diagnostics ping"] + interval: 10s + timeout: 5s + retries: 10 depends_on: logspout: condition: "service_started" @@ -45,6 +48,11 @@ services: - ./init-databases.sh:/init-databases.sh:Z - ./init-geo-data.sh:/init-geo-data.sh:Z - ./init-lines-catalog.sh:/init-lines-catalog.sh:Z + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DEFAULT_DB"] + interval: 10s + timeout: 5s + retries: 10 restart: unless-stopped postgres-exporter: @@ -60,7 +68,8 @@ services: - DATA_SOURCE_URI=postgres:5432/postgres?sslmode=disable restart: unless-stopped depends_on: - - postgres + postgres: + condition: service_healthy elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.19.10 @@ -76,6 +85,11 @@ services: - action.auto_create_index=filebeat-* volumes: - $GRIDSUITE_DATABASES/elasticsearch:/usr/share/elasticsearch/data + healthcheck: + test: ["CMD-SHELL", "curl -fsS http://localhost:9200/_cluster/health >/dev/null"] + interval: 10s + timeout: 5s + retries: 10 restart: unless-stopped elasticsearch-exporter: @@ -89,7 +103,8 @@ services: - "9114:9114" restart: unless-stopped depends_on: - - elasticsearch + elasticsearch: + condition: service_healthy kibana: profiles: @@ -101,7 +116,8 @@ services: environment: - LOGSPOUT=ignore depends_on: - - elasticsearch + elasticsearch: + condition: service_healthy restart: unless-stopped logstash: @@ -115,7 +131,8 @@ services: environment: - LOGSPOUT=ignore depends_on: - - elasticsearch + elasticsearch: + condition: service_healthy restart: unless-stopped socat: @@ -154,6 +171,9 @@ services: - PGADMIN_DEFAULT_PASSWORD=admin volumes: - ./servers_pgadmin.json:/pgadmin4/servers.json + depends_on: + postgres: + condition: service_healthy restart: unless-stopped s3-storage: @@ -169,6 +189,11 @@ services: - MINIO_ROOT_PASSWORD=s3password volumes: - $GRIDSUITE_DATABASES/cases_v1/miniodata:/data:Z + healthcheck: + test: ["CMD-SHELL", "curl -fsS http://localhost:9000/minio/health/live >/dev/null"] + interval: 10s + timeout: 5s + retries: 10 restart: on-failure prometheus: