crossplane-tools icon indicating copy to clipboard operation
crossplane-tools copied to clipboard

Support generating reference resolvers targeting multiple types

Open wwentland opened this issue 3 years ago • 4 comments

What problem are you facing?

It is currently not possible to generate ResolveReferences methods that target multiple suitable types even though there are cases in which this would be desirable.

A good example for this are references to KMS CMKs and Aliases in AWS.

Either can be used as reference in a SQS Queue's kmsMasterKeyId and Crossplane should support both.

How could Crossplane help solve your problem?

Resolving of references to KMS Keys for Queues has been implemented in the following way:

// KMSMasterKeyID - The ID of an AWS-managed customer master key (CMK)
// ...
// +crossplane:generate:reference:type=github.com/crossplane/provider-aws/apis/kms/v1alpha1.Key
KMSMasterKeyID *string `json:"kmsMasterKeyId,omitempty"`
KMSMasterKeyIDRef *xpv1.Reference `json:"kmsMasterKeyIdRef,omitempty"`
KMSMasterKeyIDSelector *xpv1.Selector `json:"kmsMasterKeyIdSelector,omitempty"`

It would be absolutely fantastic if crossplane-tools would support listing multiple suitable types here, similar to:

// KMSMasterKeyID - The ID of an AWS-managed customer master key (CMK)
// ...
// +crossplane:generate:reference:type=github.com/crossplane/provider-aws/apis/kms/v1alpha1.Key
// +crossplane:generate:reference:type=github.com/crossplane/provider-aws/apis/kms/v1alpha1.Alias
KMSMasterKeyID *string `json:"kmsMasterKeyId,omitempty"`
KMSMasterKeyIDRef *xpv1.Reference `json:"kmsMasterKeyIdRef,omitempty"`
KMSMasterKeyIDSelector *xpv1.Selector `json:"kmsMasterKeyIdSelector,omitempty"`

If there are multiple suitable candidates users would use matchLabels and suitable matches to differentiate between these resources.

Thank you!

wwentland avatar Feb 23 '22 20:02 wwentland

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Aug 13 '22 09:08 stale[bot]

This would still be great to have.

wwentland avatar Aug 19 '22 21:08 wwentland

I would love to have this too

mbbush avatar Oct 14 '23 03:10 mbbush

Really needed functionality

selfuryon avatar Nov 08 '23 23:11 selfuryon