feat(monitoring): install kube-prometheus-stack

This commit is contained in:
Vegard Hagen
2024-07-21 19:32:57 +02:00
parent 4d2fe610e2
commit f1797c94ec
8 changed files with 113 additions and 0 deletions

View File

@@ -6,11 +6,14 @@ metadata:
spec:
sourceRepos:
- 'https://github.com/vehagn/homelab'
- 'https://prometheus-community.github.io/helm-charts'
destinations:
- namespace: 'argocd'
server: '*'
- namespace: 'kube-system'
server: '*'
- namespace: 'monitoring'
server: '*'
clusterResourceWhitelist:
- group: '*'
kind: '*'

View File

@@ -0,0 +1,19 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: monitoring
namespace: monitoring
spec:
parentRefs:
- name: stonegarden
namespace: gateway
hostnames:
- "grafana.stonegarden.dev"
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: kube-prometheus-stack-grafana
port: 80

View File

@@ -0,0 +1,32 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: monitoring
namespace: monitoring
labels:
app: traefik
spec:
entryPoints:
- websecure
routes:
- match: Host(`prometheus.stonegarden.dev`)
kind: Rule
services:
- name: kube-prometheus-stack-prometheus
port: http-web # 9090
middlewares:
- name: traefik-forward-auth
- match: Host(`grafana.stonegarden.dev`)
kind: Rule
services:
- name: kube-prometheus-stack-grafana
port: http-web # 80
middlewares:
- name: traefik-forward-auth
- match: Host(`alertmanager.stonegarden.dev`)
kind: Rule
services:
- name: kube-prometheus-stack-alertmanager
port: http-web # 9093
middlewares:
- name: traefik-forward-auth

View File

@@ -0,0 +1,29 @@
# Need an extra Argo CD Application here to do server side apply
# https://github.com/prometheus-community/helm-charts/issues/3345
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: kube-prometheus-stack
namespace: argocd
spec:
project: monitoring
sources:
- repoURL: https://prometheus-community.github.io/helm-charts
chart: kube-prometheus-stack
targetRevision: 61.3.2
helm:
valueFiles:
- $values/remodel/k8s/infra/monitoring/prometheus-stack/values.yaml
- repoURL: https://github.com/vehagn/homelab
targetRevision: remodel
ref: values
destination:
name: in-cluster
namespace: monitoring
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- ApplyOutOfSyncOnly=true
- ServerSideApply=true

View File

@@ -0,0 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ns.yaml
- kube-prometheus-stack.yaml
- http-route.yaml

View File

@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: monitoring

View File

@@ -0,0 +1,15 @@
prometheus:
prometheusSpec:
storageSpec:
volumeClaimTemplate:
spec:
storageClassName: proxmox-csi
volumeName: pv-prometheus
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10G
selector:
matchLabels:
app: prometheus

View File

@@ -133,5 +133,9 @@ module "volumes" {
node = "abel"
size = "12G"
}
pv-prometheus = {
node = "abel"
size = "10G"
}
}
}