aboutsummaryrefslogtreecommitdiffstats
path: root/puppet/controller-puppet.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'puppet/controller-puppet.yaml')
-rw-r--r--puppet/controller-puppet.yaml153
1 files changed, 114 insertions, 39 deletions
diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml
index 3aeb40ec..89b35c31 100644
--- a/puppet/controller-puppet.yaml
+++ b/puppet/controller-puppet.yaml
@@ -28,6 +28,10 @@ parameters:
description: The password for the ceilometer service and db account.
type: string
hidden: true
+ CinderEnableNfsBackend:
+ default: false
+ description: Whether to enable or not the NFS backend for Cinder
+ type: boolean
CinderEnableIscsiBackend:
default: true
description: Whether to enable or not the Iscsi backend for Cinder
@@ -44,6 +48,18 @@ parameters:
default: 5000
description: The size of the loopback file used by the cinder LVM driver.
type: number
+ CinderNfsMountOptions:
+ default: ''
+ description: >
+ Mount options for NFS mounts used by Cinder NFS backend. Effective
+ when CinderEnableNfsBackend is true.
+ type: string
+ CinderNfsServers:
+ default: ''
+ description: >
+ NFS servers used by Cinder NFS backend. Effective when
+ CinderEnableNfsBackend is true.
+ type: comma_delimited_list
CinderPassword:
default: unset
description: The password for the cinder service and db account, used by cinder-api.
@@ -61,8 +77,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 +106,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,10 +241,18 @@ 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
default: '' # Has to be here because of the ignored empty value bug
+ NeutronExternalNetworkBridge:
+ description: Name of bridge used for external network traffic.
+ type: string
+ default: 'br-ex'
NeutronBridgeMappings:
description: >
The OVS logical->physical bridge mappings to use. See the Neutron
@@ -284,6 +275,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
@@ -361,11 +356,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: ''
@@ -607,7 +618,17 @@ resources:
admin_token: {get_param: AdminToken}
neutron_public_interface_ip: {get_param: NeutronPublicInterfaceIP}
debug: {get_param: Debug}
+ cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend}
+ cinder_nfs_mount_options: {get_param: CinderNfsMountOptions}
+ cinder_nfs_servers:
+ str_replace:
+ template: "['SERVERS']"
+ params:
+ SERVERS:
+ list_join:
+ - "','"
+ - {get_param: CinderNfsServers}
cinder_lvm_loop_device_size: {get_param: CinderLVMLoopDeviceSize}
cinder_password: {get_param: CinderPassword}
cinder_enable_iscsi_backend: {get_param: CinderEnableIscsiBackend}
@@ -670,11 +691,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:
@@ -688,6 +716,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']"
@@ -697,12 +726,29 @@ resources:
- "','"
- {get_param: NeutronNetworkVLANRanges}
neutron_bridge_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']"
+ 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:
@@ -758,6 +804,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"]'
@@ -814,6 +861,8 @@ resources:
hiera:
hierarchy:
- heat_config_%{::deploy_config_name}
+ - controller_extraconfig
+ - extraconfig
- controller
- object
- swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig
@@ -824,7 +873,12 @@ resources:
- vip_data # provided by vip-config
- '"%{::osfamily}"'
- 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:
@@ -862,7 +916,10 @@ resources:
tripleo::ringbuilder::build_ring: True
# Cinder
+ cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
cinder_enable_rbd_backend: {get_input: cinder_enable_rbd_backend}
+ cinder_nfs_mount_options: {get_input: cinder_nfs_mount_options}
+ cinder_nfs_servers: {get_input: cinder_nfs_servers}
cinder_lvm_loop_device_size: {get_input: cinder_lvm_loop_device_size}
cinder_iscsi_helper: {get_input: cinder_iscsi_helper}
cinder_iscsi_ip_address: {get_input: cinder_iscsi_network}
@@ -914,6 +971,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}
@@ -935,12 +993,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}
@@ -955,6 +1015,7 @@ resources:
neutron::server::auth_uri: {get_input: keystone_auth_uri}
neutron::server::identity_uri: {get_input: keystone_identity_uri}
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::local_ip: {get_input: neutron_local_ip}
neutron_flat_networks: {get_input: neutron_flat_networks}
@@ -965,7 +1026,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}
@@ -1038,7 +1102,14 @@ resources:
public_virtual_interface: {get_input: public_virtual_interface}
tripleo::loadbalancer::control_virtual_interface: {get_input: control_virtual_interface}
tripleo::loadbalancer::public_virtual_interface: {get_input: public_virtual_interface}
- enable_package_install: {get_input: enable_package_install}
+ tripleo::packages::enable_install: {get_input: enable_package_install}
+
+ # Hook for site-specific additional pre-deployment config, e.g extra hieradata
+ ControllerExtraConfigPre:
+ depends_on: ControllerDeployment
+ type: OS::TripleO::ControllerExtraConfigPre
+ properties:
+ server: {get_resource: Controller}
UpdateConfig:
type: OS::TripleO::Tasks::PackageUpdate
@@ -1088,7 +1159,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:
@@ -1111,4 +1182,8 @@ outputs:
IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
config_identifier:
description: identifier which changes if the controller configuration may need re-applying
- value: {get_attr: [ControllerDeployment, deploy_stdout]}
+ value:
+ list_join:
+ - ','
+ - - {get_attr: [ControllerDeployment, deploy_stdout]}
+ - {get_attr: [ControllerExtraConfigPre, deploy_stdout]}