---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: thanos
namespace: monitoring
spec:
interval: 30m
timeout: 15m
chart:
chart: thanos
version: 12.11.2
sourceRef:
kind: HelmRepository
name: bitnami
namespace: flux-system
maxHistory: 2
install:
createNamespace: true
remediation:
retries: 3
upgrade:
cleanupOnFail: true
uninstall:
keepHistory: false
dependsOn:
- name: rook-ceph-cluster
namespace: rook-ceph
values:
image:
registry: quay.io
repository: thanos/thanos
tag: v0.31.0
objstoreConfig:
type: s3
config:
insecure: true
queryFrontend:
enabled: true
replicaCount: 3
ingress:
ingressClassName: nginx
hostname: &host thanos-query-frontend.valinor.social
tls: true
extraTls:
- hosts:
- *host
query:
replicaLabel: ["__replica__"]
dnsDiscovery:
sidecarsService: kube-prometheus-stack-thanos-discovery
sidecarsNamespace: monitoring
bucketweb:
compactor:
extraFlags:
- --compact.concurrency=4
- --delete-delay=30m
retentionResolutionRaw: 14d
retentionResolution5m: 14d
retentionResolution1h: 14d
persistence:
storageClass: ceph-block
size: 100Gi
storegateway:
size: 20Gi
ruler:
replicaLabel: __replica__
alertmanagers: ["http://kube-prometheus-stack-alertmanager.monitoring.svc.cluster.local:9093"]
extraFlags: ["--web.prefix-header=X-Forwarded-Prefix"]
config: |-
groups:
- name: PrometheusWatcher
rules:
- alert: PrometheusDown
annotations:
summary: A Prometheus has disappeared from Prometheus target discovery
expr: absent(up{job="kube-prometheus-stack-prometheus"})
for: 5m
labels:
severity: critical
metrics:
serviceMonitor:
valuesFrom:
- targetPath: objstoreConfig.config.bucket
kind: ConfigMap
name: thanos-bucket-v1
valuesKey: BUCKET_NAME
- targetPath: objstoreConfig.config.endpoint
valuesKey: BUCKET_HOST
- targetPath: objstoreConfig.config.region
valuesKey: BUCKET_REGION
- targetPath: objstoreConfig.config.access_key
kind: Secret
valuesKey: AWS_ACCESS_KEY_ID
- targetPath: objstoreConfig.config.secret_key
valuesKey: AWS_SECRET_ACCESS_KEY