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
-rwxr-xr-xextraconfig/tasks/yum_update.sh102
-rw-r--r--net-config-linux-bridge.yaml73
-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--os-apply-config/compute.yaml7
-rw-r--r--os-apply-config/controller.yaml7
-rw-r--r--overcloud-without-mergepy.yaml8
-rw-r--r--puppet/compute.yaml9
-rw-r--r--puppet/controller.yaml11
-rw-r--r--puppet/manifests/overcloud_controller.pp2
-rw-r--r--puppet/manifests/overcloud_controller_pacemaker.pp18
18 files changed, 634 insertions, 15 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/extraconfig/tasks/yum_update.sh b/extraconfig/tasks/yum_update.sh
index 9125ca07..3ba13f23 100755
--- a/extraconfig/tasks/yum_update.sh
+++ b/extraconfig/tasks/yum_update.sh
@@ -43,6 +43,108 @@ fi
pacemaker_status=$(systemctl is-active pacemaker)
if [[ "$pacemaker_status" == "active" ]] ; then
+ echo "Checking for and adding missing constraints"
+
+ if ! pcs constraint order show | grep "start openstack-nova-novncproxy-clone then start openstack-nova-api-clone"; then
+ pcs constraint order start openstack-nova-novncproxy-clone then openstack-nova-api-clone
+ fi
+
+ if ! pcs constraint order show | grep "start rabbitmq-clone then start openstack-keystone-clone"; then
+ pcs constraint order start rabbitmq-clone then openstack-keystone-clone
+ fi
+
+ if ! pcs constraint order show | grep "promote galera-master then start openstack-keystone-clone"; then
+ pcs constraint order promote galera-master then openstack-keystone-clone
+ fi
+
+ if ! pcs constraint order show | grep "start haproxy-clone then start openstack-keystone-clone"; then
+ pcs constraint order start haproxy-clone then openstack-keystone-clone
+ fi
+
+ if ! pcs constraint order show | grep "start memcached-clone then start openstack-keystone-clone"; then
+ pcs constraint order start memcached-clone then openstack-keystone-clone
+ fi
+
+ if ! pcs constraint order show | grep "promote redis-master then start openstack-ceilometer-central-clone"; then
+ pcs constraint order promote redis-master then start openstack-ceilometer-central-clone require-all=false
+ fi
+
+ if ! pcs resource defaults | grep "resource-stickiness: INFINITY"; then
+ pcs resource defaults resource-stickiness=INFINITY
+ fi
+
+ echo "Setting resource start/stop timeouts"
+
+ # timeouts for non-openstack services and special cases
+ pcs resource update haproxy op start timeout=100s
+ pcs resource update haproxy op stop timeout=100s
+ # mongod start timeout is also higher, setting only stop timeout
+ pcs resource update mongod op stop timeout=100s
+ # rabbit start timeout is already 100s
+ pcs resource update rabbitmq op stop timeout=100s
+ pcs resource update memcached op start timeout=100s
+ pcs resource update memcached op stop timeout=100s
+ pcs resource update httpd op start timeout=100s
+ pcs resource update httpd op stop timeout=100s
+ # neutron-netns-cleanup stop timeout is 300s, setting only start timeout
+ pcs resource update neutron-netns-cleanup op start timeout=100s
+ # neutron-ovs-cleanup stop timeout is 300s, setting only start timeout
+ pcs resource update neutron-ovs-cleanup op start timeout=100s
+
+ # timeouts for openstack services
+ pcs resource update neutron-dhcp-agent op start timeout=100s
+ pcs resource update neutron-dhcp-agent op stop timeout=100s
+ pcs resource update neutron-l3-agent op start timeout=100s
+ pcs resource update neutron-l3-agent op stop timeout=100s
+ pcs resource update neutron-metadata-agent op start timeout=100s
+ pcs resource update neutron-metadata-agent op stop timeout=100s
+ pcs resource update neutron-openvswitch-agent op start timeout=100s
+ pcs resource update neutron-openvswitch-agent op stop timeout=100s
+ pcs resource update neutron-server op start timeout=100s
+ pcs resource update neutron-server op stop timeout=100s
+ pcs resource update openstack-ceilometer-alarm-evaluator op start timeout=100s
+ pcs resource update openstack-ceilometer-alarm-evaluator op stop timeout=100s
+ pcs resource update openstack-ceilometer-alarm-notifier op start timeout=100s
+ pcs resource update openstack-ceilometer-alarm-notifier op stop timeout=100s
+ pcs resource update openstack-ceilometer-api op start timeout=100s
+ pcs resource update openstack-ceilometer-api op stop timeout=100s
+ pcs resource update openstack-ceilometer-central op start timeout=100s
+ pcs resource update openstack-ceilometer-central op stop timeout=100s
+ pcs resource update openstack-ceilometer-collector op start timeout=100s
+ pcs resource update openstack-ceilometer-collector op stop timeout=100s
+ pcs resource update openstack-ceilometer-notification op start timeout=100s
+ pcs resource update openstack-ceilometer-notification op stop timeout=100s
+ pcs resource update openstack-cinder-api op start timeout=100s
+ pcs resource update openstack-cinder-api op stop timeout=100s
+ pcs resource update openstack-cinder-scheduler op start timeout=100s
+ pcs resource update openstack-cinder-scheduler op stop timeout=100s
+ pcs resource update openstack-cinder-volume op start timeout=100s
+ pcs resource update openstack-cinder-volume op stop timeout=100s
+ pcs resource update openstack-glance-api op start timeout=100s
+ pcs resource update openstack-glance-api op stop timeout=100s
+ pcs resource update openstack-glance-registry op start timeout=100s
+ pcs resource update openstack-glance-registry op stop timeout=100s
+ pcs resource update openstack-heat-api op start timeout=100s
+ pcs resource update openstack-heat-api op stop timeout=100s
+ pcs resource update openstack-heat-api-cfn op start timeout=100s
+ pcs resource update openstack-heat-api-cfn op stop timeout=100s
+ pcs resource update openstack-heat-api-cloudwatch op start timeout=100s
+ pcs resource update openstack-heat-api-cloudwatch op stop timeout=100s
+ pcs resource update openstack-heat-engine op start timeout=100s
+ pcs resource update openstack-heat-engine op stop timeout=100s
+ pcs resource update openstack-keystone op start timeout=100s
+ pcs resource update openstack-keystone op stop timeout=100s
+ pcs resource update openstack-nova-api op start timeout=100s
+ pcs resource update openstack-nova-api op stop timeout=100s
+ pcs resource update openstack-nova-conductor op start timeout=100s
+ pcs resource update openstack-nova-conductor op stop timeout=100s
+ pcs resource update openstack-nova-consoleauth op start timeout=100s
+ pcs resource update openstack-nova-consoleauth op stop timeout=100s
+ pcs resource update openstack-nova-novncproxy op start timeout=100s
+ pcs resource update openstack-nova-novncproxy op stop timeout=100s
+ pcs resource update openstack-nova-scheduler op start timeout=100s
+ pcs resource update openstack-nova-scheduler op stop timeout=100s
+
echo "Pacemaker running, stopping cluster node and doing full package update"
node_count=$(pcs status xml | grep -o "<nodes_configured.*/>" | grep -o 'number="[0-9]*"' | grep -o "[0-9]*")
if [[ "$node_count" == "1" ]] ; then
diff --git a/net-config-linux-bridge.yaml b/net-config-linux-bridge.yaml
new file mode 100644
index 00000000..0646ffab
--- /dev/null
+++ b/net-config-linux-bridge.yaml
@@ -0,0 +1,73 @@
+heat_template_version: 2015-04-30
+
+description: >
+ Software Config to drive os-net-config for a simple bridge.
+
+parameters:
+ ControlPlaneIp:
+ default: ''
+ description: IP address/subnet on the ctlplane network
+ type: string
+ 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
+ ControlPlaneDefaultRoute: # Override this via parameter_defaults
+ description: The default route of the control plane network.
+ type: string
+ default: '192.0.2.1'
+ EC2MetadataIp: # Override this via parameter_defaults
+ description: The IP address of the EC2 metadata server.
+ type: string
+ default: '169.254.169.254/32'
+
+
+resources:
+ OsNetConfigImpl:
+ type: OS::Heat::StructuredConfig
+ properties:
+ group: os-apply-config
+ config:
+ os_net_config:
+ network_config:
+ -
+ type: linux_bridge
+ name: {get_input: bridge_name}
+ addresses:
+ -
+ ip_netmask: {get_param: ControlPlaneIp}
+ members:
+ -
+ type: interface
+ name: {get_input: interface_name}
+ # force the MAC address of the bridge to this interface
+ primary: true
+ routes:
+ -
+ ip_netmask: 0.0.0.0/0
+ next_hop: {get_param: ControlPlaneDefaultRoute}
+ default: true
+ -
+ ip_netmask: {get_param: EC2MetadataIp}
+ next_hop: {get_param: ControlPlaneDefaultRoute}
+
+outputs:
+ OS::stack_id:
+ description: The OsNetConfigImpl resource.
+ value: {get_resource: OsNetConfigImpl}
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/os-apply-config/compute.yaml b/os-apply-config/compute.yaml
index ee55c587..c829248b 100644
--- a/os-apply-config/compute.yaml
+++ b/os-apply-config/compute.yaml
@@ -125,6 +125,11 @@ parameters:
NeutronEnableTunnelling:
type: string
default: "True"
+ NeutronEnableL2Pop:
+ type: string
+ description: >
+ Enable/disable the L2 population feature in the Neutron agents.
+ default: "False"
NeutronFlatNetworks:
type: string
default: 'datacentre'
@@ -404,6 +409,7 @@ resources:
vni_ranges: {get_input: neutron_vni_ranges}
bridge_mappings: {get_input: neutron_bridge_mappings}
enable_tunneling: {get_input: neutron_enable_tunneling}
+ l2_population: {get_input: neutron_enable_l2pop}
physical_bridge: {get_input: neutron_physical_bridge}
public_interface: {get_input: neutron_public_interface}
public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
@@ -463,6 +469,7 @@ resources:
neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
+ neutron_enable_l2pop: {get_param: NeutronEnableL2Pop}
neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
neutron_public_interface: {get_param: NeutronPublicInterface}
neutron_password: {get_param: NeutronPassword}
diff --git a/os-apply-config/controller.yaml b/os-apply-config/controller.yaml
index 09ea49b8..f84bf5b3 100644
--- a/os-apply-config/controller.yaml
+++ b/os-apply-config/controller.yaml
@@ -358,6 +358,11 @@ parameters:
NeutronEnableTunnelling:
type: string
default: "True"
+ NeutronEnableL2Pop:
+ type: string
+ description: >
+ Enable/disable the L2 population feature in the Neutron agents.
+ default: "False"
NeutronFlatNetworks:
type: string
default: 'datacentre'
@@ -722,6 +727,7 @@ resources:
dhcp_agents_per_network: {get_input: neutron_dhcp_agents_per_network}
ovs:
enable_tunneling: {get_input: neutron_enable_tunneling}
+ l2_population: {get_input: neutron_enable_l2pop}
local_ip: {get_input: controller_host}
network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
bridge_mappings: {get_input: neutron_bridge_mappings}
@@ -881,6 +887,7 @@ resources:
controller_host: {get_attr: [Controller, networks, ctlplane, 0]}
controller_virtual_ip: {get_param: VirtualIP}
neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
+ neutron_enable_l2pop: {get_param: NeutronEnableL2Pop}
heat.watch_server_url:
list_join:
- ''
diff --git a/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml
index 50589b7b..35a473cc 100644
--- a/overcloud-without-mergepy.yaml
+++ b/overcloud-without-mergepy.yaml
@@ -118,6 +118,11 @@ parameters:
NeutronEnableTunnelling:
type: string
default: "True"
+ NeutronEnableL2Pop:
+ type: string
+ description: >
+ Enable/disable the L2 population feature in the Neutron agents.
+ default: "False"
NeutronFlatNetworks:
type: string
default: 'datacentre'
@@ -761,6 +766,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]}]}
@@ -836,6 +842,7 @@ resources:
NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
+ NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
NeutronPublicInterface: {get_param: NeutronPublicInterface}
NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
@@ -925,6 +932,7 @@ resources:
KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
+ NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
NeutronNetworkType: {get_param: NeutronNetworkType}
diff --git a/puppet/compute.yaml b/puppet/compute.yaml
index 9cfaba61..c147a0f7 100644
--- a/puppet/compute.yaml
+++ b/puppet/compute.yaml
@@ -85,6 +85,11 @@ parameters:
NeutronEnableTunnelling:
type: string
default: "True"
+ NeutronEnableL2Pop:
+ type: string
+ description: >
+ Enable/disable the L2 population feature in the Neutron agents.
+ default: "False"
NeutronFlatNetworks:
type: string
default: 'datacentre'
@@ -404,7 +409,7 @@ resources:
nova::glance_api_servers: {get_input: glance_api_servers}
neutron::debug: {get_input: debug}
neutron::rabbit_password: {get_input: rabbit_password}
- neutron::rabbit_user: {get_input: rabbit_user}
+ neutron::rabbit_user: {get_input: rabbit_username}
neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
neutron::rabbit_port: {get_input: rabbit_client_port}
neutron_flat_networks: {get_input: neutron_flat_networks}
@@ -418,6 +423,7 @@ resources:
neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
+ neutron::agents::ml2::ovs::l2_population: {get_input: neutron_enable_l2pop}
neutron_physical_bridge: {get_input: neutron_physical_bridge}
neutron_public_interface: {get_input: neutron_public_interface}
nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
@@ -491,6 +497,7 @@ resources:
- {get_param: NeutronNetworkVLANRanges}
neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
+ neutron_enable_l2pop: {get_param: NeutronEnableL2Pop}
neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
neutron_public_interface: {get_param: NeutronPublicInterface}
neutron_password: {get_param: NeutronPassword}
diff --git a/puppet/controller.yaml b/puppet/controller.yaml
index d8d9a828..6aabe572 100644
--- a/puppet/controller.yaml
+++ b/puppet/controller.yaml
@@ -369,6 +369,11 @@ parameters:
NeutronEnableTunnelling:
type: string
default: "True"
+ NeutronEnableL2Pop:
+ type: string
+ description: >
+ Enable/disable the L2 population feature in the Neutron agents.
+ default: "False"
NeutronFlatNetworks:
type: string
default: 'datacentre'
@@ -706,6 +711,7 @@ resources:
input_values:
bootstack_nodeid: {get_attr: [Controller, name]}
neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
+ neutron_enable_l2pop: {get_param: NeutronEnableL2Pop}
haproxy_log_address: {get_param: HAProxySyslogAddress}
heat.watch_server_url:
list_join:
@@ -1155,7 +1161,7 @@ resources:
# Neutron
neutron::bind_host: {get_input: neutron_api_network}
neutron::rabbit_password: {get_input: rabbit_password}
- neutron::rabbit_user: {get_input: rabbit_user}
+ neutron::rabbit_user: {get_input: rabbit_username}
neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
neutron::rabbit_port: {get_input: rabbit_client_port}
neutron::debug: {get_input: debug}
@@ -1164,6 +1170,7 @@ resources:
neutron::server::database_connection: {get_input: neutron_dsn}
neutron::agents::l3::external_network_bridge: {get_input: neutron_external_network_bridge}
neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
+ neutron::agents::ml2::ovs::l2_population: {get_input: neutron_enable_l2pop}
neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
neutron_flat_networks: {get_input: neutron_flat_networks}
neutron::agents::metadata::shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
@@ -1246,6 +1253,8 @@ resources:
rabbitmq::node_ip_address: {get_input: rabbitmq_network}
rabbitmq::erlang_cookie: {get_input: rabbit_cookie}
rabbitmq::file_limit: {get_input: rabbit_fd_limit}
+ rabbitmq::default_user: {get_input: rabbit_username}
+ rabbitmq::default_pass: {get_input: rabbit_password}
# Redis
redis::bind: {get_input: redis_network}
redis_vip: {get_input: redis_vip}
diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp
index 41836a13..63f89ec0 100644
--- a/puppet/manifests/overcloud_controller.pp
+++ b/puppet/manifests/overcloud_controller.pp
@@ -379,7 +379,7 @@ if hiera('step') >= 3 {
package {'nfs-utils': } ->
cinder::backend::nfs { $cinder_nfs_backend :
nfs_servers => hiera('cinder_nfs_servers'),
- nfs_mount_options => hiera('cinder_nfs_mount_options'),
+ nfs_mount_options => hiera('cinder_nfs_mount_options',''),
nfs_shares_config => '/etc/cinder/shares-nfs.conf',
}
}
diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp
index e3fc85bb..02988412 100644
--- a/puppet/manifests/overcloud_controller_pacemaker.pp
+++ b/puppet/manifests/overcloud_controller_pacemaker.pp
@@ -74,11 +74,11 @@ if hiera('step') >= 1 {
Class['tripleo::fencing'] -> Class['pacemaker::stonith']
}
- # FIXME(gfidente): sets 95secs as default start timeout op
+ # FIXME(gfidente): sets 100secs as default start timeout op
# param; until we can use pcmk global defaults we'll still
# need to add it to every resource which redefines op params
Pacemaker::Resource::Service {
- op_params => 'start timeout=95s stop timeout=95s',
+ op_params => 'start timeout=100s stop timeout=100s',
}
# Only configure RabbitMQ in this step, don't start it yet to
@@ -344,7 +344,7 @@ if hiera('step') >= 2 {
if downcase(hiera('ceilometer_backend')) == 'mongodb' {
pacemaker::resource::service { $::mongodb::params::service_name :
- op_params => 'start timeout=120s stop timeout=95s',
+ op_params => 'start timeout=120s stop timeout=100s',
clone_params => true,
require => Class['::mongodb::server'],
}
@@ -755,7 +755,7 @@ if hiera('step') >= 3 {
package { 'nfs-utils': } ->
cinder::backend::nfs { $cinder_nfs_backend:
nfs_servers => hiera('cinder_nfs_servers'),
- nfs_mount_options => hiera('cinder_nfs_mount_options'),
+ nfs_mount_options => hiera('cinder_nfs_mount_options',''),
nfs_shares_config => '/etc/cinder/shares-nfs.conf',
}
}
@@ -1184,24 +1184,24 @@ if hiera('step') >= 4 {
# Nova
pacemaker::resource::service { $::nova::params::api_service_name :
clone_params => 'interleave=true',
- op_params => 'start timeout=95s stop timeout=95s monitor start-delay=10s',
+ op_params => 'start timeout=100s stop timeout=100s monitor start-delay=10s',
}
pacemaker::resource::service { $::nova::params::conductor_service_name :
clone_params => 'interleave=true',
- op_params => 'start timeout=95s stop timeout=95s monitor start-delay=10s',
+ op_params => 'start timeout=100s stop timeout=100s monitor start-delay=10s',
}
pacemaker::resource::service { $::nova::params::consoleauth_service_name :
clone_params => 'interleave=true',
- op_params => 'start timeout=95s stop timeout=95s monitor start-delay=10s',
+ op_params => 'start timeout=100s stop timeout=100s monitor start-delay=10s',
require => Pacemaker::Resource::Service[$::keystone::params::service_name],
}
pacemaker::resource::service { $::nova::params::vncproxy_service_name :
clone_params => 'interleave=true',
- op_params => 'start timeout=95s stop timeout=95s monitor start-delay=10s',
+ op_params => 'start timeout=100s stop timeout=100s monitor start-delay=10s',
}
pacemaker::resource::service { $::nova::params::scheduler_service_name :
clone_params => 'interleave=true',
- op_params => 'start timeout=95s stop timeout=95s monitor start-delay=10s',
+ op_params => 'start timeout=100s stop timeout=100s monitor start-delay=10s',
}
pacemaker::constraint::base { 'keystone-then-nova-consoleauth-constraint':