# Copyright 2017-present Open Networking 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.
#
# This Docker stackfile deploys a single onos container and freeradius.
#
# The stackfile assumes that overlay network 'voltha_net' has already been
# created. To deploy the stack, issue the command:
#
#     docker stack deploy -c docker-compose-onos-swarm.yml onos
#
version: "3.2"
services:
    freeradius:
        deploy:
            replicas: 1
        image: "${REGISTRY}marcelmaatkamp/freeradius:${RADIUS_TAG:-latest}"
        logging:
            driver: "json-file"
            options:
                max-size: "10m"
                max-file: 3
        ports:
            - "1812:1812/udp"
            - "1813:1813"
            - "18120:18120"
        volumes:
            - /cord/incubator/voltha/compose/data/clients.conf:/etc/raddb/clients.conf
            - /cord/incubator/voltha/compose/data/users:/etc/raddb/users
        networks:
            - net
            - voltha-net

    onos_cluster_manager:
        image: "${REGISTRY}${REPOSITORY}voltha-unum:${TAG:-latest}"
        deploy:
            replicas: 1
            placement:
                constraints:
                    - node.role == manager
        environment:
            PERIOD: "10s"
            LOG_LEVEL: "debug"
            ORCHESTRATION: "swarm://"
            LABELS: "org.voltha.onos.cluster:true"
            NETWORK: "org.voltha.onos.cluster:true"
        networks:
            - net
            - voltha-net
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock

    onos:
        deploy:
           replicas: 3
           labels:
               org.voltha.onos.cluster: "true"
        image: "${REGISTRY}${REPOSITORY}voltha-onos:${TAG:-latest}"
        logging:
            driver: "json-file"
            options:
                max-size: "10m"
                max-file: 3
        ports:
            - 8101:8101 # ssh
            - 6653:6653 # OF
            - 8181:8181 # UI
        environment:
            EXTRA_JAVA_OPTS: "-Donos.cluster.metadata.uri=http://onos_cluster_manager:5411/config/"
        networks:
            - net
            - voltha-net
networks:
    net:
        driver: overlay
        driver_opts:
           encrypted: "true"
        ipam:
            driver: default
            config:
                - subnet: 172.25.0.0/24
        labels:
            org.voltha.onos.cluster: "true"

    voltha-net:
        external:
            name: voltha_net
