mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-02-18 00:17:39 +01:00
1.6 KiB
1.6 KiB
📡 Proxy Control Plane
The Control Plane synchronizes pulse-sensor-proxy instances with the Pulse server, ensuring they trust the correct nodes without manual configuration.
🏗️ Architecture
graph LR
Pulse[Pulse Server] -- HTTPS /api/temperature-proxy --> Proxy[Sensor Proxy]
Proxy -- SSH --> Nodes[Cluster Nodes]
- Registration: The proxy registers with Pulse on startup/install.
- Sync: The proxy periodically fetches the "Authorized Nodes" list from Pulse.
- Validation: The proxy only executes commands on nodes authorized by Pulse.
🔄 Workflow
- Install:
install-sensor-proxy.shcalls/api/temperature-proxy/register. - Token Exchange: Pulse returns a
ctrl_tokenwhich the proxy saves to/etc/pulse-sensor-proxy/.pulse-control-token. - Polling: The proxy polls
/api/temperature-proxy/authorized-nodesevery 60s (configurable). - Update: If the node list changes (e.g., a new node is added to Pulse), the proxy updates its internal allowlist automatically.
⚙️ Configuration
The proxy configuration in /etc/pulse-sensor-proxy/config.yaml handles the sync:
pulse_control_plane:
url: https://pulse.example.com:7655
token_file: /etc/pulse-sensor-proxy/.pulse-control-token
refresh_interval: 60s
🛡️ Security
- Tokens: The
ctrl_tokenis unique per proxy instance. - Least Privilege: The proxy only knows about nodes explicitly added to Pulse.
- Fallback: If the control plane is unreachable, the proxy uses its last known good configuration.