Skip to content

Commit

Permalink
Define ksonnet lib for query scheduler. (#4102)
Browse files Browse the repository at this point in the history
* Define ksonnet definition for query scheduler.

* Enable query scheduler based on config flag.
  • Loading branch information
jeschkies authored Aug 10, 2021
1 parent f0d26b4 commit f5cf930
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 0 deletions.
1 change: 1 addition & 0 deletions production/ksonnet/loki/config.libsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
using_boltdb_shipper: true,

wal_enabled: false,
query_scheduler_enabled: false,

// flags for running ingesters/queriers as a statefulset instead of deployment type.
stateful_ingesters: false,
Expand Down
4 changes: 4 additions & 0 deletions production/ksonnet/loki/loki.libsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
(import 'query-frontend.libsonnet') +
(import 'ruler.libsonnet') +

// Query scheduler support
// must be mixed in after frontend and querier so it can override their configuration.
(import 'query-scheduler.libsonnet') +

// Supporting services
(import 'memcached.libsonnet') +

Expand Down
51 changes: 51 additions & 0 deletions production/ksonnet/loki/query-scheduler.libsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@

local k = import 'ksonnet-util/kausal.libsonnet';

{
// Override frontend and querier configuration
_config +:: {
loki+: if $._config.query_scheduler_enabled then {
frontend+: {
scheduler_address: 'query-scheduler.%s.svc.cluster.local:9095' % $._config.namespace,
},
frontend_worker+: {
frontend_address: '',
scheduler_address: 'query-scheduler.%s.svc.cluster.local:9095' % $._config.namespace,
},
} else {},
},

query_scheduler_args:: if $._config.query_scheduler_enabled then
$._config.commonArgs {
target: 'query-scheduler',
'log.level': 'debug',
}
else {},

local container = k.core.v1.container,
query_scheduler_container:: if $._config.query_scheduler_enabled then
container.new('query-scheduler', $._images.query_frontend) +
container.withPorts($.util.defaultPorts) +
container.withArgsMixin(k.util.mapToFlags($.query_scheduler_args)) +
$.jaeger_mixin +
k.util.resourcesRequests('2', '600Mi') +
k.util.resourcesLimits(null, '1200Mi')
else {},

local deployment = k.apps.v1.deployment,
query_scheduler_deployment: if $._config.query_scheduler_enabled then
deployment.new('query-scheduler', 2, [$.query_scheduler_container]) +
$.config_hash_mixin +
k.util.configVolumeMount('loki', '/etc/loki/config') +
k.util.configVolumeMount(
$._config.overrides_configmap_mount_name,
$._config.overrides_configmap_mount_path,
) +
k.util.antiAffinity
else {},

local service = k.core.v1.service,
query_scheduler_service: if $._config.query_scheduler_enabled then
k.util.serviceFor($.query_scheduler_deployment)
else {},
}

0 comments on commit f5cf930

Please sign in to comment.