version: "3"

networks:
  ves-hv-default:
    external:
      name: $CONTAINERS_NETWORK

services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
    networks:
      - ves-hv-default

  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: "kafka"
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
      KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
      KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://kafka:9092"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - zookeeper
    networks:
      - ves-hv-default

  consul:
    image: progrium/consul
    ports:
      - "8500:8500"
    environment:
      - CONSUL_BIND_INTERFACE=eth0
    networks:
      ves-hv-default:
        aliases:
           - consul
    command: ["-server", "-bootstrap"]

  ves-hv-collector:
    image: $DOCKER_REGISTRY/onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:latest
    ports:
      - "6060:6060"
      - "6061:6061/tcp"
    entrypoint: ["java", "-Dio.netty.leakDetection.level=paranoid", "-cp", "*:", "org.onap.dcae.collectors.veshv.main.MainKt"]
    command: ["--listen-port", "6061","--config-url", "http://consul:8500/v1/kv/veshv-config"]
    healthcheck:
      interval: 10s
      timeout: 5s
      retries: 2
      test: "curl --request GET --fail --silent --show-error localhost:6060/health/ready && nc -vz localhost 6061"
    depends_on:
      - kafka
    volumes:
      - ./ssl/:/etc/ves-hv/
    networks:
      - ves-hv-default

  unencrypted-ves-hv-collector:
    image: $DOCKER_REGISTRY/onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:latest
    ports:
      - "7060:6060"
      - "7061:6061/tcp"
    entrypoint: ["java", "-Dio.netty.leakDetection.level=paranoid", "-cp", "*:", "org.onap.dcae.collectors.veshv.main.MainKt"]
    command: ["--listen-port", "6061","--config-url", "http://consul:8500/v1/kv/veshv-config", "--ssl-disable"]
    healthcheck:
      interval: 10s
      timeout: 5s
      retries: 2
      test: "curl --request GET --fail --silent --show-error localhost:6060/health/ready && nc -vz localhost 6061"
    depends_on:
      - kafka
    volumes:
      - ./ssl/:/etc/ves-hv/
    networks:
      - ves-hv-default

  dcae-app-simulator:
    image: $DOCKER_REGISTRY/onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-dcae-app-simulator:latest
    ports:
      - "6063:6063/tcp"
    command: ["--listen-port", "6063", "--kafka-bootstrap-servers", "kafka:9092", "--kafka-topics", "ves_hvRanMeas"]
    healthcheck:
      interval: 10s
      timeout: 5s
      retries: 2
      test: "curl --request GET --fail --silent --show-error localhost:6063/healthcheck"
    depends_on:
      - kafka
    networks:
      ves-hv-default:
        aliases:
           - dcae-app-simulator