This repository has been archived on 2023-04-02. You can view files and clone it, but cannot push or open issues or pull requests.
gitops-tbrnt/monitoring/k3s.libsonnet

88 lines
3.4 KiB
Plaintext

local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
local endpoints = k.core.v1.endpoints;
local endpointSubset = endpoints.subsetsType;
local endpointPort = endpointSubset.portsType;
local service = k.core.v1.service;
local servicePort = k.core.v1.service.mixin.spec.portsType;
local masterIP = '185.95.218.11';
{
prometheus+:: {
kubeSchedulerPrometheusDiscoveryService:
local p = servicePort.newNamed('http-metrics', 10251, 10251);
service.new('kube-scheduler', { 'k8s-app': 'kube-scheduler' }, p) +
service.mixin.metadata.withNamespace('kube-system') +
service.mixin.metadata.withLabels({ 'k8s-app': 'kube-scheduler' }) +
service.mixin.spec.withClusterIp('None') +
service.mixin.spec.withSelector({}),
kubeSchedulerPrometheusDiscoveryEndpoints:
local port = endpointPort.new() +
endpointPort.withName('http-metrics') +
endpointPort.withPort(10251) +
endpointPort.withProtocol('TCP');
local subset = endpointSubset.new() +
endpointSubset.withAddresses([
{ ip: masterIP },
]) +
endpointSubset.withPorts(port);
endpoints.new() +
endpoints.mixin.metadata.withName('kube-scheduler') +
endpoints.mixin.metadata.withNamespace('kube-system') +
endpoints.mixin.metadata.withLabels({ 'k8s-app': 'kube-scheduler' }) +
endpoints.withSubsets(subset),
kubeControllerManagerPrometheusDiscoveryService:
local p = servicePort.newNamed('http-metrics', 10252, 10252);
service.new('kube-controller-manager', { 'k8s-app': 'kube-controller-manager' }, p) +
service.mixin.metadata.withNamespace('kube-system') +
service.mixin.metadata.withLabels({ 'k8s-app': 'kube-controller-manager' }) +
service.mixin.spec.withClusterIp('None') +
service.mixin.spec.withSelector({}),
kubeControllerManagerPrometheusDiscoveryEndpoints:
local port = endpointPort.new() +
endpointPort.withName('http-metrics') +
endpointPort.withPort(10252) +
endpointPort.withProtocol('TCP');
local subset = endpointSubset.new() +
endpointSubset.withAddresses([
{ ip: masterIP },
]) +
endpointSubset.withPorts(port);
endpoints.new() +
endpoints.mixin.metadata.withName('kube-controller-manager') +
endpoints.mixin.metadata.withNamespace('kube-system') +
endpoints.mixin.metadata.withLabels({ 'k8s-app': 'kube-controller-manager' }) +
endpoints.withSubsets(subset),
serviceMonitorKubeScheduler+:
{
spec+: {
endpoints: [
{
port: 'http-metrics',
interval: '30s',
},
],
},
},
serviceMonitorKubeControllerManager+:
{
spec+: {
endpoints: [
{
port: 'http-metrics',
interval: '30s',
metricRelabelings: (import 'kube-prometheus/addons/dropping-deprecated-metrics-relabelings.libsonnet') + [
{
sourceLabels: ['__name__'],
regex: 'etcd_(debugging|disk|request|server).*',
action: 'drop',
},
],
},
],
},
},
},
}