Skip to content

Muster/T2R6 should declare and verify broker adapter dependencies #3

@azide0x37

Description

@azide0x37

A T2R6 Home Assistant MQTT bridge implementation exposed a gap in the Muster lifecycle contract.

Situation:

  • The appliance had Home Assistant MQTT publishing enabled.
  • The bridge was configured to use mosquitto_pub as its real broker adapter.
  • The systemd service failed every timer run because the adapter binary was not installed.
  • Mock-first outbox artifacts were generated correctly, but no discovery reached Home Assistant until the OS package providing the MQTT client was installed.

What was missing:

  • The implementation had a runtime dependency on the configured broker adapter, but the install/doctor/package contract did not make that dependency explicit.
  • T2R6 says discovery/state/control traffic should be mockable first and broker plumbing added later, but real-broker mode needs concrete dependency handling.

Expected Muster behavior:

  • Patterns that declare real adapters such as real_broker_adapter: mosquitto_pub should drive package/dependency documentation.
  • Installer should install or clearly skip required OS packages using an explicit opt-out, similar to the published dvd-ingester installer pattern.
  • doctor.sh should fail with a precise dependency message when real MQTT publishing is enabled and the configured adapter is unavailable.
  • README self-certification should include dependency evidence for non-shell runtime adapters.
  • T2R6 reference artifacts should include a mosquitto-clients dependency or a generic adapter dependency slot.

Recommendation:
Add a Muster contract check for adapter dependencies, probably under C6 lifecycle plus T2R6-specific requirements, and update the reference artifacts so this failure is caught before deployment.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions