From 7ed8ab86dd1754cd9954df8b59dddd3498259e76 Mon Sep 17 00:00:00 2001 From: Martin Magr Date: Tue, 12 Nov 2019 11:32:31 +0100 Subject: [PATCH] Split QDR environment from collectd This patch splits QDR configuration from shared environment files which enables flexibility to either run in edge mode only or in mesh mode. It also adds separate environment file for ceilometer and dynamic listener configuration for storage nodes for cases when storage nodes are not connected to internal network (which is a case for CephStorage nodes by default). Change-Id: I6b5af0b5afcdec75fe239385922dc84fbbb8288c --- .../metrics/ceilometer-write-qdr.yaml | 11 ++++++++ environments/metrics/collectd-write-qdr.yaml | 22 ++++++--------- environments/metrics/qdr-edge-only.yaml | 26 ++++++++++++++++++ .../metrics/qdr-form-controller-mesh.yaml | 27 +++++++++++++++++++ 4 files changed, 72 insertions(+), 14 deletions(-) create mode 100644 environments/metrics/ceilometer-write-qdr.yaml create mode 100644 environments/metrics/qdr-edge-only.yaml create mode 100644 environments/metrics/qdr-form-controller-mesh.yaml diff --git a/environments/metrics/ceilometer-write-qdr.yaml b/environments/metrics/ceilometer-write-qdr.yaml new file mode 100644 index 0000000000..c8558d5fe5 --- /dev/null +++ b/environments/metrics/ceilometer-write-qdr.yaml @@ -0,0 +1,11 @@ +## This environment serves the purpose of enabling ceilometer to send telemetry and notification data +## through QPID dispatch routers. + +resource_registry: + 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 + +parameter_defaults: + CeilometerQdrPublish: true diff --git a/environments/metrics/collectd-write-qdr.yaml b/environments/metrics/collectd-write-qdr.yaml index adecbc5fb3..b5f43145e2 100644 --- a/environments/metrics/collectd-write-qdr.yaml +++ b/environments/metrics/collectd-write-qdr.yaml @@ -1,15 +1,10 @@ -## This environment servers the purpose of enabling collectd to send metrics -## through mesh of QPID dispatch routers. Each overcloud node will have one local -## qdrouterd service running and collectd will send data to it. - +## This environment serves the purpose of enabling collectd to send telemetry and notification data +## through QPID dispatch routers. resource_registry: OS::TripleO::Services::Collectd: ../../deployment/metrics/collectd-container-puppet.yaml - OS::TripleO::Services::MetricsQdr: ../../deployment/metrics/qdr-container-puppet.yaml - parameter_defaults: - CeilometerQdrPublish: true CollectdConnectionType: amqp1 CollectdAmqpInstances: notify: @@ -19,10 +14,9 @@ parameter_defaults: telemetry: format: JSON presettle: true - #MetricsQdrConnectors: - # - host: IP1 - # port: 1234 - # role: inter-router - # - host: IP2 - # port: 5678 - # role: inter-router + BlockStorageExtraConfig: + tripleo::profile::base::metrics::collectd::amqp_host: "hiera(hiera('block_storage_hostname_resolve_network'))" + CephStorageExtraConfig: + tripleo::profile::base::metrics::collectd::amqp_host: "hiera(hiera('ceph_storage_hostname_resolve_network'))" + ObjectStorageExtraConfig: + tripleo::profile::base::metrics::collectd::amqp_host: "hiera(hiera('object_storage_hostname_resolve_network'))" diff --git a/environments/metrics/qdr-edge-only.yaml b/environments/metrics/qdr-edge-only.yaml new file mode 100644 index 0000000000..d87398dac8 --- /dev/null +++ b/environments/metrics/qdr-edge-only.yaml @@ -0,0 +1,26 @@ +## This environment serves the purpose of enabling deployment of QPID dispatch routers (aka QDR). +## Each overcloud node will have one local qdrouterd service running and operating in edge mode, +## eg. sending received data straight to defined MetricsQdrConnectors + + +resource_registry: + OS::TripleO::Services::MetricsQdr: ../../deployment/metrics/qdr-container-puppet.yaml + +parameter_defaults: + ExtraConfig: + tripleo::profile::base::metrics::qdr::interior_mesh_nodes: [] + tripleo::profile::base::metrics::qdr::router_mode: edge + BlockStorageExtraConfig: + tripleo::profile::base::metrics::qdr::listener_addr: "hiera(hiera('block_storage_hostname_resolve_network'))" + CephStorageExtraConfig: + tripleo::profile::base::metrics::qdr::listener_addr: "hiera(hiera('ceph_storage_hostname_resolve_network'))" + ObjectStorageExtraConfig: + tripleo::profile::base::metrics::qdr::listener_addr: "hiera(hiera('object_storage_hostname_resolve_network'))" + #MetricsQdrConnectors: + # - host: qdr-normal-sa-telemetry.apps.remote.tld + # port: 443 + # role: inter-router + # sslProfile: sslProfile + # verifyHostname: false + #MetricsQdrSSLProfiles: + # - name: sslProfile diff --git a/environments/metrics/qdr-form-controller-mesh.yaml b/environments/metrics/qdr-form-controller-mesh.yaml new file mode 100644 index 0000000000..a48871ae53 --- /dev/null +++ b/environments/metrics/qdr-form-controller-mesh.yaml @@ -0,0 +1,27 @@ +## This environment serves the purpose of enabling deployment of QPID dispatch routers (aka QDR). +## Each overcloud node will have one local qdrouterd service running and forming a mesh topology, +## eg. QDRs running on controllers will operate in interior router mode, with connections to defined MetricsQdrConnectors +## and QDRs running on other node types will connect in edge mode to the interior routers running on the controllers. + + +resource_registry: + OS::TripleO::Services::MetricsQdr: ../../deployment/metrics/qdr-container-puppet.yaml + + +parameter_defaults: + ControllerExtraConfig: + tripleo::profile::base::metrics::qdr::router_mode: interior + BlockStorageExtraConfig: + tripleo::profile::base::metrics::qdr::listener_addr: "hiera(hiera('block_storage_hostname_resolve_network'))" + CephStorageExtraConfig: + tripleo::profile::base::metrics::qdr::listener_addr: "hiera(hiera('ceph_storage_hostname_resolve_network'))" + ObjectStorageExtraConfig: + tripleo::profile::base::metrics::qdr::listener_addr: "hiera(hiera('object_storage_hostname_resolve_network'))" + #MetricsQdrConnectors: + # - host: qdr-normal-sa-telemetry.apps.remote.tld + # port: 443 + # role: inter-router + # sslProfile: sslProfile + # verifyHostname: false + #MetricsQdrSSLProfiles: + # - name: sslProfile