Merge "Change cluster public key for SI team templates PRODX-00000"
diff --git a/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp0-gtw0.yaml b/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp0-gtw0.yaml
index 15821c5..77dc495 100644
--- a/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp0-gtw0.yaml
+++ b/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp0-gtw0.yaml
@@ -30,6 +30,8 @@
   worker_metadata: {"labels": {"openstack-control-plane":"enabled","openstack-compute-node":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
   cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
   gtw_metadata: {"labels": {"openvswitch":"enabled"}}
+  tunnel_interface: 'enp3s0f0'
+  live_migration_interface: 'enp3s0f0'
   functions_override: |
     function network_config {
         PUBLIC_NODE_IP_ADDRESS=${PUBLIC_INTERFACE_IP:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")}
@@ -39,7 +41,7 @@
         local match_ip_line
         local public_if_mac
 
-        DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils atop
+        DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils
 
     cat << EOF > /etc/systemd/network/10-veth-phy-br.netdev
     [NetDev]
@@ -64,4 +66,7 @@
     EOF
 
         netplan --debug apply
+
+        # NOTE(vsaienko): give some time to apply changes
+        sleep 15
     }
diff --git a/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp2-gtw0.yaml b/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp2-gtw0.yaml
index 2694479..997a097 100644
--- a/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp2-gtw0.yaml
+++ b/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp2-gtw0.yaml
@@ -27,9 +27,11 @@
   private_floating_network_pool_end: '172.16.49.190'
   private_floating_network_gateway: '172.16.49.129'
   private_floating_interface: 'enp3s0f1.403'
-  worker_metadata: {"labels": {"openstack-control-plane":"enabled","openstack-compute-node":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
+  worker_metadata: {"labels": {"openstack-control-plane":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
   cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
   gtw_metadata: {"labels": {"openvswitch":"enabled"}}
+  tunnel_interface: 'enp3s0f0'
+  live_migration_interface: 'enp3s0f0'
   functions_override: |
     function network_config {
         PUBLIC_NODE_IP_ADDRESS=${PUBLIC_INTERFACE_IP:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")}
@@ -39,7 +41,7 @@
         local match_ip_line
         local public_if_mac
 
-        DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils atop
+        DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils
 
     cat << EOF > /etc/systemd/network/10-veth-phy-br.netdev
     [NetDev]
@@ -64,4 +66,7 @@
     EOF
 
         netplan --debug apply
+
+        # NOTE(vsaienko): give some time to apply changes
+        sleep 15
     }
diff --git a/de/heat-templates/env/compute.yaml b/de/heat-templates/env/compute.yaml
index 118bd61..f3008e1 100644
--- a/de/heat-templates/env/compute.yaml
+++ b/de/heat-templates/env/compute.yaml
@@ -17,44 +17,6 @@
   cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
   private_floating_network_cidr: '10.11.12.0/24'
   private_floating_interface: 'ens4'
-  worker_metadata: {"labels": {"openstack-control-plane":"enabled","openstack-compute-node":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
+  worker_metadata: {"labels": {"openstack-control-plane":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
   cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
   gtw_metadata: {"labels": {"openvswitch":"enabled"}}
-  functions_override: |
-    function network_config {
-        PUBLIC_NODE_IP_ADDRESS=${PUBLIC_INTERFACE_IP:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")}
-        PUBLIC_NODE_IP_NETMASK=${PUBLIC_INTERFACE_NETMASK:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+\/[\d]+' | egrep -v "127.0.|172.17" | cut -d'/' -f2)}
-
-        local public_interface=${1:-${PUBLIC_INTERFACE}}
-        local cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
-        local match_ip_line
-
-        DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils atop
-
-    cat << EOF > /etc/systemd/network/10-veth-phy-br.netdev
-    [NetDev]
-    Name=veth-phy
-    Kind=veth
-    [Peer]
-    Name=veth-br
-    EOF
-
-        sed -i 's/.*ethernets:.*/&\n        veth-phy: {}/' ${cloud_netplan_cfg}
-        sed -i 's/.*ethernets:.*/&\n        veth-br: {}/' ${cloud_netplan_cfg}
-
-        match_ip_line=$(grep -nm1 "${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}" ${cloud_netplan_cfg} | cut -d: -f1)
-
-        sed -i "$((${match_ip_line}-1)),$((${match_ip_line}))d" ${cloud_netplan_cfg}
-
-    cat << EOF >> ${cloud_netplan_cfg}
-        bridges:
-            br-public:
-                dhcp4: false
-                interfaces:
-                - ${PUBLIC_INTERFACE}
-                - veth-br
-                addresses:
-                - ${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}
-    EOF
-        netplan --debug apply
-    }
diff --git a/de/heat-templates/env/converged.yaml b/de/heat-templates/env/converged.yaml
index 41b9a4f..fa9298c 100644
--- a/de/heat-templates/env/converged.yaml
+++ b/de/heat-templates/env/converged.yaml
@@ -20,41 +20,3 @@
   worker_metadata: {"labels": {"openstack-control-plane":"enabled","openstack-compute-node":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
   cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
   gtw_metadata: {"labels": {"openvswitch":"enabled"}}
-  functions_override: |
-    function network_config {
-        PUBLIC_NODE_IP_ADDRESS=${PUBLIC_INTERFACE_IP:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")}
-        PUBLIC_NODE_IP_NETMASK=${PUBLIC_INTERFACE_NETMASK:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+\/[\d]+' | egrep -v "127.0.|172.17" | cut -d'/' -f2)}
-
-        local public_interface=${1:-${PUBLIC_INTERFACE}}
-        local cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
-        local match_ip_line
-
-        DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils atop
-
-    cat << EOF > /etc/systemd/network/10-veth-phy-br.netdev
-    [NetDev]
-    Name=veth-phy
-    Kind=veth
-    [Peer]
-    Name=veth-br
-    EOF
-
-        sed -i 's/.*ethernets:.*/&\n        veth-phy: {}/' ${cloud_netplan_cfg}
-        sed -i 's/.*ethernets:.*/&\n        veth-br: {}/' ${cloud_netplan_cfg}
-
-        match_ip_line=$(grep -nm1 "${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}" ${cloud_netplan_cfg} | cut -d: -f1)
-
-        sed -i "$((${match_ip_line}-1)),$((${match_ip_line}))d" ${cloud_netplan_cfg}
-
-    cat << EOF >> ${cloud_netplan_cfg}
-        bridges:
-            br-public:
-                dhcp4: false
-                interfaces:
-                - ${PUBLIC_INTERFACE}
-                - veth-br
-                addresses:
-                - ${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}
-    EOF
-        netplan --debug apply
-    }
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0.yaml
index 8841a20..80690c6 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0.yaml
@@ -20,41 +20,3 @@
   worker_metadata: {"labels": {"openstack-control-plane":"enabled","openstack-compute-node":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
   cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
   gtw_metadata: {"labels": {"openvswitch":"enabled"}}
-  functions_override: |
-    function network_config {
-        PUBLIC_NODE_IP_ADDRESS=${PUBLIC_INTERFACE_IP:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")}
-        PUBLIC_NODE_IP_NETMASK=${PUBLIC_INTERFACE_NETMASK:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+\/[\d]+' | egrep -v "127.0.|172.17" | cut -d'/' -f2)}
-
-        local public_interface=${1:-${PUBLIC_INTERFACE}}
-        local cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
-        local match_ip_line
-
-        DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils atop
-
-    cat << EOF > /etc/systemd/network/10-veth-phy-br.netdev
-    [NetDev]
-    Name=veth-phy
-    Kind=veth
-    [Peer]
-    Name=veth-br
-    EOF
-
-        sed -i 's/.*ethernets:.*/&\n        veth-phy: {}/' ${cloud_netplan_cfg}
-        sed -i 's/.*ethernets:.*/&\n        veth-br: {}/' ${cloud_netplan_cfg}
-
-        match_ip_line=$(grep -nm1 "${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}" ${cloud_netplan_cfg} | cut -d: -f1)
-
-        sed -i "$((${match_ip_line}-1)),$((${match_ip_line}))d" ${cloud_netplan_cfg}
-
-    cat << EOF >> ${cloud_netplan_cfg}
-        bridges:
-            br-public:
-                dhcp4: false
-                interfaces:
-                - ${PUBLIC_INTERFACE}
-                - veth-br
-                addresses:
-                - ${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}
-    EOF
-        netplan --debug apply
-    }
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0.yaml
index 4c9e163..542a5cd 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0.yaml
@@ -17,44 +17,6 @@
   cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
   private_floating_network_cidr: '10.11.12.0/24'
   private_floating_interface: 'ens4'
-  worker_metadata: {"labels": {"openstack-control-plane":"enabled","openstack-compute-node":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
+  worker_metadata: {"labels": {"openstack-control-plane":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
   cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
   gtw_metadata: {"labels": {"openvswitch":"enabled"}}
-  functions_override: |
-    function network_config {
-        PUBLIC_NODE_IP_ADDRESS=${PUBLIC_INTERFACE_IP:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")}
-        PUBLIC_NODE_IP_NETMASK=${PUBLIC_INTERFACE_NETMASK:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+\/[\d]+' | egrep -v "127.0.|172.17" | cut -d'/' -f2)}
-
-        local public_interface=${1:-${PUBLIC_INTERFACE}}
-        local cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
-        local match_ip_line
-
-        DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils atop
-
-    cat << EOF > /etc/systemd/network/10-veth-phy-br.netdev
-    [NetDev]
-    Name=veth-phy
-    Kind=veth
-    [Peer]
-    Name=veth-br
-    EOF
-
-        sed -i 's/.*ethernets:.*/&\n        veth-phy: {}/' ${cloud_netplan_cfg}
-        sed -i 's/.*ethernets:.*/&\n        veth-br: {}/' ${cloud_netplan_cfg}
-
-        match_ip_line=$(grep -nm1 "${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}" ${cloud_netplan_cfg} | cut -d: -f1)
-
-        sed -i "$((${match_ip_line}-1)),$((${match_ip_line}))d" ${cloud_netplan_cfg}
-
-    cat << EOF >> ${cloud_netplan_cfg}
-        bridges:
-            br-public:
-                dhcp4: false
-                interfaces:
-                - ${PUBLIC_INTERFACE}
-                - veth-br
-                addresses:
-                - ${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}
-    EOF
-        netplan --debug apply
-    }
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp3-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp3-gtw0.yaml
index c871f91..8952627 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp3-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp3-gtw0.yaml
@@ -17,44 +17,6 @@
   cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
   private_floating_network_cidr: '10.11.12.0/24'
   private_floating_interface: 'ens4'
-  worker_metadata: {"labels": {"openstack-control-plane":"enabled","openstack-compute-node":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
+  worker_metadata: {"labels": {"openstack-control-plane":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
   cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
   gtw_metadata: {"labels": {"openvswitch":"enabled"}}
-  functions_override: |
-    function network_config {
-        PUBLIC_NODE_IP_ADDRESS=${PUBLIC_INTERFACE_IP:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")}
-        PUBLIC_NODE_IP_NETMASK=${PUBLIC_INTERFACE_NETMASK:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+\/[\d]+' | egrep -v "127.0.|172.17" | cut -d'/' -f2)}
-
-        local public_interface=${1:-${PUBLIC_INTERFACE}}
-        local cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
-        local match_ip_line
-
-        DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils atop
-
-    cat << EOF > /etc/systemd/network/10-veth-phy-br.netdev
-    [NetDev]
-    Name=veth-phy
-    Kind=veth
-    [Peer]
-    Name=veth-br
-    EOF
-
-        sed -i 's/.*ethernets:.*/&\n        veth-phy: {}/' ${cloud_netplan_cfg}
-        sed -i 's/.*ethernets:.*/&\n        veth-br: {}/' ${cloud_netplan_cfg}
-
-        match_ip_line=$(grep -nm1 "${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}" ${cloud_netplan_cfg} | cut -d: -f1)
-
-        sed -i "$((${match_ip_line}-1)),$((${match_ip_line}))d" ${cloud_netplan_cfg}
-
-    cat << EOF >> ${cloud_netplan_cfg}
-        bridges:
-            br-public:
-                dhcp4: false
-                interfaces:
-                - ${PUBLIC_INTERFACE}
-                - veth-br
-                addresses:
-                - ${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}
-    EOF
-        netplan --debug apply
-    }
diff --git a/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0.yaml
index 5efde2b..44ac2b2 100644
--- a/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0.yaml
@@ -20,41 +20,3 @@
   worker_metadata: {"labels": {"openstack-control-plane":"enabled","openstack-compute-node":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
   cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
   gtw_metadata: {"labels": {"openvswitch":"enabled"}}
-  functions_override: |
-    function network_config {
-        PUBLIC_NODE_IP_ADDRESS=${PUBLIC_INTERFACE_IP:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")}
-        PUBLIC_NODE_IP_NETMASK=${PUBLIC_INTERFACE_NETMASK:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+\/[\d]+' | egrep -v "127.0.|172.17" | cut -d'/' -f2)}
-
-        local public_interface=${1:-${PUBLIC_INTERFACE}}
-        local cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
-        local match_ip_line
-
-        DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils atop
-
-    cat << EOF > /etc/systemd/network/10-veth-phy-br.netdev
-    [NetDev]
-    Name=veth-phy
-    Kind=veth
-    [Peer]
-    Name=veth-br
-    EOF
-
-        sed -i 's/.*ethernets:.*/&\n        veth-phy: {}/' ${cloud_netplan_cfg}
-        sed -i 's/.*ethernets:.*/&\n        veth-br: {}/' ${cloud_netplan_cfg}
-
-        match_ip_line=$(grep -nm1 "${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}" ${cloud_netplan_cfg} | cut -d: -f1)
-
-        sed -i "$((${match_ip_line}-1)),$((${match_ip_line}))d" ${cloud_netplan_cfg}
-
-    cat << EOF >> ${cloud_netplan_cfg}
-        bridges:
-            br-public:
-                dhcp4: false
-                interfaces:
-                - ${PUBLIC_INTERFACE}
-                - veth-br
-                addresses:
-                - ${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}
-    EOF
-        netplan --debug apply
-    }
diff --git a/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0.yaml
index 4c9e163..542a5cd 100644
--- a/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0.yaml
@@ -17,44 +17,6 @@
   cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
   private_floating_network_cidr: '10.11.12.0/24'
   private_floating_interface: 'ens4'
-  worker_metadata: {"labels": {"openstack-control-plane":"enabled","openstack-compute-node":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
+  worker_metadata: {"labels": {"openstack-control-plane":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
   cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
   gtw_metadata: {"labels": {"openvswitch":"enabled"}}
-  functions_override: |
-    function network_config {
-        PUBLIC_NODE_IP_ADDRESS=${PUBLIC_INTERFACE_IP:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")}
-        PUBLIC_NODE_IP_NETMASK=${PUBLIC_INTERFACE_NETMASK:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+\/[\d]+' | egrep -v "127.0.|172.17" | cut -d'/' -f2)}
-
-        local public_interface=${1:-${PUBLIC_INTERFACE}}
-        local cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
-        local match_ip_line
-
-        DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils atop
-
-    cat << EOF > /etc/systemd/network/10-veth-phy-br.netdev
-    [NetDev]
-    Name=veth-phy
-    Kind=veth
-    [Peer]
-    Name=veth-br
-    EOF
-
-        sed -i 's/.*ethernets:.*/&\n        veth-phy: {}/' ${cloud_netplan_cfg}
-        sed -i 's/.*ethernets:.*/&\n        veth-br: {}/' ${cloud_netplan_cfg}
-
-        match_ip_line=$(grep -nm1 "${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}" ${cloud_netplan_cfg} | cut -d: -f1)
-
-        sed -i "$((${match_ip_line}-1)),$((${match_ip_line}))d" ${cloud_netplan_cfg}
-
-    cat << EOF >> ${cloud_netplan_cfg}
-        bridges:
-            br-public:
-                dhcp4: false
-                interfaces:
-                - ${PUBLIC_INTERFACE}
-                - veth-br
-                addresses:
-                - ${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}
-    EOF
-        netplan --debug apply
-    }
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3-osd3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3-osd3.yaml
index 01cee25..75b6068 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3-osd3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3-osd3.yaml
@@ -29,41 +29,3 @@
   gtw_metadata: {"labels": {"openvswitch":"enabled", "gateway": "enabled"}}
   lma_metadata: {"labels": {"role": "stacklight", "stacklight": "enabled"}}
   osd_metadata: {"labels": {"role": "ceph-osd-node"}}
-  functions_override: |
-    function network_config {
-        PUBLIC_NODE_IP_ADDRESS=${PUBLIC_INTERFACE_IP:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")}
-        PUBLIC_NODE_IP_NETMASK=${PUBLIC_INTERFACE_NETMASK:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+\/[\d]+' | egrep -v "127.0.|172.17" | cut -d'/' -f2)}
-
-        local public_interface=${1:-${PUBLIC_INTERFACE}}
-        local cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
-        local match_ip_line
-
-        DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils atop
-
-    cat << EOF > /etc/systemd/network/10-veth-phy-br.netdev
-    [NetDev]
-    Name=veth-phy
-    Kind=veth
-    [Peer]
-    Name=veth-br
-    EOF
-
-        sed -i 's/.*ethernets:.*/&\n        veth-phy: {}/' ${cloud_netplan_cfg}
-        sed -i 's/.*ethernets:.*/&\n        veth-br: {}/' ${cloud_netplan_cfg}
-
-        match_ip_line=$(grep -nm1 "${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}" ${cloud_netplan_cfg} | cut -d: -f1)
-
-        sed -i "$((${match_ip_line}-1)),$((${match_ip_line}))d" ${cloud_netplan_cfg}
-
-    cat << EOF >> ${cloud_netplan_cfg}
-        bridges:
-            br-public:
-                dhcp4: false
-                interfaces:
-                - ${PUBLIC_INTERFACE}
-                - veth-br
-                addresses:
-                - ${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}
-    EOF
-        netplan --debug apply
-    }
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3.yaml
index a3bb610..32df863 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3.yaml
@@ -21,41 +21,3 @@
   cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
   gtw_metadata: {"labels": {"openvswitch":"enabled", "gateway": "enabled"}}
   lma_metadata: {"labels": {"role": "stacklight", "stacklight": "enabled"}}
-  functions_override: |
-    function network_config {
-        PUBLIC_NODE_IP_ADDRESS=${PUBLIC_INTERFACE_IP:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")}
-        PUBLIC_NODE_IP_NETMASK=${PUBLIC_INTERFACE_NETMASK:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+\/[\d]+' | egrep -v "127.0.|172.17" | cut -d'/' -f2)}
-
-        local public_interface=${1:-${PUBLIC_INTERFACE}}
-        local cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
-        local match_ip_line
-
-        DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils atop
-
-    cat << EOF > /etc/systemd/network/10-veth-phy-br.netdev
-    [NetDev]
-    Name=veth-phy
-    Kind=veth
-    [Peer]
-    Name=veth-br
-    EOF
-
-        sed -i 's/.*ethernets:.*/&\n        veth-phy: {}/' ${cloud_netplan_cfg}
-        sed -i 's/.*ethernets:.*/&\n        veth-br: {}/' ${cloud_netplan_cfg}
-
-        match_ip_line=$(grep -nm1 "${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}" ${cloud_netplan_cfg} | cut -d: -f1)
-
-        sed -i "$((${match_ip_line}-1)),$((${match_ip_line}))d" ${cloud_netplan_cfg}
-
-    cat << EOF >> ${cloud_netplan_cfg}
-        bridges:
-            br-public:
-                dhcp4: false
-                interfaces:
-                - ${PUBLIC_INTERFACE}
-                - veth-br
-                addresses:
-                - ${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}
-    EOF
-        netplan --debug apply
-    }
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-lma3-osd3-ntw3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-lma3-osd3-ntw3.yaml
index c2fcb66..804dc06 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-lma3-osd3-ntw3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-lma3-osd3-ntw3.yaml
@@ -29,41 +29,3 @@
   lma_metadata: {"labels": {"role": "stacklight", "stacklight": "enabled"}}
   osd_metadata: {"labels": {"role": "ceph-osd-node"}}
   ntw_metadata: {"labels": {"tfanalytics": "enabled", "tfconfig": "enabled", "tfcontrol": "enabled", "tfwebui": "enabled", "tfconfigdb": "enabled", "tfanalyticsdb": "enabled"}}
-  functions_override: |
-    function network_config {
-        PUBLIC_NODE_IP_ADDRESS=${PUBLIC_INTERFACE_IP:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")}
-        PUBLIC_NODE_IP_NETMASK=${PUBLIC_INTERFACE_NETMASK:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+\/[\d]+' | egrep -v "127.0.|172.17" | cut -d'/' -f2)}
-
-        local public_interface=${1:-${PUBLIC_INTERFACE}}
-        local cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
-        local match_ip_line
-
-        DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils atop
-
-    cat << EOF > /etc/systemd/network/10-veth-phy-br.netdev
-    [NetDev]
-    Name=veth-phy
-    Kind=veth
-    [Peer]
-    Name=veth-br
-    EOF
-
-        sed -i 's/.*ethernets:.*/&\n        veth-phy: {}/' ${cloud_netplan_cfg}
-        sed -i 's/.*ethernets:.*/&\n        veth-br: {}/' ${cloud_netplan_cfg}
-
-        match_ip_line=$(grep -nm1 "${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}" ${cloud_netplan_cfg} | cut -d: -f1)
-
-        sed -i "$((${match_ip_line}-1)),$((${match_ip_line}))d" ${cloud_netplan_cfg}
-
-    cat << EOF >> ${cloud_netplan_cfg}
-        bridges:
-            br-public:
-                dhcp4: false
-                interfaces:
-                - ${PUBLIC_INTERFACE}
-                - veth-br
-                addresses:
-                - ${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}
-    EOF
-        netplan --debug apply
-    }
diff --git a/de/heat-templates/env/telco.yaml b/de/heat-templates/env/telco.yaml
index 4e03ec0..50c16c5 100644
--- a/de/heat-templates/env/telco.yaml
+++ b/de/heat-templates/env/telco.yaml
@@ -20,41 +20,3 @@
   worker_metadata: {"labels": {"openstack-control-plane":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
   cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
   gtw_metadata: {"labels": {"openvswitch":"enabled", "gateway": "enabled"}}
-  functions_override: |
-    function network_config {
-        PUBLIC_NODE_IP_ADDRESS=${PUBLIC_INTERFACE_IP:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")}
-        PUBLIC_NODE_IP_NETMASK=${PUBLIC_INTERFACE_NETMASK:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+\/[\d]+' | egrep -v "127.0.|172.17" | cut -d'/' -f2)}
-
-        local public_interface=${1:-${PUBLIC_INTERFACE}}
-        local cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
-        local match_ip_line
-
-        DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils atop
-
-    cat << EOF > /etc/systemd/network/10-veth-phy-br.netdev
-    [NetDev]
-    Name=veth-phy
-    Kind=veth
-    [Peer]
-    Name=veth-br
-    EOF
-
-        sed -i 's/.*ethernets:.*/&\n        veth-phy: {}/' ${cloud_netplan_cfg}
-        sed -i 's/.*ethernets:.*/&\n        veth-br: {}/' ${cloud_netplan_cfg}
-
-        match_ip_line=$(grep -nm1 "${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}" ${cloud_netplan_cfg} | cut -d: -f1)
-
-        sed -i "$((${match_ip_line}-1)),$((${match_ip_line}))d" ${cloud_netplan_cfg}
-
-    cat << EOF >> ${cloud_netplan_cfg}
-        bridges:
-            br-public:
-                dhcp4: false
-                interfaces:
-                - ${PUBLIC_INTERFACE}
-                - veth-br
-                addresses:
-                - ${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}
-    EOF
-        netplan --debug apply
-    }
diff --git a/de/heat-templates/fragments/SrvInstancesBM.yaml b/de/heat-templates/fragments/SrvInstancesBM.yaml
index ab9fc36..46f8e68 100644
--- a/de/heat-templates/fragments/SrvInstancesBM.yaml
+++ b/de/heat-templates/fragments/SrvInstancesBM.yaml
@@ -66,7 +66,7 @@
             $node_metadata: { get_param: metadata }
             $host_interface: { get_param: host_interface }
             $private_floating_interface: { get_param: private_floating_interface }
-            $private_floating_network_cidr: { str_split: ['/', { get_param: private_floating_network_cidr }, 1] }
+            $private_floating_network_cidr: { get_param: private_floating_network_cidr }
             $private_floating_interface_ip: { get_attr: [private_floating_server_port, fixed_ips, 0, ip_address] }
             $functions_override: { get_param: functions_override }
 
diff --git a/de/heat-templates/fragments/SrvInstancesVM.yaml b/de/heat-templates/fragments/SrvInstancesVM.yaml
index db06a95..5b1a681 100644
--- a/de/heat-templates/fragments/SrvInstancesVM.yaml
+++ b/de/heat-templates/fragments/SrvInstancesVM.yaml
@@ -66,7 +66,7 @@
             $host_interface: { get_param: host_interface }
             $private_floating_interface: { get_param: private_floating_interface }
             $private_floating_interface_ip: { get_attr: [private_floating_server_port, fixed_ips, 0, ip_address] }
-            $private_floating_network_cidr: { str_split: ['/', { get_param: private_floating_network_cidr }, 1] }
+            $private_floating_network_cidr: { get_param: private_floating_network_cidr }
             $functions_override: { get_param: functions_override }
 
   server:
diff --git a/de/heat-templates/scripts/instance_boot.sh b/de/heat-templates/scripts/instance_boot.sh
index 1e12aee..da79bf0 100644
--- a/de/heat-templates/scripts/instance_boot.sh
+++ b/de/heat-templates/scripts/instance_boot.sh
@@ -7,12 +7,14 @@
 HOST_INTERFACE=$host_interface
 PUBLIC_INTERFACE=$private_floating_interface
 PUBLIC_INTERFACE_IP=$private_floating_interface_ip
-PUBLIC_INTERFACE_NETMASK=$private_floating_network_cidr
+PUBLIC_INTERFACE_CIDR=$private_floating_network_cidr
+PUBLIC_INTERFACE_NETMASK=$(echo ${PUBLIC_INTERFACE_CIDR} | cut -d'/' -f2)
 NODE_TYPE=$node_type
 UCP_MASTER_HOST=$ucp_master_host
 NODE_METADATA='$node_metadata'
 DOCKER_EE_URL='$docker_ee_url'
 DOCKER_EE_RELEASE='$docker_ee_release'
+FLOATING_NETWORK_PREFIXES=$private_floating_network_cidr
 #
 # End of block
 #
@@ -137,7 +139,7 @@
         --existing-config
     }
 
-    retry 3 "Can't bring up docker UCP container" docker_run_retry
+    retry 10 "Can't bring up docker UCP container" docker_run_retry
 }
 
 function download_bundles {
@@ -158,8 +160,8 @@
         fi
     }
 
-    retry 4 "Can't get AUTHTOKEN from master." get_authtoken_retry
-    retry 3 "Can't download bundle file from master." download_bundles_retry
+    retry 10 "Can't get AUTHTOKEN from master." get_authtoken_retry
+    retry 10 "Can't download bundle file from master." download_bundles_retry
 
     pushd $tmpd
     # Unzip the bundle.
@@ -223,9 +225,13 @@
 }
 
 function network_config {
+    PUBLIC_NODE_IP_ADDRESS=${PUBLIC_INTERFACE_IP:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")}
+    PUBLIC_NODE_IP_NETMASK=${PUBLIC_INTERFACE_NETMASK:-$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+\/[\d]+' | egrep -v "127.0.|172.17" | cut -d'/' -f2)}
+
     local public_interface=${1:-${PUBLIC_INTERFACE}}
     local cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
     local match_ip_line
+
     DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils
 
 cat << EOF > /etc/systemd/network/10-veth-phy-br.netdev
@@ -235,6 +241,7 @@
 [Peer]
 Name=veth-br
 EOF
+
     sed -i 's/.*ethernets:.*/&\n        veth-phy: {}/' ${cloud_netplan_cfg}
     sed -i 's/.*ethernets:.*/&\n        veth-br: {}/' ${cloud_netplan_cfg}
 
@@ -253,6 +260,9 @@
             - ${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}
 EOF
     netplan --debug apply
+
+    # NOTE(vsaienko): give some time to apply changes
+    sleep 15
 }
 
 $functions_override
diff --git a/de/heat-templates/top.yaml b/de/heat-templates/top.yaml
index 53fe0ba..86324a6 100644
--- a/de/heat-templates/top.yaml
+++ b/de/heat-templates/top.yaml
@@ -106,12 +106,22 @@
     default: 'system.compact.openstack.control'
   functions_override:
     type: string
+    default: ''
   docker_ee_url:
     type: string
     default: 'https://s3-us-west-2.amazonaws.com/internal-docker-ee-builds/docker-ee-linux'
   docker_ee_release:
     type: string
     default: 'stable-19.03'
+  tunnel_interface:
+    type: string
+    default: ''
+  live_migration_interface:
+    type: string
+    default: ''
+  metallb_address_pools:
+    type: comma_delimited_list
+    default: ''
 
 resources:
   key_pair:
@@ -380,4 +390,9 @@
     value: { get_param: private_floating_network_pool_end }
   private_floating_network_gateway:
     value: { get_param: private_floating_network_gateway }
-
+  tunnel_interface:
+    value: { get_param: tunnel_interface }
+  live_migration_interface:
+    value: { get_param: live_migration_interface }
+  metallb_address_pools:
+    value: { get_param: metallb_address_pools }