From f659676bc279ddbd49f7ad0054c7a3744c0baf0e Mon Sep 17 00:00:00 2001 From: Nicko Glayre Date: Fri, 23 Aug 2019 16:39:35 +0200 Subject: [PATCH] Make elasticsearch usable with older version Make it possible for elasticsearch exporter to be used even with version before 1.1.0 where breaking changes appear (see https://github.com/justwatchcom/elasticsearch_exporter/blob/v1.1.0/CHANGELOG.md) --- data/defaults.yaml | 1 + manifests/elasticsearch_exporter.pp | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/data/defaults.yaml b/data/defaults.yaml index 2fbac0745..e45a7318b 100644 --- a/data/defaults.yaml +++ b/data/defaults.yaml @@ -101,6 +101,7 @@ prometheus::elasticsearch_exporter::package_ensure: 'latest' prometheus::elasticsearch_exporter::package_name: 'elasticsearch_exporter' prometheus::elasticsearch_exporter::user: 'elasticsearch-exporter' prometheus::elasticsearch_exporter::version: '1.1.0rc1' +prometheus::elasticsearch_exporter::use_kingpin: true prometheus::extra_groups: [] prometheus::global_config: 'scrape_interval': '15s' diff --git a/manifests/elasticsearch_exporter.pp b/manifests/elasticsearch_exporter.pp index 2665a5c0b..d3aa8eacf 100644 --- a/manifests/elasticsearch_exporter.pp +++ b/manifests/elasticsearch_exporter.pp @@ -77,6 +77,11 @@ # # [*version*] # The binary release version +# +# [*use_kingpin*] +# Since version 1.1.0, the elasticsearch exporter uses kingpin, thus +# this param to define how we call the es.uri and es.timeout in the $options +# https://github.com/justwatchcom/elasticsearch_exporter/blob/v1.1.0/CHANGELOG.md class prometheus::elasticsearch_exporter ( String $cnf_uri, @@ -89,6 +94,7 @@ String $package_name, String $user, String $version, + Boolean $use_kingpin, Boolean $purge_config_dir = true, Boolean $restart_on_change = true, Boolean $service_enable = true, @@ -116,7 +122,12 @@ default => undef, } - $options = "--es.uri=${cnf_uri} --es.timeout=${cnf_timeout} ${extra_options}" + $flag_prefix = $use_kingpin ? { + true => '--', + false => '-', + } + + $options = "${flag_prefix}es.uri=${cnf_uri} ${flag_prefix}es.timeout=${cnf_timeout} ${extra_options}" prometheus::daemon { 'elasticsearch_exporter': install_method => $install_method,