diff --git a/jsonnet/kube-prometheus/kube-prometheus-strip-limits.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-strip-limits.libsonnet new file mode 100644 index 0000000000000000000000000000000000000000..52660d7b9f0dc459d6f850c9db2aafc9ff60128e --- /dev/null +++ b/jsonnet/kube-prometheus/kube-prometheus-strip-limits.libsonnet @@ -0,0 +1,32 @@ +// Strips spec.containers[].limits for certain containers +// https://github.com/coreos/kube-prometheus/issues/72 +{ + _config+:: { + resources+:: { + 'addon-resizer'+: { + limits: {}, + }, + 'kube-rbac-proxy'+: { + limits: {}, + }, + 'node-exporter'+: { + limits: {}, + }, + }, + }, + prometheusOperator+: { + deployment+: { + spec+: { + template+: { + spec+: { + local addArgs(c) = + if c.name == 'prometheus-operator' + then c + {args+: ['--config-reloader-cpu=0']} + else c, + containers: std.map(addArgs, super.containers), + }, + }, + }, + }, + }, +} diff --git a/jsonnet/kube-prometheus/kube-prometheus.libsonnet b/jsonnet/kube-prometheus/kube-prometheus.libsonnet index 12fb4b01904a4f3d0cff35fe9ba53257ee699fd3..65e4a1901f3c52b74e33717896228fd940f533e9 100644 --- a/jsonnet/kube-prometheus/kube-prometheus.libsonnet +++ b/jsonnet/kube-prometheus/kube-prometheus.libsonnet @@ -106,6 +106,20 @@ local configMapList = k3.core.v1.configMapList; CoreDNS: $._config.coreDNSSelector, }, + resources+:: { + 'addon-resizer': { + requests: { cpu: '10m', memory: '30Mi' }, + limits: { cpu: '50m', memory: '30Mi' }, + }, + 'kube-rbac-proxy': { + requests: { cpu: '10m', memory: '20Mi' }, + limits: { cpu: '20m', memory: '40Mi' }, + }, + 'node-exporter': { + requests: { cpu: '102m', memory: '180Mi' }, + limits: { cpu: '250m', memory: '180Mi' }, + }, + }, prometheus+:: { rules: $.prometheusRules + $.prometheusAlerts, }, diff --git a/jsonnet/kube-prometheus/kube-state-metrics/kube-state-metrics.libsonnet b/jsonnet/kube-prometheus/kube-state-metrics/kube-state-metrics.libsonnet index ec48619c76f4981d572d8eee3e3995e4935b063a..7814e8ec272ee09720f45d628028c906827e4b2d 100644 --- a/jsonnet/kube-prometheus/kube-state-metrics/kube-state-metrics.libsonnet +++ b/jsonnet/kube-prometheus/kube-state-metrics/kube-state-metrics.libsonnet @@ -155,8 +155,8 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet'; '--upstream=http://127.0.0.1:8081/', ]) + container.withPorts(containerPort.newNamed(8443, 'https-main',)) + - container.mixin.resources.withRequests({ cpu: '10m', memory: '20Mi' }) + - container.mixin.resources.withLimits({ cpu: '20m', memory: '40Mi' }); + container.mixin.resources.withRequests($._config.resources['kube-rbac-proxy'].requests) + + container.mixin.resources.withLimits($._config.resources['kube-rbac-proxy'].limits); local proxySelfMetrics = container.new('kube-rbac-proxy-self', $._config.imageRepos.kubeRbacProxy + ':' + $._config.versions.kubeRbacProxy) + @@ -167,8 +167,8 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet'; '--upstream=http://127.0.0.1:8082/', ]) + container.withPorts(containerPort.newNamed(9443, 'https-self',)) + - container.mixin.resources.withRequests({ cpu: '10m', memory: '20Mi' }) + - container.mixin.resources.withLimits({ cpu: '20m', memory: '40Mi' }); + container.mixin.resources.withRequests($._config.resources['kube-rbac-proxy'].requests) + + container.mixin.resources.withLimits($._config.resources['kube-rbac-proxy'].limits); local kubeStateMetrics = container.new('kube-state-metrics', $._config.imageRepos.kubeStateMetrics + ':' + $._config.versions.kubeStateMetrics) + @@ -207,8 +207,8 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet'; }, }, ]) + - container.mixin.resources.withRequests({ cpu: '10m', memory: '30Mi' }) + - container.mixin.resources.withLimits({ cpu: '50m', memory: '30Mi' }); + container.mixin.resources.withRequests($._config.resources['addon-resizer'].requests) + + container.mixin.resources.withLimits($._config.resources['addon-resizer'].limits); local c = [proxyClusterMetrics, proxySelfMetrics, kubeStateMetrics, addonResizer]; diff --git a/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet b/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet index b3163d54b7d326db77ca44fce317d8fe16275d2b..23b091a0163aaba5fd3ac9a368c893bac141b28e 100644 --- a/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet +++ b/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet @@ -97,8 +97,8 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet'; '--collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|cgroup|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|mqueue|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|sysfs|tracefs)$', ]) + container.withVolumeMounts([procVolumeMount, sysVolumeMount, rootVolumeMount]) + - container.mixin.resources.withRequests({ cpu: '102m', memory: '180Mi' }) + - container.mixin.resources.withLimits({ cpu: '250m', memory: '180Mi' }); + container.mixin.resources.withRequests($._config.resources['node-exporter'].requests) + + container.mixin.resources.withLimits($._config.resources['node-exporter'].requests); local ip = containerEnv.fromFieldPath('IP', 'status.podIP'); local proxy =