aboutsummaryrefslogtreecommitdiffstats
path: root/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'puppet')
-rw-r--r--puppet/all-nodes-config.yaml20
-rw-r--r--puppet/ceph-storage.yaml8
-rw-r--r--puppet/cinder-storage.yaml7
-rw-r--r--puppet/compute.yaml103
-rw-r--r--puppet/controller-post.yaml18
-rw-r--r--puppet/controller.yaml109
-rw-r--r--puppet/extraconfig/pre_deploy/controller/neutron-nuage.yaml7
-rw-r--r--puppet/manifests/overcloud_compute.pp13
-rw-r--r--puppet/manifests/overcloud_controller.pp22
-rw-r--r--puppet/manifests/overcloud_controller_pacemaker.pp89
-rw-r--r--puppet/manifests/ringbuilder.pp2
-rw-r--r--puppet/swift-storage.yaml8
12 files changed, 195 insertions, 211 deletions
diff --git a/puppet/all-nodes-config.yaml b/puppet/all-nodes-config.yaml
index 2bc519bb..895ddc3d 100644
--- a/puppet/all-nodes-config.yaml
+++ b/puppet/all-nodes-config.yaml
@@ -51,6 +51,17 @@ parameters:
keystone_admin_api_node_ips:
type: comma_delimited_list
+ DeployIdentifier:
+ type: string
+ description: >
+ Setting this to a unique value will re-run any deployment tasks which
+ perform configuration on a Heat stack-update.
+ UpdateIdentifier:
+ type: string
+ description: >
+ Setting to a previously unused value during stack-update will trigger
+ package update on all nodes
+
resources:
allNodesConfigImpl:
@@ -240,8 +251,17 @@ resources:
nova::rabbit_hosts: *rabbit_nodes_array
keystone::rabbit_hosts: *rabbit_nodes_array
+ deploy_identifier: {get_param: DeployIdentifier}
+ update_identifier: {get_param: UpdateIdentifier}
+
outputs:
config_id:
description: The ID of the allNodesConfigImpl resource.
value:
{get_resource: allNodesConfigImpl}
+ hosts_entries:
+ description: |
+ The content that should be appended to your /etc/hosts if you want do get
+ hostname-based access to the deployed nodes (useful for testing without
+ setting up a DNS).
+ value: {get_attr: [allNodesConfigImpl, config, hosts]}
diff --git a/puppet/ceph-storage.yaml b/puppet/ceph-storage.yaml
index b34d2c02..b6a1007a 100644
--- a/puppet/ceph-storage.yaml
+++ b/puppet/ceph-storage.yaml
@@ -16,7 +16,7 @@ parameters:
description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
type: string
KeyName:
- description: Name of an existing EC2 KeyPair to enable SSH access to the instances
+ description: Name of an existing Nova key pair to enable SSH access to the instances
type: string
default: default
constraints:
@@ -71,7 +71,10 @@ parameters:
Extra properties or metadata passed to Nova for the created nodes in
the overcloud. It's accessible via the Nova metadata API.
type: json
-
+ SchedulerHints:
+ type: json
+ description: Optional scheduler hints to pass to nova
+ default: {}
resources:
CephStorage:
@@ -87,6 +90,7 @@ resources:
user_data: {get_resource: UserData}
name: {get_param: Hostname}
metadata: {get_param: ServerMetadata}
+ scheduler_hints: {get_param: SchedulerHints}
# Combine the NodeAdminUserData and NodeUserData mime archives
UserData:
diff --git a/puppet/cinder-storage.yaml b/puppet/cinder-storage.yaml
index 82c0e814..fc197059 100644
--- a/puppet/cinder-storage.yaml
+++ b/puppet/cinder-storage.yaml
@@ -46,7 +46,7 @@ parameters:
- custom_constraint: nova.flavor
KeyName:
default: default
- description: Name of an existing EC2 KeyPair to enable SSH access to the instances
+ description: Name of an existing Nova key pair to enable SSH access to the instances
type: string
RabbitPassword:
default: 'guest'
@@ -124,6 +124,10 @@ parameters:
Extra properties or metadata passed to Nova for the created nodes in
the overcloud. It's accessible via the Nova metadata API.
type: json
+ SchedulerHints:
+ type: json
+ description: Optional scheduler hints to pass to nova
+ default: {}
resources:
@@ -140,6 +144,7 @@ resources:
user_data: {get_resource: UserData}
name: {get_param: Hostname}
metadata: {get_param: ServerMetadata}
+ scheduler_hints: {get_param: SchedulerHints}
# Combine the NodeAdminUserData and NodeUserData mime archives
UserData:
diff --git a/puppet/compute.yaml b/puppet/compute.yaml
index 42c6e276..43ef5820 100644
--- a/puppet/compute.yaml
+++ b/puppet/compute.yaml
@@ -1,4 +1,4 @@
-heat_template_version: 2015-04-30
+heat_template_version: 2015-10-15
description: >
OpenStack hypervisor node configured via Puppet.
@@ -61,7 +61,7 @@ parameters:
description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
type: string
KeyName:
- description: Name of an existing EC2 KeyPair to enable SSH access to the instances
+ description: Name of an existing Nova key pair to enable SSH access to the instances
type: string
default: default
constraints:
@@ -80,7 +80,7 @@ parameters:
to create provider networks (and we use this for the default floating
network) - if changing this either use different post-install network
scripts or be sure to keep 'datacentre' as a mapping network name.
- type: string
+ type: comma_delimited_list
default: "datacentre:br-ex"
NeutronEnableTunnelling:
type: string
@@ -91,7 +91,7 @@ parameters:
Enable/disable the L2 population feature in the Neutron agents.
default: "False"
NeutronFlatNetworks:
- type: string
+ type: comma_delimited_list
default: 'datacentre'
description: >
If set, flat networks to configure in neutron plugins.
@@ -99,8 +99,8 @@ parameters:
type: string
default: '' # Has to be here because of the ignored empty value bug
NeutronNetworkType:
- type: string
- description: The tenant network type for Neutron, either gre or vxlan.
+ type: comma_delimited_list
+ description: The tenant network type for Neutron.
default: 'vxlan'
NeutronNetworkVLANRanges:
default: 'datacentre'
@@ -123,10 +123,9 @@ parameters:
description: A port to add to the NeutronPhysicalBridge.
type: string
NeutronTunnelTypes:
- type: string
+ type: comma_delimited_list
description: |
- The tunnel types for the Neutron tenant network. To specify multiple
- values, use a comma separated string, like so: 'gre,vxlan'
+ The tunnel types for the Neutron tenant network.
default: 'vxlan'
NeutronTunnelIdRanges:
description: |
@@ -171,9 +170,8 @@ parameters:
NeutronMechanismDrivers:
default: 'openvswitch'
description: |
- The mechanism drivers for the Neutron tenant network. To specify multiple
- values, use a comma separated string, like so: 'openvswitch,l2_population'
- type: string
+ The mechanism drivers for the Neutron tenant network.
+ type: comma_delimited_list
# Not relevant for Computes, should be removed
NeutronAllowL3AgentFailover:
default: 'True'
@@ -296,13 +294,16 @@ parameters:
description: >
The DNS domain used for the hosts. This should match the dhcp_domain
configured in the Undercloud neutron. Defaults to localdomain.
-
ServerMetadata:
default: {}
description: >
Extra properties or metadata passed to Nova for the created nodes in
the overcloud. It's accessible via the Nova metadata API.
type: json
+ SchedulerHints:
+ type: json
+ description: Optional scheduler hints to pass to nova
+ default: {}
resources:
@@ -321,6 +322,7 @@ resources:
user_data: {get_resource: UserData}
name: {get_param: Hostname}
metadata: {get_param: ServerMetadata}
+ scheduler_hints: {get_param: SchedulerHints}
# Combine the NodeAdminUserData and NodeUserData mime archives
UserData:
@@ -448,16 +450,16 @@ resources:
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}
+ neutron::plugins::ml2::flat_networks: {get_input: neutron_flat_networks}
neutron_host: {get_input: neutron_host}
neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
- neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
- neutron_tunnel_types: {get_input: neutron_tunnel_types}
+ neutron::plugins::ml2::tenant_network_types: {get_input: neutron_tenant_network_types}
+ neutron::agents::ml2::ovs:tunnel_types: {get_input: neutron_tunnel_types}
neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
- neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
+ neutron::agents::ml2::ovs::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}
@@ -471,7 +473,7 @@ resources:
neutron::core_plugin: {get_input: neutron_core_plugin}
neutron::service_plugins: {get_input: neutron_service_plugins}
neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
- neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
+ neutron::plugins::ml2::mechanism_drivers: {get_input: neutron_mechanism_drivers}
neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
keystone_public_api_virtual_ip: {get_input: keystone_vip}
admin_password: {get_input: admin_password}
@@ -506,36 +508,43 @@ resources:
snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]}
- neutron_flat_networks: {get_param: NeutronFlatNetworks}
+ neutron_flat_networks:
+ str_replace:
+ template: NETWORKS
+ params:
+ NETWORKS: {get_param: NeutronFlatNetworks}
neutron_host: {get_param: NeutronHost}
neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
- neutron_tenant_network_type: {get_param: NeutronNetworkType}
- neutron_tunnel_types: {get_param: NeutronTunnelTypes}
neutron_tunnel_id_ranges:
str_replace:
- template: "['RANGES']"
+ template: RANGES
params:
- RANGES:
- list_join:
- - "','"
- - {get_param: NeutronTunnelIdRanges}
+ RANGES: {get_param: NeutronTunnelIdRanges}
neutron_vni_ranges:
str_replace:
- template: "['RANGES']"
+ template: RANGES
params:
- RANGES:
- list_join:
- - "','"
- - {get_param: NeutronVniRanges}
+ RANGES: {get_param: NeutronVniRanges}
+ neutron_tenant_network_types:
+ str_replace:
+ template: TYPES
+ params:
+ TYPES: {get_param: NeutronNetworkType}
+ neutron_tunnel_types:
+ str_replace:
+ template: TYPES
+ params:
+ TYPES: {get_param: NeutronTunnelTypes}
neutron_network_vlan_ranges:
str_replace:
- template: "['RANGES']"
+ template: RANGES
+ params:
+ RANGES: {get_param: NeutronNetworkVLANRanges}
+ neutron_bridge_mappings:
+ str_replace:
+ template: MAPPINGS
params:
- RANGES:
- list_join:
- - "','"
- - {get_param: NeutronNetworkVLANRanges}
- neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
+ MAPPINGS: {get_param: NeutronBridgeMappings}
neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
neutron_enable_l2pop: {get_param: NeutronEnableL2Pop}
neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
@@ -547,21 +556,19 @@ resources:
neutron_core_plugin: {get_param: NeutronCorePlugin}
neutron_service_plugins:
str_replace:
- template: "['PLUGINS']"
+ template: PLUGINS
params:
- PLUGINS:
- list_join:
- - "','"
- - {get_param: NeutronServicePlugins}
+ PLUGINS: {get_param: NeutronServicePlugins}
neutron_type_drivers:
str_replace:
- template: "['DRIVERS']"
+ template: DRIVERS
+ params:
+ DRIVERS: {get_param: NeutronTypeDrivers}
+ neutron_mechanism_drivers:
+ str_replace:
+ template: MECHANISMS
params:
- DRIVERS:
- list_join:
- - "','"
- - {get_param: NeutronTypeDrivers}
- neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
+ MECHANISMS: {get_param: NeutronMechanismDrivers}
neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
neutron_internal_url: {get_param: [EndpointMap, NeutronInternal, uri]}
neutron_admin_auth_url: {get_param: [EndpointMap, KeystoneAdmin, uri]}
diff --git a/puppet/controller-post.yaml b/puppet/controller-post.yaml
index 941e1ac5..ed8129e7 100644
--- a/puppet/controller-post.yaml
+++ b/puppet/controller-post.yaml
@@ -17,6 +17,13 @@ parameters:
resources:
+ ControllerPrePuppet:
+ type: OS::TripleO::Tasks::ControllerPrePuppet
+ properties:
+ servers: {get_param: servers}
+ input_values:
+ update_identifier: {get_param: NodeConfigIdentifiers}
+
ControllerPuppetConfig:
type: OS::TripleO::ControllerConfig
@@ -26,6 +33,7 @@ resources:
# e.g all Deployment resources should have a *Deployment_StepN suffix
ControllerLoadBalancerDeployment_Step1:
type: OS::Heat::StructuredDeployments
+ depends_on: ControllerPrePuppet
properties:
servers: {get_param: servers}
config: {get_resource: ControllerPuppetConfig}
@@ -98,10 +106,18 @@ resources:
step: 5
update_identifier: {get_param: NodeConfigIdentifiers}
+ ControllerPostPuppet:
+ type: OS::TripleO::Tasks::ControllerPostPuppet
+ depends_on: ControllerOvercloudServicesDeployment_Step6
+ properties:
+ servers: {get_param: servers}
+ input_values:
+ update_identifier: {get_param: NodeConfigIdentifiers}
+
# Note, this should come last, so use depends_on to ensure
# this is created after any other resources.
ExtraConfig:
- depends_on: ControllerOvercloudServicesDeployment_Step5
+ depends_on: ControllerPostPuppet
type: OS::TripleO::NodeExtraConfigPost
properties:
servers: {get_param: servers}
diff --git a/puppet/controller.yaml b/puppet/controller.yaml
index c64a60c5..7089f60b 100644
--- a/puppet/controller.yaml
+++ b/puppet/controller.yaml
@@ -1,4 +1,4 @@
-heat_template_version: 2015-04-30
+heat_template_version: 2015-10-15
description: >
OpenStack controller node configured by Puppet.
@@ -262,7 +262,7 @@ parameters:
type: string
KeyName:
default: default
- description: Name of an existing EC2 KeyPair to enable SSH access to the instances
+ description: Name of an existing Nova key pair to enable SSH access to the instances
type: string
constraints:
- custom_constraint: nova.keypair
@@ -348,7 +348,7 @@ parameters:
to create provider networks (and we use this for the default floating
network) - if changing this either use different post-install network
scripts or be sure to keep 'datacentre' as a mapping network name.
- type: string
+ type: comma_delimited_list
default: "datacentre:br-ex"
NeutronDnsmasqOptions:
default: 'dhcp-option-force=26,1400'
@@ -411,9 +411,8 @@ parameters:
NeutronMechanismDrivers:
default: 'openvswitch'
description: |
- The mechanism drivers for the Neutron tenant network. To specify multiple
- values, use a comma separated string, like so: 'openvswitch,l2_population'
- type: string
+ The mechanism drivers for the Neutron tenant network.
+ type: comma_delimited_list
NeutronAllowL3AgentFailover:
default: 'True'
description: Allow automatic l3-agent failover
@@ -431,7 +430,7 @@ parameters:
Enable/disable the L2 population feature in the Neutron agents.
default: "False"
NeutronFlatNetworks:
- type: string
+ type: comma_delimited_list
default: 'datacentre'
description: If set, flat networks to configure in neutron plugins.
NeutronL3HA:
@@ -440,8 +439,8 @@ parameters:
type: string
NeutronNetworkType:
default: 'vxlan'
- description: The tenant network type for Neutron, either gre or vxlan.
- type: string
+ description: The tenant network type for Neutron.
+ type: comma_delimited_list
NeutronNetworkVLANRanges:
default: 'datacentre'
description: >
@@ -483,9 +482,8 @@ parameters:
NeutronTunnelTypes:
default: 'vxlan'
description: |
- The tunnel types for the Neutron tenant network. To specify multiple
- values, use a comma separated string, like so: 'gre,vxlan'
- type: string
+ The tunnel types for the Neutron tenant network.
+ type: comma_delimited_list
NeutronTunnelIdRanges:
description: |
Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
@@ -676,6 +674,10 @@ parameters:
Extra properties or metadata passed to Nova for the created nodes in
the overcloud. It's accessible via the Nova metadata API.
type: json
+ SchedulerHints:
+ type: json
+ description: Optional scheduler hints to pass to nova
+ default: {}
resources:
@@ -692,6 +694,7 @@ resources:
user_data: {get_resource: UserData}
name: {get_param: Hostname}
metadata: {get_param: ServerMetadata}
+ scheduler_hints: {get_param: SchedulerHints}
# Combine the NodeAdminUserData and NodeUserData mime archives
UserData:
@@ -844,12 +847,9 @@ resources:
cinder_nfs_mount_options: {get_param: CinderNfsMountOptions}
cinder_nfs_servers:
str_replace:
- template: "['SERVERS']"
+ template: SERVERS
params:
- SERVERS:
- list_join:
- - "','"
- - {get_param: CinderNfsServers}
+ SERVERS: {get_param: CinderNfsServers}
cinder_lvm_loop_device_size: {get_param: CinderLVMLoopDeviceSize}
cinder_password: {get_param: CinderPassword}
cinder_enable_iscsi_backend: {get_param: CinderEnableIscsiBackend}
@@ -925,67 +925,72 @@ resources:
template: tripleo-CLUSTER
params:
CLUSTER: {get_param: MysqlClusterUniquePart}
- neutron_flat_networks: {get_param: NeutronFlatNetworks}
+ neutron_flat_networks:
+ str_replace:
+ template: NETWORKS
+ params:
+ NETWORKS: {get_param: NeutronFlatNetworks}
neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
neutron_agent_mode: {get_param: NeutronAgentMode}
neutron_router_distributed: {get_param: NeutronDVR}
neutron_core_plugin: {get_param: NeutronCorePlugin}
neutron_service_plugins:
str_replace:
- template: "['PLUGINS']"
+ template: PLUGINS
params:
- PLUGINS:
- list_join:
- - "','"
- - {get_param: NeutronServicePlugins}
+ PLUGINS: {get_param: NeutronServicePlugins}
neutron_type_drivers:
str_replace:
- template: "['DRIVERS']"
+ template: DRIVERS
params:
- DRIVERS:
- list_join:
- - "','"
- - {get_param: NeutronTypeDrivers}
+ DRIVERS: {get_param: NeutronTypeDrivers}
neutron_enable_dhcp_agent: {get_param: NeutronEnableDHCPAgent}
neutron_enable_l3_agent: {get_param: NeutronEnableL3Agent}
neutron_enable_metadata_agent: {get_param: NeutronEnableMetadataAgent}
neutron_enable_ovs_agent: {get_param: NeutronEnableOVSAgent}
- neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
+ neutron_mechanism_drivers:
+ str_replace:
+ template: MECHANISMS
+ params:
+ MECHANISMS: {get_param: NeutronMechanismDrivers}
neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
neutron_l3_ha: {get_param: NeutronL3HA}
neutron_dhcp_agents_per_network: {get_param: NeutronDhcpAgentsPerNetwork}
neutron_network_vlan_ranges:
str_replace:
- template: "['RANGES']"
+ template: RANGES
params:
- RANGES:
- list_join:
- - "','"
- - {get_param: NeutronNetworkVLANRanges}
- neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
+ RANGES: {get_param: NeutronNetworkVLANRanges}
+ neutron_bridge_mappings:
+ str_replace:
+ template: MAPPINGS
+ params:
+ MAPPINGS: {get_param: NeutronBridgeMappings}
neutron_external_network_bridge: {get_param: NeutronExternalNetworkBridge}
neutron_public_interface: {get_param: NeutronPublicInterface}
neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
neutron_public_interface_default_route: {get_param: NeutronPublicInterfaceDefaultRoute}
neutron_public_interface_tag: {get_param: NeutronPublicInterfaceTag}
- neutron_tenant_network_type: {get_param: NeutronNetworkType}
- neutron_tunnel_types: {get_param: NeutronTunnelTypes}
neutron_tunnel_id_ranges:
str_replace:
- template: "['RANGES']"
+ template: RANGES
params:
- RANGES:
- list_join:
- - "','"
- - {get_param: NeutronTunnelIdRanges}
+ RANGES: {get_param: NeutronTunnelIdRanges}
neutron_vni_ranges:
str_replace:
- template: "['RANGES']"
+ template: RANGES
+ params:
+ RANGES: {get_param: NeutronVniRanges}
+ neutron_tenant_network_types:
+ str_replace:
+ template: TYPES
+ params:
+ TYPES: {get_param: NeutronNetworkType}
+ neutron_tunnel_types:
+ str_replace:
+ template: TYPES
params:
- RANGES:
- list_join:
- - "','"
- - {get_param: NeutronVniRanges}
+ TYPES: {get_param: NeutronTunnelTypes}
neutron_password: {get_param: NeutronPassword}
neutron_dnsmasq_options: {get_param: NeutronDnsmasqOptions}
neutron_dsn:
@@ -1294,7 +1299,7 @@ resources:
neutron::agents::ml2::ovs::l2_population: {get_input: neutron_enable_l2pop}
neutron::agents::dhcp::enable_isolated_metadata: {get_input: neutron_enable_isolated_metadata}
neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
- neutron_flat_networks: {get_input: neutron_flat_networks}
+ neutron::plugins::ml2::flat_networks: {get_input: neutron_flat_networks}
neutron::agents::metadata::shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
neutron::agents::metadata::metadata_ip: {get_input: neutron_api_network}
neutron::agents::metadata::metadata_workers: {get_input: neutron_workers}
@@ -1307,20 +1312,20 @@ resources:
neutron::enable_metadata_agent: {get_input: neutron_enable_metadata_agent}
neutron::enable_ovs_agent: {get_input: neutron_enable_ovs_agent}
neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
- neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
+ neutron::plugins::ml2::mechanism_drivers: {get_input: neutron_mechanism_drivers}
neutron::server::allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
neutron::server::l3_ha: {get_input: neutron_l3_ha}
neutron::dhcp_agents_per_network: {get_input: neutron_dhcp_agents_per_network}
neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
- neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
+ neutron::agents::ml2::ovs:bridge_mappings: {get_input: neutron_bridge_mappings}
neutron_public_interface: {get_input: neutron_public_interface}
neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
neutron_public_interface_default_route: {get_input: neutron_public_interface_default_route}
neutron_public_interface_tag: {get_input: neutron_public_interface_tag}
- neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
- neutron_tunnel_types: {get_input: neutron_tunnel_types}
+ neutron::plugins::ml2::tenant_network_types: {get_input: neutron_tenant_network_types}
+ neutron::agents::ml2::ovs::tunnel_types: {get_input: neutron_tunnel_types}
neutron::server::auth_password: {get_input: neutron_password}
neutron::agents::metadata::auth_password: {get_input: neutron_password}
neutron_dnsmasq_options: {get_input: neutron_dnsmasq_options}
diff --git a/puppet/extraconfig/pre_deploy/controller/neutron-nuage.yaml b/puppet/extraconfig/pre_deploy/controller/neutron-nuage.yaml
index 60f02bf8..8378d2fc 100644
--- a/puppet/extraconfig/pre_deploy/controller/neutron-nuage.yaml
+++ b/puppet/extraconfig/pre_deploy/controller/neutron-nuage.yaml
@@ -43,6 +43,11 @@ parameters:
description: Cloud Management System ID (CMS ID) to distinguish between OS instances on the same VSD
type: string
+ UseForwardedFor:
+ description: Treat X-Forwarded-For as the canonical remote address. Only enable this if you have a sanitizing proxy.
+ type: boolean
+ default: false
+
resources:
NeutronNuageConfig:
type: OS::Heat::StructuredConfig
@@ -61,6 +66,7 @@ resources:
neutron::plugins::nuage::nuage_vsd_organization: {get_input: NuageVSDOrganization}
neutron::plugins::nuage::nuage_base_uri_version: {get_input: NuageBaseURIVersion}
neutron::plugins::nuage::nuage_cms_id: {get_input: NuageCMSId}
+ nova::api::use_forwarded_for: {get_input: NovaUseForwardedFor}
NeutronNuageDeployment:
type: OS::Heat::StructuredDeployment
@@ -76,6 +82,7 @@ resources:
NuageVSDOrganization: {get_param: NeutronNuageVSDOrganization}
NuageBaseURIVersion: {get_param: NeutronNuageBaseURIVersion}
NuageCMSId: {get_param: NeutronNuageCMSId}
+ NovaUseForwardedFor: {get_param: UseForwardedFor}
outputs:
deploy_stdout:
diff --git a/puppet/manifests/overcloud_compute.pp b/puppet/manifests/overcloud_compute.pp
index f3a02eba..e0566ac1 100644
--- a/puppet/manifests/overcloud_compute.pp
+++ b/puppet/manifests/overcloud_compute.pp
@@ -85,17 +85,10 @@ if hiera('neutron::core_plugin') == 'neutron.plugins.nuage.plugin.NuagePlugin' {
nova_auth_ip => hiera('keystone_public_api_virtual_ip'),
}
} else {
- class { '::neutron::plugins::ml2':
- flat_networks => split(hiera('neutron_flat_networks'), ','),
- tenant_network_types => [hiera('neutron_tenant_network_type')],
- }
-
- class { '::neutron::agents::ml2::ovs':
- bridge_mappings => split(hiera('neutron_bridge_mappings'), ','),
- tunnel_types => split(hiera('neutron_tunnel_types'), ','),
- }
+ include ::neutron::plugins::ml2
+ include ::neutron::agents::ml2::ovs
- if 'cisco_n1kv' in hiera('neutron_mechanism_drivers') {
+ if 'cisco_n1kv' in hiera('neutron::plugins::ml2::mechanism_drivers') {
class { '::neutron::agents::n1kv_vem':
n1kv_source => hiera('n1kv_vem_source', undef),
n1kv_version => hiera('n1kv_vem_version', undef),
diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp
index a8abbb77..7d3012e5 100644
--- a/puppet/manifests/overcloud_controller.pp
+++ b/puppet/manifests/overcloud_controller.pp
@@ -252,16 +252,10 @@ if hiera('step') >= 3 {
require => Package['neutron'],
}
- class { '::neutron::plugins::ml2':
- flat_networks => split(hiera('neutron_flat_networks'), ','),
- tenant_network_types => [hiera('neutron_tenant_network_type')],
- mechanism_drivers => [hiera('neutron_mechanism_drivers')],
- }
- class { '::neutron::agents::ml2::ovs':
- bridge_mappings => split(hiera('neutron_bridge_mappings'), ','),
- tunnel_types => split(hiera('neutron_tunnel_types'), ','),
- }
- if 'cisco_n1kv' in hiera('neutron_mechanism_drivers') {
+ include ::neutron::plugins::ml2
+ include ::neutron::agents::ml2::ovs
+
+ if 'cisco_n1kv' in hiera('neutron::plugins::ml2::mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::nexus1000v
class { '::neutron::agents::n1kv_vem':
@@ -276,10 +270,10 @@ if hiera('step') >= 3 {
}
}
- if 'cisco_ucsm' in hiera('neutron_mechanism_drivers') {
+ if 'cisco_ucsm' in hiera('neutron::plugins::ml2::mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::ucsm
}
- if 'cisco_nexus' in hiera('neutron_mechanism_drivers') {
+ if 'cisco_nexus' in hiera('neutron::plugins::ml2::mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::nexus
include ::neutron::plugins::ml2::cisco::type_nexus_vxlan
}
@@ -450,8 +444,6 @@ if hiera('step') >= 3 {
include ::ceilometer::api
include ::ceilometer::agent::notification
include ::ceilometer::agent::central
- include ::ceilometer::alarm::notifier
- include ::ceilometer::alarm::evaluator
include ::ceilometer::expirer
include ::ceilometer::collector
include ::ceilometer::agent::auth
@@ -469,7 +461,7 @@ if hiera('step') >= 3 {
include ::heat::engine
# Horizon
- if 'cisco_n1kv' in hiera('neutron_mechanism_drivers') {
+ if 'cisco_n1kv' in hiera('neutron::plugins::ml2::mechanism_drivers') {
$_profile_support = 'cisco'
} else {
$_profile_support = 'None'
diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp
index 8459f1a3..cf607e53 100644
--- a/puppet/manifests/overcloud_controller_pacemaker.pp
+++ b/puppet/manifests/overcloud_controller_pacemaker.pp
@@ -628,27 +628,20 @@ if hiera('step') >= 3 {
enabled => false,
}
}
- if hiera('neutron::core_plugin') == 'ml2' {
- class { '::neutron::plugins::ml2':
- flat_networks => split(hiera('neutron_flat_networks'), ','),
- tenant_network_types => [hiera('neutron_tenant_network_type')],
- mechanism_drivers => [hiera('neutron_mechanism_drivers')],
- }
- class { '::neutron::agents::ml2::ovs':
- manage_service => false,
- enabled => false,
- bridge_mappings => split(hiera('neutron_bridge_mappings'), ','),
- tunnel_types => split(hiera('neutron_tunnel_types'), ','),
- }
+ include ::neutron::plugins::ml2
+ class { '::neutron::agents::ml2::ovs':
+ manage_service => false,
+ enabled => false,
}
- if 'cisco_ucsm' in hiera('neutron_mechanism_drivers') {
+
+ if 'cisco_ucsm' in hiera('neutron::plugins::ml2::mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::ucsm
}
- if 'cisco_nexus' in hiera('neutron_mechanism_drivers') {
+ if 'cisco_nexus' in hiera('neutron::plugins::ml2::mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::nexus
include ::neutron::plugins::ml2::cisco::type_nexus_vxlan
}
- if 'cisco_n1kv' in hiera('neutron_mechanism_drivers') {
+ if 'cisco_n1kv' in hiera('neutron::plugins::ml2::mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::nexus1000v
class { '::neutron::agents::n1kv_vem':
@@ -855,14 +848,6 @@ if hiera('step') >= 3 {
manage_service => false,
enabled => false,
}
- class { '::ceilometer::alarm::notifier' :
- manage_service => false,
- enabled => false,
- }
- class { '::ceilometer::alarm::evaluator' :
- manage_service => false,
- enabled => false,
- }
class { '::ceilometer::collector' :
manage_service => false,
enabled => false,
@@ -904,7 +889,7 @@ if hiera('step') >= 3 {
# service_manage => false, # <-- not supported with horizon&apache mod_wsgi?
}
include ::apache::mod::status
- if 'cisco_n1kv' in hiera('neutron_mechanism_drivers') {
+ if 'cisco_n1kv' in hiera('neutron::plugins::ml2::mechanism_drivers') {
$_profile_support = 'cisco'
} else {
$_profile_support = 'None'
@@ -1339,12 +1324,6 @@ if hiera('step') >= 4 {
pacemaker::resource::service { $::ceilometer::params::api_service_name :
clone_params => 'interleave=true',
}
- pacemaker::resource::service { $::ceilometer::params::alarm_evaluator_service_name :
- clone_params => 'interleave=true',
- }
- pacemaker::resource::service { $::ceilometer::params::alarm_notifier_service_name :
- clone_params => 'interleave=true',
- }
pacemaker::resource::service { $::ceilometer::params::agent_notification_service_name :
clone_params => 'interleave=true',
}
@@ -1419,54 +1398,6 @@ if hiera('step') >= 4 {
require => [Pacemaker::Resource::Service[$::ceilometer::params::api_service_name],
Pacemaker::Resource::Ocf['delay']],
}
- pacemaker::constraint::base { 'ceilometer-delay-then-ceilometer-alarm-evaluator-constraint':
- constraint_type => 'order',
- first_resource => 'delay-clone',
- second_resource => "${::ceilometer::params::alarm_evaluator_service_name}-clone",
- first_action => 'start',
- second_action => 'start',
- require => [Pacemaker::Resource::Service[$::ceilometer::params::alarm_evaluator_service_name],
- Pacemaker::Resource::Ocf['delay']],
- }
- pacemaker::constraint::colocation { 'ceilometer-alarm-evaluator-with-ceilometer-delay-colocation':
- source => "${::ceilometer::params::alarm_evaluator_service_name}-clone",
- target => 'delay-clone',
- score => 'INFINITY',
- require => [Pacemaker::Resource::Service[$::ceilometer::params::api_service_name],
- Pacemaker::Resource::Ocf['delay']],
- }
- pacemaker::constraint::base { 'ceilometer-alarm-evaluator-then-ceilometer-alarm-notifier-constraint':
- constraint_type => 'order',
- first_resource => "${::ceilometer::params::alarm_evaluator_service_name}-clone",
- second_resource => "${::ceilometer::params::alarm_notifier_service_name}-clone",
- first_action => 'start',
- second_action => 'start',
- require => [Pacemaker::Resource::Service[$::ceilometer::params::alarm_evaluator_service_name],
- Pacemaker::Resource::Service[$::ceilometer::params::alarm_notifier_service_name]],
- }
- pacemaker::constraint::colocation { 'ceilometer-alarm-notifier-with-ceilometer-alarm-evaluator-colocation':
- source => "${::ceilometer::params::alarm_notifier_service_name}-clone",
- target => "${::ceilometer::params::alarm_evaluator_service_name}-clone",
- score => 'INFINITY',
- require => [Pacemaker::Resource::Service[$::ceilometer::params::alarm_evaluator_service_name],
- Pacemaker::Resource::Service[$::ceilometer::params::alarm_notifier_service_name]],
- }
- pacemaker::constraint::base { 'ceilometer-alarm-notifier-then-ceilometer-notification-constraint':
- constraint_type => 'order',
- first_resource => "${::ceilometer::params::alarm_notifier_service_name}-clone",
- second_resource => "${::ceilometer::params::agent_notification_service_name}-clone",
- first_action => 'start',
- second_action => 'start',
- require => [Pacemaker::Resource::Service[$::ceilometer::params::agent_notification_service_name],
- Pacemaker::Resource::Service[$::ceilometer::params::alarm_notifier_service_name]],
- }
- pacemaker::constraint::colocation { 'ceilometer-notification-with-ceilometer-alarm-notifier-colocation':
- source => "${::ceilometer::params::agent_notification_service_name}-clone",
- target => "${::ceilometer::params::alarm_notifier_service_name}-clone",
- score => 'INFINITY',
- require => [Pacemaker::Resource::Service[$::ceilometer::params::agent_notification_service_name],
- Pacemaker::Resource::Service[$::ceilometer::params::alarm_notifier_service_name]],
- }
if downcase(hiera('ceilometer_backend')) == 'mongodb' {
pacemaker::constraint::base { 'mongodb-then-ceilometer-central-constraint':
constraint_type => 'order',
@@ -1565,7 +1496,7 @@ if hiera('step') >= 4 {
}
#VSM
- if 'cisco_n1kv' in hiera('neutron_mechanism_drivers') {
+ if 'cisco_n1kv' in hiera('neutron::plugins::ml2::mechanism_drivers') {
pacemaker::resource::ocf { 'vsm-p' :
ocf_agent_name => 'heartbeat:VirtualDomain',
resource_params => 'force_stop=true config=/var/spool/cisco/vsm/vsm_primary_deploy.xml',
diff --git a/puppet/manifests/ringbuilder.pp b/puppet/manifests/ringbuilder.pp
index 4296208b..2d880d33 100644
--- a/puppet/manifests/ringbuilder.pp
+++ b/puppet/manifests/ringbuilder.pp
@@ -70,7 +70,7 @@ class tripleo::ringbuilder (
# create local rings
swift::ringbuilder::create{ ['object', 'account', 'container']:
part_power => $part_power,
- replicas => $replicas,
+ replicas => min(count($device_array), $replicas),
min_part_hours => $min_part_hours,
} ->
diff --git a/puppet/swift-storage.yaml b/puppet/swift-storage.yaml
index a8183f76..721dcba4 100644
--- a/puppet/swift-storage.yaml
+++ b/puppet/swift-storage.yaml
@@ -17,7 +17,7 @@ parameters:
type: string
KeyName:
default: default
- description: Name of an existing EC2 KeyPair to enable SSH access to the instances
+ description: Name of an existing Nova key pair to enable SSH access to the instances
type: string
MountCheck:
default: 'false'
@@ -94,7 +94,10 @@ parameters:
Extra properties or metadata passed to Nova for the created nodes in
the overcloud. It's accessible via the Nova metadata API.
type: json
-
+ SchedulerHints:
+ type: json
+ description: Optional scheduler hints to pass to nova
+ default: {}
resources:
@@ -110,6 +113,7 @@ resources:
user_data: {get_resource: UserData}
name: {get_param: Hostname}
metadata: {get_param: ServerMetadata}
+ scheduler_hints: {get_param: SchedulerHints}
# Combine the NodeAdminUserData and NodeUserData mime archives
UserData: