who_need_help/scripts/scale-common.sh

63 lines
2.0 KiB
Bash
Executable File

#!/bin/sh
# Variables assigned here are exported for Docker Compose and child containers.
# The literal backticks belong to Traefik's rule syntax.
# shellcheck disable=SC2034,SC2016
scale_load_environment() {
SCALE_ROOT=$(CDPATH='' cd -- "$(dirname -- "$0")/.." && pwd)
SCALE_ENV_FILE=${WNH_SCALE_ENV_FILE:-"$SCALE_ROOT/output/runtime/scale.env"}
WNH_LOAD_ENV_FILE=$SCALE_ENV_FILE "$SCALE_ROOT/scripts/ensure-local-load-env.sh"
set -a
# shellcheck source=/dev/null
. "$SCALE_ENV_FILE"
LOAD_PROJECT=who_need_help_scale
COMPOSE_PROJECT_NAME=$LOAD_PROJECT
LOAD_HOST=scale.localhost
HTTP_BIND_ADDRESS=127.0.0.1
HTTP_PORT=${WNH_SCALE_HTTP_PORT:-4120}
SCALE_HTTPS_BIND_ADDRESS=127.0.0.1
SCALE_HTTPS_PORT=${WNH_SCALE_HTTPS_PORT:-4121}
MAILPIT_BIND_ADDRESS=127.0.0.1
MAILPIT_PORT=${WNH_SCALE_MAILPIT_PORT:-8129}
PHX_HOST=$LOAD_HOST
PHX_SCHEME=https
PHX_URL_PORT=$SCALE_HTTPS_PORT
POSTGRES_DB=who_need_help_scale
POSTGRES_USER=wnh_scale
DATABASE_URL="ecto://$POSTGRES_USER:$POSTGRES_PASSWORD@db/$POSTGRES_DB"
APP_IMAGE=who-need-help:scale
SOCKET_PROXY_IMAGE=who-need-help:socket-proxy-scale
POSTGIS_IMAGE=who-need-help:postgis-scale
TRAEFIK_PROJECT_CONSTRAINT=$LOAD_PROJECT
TRAEFIK_APP_NAME=who-need-help-scale
TRAEFIK_DOCKER_NETWORK="${LOAD_PROJECT}_ingress"
TRAEFIK_ROUTER_RULE='Host(`scale.localhost`)'
WEB_REPLICAS=1
WORKER_REPLICAS=1
LOAD_WEB_REPLICAS=1
LOAD_WORKER_REPLICAS=1
CPU_REPLAY_CPUSET=${WNH_SCALE_CPUSET:-0}
CPU_REPLAY_WEB_CPUS=1
CPU_REPLAY_WORKER_CPUS=1
CPU_REPLAY_WEB_SCHEDULERS=1
CPU_REPLAY_WORKER_SCHEDULERS=1
SCALE_VIEWER_PASSWORD=${SCALE_VIEWER_PASSWORD:-$LOAD_FIXTURE_PASSWORD}
WNH_SCALE_EXPECTED_DATABASE=$POSTGRES_DB
WNH_SCALE_FIXTURE_CONFIRM=persistent-local-scale
set +a
}
scale_compose() {
docker compose \
--env-file "$SCALE_ENV_FILE" \
-p "$LOAD_PROJECT" \
-f "$SCALE_ROOT/compose.yaml" \
-f "$SCALE_ROOT/compose.load.yaml" \
-f "$SCALE_ROOT/compose.scale.yaml" \
-f "$SCALE_ROOT/compose.cpu-replay.yaml" \
"$@"
}