From f851a5eda60629690cc078d4d659e2c296d4d69f Mon Sep 17 00:00:00 2001 From: rameshiyer27 Date: Tue, 2 Jul 2024 09:16:56 +0000 Subject: Add docker compose for clamp replica New docker-compose for installing clamp in replica CSIT can be triggerred against replica with "clamp-replica" keyword Issue-ID: POLICY-4913 Signed-off-by: zrrmmua Change-Id: I2b0344c02152387d66fe0c3069a997120bdf0f9d --- compose/config/nginx/nginx-acm.conf | 17 ++++ compose/docker-compose.acm.scale.yml | 147 +++++++++++++++++++++++++++++++++++ compose/docker-compose.pdp.scale.yml | 23 +----- compose/start-acm-replica.sh | 40 ++++++++++ compose/start-multiple-pdp.sh | 8 +- csit/run-project-csit.sh | 16 +++- 6 files changed, 225 insertions(+), 26 deletions(-) create mode 100644 compose/config/nginx/nginx-acm.conf create mode 100644 compose/docker-compose.acm.scale.yml create mode 100755 compose/start-acm-replica.sh diff --git a/compose/config/nginx/nginx-acm.conf b/compose/config/nginx/nginx-acm.conf new file mode 100644 index 00000000..59d12109 --- /dev/null +++ b/compose/config/nginx/nginx-acm.conf @@ -0,0 +1,17 @@ +user nginx; + +events { + worker_connections 1000; +} + +http { + upstream runtime { + server policy-clamp-runtime-acm-replica:6969; + } + server { + listen 30007; + location / { + proxy_pass http://runtime; + } + } +} diff --git a/compose/docker-compose.acm.scale.yml b/compose/docker-compose.acm.scale.yml new file mode 100644 index 00000000..676ffa2d --- /dev/null +++ b/compose/docker-compose.acm.scale.yml @@ -0,0 +1,147 @@ +# +# ===========LICENSE_START==================================================== +# 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. +# 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===================================================== +# + +services: + policy-clamp-runtime-acm-replica: + image: ${CONTAINER_LOCATION}onap/policy-clamp-runtime-acm:${POLICY_CLAMP_VERSION} + hostname: policy-clamp-runtime-acm + depends_on: + - policy-db-migrator-clamp + - kafka + - jaeger + - policy-clamp-ac-http-ppnt-replica + - policy-clamp-ac-k8s-ppnt-replica + - policy-clamp-ac-pf-ppnt-replica + - policy-clamp-ac-sim-ppnt + - apex-pdp + expose: + - 6969 + deploy: + mode: replicated + replicas: ${REPLICAS} + environment: + OTEL_SERVICE_NAME: acm-r + OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf + OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf + OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318 + # Tracing can be configured for grpc or http - default is http + #OTEL_EXPORTER_OTLP_PROTOCOL: grpc + #OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: grpc + #OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4317 + volumes: + - ./config/clamp/AcRuntimeParameters.yaml:/opt/app/policy/clamp/etc/AcRuntimeParameters.yaml + - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro + - ./config/clamp/acm-runtime.sh:/opt/app/policy/clamp/bin/acm-runtime.sh:rw + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './acm-runtime.sh', + 'mariadb', '3306', + 'kafka', '9092', + 'policy-clamp-ac-http-ppnt', '6969', + 'policy-clamp-ac-k8s-ppnt', '6969', + 'policy-clamp-ac-pf-ppnt', '6969', + 'policy-clamp-ac-sim-ppnt', '6969' + ] + policy-clamp-ac-http-ppnt-replica: + image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-http-ppnt:${POLICY_CLAMP_PPNT_VERSION} + hostname: policy-clamp-ac-http-ppnt + depends_on: + - kafka + - jaeger + expose: + - 6969 + deploy: + mode: replicated + replicas: ${REPLICAS} + environment: + OTEL_SERVICE_NAME: http-ppnt + OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf + OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf + OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318 + volumes: + - ./config/clamp/HttpParticipantParameters.yaml:/opt/app/policy/clamp/etc/HttpParticipantParameters.yaml + - ./config/clamp/http-participant.sh:/opt/app/policy/clamp/bin/http-participant.sh:rw + - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './http-participant.sh', + 'kafka', '9092' + ] + policy-clamp-ac-k8s-ppnt-replica: + image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-k8s-ppnt:${POLICY_CLAMP_PPNT_VERSION} + hostname: policy-clamp-ac-k8s-ppnt + depends_on: + - kafka + - jaeger + environment: + OTEL_SERVICE_NAME: k8s-ppnt + OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf + OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf + OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318 + expose: + - 6969 + deploy: + mode: replicated + replicas: ${REPLICAS} + volumes: + - ./config/clamp/KubernetesParticipantParameters.yaml:/opt/app/policy/clamp/etc/KubernetesParticipantParameters.yaml + - ./config/clamp/kubernetes-participant.sh:/opt/app/policy/clamp/bin/kubernetes-participant.sh:rw + - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './kubernetes-participant.sh', + 'kafka', '9092' + ] + policy-clamp-ac-pf-ppnt-replica: + image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-pf-ppnt:${POLICY_CLAMP_PPNT_VERSION} + hostname: policy-clamp-ac-pf-ppnt + depends_on: + - kafka + - jaeger + expose: + - 6969 + deploy: + mode: replicated + replicas: ${REPLICAS} + environment: + OTEL_SERVICE_NAME: policy-ppnt + OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf + OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf + OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318 + volumes: + - ./config/clamp/PolicyParticipantParameters.yaml:/opt/app/policy/clamp/etc/PolicyParticipantParameters.yaml:ro + - ./config/clamp/policy-participant.sh:/opt/app/policy/clamp/bin/policy-participant.sh:rw + - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './policy-participant.sh', + 'kafka', '9092' + ] + nginx: + image: ${CONTAINER_LOCATION}library/nginx:latest + volumes: + - ./config/nginx/nginx-acm.conf:/etc/nginx/nginx.conf:ro + depends_on: + - policy-clamp-runtime-acm-replica + ports: + - ${ACM_PORT}:${ACM_PORT} + diff --git a/compose/docker-compose.pdp.scale.yml b/compose/docker-compose.pdp.scale.yml index a10264a5..242cb3d8 100644 --- a/compose/docker-compose.pdp.scale.yml +++ b/compose/docker-compose.pdp.scale.yml @@ -50,25 +50,4 @@ services: - apexpdp ports: - ${APEX_PORT}:${APEX_PORT} - zookeeper: - image: confluentinc/cp-zookeeper:latest - environment: - ZOOKEEPER_CLIENT_PORT: 2181 - ZOOKEEPER_TICK_TIME: 2000 - ports: - - 2181:2181 - kafka: - image: confluentinc/cp-kafka:latest - container_name: kafka - depends_on: - - zookeeper - ports: - - 29092:29092 - - 9092:9092 - environment: - KAFKA_BROKER_ID: 1 - KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT - KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 + diff --git a/compose/start-acm-replica.sh b/compose/start-acm-replica.sh new file mode 100755 index 00000000..373261e6 --- /dev/null +++ b/compose/start-acm-replica.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# +# ============LICENSE_START==================================================== +# 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. +# 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. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END====================================================== + +if [ -z "${WORKSPACE}" ]; then + WORKSPACE=$(git rev-parse --show-toplevel) + export WORKSPACE +fi + +if [ -z "$ROBOT_LOG_DIR" ]; then + export ROBOT_LOG_DIR=/tmp/ +fi + +COMPOSE_FOLDER="${WORKSPACE}"/compose + +cd ${COMPOSE_FOLDER} + +echo "Configuring docker compose..." +source export-ports.sh > /dev/null 2>&1 +source get-versions.sh > /dev/null 2>&1 + +export REPLICAS=${1} +docker compose -f docker-compose.yml -f docker-compose.acm.scale.yml up -d nginx +cd ${WORKSPACE} diff --git a/compose/start-multiple-pdp.sh b/compose/start-multiple-pdp.sh index 30572875..b97760e7 100755 --- a/compose/start-multiple-pdp.sh +++ b/compose/start-multiple-pdp.sh @@ -24,6 +24,10 @@ if [ -z "${WORKSPACE}" ]; then fi COMPOSE_FOLDER="${WORKSPACE}"/compose +if [ -z "$ROBOT_LOG_DIR" ]; then + export ROBOT_LOG_DIR=/tmp/ +fi + cd ${COMPOSE_FOLDER} echo "Configuring docker compose..." @@ -31,6 +35,6 @@ source export-ports.sh > /dev/null 2>&1 source get-versions.sh > /dev/null 2>&1 export REPLICAS=${1} -docker-compose -f docker-compose.yml -f docker-compose.pdp.scale.yml up -d apexpdp nginx grafana +docker compose -f docker-compose.yml -f docker-compose.pdp.scale.yml up -d apexpdp nginx grafana -cd ${WORKSPACE} \ No newline at end of file +cd ${WORKSPACE} diff --git a/csit/run-project-csit.sh b/csit/run-project-csit.sh index bd2a33eb..aa19b257 100755 --- a/csit/run-project-csit.sh +++ b/csit/run-project-csit.sh @@ -47,6 +47,14 @@ function setup_clamp() { bash "${SCRIPTS}"/wait_for_rest.sh localhost "${ACM_PORT}" } +function setup_clamp_replica() { + export ROBOT_FILES="policy-clamp-test.robot" + export TEST_ENV="docker" + source "${WORKSPACE}"/compose/start-acm-replica.sh 2 + sleep 30 + bash "${SCRIPTS}"/wait_for_rest.sh localhost "${ACM_PORT}" +} + function setup_api() { export ROBOT_FILES="api-test.robot api-slas.robot" source "${WORKSPACE}"/compose/start-compose.sh api --grafana @@ -172,6 +180,10 @@ function set_project_config() { setup_clamp ;; + clamp-replica | policy-clamp-replica) + setup_clamp_replica + ;; + api | policy-api) setup_api ;; @@ -189,11 +201,11 @@ function set_project_config() { ;; apex-pdp-medium | policy-apex-pdp-medium) - setup_apex + setup_apex_medium ;; apex-pdp-large | policy-apex-pdp-large) - setup_apex + setup_apex_large ;; xacml-pdp | policy-xacml-pdp) -- cgit 1.2.3-korg