Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
kube-prometheus
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
GitHub Mirror
prometheus-operator
kube-prometheus
Commits
f1bd7af6
Unverified
Commit
f1bd7af6
authored
4 years ago
by
paulfantom
Browse files
Options
Downloads
Patches
Plain Diff
jsonnet: helmize :)
Signed-off-by:
paulfantom
<
pawel@krupa.net.pl
>
parent
5624c5a9
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
example.jsonnet
+4
-2
4 additions, 2 deletions
example.jsonnet
examples/kustomize.jsonnet
+11
-6
11 additions, 6 deletions
examples/kustomize.jsonnet
jsonnet/kube-prometheus/kube-prometheus.libsonnet
+82
-88
82 additions, 88 deletions
jsonnet/kube-prometheus/kube-prometheus.libsonnet
with
97 additions
and
96 deletions
example.jsonnet
+
4
−
2
View file @
f1bd7af6
...
@@ -9,8 +9,10 @@ local kp =
...
@@ -9,8 +9,10 @@ local kp =
// (import 'kube-prometheus/kube-prometheus-custom-metrics.libsonnet') +
// (import 'kube-prometheus/kube-prometheus-custom-metrics.libsonnet') +
// (import 'kube-prometheus/kube-prometheus-external-metrics.libsonnet') +
// (import 'kube-prometheus/kube-prometheus-external-metrics.libsonnet') +
{
{
_config
+::
{
values
+::
{
namespace
:
'monitoring'
,
common
+:
{
namespace
:
'monitoring'
,
},
},
},
};
};
...
...
This diff is collapsed.
Click to expand it.
examples/kustomize.jsonnet
+
11
−
6
View file @
f1bd7af6
local
kp
=
local
kp
=
(
import
'kube-prometheus/kube-prometheus.libsonnet'
)
+
{
(
import
'kube-prometheus/kube-prometheus.libsonnet'
)
+
{
_config
+::
{
values
+::
{
namespace
:
'monitoring'
,
common
+:
{
namespace
:
'monitoring'
,
},
},
},
};
};
local
manifests
=
local
manifests
=
// Uncomment line below to enable vertical auto scaling of kube-state-metrics
// Uncomment line below to enable vertical auto scaling of kube-state-metrics
//{ ['ksm-autoscaler-' + name]: kp.ksmAutoscaler[name] for name in std.objectFields(kp.ksmAutoscaler) } +
//{ ['ksm-autoscaler-' + name]: kp.ksmAutoscaler[name] for name in std.objectFields(kp.ksmAutoscaler) } +
{
[
'setup/0namespace-
'
+
name
]
:
kp
.
kubePrometheus
[
name
]
for
name
in
std
.
objectFields
(
kp
.
kubePrometheus
)
}
+
{
'setup/0namespace-
namespace'
:
kp
.
kubePrometheus
.
name
space
}
+
{
{
[
'setup/prometheus-operator-'
+
name
]:
kp
.
prometheusOperator
[
name
]
[
'setup/prometheus-operator-'
+
name
]:
kp
.
prometheusOperator
[
name
]
for
name
in
std
.
filter
((
function
(
name
)
name
!
=
'serviceMonitor'
),
std
.
objectFields
(
kp
.
prometheusOperator
))
for
name
in
std
.
filter
((
function
(
name
)
name
!
=
'serviceMonitor'
&&
name
!
=
'prometheusRule'
),
std
.
objectFields
(
kp
.
prometheusOperator
))
}
+
}
+
// serviceMonitor
is
separated so that
i
t can be created after the CRDs are ready
// serviceMonitor
and prometheusRule are
separated so that t
hey
can be created after the CRDs are ready
{
'prometheus-operator-serviceMonitor'
:
kp
.
prometheusOperator
.
serviceMonitor
}
+
{
'prometheus-operator-serviceMonitor'
:
kp
.
prometheusOperator
.
serviceMonitor
}
+
{
'prometheus-operator-prometheusRule'
:
kp
.
prometheusOperator
.
prometheusRule
}
+
{
'kube-prometheus-prometheusRule'
:
kp
.
kubePrometheus
.
prometheusRule
}
+
{
[
'node-exporter-'
+
name
]:
kp
.
nodeExporter
[
name
]
for
name
in
std
.
objectFields
(
kp
.
nodeExporter
)
}
+
{
[
'node-exporter-'
+
name
]:
kp
.
nodeExporter
[
name
]
for
name
in
std
.
objectFields
(
kp
.
nodeExporter
)
}
+
{
[
'blackbox-exporter-'
+
name
]:
kp
.
blackboxExporter
[
name
]
for
name
in
std
.
objectFields
(
kp
.
blackboxExporter
)
}
+
{
[
'blackbox-exporter-'
+
name
]:
kp
.
blackboxExporter
[
name
]
for
name
in
std
.
objectFields
(
kp
.
blackboxExporter
)
}
+
{
[
'kube-state-metrics-'
+
name
]:
kp
.
kubeStateMetrics
[
name
]
for
name
in
std
.
objectFields
(
kp
.
kubeStateMetrics
)
}
+
{
[
'kube-state-metrics-'
+
name
]:
kp
.
kubeStateMetrics
[
name
]
for
name
in
std
.
objectFields
(
kp
.
kubeStateMetrics
)
}
+
{
[
'alertmanager-'
+
name
]:
kp
.
alertmanager
[
name
]
for
name
in
std
.
objectFields
(
kp
.
alertmanager
)
}
+
{
[
'alertmanager-'
+
name
]:
kp
.
alertmanager
[
name
]
for
name
in
std
.
objectFields
(
kp
.
alertmanager
)
}
+
{
[
'prometheus-'
+
name
]:
kp
.
prometheus
[
name
]
for
name
in
std
.
objectFields
(
kp
.
prometheus
)
}
+
{
[
'prometheus-'
+
name
]:
kp
.
prometheus
[
name
]
for
name
in
std
.
objectFields
(
kp
.
prometheus
)
}
+
{
[
'prometheus-adapter-'
+
name
]:
kp
.
prometheusAdapter
[
name
]
for
name
in
std
.
objectFields
(
kp
.
prometheusAdapter
)
}
+
{
[
'prometheus-adapter-'
+
name
]:
kp
.
prometheusAdapter
[
name
]
for
name
in
std
.
objectFields
(
kp
.
prometheusAdapter
)
}
+
{
[
'grafana-'
+
name
]:
kp
.
grafana
[
name
]
for
name
in
std
.
objectFields
(
kp
.
grafana
)
};
{
[
'grafana-'
+
name
]:
kp
.
grafana
[
name
]
for
name
in
std
.
objectFields
(
kp
.
grafana
)
}
+
{
[
'kubernetes-'
+
name
]:
kp
.
kubernetesMixin
[
name
]
for
name
in
std
.
objectFields
(
kp
.
kubernetesMixin
)
};
local
kustomizationResourceFile
(
name
)
=
'./manifests/'
+
name
+
'.yaml'
;
local
kustomizationResourceFile
(
name
)
=
'./manifests/'
+
name
+
'.yaml'
;
local
kustomization
=
{
local
kustomization
=
{
...
...
This diff is collapsed.
Click to expand it.
jsonnet/kube-prometheus/kube-prometheus.libsonnet
+
82
−
88
View file @
f1bd7af6
local
alertmanager
=
import
'./alertmanager/alertmanager.libsonnet'
;
local
alertmanager
=
import
'./alertmanager/alertmanager.libsonnet'
;
local
blackboxExporter
=
import
'./blackbox-exporter/blackbox-exporter.libsonnet'
;
local
blackboxExporter
=
import
'./blackbox-exporter/blackbox-exporter.libsonnet'
;
local
customMixin
=
import
'./mixin/custom.libsonnet'
;
local
grafana
=
import
'./grafana/grafana.libsonnet'
;
local
grafana
=
import
'./grafana/grafana.libsonnet'
;
local
kubeStateMetrics
=
import
'./kube-state-metrics/kube-state-metrics.libsonnet'
;
local
kubeStateMetrics
=
import
'./kube-state-metrics/kube-state-metrics.libsonnet'
;
local
customMixin
=
import
'./mixin/custom.libsonnet'
;
local
kubernetesMixin
=
import
'./mixin/kubernetes.libsonnet'
;
local
kubernetesMixin
=
import
'./mixin/kubernetes.libsonnet'
;
local
nodeExporter
=
import
'./node-exporter/node-exporter.libsonnet'
;
local
nodeExporter
=
import
'./node-exporter/node-exporter.libsonnet'
;
local
prometheusAdapter
=
import
'./prometheus-adapter/prometheus-adapter.libsonnet'
;
local
prometheusAdapter
=
import
'./prometheus-adapter/prometheus-adapter.libsonnet'
;
local
prometheusOperator
=
import
'./prometheus-operator/prometheus-operator.libsonnet'
;
local
prometheusOperator
=
import
'./prometheus-operator/prometheus-operator.libsonnet'
;
local
prometheus
=
import
'./prometheus/prometheus.libsonnet'
;
local
prometheus
=
import
'./prometheus/prometheus.libsonnet'
;
local
prometheusOperator
=
import
'./prometheus-operator/prometheus-operator.libsonnet'
;
{
{
local
all
=
self
,
// using `values` as this is similar to helm
al
ertmanager
:
alertmanager
(
{
v
al
ues
::
{
name
:
$
.
_config
.
alertmanagerName
,
common
:
{
namespace
:
$
.
_config
.
namespace
,
namespace
:
'default'
,
version
:
'0.21.0'
,
ruleLabels
:
{
image
:
'quay.io/prometheus/alertmanager:v0.21.0
'
,
role
:
'alert-rules
'
,
mixin
+:
{
prometheus
:
$
.
values
.
prometheus
.
name
,
ruleLabels
:
$
.
_config
.
ruleLabels
,
}
,
},
},
}),
alertmanager
:
{
blackboxExporter
:
blackboxExporter
({
name
:
'main'
,
namespace
:
$
.
_config
.
namespace
,
namespace
:
$
.
values
.
common
.
namespace
,
version
:
'0.18.0'
,
version
:
'0.21.0'
,
image
:
'quay.io/prometheus/blackbox-exporter:v0.18.0'
,
image
:
'quay.io/prometheus/alertmanager:v0.21.0'
,
}),
mixin
+:
{
// TODO(paulfantom) This should be done by iterating over all objects and looking for object.mixin.grafanaDashboards
ruleLabels
:
$
.
values
.
common
.
ruleLabels
,
local
allDashboards
=
$
.
nodeExporter
.
mixin
.
grafanaDashboards
+
},
$
.
prometheus
.
mixin
.
grafanaDashboards
+
},
$
.
kubernetesMixin
.
mixin
.
grafanaDashboards
,
blackboxExporter
:
{
grafana
:
grafana
({
namespace
:
$
.
values
.
common
.
namespace
,
namespace
:
$
.
_config
.
namespace
,
version
:
'0.18.0'
,
version
:
'7.3.5'
,
image
:
'quay.io/prometheus/blackbox-exporter:v0.18.0'
,
image
:
'grafana/grafana:v7.3.7'
,
prometheusName
:
$
.
_config
.
prometheusName
,
dashboards
:
allDashboards
,
}),
kubeStateMetrics
:
kubeStateMetrics
({
namespace
:
$
.
_config
.
namespace
,
version
:
'1.9.7'
,
image
:
'quay.io/coreos/kube-state-metrics:v1.9.7'
,
mixin
+:
{
ruleLabels
:
$
.
_config
.
ruleLabels
,
},
},
}),
grafana
:
{
nodeExporter
:
nodeExporter
({
namespace
:
$
.
values
.
common
.
namespace
,
namespace
:
$
.
_config
.
namespace
,
version
:
'7.3.5'
,
version
:
'1.0.1
'
,
image
:
'grafana/grafana:v7.3.7
'
,
image
:
'quay.io/prometheus/node-exporter:v1.0.1'
,
prometheusName
:
$
.
values
.
prometheus
.
name
,
mixin
+:
{
// TODO(paulfantom) This should be done by iterating over all objects and looking for object.mixin.grafanaDashboards
ruleLabels
:
$
.
_config
.
ruleLabel
s
,
dashboards
:
$
.
nodeExporter
.
mixin
.
grafanaDashboards
+
$
.
prometheus
.
mixin
.
grafanaDashboards
+
$
.
kubernetesMixin
.
mixin
.
grafanaDashboard
s
,
},
},
}),
kubeStateMetrics
:
{
prometheus
:
prometheus
({
namespace
:
$
.
values
.
common
.
namespace
,
namespace
:
$
.
_config
.
namespace
,
version
:
'1.9.7'
,
version
:
'2.24.0'
,
image
:
'quay.io/coreos/kube-state-metrics:v1.9.7'
,
image
:
'quay.io/prometheus/prometheus:v2.24.0'
,
mixin
+:
{
ruleLabels
:
$
.
values
.
common
.
ruleLabels
},
name
:
$
.
_config
.
prometheusName
,
alertmanagerName
:
$
.
_config
.
alertmanagerName
,
mixin
+:
{
ruleLabels
:
$
.
_config
.
ruleLabels
,
},
},
}),
nodeExporter
:
{
prometheusAdapter
:
prometheusAdapter
({
namespace
:
$
.
values
.
common
.
namespace
,
namespace
:
$
.
_config
.
namespace
,
version
:
'1.0.1'
,
version
:
'0.8.2'
,
image
:
'quay.io/prometheus/node-exporter:v1.0.1'
,
image
:
'directxman12/k8s-prometheus-adapter:v0.8.2'
,
mixin
+:
{
ruleLabels
:
$
.
values
.
common
.
ruleLabels
},
prometheusURL
:
'http://prometheus-'
+
$
.
_config
.
prometheusName
+
'.'
+
$
.
_config
.
namespace
+
'.svc.cluster.local:9090/'
,
}),
prometheusOperator
:
prometheusOperator
({
namespace
:
$
.
_config
.
namespace
,
version
:
'0.45.0'
,
image
:
'quay.io/prometheus-operator/prometheus-operator:v0.45.0'
,
configReloaderImage
:
'quay.io/prometheus-operator/prometheus-config-reloader:v0.45.0'
,
commonLabels
+:
{
'app.kubernetes.io/part-of'
:
'kube-prometheus'
,
},
},
mixin
+:
{
prometheus
:
{
ruleLabels
:
$
.
_config
.
ruleLabels
,
namespace
:
$
.
values
.
common
.
namespace
,
version
:
'2.24.0'
,
image
:
'quay.io/prometheus/prometheus:v2.24.0'
,
name
:
'k8s'
,
alertmanagerName
:
$
.
values
.
alertmanager
.
name
,
mixin
+:
{
ruleLabels
:
$
.
values
.
common
.
ruleLabels
},
},
},
}),
prometheusAdapter
:
{
kubernetesMixin
:
kubernetesMixin
({
namespace
:
$
.
values
.
common
.
namespace
,
namespace
:
$
.
_config
.
namespace
,
version
:
'0.8.2'
,
mixin
+:
{
image
:
'directxman12/k8s-prometheus-adapter:v0.8.2'
,
ruleLabels
:
$
.
_config
.
ruleLabels
,
prometheusURL
:
'http://prometheus-'
+
$
.
values
.
prometheus
.
name
+
'.'
+
$
.
values
.
common
.
namespace
+
'.svc.cluster.local:9090/'
,
},
},
}),
prometheusOperator
:
{
kubePrometheus
:
customMixin
({
namespace
:
$
.
values
.
common
.
namespace
,
namespace
:
$
.
_config
.
namespace
,
version
:
'0.45.0'
,
mixin
+:
{
image
:
'quay.io/prometheus-operator/prometheus-operator:v0.45.0'
,
ruleLabels
:
$
.
_config
.
ruleLabels
,
configReloaderImage
:
'quay.io/prometheus-operator/prometheus-config-reloader:v0.45.0'
,
commonLabels
+:
{
'app.kubernetes.io/part-of'
:
'kube-prometheus'
,
},
mixin
+:
{
ruleLabels
:
$
.
values
.
common
.
ruleLabels
},
},
},
})
+
{
kubernetesMixin
:
{
namespace
:
$
.
values
.
common
.
namespace
,
mixin
+:
{
ruleLabels
:
$
.
values
.
common
.
ruleLabels
},
},
kubePrometheus
:
{
namespace
:
$
.
values
.
common
.
namespace
,
mixin
+:
{
ruleLabels
:
$
.
values
.
common
.
ruleLabels
},
},
},
alertmanager
:
alertmanager
(
$
.
values
.
alertmanager
),
blackboxExporter
:
blackboxExporter
(
$
.
values
.
blackboxExporter
),
grafana
:
grafana
(
$
.
values
.
grafana
),
kubeStateMetrics
:
kubeStateMetrics
(
$
.
values
.
kubeStateMetrics
),
nodeExporter
:
nodeExporter
(
$
.
values
.
nodeExporter
),
prometheus
:
prometheus
(
$
.
values
.
prometheus
),
prometheusAdapter
:
prometheusAdapter
(
$
.
values
.
prometheusAdapter
),
prometheusOperator
:
prometheusOperator
(
$
.
values
.
prometheusOperator
),
kubernetesMixin
:
kubernetesMixin
(
$
.
values
.
kubernetesMixin
),
kubePrometheus
:
customMixin
(
$
.
values
.
kubePrometheus
)
+
{
namespace
:
{
namespace
:
{
apiVersion
:
'v1'
,
apiVersion
:
'v1'
,
kind
:
'Namespace'
,
kind
:
'Namespace'
,
metadata
:
{
metadata
:
{
name
:
$
.
_config
.
namespace
,
name
:
$
.
values
.
kubePrometheus
.
namespace
,
},
},
},
},
},
},
}
+
{
}
_config
+::
{
namespace
:
'default'
,
prometheusName
:
'k8s'
,
alertmanagerName
:
'main'
,
ruleLabels
:
{
role
:
'alert-rules'
,
prometheus
:
$
.
_config
.
prometheusName
,
},
},
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment