aboutsummaryrefslogtreecommitdiffstats
path: root/network/ports
diff options
context:
space:
mode:
Diffstat (limited to 'network/ports')
-rw-r--r--network/ports/external.yaml61
-rw-r--r--network/ports/external_from_pool.yaml46
-rw-r--r--network/ports/external_from_pool_v6.yaml52
-rw-r--r--network/ports/internal_api.yaml57
-rw-r--r--network/ports/internal_api_from_pool.yaml46
-rw-r--r--network/ports/internal_api_from_pool_v6.yaml52
-rw-r--r--network/ports/internal_api_v6.yaml61
-rw-r--r--network/ports/management.yaml49
-rw-r--r--network/ports/management_from_pool.yaml46
-rw-r--r--network/ports/management_from_pool_v6.yaml52
-rw-r--r--network/ports/management_v6.yaml54
-rw-r--r--network/ports/net_ip_list_map.j2.yaml (renamed from network/ports/net_ip_list_map.yaml)46
-rw-r--r--network/ports/net_ip_map.j2.yaml81
-rw-r--r--network/ports/net_ip_map.yaml210
-rw-r--r--network/ports/net_vip_map_external.j2.yaml40
-rw-r--r--network/ports/net_vip_map_external.yaml68
-rw-r--r--network/ports/net_vip_map_external_v6.j2.yaml45
-rw-r--r--network/ports/net_vip_map_external_v6.yaml88
-rw-r--r--network/ports/port.j2 (renamed from network/ports/external_v6.yaml)34
-rw-r--r--network/ports/port.network.j2.yaml73
-rw-r--r--network/ports/port_from_pool.j265
-rw-r--r--network/ports/port_from_pool.network.j2.yaml66
-rw-r--r--network/ports/port_from_pool_v6.network.j2.yaml2
-rw-r--r--network/ports/port_v6.network.j2.yaml2
-rw-r--r--network/ports/storage.yaml56
-rw-r--r--network/ports/storage_from_pool.yaml46
-rw-r--r--network/ports/storage_from_pool_v6.yaml52
-rw-r--r--network/ports/storage_mgmt.yaml57
-rw-r--r--network/ports/storage_mgmt_from_pool.yaml46
-rw-r--r--network/ports/storage_mgmt_from_pool_v6.yaml52
-rw-r--r--network/ports/storage_mgmt_v6.yaml61
-rw-r--r--network/ports/storage_v6.yaml61
-rw-r--r--network/ports/tenant.yaml56
-rw-r--r--network/ports/tenant_from_pool.yaml46
-rw-r--r--network/ports/tenant_from_pool_v6.yaml51
-rw-r--r--network/ports/tenant_v6.yaml61
36 files changed, 273 insertions, 1768 deletions
diff --git a/network/ports/external.yaml b/network/ports/external.yaml
deleted file mode 100644
index 72922093..00000000
--- a/network/ports/external.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-heat_template_version: pike
-
-description: >
- Creates a port on the external network. The IP address will be chosen
- automatically if FixedIPs is empty.
-
-parameters:
- ExternalNetName:
- description: The name of the external network.
- default: external
- type: string
- PortName:
- description: Name of the port
- default: ''
- type: string
- ControlPlaneIP: # Here for compatibility with noop.yaml
- description: IP address on the control plane
- default: ''
- 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
- IPPool: # Here for compatibility with from_pool.yaml
- default: {}
- type: json
- NodeIndex: # Here for compatibility with from_pool.yaml
- default: 0
- type: number
-
-resources:
-
- ExternalPort:
- type: OS::Neutron::Port
- properties:
- network: {get_param: ExternalNetName}
- name: {get_param: PortName}
- fixed_ips: {get_param: FixedIPs}
- replacement_policy: AUTO
-
-outputs:
- ip_address:
- description: external network IP
- value: {get_attr: [ExternalPort, fixed_ips, 0, ip_address]}
- ip_address_uri:
- description: external network IP (for compatibility with external_v6.yaml)
- value: {get_attr: [ExternalPort, fixed_ips, 0, ip_address]}
- ip_subnet:
- description: IP/Subnet CIDR for the external network IP
- value:
- list_join:
- - ''
- - - {get_attr: [ExternalPort, fixed_ips, 0, ip_address]}
- - '/'
- - {str_split: ['/', {get_attr: [ExternalPort, subnets, 0, cidr]}, 1]}
diff --git a/network/ports/external_from_pool.yaml b/network/ports/external_from_pool.yaml
deleted file mode 100644
index a14aa90b..00000000
--- a/network/ports/external_from_pool.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
-heat_template_version: pike
-
-description: >
- Returns an IP from a network mapped list of IPs
-
-parameters:
- ExternalNetName:
- description: The name of the external network.
- default: external
- type: string
- PortName:
- description: Name of the port
- default: ''
- type: string
- ControlPlaneIP: # Here for compatibility 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
- ExternalNetCidr:
- default: '10.0.0.0/24'
- description: Cidr for the external network.
- type: string
-
-outputs:
- ip_address:
- description: external network IP
- value: {get_param: [IPPool, {get_param: ExternalNetName}, {get_param: NodeIndex}]}
- ip_address_uri:
- description: external network IP (for compatibility with IPv6)
- value: {get_param: [IPPool, {get_param: ExternalNetName}, {get_param: NodeIndex}]}
- ip_subnet:
- description: IP/Subnet CIDR for the external network IP
- value:
- list_join:
- - ''
- - - {get_param: [IPPool, {get_param: ExternalNetName}, {get_param: NodeIndex}]}
- - '/'
- - {str_split: ['/', {get_param: ExternalNetCidr}, 1]}
diff --git a/network/ports/external_from_pool_v6.yaml b/network/ports/external_from_pool_v6.yaml
deleted file mode 100644
index 2aa51267..00000000
--- a/network/ports/external_from_pool_v6.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-heat_template_version: pike
-
-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:
- ExternalNetName:
- description: The name of the external 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
- 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
- ExternalNetCidr:
- default: '2001:db8:fd00:1000::/64'
- description: Cidr for the external network.
- type: string
-
-outputs:
- ip_address:
- description: external network IP
- value: {get_param: [IPPool, {get_param: ExternalNetName}, {get_param: NodeIndex}]}
- ip_address_uri:
- description: external network IP (for compatibility with IPv6)
- value:
- list_join:
- - ''
- - - '['
- - {get_param: [IPPool, {get_param: ExternalNetName}, {get_param: NodeIndex}]}
- - ']'
- ip_subnet:
- description: IP/Subnet CIDR for the external network IP
- value:
- list_join:
- - ''
- - - {get_param: [IPPool, {get_param: ExternalNetName}, {get_param: NodeIndex}]}
- - '/'
- - {str_split: ['/', {get_param: ExternalNetCidr}, 1]}
diff --git a/network/ports/internal_api.yaml b/network/ports/internal_api.yaml
deleted file mode 100644
index e9eb7875..00000000
--- a/network/ports/internal_api.yaml
+++ /dev/null
@@ -1,57 +0,0 @@
-heat_template_version: pike
-
-description: >
- Creates a port on the internal_api network.
-
-parameters:
- InternalApiNetName:
- description: The name of the internal API network.
- default: internal_api
- type: string
- PortName:
- description: Name of the port
- default: ''
- type: string
- ControlPlaneIP: # Here for compatibility with noop.yaml
- description: IP address on the control plane
- default: ''
- type: string
- FixedIPs:
- description: >
- Control the IP allocation for the VIP port. E.g.
- [{'ip_address':'1.2.3.4'}]
- default: []
- type: json
- IPPool: # Here for compatibility with from_pool.yaml
- default: {}
- type: json
- NodeIndex: # Here for compatibility with from_pool.yaml
- default: 0
- type: number
-
-resources:
-
- InternalApiPort:
- type: OS::Neutron::Port
- properties:
- network: {get_param: InternalApiNetName}
- name: {get_param: PortName}
- fixed_ips: {get_param: FixedIPs}
- replacement_policy: AUTO
-
-outputs:
- ip_address:
- description: internal API network IP
- value: {get_attr: [InternalApiPort, fixed_ips, 0, ip_address]}
- ip_address_uri:
- description: |
- internal API network IP (for compatibility with internal_api_v6.yaml)
- value: {get_attr: [InternalApiPort, fixed_ips, 0, ip_address]}
- ip_subnet:
- description: IP/Subnet CIDR for the internal API network IP
- value:
- list_join:
- - ''
- - - {get_attr: [InternalApiPort, fixed_ips, 0, ip_address]}
- - '/'
- - {str_split: ['/', {get_attr: [InternalApiPort, subnets, 0, cidr]}, 1]}
diff --git a/network/ports/internal_api_from_pool.yaml b/network/ports/internal_api_from_pool.yaml
deleted file mode 100644
index 31c72daf..00000000
--- a/network/ports/internal_api_from_pool.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
-heat_template_version: pike
-
-description: >
- Returns an IP from a network mapped list of IPs
-
-parameters:
- InternalApiNetName:
- description: The name of the internal API network.
- default: internal_api
- type: string
- PortName:
- description: Name of the port
- default: ''
- type: string
- ControlPlaneIP: # Here for compatibility 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
- InternalApiNetCidr:
- default: '172.16.2.0/24'
- description: Cidr for the internal API network.
- type: string
-
-outputs:
- ip_address:
- description: internal API network IP
- value: {get_param: [IPPool, {get_param: InternalApiNetName}, {get_param: NodeIndex}]}
- ip_address_uri:
- description: internal API network IP (for compatibility with internal_api_v6.yaml)
- value: {get_param: [IPPool, {get_param: InternalApiNetName}, {get_param: NodeIndex}]}
- ip_subnet:
- description: IP/Subnet CIDR for the internal API network IP
- value:
- list_join:
- - ''
- - - {get_param: [IPPool, {get_param: InternalApiNetName}, {get_param: NodeIndex}]}
- - '/'
- - {str_split: ['/', {get_param: InternalApiNetCidr}, 1]}
diff --git a/network/ports/internal_api_from_pool_v6.yaml b/network/ports/internal_api_from_pool_v6.yaml
deleted file mode 100644
index 657310ed..00000000
--- a/network/ports/internal_api_from_pool_v6.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-heat_template_version: pike
-
-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:
- InternalApiNetName:
- description: The name of the internal API 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
- 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
- InternalApiNetCidr:
- default: 'fd00:fd00:fd00:2000::/64'
- description: Cidr for the internal API network.
- type: string
-
-outputs:
- ip_address:
- description: internal API network IP
- value: {get_param: [IPPool, {get_param: InternalApiNetName}, {get_param: NodeIndex}]}
- ip_address_uri:
- description: internal API network IP (for compatibility with internal_api_v6.yaml)
- value:
- list_join:
- - ''
- - - '['
- - {get_param: [IPPool, {get_param: InternalApiNetName}, {get_param: NodeIndex}]}
- - ']'
- ip_subnet:
- description: IP/Subnet CIDR for the internal API network IP
- value:
- list_join:
- - ''
- - - {get_param: [IPPool, {get_param: InternalApiNetName}, {get_param: NodeIndex}]}
- - '/'
- - {str_split: ['/', {get_param: InternalApiNetCidr}, 1]}
diff --git a/network/ports/internal_api_v6.yaml b/network/ports/internal_api_v6.yaml
deleted file mode 100644
index 6a9e7083..00000000
--- a/network/ports/internal_api_v6.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-heat_template_version: pike
-
-description: >
- Creates a port on the internal_api network.
-
-parameters:
- InternalApiNetName:
- description: The name of the internal API 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
- default: ''
- type: string
- FixedIPs:
- description: >
- Control the IP allocation for the VIP port. E.g.
- [{'ip_address':'1.2.3.4'}]
- default: []
- type: json
- IPPool: # Here for compatibility with from_pool.yaml
- default: {}
- type: json
- NodeIndex: # Here for compatibility with from_pool.yaml
- default: 0
- type: number
-
-resources:
-
- InternalApiPort:
- type: OS::Neutron::Port
- properties:
- network: {get_param: InternalApiNetName}
- name: {get_param: PortName}
- fixed_ips: {get_param: FixedIPs}
- replacement_policy: AUTO
-
-outputs:
- ip_address:
- description: internal API network IP
- value: {get_attr: [InternalApiPort, fixed_ips, 0, ip_address]}
- ip_address_uri:
- description: internal api network IP with brackets suitable for a URL
- value:
- list_join:
- - ''
- - - '['
- - {get_attr: [InternalApiPort, fixed_ips, 0, ip_address]}
- - ']'
- ip_subnet:
- description: IP/Subnet CIDR for the internal API network IP
- value:
- list_join:
- - ''
- - - {get_attr: [InternalApiPort, fixed_ips, 0, ip_address]}
- - '/'
- - {str_split: ['/', {get_attr: [InternalApiPort, subnets, 0, cidr]}, 1]}
diff --git a/network/ports/management.yaml b/network/ports/management.yaml
deleted file mode 100644
index 417d0612..00000000
--- a/network/ports/management.yaml
+++ /dev/null
@@ -1,49 +0,0 @@
-heat_template_version: pike
-
-description: >
- Creates a port on the management network. The IP address will be chosen
- automatically if FixedIPs is empty.
-
-parameters:
- ManagementNetName:
- description: The name of the management network.
- default: management
- type: string
- PortName:
- description: Name of the port
- default: ''
- type: string
- ControlPlaneIP: # Here for compatibility with noop.yaml
- description: IP address on the control plane
- type: string
- IPPool: # Here for compatibility with from_pool.yaml
- default: {}
- type: json
- NodeIndex: # Here for compatibility with from_pool.yaml
- default: 0
- type: number
-
-resources:
-
- ManagementPort:
- type: OS::Neutron::Port
- properties:
- network: {get_param: ManagementNetName}
- name: {get_param: PortName}
- replacement_policy: AUTO
-
-outputs:
- ip_address:
- description: management network IP
- value: {get_attr: [ManagementPort, fixed_ips, 0, ip_address]}
- ip_address_uri:
- description: management network IP (for compatibility with management_v6.yaml)
- value: {get_attr: [ManagementPort, fixed_ips, 0, ip_address]}
- ip_subnet:
- description: IP/Subnet CIDR for the management network IP
- value:
- list_join:
- - ''
- - - {get_attr: [ManagementPort, fixed_ips, 0, ip_address]}
- - '/'
- - {str_split: ['/', {get_attr: [ManagementPort, subnets, 0, cidr]}, 1]}
diff --git a/network/ports/management_from_pool.yaml b/network/ports/management_from_pool.yaml
deleted file mode 100644
index 4815d163..00000000
--- a/network/ports/management_from_pool.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
-heat_template_version: pike
-
-description: >
- Returns an IP from a network mapped list of IPs
-
-parameters:
- ManagementNetName:
- description: The 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: '172.16.4.0/24'
- 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: {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_param: ManagementNetCidr}, 1]}
diff --git a/network/ports/management_from_pool_v6.yaml b/network/ports/management_from_pool_v6.yaml
deleted file mode 100644
index 2a7d3b1d..00000000
--- a/network/ports/management_from_pool_v6.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-heat_template_version: pike
-
-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: The 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_param: ManagementNetCidr}, 1]}
diff --git a/network/ports/management_v6.yaml b/network/ports/management_v6.yaml
deleted file mode 100644
index 9de06d9c..00000000
--- a/network/ports/management_v6.yaml
+++ /dev/null
@@ -1,54 +0,0 @@
-heat_template_version: pike
-
-description: >
- Creates a port on the management network. The IP address will be chosen
- automatically if FixedIPs is empty.
-
-parameters:
- ManagementNetName:
- description: The name of the management network.
- default: management
- type: string
- PortName:
- description: Name of the port
- default: ''
- type: string
- ControlPlaneIP: # Here for compatibility with noop.yaml
- description: IP address on the control plane
- type: string
- IPPool: # Here for compatibility with from_pool.yaml
- default: {}
- type: json
- NodeIndex: # Here for compatibility with from_pool.yaml
- default: 0
- type: number
-
-resources:
-
- ManagementPort:
- type: OS::Neutron::Port
- properties:
- network: {get_param: ManagementNetName}
- name: {get_param: PortName}
- replacement_policy: AUTO
-
-outputs:
- ip_address:
- description: management network IP
- value: {get_attr: [ManagementPort, fixed_ips, 0, ip_address]}
- ip_address_uri:
- description: management network IP with brackets suitable for a URL
- value:
- list_join:
- - ''
- - - '['
- - {get_attr: [ManagementPort, fixed_ips, 0, ip_address]}
- - ']'
- ip_subnet:
- description: IP/Subnet CIDR for the management network IP
- value:
- list_join:
- - ''
- - - {get_attr: [ManagementPort, fixed_ips, 0, ip_address]}
- - '/'
- - {str_split: ['/', {get_attr: [ManagementPort, subnets, 0, cidr]}, 1]}
diff --git a/network/ports/net_ip_list_map.yaml b/network/ports/net_ip_list_map.j2.yaml
index a9111ed9..e929ab2c 100644
--- a/network/ports/net_ip_list_map.yaml
+++ b/network/ports/net_ip_list_map.j2.yaml
@@ -4,24 +4,11 @@ parameters:
ControlPlaneIpList:
default: []
type: comma_delimited_list
- 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
- ManagementIpList:
+{%- for network in networks %}
+ {{network.name}}IpList:
default: []
type: comma_delimited_list
+{%- endfor %}
EnabledServices:
default: []
type: comma_delimited_list
@@ -37,7 +24,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,12 +40,17 @@ 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
description: The name of the tenant network.
+{%- for network in networks %}
+ {{network.name}}NetName:
+ default: {{network.name_lower}}
+ description: The name of the {{network.name_lower}} network.
type: string
+{%- endfor %}
resources:
@@ -91,19 +83,13 @@ resources:
value:
map_replace:
- ctlplane: {get_param: ControlPlaneIpList}
- external: {get_param: ExternalIpList}
- internal_api: {get_param: InternalApiIpList}
- storage: {get_param: StorageIpList}
- storage_mgmt: {get_param: StorageMgmtIpList}
- tenant: {get_param: TenantIpList}
- management: {get_param: ManagementIpList}
+{%- for network in networks %}
+ {{network.name_lower}}: {get_param: {{network.name}}IpList}
+{%- endfor %}
- keys:
- external: {get_param: ExternalNetName}
- internal_api: {get_param: InternalApiNetName}
- storage: {get_param: StorageNetName}
- storage_mgmt: {get_param: StorageMgmtNetName}
- tenant: {get_param: TenantNetName}
- management: {get_param: ManagementNetName}
+{%- for network in networks %}
+ {{network.name_lower}}: {get_param: {{network.name}}NetName}
+{%- endfor %}
outputs:
net_ip_map:
diff --git a/network/ports/net_ip_map.j2.yaml b/network/ports/net_ip_map.j2.yaml
new file mode 100644
index 00000000..f01d624a
--- /dev/null
+++ b/network/ports/net_ip_map.j2.yaml
@@ -0,0 +1,81 @@
+heat_template_version: pike
+
+parameters:
+ ControlPlaneIp:
+ default: ''
+ type: string
+ ControlPlaneSubnetCidr: # Override this via parameter_defaults
+ default: '24'
+ description: The subnet CIDR of the control plane network.
+ type: string
+{%- for network in networks %}
+ {{network.name}}Ip:
+ default: ''
+ type: string
+ {{network.name}}IpSubnet:
+ description: 'IP address/subnet on the {{network.name_lower}} network'
+ default: ''
+ type: string
+ {{network.name}}IpUri:
+ default: ''
+ type: string
+ description: IP address with brackets in case of IPv6
+{%- endfor %}
+
+{%- for network in networks %}
+ {{network.name}}NetName:
+ default: {{network.name_lower}}
+ description: The name of the {{network.name_lower}} network.
+ type: string
+{%- endfor %}
+
+resources:
+
+ NetIpMapValue:
+ type: OS::Heat::Value
+ properties:
+ type: json
+ value:
+ map_replace:
+ - ctlplane: {get_param: ControlPlaneIp}
+{%- for network in networks %}
+ {{network.name_lower}}: {get_param: {{network.name}}Ip}
+{%- endfor %}
+ ctlplane_subnet:
+ list_join:
+ - ''
+ - - {get_param: ControlPlaneIp}
+ - '/'
+ - {get_param: ControlPlaneSubnetCidr}
+{%- for network in networks %}
+ {{network.name_lower}}_subnet: {get_param: {{network.name}}IpSubnet}
+{%- endfor %}
+ ctlplane_uri: {get_param: ControlPlaneIp}
+{%- for network in networks %}
+ {{network.name_lower}}_uri: {get_param: {{network.name}}IpUri}
+{%- endfor %}
+ - keys:
+{%- for network in networks %}
+ {{network.name_lower}}: {get_param: {{network.name}}NetName}
+{%- endfor %}
+{%- for network in networks %}
+ {{network.name_lower}}_subnet:
+ str_replace:
+ template: NAME_subnet
+ params:
+ NAME: {get_param: {{network.name}}NetName}
+{%- endfor %}
+{%- for network in networks %}
+ {{network.name_lower}}_uri:
+ str_replace:
+ template: NAME_uri
+ params:
+ NAME: {get_param: {{network.name}}NetName}
+{%- endfor %}
+
+outputs:
+ net_ip_map:
+ description: >
+ A Hash containing a mapping of network names to assigned IPs
+ for a specific machine.
+ value: {get_attr: [NetIpMapValue, value]}
diff --git a/network/ports/net_ip_map.yaml b/network/ports/net_ip_map.yaml
deleted file mode 100644
index ce58e96f..00000000
--- a/network/ports/net_ip_map.yaml
+++ /dev/null
@@ -1,210 +0,0 @@
-heat_template_version: pike
-
-parameters:
- ControlPlaneIp:
- default: ''
- type: string
- ControlPlaneSubnetCidr: # Override this via parameter_defaults
- default: '24'
- description: The subnet CIDR of the control plane network.
- type: string
- ExternalIp:
- default: ''
- type: string
- ExternalIpSubnet:
- default: ''
- type: string
- description: IP address/subnet on the external network
- ExternalIpUri:
- default: ''
- type: string
- description: IP address with brackets in case of IPv6
- InternalApiIp:
- default: ''
- type: string
- InternalApiIpSubnet:
- default: ''
- type: string
- description: IP address/subnet on the internal API network
- InternalApiIpUri:
- default: ''
- type: string
- description: IP address with brackets in case of IPv6
- StorageIp:
- default: ''
- type: string
- StorageIpSubnet:
- default: ''
- type: string
- description: IP address/subnet on the storage network
- StorageIpUri:
- default: ''
- type: string
- description: IP address with brackets in case of IPv6
- StorageMgmtIp:
- default: ''
- type: string
- StorageMgmtIpSubnet:
- default: ''
- type: string
- description: IP address/subnet on the storage mgmt network
- StorageMgmtIpUri:
- default: ''
- type: string
- description: IP address with brackets in case of IPv6
- TenantIp:
- default: ''
- type: string
- TenantIpSubnet:
- default: ''
- type: string
- description: IP address/subnet on the tenant network
- TenantIpUri:
- default: ''
- type: string
- description: IP address with brackets in case of IPv6
- ManagementIp:
- default: ''
- type: string
- ManagementIpSubnet:
- default: ''
- type: string
- description: IP address/subnet on the management network
- ManagementIpUri:
- default: ''
- type: string
- description: IP address with brackets in case of IPv6
-
- InternalApiNetName:
- default: internal_api
- description: The name of the internal API network.
- type: string
- ExternalNetName:
- default: external
- description: The name of the external network.
- type: string
- ManagementNetName:
- default: management
- description: The name of the management network.
- type: string
- StorageNetName:
- default: storage
- description: The name of the storage network.
- type: string
- StorageMgmtNetName:
- default: storage_mgmt
- description: The name of the Storage management network.
- type: string
- TenantNetName:
- default: tenant
- description: The name of the tenant network.
- type: string
-
-resources:
-
- NetIpMapValue:
- type: OS::Heat::Value
- properties:
- type: json
- value:
- map_replace:
- - ctlplane: {get_param: ControlPlaneIp}
- external: {get_param: ExternalIp}
- internal_api: {get_param: InternalApiIp}
- storage: {get_param: StorageIp}
- storage_mgmt: {get_param: StorageMgmtIp}
- tenant: {get_param: TenantIp}
- management: {get_param: ManagementIp}
- ctlplane_subnet:
- list_join:
- - ''
- - - {get_param: ControlPlaneIp}
- - '/'
- - {get_param: ControlPlaneSubnetCidr}
- external_subnet: {get_param: ExternalIpSubnet}
- internal_api_subnet: {get_param: InternalApiIpSubnet}
- storage_subnet: {get_param: StorageIpSubnet}
- storage_mgmt_subnet: {get_param: StorageMgmtIpSubnet}
- tenant_subnet: {get_param: TenantIpSubnet}
- management_subnet: {get_param: ManagementIpSubnet}
- ctlplane_uri: {get_param: ControlPlaneIp}
- external_uri: {get_param: ExternalIpUri}
- internal_api_uri: {get_param: InternalApiIpUri}
- storage_uri: {get_param: StorageIpUri}
- storage_mgmt_uri: {get_param: StorageMgmtIpUri}
- tenant_uri: {get_param: TenantIpUri}
- management_uri: {get_param: ManagementIpUri}
- - keys:
- external: {get_param: ExternalNetName}
- internal_api: {get_param: InternalApiNetName}
- storage: {get_param: StorageNetName}
- storage_mgmt: {get_param: StorageMgmtNetName}
- tenant: {get_param: TenantNetName}
- management: {get_param: ManagementNetName}
- external_subnet:
- str_replace:
- template: NAME_subnet
- params:
- NAME: {get_param: ExternalNetName}
- internal_api_subnet:
- str_replace:
- template: NAME_subnet
- params:
- NAME: {get_param: InternalApiNetName}
- storage_subnet:
- str_replace:
- template: NAME_subnet
- params:
- NAME: {get_param: StorageNetName}
- storage_mgmt_subnet:
- str_replace:
- template: NAME_subnet
- params:
- NAME: {get_param: StorageMgmtNetName}
- tenant_subnet:
- str_replace:
- template: NAME_subnet
- params:
- NAME: {get_param: TenantNetName}
- management_subnet:
- str_replace:
- template: NAME_subnet
- params:
- NAME: {get_param: ManagementNetName}
- external_uri:
- str_replace:
- template: NAME_uri
- params:
- NAME: {get_param: ExternalNetName}
- internal_api_uri:
- str_replace:
- template: NAME_uri
- params:
- NAME: {get_param: InternalApiNetName}
- storage_uri:
- str_replace:
- template: NAME_uri
- params:
- NAME: {get_param: StorageNetName}
- storage_mgmt_uri:
- str_replace:
- template: NAME_uri
- params:
- NAME: {get_param: StorageMgmtNetName}
- tenant_uri:
- str_replace:
- template: NAME_uri
- params:
- NAME: {get_param: TenantNetName}
- management_uri:
- str_replace:
- template: NAME_uri
- params:
- NAME: {get_param: ManagementNetName}
-
-outputs:
- net_ip_map:
- description: >
- A Hash containing a mapping of network names to assigned IPs
- for a specific machine.
- value: {get_attr: [NetIpMapValue, value]}
diff --git a/network/ports/net_vip_map_external.j2.yaml b/network/ports/net_vip_map_external.j2.yaml
new file mode 100644
index 00000000..b17f48b5
--- /dev/null
+++ b/network/ports/net_vip_map_external.j2.yaml
@@ -0,0 +1,40 @@
+heat_template_version: pike
+
+parameters:
+ # Set these via parameter defaults to configure external VIPs
+ ControlPlaneIP:
+ default: ''
+ type: string
+{%- for network in networks if network.vip|default(false) %}
+ {{network.name}}NetworkVip:
+ default: ''
+ type: string
+{%- endfor %}
+ # The following are unused in this template
+ ControlPlaneIp:
+ default: ''
+ type: string
+{%- for network in networks if network.vip|default(false) %}
+ {{network.name}}Ip:
+ default: ''
+ type: string
+ {{network.name}}IpUri:
+ default: ''
+ type: string
+ description: IP address with brackets in case of IPv6
+{%- endfor %}
+
+outputs:
+ net_ip_map:
+ description: >
+ A Hash containing a mapping of network names to assigned IPs
+ for a specific machine.
+ value:
+ ctlplane: {get_param: ControlPlaneIP}
+{%- for network in networks if network.vip|default(false) %}
+ {{network.name_lower}}: {get_param: {{network.name}}NetworkVip}
+{%- endfor %}
+ ctlplane_uri: {get_param: ControlPlaneIP}
+{%- for network in networks if network.vip|default(false) %}
+ {{network.name_lower}}_uri: {get_param: {{network.name}}NetworkVip}
+{%- endfor %}
diff --git a/network/ports/net_vip_map_external.yaml b/network/ports/net_vip_map_external.yaml
deleted file mode 100644
index d0847882..00000000
--- a/network/ports/net_vip_map_external.yaml
+++ /dev/null
@@ -1,68 +0,0 @@
-heat_template_version: pike
-
-parameters:
- # Set these via parameter defaults to configure external VIPs
- ControlPlaneIP:
- default: ''
- type: string
- ExternalNetworkVip:
- default: ''
- type: string
- InternalApiNetworkVip:
- default: ''
- type: string
- StorageNetworkVip:
- default: ''
- type: string
- StorageMgmtNetworkVip:
- default: ''
- type: string
- # The following are unused in this template
- ControlPlaneIp:
- default: ''
- type: string
- ExternalIp:
- default: ''
- type: string
- ExternalIpUri:
- default: ''
- type: string
- description: IP address with brackets in case of IPv6
- InternalApiIp:
- default: ''
- type: string
- InternalApiIpUri:
- default: ''
- type: string
- description: IP address with brackets in case of IPv6
- StorageIp:
- default: ''
- type: string
- StorageIpUri:
- default: ''
- type: string
- description: IP address with brackets in case of IPv6
- StorageMgmtIp:
- default: ''
- type: string
- StorageMgmtIpUri:
- default: ''
- type: string
- description: IP address with brackets in case of IPv6
-
-outputs:
- net_ip_map:
- description: >
- A Hash containing a mapping of network names to assigned IPs
- for a specific machine.
- value:
- ctlplane: {get_param: ControlPlaneIP}
- external: {get_param: ExternalNetworkVip}
- internal_api: {get_param: InternalApiNetworkVip}
- storage: {get_param: StorageNetworkVip}
- storage_mgmt: {get_param: StorageMgmtNetworkVip}
- ctlplane_uri: {get_param: ControlPlaneIP}
- external_uri: {get_param: ExternalNetworkVip}
- internal_api_uri: {get_param: InternalApiNetworkVip}
- storage_uri: {get_param: StorageNetworkVip}
- storage_mgmt_uri: {get_param: StorageMgmtNetworkVip}
diff --git a/network/ports/net_vip_map_external_v6.j2.yaml b/network/ports/net_vip_map_external_v6.j2.yaml
new file mode 100644
index 00000000..5eff73c1
--- /dev/null
+++ b/network/ports/net_vip_map_external_v6.j2.yaml
@@ -0,0 +1,45 @@
+heat_template_version: pike
+
+parameters:
+ # Set these via parameter defaults to configure external VIPs
+ ControlPlaneIP:
+ default: ''
+ type: string
+{%- for network in networks if network.vip|default(false) %}
+ {{network.name}}NetworkVip:
+ default: ''
+ type: string
+{%- endfor %}
+ # The following are unused in this template
+ ControlPlaneIp:
+ default: ''
+ type: string
+{%- for network in networks if network.vip|default(false) %}
+ {{network.name}}Ip:
+ default: ''
+ type: string
+ {{network.name}}IpUri:
+ default: ''
+ type: string
+ description: IP address with brackets in case of IPv6
+{%- endfor %}
+
+outputs:
+ net_ip_map:
+ description: >
+ A Hash containing a mapping of network names to assigned IPs
+ for a specific machine.
+ value:
+ ctlplane: {get_param: ControlPlaneIP}
+{%- for network in networks if network.vip|default(false) %}
+ {{network.name_lower}}: {get_param: {{network.name}}NetworkVip}
+{%- endfor %}
+ ctlplane_uri: {get_param: ControlPlaneIP}
+{%- for network in networks if network.vip|default(false) %}
+ {{network.name_lower}}_uri:
+ list_join:
+ - ''
+ - - '['
+ - {get_param: {{network.name}}NetworkVip}
+ - ']'
+{%- endfor %}
diff --git a/network/ports/net_vip_map_external_v6.yaml b/network/ports/net_vip_map_external_v6.yaml
deleted file mode 100644
index 72e60cb2..00000000
--- a/network/ports/net_vip_map_external_v6.yaml
+++ /dev/null
@@ -1,88 +0,0 @@
-heat_template_version: pike
-
-parameters:
- # Set these via parameter defaults to configure external VIPs
- ControlPlaneIP:
- default: ''
- type: string
- ExternalNetworkVip:
- default: ''
- type: string
- InternalApiNetworkVip:
- default: ''
- type: string
- StorageNetworkVip:
- default: ''
- type: string
- StorageMgmtNetworkVip:
- default: ''
- type: string
- # The following are unused in this template
- ControlPlaneIp:
- default: ''
- type: string
- ExternalIp:
- default: ''
- type: string
- ExternalIpUri:
- default: ''
- type: string
- description: IP address with brackets in case of IPv6
- InternalApiIp:
- default: ''
- type: string
- InternalApiIpUri:
- default: ''
- type: string
- description: IP address with brackets in case of IPv6
- StorageIp:
- default: ''
- type: string
- StorageIpUri:
- default: ''
- type: string
- description: IP address with brackets in case of IPv6
- StorageMgmtIp:
- default: ''
- type: string
- StorageMgmtIpUri:
- default: ''
- type: string
- description: IP address with brackets in case of IPv6
-
-outputs:
- net_ip_map:
- description: >
- A Hash containing a mapping of network names to assigned IPs
- for a specific machine.
- value:
- ctlplane: {get_param: ControlPlaneIP}
- external: {get_param: ExternalNetworkVip}
- internal_api: {get_param: InternalApiNetworkVip}
- storage: {get_param: StorageNetworkVip}
- storage_mgmt: {get_param: StorageMgmtNetworkVip}
- ctlplane_uri: {get_param: ControlPlaneIP}
- external_uri:
- list_join:
- - ''
- - - '['
- - {get_param: ExternalNetworkVip}
- - ']'
- internal_api_uri:
- list_join:
- - ''
- - - '['
- - {get_param: InternalApiNetworkVip}
- - ']'
- storage_uri:
- list_join:
- - ''
- - - '['
- - {get_param: StorageNetworkVip}
- - ']'
- storage_mgmt_uri:
- list_join:
- - ''
- - - '['
- - {get_param: StorageMgmtNetworkVip}
- - ']'
diff --git a/network/ports/external_v6.yaml b/network/ports/port.j2
index 5a1b5ae3..2088d840 100644
--- a/network/ports/external_v6.yaml
+++ b/network/ports/port.j2
@@ -1,19 +1,19 @@
heat_template_version: pike
description: >
- Creates a port on the external network. The IP address will be chosen
+ Creates a port on the {{network.name}} network. The IP address will be chosen
automatically if FixedIPs is empty.
parameters:
- ExternalNetName:
- description: The name of the external network.
- default: external
+ {{network.name}}NetName:
+ description: The name of the {{network.name_lower}} network.
+ default: {{network.name_lower|default(network.name|lower)}}
type: string
PortName:
description: Name of the port
default: ''
type: string
- ControlPlaneIP: # Here for compatability with noop.yaml
+ ControlPlaneIP: # Here for compatibility with noop.yaml
description: IP address on the control plane
default: ''
type: string
@@ -36,31 +36,37 @@ parameters:
resources:
- ExternalPort:
+ {{network.name}}Port:
type: OS::Neutron::Port
properties:
- network: {get_param: ExternalNetName}
+ network: {get_param: {{network.name}}NetName}
name: {get_param: PortName}
fixed_ips: {get_param: FixedIPs}
replacement_policy: AUTO
outputs:
ip_address:
- description: external network IP
- value: {get_attr: [ExternalPort, fixed_ips, 0, ip_address]}
+ description: {{network.name}} network IP
+ value: {get_attr: [{{network.name}}Port, fixed_ips, 0, ip_address]}
ip_address_uri:
- description: external network IP with brackets suitable for a URL
+{%- if network.ipv6 or ipv6_override|default(false) %}
+ description: {{network.name}} network IP (with brackets for IPv6 URLs)
value:
list_join:
- ''
- - '['
- - {get_attr: [ExternalPort, fixed_ips, 0, ip_address]}
+ - {get_attr: [{{network.name}}Port, fixed_ips, 0, ip_address]}
- ']'
+{%- else %}
+ description: {{network.name}} network IP (for compatibility with IPv6 URLs)
+ value: {get_attr: [{{network.name}}Port, fixed_ips, 0, ip_address]}
+{%- endif %}
ip_subnet:
- description: IP/Subnet CIDR for the external network IP
+ description: IP/Subnet CIDR for the {{network.name}} network IP
value:
list_join:
- ''
- - - {get_attr: [ExternalPort, fixed_ips, 0, ip_address]}
+ - - {get_attr: [{{network.name}}Port, fixed_ips, 0, ip_address]}
- '/'
- - {str_split: ['/', {get_attr: [ExternalPort, subnets, 0, cidr]}, 1]}
+ - {str_split: ['/', {get_attr: [{{network.name}}Port, subnets, 0, cidr]}, 1]}
+
diff --git a/network/ports/port.network.j2.yaml b/network/ports/port.network.j2.yaml
index ded3e798..d0bd45ab 100644
--- a/network/ports/port.network.j2.yaml
+++ b/network/ports/port.network.j2.yaml
@@ -1,72 +1 @@
-heat_template_version: pike
-
-description: >
- Creates a port on the {{network.name}} network. The IP address will be chosen
- automatically if FixedIPs is empty.
-
-parameters:
- {{network.name}}NetName:
- description: Name of the {{network.name_lower}} neutron network
- default: {{network.name_lower|default(network.name|lower)}}
- type: string
- PortName:
- description: Name of the port
- default: ''
- type: string
- ControlPlaneIP: # Here for compatibility with noop.yaml
- description: IP address on the control plane
- default: ''
- 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
- IPPool: # Here for compatibility with from_pool.yaml
- default: {}
- type: json
- NodeIndex: # Here for compatibility with from_pool.yaml
- default: 0
- type: number
-
-resources:
-
- {{network.name}}Port:
- type: OS::Neutron::Port
- properties:
- network: {get_param: {{network.name}}NetName}
- name: {get_param: PortName}
- fixed_ips: {get_param: FixedIPs}
- replacement_policy: AUTO
-
-outputs:
- ip_address:
- description: {{network.name}} network IP
- value: {get_attr: [{{network.name}}Port, fixed_ips, 0, ip_address]}
- ip_address_uri:
-{%- if network.ipv6 %}
- description: {{network.name}} network IP (with brackets for IPv6 URLs)
- value:
- list_join:
- - ''
- - - '['
- - {get_attr: [{{network.name}}Port, fixed_ips, 0, ip_address]}
- - ']'
-{%- else %}
- description: {{network.name}} network IP (for compatibility with IPv6 URLs)
- value: {get_attr: [{{network.name}}Port, fixed_ips, 0, ip_address]}
-{%- endif %}
- ip_subnet:
- description: IP/Subnet CIDR for the {{network.name}} network IP
- value:
- list_join:
- - ''
- - - {get_attr: [{{network.name}}Port, fixed_ips, 0, ip_address]}
- - '/'
- - {str_split: ['/', {get_attr: [{{network.name}}Port, subnets, 0, cidr]}, 1]}
-
+{% include 'port.j2' %}
diff --git a/network/ports/port_from_pool.j2 b/network/ports/port_from_pool.j2
new file mode 100644
index 00000000..14b93692
--- /dev/null
+++ b/network/ports/port_from_pool.j2
@@ -0,0 +1,65 @@
+heat_template_version: pike
+
+description: >
+ Creates a port on the {{network.name}} network, using a map of IPs per role.
+ Each role has a map of IPs in <Role>IPs parameters, with a list of IPs by
+ network (lower_name or lower case). For example:
+ ControllerIPs:
+ external:
+ - 1.2.3.4 # First controller
+ - 1.2.3.5 # Second controller
+
+parameters:
+ {{network.name}}NetName:
+ description: The name of the {{network.name_lower}} network.
+ default: {{network.name_lower}}
+ type: string
+ PortName:
+ description: Name of the port
+ default: ''
+ type: string
+ ControlPlaneIP: # Here for compatibility with noop.yaml
+ description: IP address on the control plane
+ default: ''
+ type: string
+ ControlPlaneNetwork: # Here for compatibility with ctlplane_vip.yaml
+ description: The name of the undercloud Neutron control plane
+ default: ctlplane
+ type: string
+ IPPool: # Set in <Role>IPs map, see environments/ips-from-pool-all.yaml
+ default: {}
+ type: json
+ NodeIndex: # First node in the role will get first IP, and so on...
+ default: 0
+ type: number
+ {{network.name}}NetCidr:
+ default: {{network.ip_subnet}}
+ description: Cidr for the {{network.name_lower}} network.
+ type: string
+
+outputs:
+ ip_address:
+ description: {{network.name}} network IP
+ value: {get_param: [IPPool, {get_param: {{network.name}}NetName}, {get_param: NodeIndex}]}
+ ip_address_uri:
+{%- if network.ipv6 or ipv6_override|default(false) %}
+ description: {{network.name}} network IP (with brackets for IPv6 URLs)
+ value:
+ list_join:
+ - ''
+ - - '['
+ - {get_param: [IPPool, {get_param: {{network.name}}NetName}, {get_param: NodeIndex}]}
+ - ']'
+{%- else %}
+ description: {{network.name}} network IP (for compatibility with {{network.name_lower}}_v6.yaml)
+ value: {get_param: [IPPool, {get_param: {{network.name}}NetName}, {get_param: NodeIndex}]}
+{%- endif %}
+ ip_subnet:
+ description: IP/Subnet CIDR for the {{network.name}} network IP
+ value:
+ list_join:
+ - ''
+ - - {get_param: [IPPool, {get_param: {{network.name}}NetName}, {get_param: NodeIndex}]}
+ - '/'
+ - {str_split: ['/', {get_param: {{network.name}}NetCidr}, 1]}
+
diff --git a/network/ports/port_from_pool.network.j2.yaml b/network/ports/port_from_pool.network.j2.yaml
index 9c08ec76..ff863583 100644
--- a/network/ports/port_from_pool.network.j2.yaml
+++ b/network/ports/port_from_pool.network.j2.yaml
@@ -1,65 +1 @@
-heat_template_version: pike
-
-description: >
- Creates a port on the {{network.name}} network, using a map of IPs per role.
- Each role has a map of IPs in <Role>IPs parameters, with a list of IPs by
- network (lower_name or lower case). For example:
- ControllerIPs:
- external:
- - 1.2.3.4 # First controller
- - 1.2.3.5 # Second controller
-
-parameters:
- {{network.name}}NetName:
- description: Name of the {{network.name}} neutron network
- default: {{network.name_lower}}
- type: string
- PortName:
- description: Name of the port
- default: ''
- type: string
- ControlPlaneIP: # Here for compatibility with noop.yaml
- description: IP address on the control plane
- default: ''
- type: string
- ControlPlaneNetwork: # Here for compatibility with ctlplane_vip.yaml
- description: The name of the undercloud Neutron control plane
- default: ctlplane
- type: string
- IPPool: # Set in <Role>IPs map, see environments/ips-from-pool-all.yaml
- default: {}
- type: json
- NodeIndex: # First node in the role will get first IP, and so on...
- default: 0
- type: number
- {{network.name}}NetCidr:
- default: {{network.ip_subnet}}
- description: Cidr for the {{network.name_lower}} network.
- type: string
-
-outputs:
- ip_address:
- description: {{network.name}} network IP
- value: {get_param: [IPPool, {get_param: {{network.name}}NetName}, {get_param: NodeIndex}]}
- ip_address_uri:
-{%- if network.ipv6 %}
- description: {{network.name}} network IP (with brackets for IPv6 URLs)
- value:
- list_join:
- - ''
- - - '['
- - {get_param: [IPPool, {get_param: {{network.name}}NetName}, {get_param: NodeIndex}]}
- - ']'
-{%- else %}
- description: {{network.name}} network IP (for compatibility with {{network.name_lower}}_v6.yaml)
- value: {get_param: [IPPool, {get_param: {{network.name}}NetName}, {get_param: NodeIndex}]}
-{%- endif %}
- ip_subnet:
- description: IP/Subnet CIDR for the {{network.name}} network IP
- value:
- list_join:
- - ''
- - - {get_param: [IPPool, {get_param: {{network.name}}NetName}, {get_param: NodeIndex}]}
- - '/'
- - {str_split: ['/', {get_param: {{network.name}}NetCidr}, 1]}
-
+{% include 'port_from_pool.j2' %}
diff --git a/network/ports/port_from_pool_v6.network.j2.yaml b/network/ports/port_from_pool_v6.network.j2.yaml
new file mode 100644
index 00000000..689e1ad0
--- /dev/null
+++ b/network/ports/port_from_pool_v6.network.j2.yaml
@@ -0,0 +1,2 @@
+{% set ipv6_override = true -%}
+{% include 'port_from_pool.j2' %}
diff --git a/network/ports/port_v6.network.j2.yaml b/network/ports/port_v6.network.j2.yaml
new file mode 100644
index 00000000..59709bde
--- /dev/null
+++ b/network/ports/port_v6.network.j2.yaml
@@ -0,0 +1,2 @@
+{% set ipv6_override = true -%}
+{% include 'port.j2' %}
diff --git a/network/ports/storage.yaml b/network/ports/storage.yaml
deleted file mode 100644
index 13e51ccf..00000000
--- a/network/ports/storage.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-heat_template_version: pike
-
-description: >
- Creates a port on the storage network.
-
-parameters:
- StorageNetName:
- description: The name of the storage network.
- default: storage
- type: string
- PortName:
- description: Name of the port
- default: ''
- type: string
- ControlPlaneIP: # Here for compatibility with noop.yaml
- description: IP address on the control plane
- default: ''
- type: string
- FixedIPs:
- description: >
- Control the IP allocation for the VIP port. E.g.
- [{'ip_address':'1.2.3.4'}]
- default: []
- type: json
- IPPool: # Here for compatibility with from_pool.yaml
- default: {}
- type: json
- NodeIndex: # Here for compatibility with from_pool.yaml
- default: 0
- type: number
-
-resources:
-
- StoragePort:
- type: OS::Neutron::Port
- properties:
- network: {get_param: StorageNetName}
- name: {get_param: PortName}
- fixed_ips: {get_param: FixedIPs}
- replacement_policy: AUTO
-
-outputs:
- ip_address:
- description: storage network IP
- value: {get_attr: [StoragePort, fixed_ips, 0, ip_address]}
- ip_address_uri:
- description: storage network IP (for compatibility with storage_v6.yaml)
- value: {get_attr: [StoragePort, fixed_ips, 0, ip_address]}
- ip_subnet:
- description: IP/Subnet CIDR for the storage network IP
- value:
- list_join:
- - ''
- - - {get_attr: [StoragePort, fixed_ips, 0, ip_address]}
- - '/'
- - {str_split: ['/', {get_attr: [StoragePort, subnets, 0, cidr]}, 1]}
diff --git a/network/ports/storage_from_pool.yaml b/network/ports/storage_from_pool.yaml
deleted file mode 100644
index 11aa20c7..00000000
--- a/network/ports/storage_from_pool.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
-heat_template_version: pike
-
-description: >
- Returns an IP from a network mapped list of IPs
-
-parameters:
- StorageNetName:
- description: The name of the storage network.
- default: storage
- type: string
- PortName:
- description: Name of the port
- default: ''
- type: string
- ControlPlaneIP: # Here for compatibility 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
- StorageNetCidr:
- default: '172.16.1.0/24'
- description: Cidr for the storage network.
- type: string
-
-outputs:
- ip_address:
- description: storage network IP
- value: {get_param: [IPPool, {get_param: StorageNetName}, {get_param: NodeIndex}]}
- ip_address_uri:
- description: storage network IP (for compatibility with storage_v6.yaml)
- value: {get_param: [IPPool, {get_param: StorageNetName}, {get_param: NodeIndex}]}
- ip_subnet:
- description: IP/Subnet CIDR for the storage network IP
- value:
- list_join:
- - ''
- - - {get_param: [IPPool, {get_param: StorageNetName}, {get_param: NodeIndex}]}
- - '/'
- - {str_split: ['/', {get_param: StorageNetCidr}, 1]}
diff --git a/network/ports/storage_from_pool_v6.yaml b/network/ports/storage_from_pool_v6.yaml
deleted file mode 100644
index 2d2c3055..00000000
--- a/network/ports/storage_from_pool_v6.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-heat_template_version: pike
-
-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:
- StorageNetName:
- description: The name of the storage 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
- 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
- StorageNetCidr:
- default: 'fd00:fd00:fd00:3000::/64'
- description: Cidr for the storage network.
- type: string
-
-outputs:
- ip_address:
- description: storage network IP
- value: {get_param: [IPPool, {get_param: StorageNetName}, {get_param: NodeIndex}]}
- ip_address_uri:
- description: storage network IP (for compatibility with storage_v6.yaml)
- value:
- list_join:
- - ''
- - - '['
- - {get_param: [IPPool, {get_param: StorageNetName}, {get_param: NodeIndex}]}
- - ']'
- ip_subnet:
- description: IP/Subnet CIDR for the storage network IP
- value:
- list_join:
- - ''
- - - {get_param: [IPPool, {get_param: StorageNetName}, {get_param: NodeIndex}]}
- - '/'
- - {str_split: ['/', {get_param: StorageNetCidr}, 1]}
diff --git a/network/ports/storage_mgmt.yaml b/network/ports/storage_mgmt.yaml
deleted file mode 100644
index c06c58ef..00000000
--- a/network/ports/storage_mgmt.yaml
+++ /dev/null
@@ -1,57 +0,0 @@
-heat_template_version: pike
-
-description: >
- Creates a port on the storage_mgmt API network.
-
-parameters:
- StorageMgmtNetName:
- description: The name of the Storage management network.
- default: storage_mgmt
- type: string
- PortName:
- description: Name of the port
- default: ''
- type: string
- ControlPlaneIP: # Here for compatibility with noop.yaml
- description: IP address on the control plane
- default: ''
- type: string
- FixedIPs:
- description: >
- Control the IP allocation for the VIP port. E.g.
- [{'ip_address':'1.2.3.4'}]
- default: []
- type: json
- IPPool: # Here for compatibility with from_pool.yaml
- default: {}
- type: json
- NodeIndex: # Here for compatibility with from_pool.yaml
- default: 0
- type: number
-
-resources:
-
- StorageMgmtPort:
- type: OS::Neutron::Port
- properties:
- network: {get_param: StorageMgmtNetName}
- name: {get_param: PortName}
- fixed_ips: {get_param: FixedIPs}
- replacement_policy: AUTO
-
-outputs:
- ip_address:
- description: storage_mgmt network IP
- value: {get_attr: [StorageMgmtPort, fixed_ips, 0, ip_address]}
- ip_address_uri:
- description: |
- storage_mgmt network IP (for compatibility with storage_mgmt_v6.yaml)
- value: {get_attr: [StorageMgmtPort, fixed_ips, 0, ip_address]}
- ip_subnet:
- description: IP/Subnet CIDR for the storage_mgmt network IP
- value:
- list_join:
- - ''
- - - {get_attr: [StorageMgmtPort, fixed_ips, 0, ip_address]}
- - '/'
- - {str_split: ['/', {get_attr: [StorageMgmtPort, subnets, 0, cidr]}, 1]}
diff --git a/network/ports/storage_mgmt_from_pool.yaml b/network/ports/storage_mgmt_from_pool.yaml
deleted file mode 100644
index 07308a70..00000000
--- a/network/ports/storage_mgmt_from_pool.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
-heat_template_version: pike
-
-description: >
- Returns an IP from a network mapped list of IPs
-
-parameters:
- StorageMgmtNetName:
- description: The name of the Storage management network.
- default: storage_mgmt
- type: string
- PortName:
- description: Name of the port
- default: ''
- type: string
- ControlPlaneIP: # Here for compatibility 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
- StorageMgmtNetCidr:
- default: '172.16.3.0/24'
- description: Cidr for the storage management network.
- type: string
-
-outputs:
- ip_address:
- description: storage MGMT network IP
- value: {get_param: [IPPool, {get_param: StorageMgmtNetName}, {get_param: NodeIndex}]}
- ip_address_uri:
- description: storage MGMT network IP (for compatibility with storage_mgmt_v6.yaml)
- value: {get_param: [IPPool, {get_param: StorageMgmtNetName}, {get_param: NodeIndex}]}
- ip_subnet:
- description: IP/Subnet CIDR for the storage MGMT network IP
- value:
- list_join:
- - ''
- - - {get_param: [IPPool, {get_param: StorageMgmtNetName}, {get_param: NodeIndex}]}
- - '/'
- - {str_split: ['/', {get_param: StorageMgmtNetCidr}, 1]}
diff --git a/network/ports/storage_mgmt_from_pool_v6.yaml b/network/ports/storage_mgmt_from_pool_v6.yaml
deleted file mode 100644
index 1b30f0ce..00000000
--- a/network/ports/storage_mgmt_from_pool_v6.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-heat_template_version: pike
-
-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:
- StorageMgmtNetName:
- description: The name of the Storage management 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
- 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
- StorageMgmtNetCidr:
- default: 'fd00:fd00:fd00:4000::/64'
- description: Cidr for the storage management network.
- type: string
-
-outputs:
- ip_address:
- description: storage MGMT network IP
- value: {get_param: [IPPool, {get_param: StorageMgmtNetName}, {get_param: NodeIndex}]}
- ip_address_uri:
- description: storage MGMT network IP (for compatibility with storage_mgmt_v6.yaml)
- value:
- list_join:
- - ''
- - - '['
- - {get_param: [IPPool, {get_param: StorageMgmtNetName}, {get_param: NodeIndex}]}
- - ']'
- ip_subnet:
- description: IP/Subnet CIDR for the storage MGMT network IP
- value:
- list_join:
- - ''
- - - {get_param: [IPPool, {get_param: StorageMgmtNetName}, {get_param: NodeIndex}]}
- - '/'
- - {str_split: ['/', {get_param: StorageMgmtNetCidr}, 1]}
diff --git a/network/ports/storage_mgmt_v6.yaml b/network/ports/storage_mgmt_v6.yaml
deleted file mode 100644
index c10b1393..00000000
--- a/network/ports/storage_mgmt_v6.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-heat_template_version: pike
-
-description: >
- Creates a port on the storage_mgmt API network.
-
-parameters:
- StorageMgmtNetName:
- description: The name of the Storage management 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
- default: ''
- type: string
- FixedIPs:
- description: >
- Control the IP allocation for the VIP port. E.g.
- [{'ip_address':'1.2.3.4'}]
- default: []
- type: json
- IPPool: # Here for compatibility with from_pool.yaml
- default: {}
- type: json
- NodeIndex: # Here for compatibility with from_pool.yaml
- default: 0
- type: number
-
-resources:
-
- StorageMgmtPort:
- type: OS::Neutron::Port
- properties:
- network: {get_param: StorageMgmtNetName}
- name: {get_param: PortName}
- fixed_ips: {get_param: FixedIPs}
- replacement_policy: AUTO
-
-outputs:
- ip_address:
- description: storage_mgmt network IP
- value: {get_attr: [StorageMgmtPort, fixed_ips, 0, ip_address]}
- ip_address_uri:
- description: storage_mgmt network IP with brackets suitable for a URI
- value:
- list_join:
- - ''
- - - '['
- - {get_attr: [StorageMgmtPort, fixed_ips, 0, ip_address]}
- - ']'
- ip_subnet:
- description: IP/Subnet CIDR for the storage_mgmt network IP
- value:
- list_join:
- - ''
- - - {get_attr: [StorageMgmtPort, fixed_ips, 0, ip_address]}
- - '/'
- - {str_split: ['/', {get_attr: [StorageMgmtPort, subnets, 0, cidr]}, 1]}
diff --git a/network/ports/storage_v6.yaml b/network/ports/storage_v6.yaml
deleted file mode 100644
index c7d47c54..00000000
--- a/network/ports/storage_v6.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-heat_template_version: pike
-
-description: >
- Creates a port on the storage network.
-
-parameters:
- StorageNetName:
- description: The name of the storage 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
- default: ''
- type: string
- FixedIPs:
- description: >
- Control the IP allocation for the VIP port. E.g.
- [{'ip_address':'1.2.3.4'}]
- default: []
- type: json
- IPPool: # Here for compatibility with from_pool.yaml
- default: {}
- type: json
- NodeIndex: # Here for compatibility with from_pool.yaml
- default: 0
- type: number
-
-resources:
-
- StoragePort:
- type: OS::Neutron::Port
- properties:
- network: {get_param: StorageNetName}
- name: {get_param: PortName}
- fixed_ips: {get_param: FixedIPs}
- replacement_policy: AUTO
-
-outputs:
- ip_address:
- description: storage network IP
- value: {get_attr: [StoragePort, fixed_ips, 0, ip_address]}
- ip_address_uri:
- description: storage network IP with brackets suitable for a URL
- value:
- list_join:
- - ''
- - - '['
- - {get_attr: [StoragePort, fixed_ips, 0, ip_address]}
- - ']'
- ip_subnet:
- description: IP/Subnet CIDR for the storage network IP
- value:
- list_join:
- - ''
- - - {get_attr: [StoragePort, fixed_ips, 0, ip_address]}
- - '/'
- - {str_split: ['/', {get_attr: [StoragePort, subnets, 0, cidr]}, 1]}
diff --git a/network/ports/tenant.yaml b/network/ports/tenant.yaml
deleted file mode 100644
index 6c5eee38..00000000
--- a/network/ports/tenant.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-heat_template_version: pike
-
-description: >
- Creates a port on the tenant network.
-
-parameters:
- TenantNetName:
- description: The name of the tenant network.
- default: tenant
- type: string
- PortName:
- description: Name of the port
- default: ''
- type: string
- ControlPlaneIP: # Here for compatibility with noop.yaml
- description: IP address on the control plane
- default: ''
- type: string
- FixedIPs:
- description: >
- Control the IP allocation for the VIP port. E.g.
- [{'ip_address':'1.2.3.4'}]
- default: []
- type: json
- IPPool: # Here for compatibility with from_pool.yaml
- default: {}
- type: json
- NodeIndex: # Here for compatibility with from_pool.yaml
- default: 0
- type: number
-
-resources:
-
- TenantPort:
- type: OS::Neutron::Port
- properties:
- network: {get_param: TenantNetName}
- name: {get_param: PortName}
- fixed_ips: {get_param: FixedIPs}
- replacement_policy: AUTO
-
-outputs:
- ip_address:
- description: tenant network IP
- value: {get_attr: [TenantPort, fixed_ips, 0, ip_address]}
- ip_address_uri:
- description: tenant network IP (for compatibility with tenant_v6.yaml)
- value: {get_attr: [TenantPort, fixed_ips, 0, ip_address]}
- ip_subnet:
- description: IP/Subnet CIDR for the tenant network IP
- value:
- list_join:
- - ''
- - - {get_attr: [TenantPort, fixed_ips, 0, ip_address]}
- - '/'
- - {str_split: ['/', {get_attr: [TenantPort, subnets, 0, cidr]}, 1]}
diff --git a/network/ports/tenant_from_pool.yaml b/network/ports/tenant_from_pool.yaml
deleted file mode 100644
index 94c419df..00000000
--- a/network/ports/tenant_from_pool.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
-heat_template_version: pike
-
-description: >
- Returns an IP from a network mapped list of IPs
-
-parameters:
- TenantNetName:
- description: The name of the tenant network.
- default: tenant
- type: string
- PortName:
- description: Name of the port
- default: ''
- type: string
- ControlPlaneIP: # Here for compatibility 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
- TenantNetCidr:
- default: '172.16.0.0/24'
- description: Cidr for the tenant network.
- type: string
-
-outputs:
- ip_address:
- description: tenant network IP
- value: {get_param: [IPPool, {get_param: TenantNetName}, {get_param: NodeIndex}]}
- ip_address_uri:
- description: tenant network IP (for compatibility with tenant_v6.yaml)
- value: {get_param: [IPPool, {get_param: TenantNetName}, {get_param: NodeIndex}]}
- ip_subnet:
- description: IP/Subnet CIDR for the tenant network IP
- value:
- list_join:
- - ''
- - - {get_param: [IPPool, {get_param: TenantNetName}, {get_param: NodeIndex}]}
- - '/'
- - {str_split: ['/', {get_param: TenantNetCidr}, 1]}
diff --git a/network/ports/tenant_from_pool_v6.yaml b/network/ports/tenant_from_pool_v6.yaml
deleted file mode 100644
index cc2b619a..00000000
--- a/network/ports/tenant_from_pool_v6.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
-heat_template_version: pike
-
-description: >
- Returns an IP from a network mapped list of IPs
-
-parameters:
- TenantNetName:
- description: The name of the tenant 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
- 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
- TenantNetCidr:
- default: 'fd00:fd00:fd00:5000::/64'
- description: Cidr for the tenant network.
- type: string
-
-outputs:
- ip_address:
- description: tenant network IP
- value: {get_param: [IPPool, {get_param: TenantNetName}, {get_param: NodeIndex}]}
- ip_address_uri:
- description: tenant network IP (for compatibility with tenant_v6.yaml)
- value:
- list_join:
- - ''
- - - '['
- - {get_param: [IPPool, {get_param: ExternalNetName}, {get_param: NodeIndex}]}
- - ']'
- ip_subnet:
- description: IP/Subnet CIDR for the tenant network IP
- value:
- list_join:
- - ''
- - - {get_param: [IPPool, {get_param: TenantNetName}, {get_param: NodeIndex}]}
- - '/'
- - {str_split: ['/', {get_param: TenantNetCidr}, 1]}
diff --git a/network/ports/tenant_v6.yaml b/network/ports/tenant_v6.yaml
deleted file mode 100644
index 47d52d8a..00000000
--- a/network/ports/tenant_v6.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-heat_template_version: pike
-
-description: >
- Creates a port on the tenant network.
-
-parameters:
- TenantNetName:
- description: The name of the tenant 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
- default: ''
- type: string
- FixedIPs:
- description: >
- Control the IP allocation for the VIP port. E.g.
- [{'ip_address':'1.2.3.4'}]
- default: []
- type: json
- IPPool: # Here for compatibility with from_pool.yaml
- default: {}
- type: json
- NodeIndex: # Here for compatibility with from_pool.yaml
- default: 0
- type: number
-
-resources:
-
- TenantPort:
- type: OS::Neutron::Port
- properties:
- network: {get_param: TenantNetName}
- name: {get_param: PortName}
- fixed_ips: {get_param: FixedIPs}
- replacement_policy: AUTO
-
-outputs:
- ip_address:
- description: tenant network IP
- value: {get_attr: [TenantPort, fixed_ips, 0, ip_address]}
- ip_address_uri:
- description: tenant network IP with brackets suitable for a URL
- value:
- list_join:
- - ''
- - - '['
- - {get_attr: [TenantPort, fixed_ips, 0, ip_address]}
- - ']'
- ip_subnet:
- description: IP/Subnet CIDR for the tenant network IP
- value:
- list_join:
- - ''
- - - {get_attr: [TenantPort, fixed_ips, 0, ip_address]}
- - '/'
- - {str_split: ['/', {get_attr: [TenantPort, subnets, 0, cidr]}, 1]}