Stand up prometheus stack

This commit is contained in:
Astra Logical 2026-03-09 19:29:02 -04:00
parent f985e9291b
commit 5682e043e2
5 changed files with 203 additions and 0 deletions

View file

@ -0,0 +1,15 @@
---
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: traefik
namespace: kube-system
spec:
valuesContent: |-
additionalArguments:
- "--metrics.prometheus=true"
- "--metrics.prometheus.entryPoint=metrics"
ports:
metrics:
port: 9100
exposedPort: 9100

View file

@ -0,0 +1,20 @@
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: traefik-monitor
namespace: monitoring
labels:
release: kube-prometheus-stack
spec:
jobLabel: traefik
selector:
matchLabels:
app.kubernetes.io/name: traefik
namespaceSelector:
matchNames:
- kube-system
endpoints:
- port: metrics
interval: 30s
path: /metrics

View file

@ -0,0 +1,66 @@
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: |-
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:
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

View file

@ -0,0 +1,55 @@
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: prometheus-nfs-pv
labels:
app: prometheus-data
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: birdfeeder2.home.nest
path: /k3s/prometheus
mountOptions:
- nfsvers=4.1
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: alertmanager-nfs-pv
labels:
app: alertmanager-data
spec:
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: birdfeeder2.home.nest
path: /k3s/alertmanager
mountOptions:
- nfsvers=4.1
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: grafana-nfs-pv
labels:
app: grafana-data
spec:
storageClassName: grafana-nfs
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: birdfeeder2.home.nest
path: /k3s/grafana
mountOptions:
- nfsvers=4.1

View file

@ -0,0 +1,47 @@
---
apiVersion: v1
kind: Service
metadata:
name: grafana-nodeport
namespace: monitoring
spec:
type: NodePort
selector:
app.kubernetes.io/name: grafana
ports:
- name: "30009"
port: 30009
targetPort: 3000
nodePort: 30009
---
apiVersion: v1
kind: Service
metadata:
name: prometheus-nodeport
namespace: monitoring
spec:
type: NodePort
selector:
app.kubernetes.io/name: prometheus
prometheus: prometheus-kube-prometheus-stack-prometheus
ports:
- name: "30001"
port: 30001
targetPort: 9090
nodePort: 30001
---
apiVersion: v1
kind: Service
metadata:
name: alertmanager-nodeport
namespace: monitoring
spec:
type: NodePort
selector:
app.kubernetes.io/name: alertmanager
alertmanager: prometheus-kube-prometheus-stack-alertmanager
ports:
- name: "30002"
port: 30002
targetPort: 9093
nodePort: 30002