diff --git a/nix/homelab/config.toml b/nix/homelab/config.toml index ed2959b..a7b7189 100644 --- a/nix/homelab/config.toml +++ b/nix/homelab/config.toml @@ -86,4 +86,11 @@ routes = [ port = 8096, private = true }, + { + name = "grafana", + namespace = "monitoring", + service = "prometheus-stack-grafana", + port = 80, + private = true + }, ] diff --git a/nix/homelab/helm/helmfile.yaml b/nix/homelab/helm/helmfile.yaml index ef52842..18a1e4e 100644 --- a/nix/homelab/helm/helmfile.yaml +++ b/nix/homelab/helm/helmfile.yaml @@ -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 diff --git a/nix/homelab/helm/values/prometheus.yaml b/nix/homelab/helm/values/prometheus.yaml new file mode 100644 index 0000000..66f4cf4 --- /dev/null +++ b/nix/homelab/helm/values/prometheus.yaml @@ -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 diff --git a/nix/homelab/kustomize/routes.yaml b/nix/homelab/kustomize/routes.yaml index 1f073dc..f632e55 100644 --- a/nix/homelab/kustomize/routes.yaml +++ b/nix/homelab/kustomize/routes.yaml @@ -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: diff --git a/nix/homelab/kustomize/traefik/chains.yaml b/nix/homelab/kustomize/traefik/chains.yaml index b0e863c..b1de949 100644 --- a/nix/homelab/kustomize/traefik/chains.yaml +++ b/nix/homelab/kustomize/traefik/chains.yaml @@ -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 diff --git a/nix/modules/commonPackages.nix b/nix/modules/commonPackages.nix index 11a2c98..09abb2e 100644 --- a/nix/modules/commonPackages.nix +++ b/nix/modules/commonPackages.nix @@ -76,6 +76,8 @@ kubectl kubernetes-helm helmfile + jless + fd ]; programs.nix-ld.enable = lib.mkDefault true; programs.zsh.enable = lib.mkDefault true; diff --git a/nix/users/luca/zsh.nix b/nix/users/luca/zsh.nix index e455ed9..0667b09 100644 --- a/nix/users/luca/zsh.nix +++ b/nix/users/luca/zsh.nix @@ -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 = [