Players, plays, and their pods

You describe your equipment once, and then start and stop media by creating and deleting objects. Each resource changes at its own pace:

The operator turns each Play into one playback pod on the machine with the hardware. It claims the speakers and the other devices only while that Play runs. An idle Player keeps only its display claim, so other workloads can use the rest of its devices between runs.

What runs

The install puts three Deployments in liken-system: the operator, the media API, and the message bus, which is one Mosquitto broker. It also puts one DaemonSet there: the capabilities agent, with one pod on each node with a GPU, which publishes what each GPU’s media driver can do.

The operator then creates two more kinds of long-running pod: an idle pod for each Player, which draws the screen while nothing plays, and a pod for each Remote, which reads the controller and sends its button presses to the message bus.