Playbook for creating screen recordings and presentation assets that demonstrate how the tekton-dag system works and how to use its key features. Use this to plan segments, talking points, and what to show on screen. See milestones/milestone-8.md for the full milestone scope.
Use this as a scene list. Each segment can be one short clip or part of a longer run.
| # | Segment | What to show | Key message |
|---|---|---|---|
| 1 | Architecture overview | Diagram or slide: stack (FE → BFF → API), Tekton pipelines (PR vs merge), intercept routing. | One diagram: request path + pipeline flow. |
| 2 | Data flow + live test | Live request from entry point through the stack; show x-dev-session in requests/responses; show which service handles it; trigger a real test (pipeline or curl). |
Data flows through the chain; header identifies “PR” traffic. |
| 3 | Intercept routing (PR vs normal) | Two requests: one with header → PR build; one without → original deployment. Optional: run M6 scenario script and show output. | Same URL; header decides PR vs original. |
| 4 | Local run + step-debug | Run one app locally with mirrord (or Telepresence), attach IDE debugger, set breakpoint, send request with intercept header, step through code. | Develop and debug locally with real cluster traffic. |
| 5 | Tekton Results DB | Install Results (or show already installed), run a pipeline, query the Results API (script or API call), show run history and status. | Pipeline history is stored and queryable. |
| 6 | End-to-end PR flow (optional) | Open PR → pipeline runs → intercept deploys → tests pass → comment on PR; or use run-valid-pr-flow.sh and show key steps. |
Full automation: PR → test → feedback. |
| 7 | Full regression (M12.2) | Terminal: run-regression-agent.sh or run-regression-stream.sh; highlight Phase 2 PipelineRun + Newman + exit 0. |
Scripted bar: unit + real Tekton + API tests. |
| 8 | Management GUI architecture | Vue views, team-scoped /api, Flask → K8s; quick tour Trigger / Monitor / DAG. |
Browser never holds cluster creds. |
| 9 | Extending GUI for Tekton | Slide or split editor: pipelines.py + Pinia store pattern; checklist backend → store → view → E2E. |
Repeatable pattern for new CRDs / logs / Results. |
M12.2 segment detail and asset names: demos/segments-m12-2-regression-gui.md. Narrative: TESTING-AND-REGRESSION-OVERVIEW.md.
- Record: Slide or diagram + short voice-over.
- Show:
- Stack: Frontend (Vue) → BFF (Spring Boot) → API (Spring Boot/Gradle).
- Pipelines:
stack-pr-test(PR: build changed app, deploy intercept, validate, test),stack-merge-release(merge: promote, build, tag, push). - Intercept: traffic with
x-dev-session→ PR pod; no header → original deployment.
- Key feature: Single slide/sketch of “how it all fits together.”
- Record: Browser or Postman/curl; optionally DevTools or logs showing the header.
- Show:
- Send request to entry point (e.g. Vue app or BFF) with
x-dev-session: pr-demo(or similar). - Show the request hitting BFF then API (logs or UI).
- Show the header in a downstream request or log line.
- Trigger a real test (e.g. run propagation validation or M6 script) and show success output.
- Send request to entry point (e.g. Vue app or BFF) with
- Key features: Request path through the stack; header propagation; live test pass.
- Record: Two curls or two browser requests; optional split screen with pipeline/deploy view.
- Show:
- Request without header → response from original deployment (e.g. body or header that identifies “release” build).
- Request with header → response from PR/local build (e.g. “LOCAL-PR-1” or custom body).
- Optional: run
./scripts/run-mirrord-m6-scenarios.sh 3and show “OK” lines for both no-header and header requests.
- Key features: Same URL, different backend based on header; no impact on normal traffic.
- Record: IDE (VS Code, IntelliJ, etc.) + terminal; request sent from browser or curl.
- Show:
- Start app locally with intercept: e.g.
mirrord exec -f docs/mirrord-poc/mirrord.json -- java -jar app.jar(or equivalent for your app). - Attach debugger (e.g. remote debug on port 5005).
- Set breakpoint in the handler that serves the request.
- Send request with intercept header from browser or in-cluster curl.
- Breakpoint hits; step through a few lines; show variables/stack.
- Start app locally with intercept: e.g.
- Key features: App runs on your machine; cluster traffic with the right header reaches you; full step-debug with live data.
- Record: Terminal and/or browser (if you add a simple UI or use tkn/Dashboard).
- Show:
- Setup (if not already done): Postgres + Tekton Results:
./scripts/install-postgres-kind.sh
./scripts/install-tekton-results.sh - Run a pipeline so there is history: e.g.
./scripts/generate-run.sh --mode pr --stack stack-one.yaml --app demo-fe --pr 99 --apply, or any PipelineRun. - Query the Results API:
./scripts/verify-results-in-db.sh
(Optionally show the port-forward and curl to the Results API; see script for URL and auth.) - Show output: List of results (PipelineRun/TaskRun records), status, names.
- Optional: Tekton Dashboard or
tkn pipelinerun listalongside to tie “runs I see in the cluster” to “runs stored in Results.”
- Setup (if not already done): Postgres + Tekton Results:
- Key features: Pipeline and task run history is persisted in Postgres; queryable via Tekton Results API; script proves data is there.
Results API details (for narration or captions):
- The Watcher writes PipelineRun/TaskRun data into the Results DB (Postgres).
- The Results API exposes a REST API; we port-forward and call it (or use
verify-results-in-db.sh). - Use case: audit trail, dashboards, integration with other tools that need run history.
- Record: GitHub PR page + pipeline run (Dashboard or
tknlogs) + PR comment. - Show:
- Open a PR in an app repo (or use existing PR).
- Webhook triggers
stack-pr-test(or trigger manually). - Pipeline: clone → build changed app → deploy intercept → validate propagation (and original traffic) → run tests.
- Pipeline completes; PR comment with status/link (if configured).
Alternative: run./scripts/run-valid-pr-flow.sh --app demo-feand show the main steps and final outcome.
- Key features: Single PR triggers full test; only changed app is built; intercept isolates PR traffic; automation from PR to feedback.
If you want one continuous take (edit later into segments):
- Intro slide — title, “tekton-dag: PR testing with intercepts and local debug.”
- Architecture — Segment 1 (diagram/slide).
- Data flow — Segment 2 (live request + test).
- Intercept routing — Segment 3 (with vs without header).
- Tekton Results — Segment 5 (install if needed, run pipeline, run verify script, show list).
- Local step-debug — Segment 4 (mirrord + IDE + breakpoint).
- PR flow — Segment 6 (optional; PR → pipeline → result).
- Outro — “Where to learn more” (README, milestone-8, docs).
Use OBS Studio to capture screen, windows, and (optionally) mic. Below: scene layout, sources, settings, and workflow so you can switch scenes in sync with the playbook segments.
Create one scene per segment so you can switch cleanly. Name them so the list order matches the run order:
| OBS scene name | Playbook segment | Main content |
|---|---|---|
| 01 Intro | Intro slide | Image or browser with title slide. |
| 02 Architecture | Segment 1 | Slide/diagram (image, PDF, or browser). |
| 03 Data flow | Segment 2 | Browser + DevTools, or terminal + browser. |
| 04 Intercept routing | Segment 3 | Terminal (curl/script) or split: terminal + browser. |
| 05 Tekton Results | Segment 5 | Terminal (install, pipeline, verify-results-in-db.sh). |
| 06 Local step-debug | Segment 4 | IDE (e.g. VS Code) + terminal; optional second window for browser/curl. |
| 07 PR flow | Segment 6 | Browser (GitHub PR) + Dashboard or terminal. |
| 08 Outro | Outro | Slide or browser with “Where to learn more”. |
Workflow: Start recording at the top; switch to the next scene when you move to the next segment; stop recording at the end. You can trim or split the single file later, or stop/start recording per segment if you prefer separate files.
- Display Capture — Full screen or specific monitor. Use for “everything on screen” (IDE + terminal + browser). Add to scenes 03, 04, 05, 06, 07, or use Window Capture for a single app.
- Window Capture — Single window (IDE, terminal, browser). Use when you want to hide other apps and avoid capturing the OBS UI. Add the relevant window to each scene; hide others or use a dedicated “demo” desktop.
- Image — For intro/architecture/outro slides. Add an Image source, point to
docs/demos/slides/(e.g.intro.png,architecture.png,outro.png). Resize to fit canvas. - Browser Source — Optional: live slide deck (e.g. Reveal.js or Google Slides URL) or a static “Now showing: …” label. Useful for 01, 02, 08.
- Audio Input (Mic) — Add your microphone to every scene where you narrate. Use OBS filters (Noise Suppression, Compressor) if needed.
- Audio Output (Desktop) — Optional: capture system audio if you want clicks or terminal sounds. Often leave disabled for clean narration.
Tip: Duplicate the same “terminal” or “browser” window capture across scenes, or use one Display Capture and only change what’s on screen before switching scenes.
- Output (Recording):
- Recording format: mp4 (or mkv for safer recovery if OBS stops unexpectedly).
- Encoder: Hardware if available (e.g. NVENC, AMF, Apple VT); otherwise x264.
- Rate control: CBR or VBR; bitrate 8–15 Mbps for 1080p (adjust for 720p or 4K).
- Recording path: e.g.
docs/demos/recordings/or a dedicated folder; name with date or segment (e.g.tekton-dag-demo-2026-03-05.mp4).
- Video:
- Base resolution: 1920×1080 (or your display). Match output to base so you don’t scale twice.
- Output resolution: Same as base (1080p) unless you need 720p for file size.
- FPS: 30 (or 24 for smaller files). 60 only if you need smooth cursor/animations.
- Audio:
- Sample rate: 48 kHz. Match in Advanced Audio Properties for all sources.
- Channels: Stereo.
- Hotkeys (optional): Assign “Start Recording” and “Stop Recording” to keys you won’t hit during the demo (e.g. F9/F10). Optionally “Switch to scene: Next” to step through scenes without clicking.
- Test all scenes — Click each scene; confirm the right window/screen/slide is visible and not covered by OBS.
- Check mic level — Talk at normal volume; green bar in OBS mixer, no red. Apply Noise Suppression if the room is noisy.
- Close or hide — Notifications, other browsers, and apps you don’t want in the shot. Consider Do Not Disturb / presentation mode.
- Resolution — If using Window Capture, set the app window to 1080p (or your output res) so it fills the frame without tiny text.
- Recording path — Ensure the folder exists and has free space (e.g. 2–5 GB for a 15–30 min 1080p recording).
- Switch scene in OBS when you move to the next segment (e.g. after the intro slide, switch to “02 Architecture”; when you open the terminal for data flow, switch to “03 Data flow”). Narrate as you go.
- Pause — OBS doesn’t have a built-in pause; either stop and start a new file for the next segment, or keep one continuous take and edit pauses out later.
- If you flub — Keep going; you can trim the mistake in post, or stop and restart the segment (then cut and keep the best take).
- Trim / split — Use OBS remux (if you used mkv) or a simple editor (e.g. lossless cut, ffmpeg, or your editor) to cut the single file into segment clips (e.g.
01-intro.mp4,02-architecture.mp4, …) or remove dead air. - Export to
docs/demos/— Move or copy the final file(s) into the repo (e.g.docs/demos/recordings/) and link them from the milestone or README if desired.
- Recordings:
docs/demos/ordocs/demos/recordings/(e.g.data-flow-and-test.mp4,local-step-debug.mp4,tekton-results-db.mp4). Set OBS recording path to this folder so files land in the repo; or record elsewhere and copy the final edits here. Host externally and link from the repo if files are large. - Slides:
docs/demos/ordocs/presentations/(e.g.tekton-dag-demo.pptxordemo-deck.md). - Playbook: This file —
docs/demo-playbook.md— linked from milestone-8.
- Milestone 8 — demo scope and success criteria.
- Quick start (README) — setup (including optional Postgres + Tekton Results).
- Mirrord PoC results — config and how to run mirrord.
- Mirrord M6 test scenarios — in-cluster test procedures.
- .vscode/README.md — launch configs for local run and debug.
scripts/install-tekton-results.sh— install Results.scripts/verify-results-in-db.sh— query Results API (list runs).