Large update which includes the following
- The introduction of a tools container which can be expanded as
  necessary. It connects to voltha and kafka networks
- The introduction of the envoy proxy container
- The addition of an option to the CreateInstaller.sh script to rebuild
  the voltha VM to pick up any new code changes
- A fix to work around a dpkg issue where it didn't handle depnedencies
  propoerly
- Addition of start and stop scripts for the voltha suite and the use of
  those scripts by the installer. The old per service start eliminated
  from the installer
- Increased the number of vCPUs used by the installer and the voltha VM
  to speed up installer creation.
Note the envoy proxy has not been integrated into the voltha suite yet,
this commit adds the container and some preliminary configuration but
integration of the proxy will be committed in a subsequent update.

Addressed comments from the reviewers

Change-Id: I5475f110ba955631baf05b0e34aa6a934ca69a24
diff --git a/install/ansible/roles/cluster-host/tasks/main.yml b/install/ansible/roles/cluster-host/tasks/main.yml
index 8035072..e3115ef 100644
--- a/install/ansible/roles/cluster-host/tasks/main.yml
+++ b/install/ansible/roles/cluster-host/tasks/main.yml
@@ -77,6 +77,14 @@
     links: yes
   tags: [cluster_host]
 
+- name: pre-emptive strike to avoid errors during package installation
+  apt:
+    name: "{{ item }}"
+    state: absent
+  with_items:
+    - ubuntu-core-launcher
+    - snapd
+  tags: [cluster_host]
 
 - name: Dependent software is installed (this can take about 10 Min, DONT'T PANIC, go for coffee instead)
   command: dpkg -R -i "{{ target_voltha_home }}/deb_files"
diff --git a/install/ansible/roles/installer/tasks/main.yml b/install/ansible/roles/installer/tasks/main.yml
index dc6bbcf..b5b7afa 100644
--- a/install/ansible/roles/installer/tasks/main.yml
+++ b/install/ansible/roles/installer/tasks/main.yml
@@ -33,9 +33,12 @@
   with_items:
     - install/installer.sh
     - install/install.cfg
+    - install/voltha-swarm-start.sh
+    - install/voltha-swarm-stop.sh
     - install/ansible
     - compose
     - nginx_config
+    - envoy
   tags: [installer]
 
 - name: Determine if test mode is active
@@ -85,6 +88,7 @@
     - deb_files
     - docker-py
     - netifaces
+    - envoy
   tags: [installer]
 - name: Installer files are owned by vinstall
   file:
@@ -95,5 +99,7 @@
   with_items:
     - installer.sh
     - install.cfg
+    - voltha-swarm-start.sh
+    - voltha-swarm-stop.sh
     - docker-compose-Linux-x86_64
   tags: [installer]
diff --git a/install/ansible/roles/voltha/files/consul_config/base_config.json b/install/ansible/roles/voltha/files/consul_config/base_config.json
deleted file mode 100644
index 217fc09..0000000
--- a/install/ansible/roles/voltha/files/consul_config/base_config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-	"server": true,
-	"ui": true, 
-	"bootstrap_expect": 3,
-	"client_addr": "0.0.0.0",
-	"disable_update_check": true,
-	"retry_join": ["10.10.10.3", "10.10.10.4", "10.10.10.5"]
-}
-
diff --git a/install/ansible/roles/voltha/tasks/main.yml b/install/ansible/roles/voltha/tasks/main.yml
index 2fa5ccd..5633b76 100644
--- a/install/ansible/roles/voltha/tasks/main.yml
+++ b/install/ansible/roles/voltha/tasks/main.yml
@@ -31,7 +31,7 @@
   when: target == "cluster"
   tags: [voltha]
 
-- name: Installer files and directories are copied
+- name: Configuration files and directories are copied
   synchronize:
     src: "/home/vinstall/{{ item }}"
     dest: "{{ target_voltha_dir }}"
@@ -43,12 +43,15 @@
   with_items:
     - compose
     - nginx_config
+    - envoy
+    - voltha-swarm-start.sh
+    - voltha-swarm-stop.sh
   when: target == "cluster"
   tags: [voltha]
 
-- name: Installer directories are owned by voltha
+- name: Configuration directories are owned by voltha
   file:
-    path: /home/vinstall/{{ item }}
+    path: "{{ target_voltha_dir }}/{{ item }}"
     owner: voltha
     group: voltha
     recurse: yes
@@ -56,6 +59,20 @@
   with_items:
     - compose
     - nginx_config
+    - envoy
+  when: target == "cluster"
+  tags: [voltha]
+
+- name: Script files are owned by voltha and executable
+  file:
+    path: "{{ target_voltha_dir }}/{{ item }}"
+    owner: voltha
+    group: voltha
+    mode: 0755
+    follow: no
+  with_items:
+    - voltha-swarm-start.sh
+    - voltha-swarm-stop.sh
   when: target == "cluster"
   tags: [voltha]
 
@@ -66,12 +83,14 @@
   when: target == "cluster"
   tags: [voltha]
 
-- name: Configuration files are on the cluster host
-  copy:
-    src: "files/consul_config"
-    dest: "{{ target_voltha_dir }}"
-  when: target == "cluster"
-  tags: [voltha]
+#- name: Configuration files are on the cluster host
+#  copy:
+#    src: "files/consul_config"
+#    dest: "{{ target_voltha_dir }}"
+#    owner: voltha
+#    group: voltha
+#  when: target == "cluster"
+#  tags: [voltha]
 
 - name: Docker containers for Voltha are pulled
   command: docker pull {{ docker_registry }}/{{ item }}
@@ -124,31 +143,22 @@
   with_items: "{{ voltha_containers }}"
   when: target == "installer"
   tags: [voltha]
+
 - name: Docker containers for Voltha are pushed
   command: docker push {{ docker_push_registry }}/{{ item }}
   with_items: "{{ voltha_containers }}"
   when: target == "installer"
   tags: [voltha]
+
 - name: Temporary registry push tags are removed
   command: docker rmi {{ docker_push_registry }}/{{ item }}
   with_items: "{{ voltha_containers }}"
   when: target == "installer"
   tags: [voltha]
 
-- name: voltha overlay network exists
-  command: docker network create --opt encrypted=true --driver overlay --subnet 10.10.12.0/24 voltha_net
+- name: voltha components are started
+  command: "{{ target_voltha_dir }}/voltha-swarm-start.sh"
   become: voltha
   when: target == "startup"
   tags: [voltha]
 
-- name: consul cluster is running
-  command: docker stack deploy -c {{ target_voltha_dir }}/compose/docker-compose-consul-cluster.yml consul
-  become: voltha
-  when: target == "startup"
-  tags: [voltha]
-
-- name: kafka is running
-  command: docker stack deploy -c {{ target_voltha_dir}}/compose/docker-compose-kafka-cluster.yml kafka
-  become: voltha
-  when: target == "startup"
-  tags: [voltha]