Upgrades six PARTIAL modules to the gold-module standard (lesson/demonstration/ knowledge-check/guided-exercise/lab(s)/reflection), preserving every existing lab activity_id and scenario_id: root-06-m03 (jobs/cronjobs/daemonsets), root-07-m04 (ingress/networkpolicy), root-07-m02 (configuration/secrets, converted in place from a bare 5-lab bank), root-09-m02 (serviceaccounts/rbac), root-09-m03 (network/supply-chain security), root-10-m03 (troubleshooting framework). root-05-m01 (20-task kubectl-fluency bank) gets a minimal bookending lesson + reflection rather than a full redesign, since each task already carries its own explanation. root-12-m01, root-capstone-m01, and root-09-m04 are promoted to READY via documented exceptions (no new activities) where adding one would misrepresent their intentional design. Wires a new rootnode-security-assessment (exam, 60min, hint_policy disabled) using the existing Phase 3B assessment engine: 3 required hands-on CORE scenarios + 4 random-draw pools covering SecurityContext, RBAC, network policy, and the 7 previously-unwired CKS MCQs. Wires the previously-unwired readiness-probe-task scenario as an OPTIONAL practice lab in root-10-m01, using the existing is_required model. Adds root-11-m01-devops-platform-thinking — an honest, lesson-only ROOT 11 orientation module naming DevOps/platform engineering practices already exercised in ROOT 05-10/12, explicit that GitOps/CI-CD/IaC/observability need lab infrastructure this platform doesn't yet provide. No fake labs. Adds infra/scripts/validate-course-content.js: cross-checks the DB against scenario/content files for duplicate ids, orphans, invalid references, cycles, sequence collisions, instructor-notes leakage, and (new) self-paced content deferring explanation to a live instructor. 0 errors against the resulting 22 courses/modules, 163 activities, 98 scenario files. No application code changed — every gap was satisfiable with existing tables (course_modules, module_activities, assessment_definitions) and the existing content-delivery pipeline. Co-Authored-By: Claude Sonnet 5 <[email protected]>
2.5 KiB
Reflection: A Framework You've Actually Used Is One You'll Trust Under Pressure
You just solved two real, different failures — a CrashLoopBackOff and a broken Service selector — using the same seven-step framework both times. Take a few minutes to consolidate this.
Reflection questions
- Which framework step did you personally find easiest to skip or rush through across both Labs? Why do you think that step specifically tempts shortcuts?
- Compare how you approached
crashloop-fixversusendpoint-fix-task. What was IDENTICAL about your process, and what was different only because the evidence looked different? - Now that you've practiced this framework on two failures you'd never seen exact instructions for, how confident do you feel applying it to a THIRD, completely unfamiliar Kubernetes failure? What would you still want to double-check?
Real Ops takeaway
The framework's value shows up most on failures you've never seen before. Anyone can memorize "if X symptom, do Y fix" for a handful of common problems — that knowledge doesn't transfer. Observe → Evidence → Hypothesis → Test → Repair → Validate → Prevent Recurrence transfers to failures nobody has specifically taught you, because it's a PROCESS, not a lookup table.
"Prevent Recurrence" is what separates incident response from firefighting. Both Labs in this module had a real, nameable prevention practice (verify command strings before deploying; keep label keys consistent between a Deployment and its Service). Teams that consistently ask this question after every fix accumulate fewer repeat incidents over time — not because they got lucky, but because they closed the actual gap each time.
This module is complete. Continue to the next module.
Instructor Notes
Discussion questions for a live classroom: question 1 tends to produce honest, useful answers — "Prevent Recurrence" and "Form Hypothesis" (skipping straight to a guessed fix) are the two most commonly admitted shortcuts, both worth normalizing as a real temptation to resist rather than treating as a personal failing.
Approximate timing: 8-10 minutes live discussion; 5-7 minutes self-paced writing.
Optional extension: ask students to apply the framework, from memory and without re-reading
this module, to a THIRD failure type they haven't practiced yet (e.g., a Pod stuck Pending —
not built as a hands-on Lab in this module, just a thought exercise) to test genuine
transferability.