Objectives & prerequisites
Learning objectives
- Identify a Sandcastle-produced Git branch as the durable input the composition layer consumes.
- Promote the greeting
valuefromrules/hello.yamlon that branch into thespec.valuefield of a Crossplane CompositeResource (XHelloWorldPico). - Demonstrate that the generated XR is byte-equivalent to the reference
05-xr.yamlthe Hello Pico on Kubernetes lab ships — so it drops in without modification. - Recognise that the hand-off itself is the construct → compose boundary in the academy story Crossplane composes, Sandcastle constructs, Picos behave.
Prerequisites
- Completion of the Hello World Pico Sandcastle lab — you need the durable
sandcastle/hello-world-picobranch onwork/hello-world-pico-sandcastle/target-repo. If it is missing, the lab’sverify.shwill run the Sandcastle lab for you. - Familiarity with the Hello Pico on Kubernetes lab at the level of its walkthrough steps 1–4 (install Crossplane, install the Kubernetes provider, register the XRD and Composition). A cluster is not required for this lab; if you choose to apply the generated XR in a cluster afterwards, the canonical local minikube setup home is the Kubernetes course setup foundation.
Environment
Supported OS: macOS (Apple Silicon or Intel), Linux, or WSL.
Required shell:
bash3.2+ orzsh5.0+.Required tools (all invoked directly by the walkthrough):
bashand standard POSIX utilities (grep,sed,cat).git— reads the Sandcastle-produced branch.python3— parses the rule value and validates the generated XR.
PATH expectation:
bash,git, andpython3must all resolve onPATH. No cluster tooling (kubectl,helm,minikube) is required for this lab.Estimated time: 15–30 minutes.
Cleanup step (also repeated at the end of the walkthrough):
rm -rf work/handoff-sandcastle-to-kubernetes
Install commands
If any tool above is missing, install it using its upstream instructions before starting the walkthrough. On macOS with Homebrew:
brew install git python3On Linux, use your distribution’s package manager (apt, dnf, etc.). Confirm each tool resolves before you begin:
command -v bash && bash --version | head -1
command -v git && git --version
command -v python3 && python3 --versionOne-time setup (optional)
The hand-off script reads the Sandcastle-produced branch from work/hello-world-pico-sandcastle/target-repo by default. If your Sandcastle work-root is elsewhere, set SANDCASTLE_WORK when invoking handoff.sh or verify.sh.