Files
kube-prometheus/example-dist/kubeadm/kube-prometheus.jsonnet
2018-04-13 13:36:34 +02:00

32 lines
1.8 KiB
Jsonnet

local k = import "ksonnet.beta.3/k.libsonnet";
local service = k.core.v1.service;
local servicePort = k.core.v1.service.mixin.spec.portsType;
local kubePrometheus = import "kube-prometheus.libsonnet";
local namespace = "monitoring";
local controllerManagerService = service.new("kube-controller-manager-prometheus-discovery", {component: "kube-controller-manager"}, servicePort.newNamed("http-metrics", 10252, 10252)) +
service.mixin.metadata.withNamespace("kube-system") +
service.mixin.metadata.withLabels({"k8s-app": "kube-controller-manager"});
local schedulerService = service.new("kube-scheduler-prometheus-discovery", {component: "kube-scheduler"}, servicePort.newNamed("http-metrics", 10251, 10251)) +
service.mixin.metadata.withNamespace("kube-system") +
service.mixin.metadata.withLabels({"k8s-app": "kube-scheduler"});
local objects = kubePrometheus.new(namespace) +
{
"prometheus-k8s/prometheus-k8s-service.yaml"+:
service.mixin.spec.withPorts(servicePort.newNamed("web", 9090, "web") + servicePort.withNodePort(30900)) +
service.mixin.spec.withType("NodePort"),
"alertmanager-main/alertmanager-main-service.yaml"+:
service.mixin.spec.withPorts(servicePort.newNamed("web", 9093, "web") + servicePort.withNodePort(30903)) +
service.mixin.spec.withType("NodePort"),
"grafana/grafana-service.yaml"+:
service.mixin.spec.withPorts(servicePort.newNamed("http", 3000, "http") + servicePort.withNodePort(30902)) +
service.mixin.spec.withType("NodePort"),
"prometheus-k8s/kube-controller-manager-prometheus-discovery-service.yaml": controllerManagerService,
"prometheus-k8s/kube-scheduler-prometheus-discovery-service.yaml": schedulerService,
};
{[path]: std.manifestYamlDoc(objects[path]) for path in std.objectFields(objects)}