commit 6c463d98f3c5427190dac57fc17c2636ffca6a54 Author: Benedikt Trefzer Date: Mon Oct 5 19:45:21 2020 +0200 Add parameter to configure metrics.yml file Remark: a similar approach with the to_yaml function is implemented in puppet-ceilometer Change-Id: Icc8f217506c3a1e517a685b633e8c86f35960136 diff --git a/manifests/deps.pp b/manifests/deps.pp index 5139927..56c6226 100644 --- a/manifests/deps.pp +++ b/manifests/deps.pp @@ -35,6 +35,11 @@ class cloudkitty::deps { -> Openstacklib::Policy::Base<||> ~> Anchor['cloudkitty::config::end'] + # Ensure files are modified in the config block + Anchor['cloudkitty::config::begin'] + -> File<| tag == 'cloudkitty-yamls' |> + ~> Anchor['cloudkitty::config::end'] + # Installation or config changes will always restart services. Anchor['cloudkitty::install::end'] ~> Anchor['cloudkitty::service::begin'] Anchor['cloudkitty::config::end'] ~> Anchor['cloudkitty::service::begin'] diff --git a/manifests/init.pp b/manifests/init.pp index 0531f03..9f80225 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -252,6 +252,10 @@ # (Optional) Keystone version to use. # Defaults to '3' # +# [*metrics_config*] +# (Optional) A hash of the metrics.yaml configuration. +# Defaults to undef +# # DEPRECATED PARAMETERS # # [*tenant_fetcher_backend*] @@ -310,6 +314,7 @@ class cloudkitty( $fetcher_backend = $::os_service_default, $auth_section = 'keystone_authtoken', $keystone_version = '3', + Optional[Hash] $metrics_config = undef, # DEPRECATED PARAMETERS $tenant_fetcher_backend = undef, ) { @@ -408,4 +413,16 @@ class cloudkitty( 'fetcher_keystone/keystone_version': value => $keystone_version; } + if $metrics_config { + file {'metrics.yml': + ensure => present, + path => $::cloudkitty::params::metrics_yaml, + content => to_yaml($metrics_config), + selinux_ignore_defaults => true, + mode => '0640', + owner => 'root', + group => $::cloudkitty::params::group, + tag => 'cloudkitty-yamls', + } + } } diff --git a/manifests/params.pp b/manifests/params.pp index eafd6bd..8326677 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -10,6 +10,7 @@ class cloudkitty::params { $api_service_name = 'cloudkitty-api' $processor_service_name = 'cloudkitty-processor' $group = 'cloudkitty' + $metrics_yaml = '/etc/cloudkitty/metrics.yml' case $::osfamily { 'RedHat': { diff --git a/releasenotes/notes/add_metrics-yaml-configuration-8bbbd2e59e0be719.yaml b/releasenotes/notes/add_metrics-yaml-configuration-8bbbd2e59e0be719.yaml new file mode 100644 index 0000000..5cce891 --- /dev/null +++ b/releasenotes/notes/add_metrics-yaml-configuration-8bbbd2e59e0be719.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + add new parameter $cloudkitty::metrics_config to configure the content of + /etc/metrics.yml file wich defines the values to catch. diff --git a/spec/classes/cloudkitty_init_spec.rb b/spec/classes/cloudkitty_init_spec.rb index bbde3b3..aa57a60 100644 --- a/spec/classes/cloudkitty_init_spec.rb +++ b/spec/classes/cloudkitty_init_spec.rb @@ -196,6 +196,24 @@ describe 'cloudkitty' do is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/password').with_value('password') end end + + context 'with metrics_donfig' do + let :params do + { :metrics_config => {'metrics' => {}}, + } + end + + it 'configures metrics.yml' do + is_expected.to contain_file('metrics.yml') + .with_ensure('present') + .with_path('/etc/cloudkitty/metrics.yml') + .with_selinux_ignore_defaults(TRUE) + .with_mode('0640') + .with_owner('root') + .with_group('cloudkitty') + .with_tag('cloudkitty-yamls') + end + end end on_supported_os({