HOMELAB-1526: feat(charts): add mqttx-web app chart — MQTT management UI deployed E2E #501
No reviewers
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Homelab/infra-core!501
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "plane/HOMELAB-1526-mqttx-web"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Adds a web-based management UI for the sendrast Mosquitto MQTT broker using MQTTX Web (official
emqx/mqttx-web:v1.13.0image), deployed via a new infra-core native Helm chartcore/charts/apps/mqttx-web.Why
No way to inspect topics, retained messages, or publish test messages against the broker without CLI tools. This gives a browser UI for debugging live-tracking (SEND-6) and tracker (SEND-75) traffic.
How
core/charts/apps/mqttx-webwrapping the official EMQX imagewss://mqtt.sendrast.aaron.reynoza.org/mqtt; no server-side credentials or persistence neededsendrastnamespace via ArgoCD and exposed athttps://mqttx.sendrast.aaron.reynoza.orgbehind Pangolin SSO (UI has no auth of its own, edge auth covers it)Verification
helm lintclean,helm templaterenders correctlysendrastnamespacehttps://mqttx.sendrast.aaron.reynoza.orgloads behind Pangolin authwss://mqtt.sendrast.aaron.reynoza.org/mqttwith broker credentials from the UI$SYS/#and published a test message E2ECloses HOMELAB-1526.
AI Review (HOMELAB-1526)
Verdict: PASS-WITH-NITS
Acceptance Criteria (HOMELAB-1526)
values.yaml:1-6— documents the browser-client/WSS choice: "browser connects to the broker over MQTT-over-WebSocket (WSS) directly"prod/apps/Application manifest here — must land in the companion prod PRvalues.yaml:3-5— "no broker credentials" by design (credentials live in the user's browser); no secrets in chartscripts/pangolin/pangolin-resources.py)mqtt.sendrast.aaron.reynoza.orgWSS listenerautomountServiceAccountToken: false(deployment.yaml:19)Design Doc Citations
Open Issues
appVersion: "1.13.0"butimage.tag: "v1.13.0"— mismatch; either align formats or defaulttag: {{ .Chart.AppVersion }}so they can't drift.readOnlyRootFilesystem: truewith noemptyDirfor/tmp— fine if the upstreamdocker-entrypoint.shdoesn't write at startup (title says verified E2E), but if it does env-substitution writes this will crash-loop on any image bump. Worth a/tmpemptyDir as cheap insurance.commonLabelsmerged only intolabels, not selectorLabels — correct as written, just confirm this matches other infra-core app charts for consistency.Summary: Clean, well-commented, security-hardened minimal chart (non-root, RO rootfs, drop ALL caps, RuntimeDefault seccomp, no SA token). All unmet criteria belong to the companion prod-repo PR (ArgoCD app, Gateway route, Pangolin SSO resource) — ensure that PR lands before this ticket closes, and that Pangolin SSO is enforced given the broker's current anonymous-access posture (doc §7).
Powered by Kimi k3 · advisory.