feat(homelab): add prometheus & grafana, jless fd + more zsh plugins

This commit is contained in:
2026-01-01 13:19:41 -08:00
parent 3d77a1478a
commit c5dc30dd4a
7 changed files with 110 additions and 2 deletions

View File

@@ -86,4 +86,11 @@ routes = [
port = 8096,
private = true
},
{
name = "grafana",
namespace = "monitoring",
service = "prometheus-stack-grafana",
port = 80,
private = true
},
]

View File

@@ -30,6 +30,13 @@ releases:
- crds:
enabled: true
- name: prometheus-stack
chart: oci://ghcr.io/prometheus-community/charts/kube-prometheus-stack
namespace: monitoring
version: 80.9.2
values:
- values/prometheus.yaml
# Git
- name: gitea
namespace: git

View File

@@ -0,0 +1,58 @@
# Install Prometheus Operator CRDs
crds:
enabled: true
alertmanager:
enabled: false
prometheus:
prometheusSpec:
storageSpec:
volumeClaimTemplate:
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
retention: 15d
retentionSize: "18GB"
resources:
requests:
cpu: 100m
memory: 512Mi
limits:
cpu: 500m
memory: 2Gi
grafana:
enabled: true
persistence:
enabled: true
size: 5Gi
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
cpu: 300m
memory: 512Mi
nodeExporter:
enabled: true
kubeStateMetrics:
enabled: true
kubeEtcd:
enabled: false
kubeControllerManager:
enabled: false
kubeScheduler:
enabled: false
kubeProxy:
enabled: false

View File

@@ -233,6 +233,28 @@ spec:
- backendRefs:
- name: jellyfin
port: 8096
filters:
- type: ExtensionRef
extensionRef:
group: traefik.io
kind: Middleware
name: private-networks
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: grafana
namespace: monitoring
spec:
parentRefs:
- name: traefik-gateway
namespace: kube-system
hostnames:
- grafana.lucalise.ca
rules:
- backendRefs:
- name: prometheus-stack-grafana
port: 80
filters:
- type: ExtensionRef
extensionRef:

View File

@@ -33,6 +33,17 @@ spec:
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: private-networks
namespace: monitoring
spec:
chain:
middlewares:
- name: private-networks
namespace: kube-system
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: private-networks
namespace: pihole-system

View File

@@ -76,6 +76,8 @@
kubectl
kubernetes-helm
helmfile
jless
fd
];
programs.nix-ld.enable = lib.mkDefault true;
programs.zsh.enable = lib.mkDefault true;

View File

@@ -23,8 +23,6 @@ in
export PATH="$GOBIN:$PATH"
export PATH="$HOME/.cache/.bun/bin:$PATH"
alias cat="bat"
alias k="kubectl"
alias ka="kubectl get --all-namespaces"
''
+ "\n"
+ aliases;
@@ -32,6 +30,9 @@ in
enable = true;
plugins = [
"git"
"rust"
"kubectl"
"helm"
];
};
plugins = [