diff --git a/ci/environments/scenario001-multinode-containers.yaml b/ci/environments/scenario001-multinode-containers.yaml index cbc235202b..790fc7267b 100644 --- a/ci/environments/scenario001-multinode-containers.yaml +++ b/ci/environments/scenario001-multinode-containers.yaml @@ -5,6 +5,10 @@ resource_registry: OS::TripleO::Services::CephMon: ../../deployment/ceph-ansible/ceph-mon.yaml OS::TripleO::Services::CephOSD: ../../deployment/ceph-ansible/ceph-osd.yaml OS::TripleO::Services::CephClient: ../../deployment/ceph-ansible/ceph-client.yaml + OS::TripleO::Services::CeilometerAgentCentral: ../../deployment/ceilometer/ceilometer-agent-central-container-puppet.yaml + OS::TripleO::Services::CeilometerAgentNotification: ../../deployment/ceilometer/ceilometer-agent-notification-container-puppet.yaml + OS::TripleO::Services::CeilometerAgentIpmi: ../../deployment/ceilometer/ceilometer-agent-ipmi-container-puppet.yaml + OS::TripleO::Services::ComputeCeilometerAgent: ../../deployment/ceilometer/ceilometer-agent-compute-container-puppet.yaml OS::TripleO::Services::Collectd: ../../deployment/metrics/collectd-container-puppet.yaml OS::TripleO::Services::MetricsQdr: ../../deployment/metrics/qdr-container-puppet.yaml OS::TripleO::Services::OsloMessagingRpc: ../../deployment/rabbitmq/rabbitmq-messaging-rpc-pacemaker-puppet.yaml @@ -101,7 +105,8 @@ parameter_defaults: # telemetry.alarm_granularity must in sync with the archive policy, 60s # too. ceilometer::agent::polling::polling_interval: 15 - tripleo::profile::base::metrics::qdr::router_mode: interior + # NOTE(mmagr): uncomment when QDR mesh will actually work (followup on review.opendev.org/702754) + #tripleo::profile::base::metrics::qdr::router_mode: interior ManagePolling: true ManagePipeline: true CeilometerEnableGnocchi: true @@ -109,6 +114,8 @@ parameter_defaults: - gnocchi://?archive_policy=ceilometer-high-rate EventPipelinePublishers: - gnocchi://?archive_policy=ceilometer-high-rate + CeilometerQdrPublishEvents: true + ManageEventPipeline: true Debug: true DockerPuppetDebug: True diff --git a/ci/environments/scenario001-standalone.yaml b/ci/environments/scenario001-standalone.yaml index 4de9eb6753..502fe579a4 100644 --- a/ci/environments/scenario001-standalone.yaml +++ b/ci/environments/scenario001-standalone.yaml @@ -52,7 +52,8 @@ parameter_defaults: - gnocchi://?archive_policy=ceilometer-high-rate EventPipelinePublishers: - gnocchi://?archive_policy=ceilometer-high-rate - + CeilometerQdrPublishEvents: true + ManageEventPipeline: true Debug: true # fetch dir needed for standalone diff --git a/deployment/ceilometer/ceilometer-agent-notification-container-puppet.yaml b/deployment/ceilometer/ceilometer-agent-notification-container-puppet.yaml index d68599b533..2a19c7577b 100644 --- a/deployment/ceilometer/ceilometer-agent-notification-container-puppet.yaml +++ b/deployment/ceilometer/ceilometer-agent-notification-container-puppet.yaml @@ -44,9 +44,58 @@ parameters: MonitoringSubscriptionCeilometerNotification: default: 'overcloud-ceilometer-agent-notification' type: string + 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: ceilometer/event.sample + description: Configuration for notifier publisher for events. + type: json + CeilometerQdrMetricsConfig: + default: + driver: amqp + topic: ceilometer/metering.sample + description: Configuration for notifier publisher for metrics. + type: json + ManageEventPipeline: + default: true + description: Whether to manage event_pipeline.yaml. + type: boolean + EventPipelinePublishers: + default: [] + 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: - ContainersCommon: type: ../containers-common.yaml @@ -60,6 +109,12 @@ resources: 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 Agent Notification role. @@ -67,7 +122,26 @@ outputs: service_name: ceilometer_agent_notification monitoring_subscription: {get_param: MonitoringSubscriptionCeilometerNotification} config_settings: - get_attr: [CeilometerServiceBase, role_data, 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, MetricsQdrNetwork]} + 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] diff --git a/deployment/ceilometer/ceilometer-base-container-puppet.yaml b/deployment/ceilometer/ceilometer-base-container-puppet.yaml index 00d0ebc52f..aab73bd611 100644 --- a/deployment/ceilometer/ceilometer-base-container-puppet.yaml +++ b/deployment/ceilometer/ceilometer-base-container-puppet.yaml @@ -46,40 +46,6 @@ parameters: default: '' description: Address prefix for Notification addresses type: string - 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 - ManageEventPipeline: - default: true - description: Whether to manage event_pipeline.yaml. - type: boolean - EventPipelinePublishers: - default: [] - 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 - CeilometerQdrPublish: - default: false - description: Whether to send telemetry data to Qdr. - type: boolean ManagePolling: default: false description: Whether to manage polling.yaml. @@ -151,8 +117,6 @@ outputs: ceilometer::keystone::authtoken::region_name: {get_param: KeystoneRegion} ceilometer::agent::auth::auth_password: {get_param: CeilometerPassword} ceilometer::agent::auth::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix] } - ceilometer::agent::notification::manage_event_pipeline: {get_param: ManageEventPipeline} - ceilometer::agent::notification::manage_pipeline: {get_param: ManagePipeline} ceilometer::agent::polling::manage_polling: {get_param: ManagePolling} ceilometer::agent::auth::auth_region: {get_param: KeystoneRegion} ceilometer::agent::auth::auth_tenant_name: 'service' @@ -166,18 +130,6 @@ outputs: ceilometer::snmpd_readonly_username: {get_param: SnmpdReadonlyUserName} ceilometer::snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword} ceilometer::host: "%{hiera('fqdn_canonical')}" - tripleo::profile::base::ceilometer::event_pipeline_publishers: {get_param: EventPipelinePublishers} - tripleo::profile::base::ceilometer::pipeline_publishers: {get_param: PipelinePublishers} - - if: #Ceilometer connection to qdr - - ceilometer_qdr_publish - - tripleo::profile::base::ceilometer::notifier_host_addr: - str_replace: - template: - "%{hiera('$NETWORK')}" - params: - $NETWORK: {get_param: [ServiceNetMap, MetricsQdrNetwork]} - tripleo::profile::base::ceilometer::notifier_host_port: {get_param: MetricsQdrPort} - - {} service_config_settings: keystone: # Enable default notification queue