From 853b3cf6327cb63e912cf53e912bb217f20ead5c Mon Sep 17 00:00:00 2001 From: Matthias Loibl <mail@matthiasloibl.com> Date: Tue, 15 Jan 2019 18:54:33 +0100 Subject: [PATCH] contrib/kube-prometheus: Add Thanos compactor as statefulset --- .../kube-prometheus-thanos.libsonnet | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/jsonnet/kube-prometheus/kube-prometheus-thanos.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-thanos.libsonnet index 71d342dc..53c2e614 100644 --- a/jsonnet/kube-prometheus/kube-prometheus-thanos.libsonnet +++ b/jsonnet/kube-prometheus/kube-prometheus-thanos.libsonnet @@ -138,5 +138,44 @@ local servicePort = k.core.v1.service.mixin.spec.portsType; statefulSet.mixin.spec.template.spec.withVolumes([ volume.fromEmptyDir('data'), ]), + + thanosCompactorStatefulset: + local statefulSet = k.apps.v1beta2.statefulSet; + local volume = statefulSet.mixin.spec.template.spec.volumesType; + local container = statefulSet.mixin.spec.template.spec.containersType; + local containerEnv = container.envType; + local containerVolumeMount = container.volumeMountsType; + + local labels = { app: 'thanos', 'thanos-peers': 'true' }; + + local c = + container.new('thanos-compactor', $._config.imageRepos.thanos + ':' + $._config.versions.thanos) + + container.withArgs([ + 'compact', + '--log.level=debug', + '--data-dir=/var/thanos/store', + '--objstore.config=$(OBJSTORE_CONFIG)', + ]) + + container.withEnv([ + containerEnv.fromSecretRef( + 'OBJSTORE_CONFIG', + $._config.thanos.objectStorageConfig.name, + $._config.thanos.objectStorageConfig.key, + ), + ]) + + container.withPorts([ + { name: 'http', containerPort: 10902 }, + ]) + + container.withVolumeMounts([ + containerVolumeMount.new('data', '/var/thanos/store', false), + ]); + + statefulSet.new('thanos-compactor', 1, c, [], labels) + + statefulSet.mixin.metadata.withNamespace($._config.namespace) + + statefulSet.mixin.spec.selector.withMatchLabels(labels) + + statefulSet.mixin.spec.withServiceName('thanos-compactor') + + statefulSet.mixin.spec.template.spec.withVolumes([ + volume.fromEmptyDir('data'), + ]), }, } -- GitLab