Add source-controlled Puppet/Hiera contracts for edge2 Divoom-as-DM-device without replacing the live flowercore-divoom systemd deployment. Add Divoom TV Pi HDMI systemd/Puppet deployment artifacts, LF shell-script guardrails, and focused lint coverage for the additive non-K8s deploy shape. Co-Authored-By: Codex <codex@openai.com>
46 lines
2.4 KiB
Markdown
46 lines
2.4 KiB
Markdown
# FlowerCore Divoom DM Pi Device
|
|
|
|
Source-controlled Puppet/Hiera deployment contract for registering the edge2
|
|
Divoom MiniToo panel as a FlowerCore DeviceManagement-managed Pi device.
|
|
|
|
This is not a Kubernetes application. The live panel remains the existing
|
|
edge2 `flowercore-divoom.service` managed by `FlowerCore.Puppet`
|
|
`profile::pi::service::divoom`, with the .NET payload deployed out of band
|
|
and `/opt/flowercore/divoom/data` plus the Bluetooth shell wrappers preserved.
|
|
Because edge2 is already Hiera-driven through `profile::pi::service::apps`,
|
|
the deploy home is additive `profile::pi::service` data/profile source, not
|
|
`profile::edge::service::apps` and not an ArgoCD/K8s app.
|
|
|
|
## Scope
|
|
|
|
- Stage DeviceManagement registration metadata for the edge2 Divoom MiniToo.
|
|
- Stage a separate, disabled-by-default DM Agent executor unit for privileged
|
|
Bluetooth operations once the DM-RPC lane lands.
|
|
- Keep `flowercore-divoom.service` and `flowercore-divoom-bt.service`
|
|
untouched: no service replacement, no restart subscription, no K8s surface.
|
|
- Preserve the current wrapper contract:
|
|
`/opt/flowercore/divoom/bt-link.sh`,
|
|
`/opt/flowercore/divoom/bt-reset.sh`, and
|
|
`/opt/flowercore/divoom/audio-link.sh`.
|
|
- Keep FM radio disabled and require visible render proof; device-info echo is
|
|
not render proof.
|
|
|
|
## Artifact Map
|
|
|
|
| Path | Use |
|
|
| --- | --- |
|
|
| `hiera/edge2-divoom-dm-device.overlay.yaml` | Additive Hiera overlay for edge2. Merge into the existing node YAML without removing `fc-pimanager` or `fc-divoom`. |
|
|
| `puppet/profile/pi/service/divoom_dm_device.pp` | Puppet profile shape to vendor into `FlowerCore.Puppet` after the DM-RPC executor binary exists. |
|
|
| `puppet/templates/divoom-device-registration.json.epp` | DM device registration metadata rendered on edge2. |
|
|
| `puppet/templates/flowercore-divoom-dm-agent.service.epp` | Separate DM Agent systemd unit. Defaults are stopped and disabled until a later cutover. |
|
|
|
|
## Rollout Notes
|
|
|
|
1. Land these artifacts in bluejay-infra as the deploy contract.
|
|
2. Vendor the Puppet profile and EPP templates into `FlowerCore.Puppet`.
|
|
3. Merge the Hiera overlay into `data/nodes/edge2.iamworkin.lan.yaml`.
|
|
4. Run Puppet in noop first, preferably with a node-local validation directory
|
|
under `~/.fcv` rather than `/tmp`.
|
|
5. Only enable the DM Agent service after the DeviceManagement BT executor has
|
|
landed and passed operator-eyeball render proof.
|