From d802fd9a6c6aaffa330a30b68f7896ffebaa4fcd Mon Sep 17 00:00:00 2001 From: "adheli.tavares" Date: Thu, 15 Aug 2024 12:39:19 +0100 Subject: Change default database to PostgreSQL Issue-ID: POLICY-5118 Change-Id: I22ece93aca3cbc5e406e4942ce5255a7b7b60761 Signed-off-by: adheli.tavares --- compose/README.md | 59 ++- compose/compose.acm.scale.yml | 211 +++++++++ compose/compose.common.yml | 143 ++++++ compose/compose.mariadb.yml | 54 +++ compose/compose.pdp.scale.yml | 94 ++++ compose/compose.postgres.yml | 56 +++ compose/compose.yaml | 352 ++++++++++++++ compose/config/api/apiParameters.yaml | 30 +- compose/config/api/apiParametersPostgres.yaml | 84 ---- compose/config/clamp/AcRuntimeParameters.yaml | 27 +- .../config/clamp/policy-clamp-create-tables.sql | 275 ----------- compose/config/db-migrator/init.sh | 19 +- compose/config/db-migrator/init_pg.sh | 23 +- compose/config/db-pg/db-pg.conf | 11 +- compose/config/db-pg/db-pg.sh | 7 +- compose/config/db/db.sh | 3 +- .../drools-applications/env/base-mariadb.conf | 151 ++++++ .../drools-applications/env/base-postgres.conf | 148 ++++++ compose/config/drools-applications/env/base.conf | 150 ------ compose/config/drools-pdp/env/base-mariadb.conf | 138 ++++++ compose/config/drools-pdp/env/base-postgres.conf | 138 ++++++ compose/config/drools-pdp/env/base.conf | 138 ------ compose/config/pap/papParameters.yaml | 25 +- compose/config/pap/papParametersPostgres.yaml | 88 ---- compose/config/policy-gui/application.yaml | 37 -- compose/config/policy-gui/groups.json | 137 ------ compose/config/policy-gui/logback.xml | 119 ----- compose/config/xacml-pdp/xacml-mariadb.properties | 54 +++ compose/config/xacml-pdp/xacml-postgres.properties | 54 +++ compose/docker-compose.acm.scale.yml | 147 ------ compose/docker-compose.pdp.scale.yml | 53 --- compose/docker-compose.postgres.yml | 194 -------- compose/docker-compose.yml | 517 --------------------- compose/export-ports.sh | 13 - compose/get-versions.sh | 8 +- compose/start-acm-replica.sh | 60 ++- compose/start-compose.sh | 39 +- compose/start-multiple-pdp.sh | 62 ++- compose/start-postgres-tests.sh | 37 -- compose/stop-compose.sh | 34 +- csit/resources/scripts/wait_for_rest.sh | 2 +- .../resources/tests/drools-applications-test.robot | 7 +- csit/run-acm-regression.sh | 13 +- csit/run-project-csit.sh | 124 +++-- policy-db-migrator/src/main/docker/db-migrator-pg | 37 +- 45 files changed, 1981 insertions(+), 2191 deletions(-) create mode 100644 compose/compose.acm.scale.yml create mode 100644 compose/compose.common.yml create mode 100644 compose/compose.mariadb.yml create mode 100644 compose/compose.pdp.scale.yml create mode 100644 compose/compose.postgres.yml create mode 100644 compose/compose.yaml delete mode 100644 compose/config/api/apiParametersPostgres.yaml delete mode 100644 compose/config/clamp/policy-clamp-create-tables.sql create mode 100644 compose/config/drools-applications/env/base-mariadb.conf create mode 100644 compose/config/drools-applications/env/base-postgres.conf delete mode 100644 compose/config/drools-applications/env/base.conf create mode 100644 compose/config/drools-pdp/env/base-mariadb.conf create mode 100644 compose/config/drools-pdp/env/base-postgres.conf delete mode 100644 compose/config/drools-pdp/env/base.conf delete mode 100644 compose/config/pap/papParametersPostgres.yaml delete mode 100644 compose/config/policy-gui/application.yaml delete mode 100644 compose/config/policy-gui/groups.json delete mode 100644 compose/config/policy-gui/logback.xml create mode 100644 compose/config/xacml-pdp/xacml-mariadb.properties create mode 100644 compose/config/xacml-pdp/xacml-postgres.properties delete mode 100644 compose/docker-compose.acm.scale.yml delete mode 100644 compose/docker-compose.pdp.scale.yml delete mode 100644 compose/docker-compose.postgres.yml delete mode 100644 compose/docker-compose.yml delete mode 100644 compose/start-postgres-tests.sh diff --git a/compose/README.md b/compose/README.md index ada34e1c..290bdf4e 100644 --- a/compose/README.md +++ b/compose/README.md @@ -4,7 +4,7 @@ The PF docker compose starts a small instance of docker containers for PF compon ## Features -- Starts all components, including Prometheus/Grafana dashboard and GUI (ACM and Apex) +- Starts all components, including Prometheus/Grafana dashboard - Can start specific components - Expose fixed ports so all the REST endpoints can be called with localhost:component_port @@ -21,17 +21,11 @@ Things to be installed beforehand: Assuming the docker repository has been cloned and workdir is ../docker/compose -- Install all PF components (excluding GUI) +- Install all PF components ```sh ./start-compose.sh ``` -- Install all PF components + GUI - -```sh -./start-compose.sh --gui -``` - - Install an specific PF component (accepted options: api pap apex-pdp distribution drools-pdp drools-apps xacml-pdp policy-clamp-runtime-acm) @@ -56,11 +50,13 @@ policy-clamp-runtime-acm) ./start-compose.sh apex-pdp --grafana ``` -## Docker image localization +## Docker image download localization The docker images are always downloaded from nexus repository, but if needed to build a local -image, edit the ``export-ports.sh`` script and change the variable ``CONTAINER_LOCATION`` -to be empty. +image, edit the ``get-versions.sh`` script and change the variable ``LOCAL_IMAGES`` +to `true` or edit the image tag in the docker compose file. +Changing the variable to `true` will ensure that the newly built images locally are being used +by not requesting a download from nexus and using the image tagged as latest. ## Docker image versions @@ -71,10 +67,10 @@ Note: if latest Policy-API docker image is 2.8-SNAPSHOT-latest, but on nexus it 2 days ago and in local environment it's 3 months old - it will use the 3 months old image, so it's recommended to keep an eye on it. -If needed, the version can be edited on docker-compose.yml and docker-compose.gui.yml +If needed, the version can be edited on any docker compose yml file. i.e: need to change db-migrator version -from docker-compose.yml: +from compose.{database}.yml: ``image: ${CONTAINER_LOCATION}onap/policy-db-migrator:${POLICY_DOCKER_VERSION}`` replace the ${POLICY_DOCKER_VERSION} for the specific version needed @@ -82,19 +78,42 @@ replace the ${POLICY_DOCKER_VERSION} for the specific version needed ## Logs -To collect the docker-compose logs, simply run the following: +Use ``docker compose logs`` or `docker logs ${container_name}` instructions on how to collect logs. + +## Uninstall + +Simply run the ``stop-compose.sh`` script. This will also generate logs from the services started with compose. ```sh -./start-compose.sh logs +./stop-compose.sh ``` -Note: these are logs for installation only, not actual application usage -It will generate a ``docker-compose.log`` file with the result. +## Database support -## Uninstall +From Oslo version onwards, this docker compose setup uses Postgres database as default; MariaDB is still available, +but support might be limited. -Simply run the ``stop-compose.sh`` script. +To start docker compose with MariaDB, add a flag to use it: ```sh -./stop-compose.sh +# that will start apex-pdp and its dependencies (pap, api, mariadb, simulator) +./start-compose.sh apex-pdp --mariadb +# that will start apex-pdp and its dependencies (pap, api, postgres, simulator) +./start-compose.sh apex-pdp ``` + +### Docker compose files + +To make it easier and clear how the docker compose system works, there are three files describing the services +- compose.common.yml + - Has policy services that don't connect directly to database: apex-pdp and distribution + - Simulator service + - ACM-R Participants that don't connect directly to database. + - Messaging services (kafka, zookeeper) + - Metrics services (prometheus, grafana, jaeger) +- compose.postgres.yml + - All policy services that connect directly to database with Postgres configurations + - Postgres database and policy-db-migrator working towards it +- compose.mariadb.yml + - All policy services that connect directly to database with MariaDB configurations + - MariaDB database and policy-db-migrator working towards it diff --git a/compose/compose.acm.scale.yml b/compose/compose.acm.scale.yml new file mode 100644 index 00000000..ee6679b2 --- /dev/null +++ b/compose/compose.acm.scale.yml @@ -0,0 +1,211 @@ +# +# ===========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===================================================== +# + +include: + - compose.common.yml + - compose.postgres.yml + +services: + api: + image: ${CONTAINER_LOCATION}onap/policy-api:${POLICY_API_VERSION} + container_name: policy-api + hostname: policy-api + depends_on: + - policy-db-migrator + ports: + - ${API_PORT}:6969 + volumes: + - ./config/api/apiParameters.yaml:/opt/app/policy/api/etc/apiParameters.yaml:ro + - ./config/api/logback.xml:/opt/app/policy/api/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/api/bin/wait_for_port.sh:ro + entrypoint: ./wait_for_port.sh + command: [ + '-c', './policy-api.sh', + 'policy-db-migrator', '6824' + ] + + pap: + image: ${CONTAINER_LOCATION}onap/policy-pap:${POLICY_PAP_VERSION} + container_name: policy-pap + hostname: policy-pap + depends_on: + - api + - kafka + ports: + - ${PAP_PORT}:6969 + volumes: + - ./config/pap/papParameters.yaml:/opt/app/policy/pap/etc/papParameters.yaml:ro + - ./config/clamp/groups.json:/opt/app/policy/pap/etc/mounted/groups.json:ro + - ./config/pap/logback.xml:/opt/app/policy/pap/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/pap/bin/wait_for_port.sh:ro + entrypoint: ./wait_for_port.sh + command: [ + '-c', './policy-pap.sh', + 'api', '6969', + 'kafka', '9092' + ] + + apex-pdp: + image: ${CONTAINER_LOCATION}onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION} + container_name: policy-apex-pdp + hostname: policy-apex-pdp + depends_on: + - simulator + - kafka + - pap + ports: + - ${APEX_PORT}:6969 + - ${APEX_EVENTS_PORT}:23324 + volumes: + - ./config/apex-pdp/OnapPfConfig.json:/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json:ro + - ./config/apex-pdp/logback.xml:/opt/app/policy/apex-pdp/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', '/opt/app/policy/apex-pdp/bin/apexOnapPf.sh -c /opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json', + 'kafka', '9092', + 'pap', '6969' + ] + + 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 + - apex-pdp + - 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 + expose: + - 6969 + deploy: + mode: replicated + replicas: ${REPLICAS:-2} + 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', + 'apex-pdp', '6969', + '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:-2} + 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:-2} + 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:-2} + 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/compose.common.yml b/compose/compose.common.yml new file mode 100644 index 00000000..40404c85 --- /dev/null +++ b/compose/compose.common.yml @@ -0,0 +1,143 @@ +# +# ===========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: + + simulator: + image: ${CONTAINER_LOCATION}onap/policy-models-simulator:${POLICY_MODELS_VERSION} + container_name: simulator + hostname: simulator + networks: + default: + aliases: + - aai-sim + - grpc-sim + - sdnc-sim + - so-sim + - vfc-sim + volumes: + - ./config/sim-all:/opt/app/policy/simulators/etc/mounted:ro + - ./config/sim-all/logback.xml:/opt/app/policy/simulators/etc/mounted/logback.xml:ro + expose: + - 6666 + - 6668 + - 6669 + - 6670 + - 6680 + ports: + - ${SIMULATOR_PORT}:6666 + + policy-clamp-ac-sim-ppnt: + image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-sim-ppnt:${POLICY_CLAMP_PPNT_VERSION} + container_name: policy-clamp-ac-sim-ppnt + hostname: policy-clamp-ac-sim-ppnt + depends_on: + - kafka + - jaeger + environment: + OTEL_SERVICE_NAME: sim-ppnt + OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf + OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf + OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318 + SPRING_PROFILES_ACTIVE: ${PPNT_PROFILE:-default} + ports: + - ${SIM_PARTICIPANT_PORT}:6969 + volumes: + - ./config/clamp/SimulatorParticipantParameters.yaml:/opt/app/policy/clamp/etc/SimulatorParticipantParameters.yaml:ro + - ./config/clamp/sim-participant.sh:/opt/app/policy/clamp/bin/sim-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', './sim-participant.sh', + 'kafka', '9092' + ] + +# metrics services: + prometheus: + image: nexus3.onap.org:10001/prom/prometheus:latest + container_name: prometheus + hostname: prometheus + ports: + - ${PROMETHEUS_PORT}:9090 + volumes: + - ./metrics/prometheus.yml:/etc/prometheus/prometheus.yml + + grafana: + image: nexus3.onap.org:10001/grafana/grafana:latest + container_name: grafana + hostname: grafana + depends_on: + - prometheus + ports: + - ${GRAFANA_PORT}:3000 + volumes: + - ./metrics/dashboard.yaml:/etc/grafana/provisioning/dashboards/dashboard.yaml + - ./metrics/datasource.yaml:/etc/grafana/provisioning/datasources/datasource.yaml + - ./metrics/dashboards:/var/lib/grafana/dashboards + +# messaging services: + zookeeper: + image: confluentinc/cp-zookeeper:latest + container_name: zookeeper + hostname: zookeeper + ports: + - "2181:2181" + environment: + ZOOKEEPER_CLIENT_PORT: 2181 + + kafka: + image: confluentinc/cp-kafka:latest + container_name: kafka + hostname: kafka + depends_on: + - zookeeper + ports: + - "9092:9092" + - "29092:29092" + environment: + KAFKA_BROKER_ID: 1 + KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181" + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 + KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 + KAFKA_ADVERTISED_HOST_NAME: kafka + + jaeger: + image: jaegertracing/all-in-one:1.58 + container_name: jaeger + ports: + - "4318:4318" + - "4317:4317" + - "14250:14250" + - "16686:16686" + environment: + - COLLECTOR_OTLP_ENABLED=true + +# integration tests: + csit-tests: + image: policy-csit-robot:latest + container_name: policy-csit + hostname: policy-csit + volumes: + - ${ROBOT_LOG_DIR:-/tmp}:/tmp/results + - /tmp/distribution:/tmp/distribution + environment: + ROBOT_FILE: ${ROBOT_FILES:-none} + TEST_ENV: ${TEST_ENV:-docker} diff --git a/compose/compose.mariadb.yml b/compose/compose.mariadb.yml new file mode 100644 index 00000000..2dbae99f --- /dev/null +++ b/compose/compose.mariadb.yml @@ -0,0 +1,54 @@ +# +# ===========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 running against mariadb + +services: + + mariadb: + image: nexus3.onap.org:10001/mariadb:${POLICY_MARIADB_VER} + container_name: mariadb + hostname: mariadb + command: [ '--lower-case-table-names=1', '--wait_timeout=28800', '--default-authentication-plugin=mysql_native_password' ] + env_file: config/db/db.conf + volumes: + - ./config/db:/docker-entrypoint-initdb.d:ro + ports: + - "3306:3306" + + policy-db-migrator: + image: ${CONTAINER_LOCATION}onap/policy-db-migrator:${POLICY_DOCKER_VERSION} + container_name: policy-db-migrator + hostname: policy-db-migrator + depends_on: + - mariadb + expose: + - 6824 + env_file: config/db/db.conf + environment: + SQL_DB: policyadmin clampacm pooling operationshistory + SQL_HOST: mariadb + volumes: + - ./config/db-migrator/init.sh:/opt/app/policy/bin/db_migrator_policy_init.sh: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', + '/opt/app/policy/bin/db_migrator_policy_init.sh', + 'mariadb', '3306' + ] diff --git a/compose/compose.pdp.scale.yml b/compose/compose.pdp.scale.yml new file mode 100644 index 00000000..b4b199f7 --- /dev/null +++ b/compose/compose.pdp.scale.yml @@ -0,0 +1,94 @@ +# +# ===========LICENSE_START==================================================== +# Copyright (C) 2023-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===================================================== +# + +include: + - compose.common.yml + - compose.postgres.yml + +services: + api: + image: ${CONTAINER_LOCATION}onap/policy-api:${POLICY_API_VERSION} + container_name: policy-api + hostname: policy-api + depends_on: + - policy-db-migrator + ports: + - ${API_PORT}:6969 + volumes: + - ./config/api/apiParameters.yaml:/opt/app/policy/api/etc/apiParameters.yaml:ro + - ./config/api/logback.xml:/opt/app/policy/api/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/api/bin/wait_for_port.sh:ro + entrypoint: ./wait_for_port.sh + command: [ + '-c', './policy-api.sh', + 'policy-db-migrator', '6824' + ] + + pap: + image: ${CONTAINER_LOCATION}onap/policy-pap:${POLICY_PAP_VERSION} + container_name: policy-pap + hostname: policy-pap + depends_on: + - api + - kafka + ports: + - ${PAP_PORT}:6969 + volumes: + - ./config/pap/papParameters.yaml:/opt/app/policy/pap/etc/papParameters.yaml:ro + - ./config/apex-pdp/groups.json:/opt/app/policy/pap/etc/mounted/groups.json:ro + - ./config/pap/logback.xml:/opt/app/policy/pap/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/pap/bin/wait_for_port.sh:ro + entrypoint: ./wait_for_port.sh + command: [ + '-c', './policy-pap.sh', + 'api', '6969', + 'kafka', '9092' + ] + + apexpdp: + image: ${CONTAINER_LOCATION}onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION} + hostname: policy-apex-pdp + depends_on: + - simulator + - kafka + - pap + expose: + - 6969 + - 23324 + deploy: + mode: replicated + replicas: ${REPLICAS:-2} + volumes: + - ./config/apex-pdp/OnapPfConfig.json:/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json:ro + - ./config/apex-pdp/logback.xml:/opt/app/policy/apex-pdp/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', '/opt/app/policy/apex-pdp/bin/apexOnapPf.sh -c /opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json', + 'kafka', '9092', + 'pap', '6969' + ] + nginx: + image: ${CONTAINER_LOCATION}library/nginx:latest + volumes: + - ./config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro + depends_on: + - apexpdp + ports: + - ${APEX_PORT}:${APEX_PORT} + - ${APEX_EVENTS_PORT}:${APEX_EVENTS_PORT} diff --git a/compose/compose.postgres.yml b/compose/compose.postgres.yml new file mode 100644 index 00000000..50403236 --- /dev/null +++ b/compose/compose.postgres.yml @@ -0,0 +1,56 @@ +# +# ===========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 running against postgres database + +services: + postgres: + image: nexus3.onap.org:10001/library/postgres:${POLICY_POSTGRES_VER} + container_name: postgres + hostname: postgres + command: [ '--idle_in_transaction_session_timeout=28800' ] + env_file: config/db-pg/db-pg.conf + volumes: + - ./config/db-pg:/docker-entrypoint-initdb.d:ro + expose: + - 5432 + ports: + - "5432:5432" + + policy-db-migrator: + image: ${CONTAINER_LOCATION}onap/policy-db-migrator:${POLICY_DOCKER_VERSION} + container_name: policy-db-migrator + hostname: policy-db-migrator + depends_on: + - postgres + expose: + - 6824 + env_file: config/db-pg/db-pg.conf + environment: + POSTGRES_PASSWORD: policy_user + SQL_DB: policyadmin clampacm pooling operationshistory + SQL_HOST: postgres + volumes: + - ./config/db-migrator/init_pg.sh:/opt/app/policy/bin/db_migrator_policy_init_pg.sh: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', + '/opt/app/policy/bin/db_migrator_policy_init_pg.sh', + 'postgres', '5432' + ] diff --git a/compose/compose.yaml b/compose/compose.yaml new file mode 100644 index 00000000..a151ad42 --- /dev/null +++ b/compose/compose.yaml @@ -0,0 +1,352 @@ +# +# ===========LICENSE_START==================================================== +# Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. +# Modifications Copyright (C) 2021 Bell Canada. All rights reserved. +# Modification Copyright 2021-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===================================================== +# + +include: + - compose.common.yml + - compose.${database:-postgres}.yml + +services: + + api: + image: ${CONTAINER_LOCATION}onap/policy-api:${POLICY_API_VERSION} + container_name: policy-api + hostname: policy-api + depends_on: + - policy-db-migrator + ports: + - ${API_PORT}:6969 + environment: + SPRING_PROFILES_ACTIVE: ${API_PROFILE:-default} + volumes: + - ./config/api/apiParameters.yaml:/opt/app/policy/api/etc/apiParameters.yaml:ro + - ./config/api/logback.xml:/opt/app/policy/api/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/api/bin/wait_for_port.sh:ro + entrypoint: ./wait_for_port.sh + command: [ + '-c', './policy-api.sh', + 'policy-db-migrator', '6824' + ] + + pap: + image: ${CONTAINER_LOCATION}onap/policy-pap:${POLICY_PAP_VERSION} + container_name: policy-pap + hostname: policy-pap + depends_on: + - api + - kafka + ports: + - ${PAP_PORT}:6969 + environment: + SPRING_PROFILES_ACTIVE: ${PAP_PROFILE:-default} + volumes: + - ./config/pap/papParameters.yaml:/opt/app/policy/pap/etc/papParameters.yaml:ro + - ./config/${PROJECT:-api}/groups.json:/opt/app/policy/pap/etc/mounted/groups.json:ro + - ./config/pap/logback.xml:/opt/app/policy/pap/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/pap/bin/wait_for_port.sh:ro + entrypoint: ./wait_for_port.sh + command: [ + '-c', './policy-pap.sh', + 'api', '6969', + 'kafka', '9092' + ] + + apex-pdp: + image: ${CONTAINER_LOCATION}onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION} + container_name: policy-apex-pdp + hostname: policy-apex-pdp + depends_on: + - simulator + - kafka + - pap + ports: + - ${APEX_PORT}:6969 + - ${APEX_EVENTS_PORT}:23324 + volumes: + - ./config/apex-pdp/OnapPfConfig.json:/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json:ro + - ./config/apex-pdp/logback.xml:/opt/app/policy/apex-pdp/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', '/opt/app/policy/apex-pdp/bin/apexOnapPf.sh -c /opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json', + 'kafka', '9092', + 'pap', '6969' + ] + + distribution: + image: ${CONTAINER_LOCATION}onap/policy-distribution:${POLICY_DISTRIBUTION_VERSION} + container_name: policy-distribution + hostname: policy-distribution + depends_on: + - apex-pdp + ports: + - ${DIST_PORT}:6969 + volumes: + - ./config/distribution/defaultConfig.json:/opt/app/policy/distribution/etc/defaultConfig.json:ro + - /tmp/distribution/:/opt/app/policy/distribution/etc/temp/:ro + - ./config/distribution/logback.xml:/opt/app/policy/distribution/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-dist.sh', + 'apex-pdp', '6969' + ] + + xacml-pdp: + image: ${CONTAINER_LOCATION}onap/policy-xacml-pdp:${POLICY_XACML_PDP_VERSION} + container_name: policy-xacml-pdp + hostname: policy-xacml-pdp + depends_on: + - pap + - kafka + ports: + - ${XACML_PORT}:6969 + - "30999:3904" + volumes: + - ./config/xacml-pdp/defaultConfig.json:/opt/app/policy/pdpx/etc/defaultConfig.json:ro + - ./config/xacml-pdp/logback.xml:/opt/app/policy/pdpx/etc/logback.xml:ro + - ./config/xacml-pdp/xacml-${database:-postgres}.properties:/opt/app/policy/pdpx/apps/guard/xacml.properties:ro + - ./wait_for_port.sh:/opt/app/policy/pdpx/bin/wait_for_port.sh:ro + entrypoint: ./wait_for_port.sh + command: [ + '-c', './policy-pdpx.sh', + 'pap', '6969', + 'kafka', '9092' + ] + + drools-pdp: + image: ${CONTAINER_LOCATION}onap/policy-drools:${POLICY_DROOLS_PDP_VERSION} + container_name: policy-drools-pdp + hostname: policy-drools-pdp + depends_on: + - pap + - kafka + ports: + - ${DROOLS_PORT}:6969 + - ${DROOLS_TELEMETRY_PORT}:9696 + volumes: + - ./config/drools-pdp/custom:/tmp/policy-install/config:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + env_file: + - config/drools-pdp/env/base-${database:-postgres}.conf + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', '/opt/app/policy/bin/pdpd-entrypoint.sh boot', + 'pap', '6969', + 'kafka', '9092' + ] + + drools-applications: + image: ${CONTAINER_LOCATION}onap/policy-pdpd-cl:${POLICY_DROOLS_APPS_VERSION} + container_name: policy-drools-apps + hostname: policy-drools-apps + depends_on: + - pap + - xacml-pdp + - simulator + - kafka + ports: + - ${DROOLS_APPS_PORT}:6969 + - ${DROOLS_APPS_TELEMETRY_PORT}:9696 + volumes: + - ./config/drools-applications/custom:/tmp/policy-install/config:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + env_file: + - config/drools-applications/env/base-${database:-postgres}.conf + - config/drools-applications/env/feature-healthcheck.conf + - config/drools-applications/env/feature-pooling-messages.conf + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', '/opt/app/policy/bin/pdpd-cl-entrypoint.sh boot', + 'pap', '6969', + 'kafka', '9092', + 'aai-sim', '6666', + 'sdnc-sim', '6668', + 'so-sim', '6669', + 'vfc-sim', '6670' + ] + + policy-clamp-runtime-acm: + image: ${CONTAINER_LOCATION}onap/policy-clamp-runtime-acm:${POLICY_CLAMP_VERSION} + container_name: policy-clamp-runtime-acm + hostname: policy-clamp-runtime-acm + depends_on: + - apex-pdp + - kafka + - jaeger + - policy-clamp-ac-http-ppnt + - policy-clamp-ac-k8s-ppnt + - policy-clamp-ac-pf-ppnt + - policy-clamp-ac-sim-ppnt + ports: + - ${ACM_PORT}:6969 + 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 + SPRING_PROFILES_ACTIVE: ${CLAMP_PROFILE:-default} + # 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', + 'apex-pdp', '6969', + 'kafka', '9092', + 'policy-clamp-ac-http-ppnt', '6969', + 'policy-clamp-ac-k8s-ppnt', '6969', + 'policy-clamp-ac-pf-ppnt', '6969' + ] + + policy-clamp-ac-http-ppnt: + image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-http-ppnt:${POLICY_CLAMP_PPNT_VERSION} + container_name: policy-clamp-ac-http-ppnt + hostname: policy-clamp-ac-http-ppnt + depends_on: + - kafka + - jaeger + ports: + - "30290:6969" + 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 + SPRING_PROFILES_ACTIVE: ${PPNT_PROFILE:-default} + 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: + image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-k8s-ppnt:${POLICY_CLAMP_PPNT_VERSION} + container_name: policy-clamp-ac-k8s-ppnt + 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 + SPRING_PROFILES_ACTIVE: ${PPNT_PROFILE:-default} + ports: + - "30295:6969" + 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: + image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-pf-ppnt:${POLICY_CLAMP_PPNT_VERSION} + container_name: policy-clamp-ac-pf-ppnt + hostname: policy-clamp-ac-pf-ppnt + depends_on: + - kafka + - api + - jaeger + ports: + - ${POLICY_PARTICIPANT_PORT}:6969 + 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 + SPRING_PROFILES_ACTIVE: ${PPNT_PROFILE:-default} + 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', + 'api', '6969' + ] + + policy-clamp-ac-a1pms-ppnt: + image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-a1pms-ppnt:${POLICY_CLAMP_PPNT_VERSION} + container_name: policy-clamp-ac-a1pms-ppnt + hostname: policy-clamp-ac-a1pms-ppnt + depends_on: + - kafka + - jaeger + environment: + OTEL_SERVICE_NAME: a1pms-ppnt + OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf + OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf + OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318 + ports: + - "30296:6969" + volumes: + - ./config/clamp/A1pmsParticipantParameters.yaml:/opt/app/policy/clamp/etc/A1pmsParticipantParameters.yaml:ro + - ./config/clamp/a1pms-participant.sh:/opt/app/policy/clamp/bin/a1pms-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', './a1pms-participant.sh', + 'kafka', '9092' + ] + + policy-clamp-ac-kserve-ppnt: + image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-kserve-ppnt:${POLICY_CLAMP_PPNT_VERSION} + container_name: policy-clamp-ac-kserve-ppnt + hostname: policy-clamp-ac-kserve-ppnt + depends_on: + - kafka + - jaeger + environment: + OTEL_SERVICE_NAME: kserve-ppnt + OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf + OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf + OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318 + ports: + - "30297:6969" + volumes: + - ./config/clamp/KserveParticipantParameters.yaml:/opt/app/policy/clamp/etc/KserveParticipantParameters.yaml:ro + - ./config/clamp/kserve-participant.sh:/opt/app/policy/clamp/bin/kserve-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', './kserve-participant.sh', + 'kafka', '9092' + ] diff --git a/compose/config/api/apiParameters.yaml b/compose/config/api/apiParameters.yaml index 51e7f368..3d8de256 100644 --- a/compose/config/api/apiParameters.yaml +++ b/compose/config/api/apiParameters.yaml @@ -10,10 +10,9 @@ spring: name: policyadmin password: zb!XztG34 mvc.converters.preferred-json-mapper: gson - datasource: - url: jdbc:mariadb://mariadb:3306/policyadmin - driverClassName: org.mariadb.jdbc.Driver + url: jdbc:postgresql://postgres:5432/policyadmin + driverClassName: org.postgresql.Driver username: policy_user password: policy_user jpa: @@ -30,8 +29,8 @@ policy-api: database: name: PolicyProviderParameterGroup implementation: org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl - driver: org.mariadb.jdbc.Driver - url: jdbc:mariadb://mariadb:3306/policyadmin + driver: org.postgresql.Driver + url: jdbc:postgresql://postgres:5432/policyadmin user: policy_user password: policy_user persistenceUnit: PolicyDb @@ -82,3 +81,24 @@ management: path-mapping: -metrics: plain-metrics -prometheus: metrics + +--- + +spring: + config: + activate: + on-profile: mariadb + datasource: + url: jdbc:mariadb://mariadb:3306/policyadmin + driverClassName: org.mariadb.jdbc.Driver + username: policy_user + password: policy_user + +database: + name: PolicyProviderParameterGroup + implementation: org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl + driver: org.mariadb.jdbc.Driver + url: jdbc:mariadb://mariadb:3306/policyadmin + user: policy_user + password: policy_user + persistenceUnit: PolicyDb diff --git a/compose/config/api/apiParametersPostgres.yaml b/compose/config/api/apiParametersPostgres.yaml deleted file mode 100644 index c0b23e94..00000000 --- a/compose/config/api/apiParametersPostgres.yaml +++ /dev/null @@ -1,84 +0,0 @@ -server: - port: 6969 - ssl: - enabled: false - servlet: - context-path: /policy/api/v1 - -spring: - security.user: - name: policyadmin - password: zb!XztG34 - mvc.converters.preferred-json-mapper: gson - - datasource: - url: jdbc:postgresql://postgres:5432/policyadmin - driverClassName: org.postgresql.Driver - username: policy_user - password: policy_user - jpa: - hibernate: - ddl-auto: none - naming: - physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl - implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy - -policy-api: - name: ApiGroup - aaf: false - -database: - name: PolicyProviderParameterGroup - implementation: org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl - driver: org.postgresql.Driver - url: jdbc:postgresql://postgres:5432/policyadmin - user: policy_user - password: policy_user - persistenceUnit: PolicyDb - -policy-preload: - policyTypes: - - policytypes/onap.policies.monitoring.tcagen2.yaml - - policytypes/onap.policies.monitoring.tcagen2.v2.yaml - - policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server.yaml - - policytypes/onap.policies.monitoring.dcae-restconfcollector.yaml - - policytypes/onap.policies.monitoring.dcae-pm-subscription-handler.yaml - - policytypes/onap.policies.monitoring.dcae-pm-mapper.yaml - - policytypes/onap.policies.Optimization.yaml - - policytypes/onap.policies.optimization.Resource.yaml - - policytypes/onap.policies.optimization.Service.yaml - - policytypes/onap.policies.optimization.resource.AffinityPolicy.yaml - - policytypes/onap.policies.optimization.resource.DistancePolicy.yaml - - policytypes/onap.policies.optimization.resource.HpaPolicy.yaml - - policytypes/onap.policies.optimization.resource.OptimizationPolicy.yaml - - policytypes/onap.policies.optimization.resource.PciPolicy.yaml - - policytypes/onap.policies.optimization.service.QueryPolicy.yaml - - policytypes/onap.policies.optimization.service.SubscriberPolicy.yaml - - policytypes/onap.policies.optimization.resource.Vim_fit.yaml - - policytypes/onap.policies.optimization.resource.VnfPolicy.yaml - - policytypes/onap.policies.controlloop.guard.Common.yaml - - policytypes/onap.policies.controlloop.guard.common.Blacklist.yaml - - policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter.yaml - - policytypes/onap.policies.controlloop.guard.common.MinMax.yaml - - policytypes/onap.policies.controlloop.guard.common.Filter.yaml - - policytypes/onap.policies.controlloop.guard.coordination.FirstBlocksSecond.yaml - - policytypes/onap.policies.Naming.yaml - - policytypes/onap.policies.Match.yaml - - policytypes/onap.policies.native.Drools.yaml - - policytypes/onap.policies.native.Xacml.yaml - - policytypes/onap.policies.native.Apex.yaml - - policytypes/onap.policies.controlloop.operational.Common.yaml - - policytypes/onap.policies.controlloop.operational.common.Apex.yaml - - policytypes/onap.policies.controlloop.operational.common.Drools.yaml - policies: - - policies/sdnc.policy.naming.input.tosca.yaml - -management: - endpoints: - web: - base-path: / - exposure: - include: health,metrics,prometheus - path-mapping: - -metrics: plain-metrics - -prometheus: metrics diff --git a/compose/config/clamp/AcRuntimeParameters.yaml b/compose/config/clamp/AcRuntimeParameters.yaml index f2ef511a..387e6ffe 100644 --- a/compose/config/clamp/AcRuntimeParameters.yaml +++ b/compose/config/clamp/AcRuntimeParameters.yaml @@ -9,8 +9,8 @@ spring: converters: preferred-json-mapper: gson datasource: - url: jdbc:mariadb://${mariadb.host:mariadb}:${mariadb.port:3306}/clampacm - driverClassName: org.mariadb.jdbc.Driver + url: jdbc:postgresql://postgres:5432/policyadmin + driverClassName: org.postgresql.Driver username: policy_user password: policy_user hikari: @@ -20,7 +20,7 @@ spring: maximumPoolSize: 10 jpa: hibernate: - ddl-auto: none + ddl-auto: update naming: physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy @@ -96,26 +96,19 @@ metrics: # Tracing can be configured for grpc or http - default is http -#tracing: -# enabled: true -# exporter: -# endpoint: http://jaeger:4317 -# protocol: grpc -# sampler: -# jaeger-remote: -# endpoint: http://jaeger:14250 tracing: enabled: true exporter: endpoint: http://jaeger:4318/v1/traces protocol: http +# protocol: grpc sampler: jaeger-remote: endpoint: http://jaeger:14250 -# legacy config --- +# legacy config spring: config: @@ -144,3 +137,13 @@ runtime: acmParameters: toscaElementName: org.onap.policy.clamp.acm.AutomationCompositionElement toscaCompositionName: org.onap.policy.clamp.acm.AutomationComposition + +--- +# mariadb config +spring: + config: + activate: + on-profile: mariadb + datasource: + url: jdbc:mariadb://${mariadb.host:mariadb}:${mariadb.port:3306}/clampacm + driverClassName: org.mariadb.jdbc.Driver diff --git a/compose/config/clamp/policy-clamp-create-tables.sql b/compose/config/clamp/policy-clamp-create-tables.sql deleted file mode 100644 index 5d655ad5..00000000 --- a/compose/config/clamp/policy-clamp-create-tables.sql +++ /dev/null @@ -1,275 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2022 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========================================================= - */ - -create table if not exists dictionary ( - name varchar(255) not null, - created_by varchar(255), - created_timestamp datetime(6) not null, - updated_by varchar(255), - updated_timestamp datetime(6) not null, - dictionary_second_level integer, - dictionary_type varchar(255), - primary key (name) - ) engine=InnoDB; - -create table if not exists dictionary_elements ( - short_name varchar(255) not null, - created_by varchar(255), - created_timestamp datetime(6) not null, - updated_by varchar(255), - updated_timestamp datetime(6) not null, - description varchar(255) not null, - name varchar(255) not null, - subdictionary_name varchar(255), - type varchar(255) not null, - primary key (short_name) - ) engine=InnoDB; - -create table if not exists dictionary_to_dictionaryelements ( - dictionary_name varchar(255) not null, - dictionary_element_short_name varchar(255) not null, - primary key (dictionary_name, dictionary_element_short_name) - ) engine=InnoDB; - -create table if not exists hibernate_sequence ( - next_val bigint -) engine=InnoDB; - -insert into hibernate_sequence values ( 1 ); - -create table if not exists loop_element_models ( - name varchar(255) not null, - created_by varchar(255), - created_timestamp datetime(6) not null, - updated_by varchar(255), - updated_timestamp datetime(6) not null, - blueprint_yaml MEDIUMTEXT, - dcae_blueprint_id varchar(255), - loop_element_type varchar(255) not null, - short_name varchar(255), - primary key (name) - ) engine=InnoDB; - -create table if not exists loop_logs ( - id bigint not null, - log_component varchar(255) not null, - log_instant datetime(6) not null, - log_type varchar(255) not null, - message MEDIUMTEXT not null, - loop_id varchar(255) not null, - primary key (id) - ) engine=InnoDB; - -create table if not exists loop_templates ( - name varchar(255) not null, - created_by varchar(255), - created_timestamp datetime(6) not null, - updated_by varchar(255), - updated_timestamp datetime(6) not null, - allowed_loop_type varchar(255), - blueprint_yaml MEDIUMTEXT, - dcae_blueprint_id varchar(255), - maximum_instances_allowed integer, - svg_representation MEDIUMTEXT, - unique_blueprint boolean default false, - service_uuid varchar(255), - primary key (name) - ) engine=InnoDB; - -create table if not exists loopelementmodels_to_policymodels ( - loop_element_name varchar(255) not null, - policy_model_type varchar(255) not null, - policy_model_version varchar(255) not null, - primary key (loop_element_name, policy_model_type, policy_model_version) - ) engine=InnoDB; - -create table if not exists loops ( - name varchar(255) not null, - created_by varchar(255), - created_timestamp datetime(6) not null, - updated_by varchar(255), - updated_timestamp datetime(6) not null, - dcae_deployment_id varchar(255), - dcae_deployment_status_url varchar(255), - global_properties_json json, - last_computed_state varchar(255) not null, - svg_representation MEDIUMTEXT, - loop_template_name varchar(255) not null, - service_uuid varchar(255), - primary key (name) - ) engine=InnoDB; - -create table if not exists loops_to_microservicepolicies ( - loop_name varchar(255) not null, - microservicepolicy_name varchar(255) not null, - primary key (loop_name, microservicepolicy_name) - ) engine=InnoDB; - -create table if not exists looptemplates_to_loopelementmodels ( - loop_element_model_name varchar(255) not null, - loop_template_name varchar(255) not null, - flow_order integer not null, - primary key (loop_element_model_name, loop_template_name) - ) engine=InnoDB; - -create table if not exists micro_service_policies ( - name varchar(255) not null, - created_by varchar(255), - created_timestamp datetime(6) not null, - updated_by varchar(255), - updated_timestamp datetime(6) not null, - configurations_json json, - json_representation json not null, - pdp_group varchar(255), - pdp_sub_group varchar(255), - context varchar(255), - dcae_blueprint_id varchar(255), - dcae_deployment_id varchar(255), - dcae_deployment_status_url varchar(255), - device_type_scope varchar(255), - shared bit not null, - loop_element_model_id varchar(255), - policy_model_type varchar(255), - policy_model_version varchar(255), - primary key (name) - ) engine=InnoDB; - -create table if not exists operational_policies ( - name varchar(255) not null, - created_by varchar(255), - created_timestamp datetime(6) not null, - updated_by varchar(255), - updated_timestamp datetime(6) not null, - configurations_json json, - json_representation json not null, - pdp_group varchar(255), - pdp_sub_group varchar(255), - loop_element_model_id varchar(255), - policy_model_type varchar(255), - policy_model_version varchar(255), - loop_id varchar(255) not null, - primary key (name) - ) engine=InnoDB; - -create table if not exists policy_models ( - policy_model_type varchar(255) not null, - version varchar(255) not null, - created_by varchar(255), - created_timestamp datetime(6) not null, - updated_by varchar(255), - updated_timestamp datetime(6) not null, - policy_acronym varchar(255), - policy_tosca MEDIUMTEXT, - policy_pdp_group json, - primary key (policy_model_type, version) - ) engine=InnoDB; - -create table if not exists services ( - service_uuid varchar(255) not null, - name varchar(255) not null, - resource_details json, - service_details json, - version varchar(255), - primary key (service_uuid) - ) engine=InnoDB; - -alter table dictionary_to_dictionaryelements - add constraint FK68hjjinnm8nte2owstd0xwp23 - foreign key (dictionary_element_short_name) - references dictionary_elements (short_name); - -alter table dictionary_to_dictionaryelements - add constraint FKtqfxg46gsxwlm2gkl6ne3cxfe - foreign key (dictionary_name) - references dictionary (name); - -alter table loop_logs - add constraint FK1j0cda46aickcaoxqoo34khg2 - foreign key (loop_id) - references loops (name); - -alter table loop_templates - add constraint FKn692dk6281wvp1o95074uacn6 - foreign key (service_uuid) - references services (service_uuid); - -alter table loopelementmodels_to_policymodels - add constraint FK23j2q74v6kaexefy0tdabsnda - foreign key (policy_model_type, policy_model_version) - references policy_models (policy_model_type, version); - -alter table loopelementmodels_to_policymodels - add constraint FKjag1iu0olojfwryfkvb5o0rk5 - foreign key (loop_element_name) - references loop_element_models (name); - -alter table loops - add constraint FK844uwy82wt0l66jljkjqembpj - foreign key (loop_template_name) - references loop_templates (name); - -alter table loops - add constraint FK4b9wnqopxogwek014i1shqw7w - foreign key (service_uuid) - references services (service_uuid); - -alter table loops_to_microservicepolicies - add constraint FKle255jmi7b065fwbvmwbiehtb - foreign key (microservicepolicy_name) - references micro_service_policies (name); - -alter table loops_to_microservicepolicies - add constraint FK8avfqaf7xl71l7sn7a5eri68d - foreign key (loop_name) - references loops (name); - -alter table looptemplates_to_loopelementmodels - add constraint FK1k7nbrbugvqa0xfxkq3cj1yn9 - foreign key (loop_element_model_name) - references loop_element_models (name); - -alter table looptemplates_to_loopelementmodels - add constraint FKj29yxyw0x7ue6mwgi6d3qg748 - foreign key (loop_template_name) - references loop_templates (name); - -alter table micro_service_policies - add constraint FKqvvdypacbww07fuv8xvlvdjgl - foreign key (loop_element_model_id) - references loop_element_models (name); - -alter table micro_service_policies - add constraint FKn17j9ufmyhqicb6cvr1dbjvkt - foreign key (policy_model_type, policy_model_version) - references policy_models (policy_model_type, version); - -alter table operational_policies - add constraint FKi9kh7my40737xeuaye9xwbnko - foreign key (loop_element_model_id) - references loop_element_models (name); - -alter table operational_policies - add constraint FKlsyhfkoqvkwj78ofepxhoctip - foreign key (policy_model_type, policy_model_version) - references policy_models (policy_model_type, version); - -alter table operational_policies - add constraint FK1ddoggk9ni2bnqighv6ecmuwu - foreign key (loop_id) - references loops (name); diff --git a/compose/config/db-migrator/init.sh b/compose/config/db-migrator/init.sh index 047d947e..a8eb25a3 100755 --- a/compose/config/db-migrator/init.sh +++ b/compose/config/db-migrator/init.sh @@ -1,6 +1,6 @@ #!/bin/sh # ============LICENSE_START==================================================== -# Copyright (C) 2021 Nordix Foundation. +# Copyright (C) 2021, 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. @@ -22,14 +22,21 @@ export SQL_USER=${MYSQL_USER} export SQL_PASSWORD=${MYSQL_PASSWORD} export SCRIPT_DIRECTORY=sql -/opt/app/policy/bin/prepare_upgrade.sh ${SQL_DB} +for schema in ${SQL_DB}; do + echo "Initializing $schema..." + /opt/app/policy/bin/prepare_upgrade.sh ${schema} -/opt/app/policy/bin/db-migrator -s ${SQL_DB} -o report + /opt/app/policy/bin/db-migrator -s ${schema} -o report -/opt/app/policy/bin/db-migrator -s ${SQL_DB} -o upgrade -rc=$? + /opt/app/policy/bin/db-migrator -s ${schema} -o upgrade + rc=$? -/opt/app/policy/bin/db-migrator -s ${SQL_DB} -o report + /opt/app/policy/bin/db-migrator -s ${schema} -o report + + if [ "$rc" != 0 ]; then + break + fi +done nc -l -p 6824 diff --git a/compose/config/db-migrator/init_pg.sh b/compose/config/db-migrator/init_pg.sh index 9b5f38e1..712d0d23 100755 --- a/compose/config/db-migrator/init_pg.sh +++ b/compose/config/db-migrator/init_pg.sh @@ -1,6 +1,6 @@ #!/bin/sh # ============LICENSE_START==================================================== -# Copyright (C) 2022 Nordix Foundation. +# Copyright (C) 2022, 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. @@ -18,18 +18,25 @@ # ============LICENSE_END====================================================== export POLICY_HOME=/opt/app/policy -export SQL_USER=${MYSQL_USER} -export SQL_PASSWORD=${MYSQL_PASSWORD} +export SQL_USER=${PGSQL_USER} +export SQL_PASSWORD=${PGSQL_PASSWORD} export SCRIPT_DIRECTORY=postgres -/opt/app/policy/bin/prepare_upgrade.sh ${SQL_DB} +for schema in ${SQL_DB}; do + echo "Initializing $schema..." + /opt/app/policy/bin/prepare_upgrade.sh ${schema} -/opt/app/policy/bin/db-migrator-pg -s ${SQL_DB} -o report + /opt/app/policy/bin/db-migrator-pg -s ${schema} -o report -/opt/app/policy/bin/db-migrator-pg -s ${SQL_DB} -o upgrade -rc=$? + /opt/app/policy/bin/db-migrator-pg -s ${schema} -o upgrade + rc=$? -/opt/app/policy/bin/db-migrator-pg -s ${SQL_DB} -o report + /opt/app/policy/bin/db-migrator-pg -s ${schema} -o report + + if [ "$rc" != 0 ]; then + break + fi +done nc -l -p 6824 diff --git a/compose/config/db-pg/db-pg.conf b/compose/config/db-pg/db-pg.conf index d4d58cec..ee26454e 100644 --- a/compose/config/db-pg/db-pg.conf +++ b/compose/config/db-pg/db-pg.conf @@ -1,4 +1,4 @@ -# Copyright 2022 Nordix Foundation. All rights reserved +# Copyright (C) 2022, 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. @@ -11,7 +11,8 @@ # 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. -MYSQL_ROOT_PASSWORD=secret -MYSQL_USER=policy_user -MYSQL_PASSWORD=policy_user -PGPASSWORD=policy_user \ No newline at end of file +PGSQL_ROOT_PASSWORD=secret +PGSQL_USER=policy_user +PGSQL_PASSWORD=policy_user +PGPASSWORD=policy_user +POSTGRES_PASSWORD=policy_user diff --git a/compose/config/db-pg/db-pg.sh b/compose/config/db-pg/db-pg.sh index 14816f08..681191f9 100755 --- a/compose/config/db-pg/db-pg.sh +++ b/compose/config/db-pg/db-pg.sh @@ -1,5 +1,5 @@ #!/bin/bash -xv -# Copyright 2022 Nordix Foundation. All rights reserved +# Copyright (C) 2022, 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. @@ -13,10 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -psql -U postgres -d postgres --command "CREATE USER ${MYSQL_USER} WITH PASSWORD '${MYSQL_PASSWORD}';" +psql -U postgres -d postgres --command "CREATE USER ${PGSQL_USER} WITH PASSWORD '${PGSQL_PASSWORD}';" for db in migration pooling policyadmin policyclamp operationshistory clampacm do psql -U postgres -d postgres --command "CREATE DATABASE ${db};" - psql -U postgres -d postgres --command "GRANT ALL PRIVILEGES ON DATABASE ${db} TO ${MYSQL_USER} ;" + psql -U postgres -d postgres --command "ALTER DATABASE ${db} OWNER TO ${PGSQL_USER} ;" + psql -U postgres -d postgres --command "GRANT ALL PRIVILEGES ON DATABASE ${db} TO ${PGSQL_USER} ;" done \ No newline at end of file diff --git a/compose/config/db/db.sh b/compose/config/db/db.sh index 0363ed8a..a916abc0 100755 --- a/compose/config/db/db.sh +++ b/compose/config/db/db.sh @@ -1,6 +1,6 @@ #!/bin/bash -xv # Copyright 2019,2021 AT&T Intellectual Property. All rights reserved -# Modifications Copyright (c) 2022 Nordix Foundation. +# Modifications Copyright (c) 2022, 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. @@ -21,4 +21,3 @@ do done mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "FLUSH PRIVILEGES;" -mysql -u"${MYSQL_USER}" -p"${MYSQL_PASSWORD}" -f policyclamp < /tmp/policy-clamp-create-tables.sql diff --git a/compose/config/drools-applications/env/base-mariadb.conf b/compose/config/drools-applications/env/base-mariadb.conf new file mode 100644 index 00000000..b7e2c8f7 --- /dev/null +++ b/compose/config/drools-applications/env/base-mariadb.conf @@ -0,0 +1,151 @@ +# ============LICENSE_START================================================== +# Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. +# Modifications Copyright (C) 2021 Bell Canada. All rights reserved. +# Modification Copyright 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==================================================== + +# JVM options + +JVM_OPTIONS=-server -Xms512m -Xmx512m + +# SYSTEM software configuration + +DEBUG=y +POLICY_HOME=/opt/app/policy +POLICY_LOGS=/var/log/onap/policy/pdpd +KEYSTORE_PASSWD=Pol1cy_0nap +TRUSTSTORE_PASSWD=Pol1cy_0nap + +# Telemetry credentials + +TELEMETRY_PORT=9696 +TELEMETRY_HOST=0.0.0.0 +TELEMETRY_USER=demo@people.osaaf.org +TELEMETRY_PASSWORD=demo123456! + +# nexus repository + +SNAPSHOT_REPOSITORY_ID= +SNAPSHOT_REPOSITORY_URL= +RELEASE_REPOSITORY_ID= +RELEASE_REPOSITORY_URL= +REPOSITORY_USERNAME= +REPOSITORY_PASSWORD= +REPOSITORY_OFFLINE=true + +# Relational (SQL) DB access + +SQL_HOST=mariadb +SQL_USER=policy_user +SQL_PASSWORD=policy_user +SQL_PORT=3306 +JDBC_URL=jdbc:mariadb://mariadb:3306/ +JDBC_OPTS= +JDBC_DRIVER=org.mariadb.jdbc.Driver +MYSQL_CMD= + +# HTTP Servers + +HTTP_SERVER_HTTPS=false +PROMETHEUS=true + +# kafka server + +KAFKA_SERVERS=kafka:9092 +KAFKA_HTTPS=false + +# LIVENESS Checks + +LIVENESS_CONTROLLERS=* + +# PDP-D Kafka configuration channel + +PDPD_CONFIGURATION_TOPIC=pdpd-configuration +PDPD_CONFIGURATION_SERVERS=kafka:9092 +PDPD_CONFIGURATION_API_KEY= +PDPD_CONFIGURATION_API_SECRET= +PDPD_CONFIGURATION_CONSUMER_GROUP= +PDPD_CONFIGURATION_CONSUMER_INSTANCE= +PDPD_CONFIGURATION_PARTITION_KEY= + +# PAP-PDP configuration channel + +POLICY_PDP_PAP_TOPIC=policy-pdp-pap +POLICY_PDP_PAP_API_KEY= +POLICY_PDP_PAP_API_SECRET= +POLICY_PDP_PAP_POLICYTYPES=onap.policies.controlloop.operational.common.Drools + +# PAP + +PAP_HOST=policy-pap +PAP_USERNAME=policyadmin +PAP_PASSWORD=zb!XztG34 + +# PDP-X + +GUARD_DISABLED=false +PDP_HOST=policy-xacml-pdp +PDP_PORT=6969 +PDP_CONTEXT_URI=policy/pdpx/v1/ +PDP_USERNAME=policyadmin +PDP_PASSWORD=zb!XztG34 +PDP_HTTPS=false + +# DCAE Kafka + +DCAE_TOPIC=unauthenticated.dcae_cl_output +DCAE_SERVERS=kafka:9092 +DCAE_CONSUMER_GROUP=dcae.policy.shared + +# AAI + +AAI_HOST=aai-sim +AAI_PORT=6666 +AAI_CONTEXT_URI= +AAI_USERNAME=policy@policy.onap.org +AAI_PASSWORD=demo123456! +AAI_HTTPS=false + +# MSO + +SO_HOST=so-sim +SO_PORT=6669 +SO_CONTEXT_URI= +SO_URL=http://so-sim:6669/ +SO_USERNAME=InfraPortalClient +SO_PASSWORD='password1$' + +# VFC + +VFC_HOST=vfc-sim +VFC_PORT=6670 +VFC_CONTEXT_URI= +VFC_USERNAME= +VFC_PASSWORD= + +# SDNC + +SDNC_HOST=sdnc-sim +SDNC_PORT=6668 +SDNC_CONTEXT_URI= +SDNC_USERNAME= +SDNC_PASSWORD= + +# CDS + +CDS_GRPC_HOST=grpc-sim +CDS_GRPC_PORT=6680 +CDS_GRPC_USERNAME="ccsdkapps" +CDS_GRPC_PASSWORD="ccsdkapps" diff --git a/compose/config/drools-applications/env/base-postgres.conf b/compose/config/drools-applications/env/base-postgres.conf new file mode 100644 index 00000000..1e82d0e2 --- /dev/null +++ b/compose/config/drools-applications/env/base-postgres.conf @@ -0,0 +1,148 @@ +# ============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==================================================== + +# JVM options + +JVM_OPTIONS=-server -Xms512m -Xmx512m + +# SYSTEM software configuration + +DEBUG=y +POLICY_HOME=/opt/app/policy +POLICY_LOGS=/var/log/onap/policy/pdpd +KEYSTORE_PASSWD=Pol1cy_0nap +TRUSTSTORE_PASSWD=Pol1cy_0nap + +# Telemetry credentials + +TELEMETRY_PORT=9696 +TELEMETRY_HOST=0.0.0.0 +TELEMETRY_USER=demo@people.osaaf.org +TELEMETRY_PASSWORD=demo123456! + +# nexus repository + +SNAPSHOT_REPOSITORY_ID= +SNAPSHOT_REPOSITORY_URL= +RELEASE_REPOSITORY_ID= +RELEASE_REPOSITORY_URL= +REPOSITORY_USERNAME= +REPOSITORY_PASSWORD= +REPOSITORY_OFFLINE=true + +# Relational (SQL) DB access + +SQL_HOST=postgres +SQL_USER=policy_user +SQL_PASSWORD=policy_user +SQL_PORT=5432 +JDBC_URL=jdbc:postgresql://postgres:5432/ +JDBC_OPTS= +JDBC_DRIVER=org.postgresql.Driver + +# HTTP Servers + +HTTP_SERVER_HTTPS=false +PROMETHEUS=true + +# kafka server + +KAFKA_SERVERS=kafka:9092 +KAFKA_HTTPS=false + +# LIVENESS Checks + +LIVENESS_CONTROLLERS=* + +# PDP-D Kafka configuration channel + +PDPD_CONFIGURATION_TOPIC=pdpd-configuration +PDPD_CONFIGURATION_SERVERS=kafka:9092 +PDPD_CONFIGURATION_API_KEY= +PDPD_CONFIGURATION_API_SECRET= +PDPD_CONFIGURATION_CONSUMER_GROUP= +PDPD_CONFIGURATION_CONSUMER_INSTANCE= +PDPD_CONFIGURATION_PARTITION_KEY= + +# PAP-PDP configuration channel + +POLICY_PDP_PAP_TOPIC=policy-pdp-pap +POLICY_PDP_PAP_API_KEY= +POLICY_PDP_PAP_API_SECRET= +POLICY_PDP_PAP_POLICYTYPES=onap.policies.controlloop.operational.common.Drools + +# PAP + +PAP_HOST=policy-pap +PAP_USERNAME=policyadmin +PAP_PASSWORD=zb!XztG34 + +# PDP-X + +GUARD_DISABLED=false +PDP_HOST=policy-xacml-pdp +PDP_PORT=6969 +PDP_CONTEXT_URI=policy/pdpx/v1/ +PDP_USERNAME=policyadmin +PDP_PASSWORD=zb!XztG34 +PDP_HTTPS=false + +# DCAE Kafka + +DCAE_TOPIC=unauthenticated.dcae_cl_output +DCAE_SERVERS=kafka:9092 +DCAE_CONSUMER_GROUP=dcae.policy.shared + +# AAI + +AAI_HOST=aai-sim +AAI_PORT=6666 +AAI_CONTEXT_URI= +AAI_USERNAME=policy@policy.onap.org +AAI_PASSWORD=demo123456! +AAI_HTTPS=false + +# MSO + +SO_HOST=so-sim +SO_PORT=6669 +SO_CONTEXT_URI= +SO_URL=http://so-sim:6669/ +SO_USERNAME=InfraPortalClient +SO_PASSWORD='password1$' + +# VFC + +VFC_HOST=vfc-sim +VFC_PORT=6670 +VFC_CONTEXT_URI= +VFC_USERNAME= +VFC_PASSWORD= + +# SDNC + +SDNC_HOST=sdnc-sim +SDNC_PORT=6668 +SDNC_CONTEXT_URI= +SDNC_USERNAME= +SDNC_PASSWORD= + +# CDS + +CDS_GRPC_HOST=grpc-sim +CDS_GRPC_PORT=6680 +CDS_GRPC_USERNAME="ccsdkapps" +CDS_GRPC_PASSWORD="ccsdkapps" diff --git a/compose/config/drools-applications/env/base.conf b/compose/config/drools-applications/env/base.conf deleted file mode 100644 index 4ac3330c..00000000 --- a/compose/config/drools-applications/env/base.conf +++ /dev/null @@ -1,150 +0,0 @@ -# ============LICENSE_START================================================== -# Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. -# Modifications Copyright (C) 2021 Bell Canada. All rights reserved. -# Modification Copyright 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==================================================== - -# JVM options - -JVM_OPTIONS=-server -Xms512m -Xmx512m - -# SYSTEM software configuration - -DEBUG=y -POLICY_HOME=/opt/app/policy -POLICY_LOGS=/var/log/onap/policy/pdpd -KEYSTORE_PASSWD=Pol1cy_0nap -TRUSTSTORE_PASSWD=Pol1cy_0nap - -# Telemetry credentials - -TELEMETRY_PORT=9696 -TELEMETRY_HOST=0.0.0.0 -TELEMETRY_USER=demo@people.osaaf.org -TELEMETRY_PASSWORD=demo123456! - -# nexus repository - -SNAPSHOT_REPOSITORY_ID= -SNAPSHOT_REPOSITORY_URL= -RELEASE_REPOSITORY_ID= -RELEASE_REPOSITORY_URL= -REPOSITORY_USERNAME= -REPOSITORY_PASSWORD= -REPOSITORY_OFFLINE=true - -# Relational (SQL) DB access - -SQL_HOST=mariadb -SQL_USER=policy_user -SQL_PASSWORD=policy_user -SQL_PORT=3306 -JDBC_URL=jdbc:mariadb://mariadb:3306/ -JDBC_OPTS= -MYSQL_CMD= - -# HTTP Servers - -HTTP_SERVER_HTTPS=false -PROMETHEUS=true - -# kafka server - -KAFKA_SERVERS=kafka:9092 -KAFKA_HTTPS=false - -# LIVENESS Checks - -LIVENESS_CONTROLLERS=* - -# PDP-D Kafka configuration channel - -PDPD_CONFIGURATION_TOPIC=pdpd-configuration -PDPD_CONFIGURATION_SERVERS=kafka:9092 -PDPD_CONFIGURATION_API_KEY= -PDPD_CONFIGURATION_API_SECRET= -PDPD_CONFIGURATION_CONSUMER_GROUP= -PDPD_CONFIGURATION_CONSUMER_INSTANCE= -PDPD_CONFIGURATION_PARTITION_KEY= - -# PAP-PDP configuration channel - -POLICY_PDP_PAP_TOPIC=policy-pdp-pap -POLICY_PDP_PAP_API_KEY= -POLICY_PDP_PAP_API_SECRET= -POLICY_PDP_PAP_POLICYTYPES=onap.policies.controlloop.operational.common.Drools - -# PAP - -PAP_HOST=policy-pap -PAP_USERNAME=policyadmin -PAP_PASSWORD=zb!XztG34 - -# PDP-X - -GUARD_DISABLED=false -PDP_HOST=policy-xacml-pdp -PDP_PORT=6969 -PDP_CONTEXT_URI=policy/pdpx/v1/ -PDP_USERNAME=policyadmin -PDP_PASSWORD=zb!XztG34 -PDP_HTTPS=false - -# DCAE Kafka - -DCAE_TOPIC=unauthenticated.dcae_cl_output -DCAE_SERVERS=kafka:9092 -DCAE_CONSUMER_GROUP=dcae.policy.shared - -# AAI - -AAI_HOST=aai-sim -AAI_PORT=6666 -AAI_CONTEXT_URI= -AAI_USERNAME=policy@policy.onap.org -AAI_PASSWORD=demo123456! -AAI_HTTPS=false - -# MSO - -SO_HOST=so-sim -SO_PORT=6669 -SO_CONTEXT_URI= -SO_URL=http://so-sim:6669/ -SO_USERNAME=InfraPortalClient -SO_PASSWORD='password1$' - -# VFC - -VFC_HOST=vfc-sim -VFC_PORT=6670 -VFC_CONTEXT_URI= -VFC_USERNAME= -VFC_PASSWORD= - -# SDNC - -SDNC_HOST=sdnc-sim -SDNC_PORT=6668 -SDNC_CONTEXT_URI= -SDNC_USERNAME= -SDNC_PASSWORD= - -# CDS - -CDS_GRPC_HOST=grpc-sim -CDS_GRPC_PORT=6680 -CDS_GRPC_USERNAME="ccsdkapps" -CDS_GRPC_PASSWORD="ccsdkapps" diff --git a/compose/config/drools-pdp/env/base-mariadb.conf b/compose/config/drools-pdp/env/base-mariadb.conf new file mode 100644 index 00000000..0e0156bd --- /dev/null +++ b/compose/config/drools-pdp/env/base-mariadb.conf @@ -0,0 +1,138 @@ +# ============LICENSE_START======================================================= +# Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. +# Modifications Copyright (C) 2021 Bell Canada. All rights reserved. +# Modification Copyright 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========================================================= + +# JVM options + +JVM_OPTIONS=-server -Xms512m -Xmx512m + +# SYSTEM software configuration + +DEBUG=y +POLICY_HOME=/opt/app/policy +POLICY_LOGS=/var/log/onap/policy/pdpd +KEYSTORE_PASSWD=Pol1cy_0nap +TRUSTSTORE_PASSWD=Pol1cy_0nap + +# Telemetry credentials + +TELEMETRY_PORT=9696 +TELEMETRY_HOST=0.0.0.0 +TELEMETRY_USER=demo@people.osaaf.org +TELEMETRY_PASSWORD=demo123456! + +# nexus repository + +SNAPSHOT_REPOSITORY_ID=policy-nexus-snapshots +SNAPSHOT_REPOSITORY_URL=http://nexus:8081/nexus/content/repositories/snapshots/ +RELEASE_REPOSITORY_ID=policy-nexus-releases +RELEASE_REPOSITORY_URL=http://nexus:8081/nexus/content/repositories/releases/ +REPOSITORY_USERNAME=admin +REPOSITORY_PASSWORD=admin123 +REPOSITORY_OFFLINE=false + +# Relational (SQL) DB access + +SQL_HOST=mariadb +SQL_USER=policy_user +SQL_PASSWORD=policy_user +SQL_PORT=3306 +JDBC_URL=jdbc:mariadb://mariadb:3306/ +JDBC_OPTS= +MYSQL_CMD= + +# HTTP Servers + +HTTP_SERVER_HTTPS=false +PROMETHEUS=true + +# PDP-D Kafka configuration channel + +PDPD_CONFIGURATION_TOPIC=pdpd-configuration +PDPD_CONFIGURATION_API_KEY= +PDPD_CONFIGURATION_API_SECRET= +PDPD_CONFIGURATION_CONSUMER_GROUP= +PDPD_CONFIGURATION_CONSUMER_INSTANCE= +PDPD_CONFIGURATION_PARTITION_KEY= + +# PAP-PDP configuration channel + +POLICY_PDP_PAP_TOPIC=policy-pdp-pap +POLICY_PDP_PAP_API_KEY= +POLICY_PDP_PAP_API_SECRET= + +# PAP + +PAP_HOST= +PAP_USERNAME= +PAP_PASSWORD= + +# PDP-X + +PDP_HOST= +PDP_PORT= +PDP_CONTEXT_URI=policy/pdpx/v1/ +PDP_USERNAME= +PDP_PASSWORD= +PDP_CLIENT_USERNAME= +PDP_CLIENT_PASSWORD= +PDP_ENVIRONMENT= +GUARD_DISABLED=false + +# DCAE Kafka + +DCAE_TOPIC=unauthenticated.dcae_cl_output +DCAE_SERVERS= +DCAE_CONSUMER_GROUP=dcae.policy.shared + +# kafka server + +KAFKA_SERVERS=kafka:9092 +KAFKA_HTTPS=false + +# AAI + +AAI_HOST=aai.api.simpledemo.onap.org +AAI_PORT=8443 +AAI_CONTEXT_URI= +AAI_USERNAME=policy@policy.onap.org +AAI_PASSWORD=demo123456! + +# MSO + +SO_HOST=vm1.mso.simpledemo.onap.org +SO_PORT=8080 +SO_CONTEXT_URI=onap/so/infra/ +SO_URL=http://vm1.mso.simpledemo.onap.org:8080/onap/so/infra +SO_USERNAME=InfraPortalClient +SO_PASSWORD='password1$' + +# VFC + +VFC_HOST= +VFC_PORT= +VFC_CONTEXT_URI=api/nslcm/v1/ +VFC_USERNAME= +VFC_PASSWORD= + +# SDNC + +SDNC_HOST= +SDNC_PORT= +SDNC_CONTEXT_URI=restconf/operations/ +SDNC_USERNAME= +SDNC_PASSWORD= diff --git a/compose/config/drools-pdp/env/base-postgres.conf b/compose/config/drools-pdp/env/base-postgres.conf new file mode 100644 index 00000000..a883f3f8 --- /dev/null +++ b/compose/config/drools-pdp/env/base-postgres.conf @@ -0,0 +1,138 @@ +# ============LICENSE_START======================================================= +# Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. +# Modifications Copyright (C) 2021 Bell Canada. All rights reserved. +# Modification Copyright 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========================================================= + +# JVM options + +JVM_OPTIONS=-server -Xms512m -Xmx512m + +# SYSTEM software configuration + +DEBUG=y +POLICY_HOME=/opt/app/policy +POLICY_LOGS=/var/log/onap/policy/pdpd +KEYSTORE_PASSWD=Pol1cy_0nap +TRUSTSTORE_PASSWD=Pol1cy_0nap + +# Telemetry credentials + +TELEMETRY_PORT=9696 +TELEMETRY_HOST=0.0.0.0 +TELEMETRY_USER=demo@people.osaaf.org +TELEMETRY_PASSWORD=demo123456! + +# nexus repository + +SNAPSHOT_REPOSITORY_ID=policy-nexus-snapshots +SNAPSHOT_REPOSITORY_URL=http://nexus:8081/nexus/content/repositories/snapshots/ +RELEASE_REPOSITORY_ID=policy-nexus-releases +RELEASE_REPOSITORY_URL=http://nexus:8081/nexus/content/repositories/releases/ +REPOSITORY_USERNAME=admin +REPOSITORY_PASSWORD=admin123 +REPOSITORY_OFFLINE=false + +# Relational (SQL) DB access + +SQL_HOST=postgres +SQL_USER=policy_user +SQL_PASSWORD=policy_user +SQL_PORT=5432 +JDBC_URL=jdbc:postgresql://postgres:5432/ +JDBC_OPTS= +JDBC_DRIVER=org.postgresql.Driver + +# HTTP Servers + +HTTP_SERVER_HTTPS=false +PROMETHEUS=true + +# PDP-D Kafka configuration channel + +PDPD_CONFIGURATION_TOPIC=pdpd-configuration +PDPD_CONFIGURATION_API_KEY= +PDPD_CONFIGURATION_API_SECRET= +PDPD_CONFIGURATION_CONSUMER_GROUP= +PDPD_CONFIGURATION_CONSUMER_INSTANCE= +PDPD_CONFIGURATION_PARTITION_KEY= + +# PAP-PDP configuration channel + +POLICY_PDP_PAP_TOPIC=policy-pdp-pap +POLICY_PDP_PAP_API_KEY= +POLICY_PDP_PAP_API_SECRET= + +# PAP + +PAP_HOST= +PAP_USERNAME= +PAP_PASSWORD= + +# PDP-X + +PDP_HOST= +PDP_PORT= +PDP_CONTEXT_URI=policy/pdpx/v1/ +PDP_USERNAME= +PDP_PASSWORD= +PDP_CLIENT_USERNAME= +PDP_CLIENT_PASSWORD= +PDP_ENVIRONMENT= +GUARD_DISABLED=false + +# DCAE Kafka + +DCAE_TOPIC=unauthenticated.dcae_cl_output +DCAE_SERVERS= +DCAE_CONSUMER_GROUP=dcae.policy.shared + +# kafka server + +KAFKA_SERVERS=kafka:9092 +KAFKA_HTTPS=false + +# AAI + +AAI_HOST=aai.api.simpledemo.onap.org +AAI_PORT=8443 +AAI_CONTEXT_URI= +AAI_USERNAME=policy@policy.onap.org +AAI_PASSWORD=demo123456! + +# MSO + +SO_HOST=vm1.mso.simpledemo.onap.org +SO_PORT=8080 +SO_CONTEXT_URI=onap/so/infra/ +SO_URL=http://vm1.mso.simpledemo.onap.org:8080/onap/so/infra +SO_USERNAME=InfraPortalClient +SO_PASSWORD='password1$' + +# VFC + +VFC_HOST= +VFC_PORT= +VFC_CONTEXT_URI=api/nslcm/v1/ +VFC_USERNAME= +VFC_PASSWORD= + +# SDNC + +SDNC_HOST= +SDNC_PORT= +SDNC_CONTEXT_URI=restconf/operations/ +SDNC_USERNAME= +SDNC_PASSWORD= diff --git a/compose/config/drools-pdp/env/base.conf b/compose/config/drools-pdp/env/base.conf deleted file mode 100644 index 0e0156bd..00000000 --- a/compose/config/drools-pdp/env/base.conf +++ /dev/null @@ -1,138 +0,0 @@ -# ============LICENSE_START======================================================= -# Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. -# Modifications Copyright (C) 2021 Bell Canada. All rights reserved. -# Modification Copyright 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========================================================= - -# JVM options - -JVM_OPTIONS=-server -Xms512m -Xmx512m - -# SYSTEM software configuration - -DEBUG=y -POLICY_HOME=/opt/app/policy -POLICY_LOGS=/var/log/onap/policy/pdpd -KEYSTORE_PASSWD=Pol1cy_0nap -TRUSTSTORE_PASSWD=Pol1cy_0nap - -# Telemetry credentials - -TELEMETRY_PORT=9696 -TELEMETRY_HOST=0.0.0.0 -TELEMETRY_USER=demo@people.osaaf.org -TELEMETRY_PASSWORD=demo123456! - -# nexus repository - -SNAPSHOT_REPOSITORY_ID=policy-nexus-snapshots -SNAPSHOT_REPOSITORY_URL=http://nexus:8081/nexus/content/repositories/snapshots/ -RELEASE_REPOSITORY_ID=policy-nexus-releases -RELEASE_REPOSITORY_URL=http://nexus:8081/nexus/content/repositories/releases/ -REPOSITORY_USERNAME=admin -REPOSITORY_PASSWORD=admin123 -REPOSITORY_OFFLINE=false - -# Relational (SQL) DB access - -SQL_HOST=mariadb -SQL_USER=policy_user -SQL_PASSWORD=policy_user -SQL_PORT=3306 -JDBC_URL=jdbc:mariadb://mariadb:3306/ -JDBC_OPTS= -MYSQL_CMD= - -# HTTP Servers - -HTTP_SERVER_HTTPS=false -PROMETHEUS=true - -# PDP-D Kafka configuration channel - -PDPD_CONFIGURATION_TOPIC=pdpd-configuration -PDPD_CONFIGURATION_API_KEY= -PDPD_CONFIGURATION_API_SECRET= -PDPD_CONFIGURATION_CONSUMER_GROUP= -PDPD_CONFIGURATION_CONSUMER_INSTANCE= -PDPD_CONFIGURATION_PARTITION_KEY= - -# PAP-PDP configuration channel - -POLICY_PDP_PAP_TOPIC=policy-pdp-pap -POLICY_PDP_PAP_API_KEY= -POLICY_PDP_PAP_API_SECRET= - -# PAP - -PAP_HOST= -PAP_USERNAME= -PAP_PASSWORD= - -# PDP-X - -PDP_HOST= -PDP_PORT= -PDP_CONTEXT_URI=policy/pdpx/v1/ -PDP_USERNAME= -PDP_PASSWORD= -PDP_CLIENT_USERNAME= -PDP_CLIENT_PASSWORD= -PDP_ENVIRONMENT= -GUARD_DISABLED=false - -# DCAE Kafka - -DCAE_TOPIC=unauthenticated.dcae_cl_output -DCAE_SERVERS= -DCAE_CONSUMER_GROUP=dcae.policy.shared - -# kafka server - -KAFKA_SERVERS=kafka:9092 -KAFKA_HTTPS=false - -# AAI - -AAI_HOST=aai.api.simpledemo.onap.org -AAI_PORT=8443 -AAI_CONTEXT_URI= -AAI_USERNAME=policy@policy.onap.org -AAI_PASSWORD=demo123456! - -# MSO - -SO_HOST=vm1.mso.simpledemo.onap.org -SO_PORT=8080 -SO_CONTEXT_URI=onap/so/infra/ -SO_URL=http://vm1.mso.simpledemo.onap.org:8080/onap/so/infra -SO_USERNAME=InfraPortalClient -SO_PASSWORD='password1$' - -# VFC - -VFC_HOST= -VFC_PORT= -VFC_CONTEXT_URI=api/nslcm/v1/ -VFC_USERNAME= -VFC_PASSWORD= - -# SDNC - -SDNC_HOST= -SDNC_PORT= -SDNC_CONTEXT_URI=restconf/operations/ -SDNC_USERNAME= -SDNC_PASSWORD= diff --git a/compose/config/pap/papParameters.yaml b/compose/config/pap/papParameters.yaml index 5b6c640e..57b540bb 100644 --- a/compose/config/pap/papParameters.yaml +++ b/compose/config/pap/papParameters.yaml @@ -7,8 +7,8 @@ spring: converters: preferred-json-mapper: gson datasource: - url: jdbc:mariadb://mariadb:3306/policyadmin - driverClassName: org.mariadb.jdbc.Driver + url: jdbc:postgresql://postgres:5432/policyadmin + driverClassName: org.postgresql.Driver username: policy_user password: policy_user jpa: @@ -85,3 +85,24 @@ management: path-mapping: -metrics: plain-metrics -prometheus: metrics + +--- + +spring: + config: + activate: + on-profile: mariadb + datasource: + url: jdbc:mariadb://mariadb:3306/policyadmin + driverClassName: org.mariadb.jdbc.Driver + username: policy_user + password: policy_user + +database: + name: PolicyProviderParameterGroup + implementation: org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl + driver: org.mariadb.jdbc.Driver + url: jdbc:mariadb://mariadb:3306/policyadmin + user: policy_user + password: policy_user + persistenceUnit: PolicyDb diff --git a/compose/config/pap/papParametersPostgres.yaml b/compose/config/pap/papParametersPostgres.yaml deleted file mode 100644 index 30ef7751..00000000 --- a/compose/config/pap/papParametersPostgres.yaml +++ /dev/null @@ -1,88 +0,0 @@ -spring: - security: - user: - name: policyadmin - password: zb!XztG34 - http: - converters: - preferred-json-mapper: gson - datasource: - url: jdbc:postgresql://postgres:5432/policyadmin - driverClassName: org.postgresql.Driver - username: policy_user - password: policy_user - jpa: - hibernate: - ddl-auto: none - naming: - physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl - implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy - -server: - port: 6969 - servlet: - context-path: /policy/pap/v1 - ssl: - enabled: false - -pap: - name: PapGroup - aaf: false - topic: - pdp-pap.name: policy-pdp-pap - notification.name: policy-notification - heartbeat.name: policy-heartbeat - pdpParameters: - heartBeatMs: 120000 - updateParameters: - maxRetryCount: 1 - maxWaitMs: 30000 - stateChangeParameters: - maxRetryCount: 1 - maxWaitMs: 30000 - savePdpStatisticsInDb: true - topicParameterGroup: - topicSources: - - topic: ${pap.topic.pdp-pap.name} - servers: - - kafka:9092 - topicCommInfrastructure: kafka - useHttps: false - fetchTimeout: 15000 - - topic: ${pap.topic.heartbeat.name} - effectiveTopic: ${pap.topic.pdp-pap.name} - consumerGroup: policy-pap - servers: - - kafka:9092 - topicCommInfrastructure: kafka - useHttps: false - fetchTimeout: 15000 - topicSinks: - - topic: ${pap.topic.pdp-pap.name} - servers: - - kafka:9092 - topicCommInfrastructure: kafka - useHttps: false - - topic: ${pap.topic.notification.name} - servers: - - kafka:9092 - topicCommInfrastructure: kafka - useHttps: false - healthCheckRestClientParameters: - - clientName: api - hostname: policy-api - port: 6969 - userName: policyadmin - password: zb!XztG34 - useHttps: false - basePath: policy/api/v1/healthcheck - -management: - endpoints: - web: - base-path: / - exposure: - include: health, metrics, prometheus - path-mapping: - -metrics: plain-metrics - -prometheus: metrics diff --git a/compose/config/policy-gui/application.yaml b/compose/config/policy-gui/application.yaml deleted file mode 100644 index 30de64bf..00000000 --- a/compose/config/policy-gui/application.yaml +++ /dev/null @@ -1,37 +0,0 @@ -# -# ===========LICENSE_START==================================================== -# Copyright (C) 2022 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===================================================== -# -server: - port: 2445 - ssl: - enabled: false - -clamp: - url: http://policy-clamp-be:8445 - disable-ssl-validation: true - disable-ssl-hostname-check: true - -apex-editor: - upload-url: - upload-userid: - -management: - endpoints: - web: - exposure: - include: health, metrics, prometheus - diff --git a/compose/config/policy-gui/groups.json b/compose/config/policy-gui/groups.json deleted file mode 100644 index 6ee30e1c..00000000 --- a/compose/config/policy-gui/groups.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "groups": [ - { - "name": "defaultGroup", - "version": "1.0.0", - "description": "The default group that registers all supported policy types and pdps.", - "pdpGroupState": "ACTIVE", - "pdpSubgroups": [ - { - "pdpType": "xacml", - "supportedPolicyTypes": [ - { - "name": "onap.policies.controlloop.guard.common.FrequencyLimiter", - "version": "1.0.0" - }, - { - "name": "onap.policies.controlloop.guard.common.MinMax", - "version": "1.0.0" - }, - { - "name": "onap.policies.controlloop.guard.common.Blacklist", - "version": "1.0.0" - }, - { - "name": "onap.policies.controlloop.guard.common.Filter", - "version": "1.0.0" - }, - { - "name": "onap.policies.controlloop.guard.coordination.FirstBlocksSecond", - "version": "1.0.0" - }, - { - "name": "onap.policies.monitoring.*", - "version": "1.0.0" - }, - { - "name": "onap.policies.optimization.*", - "version": "1.0.0" - }, - { - "name": "onap.policies.optimization.resource.AffinityPolicy", - "version": "1.0.0" - }, - { - "name": "onap.policies.optimization.resource.DistancePolicy", - "version": "1.0.0" - }, - { - "name": "onap.policies.optimization.resource.HpaPolicy", - "version": "1.0.0" - }, - { - "name": "onap.policies.optimization.resource.OptimizationPolicy", - "version": "1.0.0" - }, - { - "name": "onap.policies.optimization.resource.PciPolicy", - "version": "1.0.0" - }, - { - "name": "onap.policies.optimization.service.QueryPolicy", - "version": "1.0.0" - }, - { - "name": "onap.policies.optimization.service.SubscriberPolicy", - "version": "1.0.0" - }, - { - "name": "onap.policies.optimization.resource.Vim_fit", - "version": "1.0.0" - }, - { - "name": "onap.policies.optimization.resource.VnfPolicy", - "version": "1.0.0" - }, - { - "name": "onap.policies.native.Xacml", - "version": "1.0.0" - }, - { - "name": "onap.policies.Naming", - "version": "1.0.0" - }, - { - "name": "onap.policies.match.*", - "version": "1.0.0" - } - ], - "currentInstanceCount": 0, - "desiredInstanceCount": 1, - "policies": [ - { - "name": "SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", - "version": "1.0.0" - } - ] - }, - { - "pdpType": "drools", - "supportedPolicyTypes": [ - { - "name": "onap.policies.controlloop.operational.common.Drools", - "version": "1.0.0" - }, - { - "name": "onap.policies.native.drools.Controller", - "version": "1.0.0" - }, - { - "name": "onap.policies.native.drools.Artifact", - "version": "1.0.0" - } - ], - "currentInstanceCount": 0, - "desiredInstanceCount": 1, - "policies": [] - }, - { - "pdpType": "apex", - "supportedPolicyTypes": [ - { - "name": "onap.policies.controlloop.operational.common.Apex", - "version": "1.0.0" - }, - { - "name": "onap.policies.native.Apex", - "version": "1.0.0" - } - ], - "currentInstanceCount": 0, - "desiredInstanceCount": 1, - "policies": [] - } - ] - } - ] -} diff --git a/compose/config/policy-gui/logback.xml b/compose/config/policy-gui/logback.xml deleted file mode 100644 index 04bc5671..00000000 --- a/compose/config/policy-gui/logback.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - - - - - - - - ${logDir}/${errorLog}.log - - ${logDir}/${errorLog}.%d{yyyy-MM-dd}.%i.log.zip - - 50MB - 30 - 10GB - - - WARN - - - ${errorPattern} - - - - - - - - - ${logDir}/${debugLog}.log - - ${logDir}/${debugLog}.%d{yyyy-MM-dd}.%i.log.zip - - 50MB - 30 - 10GB - - - ${debugPattern} - - - - - - - - - ${logDir}/${networkLog}.log - - ${logDir}/${networkLog}.%d{yyyy-MM-dd}.%i.log.zip - - 50MB - 30 - 10GB - - - ${networkPattern} - - - - - - - - - - [%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%level|%logger{0}|%thread] %msg%n - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/compose/config/xacml-pdp/xacml-mariadb.properties b/compose/config/xacml-pdp/xacml-mariadb.properties new file mode 100644 index 00000000..ede93c70 --- /dev/null +++ b/compose/config/xacml-pdp/xacml-mariadb.properties @@ -0,0 +1,54 @@ +# +# Properties that the embedded PDP engine uses to configure and load +# +# Standard API Factories +# +xacml.dataTypeFactory=com.att.research.xacml.std.StdDataTypeFactory +xacml.pdpEngineFactory=com.att.research.xacmlatt.pdp.ATTPDPEngineFactory +xacml.pepEngineFactory=com.att.research.xacml.std.pep.StdEngineFactory +xacml.pipFinderFactory=com.att.research.xacml.std.pip.StdPIPFinderFactory +xacml.traceEngineFactory=com.att.research.xacml.std.trace.LoggingTraceEngineFactory +# +# AT&T PDP Implementation Factories +# +xacml.att.evaluationContextFactory=com.att.research.xacmlatt.pdp.std.StdEvaluationContextFactory +xacml.att.combiningAlgorithmFactory=com.att.research.xacmlatt.pdp.std.StdCombiningAlgorithmFactory +xacml.att.functionDefinitionFactory=com.att.research.xacmlatt.pdp.std.StdFunctionDefinitionFactory +# +# ONAP PDP Implementation Factories +# +xacml.att.policyFinderFactory=org.onap.policy.pdp.xacml.application.common.OnapPolicyFinderFactory + +# +# Use a root combining algorithm +# +xacml.att.policyFinderFactory.combineRootPolicies=urn:oasis:names:tc:xacml:3.0:policy-combining-algorithm:deny-overrides + +# +# PIP Engine Definitions +# +count-recent-operations.classname=org.onap.policy.pdp.xacml.application.common.operationshistory.CountRecentOperationsPip +count-recent-operations.issuer=urn:org:onap:xacml:guard:count-recent-operations +count-recent-operations.name=CountRecentOperations +count-recent-operations.description=Returns operation counts based on time window +count-recent-operations.persistenceunit=OperationsHistoryPU + +get-operation-outcome.classname=org.onap.policy.pdp.xacml.application.common.operationshistory.GetOperationOutcomePip +get-operation-outcome.issuer=urn:org:onap:xacml:guard:get-operation-outcome +get-operation-outcome.name=GetOperationOutcome +get-operation-outcome.description=Returns operation outcome +get-operation-outcome.persistenceunit=OperationsHistoryPU + +# +# Make pips available to finder +# +xacml.pip.engines=count-recent-operations,get-operation-outcome + +# +# JPA Properties +# +eclipselink.target-database=MySQL +jakarta.persistence.jdbc.driver=org.mariadb.jdbc.Driver +jakarta.persistence.jdbc.url=jdbc:mariadb://mariadb:3306/operationshistory +jakarta.persistence.jdbc.user=policy_user +jakarta.persistence.jdbc.password=policy_user diff --git a/compose/config/xacml-pdp/xacml-postgres.properties b/compose/config/xacml-pdp/xacml-postgres.properties new file mode 100644 index 00000000..a3446c4c --- /dev/null +++ b/compose/config/xacml-pdp/xacml-postgres.properties @@ -0,0 +1,54 @@ +# +# Properties that the embedded PDP engine uses to configure and load +# +# Standard API Factories +# +xacml.dataTypeFactory=com.att.research.xacml.std.StdDataTypeFactory +xacml.pdpEngineFactory=com.att.research.xacmlatt.pdp.ATTPDPEngineFactory +xacml.pepEngineFactory=com.att.research.xacml.std.pep.StdEngineFactory +xacml.pipFinderFactory=com.att.research.xacml.std.pip.StdPIPFinderFactory +xacml.traceEngineFactory=com.att.research.xacml.std.trace.LoggingTraceEngineFactory +# +# AT&T PDP Implementation Factories +# +xacml.att.evaluationContextFactory=com.att.research.xacmlatt.pdp.std.StdEvaluationContextFactory +xacml.att.combiningAlgorithmFactory=com.att.research.xacmlatt.pdp.std.StdCombiningAlgorithmFactory +xacml.att.functionDefinitionFactory=com.att.research.xacmlatt.pdp.std.StdFunctionDefinitionFactory +# +# ONAP PDP Implementation Factories +# +xacml.att.policyFinderFactory=org.onap.policy.pdp.xacml.application.common.OnapPolicyFinderFactory + +# +# Use a root combining algorithm +# +xacml.att.policyFinderFactory.combineRootPolicies=urn:oasis:names:tc:xacml:3.0:policy-combining-algorithm:deny-overrides + +# +# PIP Engine Definitions +# +count-recent-operations.classname=org.onap.policy.pdp.xacml.application.common.operationshistory.CountRecentOperationsPip +count-recent-operations.issuer=urn:org:onap:xacml:guard:count-recent-operations +count-recent-operations.name=CountRecentOperations +count-recent-operations.description=Returns operation counts based on time window +count-recent-operations.persistenceunit=OperationsHistoryPU + +get-operation-outcome.classname=org.onap.policy.pdp.xacml.application.common.operationshistory.GetOperationOutcomePip +get-operation-outcome.issuer=urn:org:onap:xacml:guard:get-operation-outcome +get-operation-outcome.name=GetOperationOutcome +get-operation-outcome.description=Returns operation outcome +get-operation-outcome.persistenceunit=OperationsHistoryPU + +# +# Make pips available to finder +# +xacml.pip.engines=count-recent-operations,get-operation-outcome + +# +# JPA Properties +# +eclipselink.target-database=PostgreSQL +jakarta.persistence.jdbc.driver=org.postgresql.Driver +jakarta.persistence.jdbc.url=jdbc:postgresql://postgres:5432/operationshistory +jakarta.persistence.jdbc.user=policy_user +jakarta.persistence.jdbc.password=policy_user diff --git a/compose/docker-compose.acm.scale.yml b/compose/docker-compose.acm.scale.yml deleted file mode 100644 index 676ffa2d..00000000 --- a/compose/docker-compose.acm.scale.yml +++ /dev/null @@ -1,147 +0,0 @@ -# -# ===========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 deleted file mode 100644 index 242cb3d8..00000000 --- a/compose/docker-compose.pdp.scale.yml +++ /dev/null @@ -1,53 +0,0 @@ -# -# ===========LICENSE_START==================================================== -# Copyright (C) 2023-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: - apexpdp: - image: ${CONTAINER_LOCATION}onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION} - depends_on: - - mariadb - - simulator - - kafka - - pap - hostname: policy-apex-pdp - expose: - - 6969 - - 23324 - deploy: - mode: replicated - replicas: ${REPLICAS} - volumes: - - ./config/apex-pdp/OnapPfConfig.json:/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json:ro - - ./config/apex-pdp/logback.xml:/opt/app/policy/apex-pdp/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', '/opt/app/policy/apex-pdp/bin/apexOnapPf.sh -c /opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json', - 'mariadb', '3306', - 'kafka', '9092', - 'pap', '6969' - ] - nginx: - image: ${CONTAINER_LOCATION}library/nginx:latest - volumes: - - ./config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro - depends_on: - - apexpdp - ports: - - ${APEX_PORT}:${APEX_PORT} - diff --git a/compose/docker-compose.postgres.yml b/compose/docker-compose.postgres.yml deleted file mode 100644 index ca96f562..00000000 --- a/compose/docker-compose.postgres.yml +++ /dev/null @@ -1,194 +0,0 @@ -# -# ===========LICENSE_START==================================================== -# Copyright (C) 2023-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: - postgres: - image: nexus3.onap.org:10001/library/postgres:${POLICY_POSTGRES_VER} - container_name: postgres - hostname: postgres - command: [ '--idle_in_transaction_session_timeout=28800' ] - env_file: config/db-pg/db-pg.conf - volumes: - - ./config/db-pg:/docker-entrypoint-initdb.d:ro - expose: - - 5432 - ports: - - "5432:5432" - policy-db-migrator: - image: ${CONTAINER_LOCATION}onap/policy-db-migrator:${POLICY_DOCKER_VERSION} - container_name: policy-db-migrator - hostname: policy-db-migrator - depends_on: - - postgres - expose: - - 6824 - env_file: config/db-pg/db-pg.conf - environment: - SQL_DB: policyadmin - SQL_HOST: postgres - PGPASSWORD: policy_user - volumes: - - ./config/db-migrator/init_pg.sh:/opt/app/policy/bin/db_migrator_policy_init_pg.sh: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', - '/opt/app/policy/bin/db_migrator_policy_init_pg.sh', - 'postgres', '5432' - ] - simulator: - image: ${CONTAINER_LOCATION}onap/policy-models-simulator:${POLICY_MODELS_VERSION} - container_name: simulator - hostname: simulator - networks: - default: - aliases: - - aai-sim - - grpc-sim - - sdnc-sim - - so-sim - - vfc-sim - volumes: - - ./config/sim-all:/opt/app/policy/simulators/etc/mounted:ro - - ./config/sim-all/logback.xml:/opt/app/policy/simulators/etc/mounted/logback.xml:ro - expose: - - 6666 - - 6668 - - 6669 - - 6670 - - 6680 - ports: - - ${SIMULATOR_PORT}:6666 - api: - image: ${CONTAINER_LOCATION}onap/policy-api:${POLICY_API_VERSION} - container_name: policy-api - depends_on: - - policy-db-migrator - hostname: policy-api - ports: - - ${API_PORT}:6969 - volumes: - - ./config/api/apiParametersPostgres.yaml:/opt/app/policy/api/etc/apiParameters.yaml:ro - - ./config/api/logback.xml:/opt/app/policy/api/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/api/bin/wait_for_port.sh:ro - entrypoint: ./wait_for_port.sh - command: [ - '-c', './policy-api.sh', - 'postgres', '5432', - 'policy-db-migrator', '6824' - ] - pap: - image: ${CONTAINER_LOCATION}onap/policy-pap:${POLICY_PAP_VERSION} - container_name: policy-pap - depends_on: - - postgres - - kafka - - api - hostname: policy-pap - ports: - - ${PAP_PORT}:6969 - volumes: - - ./config/pap/papParametersPostgres.yaml:/opt/app/policy/pap/etc/papParameters.yaml:ro - - ./config/${component}/groups.json:/opt/app/policy/pap/etc/mounted/groups.json:ro - - ./config/pap/logback.xml:/opt/app/policy/pap/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/pap/bin/wait_for_port.sh:ro - entrypoint: ./wait_for_port.sh - command: [ - '-c', './policy-pap.sh', - 'postgres', '5432', - 'kafka', '9092', - 'api', '6969' - ] - apex-pdp: - image: ${CONTAINER_LOCATION}onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION} - container_name: policy-apex-pdp - depends_on: - - postgres - - simulator - - kafka - - pap - hostname: policy-apex-pdp - ports: - - ${APEX_PORT}:6969 - - ${APEX_EVENTS_PORT}:23324 - volumes: - - ./config/apex-pdp/OnapPfConfig.json:/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json:ro - - ./config/apex-pdp/logback.xml:/opt/app/policy/apex-pdp/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', '/opt/app/policy/apex-pdp/bin/apexOnapPf.sh -c /opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json', - 'postgres', '5432', - 'kafka', '9092', - 'pap', '6969' - ] - xacml-pdp: - image: ${CONTAINER_LOCATION}onap/policy-xacml-pdp:${POLICY_XACML_PDP_VERSION} - container_name: policy-xacml-pdp - hostname: policy-xacml-pdp - depends_on: - - postgres - - kafka - - pap - ports: - - ${XACML_PORT}:6969 - - "30999:3904" - volumes: - - ./config/xacml-pdp/defaultConfig.json:/opt/app/policy/pdpx/etc/defaultConfig.json:ro - - ./config/xacml-pdp/logback.xml:/opt/app/policy/pdpx/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/pdpx/bin/wait_for_port.sh:ro - entrypoint: ./wait_for_port.sh - command: [ - '-c', './policy-pdpx-pg.sh', - 'postgres', '5432', - 'kafka', '9092', - 'pap', '6969' - ] - prometheus: - image: nexus3.onap.org:10001/prom/prometheus:latest - container_name: prometheus - hostname: prometheus - ports: - - ${PROMETHEUS_PORT}:9090 - volumes: - - ./metrics/prometheus.yml:/etc/prometheus/prometheus.yml - - zookeeper: - image: confluentinc/cp-zookeeper:latest - container_name: zookeeper - 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/docker-compose.yml b/compose/docker-compose.yml deleted file mode 100644 index afa05bf8..00000000 --- a/compose/docker-compose.yml +++ /dev/null @@ -1,517 +0,0 @@ -# -# ===========LICENSE_START==================================================== -# Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. -# Modifications Copyright (C) 2021 Bell Canada. All rights reserved. -# Modification Copyright 2021-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: - mariadb: - image: nexus3.onap.org:10001/mariadb:${POLICY_MARIADB_VER} - container_name: mariadb - hostname: mariadb - command: [ '--lower-case-table-names=1', '--wait_timeout=28800', '--default-authentication-plugin=mysql_native_password' ] - env_file: ./config/db/db.conf - volumes: - - ./config/db:/docker-entrypoint-initdb.d:ro - - ./config/clamp/policy-clamp-create-tables.sql:/tmp/policy-clamp-create-tables.sql - ports: - - "3306:3306" - policy-db-migrator: - image: ${CONTAINER_LOCATION}onap/policy-db-migrator:${POLICY_DOCKER_VERSION} - container_name: policy-db-migrator - hostname: policy-db-migrator - depends_on: - - mariadb - expose: - - 6824 - env_file: ./config/db/db.conf - environment: - SQL_DB: policyadmin - SQL_HOST: mariadb - volumes: - - ./config/db-migrator/init.sh:/opt/app/policy/bin/db_migrator_policy_init.sh: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', - '/opt/app/policy/bin/db_migrator_policy_init.sh', - 'mariadb', '3306' - ] - policy-db-migrator-clamp: - image: ${CONTAINER_LOCATION}onap/policy-db-migrator:${POLICY_DOCKER_VERSION} - container_name: policy-db-migrator-clamp - hostname: policy-db-migrator-clamp - depends_on: - - mariadb - expose: - - 6824 - env_file: ./config/db/db.conf - environment: - SQL_DB: clampacm - SQL_HOST: mariadb - volumes: - - ./config/db-migrator/init.sh:/opt/app/policy/bin/db_migrator_policy_init.sh: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', - '/opt/app/policy/bin/db_migrator_policy_init.sh', - 'mariadb', '3306' - ] - simulator: - image: ${CONTAINER_LOCATION}onap/policy-models-simulator:${POLICY_MODELS_VERSION} - container_name: simulator - hostname: simulator - networks: - default: - aliases: - - aai-sim - - grpc-sim - - sdnc-sim - - so-sim - - vfc-sim - volumes: - - ./config/sim-all:/opt/app/policy/simulators/etc/mounted:ro - - ./config/sim-all/logback.xml:/opt/app/policy/simulators/etc/mounted/logback.xml:ro - expose: - - 6666 - - 6668 - - 6669 - - 6670 - - 6680 - ports: - - ${SIMULATOR_PORT}:6666 - api: - image: ${CONTAINER_LOCATION}onap/policy-api:${POLICY_API_VERSION} - container_name: policy-api - hostname: policy-api - depends_on: - - policy-db-migrator - ports: - - ${API_PORT}:6969 - volumes: - - ./config/api/apiParameters.yaml:/opt/app/policy/api/etc/apiParameters.yaml:ro - - ./config/api/logback.xml:/opt/app/policy/api/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/api/bin/wait_for_port.sh:ro - entrypoint: ./wait_for_port.sh - command: [ - '-c', './policy-api.sh', - 'mariadb', '3306', - 'policy-db-migrator', '6824' - ] - pap: - image: ${CONTAINER_LOCATION}onap/policy-pap:${POLICY_PAP_VERSION} - container_name: policy-pap - hostname: policy-pap - depends_on: - - mariadb - - kafka - - api - ports: - - ${PAP_PORT}:6969 - volumes: - - ./config/pap/papParameters.yaml:/opt/app/policy/pap/etc/papParameters.yaml:ro - - ./config/${PROJECT}/groups.json:/opt/app/policy/pap/etc/mounted/groups.json:ro - - ./config/pap/logback.xml:/opt/app/policy/pap/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/pap/bin/wait_for_port.sh:ro - entrypoint: ./wait_for_port.sh - command: [ - '-c', './policy-pap.sh', - 'mariadb', '3306', - 'kafka', '9092', - 'api', '6969' - ] - xacml-pdp: - image: ${CONTAINER_LOCATION}onap/policy-xacml-pdp:${POLICY_XACML_PDP_VERSION} - container_name: policy-xacml-pdp - hostname: policy-xacml-pdp - depends_on: - - mariadb - - kafka - - pap - ports: - - ${XACML_PORT}:6969 - - "30999:3904" - volumes: - - ./config/xacml-pdp/defaultConfig.json:/opt/app/policy/pdpx/etc/defaultConfig.json:ro - - ./config/xacml-pdp/logback.xml:/opt/app/policy/pdpx/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/pdpx/bin/wait_for_port.sh:ro - entrypoint: ./wait_for_port.sh - command: [ - '-c', './policy-pdpx.sh', - 'mariadb', '3306', - 'kafka', '9092', - 'pap', '6969' - ] - drools-pdp: - image: ${CONTAINER_LOCATION}onap/policy-drools:${POLICY_DROOLS_PDP_VERSION} - container_name: policy-drools-pdp - hostname: policy-drools-pdp - depends_on: - - mariadb - - kafka - - pap - ports: - - ${DROOLS_PORT}:6969 - - ${DROOLS_TELEMETRY_PORT}:9696 - volumes: - - ./config/drools-pdp/custom:/tmp/policy-install/config:ro - - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro - env_file: - - ./config/drools-pdp/env/base.conf - entrypoint: /opt/app/policy/bin/wait_for_port.sh - command: [ - '-c', '/opt/app/policy/bin/pdpd-entrypoint.sh boot', - 'mariadb', '3306', - 'kafka', '9092' - ] - drools-applications: - image: ${CONTAINER_LOCATION}onap/policy-pdpd-cl:${POLICY_DROOLS_APPS_VERSION} - container_name: policy-drools-apps - hostname: policy-drools-apps - depends_on: - - mariadb - - simulator - - kafka - - pap - - xacml-pdp - ports: - - ${DROOLS_APPS_PORT}:6969 - - ${DROOLS_APPS_TELEMETRY_PORT}:9696 - volumes: - - ./config/drools-applications/custom:/tmp/policy-install/config:ro - - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro - env_file: - - ./config/drools-applications/env/base.conf - - ./config/drools-applications/env/feature-healthcheck.conf - - ./config/drools-applications/env/feature-pooling-messages.conf - entrypoint: /opt/app/policy/bin/wait_for_port.sh - command: [ - '-c', '/opt/app/policy/bin/pdpd-cl-entrypoint.sh boot', - 'mariadb', '3306', - 'kafka', '9092', - 'pap', '6969', - 'aai-sim', '6666', - 'sdnc-sim', '6668', - 'so-sim', '6669', - 'vfc-sim', '6670' - ] - apex-pdp: - image: ${CONTAINER_LOCATION}onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION} - container_name: policy-apex-pdp - hostname: policy-apex-pdp - depends_on: - - mariadb - - simulator - - kafka - - pap - ports: - - ${APEX_PORT}:6969 - - ${APEX_EVENTS_PORT}:23324 - volumes: - - ./config/apex-pdp/OnapPfConfig.json:/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json:ro - - ./config/apex-pdp/logback.xml:/opt/app/policy/apex-pdp/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', '/opt/app/policy/apex-pdp/bin/apexOnapPf.sh -c /opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json', - 'mariadb', '3306', - 'kafka', '9092', - 'pap', '6969' - ] - distribution: - image: ${CONTAINER_LOCATION}onap/policy-distribution:${POLICY_DISTRIBUTION_VERSION} - container_name: policy-distribution - hostname: policy-distribution - depends_on: - - mariadb - - api - - pap - - apex-pdp - ports: - - ${DIST_PORT}:6969 - volumes: - - ./config/distribution/defaultConfig.json:/opt/app/policy/distribution/etc/defaultConfig.json:ro - - /tmp/distribution/:/opt/app/policy/distribution/etc/temp/:ro - - ./config/distribution/logback.xml:/opt/app/policy/distribution/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-dist.sh', - 'mariadb', '3306', - 'kafka', '9092', - 'pap', '6969', - 'apex-pdp', '6969' - ] - policy-clamp-runtime-acm: - image: ${CONTAINER_LOCATION}onap/policy-clamp-runtime-acm:${POLICY_CLAMP_VERSION} - container_name: policy-clamp-runtime-acm - hostname: policy-clamp-runtime-acm - depends_on: - - policy-db-migrator-clamp - - kafka - - jaeger - - policy-clamp-ac-http-ppnt - - policy-clamp-ac-k8s-ppnt - - policy-clamp-ac-pf-ppnt - - policy-clamp-ac-sim-ppnt - - apex-pdp - ports: - - ${ACM_PORT}:6969 - 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 - SPRING_PROFILES_ACTIVE: ${CLAMP_PROFILE:-default} - # 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', - 'apex-pdp', '6969' - ] - - policy-clamp-ac-http-ppnt: - image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-http-ppnt:${POLICY_CLAMP_PPNT_VERSION} - container_name: policy-clamp-ac-http-ppnt - hostname: policy-clamp-ac-http-ppnt - depends_on: - - kafka - - jaeger - ports: - - "30290:6969" - 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 - SPRING_PROFILES_ACTIVE: ${PPNT_PROFILE:-default} - 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: - image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-k8s-ppnt:${POLICY_CLAMP_PPNT_VERSION} - container_name: policy-clamp-ac-k8s-ppnt - 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 - SPRING_PROFILES_ACTIVE: ${PPNT_PROFILE:-default} - ports: - - "30295:6969" - 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: - image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-pf-ppnt:${POLICY_CLAMP_PPNT_VERSION} - container_name: policy-clamp-ac-pf-ppnt - hostname: policy-clamp-ac-pf-ppnt - depends_on: - - kafka - - api - - jaeger - ports: - - ${POLICY_PARTICIPANT_PORT}:6969 - 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 - SPRING_PROFILES_ACTIVE: ${PPNT_PROFILE:-default} - 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', - 'api', '6969' - ] - policy-clamp-ac-a1pms-ppnt: - image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-a1pms-ppnt:${POLICY_CLAMP_PPNT_VERSION} - container_name: policy-clamp-ac-a1pms-ppnt - hostname: policy-clamp-ac-a1pms-ppnt - depends_on: - - kafka - - jaeger - environment: - OTEL_SERVICE_NAME: a1pms-ppnt - OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf - OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf - OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318 - ports: - - "30296:6969" - volumes: - - ./config/clamp/A1pmsParticipantParameters.yaml:/opt/app/policy/clamp/etc/A1pmsParticipantParameters.yaml:ro - - ./config/clamp/a1pms-participant.sh:/opt/app/policy/clamp/bin/a1pms-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', './a1pms-participant.sh', - 'kafka', '9092' - ] - policy-clamp-ac-kserve-ppnt: - image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-kserve-ppnt:${POLICY_CLAMP_PPNT_VERSION} - container_name: policy-clamp-ac-kserve-ppnt - hostname: policy-clamp-ac-kserve-ppnt - depends_on: - - kafka - - jaeger - environment: - OTEL_SERVICE_NAME: kserve-ppnt - OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf - OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf - OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318 - ports: - - "30297:6969" - volumes: - - ./config/clamp/KserveParticipantParameters.yaml:/opt/app/policy/clamp/etc/KserveParticipantParameters.yaml:ro - - ./config/clamp/kserve-participant.sh:/opt/app/policy/clamp/bin/kserve-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', './kserve-participant.sh', - 'kafka', '9092' - ] - policy-clamp-ac-sim-ppnt: - image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-sim-ppnt:${POLICY_CLAMP_PPNT_VERSION} - container_name: policy-clamp-ac-sim-ppnt - hostname: policy-clamp-ac-sim-ppnt - depends_on: - - kafka - - jaeger - environment: - OTEL_SERVICE_NAME: sim-ppnt - OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf - OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf - OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318 - SPRING_PROFILES_ACTIVE: ${PPNT_PROFILE:-default} - ports: - - ${SIM_PARTICIPANT_PORT}:6969 - volumes: - - ./config/clamp/SimulatorParticipantParameters.yaml:/opt/app/policy/clamp/etc/SimulatorParticipantParameters.yaml:ro - - ./config/clamp/sim-participant.sh:/opt/app/policy/clamp/bin/sim-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', './sim-participant.sh', - 'kafka', '9092' - ] - prometheus: - image: nexus3.onap.org:10001/prom/prometheus:latest - container_name: prometheus - hostname: prometheus - ports: - - ${PROMETHEUS_PORT}:9090 - volumes: - - ./metrics/prometheus.yml:/etc/prometheus/prometheus.yml - grafana: - image: nexus3.onap.org:10001/grafana/grafana:latest - container_name: grafana - hostname: grafana - depends_on: - - prometheus - ports: - - ${GRAFANA_PORT}:3000 - volumes: - - ./metrics/dashboard.yaml:/etc/grafana/provisioning/dashboards/dashboard.yaml - - ./metrics/datasource.yaml:/etc/grafana/provisioning/datasources/datasource.yaml - - ./metrics/dashboards:/var/lib/grafana/dashboards - zookeeper: - image: confluentinc/cp-zookeeper:latest - container_name: zookeeper - hostname: zookeeper - ports: - - "2181:2181" - environment: - ZOOKEEPER_CLIENT_PORT: 2181 - kafka: - image: confluentinc/cp-kafka:latest - container_name: kafka - hostname: kafka - depends_on: - - zookeeper - ports: - - 9092:9092 - - 29092:29092 - environment: - KAFKA_BROKER_ID: 1 - KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181" - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 - KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 - KAFKA_ADVERTISED_HOST_NAME: kafka - csit-tests: - image: policy-csit-robot:latest - container_name: policy-csit - hostname: policy-csit - volumes: - - ${ROBOT_LOG_DIR}:/tmp/results - - /tmp/distribution:/tmp/distribution - environment: - ROBOT_FILE: ${ROBOT_FILES} - TEST_ENV: ${TEST_ENV} - - jaeger: - image: jaegertracing/all-in-one:1.58 - container_name: jaeger - ports: - - 4318:4318 - - 4317:4317 - - 14250:14250 - - 16686:16686 - environment: - - COLLECTOR_OTLP_ENABLED=true - diff --git a/compose/export-ports.sh b/compose/export-ports.sh index 6eaaedb8..8dd2c163 100755 --- a/compose/export-ports.sh +++ b/compose/export-ports.sh @@ -17,19 +17,6 @@ # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END========================================================= -if $(docker images | grep -q "^onap\/policy-api") -then - export CONTAINER_LOCATION=$( - docker images | - grep "^onap/policy-api" | - head -1 | - sed 's/onap\/policy-api.*$//' - ) - export LOCAL_IMAGES="true" -else - export CONTAINER_LOCATION="nexus3.onap.org:10001/" -fi - # EXPLICITLY ASSIGN PORTS FOR TESTING PURPOSES export APEX_PORT=30001 export APEX_EVENTS_PORT=23324 diff --git a/compose/get-versions.sh b/compose/get-versions.sh index a51ccef9..0e8f251e 100755 --- a/compose/get-versions.sh +++ b/compose/get-versions.sh @@ -25,11 +25,13 @@ if [ -z "${WORKSPACE}" ]; then export WORKSPACE fi +LOCAL_IMAGES=false + #default values export POLICY_MARIADB_VER=10.10.2 echo POLICY_MARIADB_VER=${POLICY_MARIADB_VER} -export POLICY_POSTGRES_VER=11.1 +export POLICY_POSTGRES_VER=16.4 echo POLICY_POSTGRES_VER=${POLICY_POSTGRES_VER} if [ -n "$LOCAL_IMAGES" ] && [ "$LOCAL_IMAGES" = "true" ]; then @@ -45,8 +47,10 @@ if [ -n "$LOCAL_IMAGES" ] && [ "$LOCAL_IMAGES" = "true" ]; then export POLICY_CLAMP_VERSION="latest" export POLICY_CLAMP_PPNT_VERSION=$POLICY_CLAMP_VERSION export POLICY_DROOLS_APPS_VERSION="latest" + export CONTAINER_LOCATION="" else + export CONTAINER_LOCATION="nexus3.onap.org:10001/" GERRIT_BRANCH=$(awk -F= '$1 == "defaultbranch" { print $2 }' \ "${WORKSPACE}"/.gitreview) @@ -123,7 +127,7 @@ else getDockerVersion docker export POLICY_DOCKER_VERSION="$docker_image_version" - getDockerVersion models "'policy-models-simulator'" 3.0.1 + getDockerVersion models export POLICY_MODELS_VERSION="$docker_image_version" getDockerVersion api diff --git a/compose/start-acm-replica.sh b/compose/start-acm-replica.sh index 373261e6..a9e95b88 100755 --- a/compose/start-acm-replica.sh +++ b/compose/start-acm-replica.sh @@ -18,15 +18,41 @@ # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END====================================================== +# Usage: --start to run the docker compose with acm replicas +# --stop to stop the docker compose containers +# --replicas number of replicas (defaults to 2) + +# Initialize variables +START=false +REPLICAS=2 + +# Parse arguments +while [[ "$#" -gt 0 ]]; do + case $1 in + --start) + START=true + shift + ;; + --stop) + START=false + shift + ;; + --replicas=*) + REPLICAS="${1#*=}" + shift + ;; + *) + echo "Unknown option: $1" + exit 1 + ;; + esac +done + 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} @@ -35,6 +61,28 @@ 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 +export REPLICAS + +if [ -z "$PROJECT" ]; then + export PROJECT=clamp +fi + +export database=postgres + +if [ "$START" = true ]; then + docker compose -f compose.acm.scale.yml up -d nginx +else + containers=$(docker compose -f compose.acm.scale.yml ps --all --format '{{.Service}}') + + IFS=$'\n' read -d '' -r -a item_list <<< "$containers" + for item in "${item_list[@]}" + do + if [ -n "$item" ]; then + docker compose -f compose.acm.scale.yml logs $item >> $item.log + fi + done + + docker compose -f compose.acm.scale.yml down -v --remove-orphans +fi + cd ${WORKSPACE} diff --git a/compose/start-compose.sh b/compose/start-compose.sh index 671927ba..013aba6f 100755 --- a/compose/start-compose.sh +++ b/compose/start-compose.sh @@ -20,8 +20,9 @@ #Usage: $0 [policy-component] [OPTIONS]" #" OPTIONS:" -#" --grafana start the docker compose with grafana" -#" --gui start the docker compose with gui" +#" --grafana start the docker compose with grafana" +#" --mariadb start the docker compose using mariadb" +#" --postgres [default] start the docker compose using postgres db" #" no policy-component will start all components" if [ -z "${WORKSPACE}" ]; then @@ -32,6 +33,7 @@ COMPOSE_FOLDER="${WORKSPACE}"/compose # Set default values for the options grafana=false +database=postgres # Parse the command-line arguments while [[ $# -gt 0 ]] @@ -43,6 +45,14 @@ do grafana=true shift ;; + --mariadb) + database=mariadb + shift + ;; + --postgres) + database=postgres + shift + ;; *) component="$1" shift @@ -61,30 +71,23 @@ if [ -z "$PROJECT" ]; then export PROJECT=$component fi -# docker compose fails when not running CSIT -if [ -z "$ROBOT_LOG_DIR" ]; then - export ROBOT_LOG_DIR=/tmp/ -fi - -# always 'docker' if running docker compose -export TEST_ENV="docker" +export database if [ -n "$component" ]; then - if [ "$component" == "logs" ]; then - echo "Collecting logs..." - docker compose logs > docker-compose.log - elif [ "$grafana" = true ]; then - echo "Starting ${component} application with Grafana" - docker compose up -d "${component}" grafana + if [ "$grafana" = true ]; then + echo "Starting ${component} using ${database} + Grafana/Prometheus" + docker compose up -d ${component} ${database} grafana + echo "Prometheus server: http://localhost:${PROMETHEUS_PORT}" echo "Grafana server: http://localhost:${GRAFANA_PORT}" + else - echo "Starting ${component} application" - docker compose up -d "${component}" + echo "Starting ${component} using ${database}" + docker compose up -d ${component} ${database} fi else export PROJECT=api # api has groups.json complete with all 3 pdps - echo "Starting all components..." + echo "Starting all components using ${database}" docker compose up -d fi diff --git a/compose/start-multiple-pdp.sh b/compose/start-multiple-pdp.sh index b97760e7..b0641b41 100755 --- a/compose/start-multiple-pdp.sh +++ b/compose/start-multiple-pdp.sh @@ -1,7 +1,7 @@ #!/bin/bash # # ============LICENSE_START==================================================== -# Copyright (C) 2023 Nordix Foundation. +# Copyright (C) 2023-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. @@ -18,23 +18,69 @@ # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END====================================================== +# Usage: --start to run the docker compose with apex-pdp replicas +# --stop to stop the docker compose containers +# --replicas number of replicas (defaults to 2) + +# Initialize variables +START=false +REPLICAS=2 + +# Parse arguments +while [[ "$#" -gt 0 ]]; do + case $1 in + --start) + START=true + shift + ;; + --stop) + START=false + shift + ;; + --replicas=*) + REPLICAS="${1#*=}" + shift + ;; + *) + echo "Unknown option: $1" + exit 1 + ;; + esac +done + if [ -z "${WORKSPACE}" ]; then WORKSPACE=$(git rev-parse --show-toplevel) export WORKSPACE fi -COMPOSE_FOLDER="${WORKSPACE}"/compose -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.pdp.scale.yml up -d apexpdp nginx grafana +export REPLICAS + +export database=postgres + +if [ "$START" = true ]; then + echo "Configuring docker compose for apex-pdp scaled with ${REPLICAS} replicas..." + docker compose -f compose.pdp.scale.yml up -d apexpdp nginx grafana postgres +else + echo "Collecting logs..." + containers=$(docker compose -f compose.pdp.scale.yml ps --all --format '{{.Service}}') + + IFS=$'\n' read -d '' -r -a item_list <<< "$containers" + for item in "${item_list[@]}" + do + if [ -n "$item" ]; then + docker compose -f compose.pdp.scale.yml logs $item >> $item.log + fi + done + + echo "Stopping compose containers..." + docker compose -f compose.pdp.scale.yml down -v --remove-orphans +fi cd ${WORKSPACE} diff --git a/compose/start-postgres-tests.sh b/compose/start-postgres-tests.sh deleted file mode 100644 index 2d695911..00000000 --- a/compose/start-postgres-tests.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -# -# ============LICENSE_START==================================================== -# Copyright (C) 2023-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 -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 component=${1} -export REPLICAS=${2} -docker-compose -f docker-compose.postgres.yml up -d ${component} prometheus - -cd ${WORKSPACE} \ No newline at end of file diff --git a/compose/stop-compose.sh b/compose/stop-compose.sh index 493f9b57..5811a3e1 100755 --- a/compose/stop-compose.sh +++ b/compose/stop-compose.sh @@ -24,14 +24,30 @@ if [ -z "${WORKSPACE}" ]; then export WORKSPACE fi -# always 'docker' if running docker compose -export TEST_ENV="docker" - -# docker compose fails when not running CSIT -if [ -z "$ROBOT_LOG_DIR" ]; then - export ROBOT_LOG_DIR=/tmp/ - export ROBOT_FILES=none - export PROJECT=api +database=postgres + +while [[ $# -gt 0 ]] +do + key="$1" + + case $key in + --mariadb) + database=mariadb + shift + ;; + --postgres) + database=postgres + shift + ;; + *) + component="$1" + shift + ;; + esac +done + +if [ -z "$component" ]; then + export component=api fi COMPOSE_FOLDER="${WORKSPACE}"/compose @@ -44,6 +60,8 @@ source get-versions.sh > /dev/null 2>&1 echo "Collecting logs from docker compose containers..." rm -rf *.log +#COMPOSE_FILES="-f compose.${database}.yml -f compose.pdp.scale.yml -f compose.acm.scale.yml" + # this will collect logs by service instead of mixing all together containers=$(docker compose ps --all --format '{{.Service}}') diff --git a/csit/resources/scripts/wait_for_rest.sh b/csit/resources/scripts/wait_for_rest.sh index e400bbd4..ce47d600 100755 --- a/csit/resources/scripts/wait_for_rest.sh +++ b/csit/resources/scripts/wait_for_rest.sh @@ -54,7 +54,7 @@ do do if command -v docker > /dev/null 2>&1 then - docker ps --format "table {{ .Names }}\t{{ .Status }}" + docker ps --format "table {{ .Image }}\t{{ .Names }}\t{{ .Status }}" fi curl "http://$host:$port" > /dev/null 2>&1 rc=$? diff --git a/csit/resources/tests/drools-applications-test.robot b/csit/resources/tests/drools-applications-test.robot index 3c4303ad..8b0a3694 100644 --- a/csit/resources/tests/drools-applications-test.robot +++ b/csit/resources/tests/drools-applications-test.robot @@ -69,10 +69,9 @@ DeployDroolsPolicies [Documentation] Deploys the Policies to Drools DeployPolicy deploy.drools.policies.json Sleep 5s - ${result}= CheckKafkaTopic policy-notification operational.modifyconfig - Should Contain ${result} deployed-policies - Should Contain ${result} operational.scaleout - Should Contain ${result} operational.restart + @{otherMessages}= Create List deployed-policies operational.scaleout operational.restart + AssertMessageFromTopic policy-notification operational.modifyconfig ${otherMessages} + #VcpeExecute # [Documentation] Executes VCPE Policy diff --git a/csit/run-acm-regression.sh b/csit/run-acm-regression.sh index 2c91bcb4..19160027 100755 --- a/csit/run-acm-regression.sh +++ b/csit/run-acm-regression.sh @@ -67,10 +67,6 @@ if [ -z "${WORKSPACE}" ]; then export WORKSPACE fi -if [ -z "$ROBOT_LOG_DIR" ]; then - export ROBOT_LOG_DIR=/tmp/ -fi - export SCRIPTS="${WORKSPACE}/csit/resources/scripts" COMPOSE_FOLDER="${WORKSPACE}"/compose REGRESSION_FOLDER="${WORKSPACE}"/policy-regression-tests/policy-clamp-regression/ @@ -128,7 +124,9 @@ cd ${COMPOSE_FOLDER} docker login -u docker -p docker nexus3.onap.org:10001 > /dev/null 2>&1 source export-ports.sh > /dev/null 2>&1 -docker compose -f docker-compose.yml up -d "policy-clamp-runtime-acm" +export CONTAINER_LOCATION="nexus3.onap.org:10001/" + +docker compose up -d "policy-clamp-runtime-acm" # wait for the app to start up "${SCRIPTS}"/wait_for_rest.sh localhost "${ACM_PORT}" @@ -138,3 +136,8 @@ cd ${REGRESSION_FOLDER} # Invoke the regression test cases mvn clean test -Dtests.skip=false +cd ${COMPOSE_FOLDER} +source stop-compose.sh clamp +mv ${COMPOSE_FOLDER}/*.log ${REGRESSION_FOLDER} + +cd ${REGRESSION_FOLDER} diff --git a/csit/run-project-csit.sh b/csit/run-project-csit.sh index cbb62e6d..409209fd 100755 --- a/csit/run-project-csit.sh +++ b/csit/run-project-csit.sh @@ -33,7 +33,7 @@ function docker_stats(){ fi # Memory details per Docker - docker ps --format "table {{ .Names }}\t{{ .Status }}" + docker ps --format "table {{ .Image }}\t{{ .Names }}\t{{ .Status }}" echo docker stats --no-stream @@ -42,66 +42,65 @@ function docker_stats(){ function setup_clamp() { export ROBOT_FILES="policy-clamp-test.robot clamp-slas.robot" - source "${WORKSPACE}"/compose/start-compose.sh policy-clamp-runtime-acm --grafana + source ${DOCKER_COMPOSE_DIR}/start-compose.sh policy-clamp-runtime-acm --grafana sleep 30 - bash "${SCRIPTS}"/wait_for_rest.sh localhost "${ACM_PORT}" + bash ${SCRIPTS}/wait_for_rest.sh localhost "${ACM_PORT}" } function setup_clamp_replica() { + export ACM_REPLICA_TEARDOWN=true 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}" + export PROJECT=clamp + source ${DOCKER_COMPOSE_DIR}/start-acm-replica.sh --start --replicas=2 + echo "Waiting a minute for the replicas to be started..." + sleep 60 + # checking on apex-pdp status because acm-r replicas only start after apex-pdp is running + bash ${SCRIPTS}/wait_for_rest.sh localhost ${APEX_PORT} + apex_healthcheck + 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 + source ${DOCKER_COMPOSE_DIR}/start-compose.sh api --grafana sleep 10 - bash "${SCRIPTS}"/wait_for_rest.sh localhost ${API_PORT} + bash ${SCRIPTS}/wait_for_rest.sh localhost ${API_PORT} } function setup_pap() { export ROBOT_FILES="pap-test.robot pap-slas.robot" - source "${WORKSPACE}"/compose/start-compose.sh apex-pdp --grafana + source ${DOCKER_COMPOSE_DIR}/start-compose.sh apex-pdp --grafana sleep 10 - bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} + bash ${SCRIPTS}/wait_for_rest.sh localhost ${PAP_PORT} } function setup_apex() { export ROBOT_FILES="apex-pdp-test.robot apex-slas.robot" - source "${WORKSPACE}"/compose/start-compose.sh apex-pdp --grafana + source ${DOCKER_COMPOSE_DIR}/start-compose.sh apex-pdp --grafana sleep 10 - bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} - bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT} - apex_healthcheck -} - -function setup_apex_postgres() { - export ROBOT_FILES="apex-pdp-test.robot" - source "${WORKSPACE}"/compose/start-postgres-tests.sh apex-pdp 1 - sleep 10 - bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} - bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT} + bash ${SCRIPTS}/wait_for_rest.sh localhost ${PAP_PORT} + bash ${SCRIPTS}/wait_for_rest.sh localhost ${APEX_PORT} apex_healthcheck } function setup_apex_medium() { export SUITES="apex-slas-3.robot" - source "${WORKSPACE}"/compose/start-multiple-pdp.sh 3 + export APEX_REPLICA_TEARDOWN=true + source ${DOCKER_COMPOSE_DIR}/start-multiple-pdp.sh --start --replicas=3 sleep 10 - bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} - bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT} + bash ${SCRIPTS}/wait_for_rest.sh localhost ${PAP_PORT} + bash ${SCRIPTS}/wait_for_rest.sh localhost ${APEX_PORT} apex_healthcheck } function setup_apex_large() { export ROBOT_FILES="apex-slas-10.robot" - source "${WORKSPACE}"/compose/start-multiple-pdp.sh 10 + export APEX_REPLICA_TEARDOWN=true + source ${DOCKER_COMPOSE_DIR}/start-multiple-pdp.sh --start --replicas=10 sleep 10 - bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} - bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT} + bash ${SCRIPTS}/wait_for_rest.sh localhost ${PAP_PORT} + bash ${SCRIPTS}/wait_for_rest.sh localhost ${APEX_PORT} apex_healthcheck } @@ -125,57 +124,49 @@ function apex_healthcheck() { function setup_drools_apps() { export ROBOT_FILES="drools-applications-test.robot" - source "${WORKSPACE}"/compose/start-compose.sh drools-applications + source ${DOCKER_COMPOSE_DIR}/start-compose.sh drools-applications sleep 10 - bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} + bash ${SCRIPTS}/wait_for_rest.sh localhost ${PAP_PORT} sleep 10 - bash "${SCRIPTS}"/wait_for_rest.sh localhost ${DROOLS_APPS_PORT} + bash ${SCRIPTS}/wait_for_rest.sh localhost ${DROOLS_APPS_PORT} sleep 10 - bash "${SCRIPTS}"/wait_for_rest.sh localhost ${DROOLS_APPS_TELEMETRY_PORT} + bash ${SCRIPTS}/wait_for_rest.sh localhost ${DROOLS_APPS_TELEMETRY_PORT} } function setup_xacml_pdp() { export ROBOT_FILES="xacml-pdp-test.robot" - source "${WORKSPACE}"/compose/start-compose.sh xacml-pdp + source ${DOCKER_COMPOSE_DIR}/start-compose.sh xacml-pdp sleep 10 - bash "${SCRIPTS}"/wait_for_rest.sh localhost "${XACML_PORT}" -} - -function setup_xacml_pdp_postgres() { - export ROBOT_FILES="xacml-pdp-test.robot" - source "${WORKSPACE}"/compose/start-postgres-tests.sh xacml-pdp 1 - sleep 10 - bash "${SCRIPTS}"/wait_for_rest.sh localhost "${XACML_PORT}" + bash ${SCRIPTS}/wait_for_rest.sh localhost "${XACML_PORT}" } function setup_drools_pdp() { export ROBOT_FILES="drools-pdp-test.robot" - source "${WORKSPACE}"/compose/start-compose.sh drools-pdp + source ${DOCKER_COMPOSE_DIR}/start-compose.sh drools-pdp sleep 30 - bash "${SCRIPTS}"/wait_for_rest.sh localhost ${DROOLS_TELEMETRY_PORT} + bash ${SCRIPTS}/wait_for_rest.sh localhost ${DROOLS_TELEMETRY_PORT} } function setup_distribution() { - zip -F ${WORKSPACE}/csit/resources/tests/data/csar/sample_csar_with_apex_policy.csar \ - --out ${WORKSPACE}/csit/resources/tests/data/csar/csar_temp.csar -q + zip -F ${CSAR_DIR}/sample_csar_with_apex_policy.csar --out ${CSAR_DIR}/csar_temp.csar -q # Remake temp directory sudo rm -rf /tmp/distribution sudo mkdir /tmp/distribution export ROBOT_FILES="distribution-test.robot" - source "${WORKSPACE}"/compose/start-compose.sh distribution + source ${DOCKER_COMPOSE_DIR}/start-compose.sh distribution sleep 10 - bash "${SCRIPTS}"/wait_for_rest.sh localhost "${DIST_PORT}" + bash ${SCRIPTS}/wait_for_rest.sh localhost "${DIST_PORT}" } function build_robot_image() { - bash "${SCRIPTS}"/build-csit-docker-image.sh + bash ${SCRIPTS}/build-csit-docker-image.sh cd ${WORKSPACE} } function run_robot() { - docker compose -f "${WORKSPACE}"/compose/docker-compose.yml up csit-tests + docker compose -f ${DOCKER_COMPOSE_DIR}/compose.yaml up csit-tests export RC=$? } @@ -204,7 +195,7 @@ function set_project_config() { ;; apex-pdp-postgres | policy-apex-pdp-postgres) - setup_apex_postgres + setup_apex ;; apex-pdp-medium | policy-apex-pdp-medium) @@ -219,10 +210,6 @@ function set_project_config() { setup_xacml_pdp ;; - xacml-pdp-postgres | policy-xacml-pdp-postgres) - setup_xacml_pdp_postgres - ;; - drools-pdp | policy-drools-pdp) setup_drools_pdp ;; @@ -244,9 +231,18 @@ function set_project_config() { # even with forced finish, clean up docker containers function on_exit(){ - rm -rf ${WORKSPACE}/csit/resources/tests/data/csar/csar_temp.csar - source ${WORKSPACE}/compose/stop-compose.sh - cp ${WORKSPACE}/compose/*.log ${WORKSPACE}/csit/archives/${PROJECT} + rm -rf ${CSAR_DIR}/csar_temp.csar + + # teardown of compose containers for acm-replicas doesn't work with normal stop-compose script + if [ "${ACM_REPLICA_TEARDOWN}" = true ]; then + source ${DOCKER_COMPOSE_DIR}/start-acm-replica.sh --stop --replicas=2 + elif [ "${APEX_REPLICA_TEARDOWN}" = true ]; then + source ${DOCKER_COMPOSE_DIR}/start-multiple-pdp.sh --stop --replicas=2 + else + source ${DOCKER_COMPOSE_DIR}/stop-compose.sh ${PROJECT} + fi + + mv ${DOCKER_COMPOSE_DIR}/*.log ${ROBOT_LOG_DIR} exit $RC } @@ -261,11 +257,13 @@ fi export GERRIT_BRANCH=$(awk -F= '$1 == "defaultbranch" { print $2 }' "${WORKSPACE}"/.gitreview) export PROJECT="${1}" -export ROBOT_LOG_DIR=${WORKSPACE}/csit/archives/${PROJECT} +export ROBOT_LOG_DIR="${WORKSPACE}/csit/archives/${PROJECT}" export SCRIPTS="${WORKSPACE}/csit/resources/scripts" +export CSAR_DIR="${WORKSPACE}/csit/resources/tests/data/csar" +export DOCKER_COMPOSE_DIR="${WORKSPACE}/compose" export ROBOT_FILES="" -# always 'docker' if running docker compose -export TEST_ENV="docker" +export ACM_REPLICA_TEARDOWN=false +export APEX_REPLICA_TEARDOWN=false cd "${WORKSPACE}" @@ -284,7 +282,7 @@ if [[ $compose_version == *"Docker Compose version"* ]]; then else echo "Docker Compose Plugin not installed. Installing now..." sudo mkdir -p /usr/local/lib/docker/cli-plugins - sudo curl -SL https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose + sudo curl -SL https://github.com/docker/compose/releases/download/v2.29.1/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose fi @@ -301,9 +299,9 @@ else build_robot_image fi -docker_stats | tee "${WORKSPACE}/csit/archives/${PROJECT}/_sysinfo-1-after-setup.txt" +docker_stats | tee "${ROBOT_LOG_DIR}/_sysinfo-1-after-setup.txt" # start the CSIT container and run the tests run_robot -docker ps --format "table {{ .Names }}\t{{ .Status }}" +docker ps --format "table {{ .Image }}\t{{ .Names }}\t{{ .Status }}" diff --git a/policy-db-migrator/src/main/docker/db-migrator-pg b/policy-db-migrator/src/main/docker/db-migrator-pg index e282f47b..bfa8d4aa 100755 --- a/policy-db-migrator/src/main/docker/db-migrator-pg +++ b/policy-db-migrator/src/main/docker/db-migrator-pg @@ -3,8 +3,7 @@ # ============LICENSE_START======================================================= # ONAP # ================================================================================ -# Copyright (C) 2022 Nordix Foundation. -# Modification Copyright 2024 Nordix Foundation. +# Copyright (C) 2022, 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. @@ -111,7 +110,7 @@ function current_schema() { local rc local query="SELECT count(table_name) from information_schema.tables where table_schema='${SCHEMA}'" - PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -d ${SCHEMA}" + PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -w -d ${SCHEMA}" TABLES_IN_SCHEMA=$(${PSQL} -X -A --tuples-only --quiet --command "${query}") if [ ${TABLES_IN_SCHEMA} -gt 0 ] && [ "${BASE_VERSION}" \> "${CURRENT_RELEASE}" ]; then set_current_release "${BASE_VERSION}" @@ -133,13 +132,7 @@ function ensure_metadata() { local sql rc - PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -d ${METADATA_DB}" - sql="SELECT 'CREATE DATABASE migration' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'migration');" - ${PSQL} --command "${sql}" - rc=$? - if [ ${rc} -ne 0 ]; then - return ${rc} - fi + PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -w -d ${METADATA_DB}" sql="CREATE TABLE IF NOT EXISTS ${METADATA_TABLE} " sql=${sql}"(name VARCHAR(60) NOT NULL, version VARCHAR(20), " @@ -160,7 +153,7 @@ function ensure_metadata_schema() { local sql rc - PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -d ${METADATA_DB}" + PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -w -d ${METADATA_DB}" sql="CREATE TABLE IF NOT EXISTS ${METADATA_HISTORY} " sql=${sql}"(ID bigserial, script VARCHAR(80) NOT NULL, " sql=${sql}"operation VARCHAR(10), from_version VARCHAR(20), to_version VARCHAR(20), tag VARCHAR(20), " @@ -170,10 +163,6 @@ function ensure_metadata_schema() { if [ ${rc} -ne 0 ]; then return ${rc} fi - - sql="SELECT 'CREATE DATABASE migration' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'policyadmin');" - ${PSQL} --command "${sql}" - return $? } ##################################################### @@ -258,7 +247,7 @@ function set_current_release() { sql=${sql}"VALUES('${SCHEMA}', '${CURRENT_RELEASE}') " sql=${sql}"ON CONFLICT (name) DO UPDATE SET version='${CURRENT_RELEASE}';" - PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -d ${METADATA_DB}" + PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -w -d ${METADATA_DB}" ${PSQL} --command "${sql}" return $? } @@ -276,7 +265,7 @@ function current_release() { local rc local query="SELECT version FROM schema_versions WHERE name='${SCHEMA}'" - PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -d ${METADATA_DB}" + PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -w -d ${METADATA_DB}" CURRENT_RELEASE=$(${PSQL} -X -A -t --command "${query}") if [ -z "${CURRENT_RELEASE}" ]; then @@ -332,7 +321,7 @@ function last_operation_status() { query=${query}"(SELECT MAX(id) from ${METADATA_HISTORY}) " query=${query}"AND success::integer=0" - PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -d ${METADATA_DB}" + PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -w -d ${METADATA_DB}" row=$(${PSQL} --tuples-only --quiet --command "${query}") if [ "${row}" != "" ]; then @@ -367,7 +356,7 @@ function track_script() { local sql="INSERT INTO ${METADATA_HISTORY}(script,operation,from_version,to_version,tag,success,atTime) " sql=${sql}"VALUES ('${script}','${operation}','${from_version}','${to_version}','${tag}','${success}',now()) " - PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -d ${METADATA_DB}" + PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -w -d ${METADATA_DB}" ${PSQL} --command "${sql}" return $? } @@ -387,7 +376,7 @@ function run_script() { echo echo "> ${operation} ${script}" - PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -d ${SCHEMA}" + PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -w -d ${SCHEMA}" ${PSQL} <"${scriptPath}" local rc=$? if [ ${rc} -ne 0 ]; then @@ -510,7 +499,7 @@ function erase() { set -x fi - PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -d ${METADATA_DB}" + PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -w -d ${METADATA_DB}" local updateMetadata="UPDATE ${METADATA_TABLE} SET version='${ZERO_VERSION}';" ${PSQL} --command "${updateMetadata}" @@ -531,7 +520,7 @@ function report() { set -x fi - PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -d ${METADATA_DB}" + PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -w -d ${METADATA_DB}" local versionSql="SELECT * FROM ${METADATA_TABLE} WHERE name='${SCHEMA}';" ${PSQL} --command "${versionSql}" @@ -633,7 +622,7 @@ if [ -z "${SQL_HOST}" ] || [ -z "${SQL_USER}" ] || [ -z "${SQL_PASSWORD}" ]; the exit 4 fi -PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -d ${SCHEMA}" +PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -w -d ${SCHEMA}" if ! ${PSQL} --command '\l'; then echo "error: No DB connectivity to ${SQL_HOST} for ${SQL_USER}" exit 5 @@ -703,7 +692,7 @@ for dbPath in ${SCHEMA_S}; do fi fi - PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -d ${SCHEMA};" + PSQL="psql -h ${SQL_HOST} -U ${SQL_USER} -w -d ${SCHEMA};" # Check if the schema has already been installed current_schema RETRY=0 -- cgit 1.2.3-korg