diff options
author | 2024-08-22 17:39:58 +0100 | |
---|---|---|
committer | 2025-02-13 10:20:00 +0000 | |
commit | 3ce7fde27b0f3b9d87a1566070347af708c4b3c6 (patch) | |
tree | 4be384bb156bd66ceaa8297324515057d46cec73 /csit/plans | |
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 'csit/plans')
-rwxr-xr-x | csit/plans/cps/setup.sh | 48 |
1 files changed, 7 insertions, 41 deletions
diff --git a/csit/plans/cps/setup.sh b/csit/plans/cps/setup.sh index 00ed52a7ef..332be8c461 100755 --- a/csit/plans/cps/setup.sh +++ b/csit/plans/cps/setup.sh @@ -1,6 +1,11 @@ #!/bin/bash # # Copyright 2016-2017 Huawei Technologies Co., Ltd. +# Modifications copyright (c) 2017 AT&T Intellectual Property +# Modifications copyright (c) 2020-2021 Samsung Electronics Co., Ltd. +# Modifications Copyright (C) 2021 Pantheon.tech +# Modifications Copyright (C) 2021 Bell Canada. +# Modifications Copyright (C) 2021-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. @@ -14,40 +19,9 @@ # See the License for the specific language governing permissions and # limitations under the License. # -# Modifications copyright (c) 2017 AT&T Intellectual Property -# Modifications copyright (c) 2020-2021 Samsung Electronics Co., Ltd. -# Modifications Copyright (C) 2021 Pantheon.tech -# Modifications Copyright (C) 2021 Bell Canada. -# Modifications Copyright (C) 2021-2024 Nordix Foundation. -# # Branched from ccsdk/distribution to this repository Feb 23, 2021 # -check_health() -{ - TIME_OUT=120 - INTERVAL=5 - TICKER=0 - - while [ "$TICKER" -le "$TIME_OUT" ]; do - - RESPONSE=$(curl --location --request GET 'http://'$1'/actuator/health/readiness') - - if [[ "$RESPONSE" == *"UP"* ]]; then - echo "$2 started in $TICKER" - break; - fi - - sleep $INTERVAL - TICKER=$((TICKER + INTERVAL)) - - done - - if [ "$TICKER" -ge "$TIME_OUT" ]; then - echo TIME OUT: $2 session not started in $TIME_OUT seconds... Could cause problems for testing activities... - fi -} - ###################### setup env ############################ # Set env variables for docker compose export LOCAL_IP=$((ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+') || hostname -I | awk '{print $1}') @@ -58,8 +32,8 @@ export $(cut -d= -f1 $WORKSPACE/plans/cps/test.properties) ###################### setup cps-ncmp ############################ cd $CPS_HOME/docker-compose -# start CPS/NCMP, DMI Plugin, and PostgreSQL containers with docker compose -docker-compose --profile dmi-service up -d +# start CPS/NCMP, DMI Plugin, and PostgreSQL containers with docker compose, waiting for all containers to be healthy +docker-compose --profile dmi-service up -d --quiet-pull --wait || exit 1 ###################### setup sdnc ####################################### source $WORKSPACE/plans/cps/sdnc/sdnc_setup.sh @@ -67,14 +41,6 @@ source $WORKSPACE/plans/cps/sdnc/sdnc_setup.sh ###################### setup pnfsim ##################################### docker-compose -f $WORKSPACE/plans/cps/pnfsim/docker-compose.yml up -d -###################### verify ncmp-cps health ########################## - -check_health $CPS_CORE_HOST:$CPS_CORE_PORT 'cps-ncmp' - -###################### verify dmi health ########################## - -check_health $DMI_HOST:$DMI_PORT 'dmi-plugin' - ###################### ROBOT Configurations ########################## # Pass variables required for Robot test suites in ROBOT_VARIABLES ROBOT_VARIABLES="-v CPS_CORE_HOST:$CPS_CORE_HOST -v CPS_CORE_PORT:$CPS_CORE_PORT -v DMI_HOST:$LOCAL_IP -v DMI_PORT:$DMI_PORT -v DMI_VERSION:$DMI_VERSION -v DMI_CSIT_STUB_HOST:$LOCAL_IP -v DMI_CSIT_STUB_PORT:$DMI_DEMO_STUB_PORT -v DMI_AUTH_ENABLED:$DMI_AUTH_ENABLED -v DATADIR_CPS_CORE:$WORKSPACE/data/cps-core -v DATADIR_NCMP:$WORKSPACE/data/ncmp -v DATADIR_SUBS_NOTIFICATION:$WORKSPACE/data/subscription-notification --exitonfailure" |