Skip to content

Commit ade451b

Browse files
committed
jsonnet: refactor grafana component to include new kubernetes-grafana library
1 parent ba20f92 commit ade451b

File tree

2 files changed

+27
-78
lines changed

2 files changed

+27
-78
lines changed
Lines changed: 26 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
local kubernetesGrafana = import 'github.com/brancz/kubernetes-grafana/grafana/grafana.libsonnet';
2+
13
local 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+
}

jsonnet/kube-prometheus/main.libsonnet

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ local utils = import './lib/utils.libsonnet';
3939
images: {
4040
alertmanager: 'quay.io/prometheus/alertmanager:v' + $.values.common.versions.alertmanager,
4141
blackboxExporter: 'quay.io/prometheus/blackbox-exporter:v' + $.values.common.versions.blackboxExporter,
42-
grafana: 'grafana/grafana:v' + $.values.common.versions.grafana,
42+
grafana: 'grafana/grafana:' + $.values.common.versions.grafana,
4343
kubeStateMetrics: 'k8s.gcr.io/kube-state-metrics/kube-state-metrics:v' + $.values.common.versions.kubeStateMetrics,
4444
nodeExporter: 'quay.io/prometheus/node-exporter:v' + $.values.common.versions.nodeExporter,
4545
prometheus: 'quay.io/prometheus/prometheus:v' + $.values.common.versions.prometheus,

0 commit comments

Comments
 (0)