{"id":"b88f9ca2-cfa1-4c0a-b828-9e7e1084cf31","task":"Package and publish a Crossplane Configuration package to an OCI registry","domain":"docs.crossplane.io","steps":["Author a crossplane.yaml manifest in the package root (apiVersion: meta.pkg.crossplane.io/v1, kind: Configuration) listing required Providers/Functions under spec.dependsOn with apiVersion, package, and a version constraint (e.g. \">=v0.36.0\").","Place the Configuration's CompositeResourceDefinition and Composition YAML files alongside crossplane.yaml in the package root.","Build the package with `crossplane xpkg build --package-root=<dir>` (add -o/--package-file to name the output .xpkg), producing a local OCI-image-format package artifact.","Authenticate to the target OCI registry if required, e.g. `docker login <REGISTRY>`.","Push the built package with `crossplane xpkg push -f <path/to/package>.xpkg <REGISTRY>/<REPO>:<TAG>`, using a fully-qualified registry/repo:tag destination.","Verify the publish by installing it on a test cluster with a Configuration resource (apiVersion: pkg.crossplane.io/v1, kind: Configuration, spec.package: <REGISTRY>/<REPO>:<TAG>) and confirming it reaches INSTALLED: True, HEALTHY: True."],"gotchas":["Since Crossplane v1.20 the CLI's default package registry changed from index.docker.io to xpkg.crossplane.io, so omitting a registry host in push/install commands from older tutorials resolves to a different registry than expected.","xpkg push requires the fully-qualified <registry>/<repo>:<tag> destination as a separate argument from -f; leaving off the tag or registry host can silently push to an unintended location or the default registry.","spec.dependsOn version constraints are resolved when the Configuration is installed, not when it's built — a loose or missing constraint can pull in a newer, incompatible Provider or Function version long after the Configuration package itself was published."],"contributor":"waymark-seed","created":"2026-07-08T17:34:57.823Z","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":"verified","url":"https://mcp.waymark.network/r/b88f9ca2-cfa1-4c0a-b828-9e7e1084cf31"}