tripleo-heat-templates/puppet/services/monitoring/sensu-base.yaml
Martin Mágr 3fd76806e1 Allow Sensu to connect to RabbitMQ cluster
This patch adds possibility to connect sensu-clients to RabbitMQ cluster
instead of a single RabbitMQ node.

Closes-Bug: #1714910
Change-Id: I291a9ddb888aa2291181715c198f7ba5ca1a6ad4
2017-09-27 19:08:46 +00:00

118 lines
3.9 KiB
YAML

heat_template_version: pike
description: Sensu base service
parameters:
ServiceData:
default: {}
description: Dictionary packing service data
type: json
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
type: json
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
DefaultPasswords:
default: {}
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
MonitoringRabbitCluster:
description: RabbitMQ cluster configuration Sensu has to connect to.
type: json
default: []
MonitoringRabbitHost:
description: RabbitMQ host Sensu has to connect to.
type: string
default: ''
MonitoringRabbitPort:
default: 5672
description: Set RabbitMQ subscriber port, change this if using SSL.
type: number
MonitoringRabbitUseSSL:
default: false
description: >
RabbitMQ client subscriber parameter to specify an SSL connection
to the RabbitMQ host. Set MonitoringRabbitUseSSL to true without
specifying a private key or cert chain to use SSL transport,
but not cert auth.
type: boolean
MonitoringRabbitSSLPrivateKey:
default: ''
description: Private key to be used by Sensu to connect to RabbitMQ host.
type: string
MonitoringRabbitSSLCertChain:
default: ''
description: >
Private SSL cert chain to be used by Sensu to connect to RabbitMQ host.
type: string
MonitoringRabbitPassword:
description: The RabbitMQ password used for monitoring purposes.
type: string
hidden: true
default: sensu
MonitoringRabbitUserName:
description: The RabbitMQ username used for monitoring purposes.
type: string
default: sensu
MonitoringRabbitVhost:
description: The RabbitMQ vhost used for monitoring purposes.
type: string
default: '/sensu'
SensuRedactVariables:
description: Variables from Sensu configuration, which have to be redacted.
type: comma_delimited_list
default:
- password
- passwd
- pass
- api_key
- api_token
- access_key
- secret_key
- private_key
- secret
conditions:
not_cluster_connection:
equals: [{get_param: MonitoringRabbitCluster}, []]
outputs:
role_data:
description: Role data for the Sensu role.
value:
service_name: sensu_base
config_settings:
map_merge:
- sensu::enterprise: false
sensu::enterprise_dashboard: false
sensu::install_repo: false
sensu::manage_user: false
sensu::redact: {get_param: SensuRedactVariables}
sensu::sensu_plugin_provider: 'yum'
sensu::sensu_plugin_name: 'rubygem-sensu-plugin'
sensu::version: 'present'
- if:
- not_cluster_connection
- sensu::rabbitmq_host: {get_param: MonitoringRabbitHost}
sensu::rabbitmq_port: {get_param: MonitoringRabbitPort}
sensu::rabbitmq_user: {get_param: MonitoringRabbitUserName}
sensu::rabbitmq_password: {get_param: MonitoringRabbitPassword}
sensu::rabbitmq_vhost: {get_param: MonitoringRabbitVhost}
sensu::rabbitmq_ssl: {get_param: MonitoringRabbitUseSSL}
sensu::rabbitmq_ssl_private_key: {get_param: MonitoringRabbitSSLPrivateKey}
sensu::rabbitmq_ssl_cert_chain: {get_param: MonitoringRabbitSSLCertChain}
- sensu::rabbitmq_cluster: {get_param: MonitoringRabbitCluster}