Baremetal deployment on top on Ironic
Heat templates have been refactored to deploy both VM
cases and baremetal nodes cases on top of Ironic.
Related-PROD: PRODX-2342
Change-Id: I6439ec670c69d67b65eb1806040a64f800dc6628
diff --git a/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp0-gtw0.yaml b/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp0-gtw0.yaml
new file mode 100644
index 0000000..15821c5
--- /dev/null
+++ b/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp0-gtw0.yaml
@@ -0,0 +1,67 @@
+resource_registry:
+ "MCP2::NetworkAcc": ../fragments/NetworkAccBM.yaml
+ "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
+ "MCP2::SrvInstances": ../fragments/SrvInstancesBM.yaml
+
+parameters:
+ image: bionic-server-cloudimg-amd64-20190612
+ ucp_flavor: oscore-bm-lab-01
+ masters_flavor: oscore-bm-lab-01
+ workers_flavor: oscore-bm-lab-01
+ cmps_flavor: oscore-bm-lab-01
+ gtws_flavor: oscore-bm-lab-01
+ lmas_flavor: oscore-bm-lab-01
+ osds_flavor: oscore-bm-lab-01
+ public_net_id: 'physnet1-402'
+ host_interface: 'enp3s0f0'
+ masters_size: 0
+ worker_size: 3
+ cmp_size: 0
+ gtw_size: 0
+ lma_size: 0
+ osd_size: 0
+ ucp_boot_timeout: 1200
+ cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
+ private_floating_network_cidr: '172.16.49.128/26'
+ private_floating_network_pool_start: '172.16.49.180'
+ 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"}}
+ 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 cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
+ local match_ip_line
+ local public_if_mac
+
+ 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
+
+ public_if_mac=$(ip link show $(echo ${PUBLIC_INTERFACE} | cut -d'.' -f1) | grep 'link/ether' | awk '{print $2}')
+
+ sed -i 's/.*ethernets:.*/&\n veth-phy: {}/' ${cloud_netplan_cfg}
+ sed -i 's/.*ethernets:.*/&\n veth-br: {}/' ${cloud_netplan_cfg}
+ sed -i "s/.*ethernets:.*/&\n $(echo ${PUBLIC_INTERFACE} | cut -d'.' -f1):\n dhcp4: false\n match:\n macaddress: ${public_if_mac}\n set-name: $(echo ${PUBLIC_INTERFACE} | cut -d'.' -f1)/" ${cloud_netplan_cfg}
+
+ cat << EOF >> ${cloud_netplan_cfg}
+ vlans:
+ ${PUBLIC_INTERFACE}:
+ id: 403
+ link: $(echo ${PUBLIC_INTERFACE} | cut -d'.' -f1)
+ addresses: [ "${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}" ]
+ EOF
+
+ netplan --debug apply
+ }
diff --git a/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp2-gtw0.yaml b/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp2-gtw0.yaml
new file mode 100644
index 0000000..2694479
--- /dev/null
+++ b/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp2-gtw0.yaml
@@ -0,0 +1,67 @@
+resource_registry:
+ "MCP2::NetworkAcc": ../fragments/NetworkAccBM.yaml
+ "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
+ "MCP2::SrvInstances": ../fragments/SrvInstancesBM.yaml
+
+parameters:
+ image: bionic-server-cloudimg-amd64-20190612
+ ucp_flavor: oscore-bm-lab-01
+ masters_flavor: oscore-bm-lab-01
+ workers_flavor: oscore-bm-lab-01
+ cmps_flavor: oscore-bm-lab-01
+ gtws_flavor: oscore-bm-lab-01
+ lmas_flavor: oscore-bm-lab-01
+ osds_flavor: oscore-bm-lab-01
+ public_net_id: 'physnet1-402'
+ host_interface: 'enp3s0f0'
+ masters_size: 0
+ worker_size: 3
+ cmp_size: 2
+ gtw_size: 0
+ lma_size: 0
+ osd_size: 0
+ ucp_boot_timeout: 1200
+ cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
+ private_floating_network_cidr: '172.16.49.128/26'
+ private_floating_network_pool_start: '172.16.49.180'
+ 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"}}
+ 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 cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
+ local match_ip_line
+ local public_if_mac
+
+ 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
+
+ public_if_mac=$(ip link show $(echo ${PUBLIC_INTERFACE} | cut -d'.' -f1) | grep 'link/ether' | awk '{print $2}')
+
+ sed -i 's/.*ethernets:.*/&\n veth-phy: {}/' ${cloud_netplan_cfg}
+ sed -i 's/.*ethernets:.*/&\n veth-br: {}/' ${cloud_netplan_cfg}
+ sed -i "s/.*ethernets:.*/&\n $(echo ${PUBLIC_INTERFACE} | cut -d'.' -f1):\n dhcp4: false\n match:\n macaddress: ${public_if_mac}\n set-name: $(echo ${PUBLIC_INTERFACE} | cut -d'.' -f1)/" ${cloud_netplan_cfg}
+
+ cat << EOF >> ${cloud_netplan_cfg}
+ vlans:
+ ${PUBLIC_INTERFACE}:
+ id: 403
+ link: $(echo ${PUBLIC_INTERFACE} | cut -d'.' -f1)
+ addresses: [ "${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}" ]
+ EOF
+
+ netplan --debug apply
+ }
diff --git a/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp3-gtw0.yaml b/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp3-gtw0.yaml
new file mode 100644
index 0000000..6443fb4
--- /dev/null
+++ b/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp3-gtw0.yaml
@@ -0,0 +1,67 @@
+resource_registry:
+ "MCP2::NetworkAcc": ../fragments/NetworkAccBM.yaml
+ "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
+ "MCP2::SrvInstances": ../fragments/SrvInstancesBM.yaml
+
+parameters:
+ image: bionic-server-cloudimg-amd64-20190612
+ ucp_flavor: oscore-bm-lab-01
+ masters_flavor: oscore-bm-lab-01
+ workers_flavor: oscore-bm-lab-01
+ cmps_flavor: oscore-bm-lab-01
+ gtws_flavor: oscore-bm-lab-01
+ lmas_flavor: oscore-bm-lab-01
+ osds_flavor: oscore-bm-lab-01
+ public_net_id: 'physnet1-402'
+ host_interface: 'enp3s0f0'
+ masters_size: 0
+ worker_size: 3
+ cmp_size: 3
+ gtw_size: 0
+ lma_size: 0
+ osd_size: 0
+ ucp_boot_timeout: 1200
+ cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
+ private_floating_network_cidr: '172.16.49.128/26'
+ private_floating_network_pool_start: '172.16.49.180'
+ 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"}}
+ 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 cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
+ local match_ip_line
+ local public_if_mac
+
+ 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
+
+ public_if_mac=$(ip link show $(echo ${PUBLIC_INTERFACE} | cut -d'.' -f1) | grep 'link/ether' | awk '{print $2}')
+
+ sed -i 's/.*ethernets:.*/&\n veth-phy: {}/' ${cloud_netplan_cfg}
+ sed -i 's/.*ethernets:.*/&\n veth-br: {}/' ${cloud_netplan_cfg}
+ sed -i "s/.*ethernets:.*/&\n $(echo ${PUBLIC_INTERFACE} | cut -d'.' -f1):\n dhcp4: false\n match:\n macaddress: ${public_if_mac}\n set-name: $(echo ${PUBLIC_INTERFACE} | cut -d'.' -f1)/" ${cloud_netplan_cfg}
+
+ cat << EOF >> ${cloud_netplan_cfg}
+ vlans:
+ ${PUBLIC_INTERFACE}:
+ id: 403
+ link: $(echo ${PUBLIC_INTERFACE} | cut -d'.' -f1)
+ addresses: [ "${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}" ]
+ EOF
+
+ netplan --debug apply
+ }
diff --git a/de/heat-templates/env/compute.yaml b/de/heat-templates/env/compute.yaml
index 0a74783..118bd61 100644
--- a/de/heat-templates/env/compute.yaml
+++ b/de/heat-templates/env/compute.yaml
@@ -1,13 +1,60 @@
+resource_registry:
+ "MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
+ "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+
parameters:
- key_name: devcloud
image: bionic-server-cloudimg-amd64-20190612
public_net_id: public
+ host_interface: 'ens3'
masters_size: 2
worker_size: 3
cmp_size: 2
gtw_size: 0
+ lma_size: 0
+ osd_size: 0
ucp_boot_timeout: 1200
- worker_metadata: {"labels": {"openstack-control-plane":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
+ 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"}}
cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
gtw_metadata: {"labels": {"openvswitch":"enabled"}}
- cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
+ 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 03da84c..41b9a4f 100644
--- a/de/heat-templates/env/converged.yaml
+++ b/de/heat-templates/env/converged.yaml
@@ -1,13 +1,60 @@
+resource_registry:
+ "MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
+ "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+
parameters:
- key_name: devcloud
image: bionic-server-cloudimg-amd64-20190612
public_net_id: public
+ host_interface: 'ens3'
masters_size: 2
worker_size: 3
cmp_size: 0
gtw_size: 0
+ lma_size: 0
+ osd_size: 0
ucp_boot_timeout: 1200
+ 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"}}
cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
gtw_metadata: {"labels": {"openvswitch":"enabled"}}
- cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
+ 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 ec0ba7f..8841a20 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0.yaml
@@ -1,13 +1,60 @@
+resource_registry:
+ "MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
+ "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+
parameters:
- key_name: devcloud
image: bionic-server-cloudimg-amd64-20190612
public_net_id: public
+ host_interface: 'ens3'
masters_size: 0
worker_size: 3
cmp_size: 0
gtw_size: 0
+ lma_size: 0
+ osd_size: 0
ucp_boot_timeout: 1200
+ 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"}}
cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
gtw_metadata: {"labels": {"openvswitch":"enabled"}}
- cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
+ 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 390de69..4c9e163 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0.yaml
@@ -1,13 +1,60 @@
+resource_registry:
+ "MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
+ "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+
parameters:
- key_name: devcloud
image: bionic-server-cloudimg-amd64-20190612
public_net_id: public
+ host_interface: 'ens3'
masters_size: 0
worker_size: 3
cmp_size: 2
gtw_size: 0
+ lma_size: 0
+ osd_size: 0
ucp_boot_timeout: 1200
- worker_metadata: {"labels": {"openstack-control-plane":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
+ 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"}}
cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
gtw_metadata: {"labels": {"openvswitch":"enabled"}}
- cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
+ 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 aed2f89..c871f91 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp3-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp3-gtw0.yaml
@@ -1,13 +1,60 @@
+resource_registry:
+ "MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
+ "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+
parameters:
- key_name: devcloud
image: bionic-server-cloudimg-amd64-20190612
public_net_id: public
+ host_interface: 'ens3'
masters_size: 0
worker_size: 3
cmp_size: 3
gtw_size: 0
+ lma_size: 0
+ osd_size: 0
ucp_boot_timeout: 1200
- worker_metadata: {"labels": {"openstack-control-plane":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
+ 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"}}
cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
gtw_metadata: {"labels": {"openvswitch":"enabled"}}
- cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
+ 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 062a447..5efde2b 100644
--- a/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0.yaml
@@ -1,13 +1,60 @@
+resource_registry:
+ "MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
+ "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+
parameters:
- key_name: devcloud
image: bionic-server-cloudimg-amd64-20190612
public_net_id: public
+ host_interface: 'ens3'
masters_size: 0
worker_size: 5
cmp_size: 0
gtw_size: 0
+ lma_size: 0
+ osd_size: 0
ucp_boot_timeout: 1200
+ 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"}}
cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
gtw_metadata: {"labels": {"openvswitch":"enabled"}}
- cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
+ 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 28d3fdf..4c9e163 100644
--- a/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0.yaml
@@ -1,13 +1,60 @@
+resource_registry:
+ "MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
+ "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+
parameters:
- key_name: devcloud
image: bionic-server-cloudimg-amd64-20190612
public_net_id: public
+ host_interface: 'ens3'
masters_size: 0
- worker_size: 5
+ worker_size: 3
cmp_size: 2
gtw_size: 0
+ lma_size: 0
+ osd_size: 0
ucp_boot_timeout: 1200
+ 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"}}
cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
gtw_metadata: {"labels": {"openvswitch":"enabled"}}
- cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
+ 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 c89c863..c2f7876 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
@@ -1,5 +1,9 @@
+resource_registry:
+ "MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
+ "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+
parameters:
- key_name: devcloud
image: bionic-server-cloudimg-amd64-20190612
ucp_flavor: system.compact.openstack.control
masters_flavor: system.compact.openstack.control
@@ -9,6 +13,7 @@
lmas_flavor: system.compact.stacklight.server
osds_flavor: system.virtual.ceph.osd
public_net_id: public
+ host_interface: 'ens3'
masters_size: 2
worker_size: 3
cmp_size: 2
@@ -16,9 +21,49 @@
lma_size: 3
osd_size: 3
ucp_boot_timeout: 1200
+ 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","openvswitch":"enabled"}}
cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled",}}
gtw_metadata: {"labels": {"openvswitch":"enabled", "gateway": "enabled"}}
lma_metadata: {"labels": {"role": "stacklight", "stacklight": "enabled"}}
osd_metadata: {"labels": {"role": "ceph-osd-node"}}
- cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
+ 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 62bb03e..3b3d557 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3.yaml
@@ -1,15 +1,61 @@
+resource_registry:
+ "MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
+ "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+
parameters:
- key_name: devcloud
image: bionic-server-cloudimg-amd64-20190612
public_net_id: public
+ host_interface: 'ens3'
masters_size: 2
worker_size: 3
cmp_size: 2
gtw_size: 3
lma_size: 3
+ osd_size: 0
ucp_boot_timeout: 1200
+ 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","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"}}
lma_metadata: {"labels": {"role": "stacklight", "stacklight": "enabled"}}
- cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
+ 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 8abd2a8..4e03ec0 100644
--- a/de/heat-templates/env/telco.yaml
+++ b/de/heat-templates/env/telco.yaml
@@ -1,13 +1,60 @@
+resource_registry:
+ "MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
+ "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+
parameters:
- key_name: devcloud
image: bionic-server-cloudimg-amd64-20190612
public_net_id: public
+ host_interface: 'ens3'
masters_size: 2
worker_size: 3
cmp_size: 2
gtw_size: 2
+ lma_size: 0
+ osd_size: 0
ucp_boot_timeout: 1200
+ 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","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"}}
- cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
+ 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/NetworkAccBM.yaml b/de/heat-templates/fragments/NetworkAccBM.yaml
new file mode 100644
index 0000000..3ebfb3b
--- /dev/null
+++ b/de/heat-templates/fragments/NetworkAccBM.yaml
@@ -0,0 +1,13 @@
+heat_template_version: queens
+
+parameters:
+ public_net_id:
+ type: string
+
+resources:
+
+outputs:
+ public_network:
+ value: { get_param: public_net_id }
+ accessible_subnet_id:
+ value: ''
diff --git a/de/heat-templates/fragments/NetworkAccVM.yaml b/de/heat-templates/fragments/NetworkAccVM.yaml
new file mode 100644
index 0000000..8b03070
--- /dev/null
+++ b/de/heat-templates/fragments/NetworkAccVM.yaml
@@ -0,0 +1,36 @@
+heat_template_version: queens
+
+parameters:
+ public_net_id:
+ type: string
+
+resources:
+
+ network:
+ type: OS::Neutron::Net
+ subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network: { get_resource: network }
+ enable_dhcp: true
+ cidr: '10.10.0.0/24'
+ dns_nameservers:
+ - 172.18.224.6
+ - 172.18.176.6
+ router:
+ type: OS::Neutron::Router
+ properties:
+ external_gateway_info:
+ network: { get_param: public_net_id }
+ router_iface:
+ type: OS::Neutron::RouterInterface
+ properties:
+ router: { get_resource: router }
+ subnet: { get_resource: subnet }
+
+
+outputs:
+ public_network:
+ value: { get_resource: network }
+ accessible_subnet_id:
+ value: { get_resource: subnet }
diff --git a/de/heat-templates/fragments/NetworkPrvFl.yaml b/de/heat-templates/fragments/NetworkPrvFl.yaml
new file mode 100644
index 0000000..0509def
--- /dev/null
+++ b/de/heat-templates/fragments/NetworkPrvFl.yaml
@@ -0,0 +1,23 @@
+heat_template_version: queens
+
+parameters:
+ private_floating_network_cidr:
+ type: string
+
+resources:
+
+ network:
+ type: OS::Neutron::Net
+ subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network: { get_resource: network }
+ enable_dhcp: false
+ cidr: { get_param: private_floating_network_cidr }
+ gateway_ip: ~
+
+outputs:
+ private_floating_network_id:
+ value: { get_resource: network }
+ private_floating_subnet_id:
+ value: { get_resource: subnet }
diff --git a/de/heat-templates/fragments/SrvInstancesBM.yaml b/de/heat-templates/fragments/SrvInstancesBM.yaml
new file mode 100644
index 0000000..166b510
--- /dev/null
+++ b/de/heat-templates/fragments/SrvInstancesBM.yaml
@@ -0,0 +1,108 @@
+heat_template_version: queens
+
+parameters:
+
+ metadata:
+ type: json
+ default: {}
+ node_type:
+ type: string
+ key_name:
+ type: string
+ description: Name of keypair to assign to servers
+ image:
+ type: string
+ description: Name of image to use for servers
+ flavor:
+ type: string
+ description: Flavor to use for servers
+ accessible_network:
+ type: string
+ accessible_subnet_id:
+ type: string
+ private_floating_network:
+ type: string
+ private_floating_network_cidr:
+ type: string
+ private_floating_subnet_id:
+ type: string
+ private_floating_interface:
+ type: string
+ host_interface:
+ type: string
+ functions_override:
+ type: string
+ boot_timeout:
+ type: number
+ description: Boot timeout for instance
+ default: 1200
+ ucp_master_host:
+ type: string
+ default: ''
+ public_net_id:
+ type: string
+ default: ''
+
+resources:
+
+ software_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ group: ungrouped
+ config:
+ str_replace:
+ template: { get_file: ../scripts/instance_boot.sh }
+ params:
+ $node_type: { get_param: node_type }
+ $wait_condition_notify: { get_attr: [ wait_handle, curl_cli ] }
+ $ucp_license_key: { get_file: ../scripts/license.lic }
+ $ucp_master_host: { get_param: ucp_master_host }
+ $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_interface_ip: { get_attr: [private_floating_server_port, fixed_ips, 0, ip_address] }
+ $functions_override: { get_param: functions_override }
+
+ server:
+ type: OS::Nova::Server
+ properties:
+ image: { get_param: image }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ availability_zone: nova
+ networks:
+ - network: { get_param: accessible_network }
+ # NOTE(ohryhorov): connect to accessible network only as ironic doesn't
+ # support multitenancy use-case. Use private_floating_network for IPAM only.
+ user_data_format: RAW
+ user_data: { get_resource: software_config }
+ metadata: { get_param: metadata }
+
+ private_floating_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: private_floating_network }
+ port_security_enabled: false
+ fixed_ips:
+ - subnet: { get_param: private_floating_subnet_id }
+
+ wait_handle:
+ type: OS::Heat::WaitConditionHandle
+ wait_condition:
+ type: OS::Heat::WaitCondition
+ properties:
+ handle: { get_resource: wait_handle }
+ timeout: { get_param: boot_timeout }
+
+
+outputs:
+ server_private_ip:
+ description: IP address of server in private network
+ value: { get_attr: [server, networks, { get_param: accessible_network}, 0]}
+ server_private_floating_ip:
+ description: IP address of server in private floating network
+ value: { get_attr: [private_floating_server_port, fixed_ips, 0, ip_address] }
+ server_public_ip:
+ description: Floating IP address of server in public network
+ value: { get_attr: [server, networks, { get_param: accessible_network}, 0]}
diff --git a/de/heat-templates/fragments/SrvInstancesVM.yaml b/de/heat-templates/fragments/SrvInstancesVM.yaml
new file mode 100644
index 0000000..7cb89ae
--- /dev/null
+++ b/de/heat-templates/fragments/SrvInstancesVM.yaml
@@ -0,0 +1,119 @@
+heat_template_version: queens
+
+parameters:
+
+ metadata:
+ type: json
+ default: {}
+ node_type:
+ type: string
+ key_name:
+ type: string
+ description: Name of keypair to assign to servers
+ image:
+ type: string
+ description: Name of image to use for servers
+ flavor:
+ type: string
+ description: Flavor to use for servers
+ accessible_network:
+ type: string
+ accessible_subnet_id:
+ type: string
+ private_floating_network:
+ type: string
+ private_floating_network_cidr:
+ type: string
+ private_floating_subnet_id:
+ type: string
+ private_floating_interface:
+ type: string
+ host_interface:
+ type: string
+ functions_override:
+ type: string
+ boot_timeout:
+ type: number
+ description: Boot timeout for instance
+ default: 1200
+ ucp_master_host:
+ type: string
+ default: ''
+ public_net_id:
+ type: string
+
+resources:
+
+ software_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ group: ungrouped
+ config:
+ str_replace:
+ template: { get_file: ../scripts/instance_boot.sh }
+ params:
+ $node_type: { get_param: node_type }
+ $wait_condition_notify: { get_attr: [ wait_handle, curl_cli ] }
+ $ucp_license_key: { get_file: ../scripts/license.lic }
+ $ucp_master_host: { get_param: ucp_master_host }
+ $node_metadata: { get_param: metadata }
+ $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] }
+ $functions_override: { get_param: functions_override }
+
+ server:
+ type: OS::Nova::Server
+ properties:
+ image: { get_param: image }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ availability_zone: nova
+ networks:
+ - port: { get_resource: accessible_server_port }
+ - port: { get_resource: private_floating_server_port }
+ user_data_format: RAW
+ user_data: { get_resource: software_config }
+ metadata: { get_param: metadata }
+
+ accessible_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: accessible_network }
+ port_security_enabled: false
+ fixed_ips:
+ - subnet: { get_param: accessible_subnet_id }
+
+ private_floating_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: private_floating_network }
+ port_security_enabled: false
+ fixed_ips:
+ - subnet: { get_param: private_floating_subnet_id }
+
+ server_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: { get_param: public_net_id }
+ port_id: { get_resource: accessible_server_port }
+
+ wait_handle:
+ type: OS::Heat::WaitConditionHandle
+ wait_condition:
+ type: OS::Heat::WaitCondition
+ properties:
+ handle: { get_resource: wait_handle }
+ timeout: { get_param: boot_timeout }
+
+outputs:
+ server_private_ip:
+ description: IP address of server in private network
+ value: { get_attr: [server, networks, { get_param: accessible_network}, 0]}
+ server_private_floating_ip:
+ description: IP address of server in private floating network
+ value: { get_attr: [private_floating_server_port, fixed_ips, 0, ip_address] }
+ server_public_ip:
+ description: Floating IP address of server in public network
+ value: { get_attr: [ server_floating_ip, floating_ip_address ] }
diff --git a/de/heat-templates/scripts/instance_boot.sh b/de/heat-templates/scripts/instance_boot.sh
index 602cb40..7282da4 100644
--- a/de/heat-templates/scripts/instance_boot.sh
+++ b/de/heat-templates/scripts/instance_boot.sh
@@ -1,11 +1,26 @@
#!/bin/bash
set -x
+#
+# Variables in this block are passed from heat template
+#
+HOST_INTERFACE=$host_interface
+PUBLIC_INTERFACE=$private_floating_interface
+PUBLIC_INTERFACE_IP=$private_floating_interface_ip
+PUBLIC_INTERFACE_NETMASK=$private_floating_network_cidr
+NODE_TYPE=$node_type
+UCP_MASTER_HOST=$ucp_master_host
+NODE_METADATA='$node_metadata'
+#
+# End of block
+#
+
DOCKER_DEFAULT_ADDRESS_POOL=${DOCKER_DEFAULT_ADDRESS_POOL:-10.10.1.0/16}
# DOCKER_DEFAULT_ADDRESS_SIZE have to be less then netmask in DOCKER_DEFAULT_ADDRESS_POOL because
# to the fact that actual netmask for docker_gwbridge is given from it
DOCKER_DEFAULT_ADDRESS_SIZE=${DOCKER_DEFAULT_ADDRESS_SIZE:-24}
HOST_INTERFACE=${HOST_INTERFACE:-ens3}
+PUBLIC_INTERFACE=${PUBLIC_INTERFACE:-ens4}
NODE_IP_ADDRESS=$(ip addr show dev ${HOST_INTERFACE} |grep -Po 'inet \K[\d.]+' |egrep -v "127.0.|172.17")
UCP_USERNAME=${UCP_USERNAME:-admin}
UCP_PASSWORD=${UCP_PASSWORD:-administrator}
@@ -14,13 +29,9 @@
NODE_DEPLOYMENT_RETRIES=${NODE_DEPLOYMENT_RETRIES:-15}
FLOATING_NETWORK_PREFIXES=${FLOATING_NETWORK_PREFIXES:-10.11.12.0/24}
PUBLIC_INTERFACE=${PUBLIC_INTERFACE:-ens4}
-PUBLIC_NODE_IP_ADDRESS=$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")
-PUBLIC_NODE_IP_NETMASK=$(ip addr show dev ${PUBLIC_INTERFACE} | grep -Po 'inet \K[\d.]+\/[\d]+' | egrep -v "127.0.|172.17" | cut -d'/' -f2)
-
-NODE_TYPE=$node_type
-UCP_MASTER_HOST=$ucp_master_host
UCP_MASTER_HOST=${UCP_MASTER_HOST:-${NODE_IP_ADDRESS}}
-NODE_METADATA='$node_metadata'
+UCP_IP_ADDRESS=${UCP_IP_ADDRESS:-$NODE_IP_ADDRESS}
+
function retry {
local retries=$1
@@ -96,15 +107,18 @@
cat <<EOF > ${tmpd}/docker_subscription.lic
$ucp_license_key
EOF
+ function docker_run_retry {
+ docker container run --rm --name ucp \
+ -v /var/run/docker.sock:/var/run/docker.sock \
+ -v $tmpd/docker_subscription.lic:/config/docker_subscription.lic \
+ docker/ucp:3.2.4 install \
+ --host-address $UCP_IP_ADDRESS \
+ --admin-username $UCP_USERNAME \
+ --admin-password $UCP_PASSWORD \
+ --existing-config
+ }
- docker container run --rm --name ucp \
- -v /var/run/docker.sock:/var/run/docker.sock \
- -v $tmpd/docker_subscription.lic:/config/docker_subscription.lic \
- docker/ucp:3.2.4 install \
- --host-address $NODE_IP_ADDRESS \
- --admin-username $UCP_USERNAME \
- --admin-password $UCP_PASSWORD \
- --existing-config
+ retry 3 "Can't bring up docker UCP container" docker_run_retry
}
function download_bundles {
@@ -115,10 +129,17 @@
# Download the client certificate bundle
curl -k -H "Authorization: Bearer $AUTHTOKEN" https://${UCP_MASTER_HOST}/api/clientbundle -o ${tmpd}/bundle.zip
}
+
+ function get_authtoken_retry {
# Download the bundle https://docs.docker.com/ee/ucp/user-access/cli/
# Create an environment variable with the user security token
- AUTHTOKEN=$(curl -sk -d '{"username":"'$UCP_USERNAME'","password":"'$UCP_PASSWORD'"}' https://${UCP_MASTER_HOST}/auth/login | jq -r .auth_token)
+ AUTHTOKEN=$(curl -sk -d '{"username":"'$UCP_USERNAME'","password":"'$UCP_PASSWORD'"}' https://${UCP_MASTER_HOST}/auth/login | jq -r .auth_token)
+ if [ -z ${AUTHTOKEN} ]; then
+ return -1
+ fi
+ }
+ retry 4 "Can't get AUTHTOKEN from master." get_authtoken_retry
retry 3 "Can't download bundle file from master." download_bundles_retry
pushd $tmpd
@@ -156,7 +177,7 @@
}
function swarm_init {
- docker swarm init --advertise-addr ${HOST_INTERFACE}
+ docker swarm init --advertise-addr ${UCP_IP_ADDRESS}
}
function rm_ucp_config {
@@ -182,13 +203,11 @@
done
}
-function configure_public_interface {
+function network_config {
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
@@ -216,6 +235,8 @@
netplan --debug apply
}
+$functions_override
+
function set_node_labels {
kubectl patch node $(hostname) -p "{\"metadata\": ${NODE_METADATA}}"
@@ -226,7 +247,7 @@
prepare_network
update_docker_network
install_docker_ce
- configure_public_interface
+ network_config
swarm_init
create_ucp_config
install_ucp
@@ -241,7 +262,7 @@
prepare_network
update_docker_network
install_docker_ce
- configure_public_interface
+ network_config
download_bundles
join_node manager
install_kubectl
@@ -253,7 +274,7 @@
prepare_network
update_docker_network
install_docker_ce
- configure_public_interface
+ network_config
download_bundles
join_node worker
install_kubectl
diff --git a/de/heat-templates/srv-group.yaml b/de/heat-templates/srv-group.yaml
deleted file mode 100644
index dee472b..0000000
--- a/de/heat-templates/srv-group.yaml
+++ /dev/null
@@ -1,99 +0,0 @@
-heat_template_version: queens
-
-parameters:
- key_name:
- type: string
- description: Name of keypair to assign to servers
- image:
- type: string
- description: Name of image to use for servers
- flavor:
- type: string
- description: Flavor to use for servers
- public_net_id:
- type: string
- description: >
- ID of public network for which floating IP addresses will be allocated
- private_net_id:
- type: string
- description: ID of private network into which servers get deployed
- private_subnet_id:
- type: string
- description: ID of private subnet
- private_floating_network:
- type: string
- description: ID of network that will be used for floating in nested openstack
- boot_timeout:
- type: number
- description: Boot timeout for instance
- default: 1200
- metadata:
- type: json
- node_type:
- type: string
- ucp_master_host:
- type: string
- default: ''
-
-resources:
-
- software_config:
- type: OS::Heat::SoftwareConfig
- properties:
- group: ungrouped
- config:
- str_replace:
- template: { get_file: ./scripts/instance_boot.sh }
- params:
- $node_type: { get_param: node_type }
- $wait_condition_notify: { get_attr: [ wait_handle, curl_cli ] }
- $ucp_license_key: { get_file: ./scripts/license.lic }
- $ucp_master_host: { get_param: ucp_master_host }
- $node_metadata: { get_param: metadata }
-
- server:
- type: OS::Nova::Server
- properties:
- image: { get_param: image }
- flavor: { get_param: flavor }
- key_name: { get_param: key_name }
- availability_zone: nova
- networks:
- - port: { get_resource: server_port }
- - network: { get_param: private_floating_network }
- user_data_format: RAW
- user_data: { get_resource: software_config }
- metadata: { get_param: metadata }
-
- server_port:
- type: OS::Neutron::Port
- properties:
- network_id: { get_param: private_net_id }
- port_security_enabled: false
- fixed_ips:
- - subnet: { get_param: private_subnet_id }
-
- server_floating_ip:
- type: OS::Neutron::FloatingIP
- properties:
- floating_network_id: { get_param: public_net_id }
- port_id: { get_resource: server_port }
-
- wait_handle:
- type: OS::Heat::WaitConditionHandle
- wait_condition:
- type: OS::Heat::WaitCondition
- properties:
- handle: { get_resource: wait_handle }
- timeout: { get_param: boot_timeout }
-
-outputs:
- server_private_ip:
- description: IP address of server in private network
- value: { get_attr: [ server_port, fixed_ips, 0, ip_address] }
- server_private_floating_ip:
- description: IP address of server in private floating network
- value: { get_attr: [server, networks, { get_param: private_floating_network }, 0]}
- server_public_ip:
- description: Floating IP address of server in public network
- value: { get_attr: [ server_floating_ip, floating_ip_address ] }
diff --git a/de/heat-templates/top.yaml b/de/heat-templates/top.yaml
index 4595008..66f5680 100644
--- a/de/heat-templates/top.yaml
+++ b/de/heat-templates/top.yaml
@@ -1,16 +1,18 @@
heat_template_version: queens
parameters:
- key_name:
- type: string
- description: Name of keypair to assign to servers
image:
type: string
description: Name of image to use for servers
public_net_id:
type: string
+ default: ''
description: >
- ID of public network for which floating IP addresses will be allocated
+ ID of public network for which floating IP addresses will be allocated/
+ for baremetal case flat provision network for nodes
+ host_interface:
+ type: string
+ description: Interface which connects server with public network (world accessible network).
masters_size:
type: number
description: Number of masters instances to deploy
@@ -44,6 +46,18 @@
private_floating_network_cidr:
type: string
default: '10.11.12.0/24'
+ private_floating_network_pool_start:
+ type: string
+ default: '10.11.12.100'
+ private_floating_network_pool_end:
+ type: string
+ default: '10.11.12.200'
+ private_floating_network_gateway:
+ type: string
+ default: '10.11.12.11'
+ private_floating_interface:
+ description: Interface which carries floating network for child OpenStack.
+ type: string
worker_metadata:
type: json
default: {}
@@ -80,6 +94,8 @@
osds_flavor:
type: string
default: 'system.compact.openstack.control'
+ functions_override:
+ type: string
resources:
key_pair:
@@ -89,178 +105,187 @@
public_key: { get_param: cluster_public_key}
save_private_key: false
- network:
- type: OS::Neutron::Net
- subnet:
- type: OS::Neutron::Subnet
+ accessible_network:
+ type: MCP2::NetworkAcc
properties:
- network: { get_resource: network }
- cidr: 10.10.0.0/24
- dns_nameservers:
- - 172.18.224.6
- - 172.18.176.6
- router:
- type: OS::Neutron::Router
- properties:
- external_gateway_info:
- network: { get_param: public_net_id }
- router_iface:
- type: OS::Neutron::RouterInterface
- properties:
- router: { get_resource: router }
- subnet: { get_resource: subnet }
+ public_net_id: { get_param: public_net_id }
private_floating_network:
- type: OS::Neutron::Net
+ type: MCP2::NetworkPrvFl
properties:
- port_security_enabled: false
- private_floating_subnet:
- type: OS::Neutron::Subnet
- properties:
- network: { get_resource: private_floating_network }
- cidr: { get_param: private_floating_network_cidr }
- enable_dhcp: false
- gateway_ip: ~
+ private_floating_network_cidr: { get_param: private_floating_network_cidr }
ucp:
- depends_on: router_iface
- type: ./srv-group.yaml
+ depends_on: accessible_network
+ type: MCP2::SrvInstances
properties:
- image: { get_param: image }
- flavor: { get_param: ucp_flavor }
- key_name: { get_param: "OS::stack_name" }
- public_net_id: { get_param: public_net_id }
- private_net_id: { get_resource: network }
- private_subnet_id: { get_resource: subnet }
- private_floating_network: { get_resource: private_floating_network }
metadata: {"role":"ucp"}
node_type: "ucp"
+ key_name: { get_param: "OS::stack_name" }
+ image: { get_param: image }
+ flavor: { get_param: ucp_flavor }
+ accessible_network: { get_attr: [accessible_network, public_network] }
+ private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
+ private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
+ private_floating_interface: { get_param: private_floating_interface }
+ private_floating_network_cidr: { get_param: private_floating_network_cidr }
+ accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
+ public_net_id: { get_param: public_net_id }
+ host_interface: { get_param: host_interface }
+ functions_override: { get_param: functions_override }
+
masters:
type: OS::Heat::ResourceGroup
depends_on:
- ucp
- - router_iface
properties:
count: { get_param: masters_size }
resource_def:
- type: ./srv-group.yaml
+ type: MCP2::SrvInstances
properties:
- image: { get_param: image }
- flavor: { get_param: masters_flavor }
- key_name: { get_param: "OS::stack_name" }
- public_net_id: { get_param: public_net_id }
- private_net_id: { get_resource: network }
- private_subnet_id: { get_resource: subnet }
- private_floating_network: { get_resource: private_floating_network }
metadata: {"role":"master"}
node_type: "master"
+ key_name: { get_param: "OS::stack_name" }
+ image: { get_param: image }
+ flavor: { get_param: masters_flavor }
+ accessible_network: { get_attr: [accessible_network, public_network] }
+ private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
+ private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
+ private_floating_interface: { get_param: private_floating_interface }
+ private_floating_network_cidr: { get_param: private_floating_network_cidr }
+ accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
+ public_net_id: { get_param: public_net_id }
+ host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
+ functions_override: { get_param: functions_override }
+
workers:
type: OS::Heat::ResourceGroup
depends_on:
- ucp
- - router_iface
properties:
count: { get_param: worker_size }
resource_def:
- type: ./srv-group.yaml
+ type: MCP2::SrvInstances
properties:
+ metadata: { get_param: worker_metadata}
+ node_type: "worker"
+ key_name: { get_param: "OS::stack_name" }
image: { get_param: image }
flavor: { get_param: workers_flavor }
key_name: { get_param: "OS::stack_name" }
+ accessible_network: { get_attr: [accessible_network, public_network] }
+ private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
+ private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
+ private_floating_interface: { get_param: private_floating_interface }
+ private_floating_network_cidr: { get_param: private_floating_network_cidr }
+ accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
public_net_id: { get_param: public_net_id }
- private_net_id: { get_resource: network }
- private_subnet_id: { get_resource: subnet }
- private_floating_network: { get_resource: private_floating_network }
- metadata: { get_param: worker_metadata}
- node_type: "worker"
+ host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
+ functions_override: { get_param: functions_override }
cmps:
type: OS::Heat::ResourceGroup
depends_on:
- ucp
- - router_iface
properties:
count: { get_param: cmp_size }
resource_def:
- type: ./srv-group.yaml
+ type: MCP2::SrvInstances
properties:
+ metadata: { get_param: cmp_metadata }
+ node_type: "worker"
+ key_name: { get_param: "OS::stack_name" }
image: { get_param: image }
flavor: { get_param: cmps_flavor }
- key_name: { get_param: "OS::stack_name" }
+ accessible_network: { get_attr: [accessible_network, public_network] }
+ private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
+ private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
+ private_floating_interface: { get_param: private_floating_interface }
+ private_floating_network_cidr: { get_param: private_floating_network_cidr }
+ accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
public_net_id: { get_param: public_net_id }
- private_net_id: { get_resource: network }
- private_subnet_id: { get_resource: subnet }
- private_floating_network: { get_resource: private_floating_network }
- metadata: { get_param: cmp_metadata}
- node_type: "worker"
+ host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
+ functions_override: { get_param: functions_override }
gtws:
type: OS::Heat::ResourceGroup
depends_on:
- ucp
- - router_iface
properties:
count: { get_param: gtw_size }
resource_def:
- type: ./srv-group.yaml
+ type: MCP2::SrvInstances
properties:
+ metadata: { get_param: gtw_metadata }
+ node_type: "worker"
+ key_name: { get_param: "OS::stack_name" }
image: { get_param: image }
flavor: { get_param: gtws_flavor }
- key_name: { get_param: "OS::stack_name" }
+ accessible_network: { get_attr: [accessible_network, public_network] }
+ private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
+ private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
+ private_floating_interface: { get_param: private_floating_interface }
+ private_floating_network_cidr: { get_param: private_floating_network_cidr }
+ accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
public_net_id: { get_param: public_net_id }
- private_net_id: { get_resource: network }
- private_subnet_id: { get_resource: subnet }
- private_floating_network: { get_resource: private_floating_network }
- metadata: { get_param: gtw_metadata}
- node_type: "worker"
+ host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
+ functions_override: { get_param: functions_override }
lmas:
type: OS::Heat::ResourceGroup
depends_on:
- ucp
- - router_iface
properties:
count: { get_param: lma_size }
resource_def:
- type: ./srv-group.yaml
+ type: MCP2::SrvInstances
properties:
+ metadata: { get_param: lma_metadata }
+ node_type: "worker"
+ key_name: { get_param: "OS::stack_name" }
image: { get_param: image }
flavor: { get_param: lmas_flavor }
- key_name: { get_param: "OS::stack_name" }
+ accessible_network: { get_attr: [accessible_network, public_network] }
+ private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
+ private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
+ private_floating_interface: { get_param: private_floating_interface }
+ private_floating_network_cidr: { get_param: private_floating_network_cidr }
+ accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
public_net_id: { get_param: public_net_id }
- private_net_id: { get_resource: network }
- private_subnet_id: { get_resource: subnet }
- private_floating_network: { get_resource: private_floating_network }
- metadata: { get_param: lma_metadata}
- node_type: "worker"
+ host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
+ functions_override: { get_param: functions_override }
osds:
type: OS::Heat::ResourceGroup
depends_on:
- ucp
- - router_iface
properties:
count: { get_param: osd_size }
resource_def:
- type: ./srv-group.yaml
+ type: MCP2::SrvInstances
properties:
+ metadata: { get_param: osd_metadata }
+ node_type: "worker"
+ key_name: { get_param: "OS::stack_name" }
image: { get_param: image }
flavor: { get_param: osds_flavor }
- key_name: { get_param: "OS::stack_name" }
+ accessible_network: { get_attr: [accessible_network, public_network] }
+ private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
+ private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
+ private_floating_interface: { get_param: private_floating_interface }
+ private_floating_network_cidr: { get_param: private_floating_network_cidr }
+ accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
public_net_id: { get_param: public_net_id }
- private_net_id: { get_resource: network }
- private_subnet_id: { get_resource: subnet }
- private_floating_network: { get_resource: private_floating_network }
- metadata: { get_param: osd_metadata}
- node_type: "worker"
+ host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
+ functions_override: { get_param: functions_override }
outputs:
ucp_ips:
@@ -289,3 +314,10 @@
value: { get_attr: [workers, server_private_floating_ip] }
private_floating_cidr:
value: { get_param: private_floating_network_cidr }
+ private_floating_network_pool_start:
+ value: { get_param: private_floating_network_pool_start }
+ private_floating_network_pool_end:
+ value: { get_param: private_floating_network_pool_end }
+ private_floating_network_gateway:
+ value: { get_param: private_floating_network_gateway }
+