32 lines
1.8 KiB
Jsonnet
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)}
|