@@ -14,6 +14,7 @@ local configMapList = k.core.v1.configMapList;
1414 },
1515
1616 grafana+:: {
17+ name: 'grafana' ,
1718 dashboards: {},
1819 datasources: [{
1920 name: 'prometheus' ,
@@ -39,28 +40,27 @@ local configMapList = k.core.v1.configMapList;
3940 local secret = k.core.v1.secret;
4041 local grafanaConfig = { 'grafana.ini' : std.base64 (std.manifestIni ($._config.grafana.config)) } +
4142 if $._config.grafana.ldap != null then { 'ldap.toml' : std.base64 ($._config.grafana.ldap) } else {};
42- secret.new(' grafana-config' , grafanaConfig) +
43+ secret.new($._config. grafana.name + ' -config' , grafanaConfig) +
4344 secret.mixin.metadata.withNamespace($._config.namespace),
4445 dashboardDefinitions:
4546 local configMap = k.core.v1.configMap;
4647 configMapList.new(
4748 [
48- local dashboardName = ' grafana-dashboard-' + std.strReplace (name, '.json' , '' );
49+ local dashboardName = $._config. grafana.name + ' -dashboard-' + std.strReplace (name, '.json' , '' );
4950 configMap.new(dashboardName, { [name]: std.manifestJsonEx ($._config.grafana.dashboards[name], ' ' ) }) +
5051 configMap.mixin.metadata.withNamespace($._config.namespace)
51-
5252 for name in std.objectFields ($._config.grafana.dashboards)
5353 ]
5454 ),
5555 dashboardSources:
5656 local configMap = k.core.v1.configMap;
5757 local dashboardSources = import 'configs/dashboard-sources/dashboards.libsonnet' ;
5858
59- configMap.new(' grafana-dashboards' , { 'dashboards.yaml' : std.manifestJsonEx (dashboardSources, ' ' ) }) +
59+ configMap.new($._config. grafana.name + ' -dashboards' , { 'dashboards.yaml' : std.manifestJsonEx (dashboardSources, ' ' ) }) +
6060 configMap.mixin.metadata.withNamespace($._config.namespace),
6161 dashboardDatasources:
6262 local secret = k.core.v1.secret;
63- secret.new(' grafana-datasources' , { 'datasources.yaml' : std.base64 (std.manifestJsonEx ({
63+ secret.new($._config. grafana.name + ' -datasources' , { 'datasources.yaml' : std.base64 (std.manifestJsonEx ({
6464 apiVersion: 1 ,
6565 datasources: $._config.grafana.datasources,
6666 }, ' ' )) }) +
@@ -71,12 +71,12 @@ local configMapList = k.core.v1.configMapList;
7171
7272 local grafanaServiceNodePort = servicePort.newNamed('http' , 3000 , 'http' );
7373
74- service.new(' grafana' , $.grafana.deployment.spec.selector.matchLabels, grafanaServiceNodePort) +
74+ service.new($._config. grafana.name , $.grafana.deployment.spec.selector.matchLabels, grafanaServiceNodePort) +
7575 service.mixin.metadata.withLabels({ app: 'grafana' }) +
7676 service.mixin.metadata.withNamespace($._config.namespace),
7777 serviceAccount:
7878 local serviceAccount = k.core.v1.serviceAccount;
79- serviceAccount.new(' grafana' ) +
79+ serviceAccount.new($._config. grafana.name ) +
8080 serviceAccount.mixin.metadata.withNamespace($._config.namespace),
8181 deployment:
8282 local deployment = k.apps.v1beta2.deployment;
@@ -92,22 +92,19 @@ local configMapList = k.core.v1.configMapList;
9292 local podLabels = { app: 'grafana' };
9393
9494 local configVolumeName = 'grafana-config' ;
95- local configSecretName = 'grafana-config' ;
96- local configVolume = volume.withName(configVolumeName) + volume.mixin.secret.withSecretName(configSecretName);
95+ local configVolume = volume.withName(configVolumeName) + volume.mixin.secret.withSecretName(self .config.metadata.name);
9796 local configVolumeMount = containerVolumeMount.new(configVolumeName, '/etc/grafana' );
9897
9998 local storageVolumeName = 'grafana-storage' ;
10099 local storageVolume = volume.fromEmptyDir(storageVolumeName);
101100 local storageVolumeMount = containerVolumeMount.new(storageVolumeName, '/var/lib/grafana' );
102101
103102 local datasourcesVolumeName = 'grafana-datasources' ;
104- local datasourcesSecretName = 'grafana-datasources' ;
105- local datasourcesVolume = volume.withName(datasourcesVolumeName) + volume.mixin.secret.withSecretName(datasourcesSecretName);
103+ local datasourcesVolume = volume.withName(datasourcesVolumeName) + volume.mixin.secret.withSecretName(self .dashboardDatasources.metadata.name);
106104 local datasourcesVolumeMount = containerVolumeMount.new(datasourcesVolumeName, '/etc/grafana/provisioning/datasources' );
107105
108106 local dashboardsVolumeName = 'grafana-dashboards' ;
109- local dashboardsConfigMapName = 'grafana-dashboards' ;
110- local dashboardsVolume = volume.withName(dashboardsVolumeName) + volume.mixin.configMap.withName(dashboardsConfigMapName);
107+ local dashboardsVolume = volume.withName(dashboardsVolumeName) + volume.mixin.configMap.withName(self .dashboardSources.metadata.name);
111108 local dashboardsVolumeMount = containerVolumeMount.new(dashboardsVolumeName, '/etc/grafana/provisioning/dashboards' );
112109
113110 local volumeMounts =
@@ -117,9 +114,9 @@ local configMapList = k.core.v1.configMapList;
117114 ] +
118115 (if std.length (self .dashboardDefinitions.items) > 0 then [dashboardsVolumeMount] else []) +
119116 [
120- local dashboardName = std.strReplace (name, '.json' , '' ) ;
121- containerVolumeMount.new('grafana-dashboard-' + dashboardName, '/grafana-dashboard-definitions/0/' + dashboardName)
122- for name in std.objectFields ($._config.grafana.dashboards)
117+ local dashboardName = cfgMap.metadata.name ;
118+ containerVolumeMount.new(dashboardName, '/grafana-dashboard-definitions/0/' + dashboardName)
119+ for cfgMap in self .dashboardDefinitions.items
123120 ] +
124121 if std.length ($._config.grafana.config) > 0 then [configVolumeMount] else [];
125122
@@ -130,10 +127,10 @@ local configMapList = k.core.v1.configMapList;
130127 ] +
131128 (if std.length (self .dashboardDefinitions.items) > 0 then [dashboardsVolume] else []) +
132129 [
133- local dashboardName = 'grafana-dashboard-' + std.strReplace (name, '.json' , '' ) ;
130+ local dashboardName = cfgMap.metadata.name ;
134131 volume.withName(dashboardName) +
135132 volume.mixin.configMap.withName(dashboardName)
136- for name in std.objectFields ($._config.grafana.dashboards)
133+ for cfgMap in self .dashboardDefinitions.items
137134 ] +
138135 if std.length ($._config.grafana.config) > 0 then [configVolume] else [];
139136
@@ -147,14 +144,14 @@ local configMapList = k.core.v1.configMapList;
147144 container.mixin.resources.withRequests($._config.grafana.container.requests) +
148145 container.mixin.resources.withLimits($._config.grafana.container.limits);
149146
150- deployment.new(' grafana' , 1 , c, podLabels) +
147+ deployment.new($._config. grafana.name , 1 , c, podLabels) +
151148 deployment.mixin.metadata.withNamespace($._config.namespace) +
152149 deployment.mixin.metadata.withLabels(podLabels) +
153150 deployment.mixin.spec.selector.withMatchLabels(podLabels) +
154151 deployment.mixin.spec.template.spec.withNodeSelector({ 'beta.kubernetes.io/os' : 'linux' }) +
155152 deployment.mixin.spec.template.spec.withVolumes(volumes) +
156153 deployment.mixin.spec.template.spec.securityContext.withRunAsNonRoot(true ) +
157154 deployment.mixin.spec.template.spec.securityContext.withRunAsUser(65534 ) +
158- deployment.mixin.spec.template.spec.withServiceAccountName('grafana' ),
155+ deployment.mixin.spec.template.spec.withServiceAccountName(self .serviceAccount.metadata.name ),
159156 },
160157}
0 commit comments