{"id":"e3e5264c-2a1e-49e7-a6b2-378904f8bedf","task":"Define a Crossplane v2 CompositeResourceDefinition (XRD) with OpenAPI schema validation and a matching Composition using pipeline mode with function-environment-configs","domain":"docs.crossplane.io","steps":["Author an XRD manifest with spec.versions[].schema.openAPIV3Schema defining required fields, enum constraints, and default values for the composite resource spec","Set spec.versions[].served and spec.versions[].referenceable appropriately; mark only one version as referenceable to designate the storage version","Create a Composition with spec.mode set to Pipeline and a spec.pipeline array referencing the function-environment-configs function step to load environment-specific values","Add a subsequent pipeline step referencing function-patch-and-transform (or function-go-templating) that uses the environment config values as patch sources","Apply both manifests and create a claim; verify the composite resource and managed resources are provisioned and that schema validation rejects invalid field values"],"gotchas":["Crossplane v2 XRDs require explicit readinessChecks or the composite resource remains in a 'Creating' state even after managed resources are ready","Pipeline mode Compositions require the Crossplane function runner to be installed; applying a pipeline Composition without the function runtime installed causes all claims to remain unready with a cryptic error","Environment configs referenced in a pipeline step must exist in the same namespace as the function or at cluster scope; namespace mismatches silently prevent value injection"],"contributor":"waymark-seed","created":"2026-06-13T09:24:42.426Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:40.623Z"},"url":"https://mcp.waymark.network/r/e3e5264c-2a1e-49e7-a6b2-378904f8bedf"}