0.2.1-0.1.0 • Published 5 years ago

@helm-charts/banzaicloud-stable-thanos v0.2.1-0.1.0

Weekly downloads
1
License
MIT
Repository
-
Last release
5 years ago

@helm-charts/banzaicloud-stable-thanos

A Helm chart for Thanos for Prometheus long term storage

FieldValue
Repository Namebanzaicloud-stable
Chart Namethanos
Chart Version0.2.1
NPM Package Version0.1.0
image:
  repository: improbable/thanos
  tag: master-2019-01-29-5e5e353
  pullPolicy: IfNotPresent

store:
  enabled: true
  # annotations:
  replicaCount: 1
  monitoring:
    enabled: true
  http:
    port: 10902
  grpc:
    port: 10901
  logLevel: debug
  securityContext: {}
  resources: {}

query:
  enabled: true
  # annotations:
  replicaCount: 1
  monitoring:
    enabled: true
  grpc:
    port: 10901
  http:
    port: 10902
  logLevel: debug
  resources: {}

  ingress:
    enabled: false
    annotations:
      {}
      # kubernetes.io/ingress.class: nginx
      # kubernetes.io/tls-acme: "true"
    labels: {}
    path: /
    hosts:
      - chart-example.local
    tls: []
    #  - secretName: chart-example-tls
    #    hosts:
    #      - chart-example.local

  securityContext: {}

compact:
  enabled: true
  # annotations:
  monitoring:
    enabled: true
  http:
    port: 10902
  logLevel: debug
  securityContext: {}
  resources: {}

cluster:
  address: 0.0.0.0
  port: 10900

objstore:
  provider: gcs
  configFile: bucket.yaml
  config: ''
  gcsCredentials: ''

replicaLabelName: replica

Thanos Helm chart

Thanos is a set of components that can be composed into a highly available metric system with unlimited storage capacity. It can be added seamlessly on top of existing Prometheus deployments and leverages the Prometheus 2.0 storage format to cost-efficiently store historical metric data in any object storage while retaining fast query latencies. Additionally, it provides a global query view across all Prometheus installations and can merge data from Prometheus HA pairs on the fly.

This chart is in Alpha state to provide easy installation via Helm chart.

Architecture

This Chart will install a complete Thanos solution. As Thanos requires Prometheus sidecar container it includes a custom Prometheus Chart with built-in sidecar support. To understand how Thanos works please read it's official Architecture design.

Installing the Chart

Add Banzai Cloud repository:

$ helm repo add banzaicloud-stable http://kubernetes-charts.banzaicloud.com/branch/master
$ helm repo update

Create the Service Account and Bucket at Google cloud.

Install the chart:

helm install banzaicloud-stable/thanos --set objstore.bucketName="test-bucket" --set objstore.gcsCredentials="<base64encoded>"

Configuration

NameDescriptionDefault Value
image.repositoryThanos image repository and nameimprobable/thanos
image.tagThanos image tagmaster-2018-10-29-8f247d6
image.pullPolicyImage Kubernetes pull policyIfNotPresent
store.replicaCountPod replica count1
store.monitoring.enabledEnable prometheus scraping endpointtrue
store.http.portEnable http port (includes /metrics)10902
store.grpc.portEnable grpc port (data plane)10901
store.logLevelLog leveldebug
store.resourcesResources of the pods{}
store.securityContextManage securityContext of store pods{}
query.replicaCountPod replica count1
query.monitoring.enabledtrue
query.http.portEnable http port (includes /metrics)10901
query.grpc.portEnable grpc port (data plane)10902
query.logLevelLog leveldebug
query.resourcesResources of the pods{}
query.securityContextManage securityContext of query pods{}
compact.monitoring.enabledEnable prometheus scraping endpointtrue
compact.http.portEnable http port (includes /metrics)10902
compact.logLevelLog levelDEBUG
compact.resourcesResources of the pods{}
compact.securityContextManage securityContext of compact pods{}
cluster.addressBinding address for cluster discovery0.0.0.0
cluster.portBinding port for cluster discovery10900
objstore.providerSupported providers: gcs (soon s3)gcs
objstore.configFileThe file name containing bucket configuration"bucket.yaml"
objstore.configThe storage module configuration check official documentation""
objstore.gcsCredentialsGoogle credentials json content base64 encoded""
replicaLabelNameReplica label (separate different Prometheus instances)"replica"

Example GCS configuration

objstore:
  provider: gcs
  gcsCredentials: <base64encodedjson>
  configFile: "bucket.yaml"
  config: |-
    type: GCS
    config:
      bucket: ""

Example S3 configuration

This is an example configuration using thanos with S3. Check endpoints here: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region

objstore:
  provider: amazon
  configFile: "bucket.yaml"
  config: |-
    type: S3
    config:
      endpoint: ""
      bucket: ""
      access_key: ""
      secret_key: ""

Upcoming features

  • Support S3
  • Add override options to custom configuration and secrets

Contributing

Contributions are very welcome!