From 865fee5bafafae6e9b03764afde79fce1798d10a Mon Sep 17 00:00:00 2001 From: David Lougheed Date: Thu, 26 Sep 2024 11:22:59 -0400 Subject: [PATCH 1/8] fix: Bento healthchecks + patch Keycloak version --- etc/bento.env | 9 ++++++--- lib/aggregation/docker-compose.aggregation.yaml | 6 ++++-- lib/auth/docker-compose.auth.yaml | 12 ++++++++---- lib/authz/docker-compose.authz.yaml | 12 ++++++++++-- lib/beacon/docker-compose.beacon.yaml | 6 ++++-- lib/drop-box/docker-compose.drop-box.yaml | 6 ++++-- lib/drs/docker-compose.drs.yaml | 6 ++++-- lib/event-relay/docker-compose.event-relay.yaml | 6 ++++-- lib/gateway/docker-compose.gateway.yaml | 6 ++++-- lib/gohan/docker-compose.gohan.yaml | 12 ++++++++---- lib/katsu/docker-compose.katsu.yaml | 11 +++++++---- lib/logs/docker-compose.logs.yaml | 2 +- lib/notification/docker-compose.notification.yaml | 6 ++++-- lib/public/docker-compose.public.yaml | 4 +++- lib/redis/docker-compose.redis.yaml | 6 ++++-- lib/reference/docker-compose.reference.yaml | 13 ++++++++++--- .../docker-compose.service-registry.yaml | 6 ++++-- lib/web/docker-compose.web.yaml | 8 +++++--- lib/wes/docker-compose.wes.yaml | 4 +++- 19 files changed, 97 insertions(+), 44 deletions(-) diff --git a/etc/bento.env b/etc/bento.env index 67a0d4d5..0b9ffee1 100644 --- a/etc/bento.env +++ b/etc/bento.env @@ -17,8 +17,11 @@ BENTO_AUTHZ_SERVICE_URL=${BENTOV2_PUBLIC_URL}/api/authorization/ BENTO_CORS_ORIGINS="${BENTOV2_PUBLIC_URL};${BENTOV2_PORTAL_PUBLIC_URL}" -BENTOV2_HEALTHCHECK_TIMEOUT=5s -BENTOV2_HEALTHCHECK_INTERVAL=5m +BENTO_HEALTHCHECK_TIMEOUT=5s +BENTO_HEALTHCHECK_INTERVAL=5m +# Faster interval for services while they're starting: +BENTO_HEALTHCHECK_START_PERIOD=75s +BENTO_HEALTHCHECK_START_INTERVAL=5s BENTO_STD_SERVICE_INTERNAL_PORT=5000 @@ -44,7 +47,7 @@ BENTOV2_GATEWAY_CPUS=2 # - Keycloak IdP - 'auth' BENTOV2_AUTH_IMAGE=ghcr.io/bento-platform/bento_keycloak_dist -BENTOV2_AUTH_VERSION=2024.06.03 +BENTOV2_AUTH_VERSION=2024.09.26 BENTOV2_AUTH_CONTAINER_NAME=${BENTOV2_PREFIX}-auth BENTO_AUTH_NETWORK=${BENTOV2_PREFIX}-auth-net BENTOV2_AUTH_SERVICE_HOST=0.0.0.0 diff --git a/lib/aggregation/docker-compose.aggregation.yaml b/lib/aggregation/docker-compose.aggregation.yaml index 3a90e025..b7db9c37 100644 --- a/lib/aggregation/docker-compose.aggregation.yaml +++ b/lib/aggregation/docker-compose.aggregation.yaml @@ -20,8 +20,10 @@ services: cpu_shares: 512 healthcheck: test: [ "CMD", "curl", "http://localhost:${BENTOV2_AGGREGATION_INTERNAL_PORT}/service-info" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} networks: aggregation-net: diff --git a/lib/auth/docker-compose.auth.yaml b/lib/auth/docker-compose.auth.yaml index 53f70822..5d637adc 100644 --- a/lib/auth/docker-compose.auth.yaml +++ b/lib/auth/docker-compose.auth.yaml @@ -35,8 +35,10 @@ services: cpu_shares: 512 healthcheck: test: [ "CMD", "curl", "https://localhost:8443", "-k" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} profiles: - auth @@ -53,8 +55,10 @@ services: - ${BENTOV2_AUTH_VOL_DIR}:/var/lib/postgresql/data healthcheck: test: [ "CMD", "pg_isready", "-q", "-d", "${BENTO_AUTH_DB}", "-U", "${BENTO_AUTH_DB_USER}" ] - timeout: 5s - interval: 15s # Faster interval for auth-db, which auth requires to be healthy + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} profiles: - auth diff --git a/lib/authz/docker-compose.authz.yaml b/lib/authz/docker-compose.authz.yaml index 8f4df22d..f8f2e78d 100644 --- a/lib/authz/docker-compose.authz.yaml +++ b/lib/authz/docker-compose.authz.yaml @@ -19,6 +19,12 @@ services: networks: - authz-net - authz-db-net + healthcheck: + test: [ "CMD", "curl", "http://localhost:${BENTO_AUTHZ_INTERNAL_PORT}/service-info" ] + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} authz-db: image: postgres:${BENTO_AUTHZ_DB_VERSION} @@ -34,8 +40,10 @@ services: - ${BENTO_AUTHZ_DB_VOL_DIR}:/var/lib/postgresql/data healthcheck: test: [ "CMD", "pg_isready", "-q", "-d", "${BENTO_AUTHZ_DB}", "-U", "${BENTO_AUTHZ_DB_USER}" ] - timeout: 5s - interval: 15s # Faster interval for authz-db, which authz requires to be healthy + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} networks: authz-net: diff --git a/lib/beacon/docker-compose.beacon.yaml b/lib/beacon/docker-compose.beacon.yaml index cc3d9bc8..43dc2ef6 100644 --- a/lib/beacon/docker-compose.beacon.yaml +++ b/lib/beacon/docker-compose.beacon.yaml @@ -41,8 +41,10 @@ services: cpu_shares: 512 healthcheck: test: [ "CMD", "curl", "http://localhost:${BENTO_BEACON_INTERNAL_PORT}/service-info" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} profiles: - beacon diff --git a/lib/drop-box/docker-compose.drop-box.yaml b/lib/drop-box/docker-compose.drop-box.yaml index cd475c82..af1abaa7 100644 --- a/lib/drop-box/docker-compose.drop-box.yaml +++ b/lib/drop-box/docker-compose.drop-box.yaml @@ -21,8 +21,10 @@ services: cpu_shares: 1024 healthcheck: test: [ "CMD", "curl", "http://localhost:${BENTOV2_DROP_BOX_INTERNAL_PORT}/service-info" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} networks: drop-box-net: diff --git a/lib/drs/docker-compose.drs.yaml b/lib/drs/docker-compose.drs.yaml index 7d131a41..85725da3 100644 --- a/lib/drs/docker-compose.drs.yaml +++ b/lib/drs/docker-compose.drs.yaml @@ -27,8 +27,10 @@ services: cpu_shares: 512 healthcheck: test: [ "CMD", "curl", "http://localhost:${BENTOV2_DRS_INTERNAL_PORT}/service-info" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} networks: drs-net: diff --git a/lib/event-relay/docker-compose.event-relay.yaml b/lib/event-relay/docker-compose.event-relay.yaml index f78f59c9..3319d530 100644 --- a/lib/event-relay/docker-compose.event-relay.yaml +++ b/lib/event-relay/docker-compose.event-relay.yaml @@ -54,8 +54,10 @@ services: cpu_shares: 512 healthcheck: test: [ "CMD", "curl", "http://localhost:${BENTOV2_EVENT_RELAY_INTERNAL_PORT}/service-info" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} networks: event-relay-net: diff --git a/lib/gateway/docker-compose.gateway.yaml b/lib/gateway/docker-compose.gateway.yaml index 5ccab6b7..c0a9ef65 100644 --- a/lib/gateway/docker-compose.gateway.yaml +++ b/lib/gateway/docker-compose.gateway.yaml @@ -117,8 +117,10 @@ services: "--resolve", "${BENTOV2_PORTAL_DOMAIN}:443:127.0.0.1", "https://${BENTOV2_PORTAL_DOMAIN}" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} # Lots of networks! Here, we have more or less one network per service, plus a few ones for databases diff --git a/lib/gohan/docker-compose.gohan.yaml b/lib/gohan/docker-compose.gohan.yaml index 4dd36062..06a0827c 100644 --- a/lib/gohan/docker-compose.gohan.yaml +++ b/lib/gohan/docker-compose.gohan.yaml @@ -46,8 +46,10 @@ services: - ${BENTOV2_GOHAN_API_INTERNAL_PORT} healthcheck: test: [ "CMD", "curl", "http://localhost:${BENTOV2_GOHAN_API_INTERNAL_PORT}/service-info" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} depends_on: - gohan-elasticsearch profiles: @@ -73,8 +75,10 @@ services: - ${BENTO_GOHAN_ES_JVM_OPTIONS_DIR}:/usr/share/elasticsearch/config/jvm.options.d healthcheck: test: [ "CMD", "curl", "http://localhost:${BENTOV2_GOHAN_ES_INTERNAL_PORT_1}" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} profiles: - gohan diff --git a/lib/katsu/docker-compose.katsu.yaml b/lib/katsu/docker-compose.katsu.yaml index 107bdc74..f483afd2 100644 --- a/lib/katsu/docker-compose.katsu.yaml +++ b/lib/katsu/docker-compose.katsu.yaml @@ -55,8 +55,10 @@ services: cpu_shares: 1024 healthcheck: test: [ "CMD", "curl", "http://localhost:${BENTOV2_KATSU_INTERNAL_PORT}/service-info" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} katsu-db: @@ -82,8 +84,9 @@ services: cpu_shares: 1024 healthcheck: test: [ "CMD", "pg_isready", "-q", "-d", "${BENTOV2_KATSU_DB}", "-U", "${BENTOV2_KATSU_DB_USER}" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: 15s # Faster interval for services which others may require to be healthy + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} networks: drs-net: diff --git a/lib/logs/docker-compose.logs.yaml b/lib/logs/docker-compose.logs.yaml index 7cbb41a0..8ea24e3b 100644 --- a/lib/logs/docker-compose.logs.yaml +++ b/lib/logs/docker-compose.logs.yaml @@ -59,7 +59,7 @@ services: expose: - 3000 healthcheck: - test: [ "CMD", "curl", "-k", "https://localhost:3000"] + test: [ "CMD", "curl", "http://localhost:3000"] timeout: 5s interval: 15s profiles: diff --git a/lib/notification/docker-compose.notification.yaml b/lib/notification/docker-compose.notification.yaml index 9198f7a5..d6b343b8 100644 --- a/lib/notification/docker-compose.notification.yaml +++ b/lib/notification/docker-compose.notification.yaml @@ -24,8 +24,10 @@ services: cpu_shares: 512 healthcheck: test: [ "CMD", "curl", "http://localhost:${BENTOV2_NOTIFICATION_INTERNAL_PORT}/service-info" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} networks: notification-net: diff --git a/lib/public/docker-compose.public.yaml b/lib/public/docker-compose.public.yaml index 239bb5e0..3953b00c 100644 --- a/lib/public/docker-compose.public.yaml +++ b/lib/public/docker-compose.public.yaml @@ -33,7 +33,9 @@ services: healthcheck: test: [ "CMD", "curl", "http://localhost:${BENTO_PUBLIC_INTERNAL_PORT}/service-info" ] timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} profiles: - public diff --git a/lib/redis/docker-compose.redis.yaml b/lib/redis/docker-compose.redis.yaml index de903b92..a3fade15 100644 --- a/lib/redis/docker-compose.redis.yaml +++ b/lib/redis/docker-compose.redis.yaml @@ -13,8 +13,10 @@ services: cpu_shares: 512 healthcheck: test: [ "CMD", "redis-cli", "ping" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: 15s # Faster interval for services which others may require to be healthy + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} networks: redis-net: diff --git a/lib/reference/docker-compose.reference.yaml b/lib/reference/docker-compose.reference.yaml index 3242d78f..4e96b449 100644 --- a/lib/reference/docker-compose.reference.yaml +++ b/lib/reference/docker-compose.reference.yaml @@ -19,9 +19,10 @@ services: volumes: - ${BENTO_REFERENCE_TMP_VOL_DIR}:/reference/tmp healthcheck: - test: [ "CMD", "wget", "-q0-", "http://localhost:${BENTO_REFERENCE_INTERNAL_PORT}/service-info", "&&", "echo" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + test: [ "CMD", "curl", "http://localhost:${BENTO_REFERENCE_INTERNAL_PORT}/service-info" ] + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} reference-db: image: ${BENTO_REFERENCE_DB_IMAGE}:${BENTO_REFERENCE_DB_VERSION} @@ -40,6 +41,12 @@ services: - POSTGRES_DB=${BENTO_REFERENCE_DB_NAME} volumes: - ${BENTO_REFERENCE_DB_VOL_DIR}:/var/lib/postgresql/data + healthcheck: + test: [ "CMD", "pg_isready", "-q", "-d", "${BENTO_REFERENCE_DB_NAME}", "-U", "${BENTO_REFERENCE_DB_USER}" ] + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} networks: reference-net: diff --git a/lib/service-registry/docker-compose.service-registry.yaml b/lib/service-registry/docker-compose.service-registry.yaml index dd6812e9..284a3326 100644 --- a/lib/service-registry/docker-compose.service-registry.yaml +++ b/lib/service-registry/docker-compose.service-registry.yaml @@ -41,8 +41,10 @@ services: cpu_shares: 256 healthcheck: test: [ "CMD", "curl", "http://localhost:${BENTOV2_SERVICE_REGISTRY_INTERNAL_PORT}/service-info" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} networks: service-registry-net: diff --git a/lib/web/docker-compose.web.yaml b/lib/web/docker-compose.web.yaml index 0865f3be..e595fdf1 100644 --- a/lib/web/docker-compose.web.yaml +++ b/lib/web/docker-compose.web.yaml @@ -21,9 +21,11 @@ services: cpus: ${BENTOV2_WEB_CPUS} cpu_shares: 512 healthcheck: - test: [ "CMD", "wget", "-q0-", "http://localhost:${BENTOV2_WEB_INTERNAL_PORT}/service-info", "&&", "echo" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + test: [ "CMD", "curl", "http://localhost:${BENTOV2_WEB_INTERNAL_PORT}/service-info" ] + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} networks: web-net: diff --git a/lib/wes/docker-compose.wes.yaml b/lib/wes/docker-compose.wes.yaml index 73556ddf..6c15ed65 100644 --- a/lib/wes/docker-compose.wes.yaml +++ b/lib/wes/docker-compose.wes.yaml @@ -50,7 +50,9 @@ services: healthcheck: test: [ "CMD", "curl", "http://localhost:${BENTOV2_WES_INTERNAL_PORT}/service-info" ] timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} - interval: ${BENTOV2_HEALTHCHECK_INTERVAL} + interval: ${BENTO_HEALTHCHECK_INTERVAL} + start_period: ${BENTO_HEALTHCHECK_START_PERIOD} + start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} volumes: - ${BENTOV2_WES_VOL_DIR}:/wes/data - ${BENTOV2_WES_VOL_TMP_DIR}:/wes/tmp From 9725c4368b66592cfce20d9476c77cd160500032 Mon Sep 17 00:00:00 2001 From: David Lougheed Date: Thu, 26 Sep 2024 12:04:11 -0400 Subject: [PATCH 2/8] fix: bad env var namings for healthcheck timeouts --- lib/public/docker-compose.public.yaml | 2 +- lib/wes/docker-compose.wes.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/public/docker-compose.public.yaml b/lib/public/docker-compose.public.yaml index 3953b00c..489b86d5 100644 --- a/lib/public/docker-compose.public.yaml +++ b/lib/public/docker-compose.public.yaml @@ -32,7 +32,7 @@ services: - ${PWD}/lib/public/branding.png:/bento-public/dist/public/assets/branding.png:ro healthcheck: test: [ "CMD", "curl", "http://localhost:${BENTO_PUBLIC_INTERNAL_PORT}/service-info" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} interval: ${BENTO_HEALTHCHECK_INTERVAL} start_period: ${BENTO_HEALTHCHECK_START_PERIOD} start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} diff --git a/lib/wes/docker-compose.wes.yaml b/lib/wes/docker-compose.wes.yaml index 6c15ed65..dbcd9585 100644 --- a/lib/wes/docker-compose.wes.yaml +++ b/lib/wes/docker-compose.wes.yaml @@ -49,7 +49,7 @@ services: cpu_shares: 1024 healthcheck: test: [ "CMD", "curl", "http://localhost:${BENTOV2_WES_INTERNAL_PORT}/service-info" ] - timeout: ${BENTOV2_HEALTHCHECK_TIMEOUT} + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} interval: ${BENTO_HEALTHCHECK_INTERVAL} start_period: ${BENTO_HEALTHCHECK_START_PERIOD} start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} From 8133936cb5cb203768ebb1fb5d75ced20480fc2f Mon Sep 17 00:00:00 2001 From: David Lougheed Date: Thu, 26 Sep 2024 12:17:15 -0400 Subject: [PATCH 3/8] fix: missing timeout for healthcheck in Katsu DB --- lib/katsu/docker-compose.katsu.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/katsu/docker-compose.katsu.yaml b/lib/katsu/docker-compose.katsu.yaml index f483afd2..cc04ec96 100644 --- a/lib/katsu/docker-compose.katsu.yaml +++ b/lib/katsu/docker-compose.katsu.yaml @@ -84,6 +84,7 @@ services: cpu_shares: 1024 healthcheck: test: [ "CMD", "pg_isready", "-q", "-d", "${BENTOV2_KATSU_DB}", "-U", "${BENTOV2_KATSU_DB_USER}" ] + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} interval: ${BENTO_HEALTHCHECK_INTERVAL} start_period: ${BENTO_HEALTHCHECK_START_PERIOD} start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} From 70abba2376e15d23af8459cac8eb339922afda97 Mon Sep 17 00:00:00 2001 From: David Lougheed Date: Thu, 26 Sep 2024 12:22:14 -0400 Subject: [PATCH 4/8] chore: update minimum docker and compose versions --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0dae49cc..0039971f 100644 --- a/README.md +++ b/README.md @@ -22,8 +22,8 @@ that make up the Bento platform. ## Requirements -- Docker >= 24.0.4 -- Docker Compose >= 2.20.0 (plugin form: you should have the `docker compose` command available, without a dash) +- Docker >= 25.0 +- Docker Compose >= 2.25.0 (plugin form: you should have the `docker compose` command available, without a dash) - Python >= 3.9 (for `bentoctl`); the services require Python 3.10 but this is included in their Docker images. From 088dbc76b0db5429220b4c122e09bcf90e26b09c Mon Sep 17 00:00:00 2001 From: David Lougheed Date: Thu, 26 Sep 2024 12:26:29 -0400 Subject: [PATCH 5/8] fix: fallback fast interval for databases for now supporting old Docker engine/compose versions --- lib/auth/docker-compose.auth.yaml | 4 +++- lib/katsu/docker-compose.katsu.yaml | 4 +++- lib/reference/docker-compose.reference.yaml | 5 ++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/auth/docker-compose.auth.yaml b/lib/auth/docker-compose.auth.yaml index 5d637adc..c52773df 100644 --- a/lib/auth/docker-compose.auth.yaml +++ b/lib/auth/docker-compose.auth.yaml @@ -56,7 +56,9 @@ services: healthcheck: test: [ "CMD", "pg_isready", "-q", "-d", "${BENTO_AUTH_DB}", "-U", "${BENTO_AUTH_DB_USER}" ] timeout: ${BENTO_HEALTHCHECK_TIMEOUT} - interval: ${BENTO_HEALTHCHECK_INTERVAL} + # interval: ${BENTO_HEALTHCHECK_INTERVAL} + # For Docker <25 and Compose <2.24.x, start_interval doesn't work - use a shorter interval for now + interval: ${BENTO_HEALTHCHECK_START_INTERVAL} start_period: ${BENTO_HEALTHCHECK_START_PERIOD} start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} profiles: diff --git a/lib/katsu/docker-compose.katsu.yaml b/lib/katsu/docker-compose.katsu.yaml index cc04ec96..f2c0b176 100644 --- a/lib/katsu/docker-compose.katsu.yaml +++ b/lib/katsu/docker-compose.katsu.yaml @@ -85,7 +85,9 @@ services: healthcheck: test: [ "CMD", "pg_isready", "-q", "-d", "${BENTOV2_KATSU_DB}", "-U", "${BENTOV2_KATSU_DB_USER}" ] timeout: ${BENTO_HEALTHCHECK_TIMEOUT} - interval: ${BENTO_HEALTHCHECK_INTERVAL} + # interval: ${BENTO_HEALTHCHECK_INTERVAL} + # For Docker <25 and Compose <2.24.x, start_interval doesn't work - use a shorter interval for now + interval: ${BENTO_HEALTHCHECK_START_INTERVAL} start_period: ${BENTO_HEALTHCHECK_START_PERIOD} start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} diff --git a/lib/reference/docker-compose.reference.yaml b/lib/reference/docker-compose.reference.yaml index 4e96b449..165bbca1 100644 --- a/lib/reference/docker-compose.reference.yaml +++ b/lib/reference/docker-compose.reference.yaml @@ -20,6 +20,7 @@ services: - ${BENTO_REFERENCE_TMP_VOL_DIR}:/reference/tmp healthcheck: test: [ "CMD", "curl", "http://localhost:${BENTO_REFERENCE_INTERNAL_PORT}/service-info" ] + timeout: ${BENTO_HEALTHCHECK_TIMEOUT} interval: ${BENTO_HEALTHCHECK_INTERVAL} start_period: ${BENTO_HEALTHCHECK_START_PERIOD} start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} @@ -44,7 +45,9 @@ services: healthcheck: test: [ "CMD", "pg_isready", "-q", "-d", "${BENTO_REFERENCE_DB_NAME}", "-U", "${BENTO_REFERENCE_DB_USER}" ] timeout: ${BENTO_HEALTHCHECK_TIMEOUT} - interval: ${BENTO_HEALTHCHECK_INTERVAL} + # interval: ${BENTO_HEALTHCHECK_INTERVAL} + # For Docker <25 and Compose <2.24.x, start_interval doesn't work - use a shorter interval for now + interval: ${BENTO_HEALTHCHECK_START_INTERVAL} start_period: ${BENTO_HEALTHCHECK_START_PERIOD} start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} From 304ba74d8afb39283d12940deffcb9758d29f824 Mon Sep 17 00:00:00 2001 From: David Lougheed Date: Thu, 26 Sep 2024 12:39:17 -0400 Subject: [PATCH 6/8] fix: fast healthcheck interval for authz-db --- lib/authz/docker-compose.authz.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/authz/docker-compose.authz.yaml b/lib/authz/docker-compose.authz.yaml index f8f2e78d..9196bdbb 100644 --- a/lib/authz/docker-compose.authz.yaml +++ b/lib/authz/docker-compose.authz.yaml @@ -41,7 +41,9 @@ services: healthcheck: test: [ "CMD", "pg_isready", "-q", "-d", "${BENTO_AUTHZ_DB}", "-U", "${BENTO_AUTHZ_DB_USER}" ] timeout: ${BENTO_HEALTHCHECK_TIMEOUT} - interval: ${BENTO_HEALTHCHECK_INTERVAL} + # interval: ${BENTO_HEALTHCHECK_INTERVAL} + # For Docker <25 and Compose <2.24.x, start_interval doesn't work - use a shorter interval for now + interval: ${BENTO_HEALTHCHECK_START_INTERVAL} start_period: ${BENTO_HEALTHCHECK_START_PERIOD} start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} From 37991514804aafa913d2e1f4286524442217c198 Mon Sep 17 00:00:00 2001 From: David Lougheed Date: Thu, 26 Sep 2024 12:42:23 -0400 Subject: [PATCH 7/8] fix: for now use a short auth healthcheck --- lib/auth/docker-compose.auth.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/auth/docker-compose.auth.yaml b/lib/auth/docker-compose.auth.yaml index c52773df..832e55e6 100644 --- a/lib/auth/docker-compose.auth.yaml +++ b/lib/auth/docker-compose.auth.yaml @@ -36,7 +36,9 @@ services: healthcheck: test: [ "CMD", "curl", "https://localhost:8443", "-k" ] timeout: ${BENTO_HEALTHCHECK_TIMEOUT} - interval: ${BENTO_HEALTHCHECK_INTERVAL} + # interval: ${BENTO_HEALTHCHECK_INTERVAL} + # For Docker <25 and Compose <2.24.x, start_interval doesn't work - use a shorter interval for now + interval: ${BENTO_HEALTHCHECK_START_INTERVAL} start_period: ${BENTO_HEALTHCHECK_START_PERIOD} start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} profiles: From fd63aed37f234a186e0bbde3640e060e0d517af7 Mon Sep 17 00:00:00 2001 From: David Lougheed Date: Thu, 26 Sep 2024 12:42:47 -0400 Subject: [PATCH 8/8] ...a bit longer --- lib/auth/docker-compose.auth.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/auth/docker-compose.auth.yaml b/lib/auth/docker-compose.auth.yaml index 832e55e6..766d6ab9 100644 --- a/lib/auth/docker-compose.auth.yaml +++ b/lib/auth/docker-compose.auth.yaml @@ -38,7 +38,7 @@ services: timeout: ${BENTO_HEALTHCHECK_TIMEOUT} # interval: ${BENTO_HEALTHCHECK_INTERVAL} # For Docker <25 and Compose <2.24.x, start_interval doesn't work - use a shorter interval for now - interval: ${BENTO_HEALTHCHECK_START_INTERVAL} + interval: 45s start_period: ${BENTO_HEALTHCHECK_START_PERIOD} start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL} profiles: