diff --git a/README.md b/README.md index 371405d..1ba0bf9 100644 --- a/README.md +++ b/README.md @@ -52,8 +52,8 @@ local grafana = ((import 'grafana/grafana.libsonnet') + { }).grafana; k.core.v1.list.new( - grafana.dashboardDefinitions + [ + grafana.dashboardDefinitions, grafana.dashboardSources, grafana.dashboardDatasources, grafana.deployment, @@ -128,8 +128,8 @@ local grafana = }).grafana; k.core.v1.list.new( - grafana.dashboardDefinitions + [ + grafana.dashboardDefinitions, grafana.dashboardSources, grafana.dashboardDatasources, grafana.deployment, @@ -171,8 +171,8 @@ local grafana = ( ).grafana; k.core.v1.list.new( - grafana.dashboardDefinitions + [ + grafana.dashboardDefinitions, grafana.dashboardSources, grafana.dashboardDatasources, grafana.deployment, @@ -238,8 +238,8 @@ local grafana = ((import 'grafana/grafana.libsonnet') + { }).grafana; k.core.v1.list.new( - grafana.dashboardDefinitions + [ + grafana.dashboardDefinitions, grafana.config, grafana.dashboardSources, grafana.dashboardDatasources, @@ -272,8 +272,8 @@ local grafana = ((import 'grafana/grafana.libsonnet') + { }).grafana; k.core.v1.list.new( - grafana.dashboardDefinitions + [ + grafana.dashboardDefinitions, grafana.dashboardSources, grafana.dashboardDatasources, grafana.deployment, diff --git a/examples/basic-with-mixin.jsonnet b/examples/basic-with-mixin.jsonnet index b5b774c..26ff5a9 100644 --- a/examples/basic-with-mixin.jsonnet +++ b/examples/basic-with-mixin.jsonnet @@ -16,8 +16,8 @@ local grafana = ( ).grafana; k.core.v1.list.new( - grafana.dashboardDefinitions + [ + grafana.dashboardDefinitions, grafana.dashboardSources, grafana.dashboardDatasources, grafana.deployment, diff --git a/examples/basic.jsonnet b/examples/basic.jsonnet index d1873a0..7fc95bd 100644 --- a/examples/basic.jsonnet +++ b/examples/basic.jsonnet @@ -9,8 +9,8 @@ local grafana = ((import 'grafana/grafana.libsonnet') + { }).grafana; k.core.v1.list.new( - grafana.dashboardDefinitions + [ + grafana.dashboardDefinitions, grafana.dashboardSources, grafana.dashboardDatasources, grafana.deployment, diff --git a/examples/custom-ini.jsonnet b/examples/custom-ini.jsonnet index 7059bd0..e7000fd 100644 --- a/examples/custom-ini.jsonnet +++ b/examples/custom-ini.jsonnet @@ -36,8 +36,8 @@ local grafana = ((import 'grafana/grafana.libsonnet') + { }).grafana; k.core.v1.list.new( - grafana.dashboardDefinitions + [ + grafana.dashboardDefinitions, grafana.config, grafana.dashboardSources, grafana.dashboardDatasources, diff --git a/examples/dashboard-definition.jsonnet b/examples/dashboard-definition.jsonnet index 7e3cb58..4a6b3b2 100644 --- a/examples/dashboard-definition.jsonnet +++ b/examples/dashboard-definition.jsonnet @@ -45,8 +45,8 @@ local grafana = }).grafana; k.core.v1.list.new( - grafana.dashboardDefinitions + [ + grafana.dashboardDefinitions, grafana.dashboardSources, grafana.dashboardDatasources, grafana.deployment, diff --git a/examples/plugins.jsonnet b/examples/plugins.jsonnet index e8d7b3d..9b5e85f 100644 --- a/examples/plugins.jsonnet +++ b/examples/plugins.jsonnet @@ -12,8 +12,8 @@ local grafana = ((import 'grafana/grafana.libsonnet') + { }).grafana; k.core.v1.list.new( - grafana.dashboardDefinitions + [ + grafana.dashboardDefinitions, grafana.dashboardSources, grafana.dashboardDatasources, grafana.deployment, diff --git a/grafana/grafana.libsonnet b/grafana/grafana.libsonnet index cd2eb30..10c4570 100644 --- a/grafana/grafana.libsonnet +++ b/grafana/grafana.libsonnet @@ -1,4 +1,5 @@ local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet'; +local configMapList = k.core.v1.configMapList; { _config+:: { @@ -32,7 +33,7 @@ local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet'; }, }, }, - grafanaDashboards: {}, + grafanaDashboards:: {}, grafana+: { [if std.length($._config.grafana.config) > 0 then 'config']: local secret = k.core.v1.secret; @@ -42,13 +43,15 @@ local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet'; secret.mixin.metadata.withNamespace($._config.namespace), dashboardDefinitions: local configMap = k.core.v1.configMap; - [ - local dashboardName = 'grafana-dashboard-' + std.strReplace(name, '.json', ''); - configMap.new(dashboardName, { [name]: std.manifestJsonEx($._config.grafana.dashboards[name], ' ') }) + - configMap.mixin.metadata.withNamespace($._config.namespace) + configMapList.new( + [ + local dashboardName = 'grafana-dashboard-' + std.strReplace(name, '.json', ''); + configMap.new(dashboardName, { [name]: std.manifestJsonEx($._config.grafana.dashboards[name], ' ') }) + + configMap.mixin.metadata.withNamespace($._config.namespace) - for name in std.objectFields($._config.grafana.dashboards) - ], + for name in std.objectFields($._config.grafana.dashboards) + ] + ), dashboardSources: local configMap = k.core.v1.configMap; local dashboardSources = import 'configs/dashboard-sources/dashboards.libsonnet'; @@ -111,8 +114,8 @@ local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet'; [ storageVolumeMount, datasourcesVolumeMount, - dashboardsVolumeMount, ] + + (if std.length(self.dashboardDefinitions.items) > 0 then [dashboardsVolumeMount] else []) + [ local dashboardName = std.strReplace(name, '.json', ''); containerVolumeMount.new('grafana-dashboard-' + dashboardName, '/grafana-dashboard-definitions/0/' + dashboardName) @@ -124,8 +127,8 @@ local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet'; [ storageVolume, datasourcesVolume, - dashboardsVolume, ] + + (if std.length(self.dashboardDefinitions.items) > 0 then [dashboardsVolume] else []) + [ local dashboardName = 'grafana-dashboard-' + std.strReplace(name, '.json', ''); volume.withName(dashboardName) +