diff --git a/jsonnet/kube-prometheus/kube-prometheus-thanos.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-thanos.libsonnet index 0bfd596fc2d1c9c175d8291f33a0db9861c609d0..68b5c349282d34a723224ee7d462924c3da7c9c3 100644 --- a/jsonnet/kube-prometheus/kube-prometheus-thanos.libsonnet +++ b/jsonnet/kube-prometheus/kube-prometheus-thanos.libsonnet @@ -5,7 +5,7 @@ local servicePort = k.core.v1.service.mixin.spec.portsType; { _config+:: { versions+:: { - thanos: 'v0.3.2', + thanos: 'v0.5.0', }, imageRepos+:: { thanos: 'improbable/thanos', @@ -20,53 +20,13 @@ local servicePort = k.core.v1.service.mixin.spec.portsType; prometheus+:: { prometheus+: { spec+: { - podMetadata+: { - labels+: { 'thanos-peers': 'true' }, - }, thanos+: { - peers: 'thanos-peers.' + $._config.namespace + '.svc:10900', version: $._config.versions.thanos, baseImage: $._config.imageRepos.thanos, objectStorageConfig: $._config.thanos.objectStorageConfig, }, }, }, - thanosPeerService: - service.new('thanos-peers', { 'thanos-peers': 'true' }, [ - servicePort.newNamed('cluster', 10900, 10900), - servicePort.newNamed('http', 10902, 10902), - ]) + - service.mixin.metadata.withNamespace($._config.namespace) + - service.mixin.metadata.withLabels({ 'thanos-peers': 'true' }) + - service.mixin.spec.withType('ClusterIP') + - service.mixin.spec.withClusterIp('None'), - - serviceMonitorThanosPeer: - { - apiVersion: 'monitoring.coreos.com/v1', - kind: 'ServiceMonitor', - metadata: { - name: 'thanos-peers', - namespace: $._config.namespace, - labels: { - 'k8s-app': 'thanos-peers', - }, - }, - spec: { - jobLabel: 'k8s-app', - endpoints: [ - { - port: 'http', - interval: '30s', - }, - ], - selector: { - matchLabels: { - 'thanos-peers': 'true', - }, - }, - }, - }, thanosQueryDeployment: local deployment = k.apps.v1.deployment; local container = k.apps.v1.deployment.mixin.spec.template.spec.containersType; @@ -77,26 +37,31 @@ local servicePort = k.core.v1.service.mixin.spec.portsType; container.withPorts([ containerPort.newNamed(10902, 'http'), containerPort.newNamed(10901, 'grpc'), - containerPort.newNamed(10900, 'cluster'), ]) + container.withArgs([ 'query', '--log.level=debug', '--query.replica-label=prometheus_replica', '--query.auto-downsampling', - '--cluster.peers=thanos-peers.' + $._config.namespace + '.svc:10900', + '--store=dnssrv+thanos-sidecar.' + $._config.namespace + '.svc', ]); - local podLabels = { app: 'thanos-query', 'thanos-peers': 'true' }; + local podLabels = { app: 'thanos-query' }; deployment.new('thanos-query', 1, thanosQueryContainer, podLabels) + deployment.mixin.metadata.withNamespace($._config.namespace) + deployment.mixin.metadata.withLabels(podLabels) + deployment.mixin.spec.selector.withMatchLabels(podLabels) + deployment.mixin.spec.template.spec.withServiceAccountName('prometheus-' + $._config.prometheus.name), thanosQueryService: - local thanosQueryPort = servicePort.newNamed('http-query', 9090, 'http'); + local thanosQueryPort = servicePort.newNamed('http', 9090, 'http'); service.new('thanos-query', { app: 'thanos-query' }, thanosQueryPort) + service.mixin.metadata.withNamespace($._config.namespace) + service.mixin.metadata.withLabels({ app: 'thanos-query' }), + thanosSidecarService: + local thanosSidecarPort = servicePort.newNamed('grpc', 10901, 'grpc'); + service.new('thanos-sidecar', { app: 'thanos-sidecar' }, thanosSidecarPort) + + service.mixin.metadata.withNamespace($._config.namespace) + + service.mixin.metadata.withLabels({ app: 'thanos-sidecar' }) + + service.mixin.spec.withSelector({ prometheus: 'k8s' }), thanosStoreStatefulset: local statefulSet = k.apps.v1.statefulSet; @@ -105,7 +70,7 @@ local servicePort = k.core.v1.service.mixin.spec.portsType; local containerEnv = container.envType; local containerVolumeMount = container.volumeMountsType; - local labels = { app: 'thanos', 'thanos-peers': 'true' }; + local labels = { app: 'thanos' }; local c = container.new('thanos-store', $._config.imageRepos.thanos + ':' + $._config.versions.thanos) + @@ -113,7 +78,6 @@ local servicePort = k.core.v1.service.mixin.spec.portsType; 'store', '--log.level=debug', '--data-dir=/var/thanos/store', - '--cluster.peers=thanos-peers.' + $._config.namespace + '.svc:10900', '--objstore.config=$(OBJSTORE_CONFIG)', ]) + container.withEnv([ @@ -124,7 +88,6 @@ local servicePort = k.core.v1.service.mixin.spec.portsType; ), ]) + container.withPorts([ - { name: 'cluster', containerPort: 10900 }, { name: 'grpc', containerPort: 10901 }, { name: 'http', containerPort: 10902 }, ]) +