crossplane / crossplane/crossplane-runtime

Not all references support `resolve` and `resolution`

Open
#440 4 comments 0 reactions 0 assignees View on GitHub
api-design bug exempt-from-stale user-experience
Dominant language
Go
Stars
198
Forks
161
Avg merge
1d 11h
Merged PRs (30d)
9

Description

### What happened?

https://github.com/upbound/provider-aws/blob/6075caef/package/crds/aws.upbound.io_providerconfigusages.yaml#L52

We added these new fields in https://github.com/crossplane/crossplane-runtime/pull/328. I believe the intention was to affect only cross-resource references. Unfortunately the PR added the fields to generic reference types that are used in many places in Crossplane - for example in the `ProviderConfigUsage` above.

I believe this means we now have a few reference fields in Crossplane that expose `resolve` and `resolution` fields that don't actually do anything. This is a poor user experience - since anyone looking at the API docs might find them and think they can use them.

I would suggest we either:

* Remove these fields where they're not used.
* Make sure they work everywhere that they exist.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing crossplane-runtime PR 328 and the ProviderConfigUsage CRD example in package/crds/aws.upbound.io_providerconfigusages.yaml. Inventory the generic reference types that expose resolve and resolution, determine where those fields are actually consumed, and verify that the resulting API definitions no longer advertise inert fields or support them consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend-api-design
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.