Provide docker-compose deployment for SMO
[oam.git] / solution / integration / smo / docker-compose.yml
index 9d7cdb8..8bc84c6 100755 (executable)
@@ -1,5 +1,5 @@
 ################################################################################
-# Copyright 2019 highstreet technologies and others
+# Copyright 2020 highstreet technologies and others
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-version: "3.3"
-
+version: "2.2"
 services:
+  sdnrdb:
+    image: ${SDNRDB_IMAGE}
+    container_name: sdnrdb
+    environment:
+      - discovery.type=single-node
+    networks:
+      integration:
+        ipv4_address: ${ESDB_IP}
+
   sdnr:
-    image: ${NEXUS_DOCKER_REPO}${HT_DOCKER_IMAGE_NAME}:${HT_DOCKER_IMAGE_TAG}
+    image: ${SDNC_IMAGE}
     container_name: sdnr
-    #ports:
-    #  - "${PORTPREFIX}8181:8181"
+    ports:
+      - "8181:8181"
+      - "8101:8101"
+#entrypoint: ["/bin/bash", "/opt/onap/sdnc/bin/startODL.oom.sh"]
     environment:
       - SDNC_CONFIG_DIR=/opt/onap/ccsdk/data/properties
-      - ENABLE_ODL_CLUSTER=${ENABLE_ODL_CLUSTER}
-      - CCSDK_REPLICAS=${REPLICAS}
+      - ODL_CERT_DIR=${ODL_CERT_DIR}
+      - ENABLE_ODL_CLUSTER=false
+      - SDNC_REPLICAS=0
+      - CCSDK_REPLICAS=0
       - DOMAIN=""
       - SDNRWT=true
-      - SDNRONLY=true
       - SDNRINIT=true
+      - SDNRONLY=true
       - SDNRDBURL=http://sdnrdb:9200
     volumes:
-    #- ${LOCAL_SDNR_MOUNT}/sdnr-frankfurt/logs:${ODL_HOME}/data/log
-     - type: bind
-       source: ./resources/startODL.oom.sh
-       target: /opt/onap/sdnc/bin/startODL.sh 
-     - type: bind 
-       source: ./resources/devicemanager.properties
-       target: ${ODL_HOME}/etc/devicemanager.properties   
-     - type: bind
-       source: ./resources/org.ops4j.pax.logging.cfg
-       target: ${ODL_HOME}/etc/org.ops4j.pax.logging.cfg
-     - type: bind
-       source: ./yang
-       target: $ODL_HOME/cache/schema
+      - ./sdnr/mountpoint-registrar.properties:/opt/opendaylight/etc/mountpoint-registrar.properties
+      - ./sdnr/certs/certs.properties:${ODL_CERT_DIR}/certs.properties
+      - ./sdnr/certs/keys0.zip:${ODL_CERT_DIR}/keys0.zip
     networks:
-      - sb-net
-            ipv4_address: 172.28.1.2
+      integration:
+        ipv4_address: ${SDNR_IP}
     logging:
       driver:   "json-file"
       options:
         max-size: "30m"
         max-file: "5"
-  sdnrdb:
-    image: docker.elastic.co/elasticsearch/elasticsearch-oss:${ES_VERSION}
-    container_name: sdnrdb
-    #ports:
-    #  - "${PORTPREFIX}9200:9200"
+  zookeeper:
+    image: ${ZOOKEEPER_IMAGE}
+    container_name: zookeeper
+    ports:
+      - "2181:2181"
     environment:
-      - discovery.type=single-node
+      ZOOKEEPER_REPLICAS: 1
+      ZOOKEEPER_TICK_TIME: 2000
+      ZOOKEEPER_SYNC_LIMIT: 5
+      ZOOKEEPER_INIT_LIMIT: 10
+      ZOOKEEPER_MAX_CLIENT_CNXNS: 200
+      ZOOKEEPER_AUTOPURGE_SNAP_RETAIN_COUNT: 3
+      ZOOKEEPER_AUTOPURGE_PURGE_INTERVAL: 24
+      ZOOKEEPER_CLIENT_PORT: 2181
+      KAFKA_OPTS: -Djava.security.auth.login.config=/etc/zookeeper/secrets/jaas/zk_server_jaas.conf -Dzookeeper.kerberos.removeHostFromPrincipal=true -Dzookeeper.kerberos.removeRealmFromPrincipal=true -Dzookeeper.authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider -Dzookeeper.requireClientAuthScheme=sasl
+      ZOOKEEPER_SERVER_ID:
+    volumes:
+      -  ./zk/zk_server_jaas.conf:/etc/zookeeper/secrets/jaas/zk_server_jaas.conf
     networks:
-      sb-net:
-        ipv4_address: 172.28.1.3
-
-
-  ves-test-collector:
-    image: ${VES_DOCKER_REPO}${VES_TEST_COLLECTOR_IMAGE_NAME}:${VES_TEST_COLLECTOR_IMAGE_TAG}
-    container_name: ves-test-collector-v${VES_API}
-    #ports:
-    #  - "${EXT_VES_PORT}${VES_API}:30000"
+      integration:
+        aliases:
+        - zookeeper
+        ipv4_address: ${ZOOKEEPER_IP}
+  kafka:
+    image: ${KAFKA_IMAGE}
+    container_name: kafka
+    ports:
+     - "9092:9092"
     environment:
-      - VES_API=${VES_API}
+      enableCadi: 'false'
+      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
+      KAFKA_ZOOKEEPER_CONNECTION_TIMEOUT_MS: 40000
+      KAFKA_ZOOKEEPER_SESSION_TIMEOUT_MS: 40000
+      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL_PLAINTEXT:PLAINTEXT,EXTERNAL_PLAINTEXT:PLAINTEXT
+      KAFKA_ADVERTISED_LISTENERS: INTERNAL_PLAINTEXT://kafka:9092
+      KAFKA_LISTENERS: INTERNAL_PLAINTEXT://0.0.0.0:9092
+      KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL_PLAINTEXT
+      KAFKA_CONFLUENT_SUPPORT_METRICS_ENABLE: 'false'
+      KAFKA_OPTS: -Djava.security.auth.login.config=/etc/kafka/secrets/jaas/zk_client_jaas.conf
+      KAFKA_ZOOKEEPER_SET_ACL: 'true'
+      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
+      # Reduced the number of partitions only to avoid the timeout error for the first subscribe call in slow environment
+      KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS: 1
     volumes:
-     - ${LOCAL_VES_MOUNT}/ves-v${VES_API}/logs:/VES5.0/evel/evel-test-collector/logs
-     - type: bind
-       source: ./resources/${VES_FORMAT_FILE}
-       target: /VES5.0/evel/evel-test-collector/docs/att_interface_definition/event_format_updated.json
-     - type: bind
-       source: ./resources/go-collector.sh
-       target: /VES5.0/evel/evel-test-collector/scripts/linux/go-collector.sh
-    logging:
-      driver: "json-file"
-      options:
-        max-size: "30m"
-        max-file: "5"
+      -  ./kafka/zk_client_jaas.conf:/etc/kafka/secrets/jaas/zk_client_jaas.conf
     networks:
-      sb-net:
-        ipv4_address: 172.28.1.4
+      integration:
+        aliases:
+        - kafka
+        ipv4_address: ${KAFKA_IP}
 
-  netconf-server-simulator:
-    image: ${HT_DOCKER_REPO}${NETCONF_SERVER_SIMULATOR_IMAGE_NAME}:${NETCONF_SERVER_SIMULATOR_IMAGE_TAG}
-    container_name: netconf-server-simulator
-    #ports:
-    #  - "${EXT_SIM_PORT}:${INT_SIM_PORT}"
-    #  - "${EXT_SIM_SSH_PORT}:8000"
+    depends_on:
+     - zookeeper
+  onap-dmaap:
+    container_name: onap-dmaap
+    image: ${DMAAP_IMAGE}
+    ports:
+      - "3904:3904"
+      - "3905:3905"
     environment:
-      - PORT=${INT_SIM_PORT}
-      - XMLFILE=xmlNeModel/${SIM_MODEL}.xml
-      - SSHPORT=-sshport=8000
+      enableCadi: 'false'
+    volumes:
+      - ./mr/MsgRtrApi.properties:/appl/dmaapMR1/bundleconfig/etc/appprops/MsgRtrApi.properties
+      - ./mr/logback.xml:/appl/dmaapMR1/bundleconfig/etc/logback.xml
+      - ./mr/cadi.properties:/appl/dmaapMR1/etc/cadi.properties
     networks:
-      sb-net:
-        ipv4_address: 172.28.1.11
-    logging:
-      driver: "json-file"
-      options:
-        max-size: "30m"
-        max-file: "5"
+      integration:
+        aliases:
+        - dmaap
+        ipv4_address: ${DMAAP_IP}
 
-  netconf-server-simulator2:
-    image: ${HT_DOCKER_REPO}${NETCONF_SERVER_SIMULATOR_IMAGE_NAME}:${NETCONF_SERVER_SIMULATOR_IMAGE_TAG}
-    container_name: netconf-server-simulator2
-    #ports:
-    #  - "${EXT_SIM_PORT2}:${INT_SIM_PORT2}"
-    #  - "${EXT_SIM_SSH_PORT2}:8000"
+    depends_on:
+      - zookeeper
+      - kafka
+  vesc:
+    image: ${VESC_IMAGE}
+    container_name: vescollector
     environment:
-      - PORT=${INT_SIM_PORT2}
-      - XMLFILE=xmlNeModel/${SIM_MODEL2}.xml
-      - SSHPORT=-sshport=8000
-    networks:
-      sb-net:
-          ipv4_address: 172.28.1.12
-    logging:
-      driver: "json-file"
-      options:
-        max-size: "30m"
-        max-file: "5"
-  ntsimulator:
-    image: ${NTS_DOCKER_REPO}${NTS_IMAGE_NAME}:${NTS_IMAGE_TAG}
-    container_name: NTS_Manager
-    #ports:
-    #- "${EXT_PORT}:830"
+      DMAAPHOST: "dmaap"
+    ports:
+      - "8080:8080"
+      - "8443:8443"
     volumes:
-    - "/var/run/docker.sock:/var/run/docker.sock"
-    - "./ntshome:/opt/dev/scripts"
-    - "/usr/bin/docker:/usr/bin/docker"
-    labels:
-      "NTS-manager": ""
-    environment:
-      NTS_IP: "${NTS_IP}"
-      NETCONF_BASE: ${NETCONF_BASE}
-      DOCKER_ENGINE_VERSION: "${DOCKER_ENGINE_VERSION}"
-      MODELS_IMAGE: ${DOCKER_REPO}${MODELS_IMAGE}:${MODELS_TAG}
+      - ./vesc/collector.properties:/opt/app/VESCollector/etc/collector.properties
     networks:
-      sb-net:
-        ipv4_address: 172.28.1.20
-    logging:
-      driver: "json-file"
-      options:
-        max-size: "30m"
-        max-file: "5"
-  ntsimulator_xran:
-    image: ${NTS_DOCKER_REPO}${NTS_IMAGE_NAME}:${NTS_IMAGE_TAG}
-    container_name: NTS_Manager_XRAN
-    #ports:
-    #- "${EXT_PORT}:830"
-    volumes:
-    - "/var/run/docker.sock:/var/run/docker.sock"
-    - "./ntshome:/opt/dev/scripts"
-    - "/usr/bin/docker:/usr/bin/docker"
-    labels:
-      "NTS-manager": ""
-    environment:
-      NTS_IP: "${NTS_IP}"
-      NETCONF_BASE: 60000
-      DOCKER_ENGINE_VERSION: "${DOCKER_ENGINE_VERSION}"
-      MODELS_IMAGE: ${DOCKER_REPO}hightec/ntsim_xran:latest
-    networks:
-      sb-net:
-        ipv4_address: 172.28.1.30
-    logging:
-      driver: "json-file"
-      options:
-        max-size: "30m"
-        max-file: "5"
-
-
+      integration:
+        ipv4_address: ${VESCOLLECTOR_IP}
 networks:
-  sb-net:
+  integration:
+    driver: bridge
     ipam:
+      driver: default
       config:
-        - subnet: 172.28.0.0/16
-  
\ No newline at end of file
+      - subnet: ${NETWORK_SUBNET}
+        gateway: ${GATEWAY_IP}
\ No newline at end of file