From 3ce7fde27b0f3b9d87a1566070347af708c4b3c6 Mon Sep 17 00:00:00 2001 From: danielhanrahan Date: Thu, 22 Aug 2024 17:39:58 +0100 Subject: 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 Change-Id: I50929ca4061bb844fca87a0d6c3103aaa2c45e0b --- k6-tests/setup.sh | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) (limited to 'k6-tests') 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 -- cgit 1.2.3-korg