From 6892474ace1d02260f074c48eabf409cb16fdfb9 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Fri, 17 Dec 2021 15:39:14 +0900 Subject: [PATCH] compute: Add support for tunables parameters Change-Id: I21c1f7b46c008131301a86ab01616dd9b63b610d --- manifests/agent/polling.pp | 15 +++++++++++++- .../compute-params-ecee48b43a1bdad2.yaml | 5 +++++ spec/classes/ceilometer_agent_polling_spec.rb | 20 +++++++++++++++---- 3 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 releasenotes/notes/compute-params-ecee48b43a1bdad2.yaml diff --git a/manifests/agent/polling.pp b/manifests/agent/polling.pp index 94da16ae..b8ba7e0d 100644 --- a/manifests/agent/polling.pp +++ b/manifests/agent/polling.pp @@ -36,6 +36,15 @@ # * libvirt_metadata: get instances from libvirt metadata # but without instance metadata (recommended for Gnocchi backend). # +# [*resource_update_interval*] +# (Optional) New instances will be discovered periodically based on this +# option (in seconds). +# Defaults to $::os_service_default. +# +# [*resource_cache_expiry*] +# (Optional) The expiry to totally refresh the instances resource cache. +# Defaults to $::os_service_default. +# # [*manage_polling*] # (Optional) Whether to manage polling.yaml # Defaults to false @@ -72,6 +81,8 @@ class ceilometer::agent::polling ( $compute_namespace = true, $ipmi_namespace = true, $instance_discovery_method = $::os_service_default, + $resource_update_interval = $::os_service_default, + $resource_cache_expiry = $::os_service_default, $manage_polling = false, $polling_interval = 600, $polling_meters = $::ceilometer::params::polling_meters, @@ -113,7 +124,9 @@ class ceilometer::agent::polling ( Package <| title == 'nova-common' |> -> Package['ceilometer-common'] ceilometer_config { - 'compute/instance_discovery_method': value => $instance_discovery_method, + 'compute/instance_discovery_method': value => $instance_discovery_method; + 'compute/resource_update_interval': value => $resource_update_interval; + 'compute/resource_cache_expiry': value => $resource_cache_expiry; } } else { $compute_namespace_name = '' diff --git a/releasenotes/notes/compute-params-ecee48b43a1bdad2.yaml b/releasenotes/notes/compute-params-ecee48b43a1bdad2.yaml new file mode 100644 index 00000000..495d72e4 --- /dev/null +++ b/releasenotes/notes/compute-params-ecee48b43a1bdad2.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Support for the ``[compute] resource_update_interval`` parameter and + the ``[compute] resource_cache_expiry`` parameter has been added. diff --git a/spec/classes/ceilometer_agent_polling_spec.rb b/spec/classes/ceilometer_agent_polling_spec.rb index 6d4492f1..06fbbd94 100644 --- a/spec/classes/ceilometer_agent_polling_spec.rb +++ b/spec/classes/ceilometer_agent_polling_spec.rb @@ -29,7 +29,11 @@ describe 'ceilometer::agent::polling' do :before => /Package\[ceilometer-common\]/ )} - it { should contain_ceilometer_config('compute/instance_discovery_method').with_value('') } + it { + should contain_ceilometer_config('compute/instance_discovery_method').with_value('') + should contain_ceilometer_config('compute/resource_update_interval').with_value('') + should contain_ceilometer_config('compute/resource_cache_expiry').with_value('') + } it { should contain_package('ceilometer-polling').with( :ensure => 'present', @@ -62,12 +66,20 @@ describe 'ceilometer::agent::polling' do )} end - context 'when setting instance_discovery_method' do + context 'when compute parameters set' do before do - params.merge!( :instance_discovery_method => 'naive' ) + params.merge!( + :instance_discovery_method => 'naive', + :resource_update_interval => 0, + :resource_cache_expiry => 3600, + ) end - it { should contain_ceilometer_config('compute/instance_discovery_method').with_value('naive') } + it { + should contain_ceilometer_config('compute/instance_discovery_method').with_value('naive') + should contain_ceilometer_config('compute/resource_update_interval').with_value(0) + should contain_ceilometer_config('compute/resource_cache_expiry').with_value(3600) + } end context 'with central and ipmi polling namespaces disabled' do