Add allocation-pool support for the public_net

TripleO CI uses 10.0.0.1 statically for the undercloud's
public interface. When using extra node in some job's
there is sometime a conflict, because the extra node get's
the 10.0.0.1 address allocated.

Adding support to define the allocation pools on the
public_net allows TripleO CI to define a pool with the
10.0.0.1 address eliminated.

A good practice would be to set up OVB to use
[{start: 10.0.0.128, end: 10.0.0.253}], and then configure
the undercloud/overcloud deployed on the OVB infrastructure
to use addresses in the range 10.0.0.1-10.0.0.127.

The parameter public_net_allocation_pools controls the
allocation pool setting, by default all addresses of the
subnet is in the pool.

Related-Bug: #1874418
Change-Id: Ieca4864e069148abb49eb709bf7f48a14ef04e77
(cherry picked from commit ccec11f9c8)

Fix type of public_net_allocation_pools

https://review.opendev.org/#/c/733598/ added support
of allocation_pools, but set type of public_net_allocation_pools
to comma_delimited_list which causes below issue because for
comma_delimited_list, list items are converted to string:-

Property error: : resources.public_subnet.properties.allocation_pools[0]:
"{'end': '10.0.0.199', 'start': '10.0.0.128'}" is not a map

We need to use type: json to get it work, this patch fixes it.

Related-Bug: #1874418
Change-Id: Iaebb297e5018ce8db6dd1f67a308e7707117fe03
(cherry picked from commit ff4d8fa4e2)
This commit is contained in:
Harald Jensås 2020-06-04 14:32:30 +02:00 committed by yatin
parent 5f21e613cf
commit cdc421ead6
3 changed files with 21 additions and 0 deletions

View File

@ -61,6 +61,18 @@ parameter_defaults:
# Type: string
public_net: public
# Allocation Pools for the public network
# Type: json
public_net_allocation_pools: []
# CIDR for external network subnet
# Type: string
public_net_cidr: 10.0.0.0/24
# IP version for the public subnet
# Type: number
public_net_ip_version: 4
# Whether this network should be shared across all tenants
# Type: boolean
public_net_shared: False

View File

@ -15,6 +15,9 @@ environments:
- baremetal_prefix
- node_count
- public_net
- public_net_cidr
- public_net_allocation_pools
- public_net_ip_version
- public_net_shared
- provision_net
- provision_net_shared

View File

@ -69,6 +69,11 @@ parameters:
description: Name of the overcloud external network
default: public
public_net_allocation_pools:
type: json
description: Allocation Pools for the public network
default: []
public_net_cidr:
type: string
description: CIDR for external network subnet
@ -200,6 +205,7 @@ resources:
network: {get_resource: public_network}
name: {get_param: public_net}
cidr: {get_param: public_net_cidr}
allocation_pools: {get_param: public_net_allocation_pools}
gateway_ip: null
enable_dhcp: false