diff --git a/CLAUDE.md b/CLAUDE.md index 050b0f9..a6d883e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -74,7 +74,7 @@ encounter wiki-links (`[[like-this]]`) it is referring to docs/ cards. ### Kubernetes (ArgoCD) -Most services run in minikube on indri via ArgoCD (app-of-apps, manual sync). GPU workloads (Frigate, Mosquitto, ntfy) run on ringtail's k3s cluster, also managed by ArgoCD. +Most services run in minikube on indri via ArgoCD (app-of-apps, manual sync). GPU workloads (Frigate, ntfy) run on ringtail's k3s cluster, also managed by ArgoCD. **PR workflow:** 1. Create branch, modify `argocd/manifests//` diff --git a/argocd/apps/mqtt.yaml b/argocd/apps/mqtt.yaml deleted file mode 100644 index 61959aa..0000000 --- a/argocd/apps/mqtt.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: mqtt - namespace: argocd -spec: - project: default - source: - repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/blumeops.git - targetRevision: main - path: argocd/manifests/mosquitto - destination: - server: https://ringtail.tail8d86e.ts.net:6443 - namespace: mqtt - syncPolicy: - syncOptions: - - CreateNamespace=true diff --git a/argocd/manifests/frigate/frigate-config.yml b/argocd/manifests/frigate/frigate-config.yml index baad1e7..4a6def5 100644 --- a/argocd/manifests/frigate/frigate-config.yml +++ b/argocd/manifests/frigate/frigate-config.yml @@ -1,10 +1,6 @@ database: path: /db/frigate.db -mqtt: - host: mosquitto.mqtt.svc.cluster.local - port: 1883 - go2rtc: streams: # GableCam IP is reserved in UX7 DHCP config diff --git a/argocd/manifests/frigate/frigate-notify-config.yml b/argocd/manifests/frigate/frigate-notify-config.yml index 69072df..886e3fd 100644 --- a/argocd/manifests/frigate/frigate-notify-config.yml +++ b/argocd/manifests/frigate/frigate-notify-config.yml @@ -6,8 +6,6 @@ frigate: enabled: true interval: 15 - mqtt: - enabled: false alerts: general: diff --git a/argocd/manifests/mosquitto/deployment.yaml b/argocd/manifests/mosquitto/deployment.yaml deleted file mode 100644 index 3c8b8fa..0000000 --- a/argocd/manifests/mosquitto/deployment.yaml +++ /dev/null @@ -1,47 +0,0 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: mosquitto - namespace: mqtt -spec: - replicas: 1 - selector: - matchLabels: - app: mosquitto - template: - metadata: - labels: - app: mosquitto - spec: - containers: - - name: mosquitto - image: eclipse-mosquitto:kustomized - ports: - - containerPort: 1883 - name: mqtt - volumeMounts: - - name: config - mountPath: /mosquitto/config/mosquitto.conf - subPath: mosquitto.conf - resources: - requests: - memory: "32Mi" - cpu: "50m" - limits: - memory: "128Mi" - cpu: "100m" - livenessProbe: - tcpSocket: - port: 1883 - initialDelaySeconds: 5 - periodSeconds: 30 - readinessProbe: - tcpSocket: - port: 1883 - initialDelaySeconds: 3 - periodSeconds: 10 - volumes: - - name: config - configMap: - name: mosquitto-config diff --git a/argocd/manifests/mosquitto/kustomization.yaml b/argocd/manifests/mosquitto/kustomization.yaml deleted file mode 100644 index e468120..0000000 --- a/argocd/manifests/mosquitto/kustomization.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: mqtt -resources: - - deployment.yaml - - service.yaml -images: - - name: eclipse-mosquitto - newTag: "2.0.22" -configMapGenerator: - - name: mosquitto-config - files: - - mosquitto.conf diff --git a/argocd/manifests/mosquitto/mosquitto.conf b/argocd/manifests/mosquitto/mosquitto.conf deleted file mode 100644 index 0e3b61e..0000000 --- a/argocd/manifests/mosquitto/mosquitto.conf +++ /dev/null @@ -1,3 +0,0 @@ -listener 1883 -allow_anonymous true -persistence false diff --git a/argocd/manifests/mosquitto/service.yaml b/argocd/manifests/mosquitto/service.yaml deleted file mode 100644 index 7a66aa0..0000000 --- a/argocd/manifests/mosquitto/service.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: v1 -kind: Service -metadata: - name: mosquitto - namespace: mqtt -spec: - selector: - app: mosquitto - ports: - - name: mqtt - port: 1883 - targetPort: 1883 diff --git a/docs/changelog.d/+remove-mosquitto.infra.md b/docs/changelog.d/+remove-mosquitto.infra.md new file mode 100644 index 0000000..9b452cf --- /dev/null +++ b/docs/changelog.d/+remove-mosquitto.infra.md @@ -0,0 +1 @@ +Remove Mosquitto (MQTT broker) — unused since frigate-notify switched to webapi polling. Deleted ArgoCD app, k8s manifests, namespace, and updated all docs. diff --git a/docs/explanation/architecture.md b/docs/explanation/architecture.md index f4872cc..4080b1e 100644 --- a/docs/explanation/architecture.md +++ b/docs/explanation/architecture.md @@ -39,7 +39,7 @@ Three always-on devices form the infrastructure backbone: ``` - **[[indri]]** runs most services (native and containerized) -- **[[ringtail]]** runs GPU workloads (Frigate NVR) and related services (MQTT, ntfy) +- **[[ringtail]]** runs GPU workloads (Frigate NVR) and related services (ntfy) - **[[sifaka]]** provides bulk storage and backup targets - **[[gilbert]]** is the development workstation @@ -73,7 +73,7 @@ Services run across three compute targets: **Minikube on indri (ArgoCD)** — most services run in minikube, managed via ArgoCD from `argocd/manifests/`. See [[apps]] for the application registry. -**K3s on ringtail (ArgoCD)** — GPU workloads and related services run on [[ringtail]]'s single-node k3s cluster. Frigate NVR uses the RTX 4080 for object detection; Mosquitto and ntfy support its alerting pipeline. +**K3s on ringtail (ArgoCD)** — GPU workloads and related services run on [[ringtail]]'s single-node k3s cluster. Frigate NVR uses the RTX 4080 for object detection; ntfy supports its alerting pipeline. ## Data Flow diff --git a/docs/reference/infrastructure/indri.md b/docs/reference/infrastructure/indri.md index 54465de..cbb2a0f 100644 --- a/docs/reference/infrastructure/indri.md +++ b/docs/reference/infrastructure/indri.md @@ -32,7 +32,7 @@ Primary BlumeOps server. Mac Mini M1 (2020). - [[caddy]] - Reverse proxy for `*.ops.eblu.me` **Kubernetes (via minikube):** -- [[apps|Most k8s applications]] (Frigate, Mosquitto, ntfy migrated to [[ringtail]] k3s) +- [[apps|Most k8s applications]] (Frigate, ntfy migrated to [[ringtail]] k3s) **GUI Applications (manual start required):** - Docker Desktop - Container runtime for minikube diff --git a/docs/reference/infrastructure/ringtail.md b/docs/reference/infrastructure/ringtail.md index d8e2a05..74d5a7d 100644 --- a/docs/reference/infrastructure/ringtail.md +++ b/docs/reference/infrastructure/ringtail.md @@ -66,8 +66,7 @@ Sync order: `1password-connect-ringtail` -> `external-secrets-crds-ringtail` -> | Workload | Namespace | Notes | |----------|-----------|-------| | [[frigate]] | `frigate` | NVR with GPU-accelerated detection (RTX 4080) | -| [[frigate]]-notify | `frigate` | MQTT-to-ntfy alert bridge | -| Mosquitto | `mqtt` | MQTT broker for Frigate events | +| [[frigate]]-notify | `frigate` | Webapi-to-ntfy alert bridge | | [[authentik]] | `authentik` | OIDC identity provider | | [[ntfy]] | `ntfy` | Push notification server | | [[ollama]] | `ollama` | LLM inference with GPU (RTX 4080) | diff --git a/docs/reference/kubernetes/cluster.md b/docs/reference/kubernetes/cluster.md index e7e49bf..9b632bd 100644 --- a/docs/reference/kubernetes/cluster.md +++ b/docs/reference/kubernetes/cluster.md @@ -7,7 +7,7 @@ tags: # Kubernetes Cluster -BlumeOps runs two Kubernetes clusters: a Minikube cluster on [[indri]] (most services) and a k3s cluster on [[ringtail]] (GPU workloads, MQTT, notifications). Both are managed by [[argocd]] on indri. +BlumeOps runs two Kubernetes clusters: a Minikube cluster on [[indri]] (most services) and a k3s cluster on [[ringtail]] (GPU workloads, notifications). Both are managed by [[argocd]] on indri. ## Cluster Specifications @@ -41,7 +41,7 @@ Single-node k3s cluster for workloads requiring amd64 or GPU access. See [[ringt |----------|-------| | **Context** | `k3s-ringtail` | | **API Server** | `https://ringtail.tail8d86e.ts.net:6443` | -| **Workloads** | Frigate (GPU), Mosquitto, ntfy, frigate-notify, nvidia-device-plugin | +| **Workloads** | Frigate (GPU), ntfy, frigate-notify, nvidia-device-plugin | ## Related diff --git a/docs/reference/services/frigate.md b/docs/reference/services/frigate.md index 6486fe5..46363bd 100644 --- a/docs/reference/services/frigate.md +++ b/docs/reference/services/frigate.md @@ -34,7 +34,7 @@ Frigate pod (ringtail k3s) ├── /media/frigate — NFS recordings (sifaka) └── /db — SQLite (local PVC) │ - └──→ MQTT (Mosquitto) → frigate-notify → ntfy → mobile + └──→ frigate-notify (webapi poll) → ntfy → mobile ``` ## Cameras @@ -70,7 +70,7 @@ Two zones are configured: `driveway_entrance` (triggers review alerts for person ## Alerting (frigate-notify) -A separate **frigate-notify** pod (`ghcr.io/0x2142/frigate-notify:v0.3.5`) subscribes to Frigate's MQTT events via Mosquitto and pushes alerts to [[ntfy]] on the `frigate-alerts` topic. Alert messages include action buttons linking back to the Frigate review UI. +A separate **frigate-notify** pod polls Frigate's webapi every 15 seconds for detection events and pushes alerts to [[ntfy]] on the `frigate-alerts` topic. Alert messages include action buttons linking back to the Frigate review UI. ## Related diff --git a/docs/reference/services/ntfy.md b/docs/reference/services/ntfy.md index 0504559..b549a6d 100644 --- a/docs/reference/services/ntfy.md +++ b/docs/reference/services/ntfy.md @@ -29,10 +29,10 @@ The upstream relay (`ntfy.sh`) is configured so mobile app clients can receive p ## Producers -Currently the only producer is **frigate-notify**, which publishes camera detection alerts (person, vehicle, animal) from [[frigate|Frigate]] via MQTT to ntfy: +Currently the only producer is **frigate-notify**, which polls Frigate's webapi for camera detection alerts (person, vehicle, animal) and forwards them to ntfy: ``` -Frigate → MQTT (Mosquitto) → frigate-notify → ntfy → mobile clients +Frigate → frigate-notify (webapi polling) → ntfy → mobile clients ``` The frigate-notify config points to ntfy's cluster-internal address: diff --git a/docs/reference/services/tempo.md b/docs/reference/services/tempo.md index 567168a..771b97f 100644 --- a/docs/reference/services/tempo.md +++ b/docs/reference/services/tempo.md @@ -41,7 +41,7 @@ Distributed tracing backend for BlumeOps infrastructure. Receives traces via OTL | [[ollama]] | HTTP REST | Same (model inference latency) | | [[immich]] | HTTP REST | Same | -Beyla auto-instruments HTTP services via eBPF kernel hooks — no code changes needed. MQTT (Mosquitto) is not instrumented (no eBPF parser for MQTT). +Beyla auto-instruments HTTP services via eBPF kernel hooks — no code changes needed. **Future: SDK instrumentation** Services with OTel SDK support (e.g., Hermes) can send traces directly to the OTLP endpoint for deeper internal spans (DB queries, business logic) alongside eBPF envelope traces. diff --git a/mise-tasks/services-check b/mise-tasks/services-check index 1f3b664..d0de329 100755 --- a/mise-tasks/services-check +++ b/mise-tasks/services-check @@ -95,7 +95,6 @@ check_service "forgejo-runner" "ssh ringtail 'systemctl is-active gitea-runner-n echo "" echo "Ringtail k3s pods:" -check_service "mosquitto" "kubectl --context=k3s-ringtail -n mqtt get pods -l app=mosquitto -o jsonpath='{.items[0].status.phase}' | grep -q Running" check_service "ntfy" "kubectl --context=k3s-ringtail -n ntfy get pods -l app=ntfy -o jsonpath='{.items[0].status.phase}' | grep -q Running" check_service "authentik" "kubectl --context=k3s-ringtail -n authentik get pods -l component=server -o jsonpath='{.items[0].status.phase}' | grep -q Running" check_service "frigate" "kubectl --context=k3s-ringtail -n frigate get pods -l app=frigate -o jsonpath='{.items[0].status.phase}' | grep -q Running" diff --git a/service-versions.yaml b/service-versions.yaml index 535af7c..83daab1 100644 --- a/service-versions.yaml +++ b/service-versions.yaml @@ -30,11 +30,6 @@ services: current-version: "v2.18.0" upstream-source: https://github.com/kubernetes/kube-state-metrics/releases - - name: mosquitto - type: argocd - last-reviewed: 2026-02-16 - current-version: "2.0.22" - upstream-source: https://github.com/eclipse/mosquitto/releases - name: ntfy type: argocd