Merge "Remove ipv6 specific network templates" into stable/pike
This commit is contained in:
commit
d875f79dab
60
environments/network-environment-v6.yaml
Normal file
60
environments/network-environment-v6.yaml
Normal file
@ -0,0 +1,60 @@
|
||||
#This file is an example of an environment file for defining the isolated
|
||||
#networks and related parameters.
|
||||
resource_registry:
|
||||
# Network Interface templates to use (these files must exist)
|
||||
OS::TripleO::BlockStorage::Net::SoftwareConfig:
|
||||
../network/config/single-nic-vlans/cinder-storage.yaml
|
||||
OS::TripleO::Compute::Net::SoftwareConfig:
|
||||
../network/config/single-nic-vlans/compute.yaml
|
||||
OS::TripleO::Controller::Net::SoftwareConfig:
|
||||
../network/config/single-nic-vlans/controller.yaml
|
||||
OS::TripleO::ObjectStorage::Net::SoftwareConfig:
|
||||
../network/config/single-nic-vlans/swift-storage.yaml
|
||||
OS::TripleO::CephStorage::Net::SoftwareConfig:
|
||||
../network/config/single-nic-vlans/ceph-storage.yaml
|
||||
|
||||
parameter_defaults:
|
||||
# This section is where deployment-specific configuration is done
|
||||
# CIDR subnet mask length for provisioning network
|
||||
ControlPlaneSubnetCidr: '24'
|
||||
# Gateway router for the provisioning network (or Undercloud IP)
|
||||
ControlPlaneDefaultRoute: 192.168.24.254
|
||||
EC2MetadataIp: 192.168.24.1 # Generally the IP of the Undercloud
|
||||
# Customize the IP subnets to match the local environment
|
||||
InternalApiNetCidr: 'fd00:fd00:fd00:2000::/64'
|
||||
StorageNetCidr: 'fd00:fd00:fd00:3000::/64'
|
||||
StorageMgmtNetCidr: 'fd00:fd00:fd00:4000::/64'
|
||||
# Tenant tunneling network is IPv4 until IPv6 is fully supported
|
||||
TenantNetCidr: 172.16.0.0/24
|
||||
ExternalNetCidr: '2001:db8:fd00:1000::/64'
|
||||
# Customize the VLAN IDs to match the local environment
|
||||
InternalApiNetworkVlanID: 20
|
||||
StorageNetworkVlanID: 30
|
||||
StorageMgmtNetworkVlanID: 40
|
||||
TenantNetworkVlanID: 50
|
||||
ExternalNetworkVlanID: 10
|
||||
# Customize the IP ranges on each network to use for static IPs and VIPs
|
||||
InternalApiAllocationPools: [{'start': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}]
|
||||
StorageAllocationPools: [{'start': 'fd00:fd00:fd00:3000::10', 'end': 'fd00:fd00:fd00:3000:ffff:ffff:ffff:fffe'}]
|
||||
StorageMgmtAllocationPools: [{'start': 'fd00:fd00:fd00:4000::10', 'end': 'fd00:fd00:fd00:4000:ffff:ffff:ffff:fffe'}]
|
||||
TenantAllocationPools: [{'start': '172.16.0.10', 'end': '172.16.0.200'}]
|
||||
# Leave room if the external network is also used for floating IPs
|
||||
ExternalAllocationPools: [{'start': '2001:db8:fd00:1000::10', 'end': '2001:db8:fd00:1000:ffff:ffff:ffff:fffe'}]
|
||||
# Gateway router for the external network
|
||||
ExternalInterfaceDefaultRoute: '2001:db8:fd00:1000::1'
|
||||
# Uncomment if using the Management Network (see network-management-v6.yaml)
|
||||
# ManagementNetCidr: 'fd00:fd00:fd00:6000::/64'
|
||||
# ManagementAllocationPools: [{'start': 'fd00:fd00:fd00:6000::10', 'end': 'fd00:fd00:fd00:6000:ffff:ffff:ffff:fffe'}]
|
||||
# Use either this parameter or ControlPlaneDefaultRoute in the NIC templates
|
||||
# ManagementInterfaceDefaultRoute: 'fd00:fd00:fd00:6000::1'
|
||||
# Define the DNS servers (maximum 2) for the overcloud nodes
|
||||
DnsServers: ["8.8.8.8","8.8.4.4"]
|
||||
# List of Neutron network types for tenant networks (will be used in order)
|
||||
NeutronNetworkType: 'vxlan,vlan'
|
||||
# The tunnel type for the tenant network (vxlan or gre). Set to '' to disable tunneling.
|
||||
NeutronTunnelTypes: 'vxlan'
|
||||
# Neutron VLAN ranges per network, for example 'datacentre:1:499,tenant:500:1000':
|
||||
NeutronNetworkVLANRanges: 'datacentre:1:1000'
|
||||
# Customize bonding options, e.g. "mode=4 lacp_rate=1 updelay=1000 miimon=100"
|
||||
# for Linux bonds w/LACP, or "bond_mode=active-backup" for OVS active/backup.
|
||||
BondInterfaceOvsOptions: "bond_mode=active-backup"
|
@ -5,9 +5,4 @@
|
||||
# name:
|
||||
# - puppet/cephstorage-role.yaml
|
||||
name:
|
||||
- network/internal_api_v6.yaml
|
||||
- network/external_v6.yaml
|
||||
- network/storage_v6.yaml
|
||||
- network/storage_mgmt_v6.yaml
|
||||
- network/tenant_v6.yaml
|
||||
- network/management_v6.yaml
|
||||
- None
|
||||
|
@ -1,76 +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:
|
||||
# OpenStack uses the EUI-64 address format, which requires a /64 prefix
|
||||
default: '2001:db8:fd00:1000::/64'
|
||||
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
|
||||
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': '2001:db8:fd00:1000::10', 'end': '2001:db8:fd00:1000:ffff:ffff:ffff:fffe'}]
|
||||
description: Ip allocation pool range for the external network.
|
||||
type: json
|
||||
IPv6AddressMode:
|
||||
default: dhcpv6-stateful
|
||||
description: Neutron subnet IPv6 address mode
|
||||
type: string
|
||||
IPv6RAMode:
|
||||
default: dhcpv6-stateful
|
||||
description: Neutron subnet IPv6 router advertisement mode
|
||||
type: string
|
||||
ExternalInterfaceDefaultRoute:
|
||||
default: '2001:db8:fd00:1000::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:
|
||||
ip_version: 6
|
||||
ipv6_address_mode: {get_param: IPv6AddressMode}
|
||||
ipv6_ra_mode: {get_param: IPv6RAMode}
|
||||
cidr: {get_param: ExternalNetCidr}
|
||||
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]}
|
@ -1,72 +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:
|
||||
# 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.
|
||||
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
|
||||
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': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}]
|
||||
description: Ip allocation pool range for the internal_api network.
|
||||
type: json
|
||||
IPv6AddressMode:
|
||||
default: dhcpv6-stateful
|
||||
description: Neutron subnet IPv6 address mode
|
||||
type: string
|
||||
IPv6RAMode:
|
||||
default: dhcpv6-stateful
|
||||
description: Neutron subnet IPv6 router advertisement mode
|
||||
type: string
|
||||
|
||||
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:
|
||||
ip_version: 6
|
||||
ipv6_address_mode: {get_param: IPv6AddressMode}
|
||||
ipv6_ra_mode: {get_param: IPv6RAMode}
|
||||
cidr: {get_param: InternalApiNetCidr}
|
||||
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]}
|
105
network/network.j2
Normal file
105
network/network.j2
Normal file
@ -0,0 +1,105 @@
|
||||
heat_template_version: pike
|
||||
|
||||
description: >
|
||||
{{network.name}} network definition (automatically generated).
|
||||
|
||||
parameters:
|
||||
# the defaults here work for static IP assignment (IPAM) only
|
||||
{{network.name}}NetCidr:
|
||||
{%- if network.ipv6 or ipv6_override %}
|
||||
default: "{{network.ipv6_subnet|default(network.ip_subnet|default(""))}}"
|
||||
{%- else %}
|
||||
default: "{{network.ip_subnet|default("")}}"
|
||||
{%- endif %}
|
||||
description: Cidr for the {{network.name_lower}} network.
|
||||
type: string
|
||||
{{network.name}}NetValueSpecs:
|
||||
default: {'provider:physical_network': '{{network.name_lower}}', 'provider:network_type': 'flat'}
|
||||
description: Value specs for the {{network.name_lower}} network.
|
||||
type: json
|
||||
{%- if not ":" in network.ip_subnet and not network.ipv6 and not ipv6_override %}
|
||||
{{network.name}}NetEnableDHCP:
|
||||
default: false
|
||||
description: Whether to enable DHCP on the associated subnet (IPv4 only).
|
||||
type: boolean
|
||||
{%- endif %}
|
||||
{{network.name}}NetAdminStateUp:
|
||||
default: false
|
||||
description: The admin state of the network.
|
||||
type: boolean
|
||||
{{network.name}}NetShared:
|
||||
default: false
|
||||
description: Whether this network is shared across all tenants.
|
||||
type: boolean
|
||||
{{network.name}}NetName:
|
||||
default: {{network.name_lower}}
|
||||
description: The name of the {{network.name_lower}} network.
|
||||
type: string
|
||||
{{network.name}}SubnetName:
|
||||
default: {{network.name_lower}}_subnet
|
||||
description: The name of the {{network.name_lower}} subnet in Neutron.
|
||||
type: string
|
||||
{{network.name}}AllocationPools:
|
||||
{%- if ":" in network.ip_subnet or network.ipv6 or ipv6_override %}
|
||||
default: {{network.ipv6_allocation_pools|default(network.allocation_pools|default([]))}}
|
||||
{%- else %}
|
||||
default: {{network.allocation_pools|default([])}}
|
||||
{%- endif %}
|
||||
description: Ip allocation pool range for the {{network.name_lower}} network.
|
||||
type: json
|
||||
{%- if ":" in network.ip_subnet or network.ipv6 or ipv6_override %}
|
||||
IPv6AddressMode:
|
||||
default: dhcpv6-stateful
|
||||
description: Neutron subnet IPv6 address mode
|
||||
type: string
|
||||
IPv6RAMode:
|
||||
default: dhcpv6-stateful
|
||||
description: Neutron subnet IPv6 router advertisement mode
|
||||
type: string
|
||||
{%- endif %}
|
||||
{{network.name}}InterfaceDefaultRoute:
|
||||
{%- if network.ipv6 or ipv6_override %}
|
||||
default: "{{network.gateway_ipv6|default(network.gateway_ip|default(''))}}"
|
||||
{%- else %}
|
||||
default: "{{network.gateway_ip|default('')}}"
|
||||
{%- endif %}
|
||||
description: default route for the {{network.name_lower}} network
|
||||
type: string
|
||||
{%- if network.vlan %}
|
||||
{{network.name}}NetworkVlanID:
|
||||
default: {{network.vlan}}
|
||||
description: Vlan ID for the {{network.name}} network traffic.
|
||||
type: number
|
||||
{%- endif %}
|
||||
|
||||
resources:
|
||||
{{network.name}}Network:
|
||||
type: OS::Neutron::Net
|
||||
properties:
|
||||
admin_state_up: {get_param: {{network.name}}NetAdminStateUp}
|
||||
name: {get_param: {{network.name}}NetName}
|
||||
shared: {get_param: {{network.name}}NetShared}
|
||||
value_specs: {get_param: {{network.name}}NetValueSpecs}
|
||||
|
||||
{{network.name}}Subnet:
|
||||
type: OS::Neutron::Subnet
|
||||
properties:
|
||||
{%- if ":" in network.ip_subnet or network.ipv6 or ipv6_override %}
|
||||
ip_version: 6
|
||||
ipv6_address_mode: {get_param: IPv6AddressMode}
|
||||
ipv6_ra_mode: {get_param: IPv6RAMode}
|
||||
{%- else %}
|
||||
enable_dhcp: {get_param: {{network.name}}NetEnableDHCP}
|
||||
{%- endif %}
|
||||
cidr: {get_param: {{network.name}}NetCidr}
|
||||
name: {get_param: {{network.name}}SubnetName}
|
||||
network: {get_resource: {{network.name}}Network}
|
||||
allocation_pools: {get_param: {{network.name}}AllocationPools}
|
||||
gateway_ip: {get_param: {{network.name}}InterfaceDefaultRoute}
|
||||
|
||||
outputs:
|
||||
OS::stack_id:
|
||||
description: {{network.name_lower}} network
|
||||
value: {get_resource: {{network.name}}Network}
|
||||
subnet_cidr:
|
||||
value: {get_attr: [{{network.name}}Subnet, cidr]}
|
@ -1,91 +1 @@
|
||||
heat_template_version: pike
|
||||
|
||||
description: >
|
||||
{{network.name}} network definition (automatically generated).
|
||||
|
||||
parameters:
|
||||
# the defaults here work for static IP assignment (IPAM) only
|
||||
{{network.name}}NetCidr:
|
||||
default: {{network.ip_subnet|default("")}}
|
||||
description: Cidr for the {{network.name_lower}} network.
|
||||
type: string
|
||||
{{network.name}}NetValueSpecs:
|
||||
default: {'provider:physical_network': '{{network.name_lower}}', 'provider:network_type': 'flat'}
|
||||
description: Value specs for the {{network.name_lower}} network.
|
||||
type: json
|
||||
{{network.name}}NetAdminStateUp:
|
||||
default: false
|
||||
description: The admin state of the network.
|
||||
type: boolean
|
||||
{{network.name}}NetEnableDHCP:
|
||||
default: false
|
||||
description: Whether to enable DHCP on the associated subnet.
|
||||
type: boolean
|
||||
{{network.name}}NetShared:
|
||||
default: false
|
||||
description: Whether this network is shared across all tenants.
|
||||
type: boolean
|
||||
{{network.name}}NetName:
|
||||
default: {{network.name_lower}}
|
||||
description: The name of the {{network.name_lower}} network.
|
||||
type: string
|
||||
{{network.name}}SubnetName:
|
||||
default: {{network.name_lower}}_subnet
|
||||
description: The name of the {{network.name_lower}} subnet in Neutron.
|
||||
type: string
|
||||
{{network.name}}AllocationPools:
|
||||
default: {{network.allocation_pools|default([])}}
|
||||
description: Ip allocation pool range for the {{network.name_lower}} network.
|
||||
type: json
|
||||
{{network.name}}InterfaceDefaultRoute:
|
||||
default: {{network.gateway_ip|default('""')}}
|
||||
description: default route for the {{network.name_lower}} network
|
||||
type: string
|
||||
{%- if network.vlan %}
|
||||
{{network.name}}NetworkVlanID:
|
||||
default: {{network.vlan}}
|
||||
description: Vlan ID for the {{network.name}} network traffic.
|
||||
type: number
|
||||
{%- endif %}
|
||||
{%- if network.ipv6 %}
|
||||
IPv6AddressMode:
|
||||
default: dhcpv6-stateful
|
||||
description: Neutron subnet IPv6 address mode
|
||||
type: string
|
||||
IPv6RAMode:
|
||||
default: dhcpv6-stateful
|
||||
description: Neutron subnet IPv6 router advertisement mode
|
||||
type: string
|
||||
{%- endif %}
|
||||
|
||||
resources:
|
||||
{{network.name}}Network:
|
||||
type: OS::Neutron::Net
|
||||
properties:
|
||||
admin_state_up: {get_param: {{network.name}}NetAdminStateUp}
|
||||
name: {get_param: {{network.name}}NetName}
|
||||
shared: {get_param: {{network.name}}NetShared}
|
||||
value_specs: {get_param: {{network.name}}NetValueSpecs}
|
||||
|
||||
{{network.name}}Subnet:
|
||||
type: OS::Neutron::Subnet
|
||||
properties:
|
||||
cidr: {get_param: {{network.name}}NetCidr}
|
||||
name: {get_param: {{network.name}}SubnetName}
|
||||
network: {get_resource: {{network.name}}Network}
|
||||
allocation_pools: {get_param: {{network.name}}AllocationPools}
|
||||
gateway_ip: {get_param: {{network.name}}InterfaceDefaultRoute}
|
||||
{%- if network.ipv6 %}
|
||||
ip_version: 6
|
||||
ipv6_address_mode: {get_param: IPv6AddressMode}
|
||||
ipv6_ra_mode: {get_param: IPv6RAMode}
|
||||
{%- else %}
|
||||
enable_dhcp: {get_param: {{network.name}}NetEnableDHCP}
|
||||
{%- endif %}
|
||||
|
||||
outputs:
|
||||
OS::stack_id:
|
||||
description: {{network.name_lower}} network
|
||||
value: {get_resource: {{network.name}}Network}
|
||||
subnet_cidr:
|
||||
value: {get_attr: [{{network.name}}Subnet, cidr]}
|
||||
{% include 'network.j2' %}
|
||||
|
2
network/network_v6.network.j2.yaml
Normal file
2
network/network_v6.network.j2.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
{% set ipv6_override = true -%}
|
||||
{% include 'network.j2' %}
|
@ -1,72 +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:
|
||||
# OpenStack uses the EUI-64 address format, which requires a /64 prefix
|
||||
default: 'fd00:fd00:fd00:4000::/64'
|
||||
description: Cidr for the storage_mgmt 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
|
||||
StorageMgmtNetShared:
|
||||
default: false
|
||||
description: Whether this network is shared across all tenants.
|
||||
type: boolean
|
||||
StorageMgmtNetName:
|
||||
default: storage_mgmt
|
||||
description: The name of the storage_mgmt network.
|
||||
type: string
|
||||
StorageMgmtSubnetName:
|
||||
default: storage_mgmt_subnet
|
||||
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.
|
||||
type: json
|
||||
IPv6AddressMode:
|
||||
default: dhcpv6-stateful
|
||||
description: Neutron subnet IPv6 address mode
|
||||
type: string
|
||||
IPv6RAMode:
|
||||
default: dhcpv6-stateful
|
||||
description: Neutron subnet IPv6 router advertisement mode
|
||||
type: string
|
||||
|
||||
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:
|
||||
ip_version: 6
|
||||
ipv6_address_mode: {get_param: IPv6AddressMode}
|
||||
ipv6_ra_mode: {get_param: IPv6RAMode}
|
||||
cidr: {get_param: StorageMgmtNetCidr}
|
||||
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]}
|
@ -1,72 +0,0 @@
|
||||
heat_template_version: pike
|
||||
|
||||
description: >
|
||||
Storage network.
|
||||
|
||||
parameters:
|
||||
# the defaults here work for static IP assignment (IPAM) only
|
||||
StorageNetCidr:
|
||||
# OpenStack uses the EUI-64 address format, which requires a /64 prefix
|
||||
default: 'fd00:fd00:fd00:3000::/64'
|
||||
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
|
||||
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': 'fd00:fd00:fd00:3000::10', 'end': 'fd00:fd00:fd00:3000:ffff:ffff:ffff:fffe'}]
|
||||
description: Ip allocation pool range for the storage network.
|
||||
type: json
|
||||
IPv6AddressMode:
|
||||
default: dhcpv6-stateful
|
||||
description: Neutron subnet IPv6 address mode
|
||||
type: string
|
||||
IPv6RAMode:
|
||||
default: dhcpv6-stateful
|
||||
description: Neutron subnet IPv6 router advertisement mode
|
||||
type: string
|
||||
|
||||
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:
|
||||
ip_version: 6
|
||||
ipv6_address_mode: {get_param: IPv6AddressMode}
|
||||
ipv6_ra_mode: {get_param: IPv6RAMode}
|
||||
cidr: {get_param: StorageNetCidr}
|
||||
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]}
|
@ -1,72 +0,0 @@
|
||||
heat_template_version: pike
|
||||
|
||||
description: >
|
||||
Tenant IPv6 network.
|
||||
|
||||
parameters:
|
||||
# the defaults here work for static IP assignment (IPAM) only
|
||||
TenantNetCidr:
|
||||
# OpenStack uses the EUI-64 address format, which requires a /64 prefix
|
||||
default: 'fd00:fd00:fd00:5000::/64'
|
||||
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
|
||||
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': 'fd00:fd00:fd00:5000::10', 'end': 'fd00:fd00:fd00:5000:ffff:ffff:ffff:fffe'}]
|
||||
description: Ip allocation pool range for the tenant network.
|
||||
type: json
|
||||
IPv6AddressMode:
|
||||
default: dhcpv6-stateful
|
||||
description: Neutron subnet IPv6 address mode
|
||||
type: string
|
||||
IPv6RAMode:
|
||||
default: dhcpv6-stateful
|
||||
description: Neutron subnet IPv6 router advertisement mode
|
||||
type: string
|
||||
|
||||
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:
|
||||
ip_version: 6
|
||||
ipv6_address_mode: {get_param: IPv6AddressMode}
|
||||
ipv6_ra_mode: {get_param: IPv6RAMode}
|
||||
cidr: {get_param: TenantNetCidr}
|
||||
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]}
|
@ -6,19 +6,22 @@
|
||||
# name_lower: lowercase version of name used for filenames
|
||||
# (optional, defaults to name.lower())
|
||||
# enabled: Is the network enabled (optional, defaults to true)
|
||||
# ipv6: Does this network use IPv6 IPs? (optional, defaults to false)
|
||||
# (optional, may use parameter defaults in environment to set)
|
||||
# vlan: vlan for the network (optional)
|
||||
# vip: Enable creation of a virtual IP on this network
|
||||
# [TODO] (dsneddon@redhat.com) - Enable dynamic creation of VIP ports,
|
||||
# to support VIPs on non-default networks.
|
||||
# See https://bugs.launchpad.net/tripleo/+bug/1667104
|
||||
# ip_subnet: IP/CIDR, e.g. '192.168.24.0/24' (optional, may use parameter defaults)
|
||||
# allocation_pools: IP range list e.g. [{'start':'10.0.0.4', 'end':'10.0.0.250}]
|
||||
# ip_subnet: IP/CIDR, e.g. '192.168.24.0/24' or '2001:db8:fd00:1000::/64'
|
||||
# (optional, may use parameter defaults instead)
|
||||
# allocation_pools: IP range list e.g. [{'start':'10.0.0.4', 'end':'10.0.0.250'}]
|
||||
# gateway_ip: gateway for the network (optional, may use parameter defaults)
|
||||
# NOTE: IP-related values set parameter defaults in templates, may be overridden.
|
||||
# compat_name: for existing stack you may need to override the default transformation
|
||||
# for the resource's name.
|
||||
# ipv6_subnet: Optional, sets default IPv6 subnet if IPv4 is already defined.
|
||||
# ipv6_allocation_pools: Set default IPv6 allocation pools if IPv4 allocation pools
|
||||
# are already defined.
|
||||
# ipv6_gateway: Set an IPv6 gateway if IPv4 gateway already defined.
|
||||
# ipv6: If ip_subnet not defined, this specifies that the network is IPv6-only.
|
||||
# NOTE: IP-related values set parameter defaults in templates, may be overridden,
|
||||
# either by operators, or e.g in environments/network-isolation-v6.yaml where we
|
||||
# set some default IPv6 addresses.
|
||||
# compat_name: for existing stack you may need to override the default
|
||||
# transformation for the resource's name.
|
||||
#
|
||||
# Example:
|
||||
# - name Example
|
||||
@ -27,8 +30,17 @@
|
||||
# allocation_pools: [{'start': '10.0.2.4', 'end': '10.0.2.250'}]
|
||||
# gateway_ip: '10.0.2.254'
|
||||
#
|
||||
# TODO (dsneddon) remove existing templates from j2_excludes.yaml
|
||||
# and generate all templates dynamically.
|
||||
# To support backward compatility, two versions of the network definitions will
|
||||
# be created, network/<network>.yaml and network/<network>_v6.yaml. Only
|
||||
# one of these files may be used in the deployment at a time, since the
|
||||
# parameters used for configuration are the same in both files. In the
|
||||
# future, this behavior may be changed to create only one file for custom
|
||||
# networks. You may specify IPv6 addresses for ip_subnet, allocation_pools,
|
||||
# and gateway_ip if no IPv4 addresses are used for a custom network, or set
|
||||
# ipv6: true, and the network/<network>.yaml file will be configured as IPv6.
|
||||
#
|
||||
# For configuring both IPv4 and IPv6 on the same interface, use two separate
|
||||
# networks, and then assign both IPs in the custom NIC configuration templates.
|
||||
|
||||
- name: External
|
||||
vip: true
|
||||
@ -36,27 +48,38 @@
|
||||
ip_subnet: '10.0.0.0/24'
|
||||
allocation_pools: [{'start': '10.0.0.4', 'end': '10.0.0.250'}]
|
||||
gateway_ip: '10.0.0.1'
|
||||
ipv6_subnet: '2001:db8:fd00:1000::/64'
|
||||
ipv6_allocation_pools: [{'start': '2001:db8:fd00:1000::10', 'end': '2001:db8:fd00:1000:ffff:ffff:ffff:fffe'}]
|
||||
gateway_ipv6: '2001:db8:fd00:1000::1'
|
||||
- name: InternalApi
|
||||
name_lower: internal_api
|
||||
vip: true
|
||||
ip_subnet: '172.16.2.0/24'
|
||||
allocation_pools: [{'start': '172.16.2.4', 'end': '172.16.2.250'}]
|
||||
ipv6_subnet: 'fd00:fd00:fd00:2000::/64'
|
||||
ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}]
|
||||
compat_name: Internal
|
||||
- name: Storage
|
||||
vip: true
|
||||
name_lower: storage
|
||||
ip_subnet: '172.16.1.0/24'
|
||||
allocation_pools: [{'start': '172.16.1.4', 'end': '172.16.1.250'}]
|
||||
ipv6_subnet: 'fd00:fd00:fd00:3000::/64'
|
||||
ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:3000::10', 'end': 'fd00:fd00:fd00:3000:ffff:ffff:ffff:fffe'}]
|
||||
- name: StorageMgmt
|
||||
name_lower: storage_mgmt
|
||||
vip: true
|
||||
ip_subnet: '172.16.3.0/24'
|
||||
allocation_pools: [{'start': '172.16.3.4', 'end': '172.16.3.250'}]
|
||||
ipv6_subnet: 'fd00:fd00:fd00:4000::/64'
|
||||
ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:4000::10', 'end': 'fd00:fd00:fd00:4000:ffff:ffff:ffff:fffe'}]
|
||||
- name: Tenant
|
||||
vip: false # Tenant network does not use VIPs
|
||||
name_lower: tenant
|
||||
ip_subnet: '172.16.0.0/24'
|
||||
allocation_pools: [{'start': '172.16.0.4', 'end': '172.16.0.250'}]
|
||||
ipv6_subnet: 'fd00:fd00:fd00:5000::/64'
|
||||
ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:5000::10', 'end': 'fd00:fd00:fd00:5000:ffff:ffff:ffff:fffe'}]
|
||||
- name: Management
|
||||
# Management network is disabled by default
|
||||
enabled: false
|
||||
@ -64,3 +87,5 @@
|
||||
name_lower: management
|
||||
ip_subnet: '10.0.1.0/24'
|
||||
allocation_pools: [{'start': '10.0.1.4', 'end': '10.0.1.250'}]
|
||||
ipv6_subnet: 'fd00:fd00:fd00:6000::/64'
|
||||
ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:6000::10', 'end': 'fd00:fd00:fd00:6000:ffff:ffff:ffff:fffe'}]
|
||||
|
10
releasenotes/notes/ipv6_defaults-7dbb62113f4e5084.yaml
Normal file
10
releasenotes/notes/ipv6_defaults-7dbb62113f4e5084.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
other:
|
||||
- |
|
||||
Network templates are now rendered with jinja2 based on network_data.yaml.
|
||||
The only required parameter for each network is the name, optional params
|
||||
will populate the defaults in the network template. Network templates
|
||||
will be generated for both IPv4 and IPv6 versions of the networks, setting
|
||||
ipv6: true on the network will generate only IPv6 templates. An example for
|
||||
overriding default IP addresses for IPv6 has been added in
|
||||
environments/network-environment-v6.yaml.
|
Loading…
Reference in New Issue
Block a user