103 lines
3.3 KiB
YAML
103 lines
3.3 KiB
YAML
apiVersion: helm.cattle.io/v1
|
|
kind: HelmChart
|
|
metadata:
|
|
name: kube-prometheus-stack
|
|
namespace: kube-system # The controller looks here, but we will deploy to 'monitoring'
|
|
spec:
|
|
chart: kube-prometheus-stack
|
|
repo: https://prometheus-community.github.io/helm-charts
|
|
targetNamespace: monitoring
|
|
createNamespace: true
|
|
valuesContent: |-
|
|
kubeControllerManager:
|
|
enabled: false
|
|
kubeScheduler:
|
|
enabled: false
|
|
kubeProxy:
|
|
enabled: false
|
|
|
|
prometheus:
|
|
prometheusSpec:
|
|
serviceMonitorSelectorNilUsesHelmValues: false
|
|
retention: 10d
|
|
externalUrl: http://prometheus.home.nest
|
|
storageSpec:
|
|
volumeClaimTemplate:
|
|
spec:
|
|
storageClassName: ""
|
|
resources:
|
|
requests:
|
|
storage: 20Gi
|
|
selector:
|
|
matchLabels:
|
|
app: prometheus-data
|
|
|
|
alertmanager:
|
|
config:
|
|
global:
|
|
resolve_timeout: 5m
|
|
route:
|
|
group_by: ['alertname', 'cluster', 'service']
|
|
group_wait: 30s
|
|
group_interval: 5m
|
|
repeat_interval: 12h
|
|
receiver: 'discord-notifications' # Point the default route here
|
|
routes:
|
|
- matchers:
|
|
- alertname = Watchdog
|
|
receiver: 'null'
|
|
# Inhibition rules reduce noise by silencing related alerts
|
|
inhibit_rules:
|
|
- source_matchers: [severity="critical"]
|
|
target_matchers: [severity="warning"]
|
|
equal: ['alertname', 'dev', 'instance']
|
|
receivers:
|
|
- name: 'null'
|
|
- name: 'discord-notifications'
|
|
discord_configs:
|
|
- webhook_url: 'https://discord.com/api/webhooks/1483240068197126300/zI_k1nEc8U8Fd0hiJc7gBG0TjklblmYrSDvpbTMiposGc32_0UREpLjch1FggFvluV3D'
|
|
send_resolved: true
|
|
# Formatting the message for better readability
|
|
title: '{{ .Status | toUpper }}: {{ .GroupLabels.alertname }}'
|
|
message: |-
|
|
**Summary:** {{ range .Alerts }}{{ .Annotations.summary }}{{ end }}
|
|
**Description:** {{ range .Alerts }}{{ .Annotations.description }}{{ end }}
|
|
**Severity:** {{ range .Alerts }}{{ .Labels.severity }}{{ end }}
|
|
alertmanagerSpec:
|
|
externalUrl: http://alertmanager.home.nest
|
|
storage:
|
|
volumeClaimTemplate:
|
|
spec:
|
|
storageClassName: ""
|
|
resources:
|
|
requests:
|
|
storage: 2Gi
|
|
selector:
|
|
matchLabels:
|
|
app: alertmanager-data
|
|
|
|
grafana:
|
|
admin:
|
|
existingSecret: "grafana-admin-credentials"
|
|
userKey: admin-user
|
|
passwordKey: admin-password
|
|
podSecurityContext:
|
|
runAsUser: 1000
|
|
runAsGroup: 1000
|
|
fsGroup: 1000
|
|
initChownData:
|
|
enabled: false
|
|
grafana.ini:
|
|
server:
|
|
domain: grafana.home.nest
|
|
root_url: http://grafana.home.nest
|
|
serve_from_sub_path: false
|
|
persistence:
|
|
enabled: true
|
|
type: pvc
|
|
storageClassName: grafana-nfs
|
|
size: 5Gi
|
|
finalizers:
|
|
- kubernetes.io/pvc-protection
|
|
selectorLabels:
|
|
app: grafana-data
|