Skip to content

docs(example): run every example with crossplane render#102

Merged
jbw976 merged 1 commit into
crossplane-contrib:mainfrom
jbw976:example-render-support
Jul 18, 2026
Merged

docs(example): run every example with crossplane render#102
jbw976 merged 1 commit into
crossplane-contrib:mainfrom
jbw976:example-render-support

Conversation

@jbw976

@jbw976 jbw976 commented Jul 18, 2026

Copy link
Copy Markdown
Member

Description of your changes

The current examples only document a live-cluster workflow. This PR now gives each one a self-contained setup so crossplane render can be used to exercise them offline against a function-kro running in Development mode.

Every example directory now has a schemas/ directory, a functions.yaml wiring function-kro (plus function-auto-ready where the pipeline uses it), and a README covering the render command with a link to the top-level cluster walkthrough.

crossplane render has no cluster to read schemas from, so schemas/ holds an OpenAPI v3 schema for the XR and, for the AWS examples, the real VPC, Subnet, and SecurityGroup types from provider-aws-ec2 pruned to the fields the examples reference. Built-in Kubernetes types resolve from function-kro's compiled-in definitions and need no schema.

The examples whose resources depend on each other, plus app, also include an observed.yaml. Without it render shows only the first wave; passing --observed-resources resolves the dependencies and populates status, so users can run both and see the difference, and collection-limits can trip its size guardrail once the collection expands.

This PR also drops the basic example's stale README, extra.yaml, and observed-*.yaml, which are no longer applicable.

I've gone through all these examples and reviewed their output, it all looks correct to me 😇

I have:

The examples only documented a live-cluster workflow. Give each one a
self-contained setup so `crossplane render` works offline against a
function-kro running in Development mode.

Every example directory now has a schemas/ directory, a functions.yaml wiring
function-kro (plus function-auto-ready where the pipeline uses it), and a README
covering the render command with a link to the top-level cluster walkthrough.
crossplane render has no cluster to read schemas from, so schemas/ holds an
OpenAPI v3 schema for the XR and, for the AWS examples, the real VPC, Subnet,
and SecurityGroup types from provider-aws-ec2 pruned to the fields the examples
reference. Built-in Kubernetes types resolve from function-kro's compiled-in
definitions and need no schema.

The examples whose resources depend on each other, plus app, also include an
observed.yaml. Without it render shows only the first wave; passing
--observed-resources resolves the dependencies and populates status, so users
can run both and see the difference, and collection-limits can trip its size
guardrail once the collection expands.

Drop basic's stale README, extra.yaml, and observed-*.yaml, which used the old
non-namespaced ec2 API and the CRD fallback path.

Signed-off-by: Jared Watts <jbw976@gmail.com>
@jbw976
jbw976 merged commit 8d34cff into crossplane-contrib:main Jul 18, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant