---
# 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
    restart: unless-stopped


  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
    restart: unless-stopped


  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
    restart: unless-stopped


  rw_core:
    image: "${DOCKER_REGISTRY}${DOCKER_REPOSITORY}voltha-rw-core:${DOCKER_TAG}"
    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=DEBUG
    volumes:
      - "/var/run/docker.sock:/tmp/docker.sock"
    ports:
      - 50057:50057
    networks:
      - default
    restart: unless-stopped


  ofagent:
    image: "${DOCKER_REGISTRY}${DOCKER_REPOSITORY}voltha-ofagent-go:${DOCKER_TAG}"
    command: [
      "/app/ofagent",
      "--controller=${DOCKER_HOST_IP}:6653",
      "--voltha=${DOCKER_HOST_IP}:50057",
      "--log_level=DEBUG"
    ]
    volumes:
    - "/var/run/docker.sock:/tmp/docker.sock"
    networks:
      - default
    restart: unless-stopped


  onos:
    image: "${DOCKER_REGISTRY}${DOCKER_REPOSITORY}voltha-onos:${DOCKER_TAG}"
    ports:
      - "8101:8101" # ssh
      - "6653:6653" # OF
      - "8181:8181" # UI
    environment:
      ONOS_APPS: 'drivers,openflow-base'
    volumes:
      - "/var/run/docker.sock:/tmp/docker.sock"
      - "./network-cfg-bbsim.json:/root/onos/config/network-cfg.json"
    networks:
      - default
    restart: unless-stopped


  adapter_openolt:
    image: "${DOCKER_REGISTRY}${DOCKER_REPOSITORY}voltha-openolt-adapter:${DOCKER_TAG}"
    command: [
      "/app/openolt",
      "--kafka_adapter_host=${DOCKER_HOST_IP}",
      "--kafka_adapter_port=9092",
      "--kafka_cluster_host=${DOCKER_HOST_IP}",
      "--kafka_cluster_port=9092",
      "--core_topic=rwcore",
      "--kv_store_host=${DOCKER_HOST_IP}",
      "--kv_store_port=2379",
      "--log_level=DEBUG"
    ]
    ports:
      - "50062:50062"
    networks:
      - default
    restart: unless-stopped


  adapter_openonu:
    image: "${DOCKER_REGISTRY}${DOCKER_REPOSITORY}voltha-openonu-adapter:${DOCKER_TAG}"
    command: [
      "/voltha/adapters/brcm_openomci_onu/main.py",
      "--name=brcm_openomci_onu",
      "--kafka_adapter=${DOCKER_HOST_IP}:9092",
      "--kafka_cluster=${DOCKER_HOST_IP}:9092",
      "--backend=etcd",
      "--etcd=${DOCKER_HOST_IP}:2379",
      "--core_topic=rwcore",
      "--log_level=DEBUG"
    ]
    networks:
      - default
    restart: unless-stopped


  bbsim:
    image: "${DOCKER_REGISTRY}${DOCKER_REPOSITORY}bbsim:${DOCKER_TAG}"
    privileged: true
    command: [
      "./bbsim",
      "-logLevel",
      "debug",
      "-auth",
      "-dhcp",
      "-pon",
      "1",
      "-onu",
      "1"
    ]
    ports:
      - "50060:50060"
      - "50074:50074"
    networks:
      - default
    restart: unless-stopped


  radius:
    image: "tpdock/freeradius:2.2.9"
    environment:
      RADIUS_LISTEN_IP: "*"
      USERS_FILE: "/etc/raddb/users"
      RADIUS_CLIENTS: "SECRET@0.0.0.0/0"
    volumes:
      - "./radius-clients.conf:/etc/raddb/clients.conf"
      - "./radius-users.conf:/etc/raddb/users"
    ports:
      - "1812:1812/udp"
      - "1813:1813"
      - "18120:18120"
    networks:
      - default
    restart: unless-stopped