diff options
Diffstat (limited to 'network/ports')
-rw-r--r-- | network/ports/ctlplane_vip.yaml | 46 | ||||
-rw-r--r-- | network/ports/external.yaml | 5 | ||||
-rw-r--r-- | network/ports/internal_api.yaml | 5 | ||||
-rw-r--r-- | network/ports/net_ip_list_map.yaml | 30 | ||||
-rw-r--r-- | network/ports/net_ip_map.yaml | 2 | ||||
-rw-r--r-- | network/ports/noop.yaml | 12 | ||||
-rw-r--r-- | network/ports/storage.yaml | 5 | ||||
-rw-r--r-- | network/ports/storage_mgmt.yaml | 5 | ||||
-rw-r--r-- | network/ports/tenant.yaml | 5 | ||||
-rw-r--r-- | network/ports/vip.yaml | 41 |
10 files changed, 155 insertions, 1 deletions
diff --git a/network/ports/ctlplane_vip.yaml b/network/ports/ctlplane_vip.yaml new file mode 100644 index 00000000..d5001e43 --- /dev/null +++ b/network/ports/ctlplane_vip.yaml @@ -0,0 +1,46 @@ +heat_template_version: 2015-04-30 + +description: > + Creates a port for a VIP on the undercloud ctlplane network. + +parameters: + NetworkName: + description: # Here for compatibility with isolated networks + default: ctlplane + 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 + type: string + ControlPlaneNetwork: + description: The name of the undercloud Neutron control plane + default: ctlplane + type: string + + +resources: + + VipPort: + type: OS::Neutron::Port + properties: + network: {get_param: ControlPlaneNetwork} + name: {get_param: PortName} + replacement_policy: AUTO + +outputs: + ip_address: + description: Virtual IP network IP + 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 + value: + list_join: + - '' + - - {get_attr: [VipPort, fixed_ips, 0, ip_address]} + - '/' + - {get_attr: [VipPort, subnets, 0, cidr, -2]} + - {get_attr: [VipPort, subnets, 0, cidr, -1]} diff --git a/network/ports/external.yaml b/network/ports/external.yaml index db86b329..b5c1e5c9 100644 --- a/network/ports/external.yaml +++ b/network/ports/external.yaml @@ -8,6 +8,10 @@ parameters: description: Name of the external neutron network default: external 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 type: string @@ -18,6 +22,7 @@ resources: type: OS::Neutron::Port properties: network: {get_param: ExternalNetName} + name: {get_param: PortName} replacement_policy: AUTO outputs: diff --git a/network/ports/internal_api.yaml b/network/ports/internal_api.yaml index 59c0e0ad..da1b1856 100644 --- a/network/ports/internal_api.yaml +++ b/network/ports/internal_api.yaml @@ -8,6 +8,10 @@ parameters: description: Name of the internal API neutron network default: internal_api 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 type: string @@ -18,6 +22,7 @@ resources: type: OS::Neutron::Port properties: network: {get_param: InternalApiNetName} + name: {get_param: PortName} replacement_policy: AUTO outputs: diff --git a/network/ports/net_ip_list_map.yaml b/network/ports/net_ip_list_map.yaml new file mode 100644 index 00000000..54614ead --- /dev/null +++ b/network/ports/net_ip_list_map.yaml @@ -0,0 +1,30 @@ +heat_template_version: 2015-04-30 + +parameters: + ExternalIpList: + default: [] + type: comma_delimited_list + InternalApiIpList: + default: [] + type: comma_delimited_list + StorageIpList: + default: [] + type: comma_delimited_list + StorageMgmtIpList: + default: [] + type: comma_delimited_list + TenantIpList: + default: [] + type: comma_delimited_list + +outputs: + net_ip_map: + description: > + A Hash containing a mapping of network names to assigned lists + of IP addresses. + value: + external: {get_param: ExternalIpList} + internal_api: {get_param: InternalApiIpList} + storage: {get_param: StorageIpList} + storage_mgmt: {get_param: StorageMgmtIpList} + tenant: {get_param: TenantIpList} diff --git a/network/ports/net_ip_map.yaml b/network/ports/net_ip_map.yaml index b7138b25..edc4060f 100644 --- a/network/ports/net_ip_map.yaml +++ b/network/ports/net_ip_map.yaml @@ -1,4 +1,4 @@ -heat_template_version: 2014-10-16 +heat_template_version: 2015-04-30 parameters: ExternalIp: diff --git a/network/ports/noop.yaml b/network/ports/noop.yaml index 6bbf23c9..9e1a1276 100644 --- a/network/ports/noop.yaml +++ b/network/ports/noop.yaml @@ -7,6 +7,18 @@ parameters: ControlPlaneIP: description: IP address on the control plane type: string + ControlPlaneNetwork: + description: Name of the control plane network + default: ctlplane + type: string + PortName: + description: Name of the port + default: '' + type: string + NetworkName: + description: # Here for compatability with vip.yaml + default: '' + type: string ControlPlaneSubnetCidr: # Override this via parameter_defaults default: '24' description: The subnet CIDR of the control plane network. diff --git a/network/ports/storage.yaml b/network/ports/storage.yaml index 27f60a0d..ecb20b8f 100644 --- a/network/ports/storage.yaml +++ b/network/ports/storage.yaml @@ -8,6 +8,10 @@ parameters: description: Name of the storage neutron network default: storage 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 type: string @@ -18,6 +22,7 @@ resources: type: OS::Neutron::Port properties: network: {get_param: StorageNetName} + name: {get_param: PortName} replacement_policy: AUTO outputs: diff --git a/network/ports/storage_mgmt.yaml b/network/ports/storage_mgmt.yaml index 03cc224e..2ab39f21 100644 --- a/network/ports/storage_mgmt.yaml +++ b/network/ports/storage_mgmt.yaml @@ -8,6 +8,10 @@ parameters: description: Name of the storage_mgmt API neutron network default: storage_mgmt 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 type: string @@ -18,6 +22,7 @@ resources: type: OS::Neutron::Port properties: network: {get_param: StorageMgmtNetName} + name: {get_param: PortName} replacement_policy: AUTO outputs: diff --git a/network/ports/tenant.yaml b/network/ports/tenant.yaml index 1957c41b..aae12d46 100644 --- a/network/ports/tenant.yaml +++ b/network/ports/tenant.yaml @@ -8,6 +8,10 @@ parameters: description: Name of the tenant neutron network default: tenant 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 type: string @@ -18,6 +22,7 @@ resources: type: OS::Neutron::Port properties: network: {get_param: TenantNetName} + name: {get_param: PortName} replacement_policy: AUTO outputs: diff --git a/network/ports/vip.yaml b/network/ports/vip.yaml new file mode 100644 index 00000000..b957e132 --- /dev/null +++ b/network/ports/vip.yaml @@ -0,0 +1,41 @@ +heat_template_version: 2015-04-30 + +description: > + Creates a port for a VIP on the isolated network NetworkName. + +parameters: + NetworkName: + description: Name of the network where the VIP will be created + default: internal_api + 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 + type: string + +resources: + + VipPort: + type: OS::Neutron::Port + properties: + network: {get_param: NetworkName} + name: {get_param: PortName} + replacement_policy: AUTO + +outputs: + ip_address: + description: Virtual IP network IP + 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 + value: + list_join: + - '' + - - {get_attr: [VipPort, fixed_ips, 0, ip_address]} + - '/' + - {get_attr: [VipPort, subnets, 0, cidr, -2]} + - {get_attr: [VipPort, subnets, 0, cidr, -1]} |