Resource Isolation Demo — NUC Guest
Guest-node assets for the multi-node resource-isolation demo. Everything in this folder runs on the guest PC; the master node drives the scenario over SSH and serves the KUKSA databroker.
Role of the guest node
- Runs the workload containers scheduled by pullpiri (LED controllers).
- Watches the master's KUKSA databroker for the button signal and toggles a CPU
load (
stress-ng) locally to create resource contention. - Exposes Prometheus metrics and a Grafana dashboard so the two LED periods can be compared under load.
Components
nuc_guest/
├── arduino/ # guest-side Arduino sketch/assets
├── kuksa-bridge/ # polls the master databroker, toggles stress-ng
├── led-normal-controller/ # Normal LED workload (Python), Prometheus :9102
├── led-timpani-controller/ # TIMPANI LED workload (C + TIMPANI), Prometheus :9101
└── monitoring/ # Prometheus (:9090) + Grafana stack
kuksa-bridge
kuksa-bridge/bridge.pypollsVehicle.Cabin.ResourceIsolation.ButtonPressedfrom the master's KUKSA databroker (KUKSA_HOST:55556, gRPC).- Toggle mode: on each button press it runs
script/trigger-on.sh/script/trigger-off.sh, which start/stopstress-ngdirectly on the host (setsid stress-ng --cpu 0 --cpu-method all --timeout 0) — not as a container. KUKSA_HOSTis left empty in kuksa-bridge/.env;preflight/prepare_guest.shfills it with the master IP before building the image.
led-timpani-controller / led-normal-controller
- The two LED workloads launched by pullpiri when the rotary is turned on the master.
- Each exposes Prometheus metrics (TIMPANI:
:9101, Normal::9102) for their LED ON/OFF tick timing. See monitoring/README.md.
monitoring
- Prometheus (
:9090) scrapes the two controllers; Grafana visualizes the LED periods. Start/stop viamonitoring/start.sh/monitoring/stop.sh.
Prerequisites
podmanandstress-ngavailable on the guest.- Network access to the master's KUKSA databroker at
KUKSA_HOST:55556. - Arduino uploaded and images built via the guest preflight step
(
../test_script/preflight/prepare_guest.sh).
Notes
- This folder is orchestrated from the master via the multi-node flow; you do not normally run these components by hand. For the full procedure see ../test_script/README.md.
- Expected result: under CPU load the TIMPANI LED stays ~500 ms while the Normal LED is delayed beyond 500 ms.