From 7dd14e002128b5e6fe5302e6f7fe8620682a7d53 Mon Sep 17 00:00:00 2001
From: Markos Chandras <mchandras@suse.de>
Date: Tue, 13 Mar 2018 10:30:16 +0000
Subject: xci: Merge configure-network and syncronize-time roles

Those roles were too small and only used as part of the host
bootstrapping process. As such, we merge them into a common
'bootstrap-host' role which can be used to prepare the hosts
after the initial deployment

Change-Id: Ifc84cf40b98ced91b31aae699dc28e9642380550
Signed-off-by: Markos Chandras <mchandras@suse.de>
---
 .../templates/debian/compute00.interface.j2        | 75 ++++++++++++++++++++++
 .../templates/debian/compute01.interface.j2        |  1 +
 .../templates/debian/controller00.interface.j2     | 74 +++++++++++++++++++++
 .../templates/debian/controller01.interface.j2     |  1 +
 .../templates/debian/controller02.interface.j2     |  1 +
 .../templates/debian/opnfv.interface.j2            | 66 +++++++++++++++++++
 .../templates/redhat/bridge.ifcfg.j2               |  9 +++
 .../templates/redhat/interface.ifcfg.j2            | 10 +++
 .../templates/suse/suse.interface.j2               | 17 +++++
 .../bootstrap-host/templates/suse/suse.routes.j2   |  1 +
 10 files changed, 255 insertions(+)
 create mode 100644 xci/playbooks/roles/bootstrap-host/templates/debian/compute00.interface.j2
 create mode 120000 xci/playbooks/roles/bootstrap-host/templates/debian/compute01.interface.j2
 create mode 100644 xci/playbooks/roles/bootstrap-host/templates/debian/controller00.interface.j2
 create mode 120000 xci/playbooks/roles/bootstrap-host/templates/debian/controller01.interface.j2
 create mode 120000 xci/playbooks/roles/bootstrap-host/templates/debian/controller02.interface.j2
 create mode 100644 xci/playbooks/roles/bootstrap-host/templates/debian/opnfv.interface.j2
 create mode 100644 xci/playbooks/roles/bootstrap-host/templates/redhat/bridge.ifcfg.j2
 create mode 100644 xci/playbooks/roles/bootstrap-host/templates/redhat/interface.ifcfg.j2
 create mode 100644 xci/playbooks/roles/bootstrap-host/templates/suse/suse.interface.j2
 create mode 100644 xci/playbooks/roles/bootstrap-host/templates/suse/suse.routes.j2

(limited to 'xci/playbooks/roles/bootstrap-host/templates')

diff --git a/xci/playbooks/roles/bootstrap-host/templates/debian/compute00.interface.j2 b/xci/playbooks/roles/bootstrap-host/templates/debian/compute00.interface.j2
new file mode 100644
index 00000000..2da12f20
--- /dev/null
+++ b/xci/playbooks/roles/bootstrap-host/templates/debian/compute00.interface.j2
@@ -0,0 +1,75 @@
+# {{ ansible_managed }}
+
+# The loopback network interface
+auto lo
+iface lo inet loopback
+
+# Physical interface
+auto {{ ansible_default_ipv4.interface }}
+iface {{ ansible_default_ipv4.interface }} inet manual
+
+# Container/Host management VLAN interface
+auto {{ ansible_default_ipv4.interface }}.10
+iface {{ ansible_default_ipv4.interface }}.10 inet manual
+    vlan-raw-device {{ ansible_default_ipv4.interface }}
+
+# OpenStack Networking VXLAN (tunnel/overlay) VLAN interface
+auto {{ ansible_default_ipv4.interface }}.30
+iface {{ ansible_default_ipv4.interface }}.30 inet manual
+    vlan-raw-device {{ ansible_default_ipv4.interface }}
+
+# Storage network VLAN interface
+auto {{ ansible_default_ipv4.interface }}.20
+iface {{ ansible_default_ipv4.interface }}.20 inet manual
+    vlan-raw-device {{ ansible_default_ipv4.interface }}
+
+# Container/Host management bridge
+auto br-mgmt
+iface br-mgmt inet static
+    bridge_stp off
+    bridge_waitport 0
+    bridge_fd 0
+    bridge_ports {{ ansible_default_ipv4.interface }}.10
+    address {{host_info[inventory_hostname].MGMT_IP}}
+    netmask 255.255.252.0
+
+# compute1 VXLAN (tunnel/overlay) bridge config
+auto br-vxlan
+iface br-vxlan inet static
+    bridge_stp off
+    bridge_waitport 0
+    bridge_fd 0
+    bridge_ports {{ ansible_default_ipv4.interface }}.30
+    address {{host_info[inventory_hostname].VXLAN_IP}}
+    netmask 255.255.252.0
+
+# OpenStack Networking VLAN bridge
+auto br-vlan
+iface br-vlan inet static
+    bridge_stp off
+    bridge_waitport 0
+    bridge_fd 0
+    bridge_ports {{ ansible_default_ipv4.interface }}
+    address {{host_info[inventory_hostname].VLAN_IP}}
+    netmask 255.255.255.0
+    gateway 192.168.122.1
+    dns-nameserver 8.8.8.8 8.8.4.4
+    offload-sg off
+    # Create veth pair, don't bomb if already exists
+    pre-up ip link add br-vlan-veth type veth peer name eth12 || true
+    # Set both ends UP
+    pre-up ip link set br-vlan-veth up
+    pre-up ip link set eth12 up
+    # Delete veth pair on DOWN
+    post-down ip link del br-vlan-veth || true
+    bridge_ports br-vlan-veth
+
+# OpenStack Storage bridge
+auto br-storage
+iface br-storage inet static
+    bridge_stp off
+    bridge_waitport 0
+    bridge_fd 0
+    bridge_ports {{ ansible_default_ipv4.interface }}.20
+    address {{host_info[inventory_hostname].STORAGE_IP}}
+    netmask 255.255.252.0
diff --git a/xci/playbooks/roles/bootstrap-host/templates/debian/compute01.interface.j2 b/xci/playbooks/roles/bootstrap-host/templates/debian/compute01.interface.j2
new file mode 120000
index 00000000..a74df1c2
--- /dev/null
+++ b/xci/playbooks/roles/bootstrap-host/templates/debian/compute01.interface.j2
@@ -0,0 +1 @@
+compute00.interface.j2
\ No newline at end of file
diff --git a/xci/playbooks/roles/bootstrap-host/templates/debian/controller00.interface.j2 b/xci/playbooks/roles/bootstrap-host/templates/debian/controller00.interface.j2
new file mode 100644
index 00000000..c540f66e
--- /dev/null
+++ b/xci/playbooks/roles/bootstrap-host/templates/debian/controller00.interface.j2
@@ -0,0 +1,74 @@
+# {{ ansible_managed }}
+
+# The loopback network interface
+auto lo
+iface lo inet loopback
+
+# Physical interface
+auto {{ ansible_default_ipv4.interface }}
+iface {{ ansible_default_ipv4.interface }} inet manual
+
+# Container/Host management VLAN interface
+auto {{ ansible_default_ipv4.interface }}.10
+iface {{ ansible_default_ipv4.interface }}.10 inet manual
+    vlan-raw-device {{ ansible_default_ipv4.interface }}
+
+# OpenStack Networking VXLAN (tunnel/overlay) VLAN interface
+auto {{ ansible_default_ipv4.interface }}.30
+iface {{ ansible_default_ipv4.interface }}.30 inet manual
+    vlan-raw-device {{ ansible_default_ipv4.interface }}
+
+# Storage network VLAN interface (optional)
+auto {{ ansible_default_ipv4.interface }}.20
+iface {{ ansible_default_ipv4.interface }}.20 inet manual
+    vlan-raw-device {{ ansible_default_ipv4.interface }}
+
+# Container/Host management bridge
+auto br-mgmt
+iface br-mgmt inet static
+    bridge_stp off
+    bridge_waitport 0
+    bridge_fd 0
+    bridge_ports {{ ansible_default_ipv4.interface }}.10
+    address {{host_info[inventory_hostname].MGMT_IP}}
+    netmask 255.255.252.0
+
+# OpenStack Networking VXLAN (tunnel/overlay) bridge
+auto br-vxlan
+iface br-vxlan inet static
+    bridge_stp off
+    bridge_waitport 0
+    bridge_fd 0
+    bridge_ports {{ ansible_default_ipv4.interface }}.30
+    address {{host_info[inventory_hostname].VXLAN_IP}}
+    netmask 255.255.252.0
+
+# OpenStack Networking VLAN bridge
+auto br-vlan
+iface br-vlan inet static
+    bridge_stp off
+    bridge_waitport 0
+    bridge_fd 0
+    bridge_ports {{ ansible_default_ipv4.interface }}
+    address {{host_info[inventory_hostname].VLAN_IP}}
+    netmask 255.255.255.0
+    gateway 192.168.122.1
+    dns-nameserver 8.8.8.8 8.8.4.4
+   # Create veth pair, don't bomb if already exists
+   pre-up ip link add br-vlan-veth type veth peer name eth12 || true
+   # Set both ends UP
+   pre-up ip link set br-vlan-veth up
+   pre-up ip link set eth12 up
+   # Delete veth pair on DOWN
+   post-down ip link del br-vlan-veth || true
+   bridge_ports br-vlan-veth
+
+# OpenStack Storage bridge
+auto br-storage
+iface br-storage inet static
+    bridge_stp off
+    bridge_waitport 0
+    bridge_fd 0
+    bridge_ports {{ ansible_default_ipv4.interface }}.20
+    address {{host_info[inventory_hostname].STORAGE_IP}}
+    netmask 255.255.252.0
diff --git a/xci/playbooks/roles/bootstrap-host/templates/debian/controller01.interface.j2 b/xci/playbooks/roles/bootstrap-host/templates/debian/controller01.interface.j2
new file mode 120000
index 00000000..e835d7ca
--- /dev/null
+++ b/xci/playbooks/roles/bootstrap-host/templates/debian/controller01.interface.j2
@@ -0,0 +1 @@
+controller00.interface.j2
\ No newline at end of file
diff --git a/xci/playbooks/roles/bootstrap-host/templates/debian/controller02.interface.j2 b/xci/playbooks/roles/bootstrap-host/templates/debian/controller02.interface.j2
new file mode 120000
index 00000000..e835d7ca
--- /dev/null
+++ b/xci/playbooks/roles/bootstrap-host/templates/debian/controller02.interface.j2
@@ -0,0 +1 @@
+controller00.interface.j2
\ No newline at end of file
diff --git a/xci/playbooks/roles/bootstrap-host/templates/debian/opnfv.interface.j2 b/xci/playbooks/roles/bootstrap-host/templates/debian/opnfv.interface.j2
new file mode 100644
index 00000000..03f81dbb
--- /dev/null
+++ b/xci/playbooks/roles/bootstrap-host/templates/debian/opnfv.interface.j2
@@ -0,0 +1,66 @@
+# {{ ansible_managed }}
+
+# The loopback network interface
+auto lo
+iface lo inet loopback
+
+# Physical interface
+auto {{ ansible_default_ipv4.interface }}
+iface {{ ansible_default_ipv4.interface }} inet manual
+
+# Container/Host management VLAN interface
+auto {{ ansible_default_ipv4.interface }}.10
+iface {{ ansible_default_ipv4.interface }}.10 inet manual
+    vlan-raw-device {{ ansible_default_ipv4.interface }}
+
+# OpenStack Networking VXLAN (tunnel/overlay) VLAN interface
+auto {{ ansible_default_ipv4.interface }}.30
+iface {{ ansible_default_ipv4.interface }}.30 inet manual
+    vlan-raw-device {{ ansible_default_ipv4.interface }}
+
+# Storage network VLAN interface (optional)
+auto {{ ansible_default_ipv4.interface }}.20
+iface {{ ansible_default_ipv4.interface }}.20 inet manual
+    vlan-raw-device {{ ansible_default_ipv4.interface }}
+
+# Container/Host management bridge
+auto br-mgmt
+iface br-mgmt inet static
+    bridge_stp off
+    bridge_waitport 0
+    bridge_fd 0
+    bridge_ports {{ ansible_default_ipv4.interface }}.10
+    address {{host_info[inventory_hostname].MGMT_IP}}
+    netmask 255.255.252.0
+
+# OpenStack Networking VXLAN (tunnel/overlay) bridge
+auto br-vxlan
+iface br-vxlan inet static
+    bridge_stp off
+    bridge_waitport 0
+    bridge_fd 0
+    bridge_ports {{ ansible_default_ipv4.interface }}.30
+    address {{ host_info[inventory_hostname].VXLAN_IP }}
+    netmask 255.255.252.0
+
+# OpenStack Networking VLAN bridge
+auto br-vlan
+iface br-vlan inet static
+    bridge_stp off
+    bridge_waitport 0
+    bridge_fd 0
+    bridge_ports {{ ansible_default_ipv4.interface }}
+    address {{host_info[inventory_hostname].VLAN_IP}}
+    netmask 255.255.255.0
+    gateway 192.168.122.1
+    dns-nameserver 8.8.8.8 8.8.4.4
+
+# OpenStack Storage bridge
+auto br-storage
+iface br-storage inet static
+    bridge_stp off
+    bridge_waitport 0
+    bridge_fd 0
+    bridge_ports {{ ansible_default_ipv4.interface }}.20
+    address {{host_info[inventory_hostname].STORAGE_IP}}
+    netmask 255.255.252.0
diff --git a/xci/playbooks/roles/bootstrap-host/templates/redhat/bridge.ifcfg.j2 b/xci/playbooks/roles/bootstrap-host/templates/redhat/bridge.ifcfg.j2
new file mode 100644
index 00000000..06b5f177
--- /dev/null
+++ b/xci/playbooks/roles/bootstrap-host/templates/redhat/bridge.ifcfg.j2
@@ -0,0 +1,9 @@
+DEVICE={{ item.name }}
+NM_CONTROLLED=no
+IPADDR={{ item.ip }}
+PREFIX={{ item.prefix }}
+ONBOOT=yes
+BOOTPROTO=none
+TYPE=Bridge
+DELAY=0
+STP=off
diff --git a/xci/playbooks/roles/bootstrap-host/templates/redhat/interface.ifcfg.j2 b/xci/playbooks/roles/bootstrap-host/templates/redhat/interface.ifcfg.j2
new file mode 100644
index 00000000..a97ad0cf
--- /dev/null
+++ b/xci/playbooks/roles/bootstrap-host/templates/redhat/interface.ifcfg.j2
@@ -0,0 +1,10 @@
+DEVICE={{ item.name }}
+NM_CONTROLLED=no
+ONBOOT=yes
+BOOTPROTO=none
+{% if item.vlan_id is defined %}
+VLAN=yes
+ETHERDEVICE={{ ansible_default_ipv4.interface }}
+VLAN_ID={{ item.vlan_id }}
+{% endif %}
+BRIDGE={{ item.bridge }}
diff --git a/xci/playbooks/roles/bootstrap-host/templates/suse/suse.interface.j2 b/xci/playbooks/roles/bootstrap-host/templates/suse/suse.interface.j2
new file mode 100644
index 00000000..27b01eb4
--- /dev/null
+++ b/xci/playbooks/roles/bootstrap-host/templates/suse/suse.interface.j2
@@ -0,0 +1,17 @@
+STARTMODE='auto'
+BOOTPROTO='static'
+{% if item.vlan_id is defined %}
+ETHERDEVICE={{ ansible_default_ipv4.interface }}
+VLAN_ID={{ item.vlan_id }}
+{% endif %}
+{% if item.bridge_ports is defined %}
+BRIDGE='yes'
+BRIDGE_FORWARDDELAY='0'
+BRIDGE_STP=off
+BRIDGE_PORTS={{ item.bridge_ports }}
+{% endif %}
+{% if item.ip is defined %}
+IPADDR={{ item.ip }}
+{% endif %}
+PRE_UP_SCRIPT="compat:suse:network-config-suse"
+POST_DOWN_SCRIPT="compat:suse:network-config-suse"
diff --git a/xci/playbooks/roles/bootstrap-host/templates/suse/suse.routes.j2 b/xci/playbooks/roles/bootstrap-host/templates/suse/suse.routes.j2
new file mode 100644
index 00000000..7c868447
--- /dev/null
+++ b/xci/playbooks/roles/bootstrap-host/templates/suse/suse.routes.j2
@@ -0,0 +1 @@
+{{ item.route }} {{ item.gateway }}
-- 
cgit 1.2.3-korg