From 7c79115c2a1b6716f23f73be244bd1840a9e6f82 Mon Sep 17 00:00:00 2001 From: Guillermo Herrero Date: Thu, 11 Jan 2018 13:23:28 +0100 Subject: 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 --- mcp/config/states/networks | 27 ++++++++++++---------- .../opnfv/pod_config.yml.example | 4 ++++ .../infra/kvm_pdf.yml.j2 | 2 +- .../openstack_compute_pdf.yml.j2 | 6 ++++- .../openstack_interface_vcp_biport.yml | 2 +- .../openstack_interface_vcp_triport.yml | 2 +- mcp/scripts/lib.sh | 7 ++++++ 7 files changed, 34 insertions(+), 16 deletions(-) (limited to 'mcp') 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 +} -- cgit 1.2.3-korg