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, port = 8096,
private = true private = true
}, },
{
name = "grafana",
namespace = "monitoring",
service = "prometheus-stack-grafana",
port = 80,
private = true
},
] ]

View File

@@ -30,6 +30,13 @@ releases:
- crds: - crds:
enabled: true 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 # Git
- name: gitea - name: gitea
namespace: git 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

@@ -239,3 +239,25 @@ spec:
group: traefik.io group: traefik.io
kind: Middleware kind: Middleware
name: private-networks 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:
group: traefik.io
kind: Middleware
name: private-networks

View File

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

View File

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

View File

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