Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Bento healthchecks + patch Keycloak version #269

Merged
merged 8 commits into from
Sep 26, 2024
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.


Expand Down
9 changes: 6 additions & 3 deletions etc/bento.env
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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
Expand Down
6 changes: 4 additions & 2 deletions lib/aggregation/docker-compose.aggregation.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
16 changes: 12 additions & 4 deletions lib/auth/docker-compose.auth.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,12 @@ 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}
# For Docker <25 and Compose <2.24.x, start_interval doesn't work - use a shorter interval for now
interval: 45s
start_period: ${BENTO_HEALTHCHECK_START_PERIOD}
start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL}
profiles:
- auth

Expand All @@ -53,8 +57,12 @@ 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}
# 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:
- auth

Expand Down
14 changes: 12 additions & 2 deletions lib/authz/docker-compose.authz.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand All @@ -34,8 +40,12 @@ 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}
# 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}

networks:
authz-net:
Expand Down
6 changes: 4 additions & 2 deletions lib/beacon/docker-compose.beacon.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
6 changes: 4 additions & 2 deletions lib/drop-box/docker-compose.drop-box.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
6 changes: 4 additions & 2 deletions lib/drs/docker-compose.drs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
6 changes: 4 additions & 2 deletions lib/event-relay/docker-compose.event-relay.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
6 changes: 4 additions & 2 deletions lib/gateway/docker-compose.gateway.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
12 changes: 8 additions & 4 deletions lib/gohan/docker-compose.gohan.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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

Expand Down
14 changes: 10 additions & 4 deletions lib/katsu/docker-compose.katsu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -82,8 +84,12 @@ 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
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}
start_period: ${BENTO_HEALTHCHECK_START_PERIOD}
start_interval: ${BENTO_HEALTHCHECK_START_INTERVAL}

networks:
drs-net:
Expand Down
2 changes: 1 addition & 1 deletion lib/logs/docker-compose.logs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
6 changes: 4 additions & 2 deletions lib/notification/docker-compose.notification.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
6 changes: 4 additions & 2 deletions lib/public/docker-compose.public.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,10 @@ 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}
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:
- public

Expand Down
6 changes: 4 additions & 2 deletions lib/redis/docker-compose.redis.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
16 changes: 13 additions & 3 deletions lib/reference/docker-compose.reference.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@ 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" ]
timeout: ${BENTO_HEALTHCHECK_TIMEOUT}
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}
Expand All @@ -40,6 +42,14 @@ 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}
# 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}

networks:
reference-net:
Expand Down
6 changes: 4 additions & 2 deletions lib/service-registry/docker-compose.service-registry.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
8 changes: 5 additions & 3 deletions lib/web/docker-compose.web.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
6 changes: 4 additions & 2 deletions lib/wes/docker-compose.wes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,10 @@ services:
cpu_shares: 1024
healthcheck:
test: [ "CMD", "curl", "http://localhost:${BENTOV2_WES_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}
volumes:
- ${BENTOV2_WES_VOL_DIR}:/wes/data
- ${BENTOV2_WES_VOL_TMP_DIR}:/wes/tmp
Expand Down
Loading