Convert network templates to be rendered via j2

Use the network.network.j2.yaml to render these files, instead
of relying on the hard-coded versions.

Note this doesn't currently consider the _v6 templates as we may want
to deprecate these and instead rely on an ipv6 specific network_data file,
or perhaps make the network/network.network.j2.yaml generic and able to
detect the version from the cidr?

Change-Id: I662e8d0b3737c7807d18c8917bfce1e25baa3d8a
Partially-Implements: blueprint composable-networks
This commit is contained in:
Steven Hardy 2017-08-09 19:17:49 +01:00
parent 6976b8f650
commit a465b8dddf
22 changed files with 32 additions and 437 deletions

View File

@ -5,12 +5,6 @@
# name:
# - puppet/cephstorage-role.yaml
name:
- network/internal_api.yaml
- network/external.yaml
- network/storage.yaml
- network/storage_mgmt.yaml
- network/tenant.yaml
- network/management.yaml
- network/internal_api_v6.yaml
- network/external_v6.yaml
- network/storage_v6.yaml

View File

@ -1,69 +0,0 @@
heat_template_version: pike
description: >
External network. Public traffic, Neutron l3router for floating IPs/SNAT, etc.
parameters:
# the defaults here work for static IP assignment (IPAM) only
ExternalNetCidr:
default: '10.0.0.0/24'
description: Cidr for the external network.
type: string
ExternalNetValueSpecs:
default: {'provider:physical_network': 'external', 'provider:network_type': 'flat'}
description: Value specs for the external network.
type: json
ExternalNetAdminStateUp:
default: false
description: The admin state of the network.
type: boolean
ExternalNetEnableDHCP:
default: false
description: Whether to enable DHCP on the associated subnet.
type: boolean
ExternalNetShared:
default: false
description: Whether this network is shared across all tenants.
type: boolean
ExternalNetName:
default: external
description: The name of the external network.
type: string
ExternalSubnetName:
default: external_subnet
description: The name of the external subnet in Neutron.
type: string
ExternalAllocationPools:
default: [{'start': '10.0.0.4', 'end': '10.0.0.250'}]
description: Ip allocation pool range for the external network.
type: json
ExternalInterfaceDefaultRoute:
default: '10.0.0.1'
description: default route for the external network
type: string
resources:
ExternalNetwork:
type: OS::Neutron::Net
properties:
admin_state_up: {get_param: ExternalNetAdminStateUp}
name: {get_param: ExternalNetName}
shared: {get_param: ExternalNetShared}
value_specs: {get_param: ExternalNetValueSpecs}
ExternalSubnet:
type: OS::Neutron::Subnet
properties:
cidr: {get_param: ExternalNetCidr}
enable_dhcp: {get_param: ExternalNetEnableDHCP}
name: {get_param: ExternalSubnetName}
network: {get_resource: ExternalNetwork}
allocation_pools: {get_param: ExternalAllocationPools}
gateway_ip: {get_param: ExternalInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: Neutron external network
value: {get_resource: ExternalNetwork}
subnet_cidr:
value: {get_attr: [ExternalSubnet, cidr]}

View File

@ -1,65 +0,0 @@
heat_template_version: pike
description: >
Internal API network. Used for most APIs, Database, RPC.
parameters:
# the defaults here work for static IP assignment (IPAM) only
InternalApiNetCidr:
default: '172.16.2.0/24'
description: Cidr for the internal API network.
type: string
InternalApiNetValueSpecs:
default: {'provider:physical_network': 'internal_api', 'provider:network_type': 'flat'}
description: Value specs for the internal API network.
type: json
InternalApiNetAdminStateUp:
default: false
description: The admin state of the network.
type: boolean
InternalApiNetEnableDHCP:
default: false
description: Whether to enable DHCP on the associated subnet.
type: boolean
InternalApiNetShared:
default: false
description: Whether this network is shared across all tenants.
type: boolean
InternalApiNetName:
default: internal_api
description: The name of the internal API network.
type: string
InternalApiSubnetName:
default: internal_api_subnet
description: The name of the internal API subnet in Neutron.
type: string
InternalApiAllocationPools:
default: [{'start': '172.16.2.4', 'end': '172.16.2.250'}]
description: Ip allocation pool range for the internal API network.
type: json
resources:
InternalApiNetwork:
type: OS::Neutron::Net
properties:
admin_state_up: {get_param: InternalApiNetAdminStateUp}
name: {get_param: InternalApiNetName}
shared: {get_param: InternalApiNetShared}
value_specs: {get_param: InternalApiNetValueSpecs}
InternalApiSubnet:
type: OS::Neutron::Subnet
properties:
cidr: {get_param: InternalApiNetCidr}
enable_dhcp: {get_param: InternalApiNetEnableDHCP}
name: {get_param: InternalApiSubnetName}
network: {get_resource: InternalApiNetwork}
allocation_pools: {get_param: InternalApiAllocationPools}
gateway_ip: null
outputs:
OS::stack_id:
description: Neutron internal network
value: {get_resource: InternalApiNetwork}
subnet_cidr:
value: {get_attr: [InternalApiSubnet, cidr]}

View File

@ -8,11 +8,11 @@ parameters:
InternalApiNetCidr:
# OpenStack uses the EUI-64 address format, which requires a /64 prefix
default: 'fd00:fd00:fd00:2000::/64'
description: Cidr for the internal API network.
description: Cidr for the internal_api network.
type: string
InternalApiNetValueSpecs:
default: {'provider:physical_network': 'internal_api', 'provider:network_type': 'flat'}
description: Value specs for the internal API network.
description: Value specs for the internal_api network.
type: json
InternalApiNetAdminStateUp:
default: false
@ -24,15 +24,15 @@ parameters:
type: boolean
InternalApiNetName:
default: internal_api
description: The name of the internal API network.
description: The name of the internal_api network.
type: string
InternalApiSubnetName:
default: internal_api_subnet
description: The name of the internal API subnet in Neutron.
description: The name of the internal_api subnet in Neutron.
type: string
InternalApiAllocationPools:
default: [{'start': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}]
description: Ip allocation pool range for the internal API network.
description: Ip allocation pool range for the internal_api network.
type: json
IPv6AddressMode:
default: dhcpv6-stateful

View File

@ -1,70 +0,0 @@
heat_template_version: pike
description: >
Management network. System administration, SSH, DNS, NTP, etc. This network
would usually be the default gateway for the non-controller nodes.
parameters:
# the defaults here work for static IP assignment (IPAM) only
ManagementNetCidr:
default: '10.0.1.0/24'
description: Cidr for the management network.
type: string
ManagementNetValueSpecs:
default: {'provider:physical_network': 'management', 'provider:network_type': 'flat'}
description: Value specs for the management network.
type: json
ManagementNetAdminStateUp:
default: false
description: The admin state of the network.
type: boolean
ManagementNetEnableDHCP:
default: false
description: Whether to enable DHCP on the associated subnet.
type: boolean
ManagementNetShared:
default: false
description: Whether this network is shared across all tenants.
type: boolean
ManagementNetName:
default: management
description: The name of the management network.
type: string
ManagementSubnetName:
default: management_subnet
description: The name of the management subnet in Neutron.
type: string
ManagementAllocationPools:
default: [{'start': '10.0.1.4', 'end': '10.0.1.250'}]
description: Ip allocation pool range for the management network.
type: json
ManagementInterfaceDefaultRoute:
default: unset
description: The default route of the management network.
type: string
resources:
ManagementNetwork:
type: OS::Neutron::Net
properties:
admin_state_up: {get_param: ManagementNetAdminStateUp}
name: {get_param: ManagementNetName}
shared: {get_param: ManagementNetShared}
value_specs: {get_param: ManagementNetValueSpecs}
ManagementSubnet:
type: OS::Neutron::Subnet
properties:
cidr: {get_param: ManagementNetCidr}
enable_dhcp: {get_param: ManagementNetEnableDHCP}
name: {get_param: ManagementSubnetName}
network: {get_resource: ManagementNetwork}
allocation_pools: {get_param: ManagementAllocationPools}
gateway_ip: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: Neutron management network
value: {get_resource: ManagementNetwork}
subnet_cidr:
value: {get_attr: [ManagementSubnet, cidr]}

View File

@ -15,7 +15,7 @@ parameters:
type: json
{{network.name}}NetAdminStateUp:
default: false
description: This admin state of the network.
description: The admin state of the network.
type: boolean
{{network.name}}NetEnableDHCP:
default: false
@ -27,7 +27,7 @@ parameters:
type: boolean
{{network.name}}NetName:
default: {{network.name_lower}}
description: The name of the {{network.name_lower}} network.
description: The name of the {{network.name_lower}} network.
type: string
{{network.name}}SubnetName:
default: {{network.name_lower}}_subnet
@ -38,7 +38,7 @@ parameters:
description: Ip allocation pool range for the {{network.name_lower}} network.
type: json
{{network.name}}InterfaceDefaultRoute:
default: {{network.gateway_ip|default("not_defined")}}
default: {{network.gateway_ip|default('""')}}
description: default route for the {{network.name_lower}} network
type: string
{%- if network.vlan %}

View File

@ -5,7 +5,7 @@ description: >
parameters:
InternalApiNetName:
description: The name of the internal API network.
description: The name of the internal_api network.
default: internal_api
type: string
PortName:

View File

@ -5,7 +5,7 @@ description: >
parameters:
InternalApiNetName:
description: The name of the internal API network.
description: The name of the internal_api network.
default: internal_api
type: string
PortName:
@ -26,7 +26,7 @@ parameters:
type: number
InternalApiNetCidr:
default: '172.16.2.0/24'
description: Cidr for the internal API network.
description: Cidr for the internal_api network.
type: string
outputs:

View File

@ -6,7 +6,7 @@ description: >
parameters:
InternalApiNetName:
description: The name of the internal API network.
description: The name of the internal_api network.
default: internal_api
type: string
PortName:
@ -27,7 +27,7 @@ parameters:
type: number
InternalApiNetCidr:
default: 'fd00:fd00:fd00:2000::/64'
description: Cidr for the internal API network.
description: Cidr for the internal_api network.
type: string
outputs:

View File

@ -5,7 +5,7 @@ description: >
parameters:
InternalApiNetName:
description: The name of the internal API network.
description: The name of the internal_api network.
default: internal_api
type: string
PortName:

View File

@ -37,7 +37,7 @@ parameters:
InternalApiNetName:
default: internal_api
description: The name of the internal API network.
description: The name of the internal_api network.
type: string
ExternalNetName:
default: external
@ -53,7 +53,7 @@ parameters:
type: string
StorageMgmtNetName:
default: storage_mgmt
description: The name of the Storage management network.
description: The name of the storage_mgmt network.
type: string
TenantNetName:
default: tenant

View File

@ -77,7 +77,7 @@ parameters:
InternalApiNetName:
default: internal_api
description: The name of the internal API network.
description: The name of the internal_api network.
type: string
ExternalNetName:
default: external
@ -93,7 +93,7 @@ parameters:
type: string
StorageMgmtNetName:
default: storage_mgmt
description: The name of the Storage management network.
description: The name of the storage_mgmt network.
type: string
TenantNetName:
default: tenant

View File

@ -5,7 +5,7 @@ description: >
parameters:
StorageMgmtNetName:
description: The name of the Storage management network.
description: The name of the storage_mgmt network.
default: storage_mgmt
type: string
PortName:

View File

@ -5,7 +5,7 @@ description: >
parameters:
StorageMgmtNetName:
description: The name of the Storage management network.
description: The name of the storage_mgmt network.
default: storage_mgmt
type: string
PortName:
@ -26,7 +26,7 @@ parameters:
type: number
StorageMgmtNetCidr:
default: '172.16.3.0/24'
description: Cidr for the storage management network.
description: Cidr for the storage_mgmt network.
type: string
outputs:

View File

@ -6,7 +6,7 @@ description: >
parameters:
StorageMgmtNetName:
description: The name of the Storage management network.
description: The name of the storage_mgmt network.
default: storage_mgmt
type: string
PortName:
@ -27,7 +27,7 @@ parameters:
type: number
StorageMgmtNetCidr:
default: 'fd00:fd00:fd00:4000::/64'
description: Cidr for the storage management network.
description: Cidr for the storage_mgmt network.
type: string
outputs:

View File

@ -5,7 +5,7 @@ description: >
parameters:
StorageMgmtNetName:
description: The name of the Storage management network.
description: The name of the storage_mgmt network.
default: storage_mgmt
type: string
PortName:

View File

@ -106,7 +106,7 @@ parameters:
InternalApiNetName:
default: internal_api
description: The name of the internal API network.
description: The name of the internal_api network.
type: string
ExternalNetName:
default: external
@ -122,7 +122,7 @@ parameters:
type: string
StorageMgmtNetName:
default: storage_mgmt
description: The name of the Storage management network.
description: The name of the storage_mgmt network.
type: string
TenantNetName:
default: tenant

View File

@ -1,65 +0,0 @@
heat_template_version: pike
description: >
Storage network.
parameters:
# the defaults here work for static IP assignment (IPAM) only
StorageNetCidr:
default: '172.16.1.0/24'
description: Cidr for the storage network.
type: string
StorageNetValueSpecs:
default: {'provider:physical_network': 'storage', 'provider:network_type': 'flat'}
description: Value specs for the storage network.
type: json
StorageNetAdminStateUp:
default: false
description: The admin state of the network.
type: boolean
StorageNetEnableDHCP:
default: false
description: Whether to enable DHCP on the associated subnet.
type: boolean
StorageNetShared:
default: false
description: Whether this network is shared across all tenants.
type: boolean
StorageNetName:
default: storage
description: The name of the storage network.
type: string
StorageSubnetName:
default: storage_subnet
description: The name of the storage subnet in Neutron.
type: string
StorageAllocationPools:
default: [{'start': '172.16.1.4', 'end': '172.16.1.250'}]
description: Ip allocation pool range for the storage network.
type: json
resources:
StorageNetwork:
type: OS::Neutron::Net
properties:
admin_state_up: {get_param: StorageNetAdminStateUp}
name: {get_param: StorageNetName}
shared: {get_param: StorageNetShared}
value_specs: {get_param: StorageNetValueSpecs}
StorageSubnet:
type: OS::Neutron::Subnet
properties:
cidr: {get_param: StorageNetCidr}
enable_dhcp: {get_param: StorageNetEnableDHCP}
name: {get_param: StorageSubnetName}
network: {get_resource: StorageNetwork}
allocation_pools: {get_param: StorageAllocationPools}
gateway_ip: null
outputs:
OS::stack_id:
description: Neutron storage network
value: {get_resource: StorageNetwork}
subnet_cidr:
value: {get_attr: [StorageSubnet, cidr]}

View File

@ -1,65 +0,0 @@
heat_template_version: pike
description: >
Storage management network. Storage replication, etc.
parameters:
# the defaults here work for static IP assignment (IPAM) only
StorageMgmtNetCidr:
default: '172.16.3.0/24'
description: Cidr for the storage management network.
type: string
StorageMgmtNetValueSpecs:
default: {'provider:physical_network': 'storage_mgmt', 'provider:network_type': 'flat'}
description: Value specs for the storage_mgmt network.
type: json
StorageMgmtNetAdminStateUp:
default: false
description: The admin state of the network.
type: boolean
StorageMgmtNetEnableDHCP:
default: false
description: Whether to enable DHCP on the associated subnet.
type: boolean
StorageMgmtNetShared:
default: false
description: Whether this network is shared across all tenants.
type: boolean
StorageMgmtNetName:
default: storage_mgmt
description: The name of the Storage management network.
type: string
StorageMgmtSubnetName:
default: storage_mgmt_subnet
description: The name of the Storage management subnet in Neutron.
type: string
StorageMgmtAllocationPools:
default: [{'start': '172.16.3.4', 'end': '172.16.3.250'}]
description: Ip allocation pool range for the storage mgmt network.
type: json
resources:
StorageMgmtNetwork:
type: OS::Neutron::Net
properties:
admin_state_up: {get_param: StorageMgmtNetAdminStateUp}
name: {get_param: StorageMgmtNetName}
shared: {get_param: StorageMgmtNetShared}
value_specs: {get_param: StorageMgmtNetValueSpecs}
StorageMgmtSubnet:
type: OS::Neutron::Subnet
properties:
cidr: {get_param: StorageMgmtNetCidr}
enable_dhcp: {get_param: StorageMgmtNetEnableDHCP}
name: {get_param: StorageMgmtSubnetName}
network: {get_resource: StorageMgmtNetwork}
allocation_pools: {get_param: StorageMgmtAllocationPools}
gateway_ip: null
outputs:
OS::stack_id:
description: Neutron storage management network
value: {get_resource: StorageMgmtNetwork}
subnet_cidr:
value: {get_attr: [StorageMgmtSubnet, cidr]}

View File

@ -8,7 +8,7 @@ parameters:
StorageMgmtNetCidr:
# OpenStack uses the EUI-64 address format, which requires a /64 prefix
default: 'fd00:fd00:fd00:4000::/64'
description: Cidr for the storage management network.
description: Cidr for the storage_mgmt network.
type: string
StorageMgmtNetValueSpecs:
default: {'provider:physical_network': 'storage_mgmt', 'provider:network_type': 'flat'}
@ -24,15 +24,15 @@ parameters:
type: boolean
StorageMgmtNetName:
default: storage_mgmt
description: The name of the Storage management network.
description: The name of the storage_mgmt network.
type: string
StorageMgmtSubnetName:
default: storage_mgmt_subnet
description: The name of the Storage management subnet in Neutron.
description: The name of the storage_mgmt subnet in Neutron.
type: string
StorageMgmtAllocationPools:
default: [{'start': 'fd00:fd00:fd00:4000::10', 'end': 'fd00:fd00:fd00:4000:ffff:ffff:ffff:fffe'}]
description: Ip allocation pool range for the storage mgmt network.
description: Ip allocation pool range for the storage_mgmt network.
type: json
IPv6AddressMode:
default: dhcpv6-stateful

View File

@ -1,65 +0,0 @@
heat_template_version: pike
description: >
Tenant network.
parameters:
# the defaults here work for static IP assignment (IPAM) only
TenantNetCidr:
default: '172.16.0.0/24'
description: Cidr for the tenant network.
type: string
TenantNetValueSpecs:
default: {'provider:physical_network': 'tenant', 'provider:network_type': 'flat'}
description: Value specs for the tenant network.
type: json
TenantNetAdminStateUp:
default: false
description: The admin state of the network.
type: boolean
TenantNetEnableDHCP:
default: false
description: Whether to enable DHCP on the associated subnet.
type: boolean
TenantNetShared:
default: false
description: Whether this network is shared across all tenants.
type: boolean
TenantNetName:
default: tenant
description: The name of the tenant network.
type: string
TenantSubnetName:
default: tenant_subnet
description: The name of the tenant subnet in Neutron.
type: string
TenantAllocationPools:
default: [{'start': '172.16.0.4', 'end': '172.16.0.250'}]
description: Ip allocation pool range for the tenant network.
type: json
resources:
TenantNetwork:
type: OS::Neutron::Net
properties:
admin_state_up: {get_param: TenantNetAdminStateUp}
name: {get_param: TenantNetName}
shared: {get_param: TenantNetShared}
value_specs: {get_param: TenantNetValueSpecs}
TenantSubnet:
type: OS::Neutron::Subnet
properties:
cidr: {get_param: TenantNetCidr}
enable_dhcp: {get_param: TenantNetEnableDHCP}
name: {get_param: TenantSubnetName}
network: {get_resource: TenantNetwork}
allocation_pools: {get_param: TenantAllocationPools}
gateway_ip: null
outputs:
OS::stack_id:
description: Neutron tenant network
value: {get_resource: TenantNetwork}
subnet_cidr:
value: {get_attr: [TenantSubnet, cidr]}

View File

@ -76,7 +76,7 @@ parameters:
InternalApiNetName:
default: internal_api
description: The name of the internal API network.
description: The name of the internal_api network.
type: string
ExternalNetName:
default: external
@ -92,7 +92,7 @@ parameters:
type: string
StorageMgmtNetName:
default: storage_mgmt
description: The name of the Storage management network.
description: The name of the storage_mgmt network.
type: string
TenantNetName:
default: tenant