Merge pull request #2299 from metalmatze/thanos-compactor
contrib/kube-prometheus: Add Thanos compactor as StatefulSet
This commit is contained in:
@@ -138,5 +138,81 @@ local servicePort = k.core.v1.service.mixin.spec.portsType;
|
|||||||
statefulSet.mixin.spec.template.spec.withVolumes([
|
statefulSet.mixin.spec.template.spec.withVolumes([
|
||||||
volume.fromEmptyDir('data'),
|
volume.fromEmptyDir('data'),
|
||||||
]),
|
]),
|
||||||
|
|
||||||
|
serviceMonitorThanosCompactor:
|
||||||
|
{
|
||||||
|
apiVersion: 'monitoring.coreos.com/v1',
|
||||||
|
kind: 'ServiceMonitor',
|
||||||
|
metadata: {
|
||||||
|
name: 'thanos-compactor',
|
||||||
|
namespace: $._config.namespace,
|
||||||
|
labels: {
|
||||||
|
'k8s-app': 'thanos-compactor',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
spec: {
|
||||||
|
jobLabel: 'k8s-app',
|
||||||
|
endpoints: [
|
||||||
|
{
|
||||||
|
port: 'http',
|
||||||
|
interval: '30s',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
selector: {
|
||||||
|
matchLabels: {
|
||||||
|
app: 'thanos-compactor',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
thanosCompactorService:
|
||||||
|
service.new(
|
||||||
|
'thanos-compactor',
|
||||||
|
{ app: 'thanos-compactor' },
|
||||||
|
servicePort.newNamed('http', 9090, 'http'),
|
||||||
|
) +
|
||||||
|
service.mixin.metadata.withNamespace($._config.namespace) +
|
||||||
|
service.mixin.metadata.withLabels({ app: 'thanos-compactor' }),
|
||||||
|
|
||||||
|
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-compactor' };
|
||||||
|
|
||||||
|
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)',
|
||||||
|
'--wait',
|
||||||
|
]) +
|
||||||
|
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'),
|
||||||
|
]),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user