Add docker compose for clamp replica 71/138371/2
authorrameshiyer27 <ramesh.murugan.iyer@est.tech>
Tue, 2 Jul 2024 09:16:56 +0000 (09:16 +0000)
committerRamesh Murugan Iyer <ramesh.murugan.iyer@est.tech>
Thu, 4 Jul 2024 22:00:18 +0000 (22:00 +0000)
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 <ramesh.murugan.iyer@est.tech>
Change-Id: I2b0344c02152387d66fe0c3069a997120bdf0f9d

compose/config/nginx/nginx-acm.conf [new file with mode: 0644]
compose/docker-compose.acm.scale.yml [new file with mode: 0644]
compose/docker-compose.pdp.scale.yml
compose/start-acm-replica.sh [new file with mode: 0755]
compose/start-multiple-pdp.sh
csit/run-project-csit.sh

diff --git a/compose/config/nginx/nginx-acm.conf b/compose/config/nginx/nginx-acm.conf
new file mode 100644 (file)
index 0000000..59d1210
--- /dev/null
@@ -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 (file)
index 0000000..676ffa2
--- /dev/null
@@ -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}
+
index a10264a..242cb3d 100644 (file)
@@ -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 (executable)
index 0000000..373261e
--- /dev/null
@@ -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}
index 3057287..b97760e 100755 (executable)
@@ -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}
index bd2a33e..aa19b25 100755 (executable)
@@ -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)