Per-node "Capture Drivers / SDKs" panel installs Blackmagic / AJA / Deltacast / NDI drivers without SSH. node-agent gains NODE_TOKEN-gated /driver/install + /driver/status (spawns a one-shot privileged ubuntu container that bind- mounts host kernel paths + the repo and runs deploy/install-driver.sh); mam-api adds admin-gated /cluster/:id/install-driver + /driver-status. Driver files live in-repo under sdk/<vendor>/ (private repo); binaries are admin-supplied per each sdk/<vendor>/README.md. Vendor allowlist throughout. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.8 KiB
Capture-card SDK / driver file store
This directory holds the proprietary, non-redistributable vendor SDKs and drivers used to enable SDI / NDI capture cards on cluster nodes.
INTERNAL ONLY. These files are licensed by their respective vendors and must not be published, redistributed, or committed to any public mirror. This repository is private. Do not change that.
Why these live in the repo
The cluster admin screen lets an operator install/update capture-card drivers on
a node from the web UI (no SSH). The node-agent spawns a one-shot privileged
container that bind-mounts this repository and runs
deploy/install-driver.sh <vendor>, which reads
the vendor files from sdk/<vendor>/. Because the install must work offline on
an isolated broadcast LAN, the binaries ship in-repo rather than being fetched at
install time.
Layout
sdk/
README.md ← this file
blackmagic/ ← Blackmagic Desktop Video (DeckLink) .deb
aja/ ← AJA ntv2 driver source / installer
deltacast/ ← Deltacast VideoMaster installer
ndi/ ← NDI redistributable runtime libs
Each vendor directory has its own README.md listing exactly which files an
admin must drop in. A .gitkeep keeps the empty directory committed.
Important
- No binaries are committed by default. The directory structure + READMEs
are the deliverable. An admin downloads the proprietary files from the vendor
(per their licence) and drops them in the matching
sdk/<vendor>/directory. - The install script fails gracefully with a clear message if the expected file is absent — it never fabricates or downloads binaries.
- Target host OS for all install paths is Ubuntu 22.04 LTS (jammy), x86_64, matching the cluster worker nodes.