mirror of
https://github.com/prometheus-operator/kube-prometheus.git
synced 2025-08-26 08:51:33 +02:00
jsonnet: refactor grafana component to include new kubernetes-grafana library
This commit is contained in:
parent
ba20f92a0f
commit
ade451bf04
@ -1,3 +1,5 @@
|
|||||||
|
local kubernetesGrafana = import 'github.com/brancz/kubernetes-grafana/grafana/grafana.libsonnet';
|
||||||
|
|
||||||
local defaults = {
|
local defaults = {
|
||||||
local defaults = self,
|
local defaults = self,
|
||||||
name: 'grafana',
|
name: 'grafana',
|
||||||
@ -20,88 +22,35 @@ local defaults = {
|
|||||||
if !std.setMember(labelName, ['app.kubernetes.io/version'])
|
if !std.setMember(labelName, ['app.kubernetes.io/version'])
|
||||||
},
|
},
|
||||||
prometheusName: error 'must provide prometheus name',
|
prometheusName: error 'must provide prometheus name',
|
||||||
dashboards: {},
|
|
||||||
// TODO(paulfantom): expose those to have a stable API. After kubernetes-grafana refactor those could probably be removed.
|
|
||||||
rawDashboards: {},
|
|
||||||
folderDashboards: {},
|
|
||||||
containers: [],
|
|
||||||
datasources: [],
|
|
||||||
config: {},
|
|
||||||
ldap: null,
|
|
||||||
plugins: [],
|
|
||||||
env: [],
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function(params) {
|
function(params)
|
||||||
local g = self,
|
local config = defaults + params;
|
||||||
_config:: defaults + params,
|
|
||||||
// Safety check
|
// Safety check
|
||||||
assert std.isObject(g._config.resources),
|
assert std.isObject(config.resources);
|
||||||
|
|
||||||
local glib = (import 'github.com/brancz/kubernetes-grafana/grafana/grafana.libsonnet') + {
|
kubernetesGrafana(config) {
|
||||||
_config+:: {
|
local g = self,
|
||||||
namespace: g._config.namespace,
|
_config+:: config,
|
||||||
versions+:: {
|
|
||||||
grafana: g._config.version,
|
serviceMonitor: {
|
||||||
},
|
apiVersion: 'monitoring.coreos.com/v1',
|
||||||
imageRepos+:: {
|
kind: 'ServiceMonitor',
|
||||||
grafana: std.split(g._config.image, ':')[0],
|
metadata: {
|
||||||
},
|
name: 'grafana',
|
||||||
prometheus+:: {
|
namespace: g._config.namespace,
|
||||||
name: g._config.prometheusName,
|
|
||||||
},
|
|
||||||
grafana+:: {
|
|
||||||
labels: g._config.commonLabels,
|
labels: g._config.commonLabels,
|
||||||
dashboards: g._config.dashboards,
|
|
||||||
resources: g._config.resources,
|
|
||||||
rawDashboards: g._config.rawDashboards,
|
|
||||||
folderDashboards: g._config.folderDashboards,
|
|
||||||
containers: g._config.containers,
|
|
||||||
config+: g._config.config,
|
|
||||||
ldap: g._config.ldap,
|
|
||||||
plugins+: g._config.plugins,
|
|
||||||
env: g._config.env,
|
|
||||||
} + (
|
|
||||||
// Conditionally overwrite default setting.
|
|
||||||
if std.length(g._config.datasources) > 0 then
|
|
||||||
{ datasources: g._config.datasources }
|
|
||||||
else {}
|
|
||||||
),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
config: glib.grafana.config,
|
|
||||||
service: glib.grafana.service,
|
|
||||||
serviceAccount: glib.grafana.serviceAccount,
|
|
||||||
deployment: glib.grafana.deployment,
|
|
||||||
dashboardDatasources: glib.grafana.dashboardDatasources,
|
|
||||||
dashboardSources: glib.grafana.dashboardSources,
|
|
||||||
|
|
||||||
dashboardDefinitions: if std.length(g._config.dashboards) > 0 ||
|
|
||||||
std.length(g._config.rawDashboards) > 0 ||
|
|
||||||
std.length(g._config.folderDashboards) > 0 then {
|
|
||||||
apiVersion: 'v1',
|
|
||||||
kind: 'ConfigMapList',
|
|
||||||
items: glib.grafana.dashboardDefinitions,
|
|
||||||
},
|
|
||||||
serviceMonitor: {
|
|
||||||
apiVersion: 'monitoring.coreos.com/v1',
|
|
||||||
kind: 'ServiceMonitor',
|
|
||||||
metadata: {
|
|
||||||
name: 'grafana',
|
|
||||||
namespace: g._config.namespace,
|
|
||||||
labels: g._config.commonLabels,
|
|
||||||
},
|
|
||||||
spec: {
|
|
||||||
selector: {
|
|
||||||
matchLabels: {
|
|
||||||
'app.kubernetes.io/name': 'grafana',
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
endpoints: [{
|
spec: {
|
||||||
port: 'http',
|
selector: {
|
||||||
interval: '15s',
|
matchLabels: {
|
||||||
}],
|
'app.kubernetes.io/name': 'grafana',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
endpoints: [{
|
||||||
|
port: 'http',
|
||||||
|
interval: '15s',
|
||||||
|
}],
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
}
|
|
||||||
|
@ -39,7 +39,7 @@ local utils = import './lib/utils.libsonnet';
|
|||||||
images: {
|
images: {
|
||||||
alertmanager: 'quay.io/prometheus/alertmanager:v' + $.values.common.versions.alertmanager,
|
alertmanager: 'quay.io/prometheus/alertmanager:v' + $.values.common.versions.alertmanager,
|
||||||
blackboxExporter: 'quay.io/prometheus/blackbox-exporter:v' + $.values.common.versions.blackboxExporter,
|
blackboxExporter: 'quay.io/prometheus/blackbox-exporter:v' + $.values.common.versions.blackboxExporter,
|
||||||
grafana: 'grafana/grafana:v' + $.values.common.versions.grafana,
|
grafana: 'grafana/grafana:' + $.values.common.versions.grafana,
|
||||||
kubeStateMetrics: 'k8s.gcr.io/kube-state-metrics/kube-state-metrics:v' + $.values.common.versions.kubeStateMetrics,
|
kubeStateMetrics: 'k8s.gcr.io/kube-state-metrics/kube-state-metrics:v' + $.values.common.versions.kubeStateMetrics,
|
||||||
nodeExporter: 'quay.io/prometheus/node-exporter:v' + $.values.common.versions.nodeExporter,
|
nodeExporter: 'quay.io/prometheus/node-exporter:v' + $.values.common.versions.nodeExporter,
|
||||||
prometheus: 'quay.io/prometheus/prometheus:v' + $.values.common.versions.prometheus,
|
prometheus: 'quay.io/prometheus/prometheus:v' + $.values.common.versions.prometheus,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user