1+ local kubernetesGrafana = import 'github.com/brancz/kubernetes-grafana/grafana/grafana.libsonnet' ;
2+
13local defaults = {
24 local defaults = self ,
35 name: 'grafana' ,
@@ -20,88 +22,35 @@ local defaults = {
2022 if !std.setMember (labelName, ['app.kubernetes.io/version' ])
2123 },
2224 prometheusName: error 'must provide prometheus name' ,
23- dashboards: {},
24- // TODO(paulfantom): expose those to have a stable API. After kubernetes-grafana refactor those could probably be removed.
25- rawDashboards: {},
26- folderDashboards: {},
27- containers: [],
28- datasources: [],
29- config: {},
30- ldap: null ,
31- plugins: [],
32- env: [],
3325};
3426
35- function (params) {
36- local g = self ,
37- _config:: defaults + params,
27+ function (params)
28+ local config = defaults + params;
3829 // Safety check
39- assert std.isObject (g._config. resources),
30+ assert std.isObject (config. resources);
4031
41- local glib = (import 'github.com/brancz/kubernetes-grafana/grafana/grafana.libsonnet' ) + {
42- _config+:: {
43- namespace: g._config.namespace,
44- versions+:: {
45- grafana: g._config.version,
46- },
47- imageRepos+:: {
48- grafana: std.split (g._config.image, ':' )[0 ],
49- },
50- prometheus+:: {
51- name: g._config.prometheusName,
52- },
53- grafana+:: {
54- labels: g._config.commonLabels,
55- dashboards: g._config.dashboards,
56- resources: g._config.resources,
57- rawDashboards: g._config.rawDashboards,
58- folderDashboards: g._config.folderDashboards,
59- containers: g._config.containers,
60- config+: g._config.config,
61- ldap: g._config.ldap,
62- plugins+: g._config.plugins,
63- env: g._config.env,
64- } + (
65- // Conditionally overwrite default setting.
66- if std.length (g._config.datasources) > 0 then
67- { datasources: g._config.datasources }
68- else {}
69- ),
70- },
71- },
32+ kubernetesGrafana(config) {
33+ local g = self ,
34+ _config+:: config,
7235
73- config: glib.grafana.config,
74- service: glib.grafana.service,
75- serviceAccount: glib.grafana.serviceAccount,
76- deployment: glib.grafana.deployment,
77- dashboardDatasources: glib.grafana.dashboardDatasources,
78- dashboardSources: glib.grafana.dashboardSources,
79-
80- dashboardDefinitions: if std.length (g._config.dashboards) > 0 ||
81- std.length (g._config.rawDashboards) > 0 ||
82- std.length (g._config.folderDashboards) > 0 then {
83- apiVersion: 'v1' ,
84- kind: 'ConfigMapList' ,
85- items: glib.grafana.dashboardDefinitions,
86- },
87- serviceMonitor: {
88- apiVersion: 'monitoring.coreos.com/v1' ,
89- kind: 'ServiceMonitor' ,
90- metadata: {
91- name: 'grafana' ,
92- namespace: g._config.namespace,
93- labels: g._config.commonLabels,
94- },
95- spec: {
96- selector: {
97- matchLabels: {
98- 'app.kubernetes.io/name' : 'grafana' ,
36+ serviceMonitor: {
37+ apiVersion: 'monitoring.coreos.com/v1' ,
38+ kind: 'ServiceMonitor' ,
39+ metadata: {
40+ name: 'grafana' ,
41+ namespace: g._config.namespace,
42+ labels: g._config.commonLabels,
43+ },
44+ spec: {
45+ selector: {
46+ matchLabels: {
47+ 'app.kubernetes.io/name' : 'grafana' ,
48+ },
9949 },
50+ endpoints: [{
51+ port: 'http' ,
52+ interval: '15s' ,
53+ }],
10054 },
101- endpoints: [{
102- port: 'http' ,
103- interval: '15s' ,
104- }],
10555 },
106- },
107- }
56+ }
0 commit comments