summaryrefslogtreecommitdiffstats
path: root/k6-tests
diff options
context:
space:
mode:
authordanielhanrahan <daniel.hanrahan@est.tech>2024-08-22 17:39:58 +0100
committerdanielhanrahan <daniel.hanrahan@est.tech>2025-02-13 10:20:00 +0000
commit3ce7fde27b0f3b9d87a1566070347af708c4b3c6 (patch)
tree4be384bb156bd66ceaa8297324515057d46cec73 /k6-tests
parentee4e49556be15ef5f881403f1cd70fab8daa68f4 (diff)
Add healthchecks for docker-compose for k6 and CSIT
To improve reliability and consistency of healthchecks in k6 and CSIT tests, they are implemented in docker-compose. This commit adds fail-fast logic, where k6 and CSITs will abort immediately if the containers won't start. Implementation: - Add healthchecks for docker containers used in tests. - Change k6 & CSIT tests to use docker healthchecks. - Tests will abort if containers are not healthy. - Start-up timeout for CPS containers is 90 seconds - Start-up timeout for other containers is 60 seconds Other Improvements: - Add --quiet-pull option to suppress junk output in Jenkins logs. - Add kpi.env file containing environment variables for KPI pipeline, just like endurance.env. This allows same code to run either suite. - Changed from port range to port number for Postgres exporter, since only a single instance runs, to be consistent with other containers Issue-ID: CPS-2630 Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech> Change-Id: I50929ca4061bb844fca87a0d6c3103aaa2c45e0b
Diffstat (limited to 'k6-tests')
-rwxr-xr-xk6-tests/setup.sh26
1 files changed, 8 insertions, 18 deletions
diff --git a/k6-tests/setup.sh b/k6-tests/setup.sh
index c794c64dd0..3a121cf157 100755
--- a/k6-tests/setup.sh
+++ b/k6-tests/setup.sh
@@ -1,6 +1,6 @@
#!/bin/bash
#
-# Copyright 2024 Nordix Foundation.
+# Copyright 2024-2025 Nordix Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -18,24 +18,14 @@
testProfile=$1
echo "Spinning off the CPS and NCMP containers for $testProfile testing..."
-if [[ "$testProfile" == "endurance" ]]; then
- docker-compose -f ../docker-compose/docker-compose.yml --profile dmi-stub --project-name "$testProfile" --env-file ../docker-compose/config/endurance.env up --quiet-pull -d
- CONTAINER_IDS=$(docker ps --filter "name=endurance-cps-and-ncmp" --format "{{.ID}}")
-else
- docker-compose -f ../docker-compose/docker-compose.yml --profile dmi-stub --project-name "$testProfile" up --quiet-pull -d
- CONTAINER_IDS=$(docker ps --filter "name=kpi-cps-and-ncmp" --format "{{.ID}}")
-fi
+ENV_FILE="../docker-compose/env/${testProfile}.env"
+docker-compose \
+ --file "../docker-compose/docker-compose.yml" \
+ --env-file "$ENV_FILE" \
+ --project-name "$testProfile" \
+ --profile dmi-stub \
+ up --quiet-pull --detach --wait || exit 1
-echo "Waiting for CPS to start..."
-READY_MESSAGE="Inventory Model updated successfully"
-
-# Check the logs for each container
-for CONTAINER_ID in $CONTAINER_IDS; do
- echo "Checking logs for container: $CONTAINER_ID"
- docker logs "$CONTAINER_ID" -f | grep -m 1 "$READY_MESSAGE" >/dev/null && echo "CPS is ready in container: $CONTAINER_ID" || true
-done
-
-# Output build information including git commit info
echo "Build information:"
curl http://localhost:8883/actuator/info
echo