Labs

Labs referenced by the Sandcastle course. Course-scoped labs live under courses/sandcastle/labs/; reusable labs shared with other courses live under the repository-root labs/ directory.

Referenced labs

  • Hello World Pico Sandcastle — the first runnable Sandcastle lab. Runs a real Sandcastle end-to-end (isolated workspace, PATH allowlist, agent inner loop, artifact hand-off, sandbox teardown) to construct the hello-world-pico artifact on a dedicated sandcastle/hello-world-pico branch. Ships an automatable verify.sh and is exercised from Part 1’s Lab page.
  • Compose a Sandcastle request — the first runnable compose → construct lab. Takes a learner-authored Crossplane XHelloWorldPico XR, has a simulated Composition emit an EngineeringTask, and has a Sandcastle pick up the task and construct the requested rules/hello.yaml on a dedicated sandcastle/hello-world-pico-<name> branch. Ships an automatable verify.sh and is exercised from Part 2’s Lab page.
  • Sandcastle → Kubernetes hand-off — the first runnable Sandcastle-to-Crossplane hand-off lab. Takes the durable branch the Sandcastle lab produced and promotes its greeting value into a Crossplane XHelloWorldPico Composite Resource that drops into the Hello Pico on Kubernetes lab without modification. Ships an automatable verify.sh and is exercised from Part 3’s Lab page.
  • Outer delivery loop — the first runnable outer-loop lab. Takes the XR the hand-off lab produced, drives it through a real GitHub pull request and merge on a learner-controlled env repo, and reconciles the merged XR onto the Crossplane cluster from Hello Pico on Kubernetes via Flux (with a kubectl fallback). Ships an automatable verify.sh that runs stages 1–2 against live GitHub without requiring a cluster, and is exercised from Part 3’s Lab page.

Authoring course-scoped labs

Course-scoped labs live in this directory and follow the shared lab template. Reuse a repository-root lab when the same lab is useful for more than one course.