aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--environments/net-bond-with-vlans-no-external.yaml26
-rw-r--r--environments/net-single-nic-with-vlans-no-external.yaml25
-rw-r--r--environments/network-isolation-no-tunneling.yaml37
-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/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--overcloud-without-mergepy.yaml1
10 files changed, 410 insertions, 3 deletions
diff --git a/environments/net-bond-with-vlans-no-external.yaml b/environments/net-bond-with-vlans-no-external.yaml
new file mode 100644
index 00000000..0da119d9
--- /dev/null
+++ b/environments/net-bond-with-vlans-no-external.yaml
@@ -0,0 +1,26 @@
+# This template configures each role to use a pair of bonded nics (nic2 and
+# nic3) and configures an IP address on each relevant isolated network
+# for each role.
+
+# This template assumes use of network-isolation.yaml and should be specified
+# last on the CLI as a Heat environment so as to override specific
+# registry settings in the network-isolation registry.
+#
+# FIXME: if/when we add functionality to heatclient to include heat
+# environment files we should think about using it here to automatically
+# include network-isolation.yaml.
+resource_registry:
+
+ # Set external ports to noop
+ OS::TripleO::Network::External: ../network/noop.yaml
+ OS::TripleO::Controller::Ports::ExternalPort: ../network/ports/noop.yaml
+
+ OS::TripleO::BlockStorage::Net::SoftwareConfig: ../network/config/bond-with-vlans/cinder-storage.yaml
+ OS::TripleO::Compute::Net::SoftwareConfig: ../network/config/bond-with-vlans/compute.yaml
+ OS::TripleO::Controller::Net::SoftwareConfig: ../network/config/bond-with-vlans/controller-no-external.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
+
+# NOTE: with no external interface we should be able to use the
+# default Neutron l3_agent.ini setting for the external bridge (br-ex)
+# i.e. No need to set: NeutronExternalNetworkBridge: "''"
diff --git a/environments/net-single-nic-with-vlans-no-external.yaml b/environments/net-single-nic-with-vlans-no-external.yaml
new file mode 100644
index 00000000..a173df4e
--- /dev/null
+++ b/environments/net-single-nic-with-vlans-no-external.yaml
@@ -0,0 +1,25 @@
+# This template configures each role to use Vlans on a single nic for
+# each isolated network.
+# This template assumes use of network-isolation.yaml and should be specified
+# last on the CLI as a Heat environment so as to override specific
+# registry settings in the network-isolation registry.
+#
+# FIXME: if/when we add functionality to heatclient to include heat
+# environment files we should think about using it here to automatically
+# include network-isolation.yaml.
+resource_registry:
+
+ # Set external ports to noop
+ OS::TripleO::Network::External: ../network/noop.yaml
+ OS::TripleO::Controller::Ports::ExternalPort: ../network/ports/noop.yaml
+
+ # Configure other ports as normal
+ OS::TripleO::BlockStorage::Net::SoftwareConfig: ../network/config/single-nic-vlans/cinder-storage.yaml
+ OS::TripleO::Compute::Net::SoftwareConfig: ../network/config/single-nic-vlans/compute.yaml
+ OS::TripleO::Controller::Net::SoftwareConfig: ../network/config/single-nic-vlans/controller-no-external.yaml
+ OS::TripleO::ObjectStorage::Net::SoftwareConfig: ../network/config/single-nic-vlans/swift-storage.yaml
+ OS::TripleO::CephStorage::Net::SoftwareConfig: ../network/config/single-nic-vlans/ceph-storage.yaml
+
+# NOTE: with no external interface we should be able to use the
+# default Neutron l3_agent.ini setting for the external bridge (br-ex)
+# i.e. No need to set: NeutronExternalNetworkBridge: "''"
diff --git a/environments/network-isolation-no-tunneling.yaml b/environments/network-isolation-no-tunneling.yaml
new file mode 100644
index 00000000..5d2a915b
--- /dev/null
+++ b/environments/network-isolation-no-tunneling.yaml
@@ -0,0 +1,37 @@
+# Enable the creation of Neutron networks for isolated Overcloud
+# traffic and configure each role to assign ports (related
+# to that role) on these networks. This version of the environment
+# has no dedicated VLAN for tunneling, for deployments that use
+# VLAN mode, flat provider networks, etc.
+resource_registry:
+ OS::TripleO::Network::External: ../network/external.yaml
+ OS::TripleO::Network::InternalApi: ../network/internal_api.yaml
+ OS::TripleO::Network::StorageMgmt: ../network/storage_mgmt.yaml
+ OS::TripleO::Network::Storage: ../network/storage.yaml
+
+ # Port assignments for the controller role
+ OS::TripleO::Controller::Ports::ExternalPort: ../network/ports/external.yaml
+ OS::TripleO::Controller::Ports::InternalApiPort: ../network/ports/internal_api.yaml
+ OS::TripleO::Controller::Ports::StoragePort: ../network/ports/storage.yaml
+ OS::TripleO::Controller::Ports::StorageMgmtPort: ../network/ports/storage_mgmt.yaml
+
+ # Port assignments for the compute role
+ OS::TripleO::Compute::Ports::InternalApiPort: ../network/ports/internal_api.yaml
+ OS::TripleO::Compute::Ports::StoragePort: ../network/ports/storage.yaml
+
+ # Port assignments for the ceph storage role
+ OS::TripleO::CephStorage::Ports::StoragePort: ../network/ports/storage.yaml
+ OS::TripleO::CephStorage::Ports::StorageMgmtPort: ../network/ports/storage_mgmt.yaml
+
+ # Port assignments for the swift storage role
+ OS::TripleO::SwiftStorage::Ports::InternalApiPort: ../network/ports/internal_api.yaml
+ OS::TripleO::SwiftStorage::Ports::StoragePort: ../network/ports/storage.yaml
+ OS::TripleO::SwiftStorage::Ports::StorageMgmtPort: ../network/ports/storage_mgmt.yaml
+
+ # Port assignments for the block storage role
+ OS::TripleO::BlockStorage::Ports::InternalApiPort: ../network/ports/internal_api.yaml
+ OS::TripleO::BlockStorage::Ports::StoragePort: ../network/ports/storage.yaml
+ OS::TripleO::BlockStorage::Ports::StorageMgmtPort: ../network/ports/storage_mgmt.yaml
+
+ # Port assignments for service virtual IPs for the controller role
+ OS::TripleO::Controller::Ports::RedisVipPort: ../network/ports/vip.yaml
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/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/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml
index 50589b7b..3e09cc5d 100644
--- a/overcloud-without-mergepy.yaml
+++ b/overcloud-without-mergepy.yaml
@@ -761,6 +761,7 @@ resources:
EndpointMap:
type: OS::TripleO::EndpointMap
properties:
+ CloudName: {get_param: CloudName}
CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}