crossplane-contrib / crossplane-contrib/crossplane-diff

crossplane-diff fails with too large composites relying on function-go-templating

Open
#368 2 comments 1 reaction 0 assignees View on GitHub
bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.