Objectives & prerequisites
Learning objectives
- Install Crossplane on a local Kubernetes cluster.
- Install the Crossplane Kubernetes Provider and grant it the RBAC it needs to act on the cluster.
- Declare a CompositeResourceDefinition (XRD) for a new
XHelloWorldPicoAPI. - Author a Composition (pipeline mode, using
function-patch-and-transform) that turns an XR into a real KubernetesJob. - Create a Composite Resource (XR) carrying the same greeting value you used in the Hello Pico lab and verify the composed
JobprintsHello, Pico!from inside the cluster.
Prerequisites
- Completion of the Hello Pico lab — the greeting value in this lab reuses the same
Hello, Pico!string. - Completion of the Crossplane · Part 1 · 01 Composing Hello Pico on Kubernetes lesson (or equivalent familiarity with Provider, XRD, Composition, XR, and Managed Resource).
Environment
The canonical local Kubernetes setup — supported OS, install commands for docker, minikube, kubectl, and helm, PATH checks, and a first cluster bring-up — lives in the Kubernetes course setup foundation. Complete that page first so all four tools resolve on your PATH.
Lab-specific additions on top of that canonical setup:
Reference minikube pin:
v1.38.1was used to author this lab (anyv1.34+should work).helmfloor:v3.14+(v3.16+recommended) — used to install Crossplane in Step 3 of the walkthrough.Bash utilities:
grep,cat,mkdir,cp— invoked by the walkthrough and byverify.sh.Estimated time: 60–90 minutes (of which the cluster start and Crossplane install account for roughly 5–10 minutes).
Cleanup step (also repeated at the end of the walkthrough):
minikube delete --profile crossplane-lab rm -rf build/hello-world-pico-on-kubernetes work/hello-pico-on-kubernetes
Pinned versions (reference)
The walkthrough was authored and verified against these versions. Newer versions are expected to work; older versions may not support the Pipeline composition mode or the referenced provider APIs.
- Crossplane chart: v2.3.4
- Provider Kubernetes: v0.18.0 (
xpkg.crossplane.io/crossplane-contrib/provider-kubernetes:v0.18.0) - Function Patch and Transform: v0.9.0 (
xpkg.crossplane.io/crossplane-contrib/function-patch-and-transform:v0.9.0) - Kubernetes API version in minikube: v1.31.0
One-time setup (optional)
The walkthrough uses a dedicated minikube profile named crossplane-lab so it does not interfere with other clusters. If you prefer to use your existing minikube cluster, drop --profile crossplane-lab from every command. If you use a Kubernetes distribution other than minikube (kind, k3d, docker-desktop), all kubectl, helm, and crossplane steps below still apply.