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]