Skip to content

Add MQTT broker and pull-mqtt REX transport mode - #25

Open
pablomh wants to merge 1 commit into
masterfrom
mqtt-rex
Open

Add MQTT broker and pull-mqtt REX transport mode#25
pablomh wants to merge 1 commit into
masterfrom
mqtt-rex

Conversation

@pablomh

@pablomh pablomh commented Apr 22, 2026

Copy link
Copy Markdown
Owner

Adds support for MQTT-based Remote Execution (pull-mqtt mode) as an alternative to SSH.

Changes

  • New mosquitto role: deploys eclipse-mosquitto:2 container
  • Mosquitto deployed as part of remote-execution feature (always available)
  • --rex-mode CLI flag to switch between ssh (default) and pull-mqtt
  • Proxy settings template uses configurable mode
  • Auto-detecting rex_mode test fixture reads deployed proxy config
  • Integration test for pull-mqtt REX (skipped unless mode is active)
  • CI matrix entry for pull-mqtt mode

Architecture

Proxy publishes MQTT notifications to mosquitto (port 1883). Managed hosts run yggdrasil, pull job payloads from the proxy via HTTPS (port 8443), and post results back. Apache/httpd is not involved.

Test plan

  • Mosquitto service running and port 1883 reachable
  • Proxy rex_mode setting reflects deployed configuration
  • SSH REX test passes when mode=ssh (default)
  • pull-mqtt REX test runs when mode=pull-mqtt
  • Existing tests unaffected (rex_mode defaults to ssh)

@pablomh
pablomh force-pushed the mqtt-rex branch 6 times, most recently from c2d1e0f to 1028a41 Compare April 23, 2026 16:07
- Add mosquitto role: deploys eclipse-mosquitto:2 container with quadlet
- Deploy mosquitto as part of remote-execution feature setup
- Add --rex-mode CLI flag (ssh default, pull-mqtt option)
- Template proxy remote_execution_ssh.yml mode from variable
- Add rex_mode fixture that auto-detects mode from proxy config
- Add test_foreman_rex_pull_mqtt integration test (skipped unless pull-mqtt)
- Add mosquitto service and port tests
- Add pull-mqtt CI matrix entry
- Add rex_mode to test_foreman_proxy_rex_mode validation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant