summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhalil.cakal <halil.cakal@est.tech>2024-06-17 09:24:59 +0100
committerhalil.cakal <halil.cakal@est.tech>2024-07-01 15:40:54 +0100
commit3a9613f75519176efb2eb50bde88f268535e0ca9 (patch)
tree96a3faf44c9ea0b91d99848988b67d93ee014fa0
parentb8c88b9c157fac8b165cf955483649f76e19fd35 (diff)
Setup automated tests with two replicas of cps-and-ncmp
- this change for two test suits: CSIT and K6 - increase cps-and-ncmp replicas to 2 - introduce nginx as load-balancer - set proxies inside nginx for the cps-and-ncmp URI paths - upgrade hazelcast-spring to 5.3.7 Issue-ID: CPS-2038 Change-Id: If1b6c1e1218af16b24cc061507ea9b25d277d143 Signed-off-by: halil.cakal <halil.cakal@est.tech>
-rw-r--r--cps-dependencies/pom.xml2
-rwxr-xr-xcsit/run-csit.sh5
-rw-r--r--docker-compose/docker-compose.yml18
-rw-r--r--docker-compose/nginx.conf52
-rw-r--r--docker-compose/proxy_params4
-rwxr-xr-xk6-tests/setup.sh12
6 files changed, 85 insertions, 8 deletions
diff --git a/cps-dependencies/pom.xml b/cps-dependencies/pom.xml
index 380c00a391..16b1697efc 100644
--- a/cps-dependencies/pom.xml
+++ b/cps-dependencies/pom.xml
@@ -146,7 +146,7 @@
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast-spring</artifactId>
- <version>5.3.1</version>
+ <version>5.3.7</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
diff --git a/csit/run-csit.sh b/csit/run-csit.sh
index 0981fc6edd..7f8f6b5270 100755
--- a/csit/run-csit.sh
+++ b/csit/run-csit.sh
@@ -2,6 +2,7 @@
#
# Copyright 2016-2017 Huawei Technologies Co., Ltd.
# Modification Copyright 2019-2021 © Samsung Electronics Co., Ltd.
+# Modification Copyright (C) 2024 Nordix Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -186,6 +187,10 @@ export TESTOPTIONS="${2}"
rm -rf "$WORKSPACE/archives/$TESTPLAN"
mkdir -p "$WORKSPACE/archives/$TESTPLAN"
+rm -rf "$WORKSPACE/nginx-log"
+mkdir -p "$WORKSPACE/nginx-log"
+chmod -R 755 "$WORKSPACE/nginx-log"
+
TESTPLANDIR="${WORKSPACE}/${TESTPLAN}"
# Run installation of prerequired libraries
diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml
index 5620c4c17e..f75915ae04 100644
--- a/docker-compose/docker-compose.yml
+++ b/docker-compose/docker-compose.yml
@@ -43,11 +43,7 @@ services:
memory: 3G
cps-and-ncmp:
- container_name: cps-and-ncmp
image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/cps-and-ncmp:${CPS_VERSION:-latest}
- ports:
- - ${CPS_CORE_PORT:-8883}:8080
- # - ${CPS_CORE_DEBUG_PORT:-5005}:5005
environment:
CPS_USERNAME: ${CPS_CORE_USERNAME:-cpsuser}
CPS_PASSWORD: ${CPS_CORE_PASSWORD:-cpsr0cks!}
@@ -58,11 +54,11 @@ services:
DMI_PASSWORD: ${DMI_PASSWORD:-cpsr0cks!}
KAFKA_BOOTSTRAP_SERVER: kafka:29092
notification.enabled: 'true'
- # JAVA_TOOL_OPTIONS: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
restart: unless-stopped
depends_on:
- dbpostgresql
deploy:
+ replicas: 2
resources:
reservations:
cpus: '2'
@@ -71,6 +67,18 @@ services:
cpus: '3'
memory: 3G
+ nginx:
+ container_name: nginx-loadbalancer
+ image: nginx:latest
+ ports:
+ - ${CPS_CORE_PORT:-8883}:80
+ depends_on:
+ - cps-and-ncmp
+ volumes:
+ - ./nginx.conf:/etc/nginx/nginx.conf
+ - ./proxy_params:/etc/nginx/proxy_params
+ - ../csit/nginx-log:/var/log/nginx
+
### if kafka is not required comment out zookeeper and kafka ###
zookeeper:
image: confluentinc/cp-zookeeper:6.2.1
diff --git a/docker-compose/nginx.conf b/docker-compose/nginx.conf
new file mode 100644
index 0000000000..17fad1b876
--- /dev/null
+++ b/docker-compose/nginx.conf
@@ -0,0 +1,52 @@
+# ============LICENSE_START===============================================
+# Copyright (C) 2024 Nordix Foundation. All rights reserved.
+# ========================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=================================================
+
+events { }
+
+http {
+
+ # Add more server entries here for scaling or load balancing
+ upstream cps-and-ncmp {
+ server cps-and-ncmp:8080;
+ }
+
+ server {
+ listen 80;
+
+ # Root location proxying
+ location / {
+ proxy_pass http://cps-and-ncmp;
+ include /etc/nginx/proxy_params; # Include common proxy parameters
+ }
+
+ location /swagger-ui/ { # Swagger UI location
+ proxy_pass http://cps-and-ncmp/swagger-ui/;
+ }
+
+ location /v3/api-docs/ { # API docs location
+ proxy_pass http://cps-and-ncmp/v3/api-docs/;
+ }
+
+ location /actuator/health { # Actuator health endpoint
+ proxy_pass http://cps-and-ncmp/actuator/health;
+ }
+
+ location /actuator/health/readiness { # Actuator readiness endpoint
+ proxy_pass http://cps-and-ncmp/actuator/health/readiness;
+ }
+
+ }
+}
diff --git a/docker-compose/proxy_params b/docker-compose/proxy_params
new file mode 100644
index 0000000000..ab092a98f3
--- /dev/null
+++ b/docker-compose/proxy_params
@@ -0,0 +1,4 @@
+proxy_set_header Host $host;
+proxy_set_header X-Real-IP $remote_addr;
+proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+proxy_set_header X-Forwarded-Proto $scheme; \ No newline at end of file
diff --git a/k6-tests/setup.sh b/k6-tests/setup.sh
index 4805e2ea43..86f6d26acd 100755
--- a/k6-tests/setup.sh
+++ b/k6-tests/setup.sh
@@ -18,5 +18,13 @@
docker-compose -f ../docker-compose/docker-compose.yml --profile dmi-stub up -d
echo "Waiting for CPS to start..."
-READY_MESSAGE='Processing module sync fetched 0 advised cm handles from DB'
-docker logs cps-and-ncmp -f | grep -m 1 "$READY_MESSAGE" >/dev/null || true
+READY_MESSAGE="Processing module sync fetched 0 advised cm handles from DB"
+
+# Get the container IDs of the cps-and-ncmp replicas
+CONTAINER_IDS=$(docker ps --filter "name=cps-and-ncmp" --format "{{.ID}}")
+
+# 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 || true
+done