45 lines
1.1 KiB
Ruby
45 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
provides :prometheus_config
|
|
unified_mode true
|
|
|
|
use '_partial/_common'
|
|
use '_partial/_prometheus'
|
|
|
|
property :template_cookbook, String, default: 'prometheus'
|
|
property :template_source, String, default: 'prometheus.yml.erb'
|
|
property :rule_filenames, [Array, nil], default: nil
|
|
property :global_config, Hash, default: {
|
|
'scrape_interval' => '60s',
|
|
'evaluation_interval' => '60s',
|
|
}
|
|
property :allow_external_config, [true, false], default: false
|
|
|
|
default_action :create
|
|
|
|
action :create do
|
|
config_resource = new_resource
|
|
|
|
with_run_context :root do
|
|
template config_resource.config_file do
|
|
cookbook config_resource.template_cookbook
|
|
source config_resource.template_source
|
|
mode '0644'
|
|
owner config_resource.user
|
|
group config_resource.group
|
|
variables(
|
|
global_config: config_resource.global_config,
|
|
jobs: {},
|
|
rule_filenames: config_resource.rule_filenames
|
|
)
|
|
not_if { config_resource.allow_external_config }
|
|
end
|
|
end
|
|
end
|
|
|
|
action :delete do
|
|
file new_resource.config_file do
|
|
action :delete
|
|
end
|
|
end
|