openstack-virtual-baremetal/templates/undercloud-networks-routed.yaml
Harald Jensås 6f5481816f Add external interface to routed networks provision router
When deploying TripleO overcloud nodes using the ctlplane
network as the default gateway need to reach the internet
(ntp servers etc.). Previously this was done using the
undercloud as a masquerading router, doing so when nodes
are not on the same L2 network as the undercloud is not as
straight forward. (I.e we would have to set up routes on
the provision router in ovb with a default route via the
ip-address of the undercloud.)

Hooking up the router for the provision networks to the
external_net and let the ovb infra router do the NAT'ing
makes more sense.
2018-10-24 19:18:23 +02:00

234 lines
6.4 KiB
YAML

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_router_address:
type: string
description: Router address for the provision network subnet
default: 192.168.24.254
provision_net_shared:
type: boolean
description: Whether this network should be shared across all tenants
default: false
provision_net2:
type: string
default: provision2
description: Name of a second network that will be used for provisioning traffic
provision_net2_cidr:
type: string
description: CIDR for second provision network subnet
default: 192.168.25.0/24
provision_net2_router_address:
type: string
description: Router address for the provision network subnet
default: 192.168.25.254
provision_net2_shared:
type: boolean
description: Whether this network should be shared across all tenants
default: false
provision_net3:
type: string
default: provision3
description: Name of a third network that will be used for provisioning traffic
provision_net3_cidr:
type: string
description: CIDR for third provision network subnet
default: 192.168.26.0/24
provision_net3_router_address:
type: string
description: Router address for the provision network subnet
default: 192.168.26.254
provision_net3_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_router:
type: OS::Neutron::Router
properties:
name: provision-router
external_gateway_info:
network: {get_param: external_net}
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
provision_router_port:
type: OS::Neutron::Port
properties:
network: {get_resource: provision_network}
port_security_enabled: false
fixed_ips:
- ip_address: {get_param: provision_net_router_address}
provision_router_interface:
type: OS::Neutron::RouterInterface
properties:
router: {get_resource: provision_router}
port: {get_resource: provision_router_port}
provision_network2:
type: OS::Neutron::Net
properties:
name: {get_param: provision_net2}
shared: {get_param: provision_net2_shared}
provision_subnet2:
type: OS::Neutron::Subnet
properties:
network: {get_resource: provision_network2}
name: {get_param: provision_net2}
cidr: {get_param: provision_net2_cidr}
gateway_ip: null
enable_dhcp: false
provision_router_port2:
type: OS::Neutron::Port
properties:
network: {get_resource: provision_network2}
port_security_enabled: false
fixed_ips:
- ip_address: {get_param: provision_net2_router_address}
provision_router_interface2:
type: OS::Neutron::RouterInterface
properties:
router: {get_resource: provision_router}
port: {get_resource: provision_router_port2}
provision_network3:
type: OS::Neutron::Net
properties:
name: {get_param: provision_net3}
shared: {get_param: provision_net3_shared}
provision_subnet3:
type: OS::Neutron::Subnet
properties:
network: {get_resource: provision_network3}
name: {get_param: provision_net3}
cidr: {get_param: provision_net3_cidr}
gateway_ip: null
enable_dhcp: false
provision_router_port3:
type: OS::Neutron::Port
properties:
network: {get_resource: provision_network3}
port_security_enabled: false
fixed_ips:
- ip_address: {get_param: provision_net3_router_address}
provision_router_interface3:
type: OS::Neutron::RouterInterface
properties:
router: {get_resource: provision_router}
port: {get_resource: provision_router_port3}
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}
provision2: {get_resource: provision_network2}
provision3: {get_resource: provision_network3}
public: {get_resource: public_network}
provision_network_routers:
value:
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]}