9bc28c2b46
Validate Flux manifests / kustomize-build (pull_request) Failing after 17s
- Set alertmanager.enabled: true (was false) - Add Slack receiver config pointing to gatus-slack-webhook secret URL - Add alertmanagerSpec.secrets to mount gatus-slack-webhook into Alertmanager pod - Route: group by alertname+namespace, 30s wait, 5m interval, 4h repeat - Channel: #api-alerts with summary title and description text Closes leeworks-agents/api-company#210
111 lines
3.4 KiB
YAML
111 lines
3.4 KiB
YAML
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
kind: HelmRelease
|
|
metadata:
|
|
name: kube-prometheus-stack
|
|
namespace: monitoring
|
|
spec:
|
|
interval: 15m
|
|
chart:
|
|
spec:
|
|
chart: kube-prometheus-stack
|
|
version: ">=58.0.0 <60.0.0"
|
|
sourceRef:
|
|
kind: HelmRepository
|
|
name: prometheus-community
|
|
namespace: flux-system
|
|
interval: 60m
|
|
install:
|
|
crds: CreateReplace
|
|
remediation:
|
|
retries: 3
|
|
upgrade:
|
|
crds: CreateReplace
|
|
remediation:
|
|
retries: 3
|
|
values:
|
|
grafana:
|
|
enabled: true
|
|
adminPassword: "${GRAFANA_ADMIN_PASSWORD}" # inject via Secret/substitution
|
|
ingress:
|
|
enabled: true
|
|
ingressClassName: nginx
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
|
hosts:
|
|
- grafana.leeworks.dev
|
|
tls:
|
|
- secretName: grafana-tls
|
|
hosts:
|
|
- grafana.leeworks.dev
|
|
persistence:
|
|
enabled: true
|
|
size: 5Gi
|
|
sidecar:
|
|
dashboards:
|
|
enabled: true
|
|
prometheus:
|
|
prometheusSpec:
|
|
retention: 30d
|
|
storageSpec:
|
|
volumeClaimTemplate:
|
|
spec:
|
|
resources:
|
|
requests:
|
|
storage: 20Gi
|
|
# Scrape pods with prometheus.io/scrape=true annotations
|
|
podMonitorNamespaceSelector: {}
|
|
podMonitorSelector: {}
|
|
serviceMonitorNamespaceSelector: {}
|
|
serviceMonitorSelector: {}
|
|
# Additional scrape configs for annotation-based discovery
|
|
additionalScrapeConfigs:
|
|
- job_name: 'kubernetes-pods'
|
|
kubernetes_sd_configs:
|
|
- role: pod
|
|
relabel_configs:
|
|
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
|
|
action: keep
|
|
regex: "true"
|
|
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
|
|
action: replace
|
|
target_label: __metrics_path__
|
|
regex: (.+)
|
|
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
|
|
action: replace
|
|
regex: ([^:]+)(?::\d+)?;(\d+)
|
|
replacement: $1:$2
|
|
target_label: __address__
|
|
- action: labelmap
|
|
regex: __meta_kubernetes_pod_label_(.+)
|
|
- source_labels: [__meta_kubernetes_namespace]
|
|
action: replace
|
|
target_label: kubernetes_namespace
|
|
- source_labels: [__meta_kubernetes_pod_name]
|
|
action: replace
|
|
target_label: kubernetes_pod_name
|
|
alertmanager:
|
|
enabled: true
|
|
config:
|
|
global:
|
|
slack_api_url_file: /etc/alertmanager/secrets/gatus-slack-webhook/url
|
|
route:
|
|
receiver: slack-api-alerts
|
|
group_by: [alertname, namespace]
|
|
group_wait: 30s
|
|
group_interval: 5m
|
|
repeat_interval: 4h
|
|
receivers:
|
|
- name: slack-api-alerts
|
|
slack_configs:
|
|
- channel: '#api-alerts'
|
|
title: '{{ .CommonAnnotations.summary }}'
|
|
text: '{{ range .Alerts }}{{ .Annotations.description }}{{ end }}'
|
|
alertmanagerSpec:
|
|
secrets:
|
|
- gatus-slack-webhook
|
|
kubeStateMetrics:
|
|
enabled: true
|
|
nodeExporter:
|
|
enabled: true
|