From f66d9e93d256998f6d4d79827f633ab61cde25f7 Mon Sep 17 00:00:00 2001
From: Tom Wilkie <tomwilkie@users.noreply.github.com>
Date: Thu, 20 Dec 2018 11:56:06 +0000
Subject: [PATCH] Add annotation with hash of config, to trigger re-deployments
 when config changes. (#178)

Signed-off-by: Tom Wilkie <tom.wilkie@gmail.com>
---
 production/ksonnet/loki/config.libsonnet      | 9 ++++++++-
 production/ksonnet/loki/distributor.libsonnet | 1 +
 production/ksonnet/loki/ingester.libsonnet    | 1 +
 production/ksonnet/loki/querier.libsonnet     | 1 +
 4 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/production/ksonnet/loki/config.libsonnet b/production/ksonnet/loki/config.libsonnet
index 60a7219f..e968239b 100644
--- a/production/ksonnet/loki/config.libsonnet
+++ b/production/ksonnet/loki/config.libsonnet
@@ -11,7 +11,7 @@
 
     // December 11 is when we first launched to the public.
     // Assume we can ingest logs that are 5months old.
-    schema_start_date: '2018-07-11', 
+    schema_start_date: '2018-07-11',
 
     commonArgs: {
       'config.file': '/etc/loki/config.yaml',
@@ -84,4 +84,11 @@
     configMap.withData({
       'config.yaml': $.util.manifestYaml($._config.loki),
     }),
+
+  local deployment = $.apps.v1beta1.deployment,
+
+  config_hash_mixin::
+    deployment.mixin.spec.template.metadata.withAnnotationsMixin({
+      config_hash: std.md5(std.toString($._config.loki)),
+    }),
 }
diff --git a/production/ksonnet/loki/distributor.libsonnet b/production/ksonnet/loki/distributor.libsonnet
index 2e44d9ae..ac767705 100644
--- a/production/ksonnet/loki/distributor.libsonnet
+++ b/production/ksonnet/loki/distributor.libsonnet
@@ -16,6 +16,7 @@
 
   distributor_deployment:
     deployment.new('distributor', 3, [$.distributor_container]) +
+    $.config_hash_mixin +
     $.util.configVolumeMount('loki', '/etc/loki') +
     $.util.antiAffinity,
 
diff --git a/production/ksonnet/loki/ingester.libsonnet b/production/ksonnet/loki/ingester.libsonnet
index d9380529..31860be2 100644
--- a/production/ksonnet/loki/ingester.libsonnet
+++ b/production/ksonnet/loki/ingester.libsonnet
@@ -19,6 +19,7 @@
 
   ingester_deployment:
     deployment.new('ingester', 3, [$.ingester_container]) +
+    $.config_hash_mixin +
     $.util.configVolumeMount('loki', '/etc/loki') +
     $.util.antiAffinity +
     deployment.mixin.spec.withMinReadySeconds(60) +
diff --git a/production/ksonnet/loki/querier.libsonnet b/production/ksonnet/loki/querier.libsonnet
index d6f143de..40329ab3 100644
--- a/production/ksonnet/loki/querier.libsonnet
+++ b/production/ksonnet/loki/querier.libsonnet
@@ -15,6 +15,7 @@
 
   querier_deployment:
     deployment.new('querier', 3, [$.querier_container]) +
+    $.config_hash_mixin +
     $.util.configVolumeMount('loki', '/etc/loki') +
     $.util.antiAffinity,
 
-- 
GitLab