Merge pull request #52 from hjensas/routed-networks

Routed networks - - Add external gateways
This commit is contained in:
Ben Nemec 2018-10-30 10:37:23 -05:00 committed by GitHub
commit 8026343bb7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 166 additions and 2 deletions

View File

@ -19,6 +19,21 @@ parameters:
The base image for the dhcrelay instance. A CentOS 7 image is currently
the only one supported.
dhcp_relay_provision_address:
type: string
description: DHCP relay address on the provision network subnet
default: 192.168.24.253
dhcp_relay_provision2_address:
type: string
description: DHCP relay address on the provision2 network subnet
default: 192.168.25.253
dhcp_relay_provision3_address:
type: string
description: DHCP relay address on the provision3 network subnet
default: 192.168.26.253
dhcp_ips:
type: json
description: |
@ -44,6 +59,8 @@ resources:
name: dhcp_relay_port_provision
network: {get_param: [networks, provision]}
port_security_enabled: False
fixed_ips:
- ip_address: {get_param: dhcp_relay_provision_address}
dhcp_relay_port_provision2:
type: OS::Neutron::Port
@ -51,6 +68,8 @@ resources:
name: dhcp_relay_port_provision2
network: {get_param: [networks, provision2]}
port_security_enabled: False
fixed_ips:
- ip_address: {get_param: dhcp_relay_provision2_address}
dhcp_relay_port_provision3:
type: OS::Neutron::Port
@ -58,6 +77,8 @@ resources:
name: dhcp_relay_port_provision3
network: {get_param: [networks, provision3]}
port_security_enabled: False
fixed_ips:
- ip_address: {get_param: dhcp_relay_provision3_address}
init_networks:
type: OS::Heat::CloudConfig

View File

@ -212,3 +212,4 @@ outputs:
map_merge:
- get_attr: [undercloud_networks, provision_network_routers]
- get_attr: [baremetal_env, baremetal_networks_routers_addresses]
- get_attr: [undercloud_networks, public_network_router]

View File

@ -0,0 +1,105 @@
heat_template_version: 2015-04-30
parameters:
provision_net:
type: string
default: provision
description: Name of a network that will be used for provisioning traffic
provision_net_cidr:
type: string
description: CIDR for provision network subnet
default: 192.168.24.0/24
provision_net_shared:
type: boolean
description: Whether this network should be shared across all tenants
default: false
public_net:
type: string
description: Name of the overcloud external network
default: public
public_net_cidr:
type: string
description: CIDR for external network subnet
default: 10.0.0.0/24
public_net_router_address:
type: string
description: Router address for the public network subnet
default: 10.0.0.254
public_net_shared:
type: boolean
description: Whether this network should be shared across all tenants
default: false
external_net:
type: string
description: An external network for the networks to route to
resources:
provision_network:
type: OS::Neutron::Net
properties:
name: {get_param: provision_net}
shared: {get_param: provision_net_shared}
provision_subnet:
type: OS::Neutron::Subnet
properties:
network: {get_resource: provision_network}
name: {get_param: provision_net}
cidr: {get_param: provision_net_cidr}
gateway_ip: null
enable_dhcp: false
public_network:
type: OS::Neutron::Net
properties:
name: {get_param: public_net}
shared: {get_param: public_net_shared}
public_subnet:
type: OS::Neutron::Subnet
properties:
network: {get_resource: public_network}
name: {get_param: public_net}
cidr: {get_param: public_net_cidr}
gateway_ip: null
enable_dhcp: false
public_router:
type: OS::Neutron::Router
properties:
name: public-router
external_gateway_info:
network: {get_param: external_net}
public_router_port:
type: OS::Neutron::Port
properties:
network: {get_resource: public_network}
port_security_enabled: false
fixed_ips:
- ip_address: {get_param: public_net_router_address}
public_router_interface:
type: OS::Neutron::RouterInterface
properties:
router: {get_resource: public_router}
port: {get_resource: public_router_port}
outputs:
networks:
value:
provision: {get_resource: provision_network}
public: {get_resource: public_network}
# The provision_network_routers is here for compatibility only
provision_network_routers:
value: {}
public_network_router:
value:
public_router: {get_attr: [public_router_port, fixed_ips, 0, ip_address]}

View File

@ -71,16 +71,27 @@ parameters:
description: CIDR for external network subnet
default: 10.0.0.0/24
public_net_router_address:
type: string
description: Router address for the public network subnet
default: 10.0.0.254
public_net_shared:
type: boolean
description: Whether this network should be shared across all tenants
default: false
external_net:
type: string
description: An external network for the networks to route to
resources:
provision_router:
type: OS::Neutron::Router
properties:
name: provision-router
external_gateway_info:
network: {get_param: external_net}
provision_network:
type: OS::Neutron::Net
@ -184,6 +195,27 @@ resources:
gateway_ip: null
enable_dhcp: false
public_router:
type: OS::Neutron::Router
properties:
name: public-router
external_gateway_info:
network: {get_param: external_net}
public_router_port:
type: OS::Neutron::Port
properties:
network: {get_resource: public_network}
port_security_enabled: false
fixed_ips:
- ip_address: {get_param: public_net_router_address}
public_router_interface:
type: OS::Neutron::RouterInterface
properties:
router: {get_resource: public_router}
port: {get_resource: public_router_port}
outputs:
networks:
value:
@ -196,3 +228,6 @@ outputs:
provision_router: {get_attr: [provision_router_port, fixed_ips, 0, ip_address]}
provision2_router: {get_attr: [provision_router_port2, fixed_ips, 0, ip_address]}
provision3_router: {get_attr: [provision_router_port3, fixed_ips, 0, ip_address]}
public_network_router:
value:
public_router: {get_attr: [public_router_port, fixed_ips, 0, ip_address]}

View File

@ -67,6 +67,8 @@ outputs:
value:
provision: {get_resource: provision_network}
public: {get_resource: public_network}
# The provision_network_routers is here for compatibility only
# The provision and public network routers is here for compatibility only
provision_network_routers:
value: {}
value: null
public_network_router:
value: null