# 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.