aboutsummaryrefslogtreecommitdiffstats
path: root/network
diff options
context:
space:
mode:
Diffstat (limited to 'network')
-rw-r--r--network/config/bond-with-vlans/README.md12
-rw-r--r--network/config/bond-with-vlans/controller-no-external.yaml114
-rw-r--r--network/config/multiple-nics/ceph-storage.yaml3
-rw-r--r--network/config/multiple-nics/cinder-storage.yaml3
-rw-r--r--network/config/multiple-nics/compute.yaml3
-rw-r--r--network/config/multiple-nics/swift-storage.yaml3
-rw-r--r--network/config/single-nic-vlans/README.md12
-rw-r--r--network/config/single-nic-vlans/controller-no-external.yaml99
-rw-r--r--network/endpoints/endpoint.yaml11
-rw-r--r--network/endpoints/endpoint_map.yaml76
-rw-r--r--network/ports/ctlplane_vip.yaml1
-rw-r--r--network/ports/external.yaml1
-rw-r--r--network/ports/internal_api.yaml1
-rw-r--r--network/ports/net_vip_map_external.yaml50
-rw-r--r--network/ports/storage.yaml2
-rw-r--r--network/ports/storage_mgmt.yaml1
-rw-r--r--network/ports/tenant.yaml1
-rw-r--r--network/ports/vip.yaml1
18 files changed, 390 insertions, 4 deletions
diff --git a/network/config/bond-with-vlans/README.md b/network/config/bond-with-vlans/README.md
index 1679df3c..98879b4f 100644
--- a/network/config/bond-with-vlans/README.md
+++ b/network/config/bond-with-vlans/README.md
@@ -1,6 +1,12 @@
This directory contains Heat templates to help configure
Vlans on a bonded pair of NICs for each Overcloud role.
+There are two versions of the controller role template, one with
+an external network interface, and another without. If the
+external network interface is not configured the ctlplane address
+ranges will be used for external (public) network traffic.
+
+
Configuration
-------------
@@ -13,3 +19,9 @@ something like this:
OS::TripleO::Controller::Net::SoftwareConfig: network/config/bond-with-vlans/controller.yaml
OS::TripleO::ObjectStorage::Net::SoftwareConfig: network/config/bond-with-vlans/swift-storage.yaml
OS::TripleO::CephStorage::Net::SoftwareConfig: network/config/bond-with-vlans/ceph-storage.yaml
+
+Configuration with no External Network
+--------------------------------------
+Same as above except set the following value for the controller role:
+
+ OS::TripleO::Controller::Net::SoftwareConfig: network/config/bond-with-vlans/controller-no-external.yaml
diff --git a/network/config/bond-with-vlans/controller-no-external.yaml b/network/config/bond-with-vlans/controller-no-external.yaml
new file mode 100644
index 00000000..22579e8f
--- /dev/null
+++ b/network/config/bond-with-vlans/controller-no-external.yaml
@@ -0,0 +1,114 @@
+heat_template_version: 2015-04-30
+
+description: >
+ Software Config to drive os-net-config with 2 bonded nics on a bridge
+ with VLANs attached for the controller role.
+
+parameters:
+ ExternalIpSubnet:
+ default: ''
+ description: IP address/subnet on the external network
+ type: string
+ InternalApiIpSubnet:
+ default: ''
+ description: IP address/subnet on the internal API network
+ type: string
+ StorageIpSubnet:
+ default: ''
+ description: IP address/subnet on the storage network
+ type: string
+ StorageMgmtIpSubnet:
+ default: ''
+ description: IP address/subnet on the storage mgmt network
+ type: string
+ TenantIpSubnet:
+ default: ''
+ description: IP address/subnet on the tenant network
+ type: string
+ BondInterfaceOvsOptions:
+ default: ''
+ description: The ovs_options string for the bond interface. Set things like
+ lacp=active and/or bond_mode=balance-slb using this option.
+ type: string
+ ExternalNetworkVlanID:
+ default: 10
+ description: Vlan ID for the external network traffic.
+ type: number
+ InternalApiNetworkVlanID:
+ default: 20
+ description: Vlan ID for the internal_api network traffic.
+ type: number
+ StorageNetworkVlanID:
+ default: 30
+ description: Vlan ID for the storage network traffic.
+ type: number
+ StorageMgmtNetworkVlanID:
+ default: 40
+ description: Vlan ID for the storage mgmt network traffic.
+ type: number
+ TenantNetworkVlanID:
+ default: 50
+ description: Vlan ID for the tenant network traffic.
+ type: number
+ ExternalInterfaceDefaultRoute:
+ default: '10.0.0.1'
+ description: default route for the external network
+ type: string
+
+resources:
+ OsNetConfigImpl:
+ type: OS::Heat::StructuredConfig
+ properties:
+ group: os-apply-config
+ config:
+ os_net_config:
+ network_config:
+ -
+ type: ovs_bridge
+ name: {get_input: bridge_name}
+ members:
+ -
+ type: ovs_bond
+ name: bond1
+ ovs_options: {get_param: BondInterfaceOvsOptions}
+ members:
+ -
+ type: interface
+ name: nic2
+ primary: true
+ -
+ type: interface
+ name: nic3
+ -
+ type: vlan
+ device: bond1
+ vlan_id: {get_param: InternalApiNetworkVlanID}
+ addresses:
+ -
+ ip_netmask: {get_param: InternalApiIpSubnet}
+ -
+ type: vlan
+ device: bond1
+ vlan_id: {get_param: StorageNetworkVlanID}
+ addresses:
+ -
+ ip_netmask: {get_param: StorageIpSubnet}
+ -
+ type: vlan
+ device: bond1
+ vlan_id: {get_param: StorageMgmtNetworkVlanID}
+ addresses:
+ -
+ ip_netmask: {get_param: StorageMgmtIpSubnet}
+ -
+ type: vlan
+ device: bond1
+ vlan_id: {get_param: TenantNetworkVlanID}
+ addresses:
+ -
+ ip_netmask: {get_param: TenantIpSubnet}
+
+outputs:
+ OS::stack_id:
+ description: The OsNetConfigImpl resource.
+ value: {get_resource: OsNetConfigImpl}
diff --git a/network/config/multiple-nics/ceph-storage.yaml b/network/config/multiple-nics/ceph-storage.yaml
index a0508583..7d650f4b 100644
--- a/network/config/multiple-nics/ceph-storage.yaml
+++ b/network/config/multiple-nics/ceph-storage.yaml
@@ -92,6 +92,9 @@ resources:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
+ -
+ default: true
+ next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: interface
name: nic2
diff --git a/network/config/multiple-nics/cinder-storage.yaml b/network/config/multiple-nics/cinder-storage.yaml
index c84586bb..fdb6c9d8 100644
--- a/network/config/multiple-nics/cinder-storage.yaml
+++ b/network/config/multiple-nics/cinder-storage.yaml
@@ -92,6 +92,9 @@ resources:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
+ -
+ default: true
+ next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: interface
name: nic2
diff --git a/network/config/multiple-nics/compute.yaml b/network/config/multiple-nics/compute.yaml
index 70a18081..0032a287 100644
--- a/network/config/multiple-nics/compute.yaml
+++ b/network/config/multiple-nics/compute.yaml
@@ -80,6 +80,9 @@ resources:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
+ -
+ default: true
+ next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: interface
name: nic2
diff --git a/network/config/multiple-nics/swift-storage.yaml b/network/config/multiple-nics/swift-storage.yaml
index 25ac75f2..00e4f353 100644
--- a/network/config/multiple-nics/swift-storage.yaml
+++ b/network/config/multiple-nics/swift-storage.yaml
@@ -92,6 +92,9 @@ resources:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
+ -
+ default: true
+ next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: interface
name: nic2
diff --git a/network/config/single-nic-vlans/README.md b/network/config/single-nic-vlans/README.md
index e3e16574..6f128650 100644
--- a/network/config/single-nic-vlans/README.md
+++ b/network/config/single-nic-vlans/README.md
@@ -1,6 +1,11 @@
This directory contains Heat templates to help configure
Vlans on a single NICs for each Overcloud role.
+There are two versions of the controller role template, one with
+an external network interface, and another without. If the
+external network interface is not configured the ctlplane address
+ranges will be used for external (public) network traffic.
+
Configuration
-------------
@@ -17,3 +22,10 @@ something like this:
Or use this Heat environment file:
environments/net-single-nic-with-vlans.yaml
+
+
+Configuration with no External Network
+--------------------------------------
+Same as above except set the following value for the controller role:
+
+ OS::TripleO::Controller::Net::SoftwareConfig: network/config/single-nic-vlans/controller-no-external.yaml
diff --git a/network/config/single-nic-vlans/controller-no-external.yaml b/network/config/single-nic-vlans/controller-no-external.yaml
new file mode 100644
index 00000000..faf9e9c2
--- /dev/null
+++ b/network/config/single-nic-vlans/controller-no-external.yaml
@@ -0,0 +1,99 @@
+heat_template_version: 2015-04-30
+
+description: >
+ Software Config to drive os-net-config to configure VLANs for the
+ controller role. No external IP is configured.
+
+parameters:
+ ExternalIpSubnet:
+ default: ''
+ description: IP address/subnet on the external network
+ type: string
+ InternalApiIpSubnet:
+ default: ''
+ description: IP address/subnet on the internal API network
+ type: string
+ StorageIpSubnet:
+ default: ''
+ description: IP address/subnet on the storage network
+ type: string
+ StorageMgmtIpSubnet:
+ default: ''
+ description: IP address/subnet on the storage mgmt network
+ type: string
+ TenantIpSubnet:
+ default: ''
+ description: IP address/subnet on the tenant network
+ type: string
+ ExternalNetworkVlanID:
+ default: 10
+ description: Vlan ID for the external network traffic.
+ type: number
+ InternalApiNetworkVlanID:
+ default: 20
+ description: Vlan ID for the internal_api network traffic.
+ type: number
+ StorageNetworkVlanID:
+ default: 30
+ description: Vlan ID for the storage network traffic.
+ type: number
+ StorageMgmtNetworkVlanID:
+ default: 40
+ description: Vlan ID for the storage mgmt network traffic.
+ type: number
+ TenantNetworkVlanID:
+ default: 50
+ description: Vlan ID for the tenant network traffic.
+ type: number
+ ExternalInterfaceDefaultRoute:
+ default: '10.0.0.1'
+ description: default route for the external network
+ type: string
+
+resources:
+ OsNetConfigImpl:
+ type: OS::Heat::StructuredConfig
+ properties:
+ group: os-apply-config
+ config:
+ os_net_config:
+ network_config:
+ -
+ type: ovs_bridge
+ name: {get_input: bridge_name}
+ use_dhcp: true
+ members:
+ -
+ type: interface
+ name: nic1
+ # force the MAC address of the bridge to this interface
+ primary: true
+ -
+ type: vlan
+ vlan_id: {get_param: InternalApiNetworkVlanID}
+ addresses:
+ -
+ ip_netmask: {get_param: InternalApiIpSubnet}
+ -
+ type: vlan
+ vlan_id: {get_param: StorageNetworkVlanID}
+ addresses:
+ -
+ ip_netmask: {get_param: StorageIpSubnet}
+ -
+ type: vlan
+ vlan_id: {get_param: StorageMgmtNetworkVlanID}
+ addresses:
+ -
+ ip_netmask: {get_param: StorageMgmtIpSubnet}
+ -
+ type: vlan
+ vlan_id: {get_param: TenantNetworkVlanID}
+ addresses:
+ -
+ ip_netmask: {get_param: TenantIpSubnet}
+
+outputs:
+ OS::stack_id:
+ description: The OsNetConfigImpl resource.
+ value: {get_resource: OsNetConfigImpl}
diff --git a/network/endpoints/endpoint.yaml b/network/endpoints/endpoint.yaml
index 8ffd6c4b..6246cfdd 100644
--- a/network/endpoints/endpoint.yaml
+++ b/network/endpoints/endpoint.yaml
@@ -19,6 +19,10 @@ parameters:
type: string
default: ''
description: A suffix attached to the URL
+ CloudName:
+ type: string
+ default: ''
+ description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
outputs:
endpoint:
@@ -28,10 +32,11 @@ outputs:
value:
port: {get_param: [EndpointMap, {get_param: EndpointName }, port] }
protocol: {get_param: [EndpointMap, {get_param: EndpointName }, protocol] }
+ ip: {get_param: IP}
host:
str_replace:
template: {get_param: [EndpointMap, {get_param: EndpointName }, host]}
- params: {IP_ADDRESS: {get_param: IP} }
+ params: {IP_ADDRESS: {get_param: IP}, CLOUDNAME: {get_param: CloudName}}
uri:
list_join:
- ''
@@ -39,7 +44,7 @@ outputs:
- '://'
- str_replace:
template: {get_param: [EndpointMap, {get_param: EndpointName }, host]}
- params: {IP_ADDRESS: {get_param: IP} }
+ params: {IP_ADDRESS: {get_param: IP}, CLOUDNAME: {get_param: CloudName }}
- ':'
- {get_param: [EndpointMap, {get_param: EndpointName }, port] }
- {get_param: UriSuffix }
@@ -50,6 +55,6 @@ outputs:
- '://'
- str_replace:
template: {get_param: [EndpointMap, {get_param: EndpointName }, host]}
- params: {IP_ADDRESS: {get_param: IP} }
+ params: {IP_ADDRESS: {get_param: IP}, CLOUDNAME: {get_param: CloudName} }
- ':'
- {get_param: [EndpointMap, {get_param: EndpointName }, port] }
diff --git a/network/endpoints/endpoint_map.yaml b/network/endpoints/endpoint_map.yaml
index 9c000c38..05214011 100644
--- a/network/endpoints/endpoint_map.yaml
+++ b/network/endpoints/endpoint_map.yaml
@@ -52,9 +52,13 @@ parameters:
GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
GlancePublic: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
+ GlanceRegistryAdmin: {protocol: 'http', port: '9191', host: 'IP_ADDRESS'}
+ GlanceRegistryInternal: {protocol: 'http', port: '9191', host: 'IP_ADDRESS'}
+ GlanceRegistryPublic: {protocol: 'http', port: '9191', host: 'IP_ADDRESS'}
HeatAdmin: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
HeatInternal: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
HeatPublic: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
+ HorizonPublic: {protocol: 'http', port: '80', host: 'IP_ADDRESS'}
KeystoneAdmin: {protocol: 'http', port: '35357', host: 'IP_ADDRESS'}
KeystoneInternal: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'}
KeystonePublic: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'}
@@ -72,6 +76,10 @@ parameters:
SwiftPublic: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
+ CloudName:
+ type: string
+ default: ''
+ description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
resources:
@@ -80,18 +88,21 @@ resources:
properties:
EndpointName: CeilometerInternal
EndpointMap: { get_param: EndpointMap }
+ CloudName: {get_param: CloudName}
IP: {get_param: CeilometerApiVirtualIP}
CeilometerPublic:
type: OS::TripleO::Endpoint
properties:
EndpointName: CeilometerPublic
EndpointMap: { get_param: EndpointMap }
+ CloudName: {get_param: CloudName}
IP: {get_param: PublicVirtualIP}
CeilometerAdmin:
type: OS::TripleO::Endpoint
properties:
EndpointName: CeilometerAdmin
EndpointMap: { get_param: EndpointMap }
+ CloudName: {get_param: CloudName}
IP: {get_param: CeilometerApiVirtualIP}
CinderInternal:
@@ -99,6 +110,7 @@ resources:
properties:
EndpointName: CinderInternal
EndpointMap: { get_param: EndpointMap }
+ CloudName: {get_param: CloudName}
IP: {get_param: CinderApiVirtualIP}
UriSuffix: '/v1/%(tenant_id)s'
CinderPublic:
@@ -106,6 +118,7 @@ resources:
properties:
EndpointName: CinderPublic
EndpointMap: { get_param: EndpointMap }
+ CloudName: {get_param: CloudName}
IP: {get_param: PublicVirtualIP}
UriSuffix: '/v1/%(tenant_id)s'
CinderAdmin:
@@ -113,6 +126,7 @@ resources:
properties:
EndpointName: CinderAdmin
EndpointMap: { get_param: EndpointMap }
+ CloudName: {get_param: CloudName}
IP: {get_param: CinderApiVirtualIP}
UriSuffix: '/v1/%(tenant_id)s'
@@ -121,6 +135,7 @@ resources:
properties:
EndpointName: CinderInternal
EndpointMap: { get_param: EndpointMap }
+ CloudName: {get_param: CloudName}
IP: {get_param: CinderApiVirtualIP}
UriSuffix: '/v2/%(tenant_id)s'
CinderV2Public:
@@ -128,6 +143,7 @@ resources:
properties:
EndpointName: CinderPublic
EndpointMap: { get_param: EndpointMap }
+ CloudName: {get_param: CloudName}
IP: {get_param: PublicVirtualIP}
UriSuffix: '/v2/%(tenant_id)s'
CinderV2Admin:
@@ -135,6 +151,7 @@ resources:
properties:
EndpointName: CinderAdmin
EndpointMap: { get_param: EndpointMap }
+ CloudName: {get_param: CloudName}
IP: {get_param: CinderApiVirtualIP}
UriSuffix: '/v2/%(tenant_id)s'
@@ -143,19 +160,40 @@ resources:
properties:
EndpointName: GlanceInternal
EndpointMap: { get_param: EndpointMap }
+ CloudName: {get_param: CloudName}
IP: {get_param: GlanceApiVirtualIP}
GlancePublic:
type: OS::TripleO::Endpoint
properties:
EndpointName: GlancePublic
EndpointMap: { get_param: EndpointMap }
+ CloudName: {get_param: CloudName}
IP: {get_param: PublicVirtualIP}
GlanceAdmin:
type: OS::TripleO::Endpoint
properties:
EndpointName: GlanceAdmin
EndpointMap: { get_param: EndpointMap }
+ CloudName: {get_param: CloudName}
IP: {get_param: GlanceApiVirtualIP}
+ GlanceRegistryInternal:
+ type: OS::TripleO::Endpoint
+ properties:
+ EndpointName: GlanceInternal
+ EndpointMap: { get_param: EndpointMap }
+ IP: {get_param: GlanceRegistryVirtualIP}
+ GlanceRegistryPublic:
+ type: OS::TripleO::Endpoint
+ properties:
+ EndpointName: GlancePublic
+ EndpointMap: { get_param: EndpointMap }
+ IP: {get_param: PublicVirtualIP}
+ GlanceRegistryAdmin:
+ type: OS::TripleO::Endpoint
+ properties:
+ EndpointName: GlanceAdmin
+ EndpointMap: { get_param: EndpointMap }
+ IP: {get_param: GlanceRegistryVirtualIP}
HeatInternal:
type: OS::TripleO::Endpoint
@@ -163,6 +201,7 @@ resources:
EndpointName: HeatInternal
EndpointMap: { get_param: EndpointMap }
IP: {get_param: HeatApiVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/v1/%(tenant_id)s'
HeatPublic:
type: OS::TripleO::Endpoint
@@ -170,6 +209,7 @@ resources:
EndpointName: HeatPublic
EndpointMap: { get_param: EndpointMap }
IP: {get_param: PublicVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/v1/%(tenant_id)s'
HeatAdmin:
type: OS::TripleO::Endpoint
@@ -177,14 +217,25 @@ resources:
EndpointName: HeatAdmin
EndpointMap: { get_param: EndpointMap }
IP: {get_param: HeatApiVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/v1/%(tenant_id)s'
+ HorizonPublic:
+ type: OS::TripleO::Endpoint
+ properties:
+ EndpointName: HeatPublic
+ EndpointMap: { get_param: EndpointMap }
+ IP: {get_param: PublicVirtualIP}
+ CloudName: {get_param: CloudName}
+ UriSuffix: '/dashboard'
+
KeystoneInternal:
type: OS::TripleO::Endpoint
properties:
EndpointName: KeystoneInternal
EndpointMap: { get_param: EndpointMap }
IP: {get_param: KeystonePublicApiVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/v2.0'
KeystonePublic:
type: OS::TripleO::Endpoint
@@ -192,6 +243,7 @@ resources:
EndpointName: KeystonePublic
EndpointMap: { get_param: EndpointMap }
IP: {get_param: PublicVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/v2.0'
KeystoneAdmin:
type: OS::TripleO::Endpoint
@@ -199,6 +251,7 @@ resources:
EndpointName: KeystoneAdmin
EndpointMap: { get_param: EndpointMap }
IP: {get_param: KeystoneAdminApiVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/v2.0'
KeystoneEC2:
type: OS::TripleO::Endpoint
@@ -206,6 +259,7 @@ resources:
EndpointName: KeystoneInternal
EndpointMap: { get_param: EndpointMap }
IP: {get_param: KeystonePublicApiVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/v2.0/ec2tokens'
NeutronInternal:
@@ -214,18 +268,21 @@ resources:
EndpointName: NeutronInternal
EndpointMap: { get_param: EndpointMap }
IP: {get_param: NeutronApiVirtualIP}
+ CloudName: {get_param: CloudName}
NeutronPublic:
type: OS::TripleO::Endpoint
properties:
EndpointName: NeutronPublic
EndpointMap: { get_param: EndpointMap }
IP: {get_param: PublicVirtualIP}
+ CloudName: {get_param: CloudName}
NeutronAdmin:
type: OS::TripleO::Endpoint
properties:
EndpointName: NeutronAdmin
EndpointMap: { get_param: EndpointMap }
IP: {get_param: NeutronApiVirtualIP}
+ CloudName: {get_param: CloudName}
NovaInternal:
type: OS::TripleO::Endpoint
@@ -233,6 +290,7 @@ resources:
EndpointName: NovaInternal
EndpointMap: { get_param: EndpointMap }
IP: {get_param: NovaApiVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/v2/%(tenant_id)s'
NovaPublic:
type: OS::TripleO::Endpoint
@@ -240,6 +298,7 @@ resources:
EndpointName: NovaPublic
EndpointMap: { get_param: EndpointMap }
IP: {get_param: PublicVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/v2/%(tenant_id)s'
NovaAdmin:
type: OS::TripleO::Endpoint
@@ -247,6 +306,7 @@ resources:
EndpointName: NovaAdmin
EndpointMap: { get_param: EndpointMap }
IP: {get_param: NovaApiVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/v2/%(tenant_id)s'
NovaV3Internal:
type: OS::TripleO::Endpoint
@@ -254,6 +314,7 @@ resources:
EndpointName: NovaInternal
EndpointMap: { get_param: EndpointMap }
IP: {get_param: NovaApiVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/v3'
NovaV3Public:
type: OS::TripleO::Endpoint
@@ -261,6 +322,7 @@ resources:
EndpointName: NovaPublic
EndpointMap: { get_param: EndpointMap }
IP: {get_param: PublicVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/v3'
NovaV3Admin:
type: OS::TripleO::Endpoint
@@ -268,6 +330,7 @@ resources:
EndpointName: NovaAdmin
EndpointMap: { get_param: EndpointMap }
IP: {get_param: NovaApiVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/v3'
NovaEC2Internal:
@@ -276,6 +339,7 @@ resources:
EndpointName: NovaEC2Internal
EndpointMap: { get_param: EndpointMap }
IP: {get_param: NovaApiVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/services/Cloud'
NovaEC2Public:
type: OS::TripleO::Endpoint
@@ -283,6 +347,7 @@ resources:
EndpointName: NovaEC2Public
EndpointMap: { get_param: EndpointMap }
IP: {get_param: PublicVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/services/Cloud'
NovaEC2Admin:
type: OS::TripleO::Endpoint
@@ -290,6 +355,7 @@ resources:
EndpointName: NovaEC2Admin
EndpointMap: { get_param: EndpointMap }
IP: {get_param: NovaApiVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/services/Admin'
SwiftInternal:
@@ -298,6 +364,7 @@ resources:
EndpointName: SwiftInternal
EndpointMap: { get_param: EndpointMap }
IP: {get_param: SwiftProxyVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/v1/AUTH_%(tenant_id)s'
SwiftPublic:
type: OS::TripleO::Endpoint
@@ -305,6 +372,7 @@ resources:
EndpointName: SwiftPublic
EndpointMap: { get_param: EndpointMap }
IP: {get_param: PublicVirtualIP}
+ CloudName: {get_param: CloudName}
UriSuffix: '/v1/AUTH_%(tenant_id)s'
SwiftAdmin:
type: OS::TripleO::Endpoint
@@ -312,6 +380,7 @@ resources:
EndpointName: SwiftAdmin
EndpointMap: { get_param: EndpointMap }
IP: {get_param: SwiftProxyVirtualIP}
+ CloudName: {get_param: CloudName}
# No Suffix for the Admin interface
SwiftS3Internal:
type: OS::TripleO::Endpoint
@@ -319,18 +388,21 @@ resources:
EndpointName: SwiftInternal
EndpointMap: { get_param: EndpointMap }
IP: {get_param: SwiftProxyVirtualIP}
+ CloudName: {get_param: CloudName}
SwiftS3Public:
type: OS::TripleO::Endpoint
properties:
EndpointName: SwiftPublic
EndpointMap: { get_param: EndpointMap }
IP: {get_param: PublicVirtualIP}
+ CloudName: {get_param: CloudName}
SwiftS3Admin:
type: OS::TripleO::Endpoint
properties:
EndpointName: SwiftAdmin
EndpointMap: { get_param: EndpointMap }
IP: {get_param: SwiftProxyVirtualIP}
+ CloudName: {get_param: CloudName}
outputs:
endpoint_map:
@@ -347,9 +419,13 @@ outputs:
GlanceInternal: {get_attr: [ GlanceInternal, endpoint] }
GlancePublic: {get_attr: [ GlancePublic, endpoint] }
GlanceAdmin: {get_attr: [ GlanceAdmin, endpoint] }
+ GlanceRegistryInternal: {get_attr: [ GlanceRegistryInternal, endpoint] }
+ GlanceRegistryPublic: {get_attr: [ GlanceRegistryPublic, endpoint] }
+ GlanceRegistryAdmin: {get_attr: [ GlanceRegistryAdmin, endpoint] }
HeatInternal: {get_attr: [ HeatInternal, endpoint] }
HeatPublic: {get_attr: [ HeatPublic, endpoint] }
HeatAdmin: {get_attr: [ HeatAdmin, endpoint] }
+ HorizonPublic: {get_attr: [ HorizonPublic, endpoint] }
KeystoneInternal: {get_attr: [ KeystoneInternal, endpoint] }
KeystonePublic: {get_attr: [ KeystonePublic, endpoint] }
KeystoneAdmin: {get_attr: [ KeystoneAdmin, endpoint] }
diff --git a/network/ports/ctlplane_vip.yaml b/network/ports/ctlplane_vip.yaml
index 0d2945bc..3e949f41 100644
--- a/network/ports/ctlplane_vip.yaml
+++ b/network/ports/ctlplane_vip.yaml
@@ -15,6 +15,7 @@ parameters:
type: string
ControlPlaneIP: # Here for compatability with noop.yaml
description: IP address on the control plane
+ default: ''
type: string
ControlPlaneNetwork:
description: The name of the undercloud Neutron control plane
diff --git a/network/ports/external.yaml b/network/ports/external.yaml
index 63e3eeb3..1e2fff68 100644
--- a/network/ports/external.yaml
+++ b/network/ports/external.yaml
@@ -15,6 +15,7 @@ parameters:
type: string
ControlPlaneIP: # Here for compatability 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
diff --git a/network/ports/internal_api.yaml b/network/ports/internal_api.yaml
index 711ee17c..d528b327 100644
--- a/network/ports/internal_api.yaml
+++ b/network/ports/internal_api.yaml
@@ -14,6 +14,7 @@ parameters:
type: string
ControlPlaneIP: # Here for compatability with noop.yaml
description: IP address on the control plane
+ default: ''
type: string
FixedIPs:
description: >
diff --git a/network/ports/net_vip_map_external.yaml b/network/ports/net_vip_map_external.yaml
new file mode 100644
index 00000000..36426b32
--- /dev/null
+++ b/network/ports/net_vip_map_external.yaml
@@ -0,0 +1,50 @@
+heat_template_version: 2015-04-30
+
+parameters:
+ # Set these via parameter defaults to configure external VIPs
+ ControlNetworkVip:
+ 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
+ InternalApiIp:
+ default: ''
+ type: string
+ StorageIp:
+ default: ''
+ type: string
+ StorageMgmtIp:
+ default: ''
+ type: string
+ TenantIp:
+ default: ''
+ type: string
+
+outputs:
+ net_ip_map:
+ description: >
+ A Hash containing a mapping of network names to assigned IPs
+ for a specific machine.
+ value:
+ ctlplane: {get_param: ControlNetworkVip}
+ external: {get_param: ExternalNetworkVip}
+ internal_api: {get_param: InternalApiNetworkVip}
+ storage: {get_param: StorageNetworkVip}
+ storage_mgmt: {get_param: StorageMgmtNetworkVip}
diff --git a/network/ports/storage.yaml b/network/ports/storage.yaml
index e013619c..88fb537c 100644
--- a/network/ports/storage.yaml
+++ b/network/ports/storage.yaml
@@ -14,6 +14,7 @@ parameters:
type: string
ControlPlaneIP: # Here for compatability with noop.yaml
description: IP address on the control plane
+ default: ''
type: string
FixedIPs:
description: >
@@ -46,4 +47,3 @@ outputs:
- '/'
- {get_attr: [StoragePort, subnets, 0, cidr, -2]}
- {get_attr: [StoragePort, subnets, 0, cidr, -1]}
-
diff --git a/network/ports/storage_mgmt.yaml b/network/ports/storage_mgmt.yaml
index 76afae01..c98a21ef 100644
--- a/network/ports/storage_mgmt.yaml
+++ b/network/ports/storage_mgmt.yaml
@@ -14,6 +14,7 @@ parameters:
type: string
ControlPlaneIP: # Here for compatability with noop.yaml
description: IP address on the control plane
+ default: ''
type: string
FixedIPs:
description: >
diff --git a/network/ports/tenant.yaml b/network/ports/tenant.yaml
index 6e8ad482..94408ca2 100644
--- a/network/ports/tenant.yaml
+++ b/network/ports/tenant.yaml
@@ -14,6 +14,7 @@ parameters:
type: string
ControlPlaneIP: # Here for compatability with noop.yaml
description: IP address on the control plane
+ default: ''
type: string
FixedIPs:
description: >
diff --git a/network/ports/vip.yaml b/network/ports/vip.yaml
index 299579dc..56efc178 100644
--- a/network/ports/vip.yaml
+++ b/network/ports/vip.yaml
@@ -15,6 +15,7 @@ parameters:
type: string
ControlPlaneIP: # Here for compatability with noop.yaml
description: IP address on the control plane
+ default: ''
type: string
ControlPlaneNetwork:
description: The name of the undercloud Neutron control plane