Remove unused Mosquitto MQTT broker from ringtail
Mosquitto has been dormant since frigate-notify switched from MQTT to
webapi polling (529ba10). Tear down live infra (ArgoCD app, namespace)
and remove all manifests, service-versions entry, services-check, and
doc references.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
009196f6c1
commit
40f1568088
18 changed files with 13 additions and 120 deletions
|
|
@ -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/<service>/`
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -6,8 +6,6 @@ frigate:
|
|||
enabled: true
|
||||
interval: 15
|
||||
|
||||
mqtt:
|
||||
enabled: false
|
||||
|
||||
alerts:
|
||||
general:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
listener 1883
|
||||
allow_anonymous true
|
||||
persistence false
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: mosquitto
|
||||
namespace: mqtt
|
||||
spec:
|
||||
selector:
|
||||
app: mosquitto
|
||||
ports:
|
||||
- name: mqtt
|
||||
port: 1883
|
||||
targetPort: 1883
|
||||
1
docs/changelog.d/+remove-mosquitto.infra.md
Normal file
1
docs/changelog.d/+remove-mosquitto.infra.md
Normal file
|
|
@ -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.
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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) |
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue