CORD-2272 Enable multiple CiaB compute nodes
Change-Id: Id82ac1c95ea841cd58000410c54a86ccc7aea248
diff --git a/Makefile b/Makefile
index c836ee1..ac4e8c7 100644
--- a/Makefile
+++ b/Makefile
@@ -390,6 +390,9 @@
$(SSH_HEAD) "cd /opt/cord/build; $(ANSIBLE_PB_LOCAL) ansible/maas-provision.yml --extra-vars='maas_user=maas vagrant_name=cord_compute$*'" $(LOGCMD)
touch $@
+compute1-up: | $(M)/compute1-up
+compute2-up: | $(M)/compute2-up
+compute3-up: | $(M)/compute3-up
# Fabric targets
fabric-refresh: | $(M)/setup-automation
diff --git a/ansible/roles/ciab-ovs/defaults/main.yml b/ansible/roles/ciab-ovs/defaults/main.yml
index 38c9652..26a04dc 100644
--- a/ansible/roles/ciab-ovs/defaults/main.yml
+++ b/ansible/roles/ciab-ovs/defaults/main.yml
@@ -14,18 +14,18 @@
ovs_bridges:
- leaf1
-# - leaf2
+ - leaf2
- spine1
# - spine2
ovs_patch_ports:
- { bridge: leaf1, port: leaf1-spine1, peer: spine1-leaf1 }
-# - { bridge: leaf2, port: leaf2-spine1, peer: spine1-leaf2 }
+ - { bridge: leaf2, port: leaf2-spine1, peer: spine1-leaf2 }
# - { bridge: leaf1, port: leaf1-spine2, peer: spine2-leaf1 }
# - { bridge: leaf2, port: leaf2-spine2, peer: spine2-leaf2 }
- { bridge: spine1, port: spine1-leaf1, peer: leaf1-spine1 }
# - { bridge: spine2, port: spine2-leaf1, peer: leaf1-spine2 }
-# - { bridge: spine1, port: spine1-leaf2, peer: leaf2-spine1 }
+ - { bridge: spine1, port: spine1-leaf2, peer: leaf2-spine1 }
# - { bridge: spine2, port: spine2-leaf2, peer: leaf2-spine2 }
enable_fabric: False
diff --git a/ansible/roles/ciab-ovs/tasks/main.yml b/ansible/roles/ciab-ovs/tasks/main.yml
index d5bb41a..d10a61c 100644
--- a/ansible/roles/ciab-ovs/tasks/main.yml
+++ b/ansible/roles/ciab-ovs/tasks/main.yml
@@ -56,12 +56,19 @@
set: "Interface {{ item.port }} type=patch"
with_items: "{{ ovs_patch_ports }}"
+# This returns OK but doesn't actually set up the peer
+#- name: Create peers
+# openvswitch_port:
+# bridge: "{{ item.bridge }}"
+# port: "{{ item.port }}"
+# set: "Interface {{ item.port }} options:peer={{ item.peer }}"
+# with_items: "{{ ovs_patch_ports }}"
+
- name: Create peers
- openvswitch_port:
- bridge: "{{ item.bridge }}"
- port: "{{ item.port }}"
- set: "Interface {{ item.port }} options:peer={{ item.peer }}"
+ command: ovs-vsctl set interface {{ item.port }} options:peer={{ item.peer }}
with_items: "{{ ovs_patch_ports }}"
+ tags:
+ - skip_ansible_lint # running a sub job
# "set" argument to openvswitch_bridge wasn't working...
- name: Set bridges to OpenFlow 1.3
diff --git a/docs/install_virtual.md b/docs/install_virtual.md
index 69e6994..e7d32da 100644
--- a/docs/install_virtual.md
+++ b/docs/install_virtual.md
@@ -94,6 +94,20 @@
The `make -j4 build` step takes a *long time* (at least 1 hour) to run. Be
patient - if it hasn't completely failed yet, then assume all is well!
+### (Optional) Bring up more virtual compute nodes
+
+The build brings up a single virtual compute node by default. If your system
+has enough resources, you can bring up two more virtual nodes as follows:
+
+```shell
+cd ~/cord/build
+make compute2-up
+make compute3-up
+```
+
+Note that, due to a limitation in CiaB, compute nodes need to be brought up
+sequentially as shown above.
+
### (Optional) Run End-to-End (E2E) tests
If the build completed without errors, you can use the following command to run