From 5dc90c13d561f78696baf8e69859730942aede5f Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Wed, 26 Nov 2025 20:44:43 -0600 Subject: [PATCH] Add Smokeping to monitoring --- manifests/kustomization.yaml | 1 + manifests/smokeping/deployment.yaml | 50 ++++++++++++++++++++++++++ manifests/smokeping/ingress.yaml | 14 ++++++++ manifests/smokeping/kustomization.yaml | 8 +++++ manifests/smokeping/namespace.yaml | 4 +++ manifests/smokeping/pvc.yaml | 23 ++++++++++++ manifests/smokeping/service.yaml | 15 ++++++++ modules/hm/gui/bookmarks.nix | 41 ++++++++++++--------- 8 files changed, 140 insertions(+), 16 deletions(-) create mode 100644 manifests/smokeping/deployment.yaml create mode 100644 manifests/smokeping/ingress.yaml create mode 100644 manifests/smokeping/kustomization.yaml create mode 100644 manifests/smokeping/namespace.yaml create mode 100644 manifests/smokeping/pvc.yaml create mode 100644 manifests/smokeping/service.yaml diff --git a/manifests/kustomization.yaml b/manifests/kustomization.yaml index 8f7e088..fddd316 100644 --- a/manifests/kustomization.yaml +++ b/manifests/kustomization.yaml @@ -10,3 +10,4 @@ resources: - immich - monitoring - pinchflat + - smokeping diff --git a/manifests/smokeping/deployment.yaml b/manifests/smokeping/deployment.yaml new file mode 100644 index 0000000..ae66a92 --- /dev/null +++ b/manifests/smokeping/deployment.yaml @@ -0,0 +1,50 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: smokeping + labels: + app: smokeping +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app: smokeping + template: + metadata: + labels: + app: smokeping + spec: + containers: + - name: smokeping + image: docker.io/linuxserver/smokeping:2.9.0 + imagePullPolicy: IfNotPresent + ports: + - name: http + containerPort: 80 + protocol: TCP + volumeMounts: + - name: config + mountPath: /config + - name: data + mountPath: /data + env: + - name: PUID + value: "1000" + - name: PGID + value: "1000" + - name: TZ + value: "America/Chicago" + #- name: MASTER_URL + # value: "https://ping.shire-zebra.ts.net" + # SHARED_SECRET if you want to run a cluster + # CACHE_DIR if you need to explicitly state that + restartPolicy: Always + volumes: + - name: config + persistentVolumeClaim: + claimName: smokeping-config + - name: data + persistentVolumeClaim: + claimName: smokeping-data diff --git a/manifests/smokeping/ingress.yaml b/manifests/smokeping/ingress.yaml new file mode 100644 index 0000000..a5dea07 --- /dev/null +++ b/manifests/smokeping/ingress.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: smokeping-tailscale +spec: + ingressClassName: tailscale + defaultBackend: + service: + name: smokeping + port: + name: http + tls: + - hosts: + - ping diff --git a/manifests/smokeping/kustomization.yaml b/manifests/smokeping/kustomization.yaml new file mode 100644 index 0000000..66c228f --- /dev/null +++ b/manifests/smokeping/kustomization.yaml @@ -0,0 +1,8 @@ +namespace: smokeping + +resources: + - namespace.yaml + - pvc.yaml + - deployment.yaml + - service.yaml + - ingress.yaml diff --git a/manifests/smokeping/namespace.yaml b/manifests/smokeping/namespace.yaml new file mode 100644 index 0000000..e5db5d5 --- /dev/null +++ b/manifests/smokeping/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: smokeping diff --git a/manifests/smokeping/pvc.yaml b/manifests/smokeping/pvc.yaml new file mode 100644 index 0000000..8501a1d --- /dev/null +++ b/manifests/smokeping/pvc.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: smokeping-config +spec: + accessModes: + - ReadWriteOnce + storageClassName: longhorn-default + resources: + requests: + storage: 1Gi +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: smokeping-data +spec: + accessModes: + - ReadWriteOnce + storageClassName: longhorn-default + resources: + requests: + storage: 25Gi diff --git a/manifests/smokeping/service.yaml b/manifests/smokeping/service.yaml new file mode 100644 index 0000000..0c2479d --- /dev/null +++ b/manifests/smokeping/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: smokeping + labels: + app: smokeping +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: http + protocol: TCP + name: http + selector: + app: smokeping diff --git a/modules/hm/gui/bookmarks.nix b/modules/hm/gui/bookmarks.nix index 3bd6f0d..6e5bd09 100644 --- a/modules/hm/gui/bookmarks.nix +++ b/modules/hm/gui/bookmarks.nix @@ -220,6 +220,10 @@ name = "CloudNative PG"; url = "https://cloudnative-pg.io/documentation/1.26/"; } + { + name = "Kubernetes Dashboard"; + url = "https://dashboard.shire-zebra.ts.net/"; + } { name = "Longhorn"; url = "http://longhorn.shire-zebra.ts.net"; @@ -230,6 +234,27 @@ } ]; } + { + name = "Status"; + bookmarks = [ + { + name = "Grafana"; + url = "http://hosea.shire-zebra.ts.net:3000/"; + } + { + name = "Pinchflat"; + url = "http://nas1.shire-zebra.ts.net:8945"; + } + { + name = "Prometheus"; + url = "http://prometheus.shire-zebra.ts.net/"; + } + { + name = "Smokeping"; + url = "https://ping.shire-zebra.ts.net/smokeping/smokeping.cgi"; + } + ]; + } { name = "Bitcoin"; bookmarks = [ @@ -255,10 +280,6 @@ name = "Syncthing - nas"; url = "http://nas.home:8384/#"; } - { - name = "Pinchflat"; - url = "http://nas1.shire-zebra.ts.net:8945"; - } { name = "Portainer"; url = "https://nas1.shire-zebra.ts.net:31015"; @@ -267,18 +288,6 @@ name = "Restic"; url = "http://nas1.shire-zebra.ts.net:30248"; } - { - name = "Kubernetes Dashboard"; - url = "https://dashboard.shire-zebra.ts.net/"; - } - { - name = "Prometheus"; - url = "http://prometheus.shire-zebra.ts.net/"; - } - { - name = "Grafana"; - url = "http://hosea.shire-zebra.ts.net:3000/"; - } ]; } {