Skip to content

Commit

Permalink
Add support to configure kubeStateMetrics arguments
Browse files Browse the repository at this point in the history
  • Loading branch information
54nd20 committed Nov 26, 2024
1 parent c57aac8 commit 3cae78e
Show file tree
Hide file tree
Showing 30 changed files with 22,368 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .cruft.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"name": "prometheus",
"slug": "prometheus",
"parameter_key": "prometheus",
"test_cases": "defaults multi rewrite-registries thanos cluster-monitoring additional_rules resourcequota kubernetes_1.25 grafana-ingress additional_nodeexporter_args grafana-storage additional-netpols kubernetes_1.26 kubernetes_1.27 kubernetes_1.28 kubernetes_1.29",
"test_cases": "defaults multi rewrite-registries thanos cluster-monitoring additional_rules resourcequota kubernetes_1.25 grafana-ingress additional_nodeexporter_args additional_kubestatemetrics_args grafana-storage additional-netpols kubernetes_1.26 kubernetes_1.27 kubernetes_1.28 kubernetes_1.29",
"add_lib": "y",
"add_pp": "n",
"add_golden": "y",
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ jobs:
- kubernetes_1.25
- grafana-ingress
- additional_nodeexporter_args
- additional_kubestatemetrics_args
- grafana-storage
- additional-netpols
- kubernetes_1.26
Expand Down Expand Up @@ -72,6 +73,7 @@ jobs:
- kubernetes_1.25
- grafana-ingress
- additional_nodeexporter_args
- additional_kubestatemetrics_args
- grafana-storage
- additional-netpols
- kubernetes_1.26
Expand Down
3 changes: 3 additions & 0 deletions class/defaults.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ parameters:
enabled: false
config: {}
overrides: {}
containers:
kubeStateMetrics:
additionalArgs: []
kubePrometheus:
enabled: false
config: {}
Expand Down
24 changes: 23 additions & 1 deletion component/common.libsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,28 @@ local grafanaStorage(instanceName, instanceParams) = if instanceParams.grafana.p
},
} else {};

local addKubeStateMetricsContainerArgs(instanceName, instanceParams) = {
kubeStateMetrics+: {
deployment+: {
spec+: {
template+: {
spec+: {
containers: [
if c.name == 'kube-state-metrics' then
c {
args+: instanceParams.kubeStateMetrics.containers.kubeStateMetrics.additionalArgs,
}
else
c
for c in super.containers
],
},
},
},
},
},
};

local patchKubeControlPlaneSelectors(instanceName) = {
kubernetesControlPlane+:: {
// We override the default kube-state-metrics and node-exporter job selectors defined by the library because
Expand Down Expand Up @@ -301,7 +323,7 @@ local stackForInstance = function(instanceName)
[if std.objectHas(confWithBase.prometheus.config, 'thanos') then 'thanos']: confWithBase.prometheus.config.thanos,
},
} + resetAlertManagerConfig + patchGrafanaDataSource(instanceName) + patchKubeControlPlaneSelectors(instanceName) + com.makeMergeable(cm),
} + grafanaStorage(instanceName, confWithBase) + grafanaIngress(instanceName, confWithBase) + addNodeExporterContainerArgs(instanceName, confWithBase) + patchPrometheusNetworkPolicy(instanceName) + patchNetworkPolicy('prometheus', confWithBase) + patchNetworkPolicy('grafana', confWithBase) + patchNetworkPolicy('alertmanager', confWithBase) + com.makeMergeable(overrides) + removeNamespace;
} + grafanaStorage(instanceName, confWithBase) + grafanaIngress(instanceName, confWithBase) + addNodeExporterContainerArgs(instanceName, confWithBase) + addKubeStateMetricsContainerArgs(instanceName, confWithBase) + patchPrometheusNetworkPolicy(instanceName) + patchNetworkPolicy('prometheus', confWithBase) + patchNetworkPolicy('grafana', confWithBase) + patchNetworkPolicy('alertmanager', confWithBase) + com.makeMergeable(overrides) + removeNamespace;

local render_component(configuredStack, component, prefix, instance) =
local kp = configuredStack[component];
Expand Down
3 changes: 3 additions & 0 deletions docs/modules/ROOT/pages/references/parameters.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,9 @@ kubeStateMetrics:
enabled: false
config: {}
overrides: {}
containers:
nodeExporter:
additionalArgs: []
kubePrometheus:
enabled: false
config: {}
Expand Down
11 changes: 11 additions & 0 deletions tests/additional_kubestatemetrics_args.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
parameters:
prometheus:
instances:
default-instance:
kubeStateMetrics:
enabled: true
containers:
kubeStateMetrics:
additionalArgs:
- --metric-labels-allowlist=nodes=[kube_node_labes, kube_node_role]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
spec:
ignoreDifferences:
- group: ''
jsonPointers:
- /imagePullSecrets
kind: ServiceAccount
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
apiVersion: v1
kind: Namespace
metadata:
annotations: {}
labels:
SYNMonitoring: main
name: syn-prometheus-operator
name: syn-prometheus-operator
Loading

0 comments on commit 3cae78e

Please sign in to comment.