diff options
author | 2024-08-22 17:39:58 +0100 | |
---|---|---|
committer | 2025-02-13 10:20:00 +0000 | |
commit | 3ce7fde27b0f3b9d87a1566070347af708c4b3c6 (patch) | |
tree | 4be384bb156bd66ceaa8297324515057d46cec73 /k6-tests | |
parent | ee4e49556be15ef5f881403f1cd70fab8daa68f4 (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-x | k6-tests/setup.sh | 26 |
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 |