# == Class: heat # # Heat base package & configuration # # === Parameters # # [*package_ensure*] # (Optional) Ensure state for package. # Defaults to 'present' # # [*default_transport_url*] # (optional) A URL representing the messaging driver to use and its full # configuration. Transport URLs take the form: # transport://user:pass@host1:port[,hostN:portN]/virtual_host # Defaults to $facts['os_service_default'] # # [*control_exchange*] # (Optional) The default exchange under which topics are scoped. May be # overridden by an exchange name specified in the transport_url # option. # Defaults to $facts['os_service_default'] # # [*rpc_response_timeout*] # (Optional) Configure the timeout (in seconds) for rpc responses # Defaults to $facts['os_service_default']. # # [*executor_thread_pool_size*] # (Optional) Size of executor thread pool when executor is threading or eventlet. # Defaults to $facts['os_service_default']. # # [*rabbit_ha_queues*] # (optional) Use HA queues in RabbitMQ (x-ha-policy: all). # Defaults to $facts['os_service_default']. # # [*rabbit_heartbeat_timeout_threshold*] # (optional) Number of seconds after which the RabbitMQ broker is considered # down if the heartbeat keepalive fails. Any value >0 enables heartbeats. # Heartbeating helps to ensure the TCP connection to RabbitMQ isn't silently # closed, resulting in missed or lost messages from the queue. # (Requires kombu >= 3.0.7 and amqp >= 1.4.0) # Defaults to $facts['os_service_default']. # # [*rabbit_heartbeat_rate*] # (optional) How often during the rabbit_heartbeat_timeout_threshold period to # check the heartbeat on RabbitMQ connection. (i.e. rabbit_heartbeat_rate=2 # when rabbit_heartbeat_timeout_threshold=60, the heartbeat will be checked # every 30 seconds. # Defaults to $facts['os_service_default']. # # [*rabbit_heartbeat_in_pthread*] # (Optional) EXPERIMENTAL: Run the health check heartbeat thread # through a native python thread. By default if this # option isn't provided the health check heartbeat will # inherit the execution model from the parent process. By # example if the parent process have monkey patched the # stdlib by using eventlet/greenlet then the heartbeat # will be run through a green thread. # Defaults to $facts['os_service_default'] # # [*rabbit_quorum_queue*] # (Optional) Use quorum queues in RabbitMQ. # Defaults to $facts['os_service_default'] # # [*rabbit_transient_quorum_queue*] # (Optional) Use quorum queues for transients queues in RabbitMQ. # Defaults to $facts['os_service_default'] # # [*rabbit_quorum_delivery_limit*] # (Optional) Each time a message is rdelivered to a consumer, a counter is # incremented. Once the redelivery count exceeds the delivery limit # the message gets dropped or dead-lettered. # Defaults to $facts['os_service_default'] # # [*rabbit_quorum_max_memory_length*] # (Optional) Limit the number of messages in the quorum queue. # Defaults to $facts['os_service_default'] # # [*rabbit_quorum_max_memory_bytes*] # (Optional) Limit the number of memory bytes used by the quorum queue. # Defaults to $facts['os_service_default'] # # [*rabbit_use_ssl*] # (Optional) Connect over SSL for RabbitMQ. # Defaults to $facts['os_service_default']. # # [*kombu_ssl_ca_certs*] # (Optional) SSL certification authority file (valid only if SSL enabled). # Defaults to $facts['os_service_default']. # # [*kombu_ssl_certfile*] # (Optional) SSL cert file (valid only if SSL enabled). # Defaults to $facts['os_service_default']. # # [*kombu_ssl_keyfile*] # (Optional) SSL key file (valid only if SSL enabled). # Defaults to $facts['os_service_default']. # # [*kombu_ssl_version*] # (Optional) SSL version to use (valid only if SSL enabled). # Valid values are TLSv1, SSLv23 and SSLv3. SSLv2 may be # available on some distributions. # Defaults to $facts['os_service_default']. # # [*kombu_reconnect_delay*] # (Optional) How long to wait before reconnecting in response # to an AMQP consumer cancel notification. (floating point value) # Defaults to $facts['os_service_default'] # # [*kombu_failover_strategy*] # (Optional) Determines how the next RabbitMQ node is chosen in case the one # we are currently connected to becomes unavailable. Takes effect only if # more than one RabbitMQ node is provided in config. (string value) # Defaults to $facts['os_service_default'] # # [*kombu_compression*] # (optional) Possible values are: gzip, bz2. If not set compression will not # be used. This option may not be available in future versions. EXPERIMENTAL. # (string value) # Defaults to $facts['os_service_default'] # # [*amqp_durable_queues*] # (Optional) Use durable queues in amqp. # Defaults to $facts['os_service_default']. # # [*host*] # (Optional) Name of this node. This is typically a hostname, FQDN, or # IP address. # Defaults to $facts['os_service_default']. # # [*max_template_size*] # (Optional) Maximum raw byte size of any template. # Defaults to $facts['os_service_default'] # # [*max_json_body_size*] # (Optional) Maximum raw byte size of JSON request body. # Should be larger than max_template_size. # Defaults to $facts['os_service_default'] # # [*notification_transport_url*] # (optional) A URL representing the messaging driver to use for notifications # and its full configuration. Transport URLs take the form: # transport://user:pass@host1:port[,hostN:portN]/virtual_host # Defaults to $facts['os_service_default'] # # [*notification_driver*] # (Optional) Driver or drivers to handle sending notifications. # Value can be a string or a list. # Defaults to $facts['os_service_default'] # # [*notification_topics*] # (optional) AMQP topic used for OpenStack notifications # Defaults to facts['os_service_default'] # # [*keystone_ec2_uri*] # (optional) Authentication Endpoint URI for ec2 service. # Defaults to facts['os_service_default'] # # [*flavor*] # (optional) Specifies the Authentication method. # Set to 'standalone' to get Heat to work with a remote OpenStack # Tested versions include 0.9 and 2.2 # Defaults to $facts['os_service_default']. # # [*region_name*] # (Optional) Region name for services. This is the # default region name that heat talks to service endpoints on. # Defaults to $facts['os_service_default']. # # [*enable_stack_adopt*] # (Optional) Enable the stack-adopt feature. # Defaults to $facts['os_service_default']. # # [*enable_stack_abandon*] # (Optional) Enable the stack-abandon feature. # Defaults to $facts['os_service_default']. # # [*enable_proxy_headers_parsing*] # (Optional) Enable paste middleware to handle SSL requests through # HTTPProxyToWSGI middleware. # Defaults to $facts['os_service_default']. # # [*max_request_body_size*] # (Optional) Set max request body size # Defaults to $facts['os_service_default']. # # [*purge_config*] # (optional) Whether to set only the specified config options # in the heat config. # Defaults to false. # # [*auth_strategy*] # (optional) Type of authentication to use # Defaults to 'keystone' # # [*yaql_limit_iterators*] # (optional) The maximum number of elements YAQL collection expressions can # take for evaluation. # Defaults to $facts['os_service_default']. # # [*yaql_memory_quota*] # (optional) The maximum size of memory in bytes that YAQL expressions can # take for evaluation. # Defaults to $facts['os_service_default']. # class heat( $package_ensure = 'present', $keystone_ec2_uri = $facts['os_service_default'], $default_transport_url = $facts['os_service_default'], $rpc_response_timeout = $facts['os_service_default'], $control_exchange = $facts['os_service_default'], $executor_thread_pool_size = $facts['os_service_default'], $rabbit_ha_queues = $facts['os_service_default'], $rabbit_heartbeat_timeout_threshold = $facts['os_service_default'], $rabbit_heartbeat_rate = $facts['os_service_default'], $rabbit_heartbeat_in_pthread = $facts['os_service_default'], $rabbit_quorum_queue = $facts['os_service_default'], $rabbit_transient_quorum_queue = $facts['os_service_default'], $rabbit_quorum_delivery_limit = $facts['os_service_default'], $rabbit_quorum_max_memory_length = $facts['os_service_default'], $rabbit_quorum_max_memory_bytes = $facts['os_service_default'], $rabbit_use_ssl = $facts['os_service_default'], $kombu_ssl_ca_certs = $facts['os_service_default'], $kombu_ssl_certfile = $facts['os_service_default'], $kombu_ssl_keyfile = $facts['os_service_default'], $kombu_ssl_version = $facts['os_service_default'], $kombu_reconnect_delay = $facts['os_service_default'], $kombu_failover_strategy = $facts['os_service_default'], $kombu_compression = $facts['os_service_default'], $amqp_durable_queues = $facts['os_service_default'], $host = $facts['os_service_default'], $flavor = $facts['os_service_default'], $region_name = $facts['os_service_default'], $enable_stack_adopt = $facts['os_service_default'], $enable_stack_abandon = $facts['os_service_default'], $max_template_size = $facts['os_service_default'], $max_json_body_size = $facts['os_service_default'], $notification_transport_url = $facts['os_service_default'], $notification_driver = $facts['os_service_default'], $notification_topics = $facts['os_service_default'], $enable_proxy_headers_parsing = $facts['os_service_default'], $max_request_body_size = $facts['os_service_default'], Boolean $purge_config = false, $auth_strategy = 'keystone', $yaql_memory_quota = $facts['os_service_default'], $yaql_limit_iterators = $facts['os_service_default'], ) { include heat::db include heat::deps include heat::params if $auth_strategy == 'keystone' { include heat::keystone::authtoken } package { 'heat-common': ensure => $package_ensure, name => $::heat::params::common_package_name, tag => ['openstack', 'heat-package'], } resources { 'heat_config': purge => $purge_config, } oslo::messaging::rabbit { 'heat_config': kombu_ssl_version => $kombu_ssl_version, kombu_ssl_keyfile => $kombu_ssl_keyfile, kombu_ssl_certfile => $kombu_ssl_certfile, kombu_ssl_ca_certs => $kombu_ssl_ca_certs, kombu_reconnect_delay => $kombu_reconnect_delay, kombu_failover_strategy => $kombu_failover_strategy, kombu_compression => $kombu_compression, heartbeat_timeout_threshold => $rabbit_heartbeat_timeout_threshold, heartbeat_rate => $rabbit_heartbeat_rate, heartbeat_in_pthread => $rabbit_heartbeat_in_pthread, rabbit_use_ssl => $rabbit_use_ssl, amqp_durable_queues => $amqp_durable_queues, rabbit_ha_queues => $rabbit_ha_queues, rabbit_quorum_queue => $rabbit_quorum_queue, rabbit_transient_quorum_queue => $rabbit_transient_quorum_queue, rabbit_quorum_delivery_limit => $rabbit_quorum_delivery_limit, rabbit_quorum_max_memory_length => $rabbit_quorum_max_memory_length, rabbit_quorum_max_memory_bytes => $rabbit_quorum_max_memory_bytes, } heat_config { 'DEFAULT/host': value => $host; 'DEFAULT/max_template_size': value => $max_template_size; 'DEFAULT/max_json_body_size': value => $max_json_body_size; 'DEFAULT/region_name_for_services': value => $region_name; 'DEFAULT/enable_stack_abandon': value => $enable_stack_abandon; 'DEFAULT/enable_stack_adopt': value => $enable_stack_adopt; 'ec2authtoken/auth_uri': value => $keystone_ec2_uri; 'paste_deploy/flavor': value => $flavor; 'yaql/limit_iterators': value => $yaql_limit_iterators; 'yaql/memory_quota': value => $yaql_memory_quota; } oslo::messaging::notifications { 'heat_config': transport_url => $notification_transport_url, driver => $notification_driver, topics => $notification_topics, } oslo::messaging::default { 'heat_config': transport_url => $default_transport_url, rpc_response_timeout => $rpc_response_timeout, control_exchange => $control_exchange, executor_thread_pool_size => $executor_thread_pool_size, } oslo::middleware { 'heat_config': enable_proxy_headers_parsing => $enable_proxy_headers_parsing, max_request_body_size => $max_request_body_size, } }