#
# 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}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}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
