Install the `function-patch-and-transform` function into the cluster: apply the Function manifest with `apiVersion: pkg.crossplane.io/v1beta1` and the OCI image reference for the function.
In the Composition manifest set `spec.mode: Pipeline` and define `spec.pipeline[]` steps, referencing `function-patch-and-transform` by its name in each step's `functionRef.name`.
Each pipeline step receives an `input` of kind `Resources` (for function-patch-and-transform) that lists composed resource templates with `base` specs and `patches` arrays.
Use patch types such as `FromCompositeFieldPath`, `ToCompositeFieldPath`, and `CombineFromComposite` in the `patches` arrays to map claim fields to composed resource fields and back.
Apply the Composition and create a claim; use `kubectl describe compositeresource <name>` to trace pipeline step outputs and confirm all patches applied correctly.
Check the function pod logs (`kubectl logs -n crossplane-system -l pkg.crossplane.io/function=<FUNCTION-NAME>`) for patch evaluation errors when composed resources fail to reconcile.
Known gotchas
`spec.mode: Pipeline` and `spec.mode: Resources` are mutually exclusive in a Composition; migrating from the legacy `Resources` mode to `Pipeline` mode requires rewriting the entire composition structure.
The `function-patch-and-transform` function version must be compatible with the installed Crossplane version; check the function's release notes for the supported Crossplane version range.
Pipeline mode Compositions process steps sequentially; if an earlier step produces an output that a later step depends on via a composite field patch, the field must already be set in the composite resource before the earlier step runs.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp