tripleo-heat-templates/puppet/services/ceilometer-agent-notificati...

169 lines
6.9 KiB
YAML

heat_template_version: queens
description: >
OpenStack Ceilometer Notification Agent service configured with Puppet
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
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
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
MonitoringSubscriptionCeilometerNotification:
default: 'overcloud-ceilometer-agent-notification'
type: string
CeilometerAgentNotificationLoggingSource:
type: json
default:
tag: openstack.ceilometer.agent.notification
path: /var/log/ceilometer/agent-notification.log
MetricsQdrPort:
default: '5666'
description: Service name or port number on which the qdrouterd will accept
connections. This argument must be string, even if the numeric
form is used.
type: string
CeilometerQdrPublishEvents:
default: false
description: Whether to send events to MetricsQdr service.
type: boolean
CeilometerQdrPublishMetrics:
default: false
description: Whether to send telemetry data to MetricsQdr service.
type: boolean
CeilometerQdrEventsConfig:
default:
driver: amqp
topic: event
description: Configuration for notifier publisher for events.
type: json
CeilometerQdrMetricsConfig:
default:
driver: amqp
topic: metering
description: Configuration for notifier publisher for metrics.
type: json
ManageEventPipeline:
default: true
description: Whether to manage event_pipeline.yaml.
type: boolean
EventPipelinePublishers:
default: ['gnocchi://?filter_project=service&archive_policy=low', 'panko://']
description: >
A list of publishers to put in event_pipeline.yaml. When the
collector is used, override this with notifier:// publisher.
If zaqar is enabled, you can also publish to a zaqar queue
by including "zaqar://?queue=queue_name" in this list.
Set ManageEventPipeline to true for override to take effect.
type: comma_delimited_list
ManagePipeline:
default: false
description: Whether to manage pipeline.yaml.
type: boolean
PipelinePublishers:
default: []
description: >
A list of publishers to put in pipeline.yaml. When the
collector is used, override this with notifier:// publisher.
Set ManagePipeline to true for override to take effect.
type: comma_delimited_list
resources:
CeilometerServiceBase:
type: ./ceilometer-base.yaml
properties:
ServiceData: {get_param: ServiceData}
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
EndpointMap: {get_param: EndpointMap}
RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters}
conditions:
ceilometer_qdr_publish:
or:
- {equals: [{get_param: CeilometerQdrPublishEvents}, true]}
- {equals: [{get_param: CeilometerQdrPublishMetrics}, true]}
outputs:
role_data:
description: Role data for the Ceilometer Notification Agent role.
value:
service_name: ceilometer_agent_notification
monitoring_subscription: {get_param: MonitoringSubscriptionCeilometerNotification}
config_settings:
map_merge:
- get_attr: [CeilometerServiceBase, role_data, config_settings]
- ceilometer::agent::notification::manage_event_pipeline: {get_param: ManageEventPipeline}
ceilometer::agent::notification::manage_pipeline: {get_param: ManagePipeline}
tripleo::profile::base::ceilometer::agent::notification::notifier_enabled: {get_param: CeilometerQdrPublishMetrics}
tripleo::profile::base::ceilometer::agent::notification::notifier_events_enabled: {get_param: CeilometerQdrPublishEvents}
tripleo::profile::base::ceilometer::agent::notification::pipeline_publishers: {get_param: PipelinePublishers}
tripleo::profile::base::ceilometer::agent::notification::event_pipeline_publishers: {get_param: EventPipelinePublishers}
tripleo::profile::base::ceilometer::agent::notification::notifier_params: {get_param: CeilometerQdrMetricsConfig}
tripleo::profile::base::ceilometer::agent::notification::notifier_event_params: {get_param: CeilometerQdrEventsConfig}
- if: #Ceilometer connection to qdr
- ceilometer_qdr_publish
- tripleo::profile::base::ceilometer::agent::notification::notifier_host_addr:
str_replace:
template:
"%{hiera('$NETWORK')}"
params:
$NETWORK:
get_param:
- ServiceNetMap
- str_replace:
template: "ROLENAMEMetricsQdrNetwork"
params:
ROLENAME: {get_param: RoleName}
tripleo::profile::base::ceilometer::agent::notification::notifier_host_port: {get_param: MetricsQdrPort}
- {}
service_config_settings:
map_merge:
- get_attr: [CeilometerServiceBase, role_data, service_config_settings]
- fluentd:
tripleo_fluentd_groups_ceilometer_agent_notification:
- ceilometer
tripleo_fluentd_sources_ceilometer_agent_notification:
- {get_param: CeilometerAgentNotificationLoggingSource}
step_config: |
include ::tripleo::profile::base::ceilometer::agent::notification
upgrade_tasks:
- name: Check if ceilometer_agent_notification is deployed
command: systemctl is-enabled openstack-ceilometer-notification
tags: common
ignore_errors: True
register: ceilometer_agent_notification_enabled
- name: "PreUpgrade step0,validation: Check service openstack-ceilometer-notification is running"
shell: /usr/bin/systemctl show 'openstack-ceilometer-notification' --property ActiveState | grep '\bactive\b'
when:
- step|int == 0
- ceilometer_agent_notification_enabled.rc == 0
tags: validation
- name: Stop ceilometer_agent_notification service
when:
- step|int == 1
- ceilometer_agent_notification_enabled.rc == 0
service: name=openstack-ceilometer-notification state=stopped