VOL-595 - container image name consistency and general cleanup
Change-Id: Iccac1ccba61537cefa046118df139196e9e87713
diff --git a/compose/docker-compose-all.yml.j2 b/compose/docker-compose-all.yml.j2
new file mode 100755
index 0000000..f358573
--- /dev/null
+++ b/compose/docker-compose-all.yml.j2
@@ -0,0 +1,291 @@
+# Copyright 2017 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: "3"
+services:
+
+ # The Fluentd container is part of the data collection
+ # infrastructure.
+ fluentd:
+ image: "${REGISTRY}voltha/fluentd:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ mode: replicated
+ replicas: {{ SWARM_MANAGER_COUNT | default(2) }}
+ restart_policy:
+ condition: any
+ environment:
+ SERVICE_24224_NAME: "fluentd-intake"
+ FLUENTD_CONF: fluent.conf
+ WAIT_FOR: "fluentdactv:24224 fluentdstby:24224"
+ WAIT_FOR_TIMEOUT: 0
+ networks:
+ - voltha-net
+ ports:
+ - "24224"
+
+ # Free RADIUS can be used to test VOLTHA's authentication
+ # sequence, i.e., EAPOL from a device behind an OLT to
+ # RADIUS authentication on the back end systems. By default
+ # no instances of Free RADIUS are deployed.
+ freeradius:
+ deploy:
+ replicas: 0
+ 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"
+
+ # CONFIG: When deploying a Free RADIUS instance client and user
+ # information will need to be configured for the service to
+ # operate correctly.
+ #
+ #volumes:
+ # - ${RADIUS_ROOT}/data/clients.conf:/etc/raddb/clients.conf
+ # - ${RADIUS_ROOT}/data/users:/etc/raddb/users
+ networks:
+ - voltha-net
+
+ # The cluster manager container calculates and servers ONOS cluster
+ # meta data via HTTP so that ONOS instances can form an HA cluster.
+ # The cluster manager must run on a manager node so that it can
+ # retrieve service information from manager nodes
+ 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"
+ ports:
+ - 5411:5411
+ networks:
+ - voltha-net
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+
+ # ONOS is the SDN controller for the solution and handles AAA,
+ # IGMP proxy, and L2 DHCP requests as well as manages flows
+ # down to the virtual devices (MCAST + OLT flows).
+ # Currently there is a single instance of ONOS as some of the
+ # applications running under ONOS do not support HA.
+ onos:
+ deploy:
+ replicas: 1
+ 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:
+ - voltha-net
+
+ # The VCORE container is the core capabilities of VOLTHA including
+ # interacting with device adapters
+ vcore:
+ image: "${REGISTRY}voltha/voltha:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ replicas: {{ SWARM_MANAGER_COUNT | default(3) }}
+ entrypoint:
+ - voltha/voltha/main.py
+ - -v
+ - --consul=consul:8500
+ - --fluentd=fluentd:24224
+ - --kafka=kafka
+ - --rest-port=8880
+ - --grpc-port=50556
+ - --instance-id-is-container-name
+ - --backend=consul
+ - --inter-core-subnet=172.29.19.0/24
+ - --pon-subnet=172.29.19.0/24
+ networks:
+ - voltha-net
+ ports:
+ - "8880:8880"
+ - "18880:18880"
+ - "50556:50556"
+ volumes:
+ - /var/run/docker.sock:/tmp/docker.sock
+
+ # The OpenFlow Agent support the OpenFlow protocol communication
+ # between ONOS and VOLTHA.
+ ofagent:
+ image: "${REGISTRY}voltha/ofagent:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ replicas: 1
+ entrypoint:
+ - /ofagent/ofagent/main.py
+ - -v
+ - --consul=consul:8500
+ - --fluentd=fluentd:24224
+ - --controller=onos:6653
+ - --grpc-endpoint=vcore:50556
+ - --instance-id-is-container-name
+ volumes:
+ - /var/run/docker.sock:/tmp/docker.sock
+ networks:
+ - voltha-net
+
+ # The VOLTHA container supports load balancing of request to
+ # the VOLTHA components as well as surfaces a REST API and maps
+ # the requests to GPRC
+ voltha:
+ image: "${REGISTRY}voltha/envoy:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ replicas: 1
+ entrypoint:
+ - /usr/local/bin/envoyd
+ - -envoy-cfg-template
+ - "/envoy/voltha-grpc-proxy.template.json"
+ - -envoy-config
+ - "/envoy/voltha-grpc-proxy.json"
+ networks:
+ - voltha-net
+ ports:
+ - "50555:50555"
+ - "8882:8882"
+ - "8443:8443"
+ - "8001:8001"
+ volumes:
+ - /var/run/docker.sock:/tmp/docker.sock
+
+ # The CLI container provides an CLI to the VOLTHA capabilitiy
+ # that can be accessed via SSH.
+ cli:
+ image: "${REGISTRY}voltha/cli:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ replicas: {{ SWARM_MANAGER_COUNT | default(2) }}
+ entrypoint:
+ - /cli/cli/setup.sh
+ - -C consul:8500
+ - -g voltha:50555
+ - -s voltha:18880
+ - -G
+ networks:
+ - voltha-net
+ ports:
+ - "5022:22"
+
+ # The Netconf container provides an NETCONF API to be used
+ # with VOLTHA and maps that to GRPC requests
+ netconf:
+ image: "${REGISTRY}voltha/netconf:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ mode: global
+ environment:
+ SERVICE_1830_NAME: "netconf-server"
+ entrypoint:
+ - /netconf/netconf/main.py
+ - -v
+ - --consul=consul:8500
+ - --fluentd=fluentd:24224
+ - --grpc-endpoint=voltha:50555
+ - --instance-id-is-container-name
+ networks:
+ - voltha-net
+ ports:
+ - "830:1830"
+ volumes:
+ - /var/run/docker.sock:/tmp/docker.sock
+
+ # The tools container provides a bash command shell to which
+ # an operator can SSH that has the same network connectivity
+ # as other VOLTHA containers and is thus a convenient
+ # troubleshooting tool
+ tools:
+ image: "${REGISTRY}voltha/tools:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ mode: replicated
+ replicas: 1
+ restart_policy:
+ condition: on-failure
+ ports:
+ - "4022:22"
+ networks:
+ - voltha-net
+ - kafka-net
+
+networks:
+ onos:
+ 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
+
+ kafka-net:
+ external:
+ name: kafka_net
diff --git a/compose/docker-compose-auth-test.yml b/compose/docker-compose-auth-test.yml
index c4d4fc7..f5d4b67 100644
--- a/compose/docker-compose-auth-test.yml
+++ b/compose/docker-compose-auth-test.yml
@@ -3,7 +3,7 @@
services:
freeradius:
- image: "marcelmaatkamp/freeradius"
+ image: "${REGISTRY}marcelmaatkamp/freeradius:${RADIUS_TAG:-latest}"
ports:
- "1812:1812/udp"
- "1813:1813"
@@ -16,7 +16,7 @@
ipv4_address: 172.25.0.100
onos:
- image: "cord/onos"
+ image: "${REGISTRY}voltha/onos:${TAG:-latest}"
ports:
- "8101:8101" # ssh
- "6653:6653" # OF
@@ -28,7 +28,7 @@
ipv4_address: 172.25.0.200
# onos_config_push:
-# image: onos-config-push:phase2
+# image: "${REGISTRY}onos-config-push:${TAG:-latest}"
# environment:
# ONOS_CONNECTION: 'onos:8181'
# volumes:
@@ -39,7 +39,7 @@
# - "onos:onos"
# freeradius-test:
-# image: "marcelmaatkamp/freeradius"
+# image: "${REGISTRY}marcelmaatkamp/freeradius:${RADIUS_TAG:-latest}"
# command: "radtest user password freeradius 0 SECRET"
# networks:
# authnet:
diff --git a/compose/docker-compose-vcli.yml b/compose/docker-compose-cli.yml
similarity index 86%
rename from compose/docker-compose-vcli.yml
rename to compose/docker-compose-cli.yml
index 553fc14..e980f51 100644
--- a/compose/docker-compose-vcli.yml
+++ b/compose/docker-compose-cli.yml
@@ -4,13 +4,13 @@
# 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-vcli.yml cli
+# docker stack deploy -c docker-compose-cli.yml cli
#
version: "3"
services:
cli:
- image: cord/vcli:latest
+ image: "${REGISTRY}voltha/cli:${TAG:-latest}"
logging:
driver: "json-file"
options:
diff --git a/compose/docker-compose-consul-cluster.yml b/compose/docker-compose-consul-cluster.yml
index 5bd37b9..16a4a45 100644
--- a/compose/docker-compose-consul-cluster.yml
+++ b/compose/docker-compose-consul-cluster.yml
@@ -1,4 +1,17 @@
+# Copyright 2017 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.
+
# This stackfile deploys a Consul cluster to a docker swarm.
#
# The Consul cluster depends on:
@@ -9,13 +22,12 @@
# docker stack deploy -c docker-compose-consul-cluster.yml consul
#
# This command will create overlay network 'consul_net'.
-#
version: "3"
services:
consul:
- image: consul:0.9.2
+ image: "${REGISTRY}consul:${CONSUL_TAG:-0.9.2}"
logging:
driver: "json-file"
options:
@@ -30,18 +42,15 @@
- node.role == manager
restart_policy:
condition: on-failure
- environment:
- CONSUL_LOCAL_CONFIG: "{disable_update_check: true}"
- CONSUL_BIND_INTERFACE: eth0
entrypoint:
- consul
- agent
- -server
- - -bootstrap-expect=3
+ - -bootstrap-expect=${SWARM_MANAGER_COUNT:-3}
- -config-dir=/consul/config
- -data-dir=/consul/data # mandatory property
- - -bind={{ GetInterfaceIP "eth0" }}
- -client=0.0.0.0
+ - -advertise={{ GetAllInterfaces | include "network" "172.29.20.0/29" | sort "size,address" | attr "address" }}
- -ui
- -raft-protocol=3
- -rejoin
@@ -60,8 +69,8 @@
- "8500:8500"
- "8600:8600/udp"
volumes:
- - /cord/incubator/voltha/consul/data:/consul/data
- - /cord/incubator/voltha/consul/config:/consul/config
+ - ${CONSUL_ROOT:-/cord/incubator/voltha/consul}/data:/consul/data
+ - ${CONSUL_ROOT:-/cord/incubator/voltha/consul}/config:/consul/config
networks:
net:
diff --git a/compose/docker-compose-dashd.yml b/compose/docker-compose-dashd.yml
index 752ad45..3b5080d 100755
--- a/compose/docker-compose-dashd.yml
+++ b/compose/docker-compose-dashd.yml
@@ -4,7 +4,7 @@
# Dashboard daemon
#
dashd:
- image: cord/dashd
+ image: "${REGISTRY}voltha/dashd:${TAG:-latest}"
command: [
"/dashd/dashd/main.py",
"--kafka=@kafka",
@@ -23,17 +23,17 @@
# Single-node kafka service
#
kafka:
- image: wurstmeister/kafka
+ image: "${REGISTRY}wurstmeister/kafka:${KAFKA_TAG:-latest}"
#
# Single-node consul agent
#
consul:
- image: consul:latest
+ image: "${REGISTRY}consul:${CONSUL_TAG:-0.9.2}"
#
# Graphite-Grafana-statsd service instance
# (demo place-holder for external KPI system)
#
grafana:
- image: kamon/grafana_graphite
+ image: "${REGISTRY}kamon/grafana_graphite:${TAG:-latest}"
diff --git a/compose/docker-compose-docutests.yml b/compose/docker-compose-docutests.yml
index d53b1db..6a0db8c 100644
--- a/compose/docker-compose-docutests.yml
+++ b/compose/docker-compose-docutests.yml
@@ -4,7 +4,7 @@
# Single-node zookeeper service
#
zookeeper:
- image: wurstmeister/zookeeper
+ image: "${REGISTRY}wurstmeister/zookeeper:${ZK_TAG:-latest}"
ports:
- 2181
environment:
@@ -13,7 +13,7 @@
# Single-node kafka service
#
kafka:
- image: wurstmeister/kafka
+ image: "${REGISTRY}wurstmeister/kafka:${KAFKA_TAG:-latest}"
ports:
- 9092
environment:
@@ -30,7 +30,7 @@
# Single-node consul agent
#
consul:
- image: consul:latest
+ image: "${REGISTRY}consul:${CONSUL_TAG:-0.9.2}"
command: agent -server -bootstrap -client 0.0.0.0 -ui
ports:
- "8300:8300"
@@ -46,7 +46,7 @@
# Registrator
#
registrator:
- image: gliderlabs/registrator:latest
+ image: "${REGISTRY}gliderlabs/registrator:${REGISTRATOR_TAG:-latest}"
command: [
"-ip=${DOCKER_HOST_IP}",
"-retry-attempts", "100",
@@ -63,7 +63,7 @@
# Fluentd log server
#
fluentd:
- image: fluent/fluentd
+ image: "${REGISTRY}voltha/fluentd:${TAG:-latest}"
ports:
- "24224:24224"
volumes:
@@ -75,7 +75,7 @@
# Voltha server instance(s)
#
voltha:
- image: cord/voltha
+ image: "${REGISTRY}voltha/voltha:${TAG:-latest}"
command: [
"/voltha/voltha/main.py",
"-v",
@@ -115,7 +115,7 @@
# ofagent server instance
#
ofagent:
- image: cord/ofagent
+ image: "${REGISTRY}voltha/ofagent:${TAG:-latest}"
command: [
"/ofagent/ofagent/main.py",
"-v",
@@ -140,7 +140,7 @@
# Netconf server instance(s)
#
netconf:
- image: cord/netconf
+ image: "${REGISTRY}voltha/netconf:${TAG:-latest}"
privileged: true
command: [
"/netconf/netconf/main.py",
diff --git a/compose/docker-compose-elasticsearch.yml b/compose/docker-compose-elasticsearch.yml
index 0b190b2..97f6176 100644
--- a/compose/docker-compose-elasticsearch.yml
+++ b/compose/docker-compose-elasticsearch.yml
@@ -2,7 +2,7 @@
services:
elasticsearch:
- image: docker.elastic.co/elasticsearch/elasticsearch:5.6.0
+ image: "${REGISTRY}docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_TAG:-5.6.0}"
environment:
- transport.host=localhost
- transport.tcp.port=9300
diff --git a/compose/docker-compose-envoy-swarm.yml b/compose/docker-compose-envoy-swarm.yml
index b9e905d..fc299e9 100644
--- a/compose/docker-compose-envoy-swarm.yml
+++ b/compose/docker-compose-envoy-swarm.yml
@@ -10,7 +10,7 @@
version: "3"
services:
voltha:
- image: voltha/envoy:latest
+ image: "${REGISTRY}voltha/envoy:${TAG:-latest}"
logging:
driver: "json-file"
options:
diff --git a/compose/docker-compose-fixed-port.yml b/compose/docker-compose-fixed-port.yml
index 5fb8749..d3b1c85 100644
--- a/compose/docker-compose-fixed-port.yml
+++ b/compose/docker-compose-fixed-port.yml
@@ -4,7 +4,7 @@
# Single-node zookeeper service
#
zookeeper:
- image: wurstmeister/zookeeper
+ image: "${REGISTRY}wurstmeister/zookeeper:${ZK_TAG:-latest}"
ports:
- "2181:2181"
environment:
@@ -13,7 +13,7 @@
# Single-node kafka service
#
kafka:
- image: wurstmeister/kafka
+ image: "${REGISTRY}wurstmeister/kafka:${KAFKA_TAG:-latest}"
ports:
- "9092:9092"
environment:
@@ -30,7 +30,7 @@
# Single-node consul agent
#
consul:
- image: consul:latest
+ image: "${REGISTRY}consul:${CONSUL_TAG:-0.9.2}"
command: agent -server -bootstrap -client 0.0.0.0 -ui
ports:
- "8300:8300"
@@ -46,7 +46,7 @@
# Registrator
#
registrator:
- image: gliderlabs/registrator:latest
+ image: "${REGISTRY}gliderlabs/registrator:${REGISTRATOR_TAG:-latest}"
command: [
"-ip=${DOCKER_HOST_IP}",
"-retry-attempts", "100",
@@ -62,7 +62,7 @@
# Fluentd log server
#
fluentd:
- image: fluent/fluentd
+ image: "${REGISTRY}voltha/fluentd:${TAG:-latest}"
ports:
- "24224:24224"
volumes:
@@ -75,7 +75,7 @@
# (demo place-holder for external KPI system)
#
grafana:
- image: kamon/grafana_graphite
+ image: "${REGISTRY}kamon/grafana_graphite:${GRAPHITE_TAG:-latest}"
ports:
- "8882:80"
- "2003:2003"
@@ -93,7 +93,7 @@
# Shovel (Kafka-graphite-gateway)
#
shovel:
- image: cord/shovel
+ image: "${REGISTRY}voltha/shovel:${TAG:-latest}"
command: [
"/shovel/shovel/main.py",
"--kafka=@kafka",
@@ -111,7 +111,7 @@
# Voltha server instance(s)
#
voltha:
- image: cord/voltha
+ image: "${REGISTRY}voltha/voltha:${TAG:-latest}"
command: [
"/voltha/voltha/main.py",
"-v",
@@ -154,7 +154,7 @@
# ofagent server instance
#
ofagent:
- image: cord/ofagent
+ image: "${REGISTRY}voltha/ofagent:${TAG:-latest}"
command: [
"/ofagent/ofagent/main.py",
"-v",
@@ -179,7 +179,7 @@
# Netconf server instance(s)
#
netconf:
- image: cord/netconf
+ image: "${REGISTRY}voltha/netconf:${TAG:-latest}"
privileged: true
command: [
"/netconf/netconf/main.py",
@@ -207,7 +207,7 @@
# Dashboard daemon
#
dashd:
- image: cord/dashd
+ image: "${REGISTRY}voltha/dashd:${TAG:-latest}"
command: [
"/dashd/dashd/main.py",
"--kafka=@kafka",
diff --git a/compose/docker-compose-fluentd-agg-cluster.yml b/compose/docker-compose-fluentd-agg-cluster.yml
index 9f82fa4..fceb6cf 100644
--- a/compose/docker-compose-fluentd-agg-cluster.yml
+++ b/compose/docker-compose-fluentd-agg-cluster.yml
@@ -13,7 +13,7 @@
#
fluentdactv:
- image: cord/fluentd
+ image: "${REGISTRY}voltha/fluentd:${TAG:-latest}"
logging:
driver: "json-file"
options:
@@ -30,10 +30,10 @@
ports:
- "24224"
volumes:
- - "/var/log/voltha/logging_volume:/fluentd/log"
+ - ${VOLTHA_LOGS:-/var/log/voltha/logging_volume}:/fluentd/log
fluentdstby:
- image: cord/fluentd
+ image: "${REGISTRY}voltha/fluentd:${TAG:-latest}"
logging:
driver: "json-file"
options:
@@ -50,7 +50,7 @@
ports:
- "24224"
volumes:
- - "/var/log/voltha/logging_volume:/fluentd/log"
+ - ${VOLTHA_LOGS:-/var/log/voltha/logging_volume}:/fluentd/log
networks:
voltha-net:
diff --git a/compose/docker-compose-fluentd-cluster.yml b/compose/docker-compose-fluentd-cluster.yml
index dead717..18b9812 100644
--- a/compose/docker-compose-fluentd-cluster.yml
+++ b/compose/docker-compose-fluentd-cluster.yml
@@ -13,7 +13,7 @@
#
fluentd:
- image: cord/fluentd
+ image: "${REGISTRY}voltha/fluentd:${TAG:-latest}"
logging:
driver: "json-file"
options:
diff --git a/compose/docker-compose-grafana-swarm.yml b/compose/docker-compose-grafana-swarm.yml
index 0ff00de..bf6bd76 100644
--- a/compose/docker-compose-grafana-swarm.yml
+++ b/compose/docker-compose-grafana-swarm.yml
@@ -12,7 +12,7 @@
version: "3"
services:
grafana:
- image: kamon/grafana_graphite
+ image: "${REGISTRY}kamon/grafana_graphite:${TAG:-latest}"
logging:
driver: "json-file"
options:
diff --git a/compose/docker-compose-kafka-cluster.yml b/compose/docker-compose-kafka-cluster.yml
index 1c2dbb2..53fd141 100644
--- a/compose/docker-compose-kafka-cluster.yml
+++ b/compose/docker-compose-kafka-cluster.yml
@@ -16,7 +16,7 @@
version: '3'
services:
zk1:
- image: zookeeper
+ image: "${REGISTRY}wurstmeister/zookeeper:${ZK_TAG:-latest}"
logging:
driver: "json-file"
options:
@@ -29,7 +29,7 @@
ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zk2:2888:3888 server.3=zk3:2888:3888
zk2:
- image: zookeeper
+ image: "${REGISTRY}wurstmeister/zookeeper:${ZK_TAG:-latest}"
logging:
driver: "json-file"
options:
@@ -42,7 +42,7 @@
ZOO_SERVERS: server.1=zk1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zk3:2888:3888
zk3:
- image: zookeeper
+ image: "${REGISTRY}wurstmeister/zookeeper:${ZK_TAG:-latest}"
logging:
driver: "json-file"
options:
@@ -57,7 +57,7 @@
kafka:
deploy:
mode: global
- image: wurstmeister/kafka
+ image: "${REGISTRY}wurstmeister/kafka:${KAFKA_TAG:-latest}"
logging:
driver: "json-file"
options:
diff --git a/compose/docker-compose-logstash-swarm.yml b/compose/docker-compose-logstash-swarm.yml
index 1f566ed..814ed9d 100644
--- a/compose/docker-compose-logstash-swarm.yml
+++ b/compose/docker-compose-logstash-swarm.yml
@@ -2,7 +2,7 @@
services:
logstash:
- image: cord/logstash
+ image: "${REGISTRY}voltha/logstash:${TAG:-latest}"
environment:
- log.level=info
- xpack.monitoring.enabled=false
diff --git a/compose/docker-compose-logstash.yml b/compose/docker-compose-logstash.yml
index 38a5881..53a875f 100644
--- a/compose/docker-compose-logstash.yml
+++ b/compose/docker-compose-logstash.yml
@@ -2,7 +2,7 @@
services:
logstash:
- image: cord/logstash
+ image: "${REGISTRY}voltha/logstash:${TAG:-latest}"
environment:
- log.level=info
command: logstash -f /etc/logstash/conf.d/
diff --git a/compose/docker-compose-netconf-swarm.yml b/compose/docker-compose-netconf-swarm.yml
index 3259c47..8df65ac 100644
--- a/compose/docker-compose-netconf-swarm.yml
+++ b/compose/docker-compose-netconf-swarm.yml
@@ -13,7 +13,7 @@
version: "3"
services:
netconf:
- image: cord/netconf:latest
+ image: "${REGISTRY}voltha/netconf:${TAG:-latest}"
logging:
driver: "json-file"
options:
diff --git a/compose/docker-compose-netopeer.yml b/compose/docker-compose-netopeer.yml
index 6ed9953..df00ec4 100755
--- a/compose/docker-compose-netopeer.yml
+++ b/compose/docker-compose-netopeer.yml
@@ -1,6 +1,6 @@
version: '2'
services:
netopeer:
- image: cord/netopeer
+ image: "${REGISTRY}voltha/netopeer:${TAG:-latest}"
ports:
- "1830:830"
diff --git a/compose/docker-compose-ofagent-swarm.yml b/compose/docker-compose-ofagent-swarm.yml
index d11ffcf..ef0be02 100644
--- a/compose/docker-compose-ofagent-swarm.yml
+++ b/compose/docker-compose-ofagent-swarm.yml
@@ -9,7 +9,7 @@
version: "3.2"
services:
ofagent:
- image: cord/ofagent
+ image: "${REGISTRY}voltha/ofagent:${TAG:-latest}"
logging:
driver: "json-file"
options:
diff --git a/compose/docker-compose-ofagent-test.yml b/compose/docker-compose-ofagent-test.yml
index 20d20ca..d20a6a5 100644
--- a/compose/docker-compose-ofagent-test.yml
+++ b/compose/docker-compose-ofagent-test.yml
@@ -5,7 +5,7 @@
# Single-node consul agent
#
consul:
- image: consul:latest
+ image: "${REGISTRY}consul:${CONSUL_TAG:-0.9.2}"
command: agent -server -bootstrap -client 0.0.0.0 -ui
ports:
- "8300:8300"
@@ -21,7 +21,7 @@
# Registrator
#
registrator:
- image: gliderlabs/registrator:latest
+ image: "${REGISTRY}gliderlabs/registrator:${REGISTRATOR_TAG:-latest}"
command: [
"-ip=${DOCKER_HOST_IP}",
"-retry-attempts", "100",
@@ -38,7 +38,7 @@
# Fluentd log server
#
fluentd:
- image: fluent/fluentd
+ image: "${REGISTRY}voltha/fluentd:${TAG:-latest}"
ports:
- "24224:24224"
volumes:
@@ -50,7 +50,7 @@
# Voltha server instance(s)
#
voltha:
- image: cord/voltha
+ image: "${REGISTRY}voltha/voltha:${TAG:-latest}"
command: [
"/voltha/voltha/main.py",
"-v",
@@ -88,7 +88,7 @@
- ponmgmt
envoy:
- image: voltha/envoy
+ image: "${REGISTRY}voltha/envoy:${TAG:-latest}"
entrypoint:
- /usr/local/bin/envoyd
- -envoy-cfg-template
@@ -112,8 +112,8 @@
#
# Voltha cli container
#
- vcli:
- image: cord/vcli
+ cli:
+ image: "${REGISTRY}voltha/cli:${TAG:-latest}"
command: [
"/cli/cli/setup.sh",
"-L",
@@ -130,7 +130,7 @@
# onos-1
#
onos1:
- image: cord/onos
+ image: "${REGISTRY}voltha/onos:${TAG:-latest}"
container_name: onos1
ports:
- 6633:6653
@@ -146,7 +146,7 @@
# onos-2
#
onos2:
- image: cord/onos
+ image: "${REGISTRY}voltha/onos:${TAG:-latest}"
container_name: onos2
ports:
- 6644:6653
@@ -162,7 +162,7 @@
# onos-3
#
onos3:
- image: cord/onos
+ image: "${REGISTRY}voltha/onos:${TAG:-latest}"
container_name: onos3
ports:
- 6655:6653
@@ -177,7 +177,7 @@
# ofagent server instance
#
ofagent:
- image: cord/ofagent
+ image: "${REGISTRY}voltha/ofagent:${TAG:-latest}"
command: /ofagent/ofagent/main.py -v --consul=${DOCKER_HOST_IP}:8500 --fluentd=fluentd:24224 --controller ${DOCKER_HOST_IP}:6633 ${DOCKER_HOST_IP}:6644 ${DOCKER_HOST_IP}:6655 --grpc-endpoint=@voltha-grpc --instance-id-is-container-name --enable-tls --key-file=/ofagent/pki/voltha.key --cert-file=/ofagent/pki/voltha.crt
depends_on:
- consul
diff --git a/compose/docker-compose-onos-swarm.yml b/compose/docker-compose-onos-swarm.yml
index f4cc89b..d441cb0 100644
--- a/compose/docker-compose-onos-swarm.yml
+++ b/compose/docker-compose-onos-swarm.yml
@@ -11,7 +11,7 @@
freeradius:
deploy:
replicas: 1
- image: "marcelmaatkamp/freeradius"
+ image: "${REGISTRY}marcelmaatkamp/freeradius:${RADIUS_TAG:-latest}"
logging:
driver: "json-file"
options:
@@ -29,7 +29,7 @@
- voltha-net
onos_cluster_manager:
- image: "voltha/unum"
+ image: "${REGISTRY}voltha/unum:${TAG:-latest}"
deploy:
replicas: 1
placement:
@@ -52,7 +52,7 @@
replicas: 3
labels:
org.voltha.onos.cluster: "true"
- image: "cord/onos"
+ image: "${REGISTRY}voltha/onos:${TAG:-latest}"
logging:
driver: "json-file"
options:
diff --git a/compose/docker-compose-opennms.yml b/compose/docker-compose-opennms.yml
index d1dbcb6..fe9b349 100644
--- a/compose/docker-compose-opennms.yml
+++ b/compose/docker-compose-opennms.yml
@@ -1,12 +1,12 @@
version: '2'
services:
database_data:
- image: tianon/true
+ image: "${REGISTRY}tianon/true:${TRUE_TAG:-latest}"
volumes:
- /var/lib/postgresql/data
database:
- image: postgres:9.6.1
+ image: "${REGISTRY}postgres:${POSTGRES_TAG:-9.6.1}"
env_file:
- ./opennms/env/postgres.env
ports:
@@ -17,14 +17,14 @@
- database_data:rw
opennms_data:
- image: tianon/true
+ image: "${REGISTRY}tianon/true:${TRUE_TAG:-latest}"
volumes:
- /var/log/opennms
- /var/opennms/rrd
- /var/opennms/reports
opennms:
- image: cord/opennms
+ image: "${REGISTRY}voltha/opennms:${TAG:-latest}"
env_file:
- ./opennms/env/opennms.env
- ./opennms/env/postgres.env
diff --git a/compose/docker-compose-registry.yml b/compose/docker-compose-registry.yml
index dc6bb91..cb44be9 100644
--- a/compose/docker-compose-registry.yml
+++ b/compose/docker-compose-registry.yml
@@ -8,7 +8,7 @@
version: "3"
services:
registry:
- image: registry:2
+ image: "${REGISTRY}registry:${REGISTRY_TAG:-2}"
logging:
driver: "json-file"
options:
diff --git a/compose/docker-compose-stats-swarm.yml b/compose/docker-compose-stats-swarm.yml
index 447be5c..5120e8a 100644
--- a/compose/docker-compose-stats-swarm.yml
+++ b/compose/docker-compose-stats-swarm.yml
@@ -15,7 +15,7 @@
version: "3"
services:
dashd:
- image: cord/dashd
+ image: "${REGISTRY}voltha/dashd:${TAG:-latest}"
logging:
driver: "json-file"
options:
@@ -34,7 +34,7 @@
- voltha-net
shovel:
- image: cord/shovel
+ image: "${REGISTRY}voltha/shovel:${TAG:-latest}"
logging:
driver: "json-file"
options:
diff --git a/compose/docker-compose-system-test-dispatcher.yml b/compose/docker-compose-system-test-dispatcher.yml
index 286ebbe..d88517a 100644
--- a/compose/docker-compose-system-test-dispatcher.yml
+++ b/compose/docker-compose-system-test-dispatcher.yml
@@ -4,7 +4,7 @@
# Single-node zookeeper service
#
zookeeper:
- image: wurstmeister/zookeeper
+ image: "${REGISTRY}wurstmeister/zookeeper:${ZK_TAG:-latest}"
ports:
- 2181
environment:
@@ -13,7 +13,7 @@
# Single-node kafka service
#
kafka:
- image: wurstmeister/kafka
+ image: "${REGISTRY}wurstmeister/kafka:${KAFKA_TAG:-latest}"
ports:
- 9092
environment:
@@ -30,7 +30,7 @@
# Single-node consul agent
#
consul:
- image: consul:latest
+ image: "${REGISTRY}consul:${CONSUL_TAG:-0.9.2}"
command: agent -server -bootstrap -client 0.0.0.0 -ui
ports:
- "8300:8300"
@@ -46,7 +46,7 @@
# Registrator
#
registrator:
- image: gliderlabs/registrator:latest
+ image: "${REGISTRY}gliderlabs/registrator:${REGISTRATOR_TAG:-latest}"
command: [
"-ip=${DOCKER_HOST_IP}",
"-retry-attempts", "100",
@@ -63,7 +63,7 @@
# Fluentd log server
#
fluentd:
- image: fluent/fluentd
+ image: "${REGISTRY}voltha/fluentd:${TAG:-latest}"
ports:
- "24224:24224"
volumes:
@@ -76,7 +76,7 @@
# (demo place-holder for external KPI system)
#
grafana:
- image: voltha/grafana
+ image: "${REGISTRY}voltha/grafana:${TAG:-latest}"
ports:
- "8883:80"
- "2003:2003"
@@ -95,7 +95,7 @@
# Shovel (Kafka-graphite-gateway)
#
shovel:
- image: cord/shovel
+ image: "${REGISTRY}voltha/shovel:${TAG:-latest}"
command: [
"/shovel/shovel/main.py",
"--kafka=@kafka",
@@ -113,7 +113,7 @@
# Voltha server instance(s)
#
voltha:
- image: cord/voltha
+ image: "${REGISTRY}voltha/voltha:${TAG:-latest}"
command: [
"/voltha/voltha/main.py",
"-v",
@@ -151,7 +151,7 @@
- ponmgmt
envoy:
- image: voltha/envoy
+ image: "${REGISTRY}voltha/envoy:${TAG:-latest}"
entrypoint:
- /usr/local/bin/envoyd
- -envoy-cfg-template
@@ -175,8 +175,8 @@
#
# Voltha cli container
#
- vcli:
- image: cord/vcli
+ cli:
+ image: "${REGISTRY}voltha/cli:${TAG:-latest}"
command: [
"/cli/cli/setup.sh",
"-L",
@@ -197,7 +197,7 @@
# ofagent server instance
#
ofagent:
- image: cord/ofagent
+ image: "${REGISTRY}voltha/ofagent:${TAG:-latest}"
command: [
"/ofagent/ofagent/main.py",
"-v",
@@ -222,7 +222,7 @@
# Netconf server instance(s)
#
netconf:
- image: cord/netconf
+ image: "${REGISTRY}voltha/netconf:${TAG:-latest}"
privileged: true
command: [
"/netconf/netconf/main.py",
diff --git a/compose/docker-compose-system-test-encrypted.yml b/compose/docker-compose-system-test-encrypted.yml
index 7973dd7..aff19ca 100644
--- a/compose/docker-compose-system-test-encrypted.yml
+++ b/compose/docker-compose-system-test-encrypted.yml
@@ -4,7 +4,7 @@
# Single-node zookeeper service
#
zookeeper:
- image: wurstmeister/zookeeper
+ image: "${REGISTRY}wurstmeister/zookeeper:${ZK_TAG:-latest}"
ports:
- 2181
environment:
@@ -13,7 +13,7 @@
# Single-node kafka service
#
kafka:
- image: wurstmeister/kafka
+ image: "${REGISTRY}wurstmeister/kafka:${KAFKA_TAG:-latest}"
ports:
- 9092
environment:
@@ -30,7 +30,7 @@
# Single-node consul agent
#
consul:
- image: voltha/consul
+ image: "${REGISTRY}voltha/consul:${CONSUL_TAG:-0.9.2}"
command: agent -server -bootstrap -client 0.0.0.0 -ui
ports:
- "8300:8300"
@@ -46,7 +46,7 @@
# Registrator
#
registrator:
- image: voltha/registrator
+ image: "${REGISTRY}gliderlabs/registrator:${REGISTRATOR_TAG:-latest}"
command: [
"-ip=${DOCKER_HOST_IP}",
"-retry-attempts", "100",
@@ -66,7 +66,7 @@
# Fluentd log server
#
fluentd:
- image: fluent/fluentd
+ image: "${REGISTRY}voltha/fluentd:${TAG:-latest}"
ports:
- "24224:24224"
volumes:
@@ -79,7 +79,7 @@
# (demo place-holder for external KPI system)
#
grafana:
- image: voltha/grafana
+ image: "${REGISTRY}voltha/grafana:${TAG:-latest}"
ports:
- "8882:80"
- "2003:2003"
@@ -98,7 +98,7 @@
# Shovel (Kafka-graphite-gateway)
#
shovel:
- image: cord/shovel
+ image: "${REGISTRY}voltha/shovel:${TAG:-latest}"
command: [
"/shovel/shovel/main.py",
"--kafka=@kafka",
@@ -116,7 +116,7 @@
# Voltha server instance(s)
#
voltha:
- image: cord/voltha
+ image: "${REGISTRY}voltha/voltha:${TAG:-latest}"
command: [
"/voltha/voltha/main.py",
"-v",
@@ -154,8 +154,8 @@
#
# Voltha cli container
#
- vcli:
- image: cord/vcli
+ cli:
+ image: "${REGISTRY}voltha/cli:${TAG:-latest}"
command: [
"/cli/cli/setup.sh",
"-L"
@@ -175,7 +175,7 @@
# ofagent server instance
#
ofagent:
- image: cord/ofagent
+ image: "${REGISTRY}voltha/ofagent:${TAG:-latest}"
command: [
"/ofagent/ofagent/main.py",
"-v",
@@ -200,7 +200,7 @@
# Netconf server instance(s)
#
netconf:
- image: cord/netconf
+ image: "${REGISTRY}voltha/netconf:${TAG:-latest}"
privileged: true
command: [
"/netconf/netconf/main.py",
@@ -228,7 +228,7 @@
# Dashboard daemon
#
dashd:
- image: cord/dashd
+ image: "${REGISTRY}voltha/dashd:${TAG:-latest}"
command: [
"/dashd/dashd/main.py",
"--kafka=@kafka",
@@ -247,7 +247,7 @@
# Nginx service consolidation
#
nginx:
- image: voltha/nginx
+ image: "${REGISTRY}voltha/nginx:${TAG:-latest}"
ports:
- "80:80"
environment:
@@ -267,7 +267,7 @@
# Docker ui
#
portainer:
- image: voltha/portainer
+ image: "${REGISTRY}voltha/portainer:${TAG:-latest}"
ports:
- "9000:9000"
environment:
diff --git a/compose/docker-compose-system-test-persistence.yml b/compose/docker-compose-system-test-persistence.yml
index ece46bf..963055c 100644
--- a/compose/docker-compose-system-test-persistence.yml
+++ b/compose/docker-compose-system-test-persistence.yml
@@ -4,7 +4,7 @@
# Single-node zookeeper service
#
zookeeper:
- image: wurstmeister/zookeeper
+ image: "${REGISTRY}wurstmeister/zookeeper:${ZK_TAG:-latest}"
ports:
- 2181
environment:
@@ -13,7 +13,7 @@
# Single-node kafka service
#
kafka:
- image: wurstmeister/kafka
+ image: "${REGISTRY}wurstmeister/kafka:${KAFKA_TAG:-latest}"
ports:
- 9092
environment:
@@ -30,7 +30,7 @@
# Single-node consul agent
#
consul:
- image: consul:latest
+ image: "${REGISTRY}consul:${CONSUL_TAG:-0.9.2}"
command: agent -server -bootstrap -client 0.0.0.0 -ui
ports:
- "8300:8300"
@@ -46,7 +46,7 @@
# Registrator
#
registrator:
- image: gliderlabs/registrator:latest
+ image: "${REGISTRY}gliderlabs/registrator:${REGISTRATOR_TAG:-latest}"
command: [
"-ip=${DOCKER_HOST_IP}",
"-retry-attempts", "100",
@@ -63,7 +63,7 @@
# Fluentd log server
#
fluentd:
- image: fluent/fluentd
+ image: "${REGISTRY}voltha/fluentd:${TAG:-latest}"
ports:
- "24224:24224"
volumes:
@@ -76,7 +76,7 @@
# (demo place-holder for external KPI system)
#
grafana:
- image: voltha/grafana
+ image: "${REGISTRY}voltha/grafana:${TAG:-latest}"
ports:
- "8883:80"
- "2003:2003"
@@ -95,7 +95,7 @@
# Shovel (Kafka-graphite-gateway)
#
shovel:
- image: cord/shovel
+ image: "${REGISTRY}voltha/shovel:${TAG:-latest}"
command: [
"/shovel/shovel/main.py",
"--kafka=@kafka",
@@ -113,7 +113,7 @@
# Voltha server instance(s)
#
voltha:
- image: cord/voltha
+ image: "${REGISTRY}voltha/voltha:${TAG:-latest}"
command: [
"/voltha/voltha/main.py",
"-v",
@@ -151,7 +151,7 @@
- ponmgmt
envoy:
- image: voltha/envoy
+ image: "${REGISTRY}voltha/envoy:${TAG:-latest}"
entrypoint:
- /usr/local/bin/envoyd
- -envoy-cfg-template
@@ -175,8 +175,8 @@
#
# Voltha cli container
#
- vcli:
- image: cord/vcli
+ cli:
+ image: "${REGISTRY}voltha/cli:${TAG:-latest}"
command: [
"/cli/cli/setup.sh",
"-L",
@@ -197,7 +197,7 @@
# ofagent server instance
#
ofagent:
- image: cord/ofagent
+ image: "${REGISTRY}voltha/ofagent:${TAG:-latest}"
command: [
"/ofagent/ofagent/main.py",
"-v",
@@ -222,7 +222,7 @@
# Netconf server instance(s)
#
netconf:
- image: cord/netconf
+ image: "${REGISTRY}voltha/netconf:${TAG:-latest}"
privileged: true
command: [
"/netconf/netconf/main.py",
diff --git a/compose/docker-compose-system-test-with-etcd.yml b/compose/docker-compose-system-test-with-etcd.yml
index a02a9cf..b35d7cb 100644
--- a/compose/docker-compose-system-test-with-etcd.yml
+++ b/compose/docker-compose-system-test-with-etcd.yml
@@ -4,7 +4,7 @@
# Single-node zookeeper service
#
zookeeper:
- image: wurstmeister/zookeeper
+ image: "${REGISTRY}wurstmeister/zookeeper:${ZK_TAG:-latest}"
ports:
- 2181
environment:
@@ -13,7 +13,7 @@
# Single-node kafka service
#
kafka:
- image: wurstmeister/kafka
+ image: "${REGISTRY}wurstmeister/kafka:${KAFKA_TAG:-latest}"
ports:
- 9092
environment:
@@ -30,7 +30,7 @@
# Single-node consul agent
#
consul:
- image: consul:latest
+ image: "${REGISTRY}consul:${CONSUL_TAG:-0.9.2}"
command: agent -server -bootstrap -client 0.0.0.0 -ui
ports:
- "8300:8300"
@@ -46,7 +46,7 @@
# Single-node etcd server
#
etcd:
- image: quay.io/coreos/etcd:v3.2.9
+ image: "${REGISTRY}quay.io/coreos/etcd:${ETCD_TAG:-v3.2.9}"
command: [
"etcd",
"--name=etcd0",
@@ -66,7 +66,7 @@
# Registrator
#
registrator:
- image: gliderlabs/registrator:latest
+ image: "${REGISTRY}gliderlabs/registrator:${REGISTRATOR_TAG:-latest}"
command: [
"-ip=${DOCKER_HOST_IP}",
"-retry-attempts", "100",
@@ -83,7 +83,7 @@
# Fluentd log server
#
fluentd:
- image: fluent/fluentd
+ image: "${REGISTRY}voltha/fluentd:${TAG:-latest}"
ports:
- "24224:24224"
volumes:
@@ -96,7 +96,7 @@
# (demo place-holder for external KPI system)
#
grafana:
- image: voltha/grafana
+ image: "${REGISTRY}voltha/grafana:${TAG:-latest}"
ports:
- "8883:80"
- "2003:2003"
@@ -115,7 +115,7 @@
# Shovel (Kafka-graphite-gateway)
#
shovel:
- image: cord/shovel
+ image: "${REGISTRY}voltha/shovel:${TAG:-latest}"
command: [
"/shovel/shovel/main.py",
"--kafka=@kafka",
@@ -133,7 +133,7 @@
# Voltha server instance(s)
#
voltha:
- image: cord/voltha
+ image: "${REGISTRY}voltha/voltha:${TAG:-latest}"
command: [
"/voltha/voltha/main.py",
"-v",
@@ -174,7 +174,7 @@
- ponmgmt
envoy:
- image: voltha/envoy
+ image: "${REGISTRY}voltha/envoy:${TAG:-latest}"
entrypoint:
- /usr/local/bin/envoyd
- -envoy-cfg-template
@@ -206,8 +206,8 @@
#
# Voltha cli container
#
- vcli:
- image: cord/vcli
+ cli:
+ image: "${REGISTRY}voltha/cli:${TAG:-latest}"
command: [
"/cli/cli/setup.sh",
"-L",
@@ -228,7 +228,7 @@
# ofagent server instance
#
ofagent:
- image: cord/ofagent
+ image: "${REGISTRY}voltha/ofagent:${TAG:-latest}"
command: [
"/ofagent/ofagent/main.py",
"-v",
@@ -256,7 +256,7 @@
# Netconf server instance(s)
#
netconf:
- image: cord/netconf
+ image: "${REGISTRY}voltha/netconf:${TAG:-latest}"
privileged: true
command: [
"/netconf/netconf/main.py",
@@ -284,7 +284,7 @@
# Dashboard daemon
#
dashd:
- image: cord/dashd
+ image: "${REGISTRY}voltha/dashd:${TAG:-latest}"
command: [
"/dashd/dashd/main.py",
"--kafka=@kafka",
@@ -303,7 +303,7 @@
# Nginx service consolidation
#
nginx:
- image: voltha/nginx
+ image: "${REGISTRY}voltha/nginx:${TAG:-latest}"
ports:
- "80:80"
environment:
@@ -321,7 +321,7 @@
# Docker ui
#
portainer:
- image: voltha/portainer
+ image: "${REGISTRY}voltha/portainer:${TAG:-latest}"
ports:
- "9000:9000"
environment:
diff --git a/compose/docker-compose-system-test.yml b/compose/docker-compose-system-test.yml
index 0ce7920..7231ed9 100644
--- a/compose/docker-compose-system-test.yml
+++ b/compose/docker-compose-system-test.yml
@@ -4,7 +4,7 @@
# Single-node zookeeper service
#
zookeeper:
- image: wurstmeister/zookeeper
+ image: "${REGISTRY}wurstmeister/zookeeper:${ZK_TAG:-latest}"
ports:
- 2181
environment:
@@ -13,7 +13,7 @@
# Single-node kafka service
#
kafka:
- image: wurstmeister/kafka
+ image: "${REGISTRY}wurstmeister/kafka:${KAFKA_TAG:-latest}"
ports:
- 9092
environment:
@@ -30,7 +30,7 @@
# Single-node consul agent
#
consul:
- image: consul:latest
+ image: "${REGISTRY}consul:${CONSUL_TAG:-0.9.2}"
command: agent -server -bootstrap -client 0.0.0.0 -ui
ports:
- "8300:8300"
@@ -46,7 +46,7 @@
# Registrator
#
registrator:
- image: gliderlabs/registrator:latest
+ image: "${REGISTRY}gliderlabs/registrator:${REGISTRATOR_TAG:-latest}"
command: [
"-ip=${DOCKER_HOST_IP}",
"-retry-attempts", "100",
@@ -63,7 +63,7 @@
# Fluentd log server
#
fluentd:
- image: fluent/fluentd
+ image: "${REGISTRY}voltha/fluentd:${TAG:-latest}"
ports:
- "24224:24224"
volumes:
@@ -76,7 +76,7 @@
# (demo place-holder for external KPI system)
#
grafana:
- image: voltha/grafana
+ image: "${REGISTRY}voltha/grafana:${TAG:-latest}"
ports:
- "8883:80"
- "2003:2003"
@@ -95,7 +95,7 @@
# Shovel (Kafka-graphite-gateway)
#
shovel:
- image: cord/shovel
+ image: "${REGISTRY}voltha/shovel:${TAG:-latest}"
command: [
"/shovel/shovel/main.py",
"--kafka=@kafka",
@@ -113,7 +113,7 @@
# Voltha server instance(s)
#
voltha:
- image: cord/voltha
+ image: "${REGISTRY}voltha/voltha:${TAG:-latest}"
command: [
"/voltha/voltha/main.py",
"-v",
@@ -151,7 +151,7 @@
- ponmgmt
envoy:
- image: voltha/envoy
+ image: "${REGISTRY}voltha/envoy:${TAG:-latest}"
entrypoint:
- /usr/local/bin/envoyd
- -envoy-cfg-template
@@ -175,8 +175,8 @@
#
# Voltha cli container
#
- vcli:
- image: cord/vcli
+ cli:
+ image: "${REGISTRY}voltha/cli:${TAG:-latest}"
command: [
"/cli/cli/setup.sh",
"-L",
@@ -197,7 +197,7 @@
# ofagent server instance
#
ofagent:
- image: cord/ofagent
+ image: "${REGISTRY}voltha/ofagent:${TAG:-latest}"
command: [
"/ofagent/ofagent/main.py",
"-v",
@@ -225,7 +225,7 @@
# Netconf server instance(s)
#
netconf:
- image: cord/netconf
+ image: "${REGISTRY}voltha/netconf:${TAG:-latest}"
privileged: true
command: [
"/netconf/netconf/main.py",
@@ -253,7 +253,7 @@
# Dashboard daemon
#
dashd:
- image: cord/dashd
+ image: "${REGISTRY}voltha/dashd:${TAG:-latest}"
command: [
"/dashd/dashd/main.py",
"--kafka=@kafka",
@@ -272,7 +272,7 @@
# Nginx service consolidation
#
nginx:
- image: voltha/nginx
+ image: "${REGISTRY}voltha/nginx:${TAG:-latest}"
ports:
- "80:80"
environment:
@@ -290,7 +290,7 @@
# Docker ui
#
portainer:
- image: voltha/portainer
+ image: "${REGISTRY}voltha/portainer:${TAG:-latest}"
ports:
- "9000:9000"
environment:
diff --git a/compose/docker-compose-voltha-swarm.yml b/compose/docker-compose-voltha-swarm.yml
index bff9f90..cbbe319 100644
--- a/compose/docker-compose-voltha-swarm.yml
+++ b/compose/docker-compose-voltha-swarm.yml
@@ -1,7 +1,7 @@
version: "3"
services:
vcore:
- image: cord/voltha:latest
+ image: "${REGISTRY}voltha/voltha:${TAG:-latest}"
logging:
driver: "json-file"
options:
diff --git a/compose/docker-compose-zk-kafka-test.yml b/compose/docker-compose-zk-kafka-test.yml
index 09c562b..748a9c2 100644
--- a/compose/docker-compose-zk-kafka-test.yml
+++ b/compose/docker-compose-zk-kafka-test.yml
@@ -4,7 +4,7 @@
# Single-node zookeeper service
#
zookeeper:
- image: wurstmeister/zookeeper
+ image: "${REGISTRY}wurstmeister/zookeeper:${ZK_TAG:-latest}"
ports:
- 2181:2181
environment:
@@ -13,7 +13,7 @@
# Single-node kafka service
#
kafka:
- image: wurstmeister/kafka
+ image: "${REGISTRY}wurstmeister/kafka:${KAFKA_TAG:-latest}"
ports:
- 9092:9092
environment:
@@ -22,4 +22,4 @@
KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
SERVICE_9092_NAME: "kafka"
volumes:
- - /var/run/docker.sock:/var/run/docker.sock
\ No newline at end of file
+ - /var/run/docker.sock:/var/run/docker.sock
diff --git a/compose/voltha-stack.yml.j2 b/compose/voltha-stack.yml.j2
new file mode 100644
index 0000000..09033d4
--- /dev/null
+++ b/compose/voltha-stack.yml.j2
@@ -0,0 +1,484 @@
+# Copyright 2017 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.
+#
+#
+# SWARM_MANAGER_COUNT - The number of managers in the swarm cluster. This is
+# used to limit the number of instances of some of the
+# service instances for smaller clusters.
+# [ NOTE - currently this parameter is handled via a Jinga2
+# templating capability, because as of 17.09.0-ce Docker
+# cannot use and environment variable for the `replicas`
+# attribute on a container. ]
+# REGISTRY - The docker registry from which images should be pulled.
+# If specified if should end in a `/`. Defaults to empty.
+# TAG - The tag that should be used when referencing VOLTHA docker
+# images, defaults to `latest`.
+# CONSUL_ROOT - The local path on which the consul/data and consul/config
+# directories should be created. Defaults to `/var/local`.
+# VOLTHA_LOGS - The location into which `fluentd` should writes logs.
+# Defaults to `/var/log`.
+# RADIUS_ROOT - The location in which the `data/clients.conf` and
+# `data/users` configuration files can be found. Defaults
+# to `/var/local`.
+# DOCKER_HOST_IP -
+# ZK_TAG - The tag that should be used when referencing the ZooKeeper
+# docker image. Defaults to `3.4.11`.
+# KAFKA_TAG - The tag that should be used when referencing the Kafka
+# docker image. Default to `1.0.0`.
+# CONSUL_TAG - The tag that should be used when referencing the Consul
+# docker image. Defaults to `0.9.2`.
+# RADIUS_TAG - The tag that should be used when referencing the FreeRADIUS
+# docker image. Defaults to `latest`.
+version: "3"
+
+services:
+ zk1:
+ image: "${REGISTRY}zookeeper:${ZK_TAG:-3.4.11}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ networks:
+ - kafka-net
+ environment:
+ ZOO_MY_ID: 1
+ ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zk2:2888:3888 server.3=zk3:2888:3888
+
+ zk2:
+ image: "${REGISTRY}zookeeper:${ZK_TAG:-3.4.11}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ networks:
+ - kafka-net
+ environment:
+ ZOO_MY_ID: 2
+ ZOO_SERVERS: server.1=zk1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zk3:2888:3888
+
+ zk3:
+ image: "${REGISTRY}zookeeper:${ZK_TAG:-3.4.11}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ networks:
+ - kafka-net
+ environment:
+ ZOO_MY_ID: 3
+ ZOO_SERVERS: server.1=zk1:2888:3888 server.2=zk2:2888:3888 server.3=0.0.0.0:2888:3888
+
+ kafka:
+ deploy:
+ mode: global
+ image: "${REGISTRY}wurstmeister/kafka:${KAFKA_TAG:-1.0.0}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ environment:
+ KAFKA_ADVERTISED_PORT: 9092
+ KAFKA_ZOOKEEPER_CONNECT: zk1:2181,zk2:2181,zk3:2181
+ KAFKA_HEAP_OPTS: -Xmx256M -Xms128M
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+ networks:
+ - kafka-net
+ - voltha-net
+ ports:
+ - 9092:9092
+
+ consul:
+ image: ${REGISTRY}consul:${CONSUL_TAG:-0.9.2}
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+
+ # Deploy to all docker manager nodes
+ deploy:
+ mode: global
+ placement:
+ constraints:
+ - node.role == manager
+ restart_policy:
+ condition: on-failure
+ entrypoint:
+ - consul
+ - agent
+ - -server
+ - -bootstrap-expect={{ SWARM_MANAGER_COUNT | default(1) }}
+ - -config-dir=/consul/config
+ - -data-dir=/consul/data # mandatory property
+ - -client=0.0.0.0
+ - -advertise={{ '{{' }} GetAllInterfaces | include "network" "172.29.20.0/29" | sort "size,address" | attr "address" {{ '}}' }}
+ - -ui
+ - -raft-protocol=3
+ - -rejoin
+ - -retry-join=172.29.20.2
+ - -retry-join=172.29.20.3
+ - -retry-join=172.29.20.4
+ - -retry-join=172.29.20.5
+ - -retry-join=172.29.20.6
+ - -retry-join=172.29.20.7
+ networks:
+ - consul-net
+ - voltha-net
+ ports:
+ - "8300:8300"
+ - "8400:8400"
+ - "8500:8500"
+ - "8600:8600/udp"
+{%- if CONSUL_ROOT is defined and CONSUL_ROOT %}
+ volumes:
+ - {{ CONSUL_ROOT }}/data:/consul/data
+ - {{ CONSUL_ROOT }}/config:/consul/config
+{%- endif %}
+
+ fluentdactv:
+ image: "${REGISTRY}voltha/fluentd:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ replicas: 1
+ restart_policy:
+ condition: on-failure
+ environment:
+ FLUENTD_CONF: fluent-agg.conf
+ networks:
+ - voltha-net
+ ports:
+ - "24224"
+{%- if VOLTHA_LOGS is defined and VOLTHA_LOGS %}
+ volumes:
+ - "{{ VOLTHA_LOGS }}:/fluentd/log"
+{%- endif %}
+
+ fluentdstby:
+ image: "${REGISTRY}voltha/fluentd:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ replicas: 1
+ restart_policy:
+ condition: on-failure
+ environment:
+ FLUENTD_CONF: fluent-agg.conf
+ networks:
+ - voltha-net
+ ports:
+ - "24224"
+{%- if VOLTHA_LOGS is defined and VOLTHA_LOGS %}
+ volumes:
+ - "{{ VOLTHA_LOGS }}:/fluentd/log"
+{%- endif %}
+
+ # The Fluentd container is part of the data collection
+ # infrastructure.
+ fluentd:
+ image: "${REGISTRY}voltha/fluentd:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ mode: replicated
+ replicas: {{ SWARM_MANAGER_COUNT | default(1) }}
+ restart_policy:
+ condition: any
+ environment:
+ SERVICE_24224_NAME: "fluentd-intake"
+ FLUENTD_CONF: fluent.conf
+ WAIT_FOR: "fluentdactv:24224 fluentdstby:24224"
+ WAIT_FOR_TIMEOUT: 0
+ networks:
+ - voltha-net
+ ports:
+ - "24224"
+
+ # Free RADIUS can be used to test VOLTHA's authentication
+ # sequence, i.e., EAPOL from a device behind an OLT to
+ # RADIUS authentication on the back end systems. By default
+ # no instances of Free RADIUS are deployed.
+ freeradius:
+ deploy:
+ replicas: 0
+ 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"
+
+{%- if RADIUS_ROOT is defined and RADIUS_ROOT %}
+ # CONFIG: When deploying a Free RADIUS instance client and user
+ # information will need to be configured for the service to
+ # operate correctly.
+ #
+ volumes:
+ - {{ RADIUS_ROOT }}/data/clients.conf:/etc/raddb/clients.conf
+ - {{ RADIUS_ROOT }}/data/users:/etc/raddb/users
+{%- endif %}
+ networks:
+ - voltha-net
+
+ # The cluster manager container calculates and servers ONOS cluster
+ # meta data via HTTP so that ONOS instances can form an HA cluster.
+ # The cluster manager must run on a manager node so that it can
+ # retrieve service information from manager nodes
+ 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"
+ ports:
+ - 5411:5411
+ networks:
+ - voltha-net
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+
+ # ONOS is the SDN controller for the solution and handles AAA,
+ # IGMP proxy, and L2 DHCP requests as well as manages flows
+ # down to the virtual devices (MCAST + OLT flows).
+ # Currently there is a single instance of ONOS as some of the
+ # applications running under ONOS do not support HA.
+ onos:
+ deploy:
+ replicas: 1
+ 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:
+ - voltha-net
+
+ # The VCORE container is the core capabilities of VOLTHA including
+ # interacting with device adapters
+ vcore:
+ image: "${REGISTRY}voltha/voltha:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ replicas: {{ SWARM_MANAGER_COUNT | default(1) }}
+ entrypoint:
+ - voltha/voltha/main.py
+ - -v
+ - --consul=consul:8500
+ - --fluentd=fluentd:24224
+ - --kafka=kafka
+ - --rest-port=8880
+ - --grpc-port=50556
+ - --instance-id-is-container-name
+ - --backend=consul
+ - --inter-core-subnet=172.29.19.0/24
+ - --pon-subnet=172.29.19.0/24
+ networks:
+ - voltha-net
+ ports:
+ - "8880:8880"
+ - "18880:18880"
+ - "50556:50556"
+ volumes:
+ - /var/run/docker.sock:/tmp/docker.sock
+
+ # The OpenFlow Agent support the OpenFlow protocol communication
+ # between ONOS and VOLTHA.
+ ofagent:
+ image: "${REGISTRY}voltha/ofagent:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ replicas: 1
+ entrypoint:
+ - /ofagent/ofagent/main.py
+ - -v
+ - --consul=consul:8500
+ - --fluentd=fluentd:24224
+ - --controller=onos:6653
+ - --grpc-endpoint=vcore:50556
+ - --instance-id-is-container-name
+ volumes:
+ - /var/run/docker.sock:/tmp/docker.sock
+ networks:
+ - voltha-net
+
+ # The VOLTHA container supports load balancing of request to
+ # the VOLTHA components as well as surfaces a REST API and maps
+ # the requests to GPRC
+ voltha:
+ image: "${REGISTRY}voltha/envoy:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ replicas: 1
+ #environment:
+ # DOCKER_HOST_IP: "${DOCKER_HOST_IP}"
+ entrypoint:
+ - /usr/local/bin/envoyd
+ - -envoy-cfg-template
+ - "/envoy/voltha-grpc-proxy.template.json"
+ - -envoy-config
+ - "/envoy/voltha-grpc-proxy.json"
+ networks:
+ - voltha-net
+ ports:
+ - "50555:50555"
+ - "8882:8882"
+ - "8443:8443"
+ - "8001:8001"
+ volumes:
+ - /var/run/docker.sock:/tmp/docker.sock
+
+ # The CLI container provides an CLI to the VOLTHA capabilitiy
+ # that can be accessed via SSH.
+ cli:
+ image: "${REGISTRY}voltha/cli:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ replicas: {{ SWARM_MANAGER_COUNT | default(1) }}
+ #environment:
+ # DOCKER_HOST_IP: "${DOCKER_HOST_IP}"
+ entrypoint:
+ - /cli/cli/setup.sh
+ - -C consul:8500
+ - -g voltha:50555
+ - -s voltha:18880
+ - -G
+ networks:
+ - voltha-net
+ ports:
+ - "5022:22"
+
+ # The Netconf container provides an NETCONF API to be used
+ # with VOLTHA and maps that to GRPC requests
+ netconf:
+ image: "${REGISTRY}voltha/netconf:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ mode: global
+ environment:
+ SERVICE_1830_NAME: "netconf-server"
+ entrypoint:
+ - /netconf/netconf/main.py
+ - -v
+ - --consul=consul:8500
+ - --fluentd=fluentd:24224
+ - --grpc-endpoint=voltha:50555
+ - --instance-id-is-container-name
+ networks:
+ - voltha-net
+ ports:
+ - "830:1830"
+ volumes:
+ - /var/run/docker.sock:/tmp/docker.sock
+
+ # The tools container provides a bash command shell to which
+ # an operator can SSH that has the same network connectivity
+ # as other VOLTHA containers and is thus a convenient
+ # troubleshooting tool
+ tools:
+ image: "${REGISTRY}voltha/tools:${TAG:-latest}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: 3
+ deploy:
+ mode: replicated
+ replicas: 1
+ restart_policy:
+ condition: on-failure
+ ports:
+ - "4022:22"
+ networks:
+ - voltha-net
+ - kafka-net
+
+networks:
+ consul-net:
+ driver: overlay
+ driver_opts:
+ encrypted: "true"
+ ipam:
+ driver: default
+ config:
+ - subnet: 172.29.20.0/29
+
+ voltha-net:
+ driver: overlay
+ driver_opts:
+ encrypted: "true"
+ ipam:
+ driver: default
+ config:
+ - subnet: 172.29.19.0/24
+ labels:
+ org.voltha.onos.cluster: "true"
+
+ kafka-net:
+ driver: overlay
+ driver_opts:
+ encrypted: "true"