feat(anubis): add /healthz route to metrics server (#843)
* feat(anubis): add /healthz route to metrics server Also add health check test for Docker Compose and update documentation for health checking Anubis with Docker Compose. Signed-off-by: Xe Iaso <me@xeiaso.net> * chore: spelling Signed-off-by: Xe Iaso <me@xeiaso.net> --------- Signed-off-by: Xe Iaso <me@xeiaso.net>
This commit is contained in:
parent
509a4f3ce8
commit
68b653b099
13 changed files with 372 additions and 248 deletions
|
|
@ -12,11 +12,11 @@ services:
|
|||
anubis:
|
||||
image: ko.local/anubis
|
||||
environment:
|
||||
BIND: ":3000"
|
||||
BIND: ":8005"
|
||||
TARGET: http://cgit:80
|
||||
USE_REMOTE_ADDRESS: "true"
|
||||
ports:
|
||||
- 3000:3000
|
||||
- 8005:8005
|
||||
|
||||
volumes:
|
||||
cgit-data:
|
||||
|
|
|
|||
|
|
@ -21,6 +21,6 @@ docker compose up -d
|
|||
|
||||
sleep 2
|
||||
|
||||
(cd ./var/clones && git clone http://localhost:3000/status.git)
|
||||
(cd ./var/clones && git clone http://localhost:8005/status.git)
|
||||
|
||||
docker compose down
|
||||
15
test/healthcheck/docker-compose.yaml
Normal file
15
test/healthcheck/docker-compose.yaml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
services:
|
||||
web:
|
||||
image: ghcr.io/xe/nginx-micro:v1.29.0
|
||||
|
||||
anubis:
|
||||
image: ko.local/anubis
|
||||
environment:
|
||||
TARGET: http://web:80
|
||||
USE_REMOTE_ADDRESS: "true"
|
||||
healthcheck:
|
||||
test: ["CMD", "anubis", "--healthcheck"]
|
||||
interval: 5s
|
||||
timeout: 30s
|
||||
retries: 5
|
||||
start_period: 500ms
|
||||
32
test/healthcheck/test.sh
Executable file
32
test/healthcheck/test.sh
Executable file
|
|
@ -0,0 +1,32 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
export VERSION=$GITHUB_COMMIT-test
|
||||
export KO_DOCKER_REPO=ko.local
|
||||
|
||||
set -u
|
||||
|
||||
(
|
||||
cd ../.. && \
|
||||
ko build --platform=all --base-import-paths --tags="latest" --image-user=1000 --image-annotation="" --image-label="" ./cmd/anubis -L
|
||||
)
|
||||
|
||||
docker compose up -d
|
||||
|
||||
attempt=1
|
||||
max_attempts=5
|
||||
delay=2
|
||||
|
||||
while ! docker compose ps | grep healthy; do
|
||||
if (( attempt >= max_attempts )); then
|
||||
echo "Service did not become healthy after $max_attempts attempts."
|
||||
exit 1
|
||||
fi
|
||||
echo "Waiting for healthy service... attempt $attempt"
|
||||
sleep $delay
|
||||
delay=$(( delay * 2 ))
|
||||
attempt=$(( attempt + 1 ))
|
||||
done
|
||||
|
||||
docker compose down
|
||||
2
test/healthcheck/var/.gitignore
vendored
Normal file
2
test/healthcheck/var/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
*
|
||||
!.gitignore
|
||||
Loading…
Add table
Add a link
Reference in a new issue