diff options
Diffstat (limited to 'network/ports')
-rw-r--r-- | network/ports/ctlplane_vip.yaml | 12 | ||||
-rw-r--r-- | network/ports/external.yaml | 14 | ||||
-rw-r--r-- | network/ports/net_ip_list_map.yaml | 4 | ||||
-rw-r--r-- | network/ports/net_ip_map.yaml | 4 | ||||
-rw-r--r-- | network/ports/net_ip_subnet_map.yaml | 43 | ||||
-rw-r--r-- | network/ports/noop.yaml | 4 | ||||
-rw-r--r-- | network/ports/vip.yaml | 15 |
7 files changed, 90 insertions, 6 deletions
diff --git a/network/ports/ctlplane_vip.yaml b/network/ports/ctlplane_vip.yaml index d5001e43..0d2945bc 100644 --- a/network/ports/ctlplane_vip.yaml +++ b/network/ports/ctlplane_vip.yaml @@ -2,6 +2,7 @@ heat_template_version: 2015-04-30 description: > Creates a port for a VIP on the undercloud ctlplane network. + The IP address will be chosen automatically if FixedIPs is empty. parameters: NetworkName: @@ -19,15 +20,20 @@ parameters: description: The name of the undercloud Neutron control plane default: ctlplane type: string - + FixedIPs: + description: > + Control the IP allocation for the VIP port. E.g. + [{'ip_address':'1.2.3.4'}] + default: [] + type: json resources: - VipPort: type: OS::Neutron::Port properties: network: {get_param: ControlPlaneNetwork} name: {get_param: PortName} + fixed_ips: {get_param: FixedIPs} replacement_policy: AUTO outputs: @@ -36,7 +42,7 @@ outputs: value: {get_attr: [VipPort, fixed_ips, 0, ip_address]} ip_subnet: # FIXME: this assumes a 2 digit subnet CIDR (need more heat functions?) - description: IP/Subnet CIDR for the internal API network IP + description: IP/Subnet CIDR for the ctlplane network. value: list_join: - '' diff --git a/network/ports/external.yaml b/network/ports/external.yaml index b5c1e5c9..63e3eeb3 100644 --- a/network/ports/external.yaml +++ b/network/ports/external.yaml @@ -1,7 +1,8 @@ heat_template_version: 2015-04-30 description: > - Creates a port on the external network. + Creates a port on the external network. The IP address will be chosen + automatically if FixedIPs is empty. parameters: ExternalNetName: @@ -15,6 +16,16 @@ parameters: ControlPlaneIP: # Here for compatability with noop.yaml description: IP address on the control plane type: string + ControlPlaneNetwork: # Here for compatibility with ctlplane_vip.yaml + description: The name of the undercloud Neutron control plane + default: ctlplane + type: string + FixedIPs: + description: > + Control the IP allocation for the VIP port. E.g. + [{'ip_address':'1.2.3.4'}] + default: [] + type: json resources: @@ -23,6 +34,7 @@ resources: properties: network: {get_param: ExternalNetName} name: {get_param: PortName} + fixed_ips: {get_param: FixedIPs} replacement_policy: AUTO outputs: diff --git a/network/ports/net_ip_list_map.yaml b/network/ports/net_ip_list_map.yaml index 54614ead..257d3f9b 100644 --- a/network/ports/net_ip_list_map.yaml +++ b/network/ports/net_ip_list_map.yaml @@ -1,6 +1,9 @@ heat_template_version: 2015-04-30 parameters: + ControlPlaneIpList: + default: [] + type: comma_delimited_list ExternalIpList: default: [] type: comma_delimited_list @@ -23,6 +26,7 @@ outputs: A Hash containing a mapping of network names to assigned lists of IP addresses. value: + ctlplane: {get_param: ControlPlaneIpList} external: {get_param: ExternalIpList} internal_api: {get_param: InternalApiIpList} storage: {get_param: StorageIpList} diff --git a/network/ports/net_ip_map.yaml b/network/ports/net_ip_map.yaml index edc4060f..7aaed160 100644 --- a/network/ports/net_ip_map.yaml +++ b/network/ports/net_ip_map.yaml @@ -1,6 +1,9 @@ heat_template_version: 2015-04-30 parameters: + ControlPlaneIp: + default: '' + type: string ExternalIp: default: '' type: string @@ -23,6 +26,7 @@ outputs: A Hash containing a mapping of network names to assigned IPs for a specific machine. value: + ctlplane: {get_param: ControlPlaneIp} external: {get_param: ExternalIp} internal_api: {get_param: InternalApiIp} storage: {get_param: StorageIp} diff --git a/network/ports/net_ip_subnet_map.yaml b/network/ports/net_ip_subnet_map.yaml new file mode 100644 index 00000000..cf59adb3 --- /dev/null +++ b/network/ports/net_ip_subnet_map.yaml @@ -0,0 +1,43 @@ +heat_template_version: 2015-04-30 + +parameters: + ControlPlaneIp: + default: '' + type: string + ExternalIpSubnet: + default: '' + type: string + InternalApiIpSubnet: + default: '' + type: string + StorageIpSubnet: + default: '' + type: string + StorageMgmtIpSubnet: + default: '' + type: string + TenantIpSubnet: + default: '' + type: string + ControlPlaneSubnetCidr: # Override this via parameter_defaults + default: '24' + description: The subnet CIDR of the control plane network. + type: string + +outputs: + net_ip_subnet_map: + description: > + A Hash containing a mapping of network names to assigned + IP/subnet mappings. + value: + ctlplane: + list_join: + - '' + - - {get_param: ControlPlaneIp} + - '/' + - {get_param: ControlPlaneSubnetCidr} + external: {get_param: ExternalIpSubnet} + internal_api: {get_param: InternalApiIpSubnet} + storage: {get_param: StorageIpSubnet} + storage_mgmt: {get_param: StorageMgmtIpSubnet} + tenant: {get_param: TenantIpSubnet} diff --git a/network/ports/noop.yaml b/network/ports/noop.yaml index 9e1a1276..31ee6f3c 100644 --- a/network/ports/noop.yaml +++ b/network/ports/noop.yaml @@ -19,6 +19,10 @@ parameters: description: # Here for compatability with vip.yaml default: '' type: string + FixedIPs: + description: # Here for compatibility with vip.yaml + default: [] + type: json ControlPlaneSubnetCidr: # Override this via parameter_defaults default: '24' description: The subnet CIDR of the control plane network. diff --git a/network/ports/vip.yaml b/network/ports/vip.yaml index b957e132..299579dc 100644 --- a/network/ports/vip.yaml +++ b/network/ports/vip.yaml @@ -2,6 +2,7 @@ heat_template_version: 2015-04-30 description: > Creates a port for a VIP on the isolated network NetworkName. + The IP address will be chosen automatically if FixedIPs is empty. parameters: NetworkName: @@ -15,14 +16,24 @@ parameters: ControlPlaneIP: # Here for compatability with noop.yaml description: IP address on the control plane type: string + ControlPlaneNetwork: + description: The name of the undercloud Neutron control plane + default: ctlplane + type: string + FixedIPs: + description: > + Control the IP allocation for the VIP port. E.g. + [{'ip_address':'1.2.3.4'}] + default: [] + type: json resources: - VipPort: type: OS::Neutron::Port properties: network: {get_param: NetworkName} name: {get_param: PortName} + fixed_ips: {get_param: FixedIPs} replacement_policy: AUTO outputs: @@ -31,7 +42,7 @@ outputs: value: {get_attr: [VipPort, fixed_ips, 0, ip_address]} ip_subnet: # FIXME: this assumes a 2 digit subnet CIDR (need more heat functions?) - description: IP/Subnet CIDR for the internal API network IP + description: IP/Subnet CIDR for the network associated with this IP value: list_join: - '' |