Parameter to enable/disable controller swift store
[apex-tripleo-heat-templates.git] / puppet / controller-puppet.yaml
index 4385bbc..b8aabe6 100644 (file)
@@ -63,6 +63,23 @@ parameters:
     default: ''
     description: Set to True to enable debugging on all services.
     type: string
+  EnableGalera:
+    default: true
+    description: Whether to use Galera instead of regular MariaDB.
+    type: boolean
+  EnablePacemaker:
+    default: true
+    description: If enabled services will be monitored by Pacemaker; it
+      will manage VIPs as well, in place of Keepalived.
+    type: boolean
+  EnableCephStorage:
+    default: false
+    description: Whether to deploy Ceph Storage (OSD) on the Controller
+    type: boolean
+  EnableSwiftStorage:
+    default: true
+    description: Whether to enable Swift Storage on the Controller
+    type: boolean
   ExtraConfig:
     default: {}
     description: |
@@ -242,6 +259,10 @@ parameters:
     type: string
     default: ''
     description: If set, flat networks to configure in neutron plugins.
+  NeutronL3HA:
+    default: 'False'
+    description: Whether to enable l3-agent HA
+    type: string
   NeutronNetworkType:
     default: 'gre'
     description: The tenant network type for Neutron, either gre or vxlan.
@@ -298,6 +319,9 @@ parameters:
   NtpServer:
     type: string
     default: ''
+  PcsdPassword:
+    type: string
+    description: The password for the 'pcsd' user.
   PublicVirtualInterface:
     default: 'br-ex'
     description: >
@@ -503,6 +527,10 @@ resources:
             - - 'http://'
               - {get_param: VirtualIP}
               - ':5000/v2.0/'
+        enable_galera: {get_param: EnableGalera}
+        enable_pacemaker: {get_param: EnablePacemaker}
+        enable_ceph_storage: {get_param: EnableCephStorage}
+        enable_swift_storage: {get_param: EnableSwiftStorage}
         mysql_innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize}
         mysql_root_password: {get_param: MysqlRootPassword}
         mysql_cluster_name:
@@ -516,6 +544,7 @@ resources:
         neutron_router_distributed: {get_param: NeutronDVR}
         neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
         neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
+        neutron_l3_ha: {get_param: NeutronL3HA}
         neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
         neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
         neutron_public_interface: {get_param: NeutronPublicInterface}
@@ -546,12 +575,6 @@ resources:
               - ':35357/v2.0'
         ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
         ceilometer_password: {get_param: CeilometerPassword}
-        ceilometer_dsn:
-          list_join:
-            - ''
-            - - 'mysql://ceilometer:unset@'
-              - {get_param: VirtualIP}
-              - '/ceilometer'
         snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
         snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
         nova_password: {get_param: NovaPassword}
@@ -561,6 +584,12 @@ resources:
             - - 'mysql://nova:unset@'
               - {get_param: VirtualIP}
               - '/nova'
+        pcsd_password: {get_param: PcsdPassword}
+        rabbit_hosts:
+          str_replace:
+            template: '["host"]'
+            params:
+              host: {get_param: VirtualIP}
         rabbit_username: {get_param: RabbitUserName}
         rabbit_password: {get_param: RabbitPassword}
         rabbit_cookie: {get_param: RabbitCookie}
@@ -594,10 +623,11 @@ resources:
             - controller
             - object
             - swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig
-            - rabbit # provided by allNodesConfig
             - ceph_cluster # provided by CephClusterConfig
             - ceph
             - bootstrap_node # provided by BootstrapNodeConfig
+            - all_nodes # provided by allNodesConfig
+            - '"%{::osfamily}"'
             - common
           datafiles:
             common:
@@ -609,9 +639,13 @@ resources:
             controller:
               raw_data: {get_file: hieradata/controller.yaml}
               mapped_data: # data supplied directly to this deployment configuration, etc
-                debug: {get_input: debug}
                 bootstack_nodeid: {get_input: bootstack_nodeid}
                 controller_host: {get_input: controller_host} #local-ipv4
+
+                # Pacemaker
+                enable_pacemaker: {get_input: enable_pacemaker}
+                hacluster_pwd: {get_input: pcsd_password}
+
                 # Swift
                 swift::proxy::proxy_local_net_ip: {get_input: controller_host}
                 swift::proxy::authtoken::auth_uri: {get_input: keystone_auth_uri}
@@ -627,6 +661,7 @@ resources:
                 # NOTE(dprince): build_ring support is currently not wired in.
                 # See: https://review.openstack.org/#/c/109225/
                 tripleo::ringbuilder::build_ring: True
+
                 # Cinder
                 cinder_enable_rbd_backend: {get_input: cinder_enable_rbd_backend}
                 cinder_lvm_loop_device_size: {get_input: cinder_lvm_loop_device_size}
@@ -637,10 +672,14 @@ resources:
                 cinder::api::auth_uri: {get_input: keystone_auth_uri}
                 cinder::api::identity_uri: {get_input: keystone_identity_uri}
                 cinder::api::bind_host: {get_input: controller_host}
+                cinder::rabbit_hosts: {get_input: rabbit_hosts}
                 cinder::rabbit_userid: {get_input: rabbit_username}
                 cinder::rabbit_password: {get_input: rabbit_password}
+                cinder::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
+                cinder::rabbit_port: {get_input: rabbit_client_port}
+                cinder::debug: {get_input: debug}
                 cinder_enable_iscsi_backend: {get_input: cinder_enable_iscsi_backend}
-                #cinder::debug: {get_input: debug}
+
                 # Glance
                 glance::api::bind_port: {get_input: glance_port}
                 glance::api::bind_host: {get_input: controller_host}
@@ -648,6 +687,7 @@ resources:
                 glance::api::identity_uri: {get_input: keystone_identity_uri}
                 glance::api::registry_host: {get_input: controller_host}
                 glance::api::keystone_password: {get_input: glance_password}
+                glance::api::debug: {get_input: debug}
                 # used to construct glance_api_servers
                 glance_port: {get_input: glance_port}
                 glance_protocol: {get_input: glance_protocol}
@@ -660,18 +700,22 @@ resources:
                 glance::registry::bind_host: {get_input: controller_host}
                 glance::registry::auth_uri: {get_input: keystone_auth_uri}
                 glance::registry::identity_uri: {get_input: keystone_identity_uri}
+                glance::registry::debug: {get_input: debug}
                 glance::backend::swift::swift_store_auth_address: {get_input: glance_swift_store_auth_address}
                 glance::backend::swift::swift_store_user: service:glance
                 glance::backend::swift::swift_store_key: {get_input: glance_password}
+
                 # Heat
                 heat_stack_domain_admin_password: {get_input: heat_stack_domain_admin_password}
                 heat::engine::heat_watch_server_url: {get_input: heat.watch_server_url}
                 heat::engine::heat_metadata_server_url: {get_input: heat.metadata_server_url}
                 heat::engine::heat_waitcondition_server_url: {get_input: heat.waitcondition_server_url}
                 heat::engine::auth_encryption_key: {get_input: heat_auth_encryption_key}
+                heat::rabbit_hosts: {get_input: rabbit_hosts}
                 heat::rabbit_userid: {get_input: rabbit_username}
                 heat::rabbit_password: {get_input: rabbit_password}
-                heat::rabbit_host: {get_input: controller_virtual_ip}
+                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::identity_uri: {get_input: keystone_identity_uri}
                 heat::keystone_password: {get_input: heat_password}
@@ -680,6 +724,7 @@ resources:
                 heat::api_cfn::bind_host: {get_input: controller_host}
                 heat::database_connection: {get_input: heat_dsn}
                 heat::instance_user: heat-admin
+                heat::debug: {get_input: debug}
 
                 # Keystone
                 keystone::admin_token: {get_input: admin_token}
@@ -691,17 +736,26 @@ resources:
                 keystone::database_connection: {get_input: keystone_dsn}
                 keystone::public_bind_host: {get_input: controller_host}
                 keystone::admin_bind_host: {get_input: controller_host}
-                #keystone::debug: {get_input: debug}
+                keystone::debug: {get_input: debug}
+                # MongoDB
+                mongodb::server::bind_ip: {get_input: controller_host}
                 # 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::server::root_password: {get_input: mysql_root_password}
                 mysql_cluster_name: {get_input: mysql_cluster_name}
+
                 # Neutron
                 neutron::bind_host: {get_input: controller_host}
+                neutron::rabbit_hosts: {get_input: rabbit_hosts}
                 neutron::rabbit_password: {get_input: rabbit_password}
                 neutron::rabbit_user: {get_input: rabbit_user}
-                #neutron::debug: {get_input: debug}
+                neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
+                neutron::rabbit_port: {get_input: rabbit_client_port}
+                neutron::debug: {get_input: debug}
                 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}
@@ -714,6 +768,7 @@ resources:
                 neutron_router_distributed: {get_input: neutron_router_distributed}
                 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
                 neutron_allow_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
+                neutron::server::l3_ha: {get_input: neutron_l3_ha}
                 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
                 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
                 neutron_public_interface: {get_input: neutron_public_interface}
@@ -726,22 +781,30 @@ resources:
                 neutron::agents::metadata::auth_password: {get_input: neutron_password}
                 neutron_dnsmasq_options: {get_input: neutron_dnsmasq_options}
                 neutron_dsn: {get_input: neutron_dsn}
+
                 # Ceilometer
                 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
+                ceilometer::rabbit_hosts: {get_input: rabbit_hosts}
                 ceilometer::rabbit_userid: {get_input: rabbit_username}
                 ceilometer::rabbit_password: {get_input: rabbit_password}
-                ceilometer::rabbit_host: {get_input: controller_virtual_ip}
+                ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
+                ceilometer::rabbit_port: {get_input: rabbit_client_port}
+                ceilometer::debug: {get_input: debug}
                 ceilometer::api::host: {get_input: controller_host}
                 ceilometer::api::keystone_password: {get_input: ceilometer_password}
                 ceilometer::api::keystone_auth_uri: {get_input: keystone_auth_uri}
                 ceilometer::api::keystone_identity_uri: {get_input: keystone_identity_uri}
-                ceilometer::db::database_connection: {get_input: ceilometer_dsn}
                 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
                 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
                 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
+
                 # Nova
+                nova::rabbit_hosts: {get_input: rabbit_hosts}
                 nova::rabbit_userid: {get_input: rabbit_username}
                 nova::rabbit_password: {get_input: rabbit_password}
+                nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
+                nova::rabbit_port: {get_input: rabbit_client_port}
+                nova::debug: {get_input: debug}
                 nova::api::auth_uri: {get_input: keystone_auth_uri}
                 nova::api::identity_uri: {get_input: keystone_identity_uri}
                 nova::api::api_bind_address: {get_input: controller_host}
@@ -754,19 +817,18 @@ resources:
                 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
 
                 # Rabbit
-                rabbit_username: {get_input: rabbit_username}
-                rabbit_password: {get_input: rabbit_password}
-                rabbit_client_use_ssl: {get_input: rabbit_client_use_ssl}
-                rabbit_client_port: {get_input: rabbit_client_port}
+                rabbitmq::node_ip_address: {get_input: controller_host}
                 rabbitmq::erlang_cookie: {get_input: rabbit_cookie}
+                # Redis
+                redis::bind: {get_input: controller_host}
                 # Misc
+                memcached::listen_ip: {get_input: controller_host}
                 neutron_public_interface_ip: {get_input: neutron_public_interface_ip}
                 ntp::servers: {get_input: ntp_servers}
                 control_virtual_interface: {get_input: control_virtual_interface}
                 controller_virtual_ip: {get_input: controller_virtual_ip}
                 public_virtual_interface: {get_input: public_virtual_interface}
                 public_virtual_ip: {get_input: public_virtual_ip}
-                tripleo::loadbalancer::controller_host: {get_input: controller_host}
                 tripleo::loadbalancer::control_virtual_interface: {get_input: control_virtual_interface}
                 tripleo::loadbalancer::controller_virtual_ip: {get_input: controller_virtual_ip}
                 tripleo::loadbalancer::public_virtual_interface: {get_input: public_virtual_interface}