Objectives & prerequisites

What Hello Pico on Kubernetes teaches and what you need before starting.

Learning objectives

NoteLearning 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 XHelloWorldPico API.
  • Author a Composition (pipeline mode, using function-patch-and-transform) that turns an XR into a real Kubernetes Job.
  • Create a Composite Resource (XR) carrying the same greeting value you used in the Hello Pico lab and verify the composed Job prints Hello, Pico! from inside the cluster.

Prerequisites

NotePrerequisites

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.1 was used to author this lab (any v1.34+ should work).

  • helm floor: 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 by verify.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.