aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillermo Herrero <guillermo.herrero@enea.com>2018-01-11 13:23:28 +0100
committerGuillermo Herrero <guillermo.herrero@enea.com>2018-01-22 12:07:17 +0100
commit7c79115c2a1b6716f23f73be244bd1840a9e6f82 (patch)
treef6d44c8a2ce3c478d9c71548fed7db5b46350bbe
parent252fd2b6fe32a77a4014ce33ead9f77817b1d2c9 (diff)
Add support for different public network netmask
- Remove hardcoded /24 mask - Use PDF as source for public network, with reclass params: opnfv_net_public, _mask, _gw, _pool_start, _pool_end JIRA: FUEL-315 Change-Id: Idf3a4ed8f63f58fa90d9c1dcb7751ef3b1c9bd36 Signed-off-by: Guillermo Herrero <guillermo.herrero@enea.com>
-rwxr-xr-xmcp/config/states/networks27
-rw-r--r--mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/pod_config.yml.example4
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm_pdf.yml.j22
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute_pdf.yml.j26
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_biport.yml2
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_triport.yml2
-rw-r--r--mcp/scripts/lib.sh7
7 files changed, 34 insertions, 16 deletions
diff --git a/mcp/config/states/networks b/mcp/config/states/networks
index 5beabdb6a..222a0726d 100755
--- a/mcp/config/states/networks
+++ b/mcp/config/states/networks
@@ -9,17 +9,20 @@
CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x
-# Determine public network based on external IPs from compute node
-# NOTE: mask currently hardcoded to /24
-PUBLIC_NET=$(salt --out yaml -C 'I@nova:compute and *01*' pillar.get _param:external_address | \
- awk --re-interval '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/{print $2; exit}')
+source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/lib.sh"
-[ -n "${PUBLIC_NET}" ] || PUBLIC_NET=$(salt --out yaml -C 'I@nova:compute and *01*' \
- pillar.get _param:openstack_compute_node01_external_address | \
- awk --re-interval '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/{print $2; exit}')
+PUBLIC_NET=$(get_nova_compute_pillar_data 'opnfv_net_public')
+PUBLIC_NET_GATEWAY=$(get_nova_compute_pillar_data 'opnfv_net_public_gw')
+POOL_START_IP=$(get_nova_compute_pillar_data 'opnfv_net_public_pool_start')
+POOL_END_IP=$(get_nova_compute_pillar_data 'opnfv_net_public_pool_end')
-[ -n "${PUBLIC_NET}" ] && PUBLIC_NET="${PUBLIC_NET%.*}.0/24" || PUBLIC_NET="10.16.0.0/24"
+# Default values
+PUBLIC_NET="${PUBLIC_NET:-10.16.0.0/24}"
+PUBLIC_NET_GATEWAY="${PUBLIC_NET_GATEWAY:-10.16.0.1}"
+POOL_START_IP="${POOL_START_IP:-10.16.0.130}"
+POOL_END_IP="${POOL_END_IP:-10.16.0.254}"
+# Print openstack status and setup network
salt -C 'I@nova:controller and *01*' cmd.run ". /root/keystonercv3; \
openstack compute service list; \
openstack network agent list; \
@@ -27,8 +30,8 @@ salt -C 'I@nova:controller and *01*' cmd.run ". /root/keystonercv3; \
openstack volume service list"
salt -C 'I@nova:controller and *01*' cmd.run ". /root/keystonercv3; \
openstack network create --external --default --provider-network-type flat \
- --provider-physical-network physnet1 floating_net"
+ --provider-physical-network physnet1 floating_net"
salt -C 'I@nova:controller and *01*' cmd.run ". /root/keystonercv3; \
- openstack subnet create --gateway ${PUBLIC_NET%.*}.1 --no-dhcp \
- --allocation-pool start=${PUBLIC_NET%.*}.130,end=${PUBLIC_NET%.*}.254 \
- --network floating_net --subnet-range ${PUBLIC_NET} floating_subnet"
+ openstack subnet create --gateway ${PUBLIC_NET_GATEWAY} --no-dhcp \
+ --allocation-pool start=${POOL_START_IP},end=${POOL_END_IP} \
+ --network floating_net --subnet-range ${PUBLIC_NET} floating_subnet"
diff --git a/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/pod_config.yml.example b/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/pod_config.yml.example
index 3a70e5f83..628aeba83 100644
--- a/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/pod_config.yml.example
+++ b/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/pod_config.yml.example
@@ -64,7 +64,11 @@ parameters:
opnfv_opendaylight_server_node01_single_address: 10.167.4.111
+ opnfv_net_public: 172.30.10.0/24
+ opnfv_net_public_mask: 255.255.255.0
opnfv_net_public_gw: 172.30.10.1
+ opnfv_net_public_pool_start: 172.30.10.80
+ opnfv_net_public_pool_end: 172.30.10.100
opnfv_name_servers: ['8.8.8.8', '8.8.4.4']
opnfv_dns_server01: '8.8.8.8'
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm_pdf.yml.j2 b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm_pdf.yml.j2
index b7f6b7cdc..ddbdfd578 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm_pdf.yml.j2
+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm_pdf.yml.j2
@@ -91,7 +91,7 @@ parameters:
enabled: true
proto: manual
address: 0.0.0.0
- netmask: 255.255.255.0
+ netmask: ${_param:opnfv_net_public_mask}
type: bridge
use_interfaces:
- {{ nic_public }}{% if vlan_public and vlan_public != 'native' %}.{{ vlan_public }}{% endif %}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute_pdf.yml.j2
index bf2b66e4f..8824971ae 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute_pdf.yml.j2
+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute_pdf.yml.j2
@@ -60,7 +60,11 @@ parameters:
type: eth
proto: manual
address: 0.0.0.0
- netmask: 255.255.255.0
+ {%- if nic == nic_public %}
+ netmask: ${_param:opnfv_net_public_mask}
+ {%- else %}
+ netmask: 255.255.255.0
+ {%- endif %}
mtu: ${_param:interface_mtu}
name: {{ nic }}
{%- endif %}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_biport.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_biport.yml
index f5a4ad0ef..f0fabbafa 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_biport.yml
+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_biport.yml
@@ -26,4 +26,4 @@ parameters:
proto: static
name: ${_param:single_nic}
address: ${_param:single_address}
- netmask: 255.255.255.0
+ netmask: ${_param:opnfv_net_public_mask}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_triport.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_triport.yml
index 146e54575..47f2f76f4 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_triport.yml
+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_triport.yml
@@ -27,7 +27,7 @@ parameters:
proto: static
name: ${_param:single_nic}
address: ${_param:single_address}
- netmask: 255.255.255.0
+ netmask: ${_param:opnfv_net_public_mask}
route:
public:
address: 0.0.0.0
diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh
index 29c27d9e9..298590309 100644
--- a/mcp/scripts/lib.sh
+++ b/mcp/scripts/lib.sh
@@ -456,3 +456,10 @@ function wait_for {
return 1
)
}
+
+function get_nova_compute_pillar_data {
+ local value=$(salt -C 'I@nova:compute and *01*' pillar.get _param:"${1}" --out yaml | cut -d ' ' -f2)
+ if [ "${value}" != "''" ]; then
+ echo ${value}
+ fi
+}