diff --git a/data/Archlinux.yaml b/data/Archlinux.yaml index 67e94054f..74cef28da 100644 --- a/data/Archlinux.yaml +++ b/data/Archlinux.yaml @@ -1,5 +1,5 @@ --- prometheus::version: '2.2.0' -prometheus::prometheus_install_method: 'package' +prometheus::install_method: 'package' prometheus::bin_dir: '/usr/bin' prometheus::env_file_path: '/etc/default' diff --git a/spec/classes/alertmanager_spec.rb b/spec/classes/alertmanager_spec.rb index 87d3e58b0..f957f2b4a 100644 --- a/spec/classes/alertmanager_spec.rb +++ b/spec/classes/alertmanager_spec.rb @@ -13,10 +13,20 @@ version: '0.9.1', arch: 'amd64', os: 'linux', - bin_dir: '/usr/local/bin' + bin_dir: '/usr/local/bin', + install_method: 'url' } end + describe 'with specific params' do + it { is_expected.to compile.with_all_deps } + it { is_expected.to contain_archive('/tmp/alertmanager-0.9.1.tar.gz') } + it { is_expected.to contain_class('prometheus') } + it { is_expected.to contain_group('alertmanager') } + it { is_expected.to contain_user('alertmanager') } + it { is_expected.to contain_prometheus__daemon('alertmanager') } + it { is_expected.to contain_service('alertmanager') } + end describe 'install correct binary' do it { is_expected.to contain_file('/usr/local/bin/alertmanager').with('target' => '/opt/alertmanager-0.9.1.linux-amd64/alertmanager') } end diff --git a/spec/classes/beanstalkd_exporter_spec.rb b/spec/classes/beanstalkd_exporter_spec.rb index 39639492a..9fe2adc37 100644 --- a/spec/classes/beanstalkd_exporter_spec.rb +++ b/spec/classes/beanstalkd_exporter_spec.rb @@ -13,10 +13,19 @@ version: '1.0.0', arch: 'amd64', os: 'linux', - bin_dir: '/usr/local/bin' + bin_dir: '/usr/local/bin', + install_method: 'url' } end + describe 'with specific params' do + it { is_expected.to contain_archive('/tmp/beanstalkd_exporter-1.0.0.tar.gz') } + it { is_expected.to contain_class('prometheus') } + it { is_expected.to contain_group('beanstalkd-exporter') } + it { is_expected.to contain_user('beanstalkd-exporter') } + it { is_expected.to contain_prometheus__daemon('beanstalkd_exporter') } + it { is_expected.to contain_service('beanstalkd_exporter') } + end describe 'compile manifest' do it { is_expected.to compile.with_all_deps } end diff --git a/spec/classes/blackbox_exporter_spec.rb b/spec/classes/blackbox_exporter_spec.rb index 404c0ccd2..499bcefbe 100644 --- a/spec/classes/blackbox_exporter_spec.rb +++ b/spec/classes/blackbox_exporter_spec.rb @@ -14,6 +14,7 @@ arch: 'amd64', os: 'linux', bin_dir: '/usr/local/bin', + install_method: 'url', modules: { 'http_2xx' => { 'prober' => 'http' @@ -23,6 +24,7 @@ end describe 'with all defaults' do + it { is_expected.to contain_class('prometheus') } it { is_expected.to compile.with_all_deps } it { is_expected.to contain_file('/usr/local/bin/blackbox_exporter').with('target' => '/opt/blackbox_exporter-0.6.0.linux-amd64/blackbox_exporter') } it { is_expected.to contain_prometheus__daemon('blackbox_exporter') } diff --git a/spec/classes/consul_exporter_spec.rb b/spec/classes/consul_exporter_spec.rb index f79494ab8..ff3bf96b5 100644 --- a/spec/classes/consul_exporter_spec.rb +++ b/spec/classes/consul_exporter_spec.rb @@ -13,7 +13,8 @@ version: '0.3.0', arch: 'amd64', os: 'linux', - bin_dir: '/usr/local/bin' + bin_dir: '/usr/local/bin', + install_method: 'url' } end @@ -24,6 +25,8 @@ it { is_expected.to contain_user('consul-exporter') } it { is_expected.to contain_group('consul-exporter') } it { is_expected.to contain_service('consul_exporter') } + it { is_expected.to contain_archive('/tmp/consul_exporter-0.3.0.tar.gz') } + it { is_expected.to contain_class('prometheus') } end end end diff --git a/spec/classes/elasticsearch_exporter_spec.rb b/spec/classes/elasticsearch_exporter_spec.rb index 28f99d907..dae34f8fe 100644 --- a/spec/classes/elasticsearch_exporter_spec.rb +++ b/spec/classes/elasticsearch_exporter_spec.rb @@ -13,7 +13,8 @@ version: '1.0.0', arch: 'amd64', os: 'linux', - bin_dir: '/usr/local/bin' + bin_dir: '/usr/local/bin', + install_method: 'url' } end diff --git a/spec/classes/graphite_exporter_spec.rb b/spec/classes/graphite_exporter_spec.rb index b70957558..46f80bb30 100644 --- a/spec/classes/graphite_exporter_spec.rb +++ b/spec/classes/graphite_exporter_spec.rb @@ -10,10 +10,20 @@ context 'without parameters' do it { is_expected.to contain_prometheus__daemon('graphite_exporter') } it { is_expected.to compile.with_all_deps } - it { is_expected.to contain_archive('/tmp/graphite_exporter-0.2.0.tar.gz') } it { is_expected.to contain_group('graphite-exporter') } it { is_expected.to contain_service('graphite_exporter') } it { is_expected.to contain_user('graphite-exporter') } + it { is_expected.to contain_class('prometheus') } + end + + context 'with params' do + let :params do + { + install_method: 'url' + } + end + + it { is_expected.to contain_archive('/tmp/graphite_exporter-0.2.0.tar.gz') } end end end diff --git a/spec/classes/haproxy_exporter_spec.rb b/spec/classes/haproxy_exporter_spec.rb index 6b533fd02..a9e69cb68 100644 --- a/spec/classes/haproxy_exporter_spec.rb +++ b/spec/classes/haproxy_exporter_spec.rb @@ -13,13 +13,18 @@ version: '0.7.1', arch: 'amd64', os: 'linux', - bin_dir: '/usr/local/bin' + bin_dir: '/usr/local/bin', + install_method: 'url' } end - describe 'install correct binary' do - it { is_expected.to contain_file('/usr/local/bin/haproxy_exporter').with('target' => '/opt/haproxy_exporter-0.7.1.linux-amd64/haproxy_exporter') } - end + it { is_expected.to compile.with_all_deps } + it { is_expected.to contain_file('/usr/local/bin/haproxy_exporter').with('target' => '/opt/haproxy_exporter-0.7.1.linux-amd64/haproxy_exporter') } + it { is_expected.to contain_archive('/tmp/haproxy_exporter-0.7.1.tar.gz') } + it { is_expected.to contain_class('prometheus') } + it { is_expected.to contain_user('haproxy-user') } + it { is_expected.to contain_group('haproxy-exporter') } + it { is_expected.to contain_prometheus__daemon('haproxy_exporter') } end end end diff --git a/spec/classes/mongodb_exporter_spec.rb b/spec/classes/mongodb_exporter_spec.rb index 51c9247dd..be8cf0f46 100644 --- a/spec/classes/mongodb_exporter_spec.rb +++ b/spec/classes/mongodb_exporter_spec.rb @@ -13,7 +13,8 @@ version: '0.3.0', arch: 'amd64', os: 'linux', - bin_dir: '/usr/local/bin' + bin_dir: '/usr/local/bin', + install_method: 'url' } end diff --git a/spec/classes/nginx_vts_exporter_spec.rb b/spec/classes/nginx_vts_exporter_spec.rb index 386da428d..341e50fc6 100644 --- a/spec/classes/nginx_vts_exporter_spec.rb +++ b/spec/classes/nginx_vts_exporter_spec.rb @@ -13,10 +13,19 @@ version: '0.6', arch: 'amd64', os: 'linux', - bin_dir: '/usr/local/bin' + bin_dir: '/usr/local/bin', + install_method: 'url' } end + describe 'with specific params' do + it { is_expected.to contain_archive('/tmp/nginx-vts-exporter-0.6.tar.gz') } + it { is_expected.to contain_user('nginx-vts-exporter') } + it { is_expected.to contain_group('nginx-vts-exporter') } + it { is_expected.to contain_service('nginx-vts-exporter') } + it { is_expected.to contain_class('prometheus') } + it { is_expected.to contain_prometheus__daemon('nginx-vts-exporter') } + end describe 'install correct binary' do it { is_expected.to contain_file('/usr/local/bin/nginx-vts-exporter').with('target' => '/opt/nginx-vts-exporter-0.6.linux-amd64/nginx-vts-exporter') } it { is_expected.to compile.with_all_deps } diff --git a/spec/classes/node_exporter_spec.rb b/spec/classes/node_exporter_spec.rb index 02490031d..19d2754a3 100644 --- a/spec/classes/node_exporter_spec.rb +++ b/spec/classes/node_exporter_spec.rb @@ -8,17 +8,25 @@ end context 'without parameters' do + it { is_expected.to compile.with_all_deps } + it { is_expected.to contain_class('prometheus') } + it { is_expected.to contain_user('node-exporter') } + it { is_expected.to contain_group('node-exporter') } it { is_expected.to contain_prometheus__daemon('node_exporter').with(options: ' ') } + it { is_expected.to contain_service('node_exporter') } end context 'without collector parameters' do let(:params) do { collectors_enable: %w[foo bar], - collectors_disable: %w[baz qux] + collectors_disable: %w[baz qux], + install_method: 'url' } end + it { is_expected.to compile.with_all_deps } + it { is_expected.to contain_archive('/tmp/node_exporter-0.14.0.tar.gz') } it { is_expected.to contain_prometheus__daemon('node_exporter').with(options: ' --collector.foo --collector.bar --no-collector.baz --no-collector.qux') } end @@ -31,6 +39,7 @@ } end + it { is_expected.to compile.with_all_deps } it { is_expected.to contain_prometheus__daemon('node_exporter').with(options: '--path.procfs /host/proc --path.sysfs /host/sys --collector.foo --collector.bar --no-collector.baz --no-collector.qux') } end @@ -40,10 +49,13 @@ version: '0.13.0', arch: 'amd64', os: 'linux', - bin_dir: '/usr/local/bin' + bin_dir: '/usr/local/bin', + install_method: 'url' } end + it { is_expected.to compile.with_all_deps } + it { is_expected.to contain_archive('/tmp/node_exporter-0.13.0.tar.gz') } describe 'install correct binary' do it { is_expected.to contain_file('/usr/local/bin/node_exporter').with('target' => '/opt/node_exporter-0.13.0.linux-amd64/node_exporter') } end diff --git a/spec/classes/pushgateway_spec.rb b/spec/classes/pushgateway_spec.rb index daa8fdcdb..8dc74eb1a 100644 --- a/spec/classes/pushgateway_spec.rb +++ b/spec/classes/pushgateway_spec.rb @@ -13,7 +13,8 @@ version: '0.4.0', arch: 'amd64', os: 'linux', - bin_dir: '/usr/local/bin' + bin_dir: '/usr/local/bin', + install_method: 'url' } end diff --git a/spec/classes/rabbitmq_exporter_spec.rb b/spec/classes/rabbitmq_exporter_spec.rb index 548367d4d..d6943733c 100644 --- a/spec/classes/rabbitmq_exporter_spec.rb +++ b/spec/classes/rabbitmq_exporter_spec.rb @@ -13,7 +13,8 @@ version: '1.0.0', arch: 'amd64', os: 'linux', - bin_dir: '/usr/local/bin' + bin_dir: '/usr/local/bin', + install_method: 'url' } end diff --git a/spec/classes/redis_exporter_spec.rb b/spec/classes/redis_exporter_spec.rb index 284426b09..6b18f2ca7 100644 --- a/spec/classes/redis_exporter_spec.rb +++ b/spec/classes/redis_exporter_spec.rb @@ -13,7 +13,8 @@ version: '0.11.2', arch: 'amd64', os: 'linux', - bin_dir: '/usr/local/bin' + bin_dir: '/usr/local/bin', + install_method: 'url' } end diff --git a/spec/classes/snmp_exporter_spec.rb b/spec/classes/snmp_exporter_spec.rb index fdad9ff0d..822f32c42 100644 --- a/spec/classes/snmp_exporter_spec.rb +++ b/spec/classes/snmp_exporter_spec.rb @@ -13,7 +13,8 @@ version: '0.6.0', arch: 'amd64', os: 'linux', - bin_dir: '/usr/local/bin' + bin_dir: '/usr/local/bin', + install_method: 'url' } end @@ -31,6 +32,7 @@ 'notify' => 'Service[snmp_exporter]' ) } + it { is_expected.to contain_class('prometheus') } it { is_expected.to contain_file('/usr/local/bin/snmp_exporter').with('target' => '/opt/snmp_exporter-0.6.0.linux-amd64/snmp_exporter') } it { is_expected.to contain_prometheus__daemon('snmp_exporter') } it { is_expected.to contain_user('snmp-exporter') } diff --git a/spec/classes/varnish_exporter_spec.rb b/spec/classes/varnish_exporter_spec.rb index ad68e758e..7fbffd58e 100644 --- a/spec/classes/varnish_exporter_spec.rb +++ b/spec/classes/varnish_exporter_spec.rb @@ -13,10 +13,12 @@ version: '1.4', arch: 'amd64', os: 'linux', - bin_dir: '/usr/local/bin' + bin_dir: '/usr/local/bin', + install_method: 'url' } end + it { is_expected.to compile.with_all_deps } describe 'install correct binary' do it { is_expected.to contain_file('/usr/local/bin/prometheus_varnish_exporter').with('target' => '/opt/prometheus_varnish_exporter-1.4.linux-amd64/prometheus_varnish_exporter') } end diff --git a/spec/defines/daemon_spec.rb b/spec/defines/daemon_spec.rb index 4eb9207ef..9d20c0c4b 100644 --- a/spec/defines/daemon_spec.rb +++ b/spec/defines/daemon_spec.rb @@ -23,7 +23,8 @@ user: 'smurf_user', group: 'smurf_group', env_vars: { SOMEVAR: 42 }, - bin_dir: '/usr/local/bin' + bin_dir: '/usr/local/bin', + install_method: 'url' } ].each do |parameters| context "with parameters #{parameters}" do @@ -31,6 +32,8 @@ parameters end + it { is_expected.to compile.with_all_deps } + it { is_expected.to contain_class('prometheus') } prom_os = facts[:kernel].downcase prom_arch = facts[:architecture] == 'i386' ? '386' : 'amd64'