blob: 530c7729c808d1c1c71fd16a01727654b8f308eb [file] [log] [blame]
khenaidoo2a8c6332017-10-10 15:23:49 -04001version: '2'
2services:
3 #
4 # Single-node zookeeper service
5 #
6 zookeeper:
David K. Bainbridge737b74f2018-01-22 12:57:52 -08007 image: "${REGISTRY}wurstmeister/zookeeper:latest"
khenaidoo2a8c6332017-10-10 15:23:49 -04008 ports:
9 - 2181
10 environment:
11 SERVICE_2181_NAME: "zookeeper"
12 #
13 # Single-node kafka service
14 #
15 kafka:
David K. Bainbridge737b74f2018-01-22 12:57:52 -080016 image: "${REGISTRY}wurstmeister/kafka:latest"
khenaidoo2a8c6332017-10-10 15:23:49 -040017 ports:
18 - 9092
19 environment:
20 KAFKA_ADVERTISED_HOST_NAME: ${DOCKER_HOST_IP}
21 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
22 KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
23 KAFKA_HEAP_OPTS: "-Xmx256M -Xms128M"
24 SERVICE_9092_NAME: "kafka"
25 depends_on:
Jonathan Hart87314cd2018-02-12 17:15:35 -080026 - vconsul
khenaidoo2a8c6332017-10-10 15:23:49 -040027 volumes:
28 - /var/run/docker.sock:/var/run/docker.sock
29 #
30 # Single-node consul agent
31 #
Jonathan Hart87314cd2018-02-12 17:15:35 -080032 vconsul:
David K. Bainbridge737b74f2018-01-22 12:57:52 -080033 image: "${REGISTRY}consul:0.9.2"
khenaidoo2a8c6332017-10-10 15:23:49 -040034 command: agent -server -bootstrap -client 0.0.0.0 -ui
35 ports:
36 - "8300:8300"
37 - "8400:8400"
38 - "8500:8500"
39 - "8600:8600/udp"
40 environment:
41 #SERVICE_53_IGNORE: "yes"
42 SERVICE_8300_IGNORE: "yes"
43 SERVICE_8400_IGNORE: "yes"
44 SERVICE_8500_NAME: "consul-rest"
45 #
46 # Registrator
47 #
48 registrator:
David K. Bainbridge737b74f2018-01-22 12:57:52 -080049 image: "${REGISTRY}gliderlabs/registrator:latest"
khenaidoo2a8c6332017-10-10 15:23:49 -040050 command: [
51 "-ip=${DOCKER_HOST_IP}",
52 "-retry-attempts", "100",
53 "-cleanup",
54 # "-internal",
Jonathan Hart87314cd2018-02-12 17:15:35 -080055 "consul://vconsul:8500"
khenaidoo2a8c6332017-10-10 15:23:49 -040056 ]
57 links:
Jonathan Hart87314cd2018-02-12 17:15:35 -080058 - vconsul
khenaidoo2a8c6332017-10-10 15:23:49 -040059 volumes:
60 - "/var/run/docker.sock:/tmp/docker.sock"
61
62 #
63 # Fluentd log server
64 #
65 fluentd:
David K. Bainbridge09104892018-01-24 12:27:33 -080066 image: "${REGISTRY}fluent/fluentd:v0.12.42"
khenaidoo2a8c6332017-10-10 15:23:49 -040067 ports:
68 - "24224:24224"
69 volumes:
70 - "/tmp/fluentd:/fluentd/log"
71 environment:
72 SERVICE_24224_NAME: "fluentd-intake"
73
74 #
75 # Graphite-Grafana-statsd service instance
76 # (demo place-holder for external KPI system)
77 #
78 grafana:
David K. Bainbridge737b74f2018-01-22 12:57:52 -080079 image: "${REGISTRY}${REPOSITORY}voltha-grafana${TAG}"
khenaidoo2a8c6332017-10-10 15:23:49 -040080 ports:
81 - "8883:80"
82 - "2003:2003"
83 - "2004:2004"
84 - "8126:8126"
85 - "8125:8125/udp"
86 environment:
87 SERVICE_80_NAME: "grafana-web-ui"
88 SERVICE_2003_NAME: "carbon-plain-text-intake"
89 SERVICE_2004_NAME: "carbon-pickle-intake"
90 SERVICE_8126_NAME: "statsd-tcp-intake"
91 SERVICE_8125_NAME: "statsd-udp-intake"
92 GR_SERVER_ROOT_URL: "http://localhost:80/grafana/"
93
94 #
95 # Shovel (Kafka-graphite-gateway)
96 #
97 shovel:
David K. Bainbridge737b74f2018-01-22 12:57:52 -080098 image: "${REGISTRY}${REPOSITORY}voltha-shovel${TAG}"
khenaidoo2a8c6332017-10-10 15:23:49 -040099 command: [
100 "/shovel/shovel/main.py",
101 "--kafka=@kafka",
102 "--consul=${DOCKER_HOST_IP}:8500",
103 "--topic=voltha.kpis",
104 "--host=${DOCKER_HOST_IP}"
105 ]
106 depends_on:
Jonathan Hart87314cd2018-02-12 17:15:35 -0800107 - vconsul
khenaidoo2a8c6332017-10-10 15:23:49 -0400108 - kafka
109 - grafana
110 restart: unless-stopped
111
112 #
113 # Voltha server instance(s)
114 #
115 voltha:
David K. Bainbridge737b74f2018-01-22 12:57:52 -0800116 image: "${REGISTRY}${REPOSITORY}voltha-voltha${TAG}"
khenaidoo50b286d2018-03-02 17:44:30 -0500117 logging:
118 driver: "json-file"
119 options:
120 max-size: "10m"
121 max-file: "3"
khenaidoo2a8c6332017-10-10 15:23:49 -0400122 command: [
123 "/voltha/voltha/main.py",
124 "-v",
125 "--consul=${DOCKER_HOST_IP}:8500",
khenaidoo2a8c6332017-10-10 15:23:49 -0400126 "--rest-port=8880",
127 "--grpc-port=50556",
128 "--kafka=@kafka",
129 "--instance-id-is-container-name",
130 "--interface=eth1",
131 "--backend=consul",
132 "-v"
133 ]
134 ports:
135 - 8880
136 - 50556
137 - 18880
138 depends_on:
Jonathan Hart87314cd2018-02-12 17:15:35 -0800139 - vconsul
khenaidoo2a8c6332017-10-10 15:23:49 -0400140 links:
Jonathan Hart87314cd2018-02-12 17:15:35 -0800141 - vconsul
khenaidoo2a8c6332017-10-10 15:23:49 -0400142 environment:
143 SERVICE_8880_NAME: "voltha-health"
144 SERVICE_8880_CHECK_HTTP: "/health"
145 SERVICE_8880_CHECK_INTERVAL: "5s"
146 SERVICE_8880_CHECK_TIMEOUT: "1s"
147 SERVICE_18880_NAME: "voltha-sim-rest"
148 SERVICE_HOST_IP: "${DOCKER_HOST_IP}"
149 SERVICE_50556_NAME: "vcore-grpc"
150 volumes:
151 - "/var/run/docker.sock:/tmp/docker.sock"
152 networks:
153 - default
154 - ponmgmt
155
156 envoy:
David K. Bainbridge737b74f2018-01-22 12:57:52 -0800157 image: "${REGISTRY}${REPOSITORY}voltha-envoy${TAG}"
khenaidoo2a8c6332017-10-10 15:23:49 -0400158 entrypoint:
159 - /usr/local/bin/envoyd
160 - -envoy-cfg-template
161 - "/envoy/voltha-grpc-proxy.template.json"
162 - -envoy-config
163 - "/envoy/voltha-grpc-proxy.json"
Jonathan Hart87314cd2018-02-12 17:15:35 -0800164 - -consul-svc-nme
165 - "vconsul"
166 - -kv-svc-name
167 - "vconsul"
khenaidoo2a8c6332017-10-10 15:23:49 -0400168 ports:
169 - "50555:50555"
170 - "8882:8882"
171 - "8443:8443"
172 - "8001:8001"
173 environment:
174 SERVICE_50555_NAME: "voltha-grpc"
175 volumes:
176 - "/var/run/docker.sock:/tmp/docker.sock"
177 networks:
178 - default
179 - ponmgmt
180 links:
181 - voltha:vcore
182 #
183 # Voltha cli container
184 #
David K. Bainbridgebba65ff2018-01-19 09:26:09 -0800185 cli:
David K. Bainbridge737b74f2018-01-22 12:57:52 -0800186 image: "${REGISTRY}${REPOSITORY}voltha-cli${TAG}"
khenaidoo2a8c6332017-10-10 15:23:49 -0400187 command: [
188 "/cli/cli/setup.sh",
189 "-L",
190 "-G"
191 ]
192 environment:
193 DOCKER_HOST_IP: "${DOCKER_HOST_IP}"
194 ports:
195 - "5022:22"
196 depends_on:
197 - voltha
198
199#############################################
200# Item below this line will soon be removed.#
201#############################################
202
203 #
khenaidoo2a8c6332017-10-10 15:23:49 -0400204 # ofagent server instance
205 #
206 ofagent:
David K. Bainbridge737b74f2018-01-22 12:57:52 -0800207 image: "${REGISTRY}${REPOSITORY}voltha-ofagent${TAG}"
khenaidoo50b286d2018-03-02 17:44:30 -0500208 logging:
209 driver: "json-file"
210 options:
211 max-size: "10m"
212 max-file: "3"
khenaidoo2a8c6332017-10-10 15:23:49 -0400213 command: [
214 "/ofagent/ofagent/main.py",
215 "-v",
216 "--consul=${DOCKER_HOST_IP}:8500",
khenaidoo2a8c6332017-10-10 15:23:49 -0400217 "--controller=${DOCKER_HOST_IP}:6653",
218 "--grpc-endpoint=@voltha-grpc",
219 "--instance-id-is-container-name",
220 "-v"
221 ]
222 depends_on:
Jonathan Hart87314cd2018-02-12 17:15:35 -0800223 - vconsul
khenaidoo2a8c6332017-10-10 15:23:49 -0400224 - voltha
225 links:
Jonathan Hart87314cd2018-02-12 17:15:35 -0800226 - vconsul
khenaidoo2a8c6332017-10-10 15:23:49 -0400227 volumes:
228 - "/var/run/docker.sock:/tmp/docker.sock"
229 restart: unless-stopped
230
231 #
232 # Netconf server instance(s)
233 #
234 netconf:
David K. Bainbridge737b74f2018-01-22 12:57:52 -0800235 image: "${REGISTRY}${REPOSITORY}voltha-netconf${TAG}"
khenaidoo50b286d2018-03-02 17:44:30 -0500236 logging:
237 driver: "json-file"
238 options:
239 max-size: "10m"
240 max-file: "3"
khenaidoo2a8c6332017-10-10 15:23:49 -0400241 privileged: true
242 command: [
243 "/netconf/netconf/main.py",
244 "-v",
245 "--consul=${DOCKER_HOST_IP}:8500",
khenaidoo2a8c6332017-10-10 15:23:49 -0400246 "--grpc-endpoint=@voltha-grpc",
247 "--instance-id-is-container-name",
248 "-v"
249 ]
250 ports:
251 - "830:1830"
252 depends_on:
Jonathan Hart87314cd2018-02-12 17:15:35 -0800253 - vconsul
khenaidoo2a8c6332017-10-10 15:23:49 -0400254 - voltha
255 links:
Jonathan Hart87314cd2018-02-12 17:15:35 -0800256 - vconsul
khenaidoo2a8c6332017-10-10 15:23:49 -0400257 environment:
258 SERVICE_1830_NAME: "netconf-server"
259 volumes:
260 - "/var/run/docker.sock:/tmp/docker.sock"
261
262
263
264networks:
265 default:
266 driver: bridge
267 ponmgmt:
268 driver: bridge
269 driver_opts:
270 com.docker.network.bridge.name: "ponmgmt"