aboutsummaryrefslogtreecommitdiffstats
path: root/csit/plans
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 /csit/plans
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 'csit/plans')
-rwxr-xr-xcsit/plans/cps/setup.sh48
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"