{"id":20415668,"url":"https://github.com/syberalexis/puppet-thanos","last_synced_at":"2026-03-16T16:39:58.544Z","repository":{"id":44392606,"uuid":"226533176","full_name":"syberalexis/puppet-thanos","owner":"syberalexis","description":"This module automates the install of Thanos and it's components into a service.","archived":false,"fork":false,"pushed_at":"2024-05-06T14:35:12.000Z","size":179,"stargazers_count":4,"open_issues_count":6,"forks_count":18,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-11T09:50:13.931Z","etag":null,"topics":["puppet","puppet-forge","thanos"],"latest_commit_sha":null,"homepage":"https://forge.puppet.com/maeq/thanos","language":"Puppet","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/syberalexis.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-12-07T15:13:35.000Z","updated_at":"2023-07-11T14:27:10.000Z","dependencies_parsed_at":"2024-01-14T17:55:58.364Z","dependency_job_id":null,"html_url":"https://github.com/syberalexis/puppet-thanos","commit_stats":{"total_commits":66,"total_committers":14,"mean_commits":4.714285714285714,"dds":"0.33333333333333337","last_synced_commit":"a59248ae8159618472387cf3f8470f62835a500f"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syberalexis%2Fpuppet-thanos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syberalexis%2Fpuppet-thanos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syberalexis%2Fpuppet-thanos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syberalexis%2Fpuppet-thanos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/syberalexis","download_url":"https://codeload.github.com/syberalexis/puppet-thanos/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248602302,"owners_count":21131615,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["puppet","puppet-forge","thanos"],"created_at":"2024-11-15T06:17:10.501Z","updated_at":"2025-11-09T09:30:50.490Z","avatar_url":"https://github.com/syberalexis.png","language":"Puppet","funding_links":[],"categories":[],"sub_categories":[],"readme":"# maeq-thanos\n\n[![Build Status Travis](https://img.shields.io/travis/com/syberalexis/puppet-thanos/master?label=build%20travis)](https://travis-ci.com/syberalexis/puppet-thanos)\n[![Build Status AppVeyor](https://img.shields.io/appveyor/ci/syberalexis/puppet-thanos/master?label=build%20appveyor)](https://ci.appveyor.com/project/syberalexis/puppet-thanos)\n[![Puppet Forge](https://img.shields.io/puppetforge/v/maeq/thanos.svg)](https://forge.puppetlabs.com/maeq/thanos)\n[![Puppet Forge - downloads](https://img.shields.io/puppetforge/dt/maeq/thanos.svg)](https://forge.puppetlabs.com/maeq/thanos)\n[![Puppet Forge - endorsement](https://img.shields.io/puppetforge/e/maeq/thanos.svg)](https://forge.puppetlabs.com/maeq/thanos)\n[![Puppet Forge - scores](https://img.shields.io/puppetforge/f/maeq/thanos.svg)](https://forge.puppetlabs.com/maeq/thanos)\n[![Apache-2 License](https://img.shields.io/github/license/syberalexis/puppet-thanos.svg)](LICENSE)\n\n\n#### Table of Contents\n\n- [Description](#description)\n- [Usage](#usage)\n- [Examples](#examples)\n- [Limitations](#limitations)\n- [Development](#development)\n\n## Description\n\nThis module automates the install of [Thanos](https://github.com/thanos-io/thanos) and it's components into a service.  \nMaximum tested version of Thanos : 0.26.0\n\n## Usage\n\nFor more information see [REFERENCE.md](REFERENCE.md).\n\n### Install Thanos\n\n#### Puppet\n```puppet\nclass { 'thanos':\n  version =\u003e '0.26.0'\n}\n```\n\n#### Hiera Data\n```puppet\ninclude thanos\n```\n```yaml\nthanos::version: '0.26.0'\n```\n\n### Thanos Sidecar\n\n```yaml\nthanos::manage_sidecar: true\n```\n\n### Thanos Query\n```yaml\nthanos::manage_query: true\nthanos::query::endpoints:\n  - 'sidecar:10901'\n  - 'store:10901'\n```\n\n### Thanos Query Frontend\n```yaml\nthanos::manage_query_frontend: true\n```\n\n### Thanos Rule\n```yaml\nthanos::manage_rule: true\nthanos::rule::queries:\n  - 'query:10901'\n```\n\n### Thanos Store\n```yaml\nthanos::manage_store: true\n```\n\n### Thanos Compact\n```yaml\nthanos::manage_compact: true\n```\n\n### Thanos Receive\n```yaml\nthanos::manage_receive: true\n```\n\n### Thanos Tools Bucket Web\n```yaml\nthanos::manage_tools_bucket_web: true\n```\n\n### Manage Storage config\n\nFor more configuration information see [Thanos Storage configuration page](https://thanos.io/storage.md/#configuration).\n\n#### Puppet\n```puppet\nthanos::storage { '/etc/thanos/storage.yaml':\n  ensure =\u003e 'present',\n  type   =\u003e 'FILESYSTEM',\n  config =\u003e {\n    directory =\u003e '/data'\n  }\n}\n```\n\n### Yaml\n```puppet\ninclude thanos\n```\n```yaml\nthanos::manage_storage_config: true\nthanos::storage_config_file: '/etc/thanos/storage.yaml'\nthanos::storage_config:\n  ensure: 'present'\n  type: 'FILESYSTEM'\n  config:\n    directory: '/data'\n```\n\n### Manage Tracing config\n\nFor more configuration information see [Thanos Tracing configuration page](https://thanos.io/tracing.md/#configuration).\n\n#### Puppet\n```puppet\nthanos::tracing { '/etc/thanos/tracing.yaml':\n  ensure =\u003e 'present',\n  type   =\u003e 'JAEGER',\n  config =\u003e {\n    service_name              =\u003e '',\n    disabled                  =\u003e false,\n    rpc_metrics               =\u003e false,\n    tags                      =\u003e '',\n    sampler_type              =\u003e '',\n    sampler_param             =\u003e 0,\n    sampler_manager_host_port =\u003e '',\n    sampler_max_operations    =\u003e 0,\n    sampler_refresh_interval  =\u003e '0s',\n    reporter_max_queue_size   =\u003e 0,\n    reporter_flush_interval   =\u003e '0s',\n    reporter_log_spans        =\u003e false,\n    endpoint                  =\u003e '',\n    user                      =\u003e '',\n    password                  =\u003e '',\n    agent_host                =\u003e '',\n    agent_port                =\u003e 0,\n  }\n}\n```\n\n### Yaml\n```puppet\ninclude thanos\n```\n```yaml\nthanos::manage_tracing_config: true\nthanos::tracing_config_file: '/etc/thanos/tracing.yaml'\nthanos::tracing_config:\n  ensure: 'present'\n  type: 'JAEGER'\n  config:\n    service_name: ''\n    disabled: false\n    rpc_metrics: false\n    tags: ''\n    sampler_type: ''\n    sampler_param: 0\n    sampler_manager_host_port: ''\n    sampler_max_operations: 0\n    sampler_refresh_interval: '0s'\n    reporter_max_queue_size: 0\n    reporter_flush_interval: '0s'\n    reporter_log_spans: false\n    endpoint: ''\n    user: ''\n    password: ''\n    agent_host: ''\n    agent_port: 0\n```\n\n## Examples\n\n### Install from other source\n\n```yaml\nthanos::base_url: 'http://my_private_dropbox/thanos'\n```\nOr\n```yaml\nthanos::download_url: 'http://my_private_dropbox/thanos/thanos-0.10.1.tar.gz'\n```\n\n### Install all in one\n\nIt's not a very good idea to deploy like this in Production. But it's possible to test it on the same machine.\n\n```yaml\nthanos::manage_sidecar: true\nthanos::manage_query: true\nthanos::manage_rule: true\nthanos::manage_store: true\nthanos::manage_compact: true\n\nthanos::sidecar::http_address: '0.0.0.0:10902'\nthanos::sidecar::grpc_address: '0.0.0.0:10901'\nthanos::sidecar::objstore_config_file: '/etc/thanos/storage.yaml'\nthanos::query::http_address: '0.0.0.0:10904'\nthanos::query::grpc_address: '0.0.0.0:10903'\nthanos::query::endpoints:\n  - 'localhost:10901'\n  - 'localhost:10907'\nthanos::rule::http_address: '0.0.0.0:10906'\nthanos::rule::grpc_address: '0.0.0.0:10905'\nthanos::rule::queries:\n  - 'localhost:10903'\nthanos::store::http_address: '0.0.0.0:10908'\nthanos::store::grpc_address: '0.0.0.0:10907'\nthanos::compact::http_address: '0.0.0.0:10910'\nthanos::compact::grpc_address: '0.0.0.0:10909'\n\nthanos::manage_storage_config: true\nthanos::storage_config_file: '/etc/thanos/storage.yaml'\nthanos::storage_config:\n  ensure: 'present'\n  type: 'FILESYSTEM'\n  config:\n    directory: '/data'\n```\n\n### Sidecar with Prometheus\n\nI recommend to use the module [puppet-prometheus](https://forge.puppet.com/puppet/prometheus), it is very easy to use.\n```puppet\ninclude prometheus\ninclude thanos\n```\n```yaml\nprometheus::manage_prometheus_server: true\nprometheus::config_dir: '/etc/prometheus'\nprometheus::configname: 'prometheus.yaml'\nprometheus::localstorage: '/data/prometheus'\nprometheus::extra_options: '--web.enable-lifecycle --storage.tsdb.min-block-duration=2h --storage.tsdb.max-block-duration=2h'\n\nthanos::manage_sidecar: true\nthanos::tsdb_path: '/data/prometheus'\nthanos::reloader_config_file: '/etc/prometheus/prometheus.yaml'\n```\n\n## Limitations\n\nOnly support, Thanos supported OS. See [Thanos releases page](https://github.com/thanos-io/thanos/releases)\n\n## Development\n\nSee [Contributing](CONTRIBUTING.md).\n\nThis project contains tests for [rspec-puppet](http://rspec-puppet.com/).\n\nQuickstart to run all linter and unit tests:\n```bash\nbundle install\nbundle exec rake validate\n```\nOr\n```bash\npdk validate\npdk test unit\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyberalexis%2Fpuppet-thanos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsyberalexis%2Fpuppet-thanos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyberalexis%2Fpuppet-thanos/lists"}