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]>
3.0 KiB
Building kubectl Fluency: Why Twenty Small Reps Beat One Big Lecture
What this module is, and why it looks different from the last one
ROOT 05's mental model module (m00) taught you the CONCEPT of desired state and gave you your
first kubectl commands. This module does something deliberately different: it's a breadth
drill across the everyday kubectl vocabulary you'll type dozens of times a day as a working
Kubernetes engineer — labels, JSONPath, dry-run manifests, patch, field selectors, sort-by,
diff, init containers, static Pods, and more.
There's no single narrative thread connecting these twenty tasks, and that's intentional. Real
kubectl fluency isn't one big insight — it's having enough of these small, specific commands
already in muscle memory that you're not stopping to look up syntax while you're mid-incident.
Each task below explains the specific concept it covers in its own description; your job is to
work through them, not to memorize a lecture first.
How to approach this module
- Don't try to do them in one sitting if you don't need to. These are independent — skip around, come back to ones you found awkward, and don't feel obligated to treat this as one continuous session.
- Read each task's own explanation before reaching for the hint. Every one of these twenty tasks includes real context in its description — that context IS the teaching content for that specific command. The hint is there for when you're stuck, not as the first thing to read.
- Notice which commands you reach for confidently versus which ones you have to think about. That gap is exactly what the reflection at the end of this module asks you to name.
- This breadth matters more than it looks like it does.
kubectl explain,--dry-run, JSONPath output, andkubectl patchin particular are commands experienced engineers use constantly and newer engineers often don't know exist at all — this module exists specifically to close that gap early.
Instructor Notes
Lesson goal: Frame this module correctly before students hit it — it's a breadth-practice bank, not a single-concept lesson, and the individual task descriptions carry the teaching content. Without this framing, students sometimes expect a lecture and are confused when they land directly on twenty short tasks.
Approximate timing: 5 minutes to introduce; the module itself runs long (20 tasks) and is meant to be worked through at each student's own pace, live or between sessions.
Facilitation for a live cohort: Consider live-demoing 2-3 of the less obvious ones
(kubectl explain, JSONPath output, kubectl patch) rather than all twenty — the goal is to
unblock students on the commands they're least likely to have seen before, not to walk through
every task.
Expected takeaway: Kubernetes fluency is built from a large vocabulary of small, reliable commands, not just conceptual understanding — this module is where that vocabulary gets built.