move resources requests/limits to _config and simplify mixin

This commit is contained in:
Benoit Gagnon
2019-08-10 14:31:28 -04:00
parent ffc8832ef9
commit 16c22b7250
4 changed files with 32 additions and 42 deletions

View File

@@ -1,21 +1,16 @@
// Strips spec.containers[].limits for certain containers
// https://github.com/coreos/kube-prometheus/issues/72
{
nodeExporter+: {
daemonset+: {
spec+: {
template+: {
spec+: {
local stripLimits(c) =
if std.setMember(c.name, [
'kube-rbac-proxy',
'node-exporter',
])
then c + {resources+: {limits: {}}}
else c,
containers: std.map(stripLimits, super.containers),
},
},
_config+:: {
resources+:: {
'addon-resizer': {
limits: {},
},
'kube-rbac-proxy': {
limits: {},
},
'node-exporter': {
limits: {},
},
},
},
@@ -34,23 +29,4 @@
},
},
},
kubeStateMetrics+: {
deployment+: {
spec+: {
template+: {
spec+: {
local stripLimits(c) =
if std.setMember(c.name, [
'addon-resizer',
'kube-rbac-proxy-main',
'kube-rbac-proxy-self',
])
then c + {resources+: {limits: {}}}
else c,
containers: std.map(stripLimits, super.containers),
},
},
},
},
},
}

View File

@@ -104,6 +104,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,
},

View File

@@ -140,8 +140,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) +
@@ -152,8 +152,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) +
@@ -192,8 +192,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];

View File

@@ -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 =