mirror of
https://github.com/prometheus-operator/prometheus-operator.git
synced 2025-04-16 09:16:38 +00:00
58 lines
2.5 KiB
Jsonnet
58 lines
2.5 KiB
Jsonnet
local k = import "ksonnet.beta.3/k.libsonnet";
|
|
|
|
local daemonset = k.apps.v1beta2.daemonSet;
|
|
local container = daemonset.mixin.spec.template.spec.containersType;
|
|
local volume = daemonset.mixin.spec.template.spec.volumesType;
|
|
local containerPort = container.portsType;
|
|
local containerVolumeMount = container.volumeMountsType;
|
|
local podSelector = daemonset.mixin.spec.template.spec.selectorType;
|
|
|
|
local nodeExporterVersion = "v0.15.2";
|
|
local kubeRbacProxyVersion = "v0.3.0";
|
|
local podLabels = {"app": "node-exporter"};
|
|
|
|
local procVolumeName = "proc";
|
|
local procVolume = volume.fromHostPath(procVolumeName, "/proc");
|
|
local procVolumeMount = containerVolumeMount.new(procVolumeName, "/host/proc");
|
|
|
|
local sysVolumeName = "sys";
|
|
local sysVolume = volume.fromHostPath(sysVolumeName, "/sys");
|
|
local sysVolumeMount = containerVolumeMount.new(sysVolumeName, "/host/sys");
|
|
|
|
local nodeExporter =
|
|
container.new("node-exporter", "quay.io/prometheus/node-exporter:" + nodeExporterVersion) +
|
|
container.withArgs([
|
|
"--web.listen-address=127.0.0.1:9101",
|
|
"--path.procfs=/host/proc",
|
|
"--path.sysfs=/host/sys",
|
|
]) +
|
|
container.withVolumeMounts([procVolumeMount, sysVolumeMount]) +
|
|
container.mixin.resources.withRequests({cpu: "102m", memory: "180Mi"}) +
|
|
container.mixin.resources.withLimits({cpu: "102m", memory: "180Mi"});
|
|
|
|
local proxy =
|
|
container.new("kube-rbac-proxy", "quay.io/coreos/kube-rbac-proxy:" + kubeRbacProxyVersion) +
|
|
container.withArgs([
|
|
"--secure-listen-address=:9100",
|
|
"--upstream=http://127.0.0.1:9101/",
|
|
]) +
|
|
container.withPorts(containerPort.newNamed("https", 9100)) +
|
|
container.mixin.resources.withRequests({cpu: "10m", memory: "20Mi"}) +
|
|
container.mixin.resources.withLimits({cpu: "20m", memory: "40Mi"});
|
|
|
|
local c = [nodeExporter, proxy];
|
|
|
|
{
|
|
new(namespace)::
|
|
daemonset.new() +
|
|
daemonset.mixin.metadata.withName("node-exporter") +
|
|
daemonset.mixin.metadata.withNamespace(namespace) +
|
|
daemonset.mixin.metadata.withLabels(podLabels) +
|
|
daemonset.mixin.spec.selector.withMatchLabels(podLabels) +
|
|
daemonset.mixin.spec.template.metadata.withLabels(podLabels) +
|
|
daemonset.mixin.spec.template.spec.withContainers(c) +
|
|
daemonset.mixin.spec.template.spec.withVolumes([procVolume, sysVolume]) +
|
|
daemonset.mixin.spec.template.spec.securityContext.withRunAsNonRoot(true) +
|
|
daemonset.mixin.spec.template.spec.securityContext.withRunAsUser(65534) +
|
|
daemonset.mixin.spec.template.spec.withServiceAccountName("node-exporter")
|
|
}
|