Skip to content

Commit

Permalink
Added ruler_enabled and alertmanager_enabled flags. (grafana/cortex-j…
Browse files Browse the repository at this point in the history
  • Loading branch information
pstibrany authored Jun 29, 2020
1 parent 6f5c7f1 commit 56f59b2
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 36 deletions.
52 changes: 29 additions & 23 deletions operations/mimir/alertmanager.libsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
local statefulSet = $.apps.v1.statefulSet,
local service = $.core.v1.service,


alertmanager_args::
{
target: 'alertmanager',
Expand All @@ -18,32 +17,39 @@
},

alertmanager_pvc::
pvc.new() +
pvc.mixin.metadata.withName('alertmanager-data') +
pvc.mixin.spec.withAccessModes('ReadWriteOnce') +
pvc.mixin.spec.resources.withRequests({ storage: '100Gi' }),
if $._config.alertmanager_enabled then
pvc.new() +
pvc.mixin.metadata.withName('alertmanager-data') +
pvc.mixin.spec.withAccessModes('ReadWriteOnce') +
pvc.mixin.spec.resources.withRequests({ storage: '100Gi' })
else {},

alertmanager_container::
container.new('alertmanager', $._images.alertmanager) +
container.withPorts($.util.defaultPorts) +
container.withArgsMixin($.util.mapToFlags($.alertmanager_args)) +
container.withVolumeMountsMixin([volumeMount.new('alertmanager-data', '/data')]) +
$.util.resourcesRequests('100m', '1Gi') +
$.util.readinessProbe +
$.jaeger_mixin,

if $._config.alertmanager_enabled then
container.new('alertmanager', $._images.alertmanager) +
container.withPorts($.util.defaultPorts) +
container.withArgsMixin($.util.mapToFlags($.alertmanager_args)) +
container.withVolumeMountsMixin([volumeMount.new('alertmanager-data', '/data')]) +
$.util.resourcesRequests('100m', '1Gi') +
$.util.readinessProbe +
$.jaeger_mixin
else {},

alertmanager_statefulset:
statefulSet.new('alertmanager', 1, [$.alertmanager_container], $.alertmanager_pvc) +
statefulSet.mixin.spec.withServiceName('alertmanager') +
statefulSet.mixin.metadata.withNamespace($._config.namespace) +
statefulSet.mixin.metadata.withLabels({ name: 'alertmanager' }) +
statefulSet.mixin.spec.template.metadata.withLabels({ name: 'alertmanager' }) +
statefulSet.mixin.spec.selector.withMatchLabels({ name: 'alertmanager' }) +
statefulSet.mixin.spec.template.spec.securityContext.withRunAsUser(0) +
statefulSet.mixin.spec.updateStrategy.withType('RollingUpdate') +
statefulSet.mixin.spec.template.spec.withTerminationGracePeriodSeconds(900),
if $._config.alertmanager_enabled then
statefulSet.new('alertmanager', 1, [$.alertmanager_container], $.alertmanager_pvc) +
statefulSet.mixin.spec.withServiceName('alertmanager') +
statefulSet.mixin.metadata.withNamespace($._config.namespace) +
statefulSet.mixin.metadata.withLabels({ name: 'alertmanager' }) +
statefulSet.mixin.spec.template.metadata.withLabels({ name: 'alertmanager' }) +
statefulSet.mixin.spec.selector.withMatchLabels({ name: 'alertmanager' }) +
statefulSet.mixin.spec.template.spec.securityContext.withRunAsUser(0) +
statefulSet.mixin.spec.updateStrategy.withType('RollingUpdate') +
statefulSet.mixin.spec.template.spec.withTerminationGracePeriodSeconds(900)
else {},

alertmanager_service:
$.util.serviceFor($.alertmanager_statefulset),
if $._config.alertmanager_enabled then
$.util.serviceFor($.alertmanager_statefulset)
else {},
}
3 changes: 3 additions & 0 deletions operations/mimir/config.libsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@
'ring.heartbeat-timeout': '10m',
},

ruler_enabled: false,
ruler_client_type: error 'you must specify a storage backend type for the ruler (azure, configdb, gcs, s3)',
// TODO: Generic client generating functions would be nice.
ruler_s3_bucket_name: $._config.s3_bucket_name,
Expand Down Expand Up @@ -308,6 +309,8 @@
schemaID: std.md5(std.toString($._config.schema)),

enable_pod_priorities: true,

alertmanager_enabled: false,
},

local configMap = $.core.v1.configMap,
Expand Down
1 change: 1 addition & 0 deletions operations/mimir/cortex.libsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
(import 'query-frontend.libsonnet') +
(import 'table-manager.libsonnet') +
(import 'ruler.libsonnet') +
(import 'alertmanager.libsonnet') +

// Supporting services
(import 'etcd.libsonnet') +
Expand Down
32 changes: 19 additions & 13 deletions operations/mimir/ruler.libsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,31 @@
},

ruler_container::
container.new('ruler', $._images.ruler) +
container.withPorts($.util.defaultPorts) +
container.withArgsMixin($.util.mapToFlags($.ruler_args)) +
$.util.resourcesRequests('1', '6Gi') +
$.util.resourcesLimits('16', '16Gi') +
$.util.readinessProbe +
$.jaeger_mixin,
if $._config.ruler_enabled then
container.new('ruler', $._images.ruler) +
container.withPorts($.util.defaultPorts) +
container.withArgsMixin($.util.mapToFlags($.ruler_args)) +
$.util.resourcesRequests('1', '6Gi') +
$.util.resourcesLimits('16', '16Gi') +
$.util.readinessProbe +
$.jaeger_mixin
else {},

local deployment = $.apps.v1.deployment,

ruler_deployment:
deployment.new('ruler', 2, [$.ruler_container]) +
deployment.mixin.spec.template.spec.withTerminationGracePeriodSeconds(600) +
$.util.antiAffinity +
$.util.configVolumeMount('overrides', '/etc/cortex') +
$.storage_config_mixin,
if $._config.ruler_enabled then
deployment.new('ruler', 2, [$.ruler_container]) +
deployment.mixin.spec.template.spec.withTerminationGracePeriodSeconds(600) +
$.util.antiAffinity +
$.util.configVolumeMount('overrides', '/etc/cortex') +
$.storage_config_mixin
else {},

local service = $.core.v1.service,

ruler_service:
$.util.serviceFor($.ruler_deployment),
if $._config.ruler_enabled then
$.util.serviceFor($.ruler_deployment)
else {},
}

0 comments on commit 56f59b2

Please sign in to comment.