From 253abe0f965e06c5ec79e78cd67c732197c4db4a Mon Sep 17 00:00:00 2001
From: Damien Lespiau <damien@weave.works>
Date: Mon, 1 Oct 2018 17:42:07 +0100
Subject: [PATCH] contrib/kube-prometheus: Introduce a withImageRepository
 mixin

This mixin replaces all images prefixes by $repository to generate manifests
that will point to an internal registry.
---
 .../kube-prometheus-config-mixins.libsonnet   | 20 +++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 jsonnet/kube-prometheus/kube-prometheus-config-mixins.libsonnet

diff --git a/jsonnet/kube-prometheus/kube-prometheus-config-mixins.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-config-mixins.libsonnet
new file mode 100644
index 00000000..ad278407
--- /dev/null
+++ b/jsonnet/kube-prometheus/kube-prometheus-config-mixins.libsonnet
@@ -0,0 +1,20 @@
+local l = import 'lib/lib.libsonnet';
+
+// withImageRepository is a mixin that replaces all images prefixes by repository. eg.
+// quay.io/coreos/addon-resizer -> $repository/addon-resizer
+// grafana/grafana -> grafana $repository/grafana
+local withImageRepository(repository) = {
+  local oldRepos = super._config.imageRepos,
+  local substituteRepository(image, repository) =
+    if repository == null then image else repository + '/' + l.imageName(image),
+  _config+:: {
+    imageRepos:: {
+      [field]: substituteRepository(oldRepos[field], repository),
+      for field in std.objectFields(oldRepos)
+    }
+  },
+};
+
+{
+  withImageRepository:: withImageRepository,
+}
-- 
GitLab