Added nginx module

This commit is contained in:
Nash Luffman 2020-08-15 23:45:18 -04:00
parent e7c456f380
commit f7f93e63ea
3 changed files with 1515 additions and 0 deletions

File diff suppressed because it is too large Load Diff

46
modules/nginx.jsonnet Normal file
View File

@ -0,0 +1,46 @@
local utils = import '../utils.libsonnet';
local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
{
_config+:: {
namespace: 'monitoring',
// Add custom dashboards
grafanaDashboards+:: {
'nginx-dashboard.json': (import '../grafana-dashboards/nginx-dashboard.json'),
},
},
nginxExporter+:: {
serviceMonitor:
utils.newServiceMonitor('nginx', $._config.namespace, { 'app.kubernetes.io/name': 'ingress-nginx' }, 'ingress-nginx', 'prometheus', 'http'),
service:
local service = k.core.v1.service;
local servicePort = k.core.v1.service.mixin.spec.portsType;
local nginxPort = servicePort.newNamed('prometheus', 10254, 10254);
service.new('nginx-ingress-metrics', {'app.kubernetes.io/name': 'ingress-nginx'}, nginxPort) +
service.mixin.metadata.withNamespace('nginx-ingress') +
service.mixin.metadata.withLabels({'app.kubernetes.io/name': 'ingress-nginx'}) +
service.mixin.spec.withClusterIp('None'),
clusterRole:
utils.newClusterRole('nginx-exporter', [
{
apis: [''],
res: ['services', 'endpoints', 'pods'],
verbs: ['get', 'list', 'watch'],
},
], null),
serviceAccount:
utils.newServiceAccount('nginx-exporter', $._config.namespace, null),
// Creates a ClusterRoleBinding between a `clusterRole` and a `serviceAccount` on `serviceAccountNamespace`
clusterRoleBinding:
utils.newClusterRoleBinding('nginx-exporter', 'nginx-exporter', $._config.namespace, 'nginx-exporter', null),
},
}

View File

@ -25,6 +25,11 @@
enabled: false, enabled: false,
file: import 'modules/metallb.jsonnet', file: import 'modules/metallb.jsonnet',
}, },
{
name: 'nginxExporter',
enabled: true,
file: import 'modules/nginx.jsonnet',
},
{ {
name: 'traefikExporter', name: 'traefikExporter',
enabled: false, enabled: false,