crossplane-contrib / crossplane-contrib/crossplane-diff
crossplane-diff fails with too large composites relying on function-go-templating
- Dominant language
- Go
- Stars
- 42
- Forks
- 15
- Avg merge
- 10h 26m
- Merged PRs (30d)
- 33
Description
### What happened?
When trying to do a `crossplane-diff comp` of a composite resource bundling hundreds of resources, the following error prompts:
```
✗ XPagerDutyService/foo-kgwt8 (cluster-scoped)
Error: unable to process resource lansweeper.com/v1alpha1/XPagerDutyService//foo-kgwt8: cannot render resources with requirements: cannot render resources: cannot render: crossplane internal render in Docker returned error with output: crossplane: error: cannot render composite resource: reconcile failed: cannot compose resources: cannot run Composition pipeline step "populate-contexts": rpc error: code = ResourceExhausted desc = grpc: received message larger than max (4517460 vs. 4194304)
```
### How can we reproduce it?
Have a large composite using `function-go-templating`. Today there's no way to set the max recv message size for that function.
### What environment did it happen in?
Crossplane version: v2.3.3
Crossplane-diff: v0.8.0
function-go-templating: v0.12.2
Contributor guide
Research direction
Start at the `crossplane-diff comp` path that invokes the internal Docker render and the function-go-templating pipeline. Inspect how the gRPC receive limit is configured, then reproduce the v0.8.0 failure with a large composite. Done means large composites render without the `ResourceExhausted` message and the max receive size can be configured.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, go
- Domain
- cli, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100