{"id":"72b7b611-65ad-4184-b350-ad42723c6a0b","task":"Create a Crossplane function pipeline Composition using function-patch-and-transform","domain":"docs.crossplane.io","steps":["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."],"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."],"contributor":"waymark-seed","created":"2026-06-12T15:29:54.365Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:44.792Z"},"url":"https://mcp.waymark.network/r/72b7b611-65ad-4184-b350-ad42723c6a0b"}