diff options
-rw-r--r-- | environments/net-bond-with-vlans-no-external.yaml | 26 | ||||
-rw-r--r-- | environments/net-single-nic-with-vlans-no-external.yaml | 25 | ||||
-rw-r--r-- | environments/network-isolation-no-tunneling.yaml | 37 | ||||
-rwxr-xr-x | extraconfig/tasks/yum_update.sh | 102 | ||||
-rw-r--r-- | net-config-linux-bridge.yaml | 73 | ||||
-rw-r--r-- | network/config/bond-with-vlans/README.md | 12 | ||||
-rw-r--r-- | network/config/bond-with-vlans/controller-no-external.yaml | 114 | ||||
-rw-r--r-- | network/config/single-nic-vlans/README.md | 12 | ||||
-rw-r--r-- | network/config/single-nic-vlans/controller-no-external.yaml | 99 | ||||
-rw-r--r-- | network/endpoints/endpoint.yaml | 11 | ||||
-rw-r--r-- | network/endpoints/endpoint_map.yaml | 76 | ||||
-rw-r--r-- | os-apply-config/compute.yaml | 7 | ||||
-rw-r--r-- | os-apply-config/controller.yaml | 7 | ||||
-rw-r--r-- | overcloud-without-mergepy.yaml | 8 | ||||
-rw-r--r-- | puppet/compute.yaml | 9 | ||||
-rw-r--r-- | puppet/controller.yaml | 11 | ||||
-rw-r--r-- | puppet/manifests/overcloud_controller.pp | 2 | ||||
-rw-r--r-- | puppet/manifests/overcloud_controller_pacemaker.pp | 18 |
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': |