diff options
-rw-r--r-- | compute.yaml | 30 | ||||
-rw-r--r-- | controller.yaml | 47 | ||||
-rw-r--r-- | environments/mongodb-nojournal.yaml | 5 | ||||
-rw-r--r-- | overcloud-without-mergepy.yaml | 96 | ||||
-rw-r--r-- | puppet/ceph-storage-puppet.yaml | 9 | ||||
-rw-r--r-- | puppet/cinder-storage-puppet.yaml | 2 | ||||
-rw-r--r-- | puppet/compute-puppet.yaml | 33 | ||||
-rw-r--r-- | puppet/controller-puppet.yaml | 102 | ||||
-rw-r--r-- | puppet/hieradata/common.yaml | 6 | ||||
-rw-r--r-- | puppet/hieradata/controller.yaml | 2 | ||||
-rw-r--r-- | puppet/manifests/overcloud_controller.pp | 2 | ||||
-rw-r--r-- | puppet/manifests/overcloud_controller_pacemaker.pp | 35 | ||||
-rw-r--r-- | puppet/swift-storage-puppet.yaml | 3 |
13 files changed, 257 insertions, 115 deletions
diff --git a/compute.yaml b/compute.yaml index 4a9a92b9..d51aa358 100644 --- a/compute.yaml +++ b/compute.yaml @@ -152,6 +152,18 @@ parameters: The tunnel types for the Neutron tenant network. To specify multiple values, use a comma separated string, like so: 'gre,vxlan' default: 'gre' + NeutronTunnelIdRanges: + description: | + Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges + of GRE tunnel IDs that are available for tenant network allocation + default: ["1:1000", ] + type: comma_delimited_list + NeutronVniRanges: + description: | + Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges + of VXLAN VNI IDs that are available for tenant network allocation + default: ["1:1000", ] + type: comma_delimited_list NeutronPublicInterfaceRawDevice: default: '' type: string @@ -355,6 +367,8 @@ resources: tenant_network_type: {get_input: neutron_tenant_network_type} tunnel_types: {get_input: neutron_tunnel_types} network_vlan_ranges: {get_input: neutron_network_vlan_ranges} + tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges} + vni_ranges: {get_input: neutron_vni_ranges} bridge_mappings: {get_input: neutron_bridge_mappings} enable_tunneling: {get_input: neutron_enable_tunneling} physical_bridge: {get_input: neutron_physical_bridge} @@ -397,6 +411,22 @@ resources: neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]} neutron_tenant_network_type: {get_param: NeutronNetworkType} neutron_tunnel_types: {get_param: NeutronTunnelTypes} + neutron_tunnel_id_ranges: + str_replace: + template: "['RANGES']" + params: + RANGES: + list_join: + - "','" + - {get_param: NeutronTunnelIdRanges} + neutron_vni_ranges: + str_replace: + template: "['RANGES']" + params: + RANGES: + list_join: + - "','" + - {get_param: NeutronVniRanges} neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges} neutron_bridge_mappings: {get_param: NeutronBridgeMappings} neutron_enable_tunneling: {get_param: NeutronEnableTunnelling} diff --git a/controller.yaml b/controller.yaml index bb70b28f..ae60e910 100644 --- a/controller.yaml +++ b/controller.yaml @@ -253,6 +253,10 @@ parameters: lower level default. type: number default: 0 + MysqlMaxConnections: + description: Configures MySQL max_connections config setting + type: number + default: 4096 MysqlRootPassword: type: string hidden: true @@ -301,6 +305,10 @@ parameters: default: 'False' description: Whether to enable l3-agent HA type: string + NeutronDhcpAgentsPerNetwork: + type: number + default: 3 + description: The number of neutron dhcp agents to schedule per network NeutronEnableTunnelling: type: string default: "True" @@ -356,11 +364,27 @@ parameters: The tunnel types for the Neutron tenant network. To specify multiple values, use a comma separated string, like so: 'gre,vxlan' type: string + NeutronTunnelIdRanges: + description: | + Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges + of GRE tunnel IDs that are available for tenant network allocation + default: ["1:1000", ] + type: comma_delimited_list + NeutronVniRanges: + description: | + Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges + of VXLAN VNI IDs that are available for tenant network allocation + default: ["1:1000", ] + type: comma_delimited_list NovaPassword: default: unset description: The password for the nova service and db account, used by nova-api. type: string hidden: true + MongoDbNoJournal: + default: false + description: Should MongoDb journaling be disabled + type: boolean NtpServer: type: string default: '' @@ -636,6 +660,7 @@ resources: mechanism_drivers: {get_input: neutron_mechanism_drivers} allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover} l3_ha: {get_input: neutron_l3_ha} + dhcp_agents_per_network: {get_input: neutron_dhcp_agents_per_network} ovs: enable_tunneling: {get_input: neutron_enable_tunneling} local_ip: {get_input: controller_host} @@ -648,6 +673,8 @@ resources: physical_bridge: br-ex tenant_network_type: {get_input: neutron_tenant_network_type} tunnel_types: {get_input: neutron_tunnel_types} + tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges} + vni_ranges: {get_input: neutron_vni_ranges} ovs_db: {get_input: neutron_dsn} service-password: {get_input: neutron_password} dnsmasq-options: {get_input: neutron_dnsmasq_options} @@ -668,6 +695,8 @@ resources: host: {get_input: controller_virtual_ip} metadata-proxy: true service-password: {get_input: nova_password} + mongodb: + nojournal: {get_input: mongodb_no_journal} rabbit: host: {get_input: controller_virtual_ip} username: {get_input: rabbit_username} @@ -863,6 +892,7 @@ resources: - '@' - {get_param: VirtualIP} - '/keystone' + mongodb_no_journal: {get_param: MongoDbNoJournal} mysql_innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize} mysql_root_password: {get_param: MysqlRootPassword} mysql_cluster_name: @@ -877,6 +907,7 @@ resources: neutron_mechanism_drivers: {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: {get_param: NeutronNetworkVLANRanges} neutron_bridge_mappings: {get_param: NeutronBridgeMappings} neutron_public_interface: {get_param: NeutronPublicInterface} @@ -885,6 +916,22 @@ resources: 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']" + params: + RANGES: + list_join: + - "','" + - {get_param: NeutronTunnelIdRanges} + neutron_vni_ranges: + str_replace: + template: "['RANGES']" + params: + RANGES: + list_join: + - "','" + - {get_param: NeutronVniRanges} neutron_password: {get_param: NeutronPassword} neutron_dnsmasq_options: {get_param: NeutronDnsmasqOptions} neutron_dsn: diff --git a/environments/mongodb-nojournal.yaml b/environments/mongodb-nojournal.yaml new file mode 100644 index 00000000..1e13e452 --- /dev/null +++ b/environments/mongodb-nojournal.yaml @@ -0,0 +1,5 @@ +# A Heat environment file which can be used to disable journal in MongoDb. +# Since, when journaling is enabled, MongoDb will create big journal file +# it can take time. In a CI environment for example journaling is not necessary. +parameters: + MongoDbNoJournal: true diff --git a/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml index 4403c565..5e1470f0 100644 --- a/overcloud-without-mergepy.yaml +++ b/overcloud-without-mergepy.yaml @@ -148,6 +148,18 @@ parameters: The tunnel types for the Neutron tenant network. To specify multiple values, use a comma separated string, like so: 'gre,vxlan' type: string + NeutronTunnelIdRanges: + description: | + Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges + of GRE tunnel IDs that are available for tenant network allocation + default: ["1:1000", ] + type: comma_delimited_list + NeutronVniRanges: + description: | + Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges + of VXLAN VNI IDs that are available for tenant network allocation + default: ["1:1000", ] + type: comma_delimited_list NeutronMechanismDrivers: default: 'openvswitch' description: | @@ -162,6 +174,10 @@ parameters: default: 'False' description: Whether to enable l3-agent HA type: string + NeutronDhcpAgentsPerNetwork: + type: number + default: 3 + description: The number of neutron dhcp agents to schedule per network NovaPassword: default: unset description: The password for the nova service account, used by nova-api. @@ -170,6 +186,10 @@ parameters: NtpServer: type: string default: '' + MongoDbNoJournal: + default: false + description: Should MongoDb journaling be disabled + type: boolean PublicVirtualFixedIPs: default: [] description: > @@ -280,40 +300,9 @@ parameters: ExtraConfig: default: {} description: | - Additional configuration to inject into the cluster. The JSON should have - the following structure: - {"FILEKEY": - {"config": - [{"section": "SECTIONNAME", - "values": - [{"option": "OPTIONNAME", - "value": "VALUENAME" - } - ] - } - ] - } - } - For instance: - {"nova": - {"config": - [{"section": "default", - "values": - [{"option": "force_config_drive", - "value": "always" - } - ] - }, - {"section": "cells", - "values": - [{"option": "driver", - "value": "nova.cells.rpc_driver.CellsRPCDriver" - } - ] - } - ] - } - } + Additional configuration to inject into the cluster. The format required + may be implementation specific, e.g puppet hieradata. Any role specific + ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig. type: json FencingConfig: default: {} @@ -406,6 +395,10 @@ parameters: lower level default. type: number default: 0 + MysqlMaxConnections: + description: Configures MySQL max_connections config setting + type: number + default: 4096 NeutronDnsmasqOptions: default: 'dhcp-option-force=26,1400' description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead. @@ -548,6 +541,11 @@ parameters: MysqlNetwork: internal_api CephClusterNetwork: storage_mgmt CephPublicNetwork: storage + ControllerHostnameResolveNetwork: internal_api + ComputeHostnameResolveNetwork: internal_api + BlockStorageHostnameResolveNetwork: internal_api + ObjectStorageHostnameResolveNetwork: internal_api + CephStorageHostnameResolveNetwork: storage description: Mapping of service_name -> network name. Typically set via parameter_defaults in the resource registry. type: json @@ -725,6 +723,7 @@ resources: KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey} MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]} MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize} + MysqlMaxConnections: {get_param: MysqlMaxConnections} MysqlRootPassword: {get_attr: [MysqlRootPassword, value]} NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP} NeutronFlatNetworks: {get_param: NeutronFlatNetworks} @@ -743,10 +742,12 @@ resources: NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers} NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover} NeutronL3HA: {get_param: NeutronL3HA} + NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork} NeutronNetworkType: {get_param: NeutronNetworkType} NeutronTunnelTypes: {get_param: NeutronTunnelTypes} NovaPassword: {get_param: NovaPassword} NtpServer: {get_param: NtpServer} + MongoDbNoJournal: {get_param: MongoDbNoJournal} PcsdPassword: {get_resource: PcsdPassword} PublicVirtualInterface: {get_param: PublicVirtualInterface} RabbitPassword: {get_param: RabbitPassword} @@ -1231,3 +1232,30 @@ outputs: - - http:// - {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]} - :5000/v2.0/ + PublicVip: + description: Controller VIP for public API endpoints + value: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]} + CeilometerInternalVip: + description: VIP for Ceilometer API internal endpoint + value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]} + CinderInternalVip: + description: VIP for Cinder API internal endpoint + value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]} + GlanceInternalVip: + description: VIP for Glance API internal endpoint + value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]} + HeatInternalVip: + description: VIP for Heat API internal endpoint + value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]} + KeystoneInternalVip: + description: VIP for Keystone API internal endpoint + value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]} + NeutronInternalVip: + description: VIP for Neutron API internal endpoint + value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]} + NovaInternalVip: + description: VIP for Nova API internal endpoint + value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]} + SwiftInternalVip: + description: VIP for Swift Proxy internal endpoint + value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]} diff --git a/puppet/ceph-storage-puppet.yaml b/puppet/ceph-storage-puppet.yaml index 245d8ebb..2d089419 100644 --- a/puppet/ceph-storage-puppet.yaml +++ b/puppet/ceph-storage-puppet.yaml @@ -76,6 +76,12 @@ resources: StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]} StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]} + NetIpMap: + type: OS::TripleO::Network::Ports::NetIpMap + properties: + StorageIp: {get_attr: [StoragePort, ip_address]} + StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]} + NetIpSubnetMap: type: OS::TripleO::Network::Ports::NetIpMap properties: @@ -145,7 +151,7 @@ outputs: str_replace: template: "IP HOST.localdomain HOST" params: - IP: {get_attr: [CephStorage, networks, ctlplane, 0]} + IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CephStorageHostnameResolveNetwork]}]} HOST: {get_attr: [CephStorage, name]} nova_server_resource: description: Heat resource handle for the ceph storage server @@ -160,4 +166,3 @@ outputs: config_identifier: description: identifier which changes if the node configuration may need re-applying value: {get_attr: [CephStorageDeployment, deploy_stdout]} - diff --git a/puppet/cinder-storage-puppet.yaml b/puppet/cinder-storage-puppet.yaml index cc8d17c4..94a0a5c4 100644 --- a/puppet/cinder-storage-puppet.yaml +++ b/puppet/cinder-storage-puppet.yaml @@ -280,7 +280,7 @@ outputs: str_replace: template: "IP HOST.localdomain HOST" params: - IP: {get_attr: [BlockStorage, networks, ctlplane, 0]} + IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, BlockStorageHostnameResolveNetwork]}]} HOST: {get_attr: [BlockStorage, name]} nova_server_resource: description: Heat resource handle for the block storage server diff --git a/puppet/compute-puppet.yaml b/puppet/compute-puppet.yaml index afe85d18..02756925 100644 --- a/puppet/compute-puppet.yaml +++ b/puppet/compute-puppet.yaml @@ -152,6 +152,18 @@ parameters: The tunnel types for the Neutron tenant network. To specify multiple values, use a comma separated string, like so: 'gre,vxlan' default: 'gre' + NeutronTunnelIdRanges: + description: | + Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges + of GRE tunnel IDs that are available for tenant network allocation + default: ["1:1000", ] + type: comma_delimited_list + NeutronVniRanges: + description: | + Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges + of VXLAN VNI IDs that are available for tenant network allocation + default: ["1:1000", ] + type: comma_delimited_list NeutronPublicInterfaceRawDevice: default: '' type: string @@ -378,6 +390,8 @@ resources: neutron_tenant_network_type: {get_input: neutron_tenant_network_type} neutron_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::enable_tunneling: {get_input: neutron_enable_tunneling} neutron_physical_bridge: {get_input: neutron_physical_bridge} @@ -433,6 +447,22 @@ resources: 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']" + params: + RANGES: + list_join: + - "','" + - {get_param: NeutronTunnelIdRanges} + neutron_vni_ranges: + str_replace: + template: "['RANGES']" + params: + RANGES: + list_join: + - "','" + - {get_param: NeutronVniRanges} neutron_network_vlan_ranges: str_replace: template: "['RANGES']" @@ -510,7 +540,7 @@ outputs: str_replace: template: "IP HOST.localdomain HOST" params: - IP: {get_attr: [NovaCompute, networks, ctlplane, 0]} + IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]} HOST: {get_attr: [NovaCompute, name]} nova_server_resource: description: Heat resource handle for the Nova compute server @@ -519,4 +549,3 @@ outputs: config_identifier: description: identifier which changes if the node configuration may need re-applying value: {get_attr: [NovaComputeDeployment, deploy_stdout]} - diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml index 49defa9d..bd8823ad 100644 --- a/puppet/controller-puppet.yaml +++ b/puppet/controller-puppet.yaml @@ -61,8 +61,7 @@ parameters: ControllerExtraConfig: default: {} description: | - Controller specific configuration to inject into the cluster. Same - structure as ExtraConfig. + Controller specific hiera configuration data to inject into the cluster. type: json ControlVirtualInterface: default: 'br-ex' @@ -91,40 +90,8 @@ parameters: ExtraConfig: default: {} description: | - Additional configuration to inject into the cluster. The JSON should have - the following structure: - {"FILEKEY": - {"config": - [{"section": "SECTIONNAME", - "values": - [{"option": "OPTIONNAME", - "value": "VALUENAME" - } - ] - } - ] - } - } - For instance: - {"nova": - {"config": - [{"section": "default", - "values": - [{"option": "compute_manager", - "value": "ironic.nova.compute.manager.ClusterComputeManager" - } - ] - }, - {"section": "cells", - "values": - [{"option": "driver", - "value": "nova.cells.rpc_driver.CellsRPCDriver" - } - ] - } - ] - } - } + Additional hieradata to inject into the cluster, note that + ControllerExtraConfig takes precedence over ExtraConfig. type: json FencingConfig: default: {} @@ -258,6 +225,10 @@ parameters: lower level default. type: number default: 0 + MysqlMaxConnections: + description: Configures MySQL max_connections config setting + type: number + default: 4096 MysqlRootPassword: type: string hidden: true @@ -288,6 +259,10 @@ parameters: default: 'False' description: Whether to enable l3-agent HA type: string + NeutronDhcpAgentsPerNetwork: + type: number + default: 3 + description: The number of neutron dhcp agents to schedule per network NeutronDVR: default: 'False' description: Whether to configure Neutron Distributed Virtual Routers @@ -365,11 +340,27 @@ parameters: The tunnel types for the Neutron tenant network. To specify multiple values, use a comma separated string, like so: 'gre,vxlan' type: string + NeutronTunnelIdRanges: + description: | + Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges + of GRE tunnel IDs that are available for tenant network allocation + default: ["1:1000", ] + type: comma_delimited_list + NeutronVniRanges: + description: | + Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges + of VXLAN VNI IDs that are available for tenant network allocation + default: ["1:1000", ] + type: comma_delimited_list NovaPassword: default: unset description: The password for the nova service and db account, used by nova-api. type: string hidden: true + MongoDbNoJournal: + default: false + description: Should MongoDb journaling be disabled + type: boolean NtpServer: type: string default: '' @@ -674,11 +665,18 @@ resources: - - 'http://' - {get_param: KeystonePublicApiVirtualIP} - ':5000/v2.0/' + keystone_ec2_uri: + list_join: + - '' + - - 'http://' + - {get_param: KeystonePublicApiVirtualIP} + - ':5000/v2.0/ec2tokens' enable_fencing: {get_param: EnableFencing} enable_galera: {get_param: EnableGalera} enable_ceph_storage: {get_param: EnableCephStorage} enable_swift_storage: {get_param: EnableSwiftStorage} mysql_innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize} + mysql_max_connections: {get_param: MysqlMaxConnections} mysql_root_password: {get_param: MysqlRootPassword} mysql_cluster_name: str_replace: @@ -692,6 +690,7 @@ resources: neutron_mechanism_drivers: {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']" @@ -708,6 +707,22 @@ resources: 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']" + params: + RANGES: + list_join: + - "','" + - {get_param: NeutronTunnelIdRanges} + neutron_vni_ranges: + str_replace: + template: "['RANGES']" + params: + RANGES: + list_join: + - "','" + - {get_param: NeutronVniRanges} neutron_password: {get_param: NeutronPassword} neutron_dnsmasq_options: {get_param: NeutronDnsmasqOptions} neutron_dsn: @@ -763,6 +778,7 @@ resources: rabbit_cookie: {get_param: RabbitCookie} rabbit_client_use_ssl: {get_param: RabbitClientUseSSL} rabbit_client_port: {get_param: RabbitClientPort} + mongodb_no_journal: {get_param: MongoDbNoJournal} ntp_servers: str_replace: template: '["server"]' @@ -819,6 +835,8 @@ resources: hiera: hierarchy: - heat_config_%{::deploy_config_name} + - controller_extraconfig + - extraconfig - controller - object - swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig @@ -831,6 +849,10 @@ resources: - common - cinder_netapp_data # Optionally provided by ControllerExtraConfigPre datafiles: + controller_extraconfig: + mapped_data: {get_param: ControllerExtraConfig} + extraconfig: + mapped_data: {get_param: ExtraConfig} common: raw_data: {get_file: hieradata/common.yaml} ceph: @@ -920,6 +942,7 @@ resources: heat::rabbit_use_ssl: {get_input: rabbit_client_use_ssl} heat::rabbit_port: {get_input: rabbit_client_port} heat::auth_uri: {get_input: keystone_auth_uri} + heat::keystone_ec2_uri: {get_input: keystone_ec2_uri} heat::identity_uri: {get_input: keystone_identity_uri} heat::keystone_password: {get_input: heat_password} heat::api::bind_host: {get_input: heat_api_network} @@ -942,12 +965,14 @@ resources: keystone::debug: {get_input: debug} # MongoDB mongodb::server::bind_ip: {get_input: mongo_db_network} + mongodb::server::nojournal: {get_input: mongodb_no_journal} # MySQL admin_password: {get_input: admin_password} enable_galera: {get_input: enable_galera} enable_ceph_storage: {get_input: enable_ceph_storage} enable_swift_storage: {get_input: enable_swift_storage} mysql_innodb_buffer_pool_size: {get_input: mysql_innodb_buffer_pool_size} + mysql_max_connections: {get_input: mysql_max_connections} mysql::server::root_password: {get_input: mysql_root_password} mysql_cluster_name: {get_input: mysql_cluster_name} mysql_bind_host: {get_input: mysql_network} @@ -973,7 +998,10 @@ resources: neutron_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_public_interface: {get_input: neutron_public_interface} neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device} @@ -1103,7 +1131,7 @@ outputs: str_replace: template: IP HOST.localdomain HOST CLOUDNAME params: - IP: {get_attr: [Controller, networks, ctlplane, 0]} + IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ControllerHostnameResolveNetwork]}]} HOST: {get_attr: [Controller, name]} CLOUDNAME: {get_param: CloudName} nova_server_resource: diff --git a/puppet/hieradata/common.yaml b/puppet/hieradata/common.yaml index 40c44aef..7a035435 100644 --- a/puppet/hieradata/common.yaml +++ b/puppet/hieradata/common.yaml @@ -13,10 +13,6 @@ nova::network::neutron::vif_plugging_is_fatal: false nova::network::neutron::vif_plugging_timeout: 30 nova::network::neutron::dhcp_domain: '' -neutron::plugins::ml2::tunnel_id_ranges: - - '1:1000' -neutron::plugins::ml2::vni_ranges: - - '1:1000' neutron::plugins::ml2::type_drivers: - flat - gre @@ -29,4 +25,4 @@ sysctl_settings: net.ipv4.tcp_keepalive_probes: value: 5 net.ipv4.tcp_keepalive_time: - value: 5
\ No newline at end of file + value: 5 diff --git a/puppet/hieradata/controller.yaml b/puppet/hieradata/controller.yaml index cdd1d3ae..3cc64971 100644 --- a/puppet/hieradata/controller.yaml +++ b/puppet/hieradata/controller.yaml @@ -22,6 +22,7 @@ rabbitmq_config_variables: cluster_partition_handling: 'pause_minority' mongodb::server::replset: tripleo +mongodb::server::journal: false redis::port: 6379 redis::sentinel::master_name: "%{hiera('bootstrap_nodeid')}" @@ -65,7 +66,6 @@ glance::backend::rbd::rbd_store_user: 'openstack' neutron::core_plugin: 'ml2' neutron::service_plugins: - 'neutron.services.l3_router.l3_router_plugin.L3RouterPlugin' -neutron::dhcp_agents_per_network: 2 neutron::server::sync_db: true neutron::agents::dhcp::dnsmasq_config_file: /etc/neutron/dnsmasq-neutron.conf diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp index 777ebad6..f17dc831 100644 --- a/puppet/manifests/overcloud_controller.pp +++ b/puppet/manifests/overcloud_controller.pp @@ -90,7 +90,7 @@ if hiera('step') >= 2 { override_options => { 'mysqld' => { 'bind-address' => hiera('mysql_bind_host'), - 'max_connections' => '1024', + 'max_connections' => hiera('mysql_max_connections'), 'open_files_limit' => '-1', }, } diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp index 3c5a0151..e739ca03 100644 --- a/puppet/manifests/overcloud_controller_pacemaker.pp +++ b/puppet/manifests/overcloud_controller_pacemaker.pp @@ -140,7 +140,7 @@ if hiera('step') >= 1 { 'query_cache_size' => '0', 'query_cache_type' => '0', 'bind-address' => hiera('mysql_bind_host'), - 'max_connections' => '1024', + 'max_connections' => hiera('mysql_max_connections'), 'open_files_limit' => '-1', 'wsrep_provider' => '/usr/lib64/galera/libgalera_smm.so', 'wsrep_cluster_name' => 'galera_cluster', @@ -625,7 +625,7 @@ if hiera('step') >= 3 { tenant_network_types => [hiera('neutron_tenant_network_type')], } class { 'neutron::agents::ml2::ovs': - # manage_service => false # not implemented + manage_service => false, enabled => false, bridge_mappings => split(hiera('neutron_bridge_mappings'), ','), tunnel_types => split(hiera('neutron_tunnel_types'), ','), @@ -948,12 +948,7 @@ if hiera('step') >= 4 { # as soon as neutron-server is started; to avoid races we want to make this # happen only on one node, before normal Pacemaker initialization # https://bugzilla.redhat.com/show_bug.cgi?id=1233061 - exec { 'neutron-server-start-wait-stop' : - command => "systemctl start neutron-server && \ - sleep 5s && \ - systemctl stop neutron-server", - path => ["/usr/bin", "/usr/sbin"], - } -> + exec { '/usr/bin/systemctl start neutron-server && /usr/bin/sleep 5' : } -> pacemaker::resource::service { $::neutron::params::server_service: op_params => "start timeout=90", clone_params => "interleave=true", @@ -979,10 +974,6 @@ if hiera('step') >= 4 { ocf_agent_name => "neutron:NetnsCleanup", clone_params => "interleave=true", } - pacemaker::resource::ocf { 'neutron-scale': - ocf_agent_name => "neutron:NeutronScale", - clone_params => "globally-unique=true clone-max=3 interleave=true", - } pacemaker::constraint::base { 'keystone-to-neutron-server-constraint': constraint_type => "order", first_resource => "${::keystone::params::service_name}-clone", @@ -992,29 +983,13 @@ if hiera('step') >= 4 { require => [Pacemaker::Resource::Service[$::keystone::params::service_name], Pacemaker::Resource::Service[$::neutron::params::server_service]], } - pacemaker::constraint::base { 'neutron-server-to-neutron-scale-constraint': + pacemaker::constraint::base { 'neutron-server-to-neutron-ovs-cleanup-constraint': constraint_type => "order", first_resource => "${::neutron::params::server_service}-clone", - second_resource => "neutron-scale-clone", - first_action => "start", - second_action => "start", - require => [Pacemaker::Resource::Service[$::neutron::params::server_service], - Pacemaker::Resource::Ocf['neutron-scale']], - } - pacemaker::constraint::base { 'neutron-scale-to-ovs-cleanup-constraint': - constraint_type => "order", - first_resource => "neutron-scale-clone", second_resource => "${::neutron::params::ovs_cleanup_service}-clone", first_action => "start", second_action => "start", - require => [Pacemaker::Resource::Ocf['neutron-scale'], - Pacemaker::Resource::Ocf["${::neutron::params::ovs_cleanup_service}"]], - } - pacemaker::constraint::colocation { 'neutron-scale-to-ovs-cleanup-colocation': - source => "${::neutron::params::ovs_cleanup_service}-clone", - target => "neutron-scale-clone", - score => "INFINITY", - require => [Pacemaker::Resource::Ocf['neutron-scale'], + require => [Pacemaker::Resource::Service[$::neutron::params::server_service], Pacemaker::Resource::Ocf["${::neutron::params::ovs_cleanup_service}"]], } pacemaker::constraint::base { 'neutron-ovs-cleanup-to-netns-cleanup-constraint': diff --git a/puppet/swift-storage-puppet.yaml b/puppet/swift-storage-puppet.yaml index 82922a87..fb1756b8 100644 --- a/puppet/swift-storage-puppet.yaml +++ b/puppet/swift-storage-puppet.yaml @@ -194,7 +194,7 @@ outputs: str_replace: template: "IP HOST.localdomain HOST" params: - IP: {get_attr: [SwiftStorage, networks, ctlplane, 0]} + IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ObjectStorageHostnameResolveNetwork]}]} HOST: {get_attr: [SwiftStorage, name]} nova_server_resource: description: Heat resource handle for the swift storage server @@ -219,4 +219,3 @@ outputs: config_identifier: description: identifier which changes if the node configuration may need re-applying value: {get_attr: [SwiftStorageHieraDeploy, deploy_stdout]} - |