Hello Pico on Kubernetes
See the Open Engineering Language Server (OELS) onboarding guide for the local install and editor setup.
While you work through this content, keep the Open Engineering Language Server (OELS) active in VS Code (or any LSP-capable editor). See the OELS onboarding guide linked at the top of this page (also linked from the academy Resources page) for the one-time install and configuration steps.
What OELS validates. OELS only recognizes OE-shaped YAML/JSON: files with a mapping root that declare an apiVersion beginning with open-engineering.io/, a non-empty kind, and a DNS-1123 metadata.name. Ordinary academy metadata.yaml, Quarto/QMD pages and front matter, Kubernetes/Crossplane/runtime manifests, JSON payload samples, and shell scripts are intentionally non-OE — OELS ignores them silently and you should not add synthetic apiVersion/kind headers to force recognition.
Where you see diagnostics. OELS surfaces UnknownProperty, MissingRequiredProperty, IncorrectType, InvalidEnumValue, MalformedIdentifier, UnknownDefinition, and reference-shape hints in the editor Problems panel as you type. These are independent of quarto render: OELS diagnostics do not block rendering, and Quarto errors do not appear in the Problems panel.
The executable check still comes from this exercise. OELS speeds up editing, but the exercise’s own parser, verifier, or verify.sh (for example the pico parse … command shown below) remains the authoritative success check. Run it as usual.
Overview
Hello Pico on Kubernetes is the first Crossplane lab of the Open Engineering Academy. You will install Crossplane on a local minikube cluster, install the Crossplane Kubernetes Provider, declare a CompositeResourceDefinition (XRD) for a new XHelloWorldPico API, register a Composition that turns that XR into concrete Managed Resources, and create one Composite Resource that reconciles into a Kubernetes Job printing Hello, Pico! from inside the cluster.
This lab is reusable across courses: it lives at the repository root under labs/hello-pico-on-kubernetes/ and is referenced from the Crossplane course and any other course that needs a first runnable Kubernetes composition.
Structure
What you will produce
A single artifact directory named hello-world-pico-on-kubernetes — matching the produces entry in the crossplane course metadata. The directory contains:
- the exact YAML manifests applied to the cluster (Provider, ProviderConfig, RBAC, XRD, Composition, XR), and
- the captured cluster evidence (
greeting.txt— theHello, Pico!string printed by the composed KubernetesJob).
Downloads and screenshots
The six starter manifests for this lab ship under downloads/ — see the Solution for the numbered list applied in order against the cluster. Screenshots referenced from the walkthrough live under screenshots/.
Metadata
Machine-readable descriptor: metadata.yaml. Fields follow the same schema as labs/hello-pico/metadata.yaml.
Referenced from
- Crossplane course · Part 1 · Composing Hello Pico on Kubernetes · Lab
- Crossplane course · Hello Pico on Kubernetes as a constructive exemplar — points Definition, Realization, Element, Dependency, Composition, Constraint, Validation, and Feedback at the material in this lab.
- Sandcastle → Kubernetes hand-off lab — feeds this lab an
XHelloWorldPicoXR built from a Sandcastle-produced branch. - Sandcastle course · Part 3 · Handing off to Kubernetes · Lab