Forge Home


This module install Thanos and can manage it's components


316 latest version

5.0 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 1.4.0 (latest)
  • 1.3.0
  • 1.2.0
  • 1.1.0
  • 1.0.2
  • 1.0.1
  • 1.0.0
  • 0.4.2
  • 0.4.1
  • 0.4.0
  • 0.3.0
  • 0.2.1
  • 0.2.0
  • 0.1.4
  • 0.1.3
  • 0.1.2
  • 0.1.1
  • 0.1.0 (deleted)
released Dec 18th 2022
This version is compatible with:
  • Puppet Enterprise 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x
  • Puppet >= 6.1.0 < 8.0.0
  • , , , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'maeq-thanos', '1.4.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add maeq-thanos
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install maeq-thanos --version 1.4.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



maeq/thanos — version 1.4.0 Dec 18th 2022


Build Status Travis Build Status AppVeyor Puppet Forge Puppet Forge - downloads Puppet Forge - endorsement Puppet Forge - scores Apache-2 License

Table of Contents


This module automates the install of Thanos and it's components into a service.
Maximum tested version of Thanos : 0.26.0


For more information see

Install Thanos


class { 'thanos':
  version => '0.26.0'

Hiera Data

include thanos
thanos::version: '0.26.0'

Thanos Sidecar

thanos::manage_sidecar: true

Thanos Query

thanos::manage_query: true
  - 'sidecar:10901'
  - 'store:10901'

Thanos Query Frontend

thanos::manage_query_frontend: true

Thanos Rule

thanos::manage_rule: true
  - 'query:10901'

Thanos Store

thanos::manage_store: true

Thanos Compact

thanos::manage_compact: true

Thanos Receive

thanos::manage_receive: true

Thanos Tools Bucket Web

thanos::manage_tools_bucket_web: true

Manage Storage config

For more configuration information see Thanos Storage configuration page.


thanos::storage { '/etc/thanos/storage.yaml':
  ensure => 'present',
  type   => 'FILESYSTEM',
  config => {
    directory => '/data'


include thanos
thanos::manage_storage_config: true
thanos::storage_config_file: '/etc/thanos/storage.yaml'
  ensure: 'present'
  type: 'FILESYSTEM'
    directory: '/data'

Manage Tracing config

For more configuration information see Thanos Tracing configuration page.


thanos::tracing { '/etc/thanos/tracing.yaml':
  ensure => 'present',
  type   => 'JAEGER',
  config => {
    service_name              => '',
    disabled                  => false,
    rpc_metrics               => false,
    tags                      => '',
    sampler_type              => '',
    sampler_param             => 0,
    sampler_manager_host_port => '',
    sampler_max_operations    => 0,
    sampler_refresh_interval  => '0s',
    reporter_max_queue_size   => 0,
    reporter_flush_interval   => '0s',
    reporter_log_spans        => false,
    endpoint                  => '',
    user                      => '',
    password                  => '',
    agent_host                => '',
    agent_port                => 0,


include thanos
thanos::manage_tracing_config: true
thanos::tracing_config_file: '/etc/thanos/tracing.yaml'
  ensure: 'present'
  type: 'JAEGER'
    service_name: ''
    disabled: false
    rpc_metrics: false
    tags: ''
    sampler_type: ''
    sampler_param: 0
    sampler_manager_host_port: ''
    sampler_max_operations: 0
    sampler_refresh_interval: '0s'
    reporter_max_queue_size: 0
    reporter_flush_interval: '0s'
    reporter_log_spans: false
    endpoint: ''
    user: ''
    password: ''
    agent_host: ''
    agent_port: 0


Install from other source

thanos::base_url: 'http://my_private_dropbox/thanos'


thanos::download_url: 'http://my_private_dropbox/thanos/thanos-0.10.1.tar.gz'

Install all in one

It's not a very good idea to deploy like this in Production. But it's possible to test it on the same machine.

thanos:manage_sidecar: true
thanos:manage_query: true
thanos:manage_rule: true
thanos:manage_store: true
thanos:manage_compact: true

thanos::sidecar::http_address: ''
thanos::sidecar::grpc_address: ''
thanos::sidecar::objstore_config_file: '/etc/thanos/storage.yaml'
thanos::query::http_address: ''
thanos::query::grpc_address: ''
  - 'localhost:10901'
  - 'localhost:10907'
thanos::rule::http_address: ''
thanos::rule::grpc_address: ''
  - 'localhost:10903'
thanos::store::http_address: ''
thanos::store::grpc_address: ''
thanos::compact::http_address: ''
thanos::compact::grpc_address: ''

thanos::manage_storage_config: true
thanos::storage_config_file: '/etc/thanos/storage.yaml'
  ensure: 'present'
  type: 'FILESYSTEM'
    directory: '/data'

Sidecar with Prometheus

I recommend to use the module puppet-prometheus, it is very easy to use.

include prometheus
include thanos
prometheus::manage_prometheus_server: true
prometheus::config_dir: '/etc/prometheus'
prometheus::configname: 'prometheus.yaml'
prometheus::localstorage: '/data/prometheus'
prometheus::extra_options: '--web.enable-lifecycle --storage.tsdb.min-block-duration=2h --storage.tsdb.max-block-duration=2h'

thanos::manage_sidecar: true
thanos::tsdb_path: '/data/prometheus'
thanos::reloader_config_file: '/etc/prometheus/prometheus.yaml'


Only support, Thanos supported OS. See Thanos releases page


See Contributing.

This project contains tests for rspec-puppet.

Quickstart to run all linter and unit tests:

bundle install
bundle exec rake validate


pdk validate
pdk test unit