Add IPv6 support for the management network

This change introduces the ability to use IPv6 addressing for the
management network by passing the network-management-v6.yaml
environment file. It also adjusts the network-management.yaml
environment file to point to the right network config templates.

Change-Id: I7f797c49f03b2623a08e033bdf45772edff0f08f
This commit is contained in:
Marius Cornea 2016-05-30 15:05:47 +02:00
parent 2b6c7dbeff
commit 68bdb72605
4 changed files with 148 additions and 1 deletions

View File

@ -0,0 +1,25 @@
# Enable the creation of an IPv6 system management network. This
# creates a Neutron network for isolated Overcloud
# system management traffic and configures each role to
# assign a port (related to that role) on that network.
# Note that the basic sample NIC configuration templates
# do not include the management network, see the
# comments in the sample network config templates in
# network/config/ for an example.
resource_registry:
OS::TripleO::Network::Management: ../network/management_v6.yaml
# Port assignments for the controller role
OS::TripleO::Controller::Ports::ManagementPort: ../network/ports/management_v6.yaml
# Port assignments for the compute role
OS::TripleO::Compute::Ports::ManagementPort: ../network/ports/management_v6.yaml
# Port assignments for the ceph storage role
OS::TripleO::CephStorage::Ports::ManagementPort: ../network/ports/management_v6.yaml
# Port assignments for the swift storage role
OS::TripleO::SwiftStorage::Ports::ManagementPort: ../network/ports/management_v6.yaml
# Port assignments for the block storage role
OS::TripleO::BlockStorage::Ports::ManagementPort: ../network/ports/management_v6.yaml

View File

@ -4,7 +4,8 @@
# assign a port (related to that role) on that network.
# Note that the basic sample NIC configuration templates
# do not include the management network, see the
# single-nic-vlans-mgmt templates for an example.
# comments in the sample network config templates in
# network/config/ for an example.
resource_registry:
OS::TripleO::Network::Management: ../network/management.yaml

View File

@ -0,0 +1,69 @@
heat_template_version: 2015-04-30
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: 'fd00:fd00:fd00:6000::/64'
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: This admin state of of the network.
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': 'fd00:fd00:fd00:6000::10', 'end': 'fd00:fd00:fd00:6000:ffff:ffff:ffff:fffe'}]
description: Ip allocation pool range for the management 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:
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:
ip_version: 6
ipv6_address_mode: {get_param: IPv6AddressMode}
ipv6_ra_mode: {get_param: IPv6RAMode}
cidr: {get_param: ManagementNetCidr}
name: {get_param: ManagementSubnetName}
network: {get_resource: ManagementNetwork}
allocation_pools: {get_param: ManagementAllocationPools}
outputs:
OS::stack_id:
description: Neutron management network
value: {get_resource: ManagementNetwork}

View File

@ -0,0 +1,52 @@
heat_template_version: 2015-10-15
description: >
Returns an IP from a network mapped list of IPs. This version is for IPv6
addresses. The ip_address_uri output will have brackets for use in URLs.
parameters:
ManagementNetName:
description: Name of the management network
default: management
type: string
PortName:
description: Name of the port
default: ''
type: string
ControlPlaneIP: # Here for compatability with noop.yaml
description: IP address on the control plane
default: ''
type: string
IPPool:
default: {}
description: A network mapped list of IPs
type: json
NodeIndex:
default: 0
description: Index of the IP to get from Pool
type: number
ManagementNetCidr:
default: 'fd00:fd00:fd00:6000::/64'
description: Cidr for the management network.
type: string
outputs:
ip_address:
description: management network IP
value: {get_param: [IPPool, {get_param: ManagementNetName}, {get_param: NodeIndex}]}
ip_address_uri:
description: management network IP (for compatibility with management_v6.yaml)
value:
list_join:
- ''
- - '['
- {get_param: [IPPool, {get_param: ManagementNetName}, {get_param: NodeIndex}]}
- ']'
ip_subnet:
description: IP/Subnet CIDR for the management network IP
value:
list_join:
- ''
- - {get_param: [IPPool, {get_param: ManagementNetName}, {get_param: NodeIndex}]}
- '/'
- {str_split: ['/', {get_attr: [ManagementPort, subnets, 0, cidr]}, 1]}