---
# Copyright 2018-2024 Open Networking Foundation (ONF) and the ONF Contributors
# Copyright 2018 the original author or authors.
#
# 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.

version: '2'

networks:
  default:
    driver: bridge

services:

  zookeeper:
    image: "wurstmeister/zookeeper:latest"
    environment:
      SERVICE_2181_NAME: "zookeeper"
    ports:
    - 2181:2181
    networks:
    - default


  kafka:
    image: "wurstmeister/kafka:2.11-2.0.1"
    environment:
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://${DOCKER_HOST_IP}:9092
      KAFKA_LISTENERS: PLAINTEXT://:9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
      SERVICE_9092_NAME: "kafka"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
     - 9092:9092
    networks:
    - default


  etcd:
    image: "quay.io/coreos/etcd:v3.4.1"
    command: [
      "etcd",
      "--name=etcd0",
      "--advertise-client-urls=http://${DOCKER_HOST_IP}:2379,http://${DOCKER_HOST_IP}:4001",
      "--listen-client-urls=http://0.0.0.0:2379,http://0.0.0.0:4001",
      "--initial-advertise-peer-urls=http://${DOCKER_HOST_IP}:2380",
      "--listen-peer-urls=http://0.0.0.0:2380",
      "--initial-cluster-token=etcd-cluster-1",
      "--initial-cluster=etcd0=http://${DOCKER_HOST_IP}:2380",
      "--initial-cluster-state=new"
    ]
    ports:
    - "2379:2379"
    - 2380
    - 4001
    networks:
    - default


  rw_core:
    image: voltha-rw-core
    entrypoint:
        - /app/rw_core
        - -kv_store_type=etcd
        - -kv_store_host=${DOCKER_HOST_IP}
        - -kv_store_port=2379
        - -grpc_port=50057
        - -banner=true
        - -kafka_adapter_host=${DOCKER_HOST_IP}
        - -kafka_adapter_port=9092
        - -kafka_cluster_host=${DOCKER_HOST_IP}
        - -kafka_cluster_port=9092
        - -rw_core_topic=rwcore
        - -kv_store_data_prefix=service/voltha
        - -in_competing_mode=false
        - -log_level=0
        - -log_level=0
    volumes:
    - "/var/run/docker.sock:/tmp/docker.sock"
    ports:
      - 50057:50057
    networks:
    - default
    restart: unless-stopped


  ofagent:
    image: "${REGISTRY}${REPOSITORY}voltha-ofagent:latest"
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
    command: [
      "/ofagent/ofagent/main.py",
      "--consul=${DOCKER_HOST_IP}:8500",
      "--controller=${DOCKER_HOST_IP}:6653",
      "--grpc-endpoint=${DOCKER_HOST_IP}:50057",
      "--instance-id-is-container-name",
      "-v"
    ]
    volumes:
    - "/var/run/docker.sock:/tmp/docker.sock"
    networks:
    - default
    restart: unless-stopped

  adapter_ponsim_olt:
    image: "${REGISTRY}${REPOSITORY}voltha-adapter-ponsim-olt${TAG}"
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
    command: [
      "/voltha/python/adapters/ponsim_olt/main.py",
      "-v",
      "--name=ponsim_olt",
      "--kafka_adapter=${DOCKER_HOST_IP}:9092",
      "--kafka_cluster=${DOCKER_HOST_IP}:9092",
      "--core_topic=rwcore"
    ]
    networks:
    - default

  adapter_ponsim_onu:
    image: "${REGISTRY}${REPOSITORY}voltha-adapter-ponsim-onu${TAG}"
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
    command: [
      "/voltha/python/adapters/ponsim_onu/main.py",
      "-v",
      "--name=ponsim_onu",
      "--kafka_adapter=${DOCKER_HOST_IP}:9092",
      "--kafka_cluster=${DOCKER_HOST_IP}:9092",
      "--core_topic=rwcore"
    ]
    networks:
    - default

  ponsim_olt:
    image: "${REGISTRY}voltha/voltha-ponsim${TAG}"
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
    entrypoint:
      - /app/ponsim
      - -device_type
      - "OLT"
      - -onus
      - "4"
      - -internal_if
      - "eth0"
      - -external_if
      - "eth0"
      - -vcore_endpoint
      - "vcore"
      - -promiscuous
      - -verbose
    ports:
      - "50060:50060"
    networks:
    - default

  ponsim_onu:
    image: "${REGISTRY}voltha/voltha-ponsim${TAG}"
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
    entrypoint:
      - /app/ponsim
      - -device_type
      - "ONU"
      - -parent_addr
      - "ponsim_olt"
      - -grpc_port
      - "50061"
      - -internal_if
      - "eth0"
      - -external_if
      - "lo"
      - -promiscuous
      - -verbose
    ports:
    - "50061:50061"
    networks:
    - default
