VOL-386 This stages the startup of the fluentd aggregators before the
startup of the fluentd collectors to fix the issue where one or both
collectors would exit immediately on startup because they could not
reach the aggregators.

Change-Id: I8921aa1b5377d4bb37025a0fefe45268dbcd131b
diff --git a/compose/docker-compose-fluentd-agg-cluster.yml b/compose/docker-compose-fluentd-agg-cluster.yml
new file mode 100644
index 0000000..1e74e79
--- /dev/null
+++ b/compose/docker-compose-fluentd-agg-cluster.yml
@@ -0,0 +1,45 @@
+version: "3"
+services:
+
+#
+# Deploying a Fluentd cluster using this file assumes that overlay network 'voltha_net'
+# has already been created. To deploy the fluentd cluster, issue the command:
+#
+#     docker stack deploy -c docker-compose-fluentd-cluster.yml fluentd
+#
+# This spins up two Fluentd Forwarders and one each Fluentd Aggregator-Active, Fluentd Aggregator-Standby.
+# The forwards listens for voltha components logs on port 23224 and sends them towards Fluentd Aggregator. 
+# Fluentd Aggregator writes them to their host mounted disk
+#
+
+  fluentdactv:
+    image: fluent/fluentd
+    deploy:
+      replicas: 1
+      restart_policy:
+        condition: on-failure
+    networks:
+      - voltha-net
+    ports:
+      - "24224"
+    volumes:
+      - "/var/log/voltha:/fluentd/log"
+
+  fluentdstby:
+    image: fluent/fluentd
+    deploy:
+      replicas: 1
+      restart_policy:
+        condition: on-failure
+    networks:
+      - voltha-net
+    ports:
+      - "24224"
+    volumes:
+      - "/var/log/voltha:/fluentd/log"
+
+networks:
+  voltha-net:
+    external:
+      name: voltha_net
+
diff --git a/compose/docker-compose-fluentd-cluster.yml b/compose/docker-compose-fluentd-cluster.yml
index 5e46f54..257dbd4 100644
--- a/compose/docker-compose-fluentd-cluster.yml
+++ b/compose/docker-compose-fluentd-cluster.yml
@@ -12,32 +12,6 @@
 # Fluentd Aggregator writes them to their host mounted disk
 #
 
-  fluentdactv:
-    image: fluent/fluentd
-    deploy:
-      replicas: 1
-      restart_policy:
-        condition: on-failure
-    networks:
-      - voltha-net
-    ports:
-      - "24224"
-    volumes:
-      - "/var/log/voltha:/fluentd/log"
-
-  fluentdstby:
-    image: fluent/fluentd
-    deploy:
-      replicas: 1
-      restart_policy:
-        condition: on-failure
-    networks:
-      - voltha-net
-    ports:
-      - "24224"
-    volumes:
-      - "/var/log/voltha:/fluentd/log"
-
   fluentd:
     image: cord/fluentd
     deploy:
diff --git a/install/voltha-swarm-start.sh b/install/voltha-swarm-start.sh
index 4b40887..ee9cc49 100755
--- a/install/voltha-swarm-start.sh
+++ b/install/voltha-swarm-start.sh
@@ -34,12 +34,14 @@
 done
 
 
+docker stack deploy -c ${voltha_base_dir}/compose/docker-compose-fluentd-agg-cluster.yml fluentd
+sleep 2
+docker stack deploy -c ${voltha_base_dir}/compose/docker-compose-fluentd-cluster.yml fluentd
 docker stack deploy -c ${voltha_base_dir}/compose/docker-compose-voltha-swarm.yml vcore
 docker stack deploy -c ${voltha_base_dir}/compose/docker-compose-ofagent-swarm.yml ofagent
 docker stack deploy -c ${voltha_base_dir}/compose/docker-compose-envoy-swarm.yml voltha
 docker stack deploy -c ${voltha_base_dir}/compose/docker-compose-vcli.yml cli
 docker stack deploy -c ${voltha_base_dir}/compose/docker-compose-chameleon-swarm.yml chameleon
 docker stack deploy -c ${voltha_base_dir}/compose/docker-compose-netconf-swarm.yml netconf
-docker stack deploy -c ${voltha_base_dir}/compose/docker-compose-fluentd-cluster.yml fluentd
 docker service create -d --name tools --network voltha_net  --network kafka_net --publish "4022:22" voltha/tools