-
Notifications
You must be signed in to change notification settings - Fork 38
Can't create cross resource reference if the terraform field type is Number #277
Comments
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. |
I guess this would block building a hcloud provider as well, since it has integer id's. For example: |
@muvaf can we revive this? |
I just wanted to say that I've started working on implementing support for cross-resource references for other primitives than string. So far I've added support for From my understanding, the best way to solve this is by updating the The initial commit for supporting this can be found in my fork of crossplane-runtime and crossplane-tools E.g. in the case where the the source is of type for i3 := 0; i3 < len(mg.Spec.ForProvider.Reviewers); i3++ {
mrsp, err = r.ResolveMultiple(ctx, reference.MultiResolutionRequest{
-- CurrentValues: reference.FromPtrValues(mg.Spec.ForProvider.Reviewers[i3].Teams),
++ CurrentValues: reference.FromFloatPtrValues(mg.Spec.ForProvider.Reviewers[i3].Teams),
Extract: reference.ExternalName(),
References: mg.Spec.ForProvider.Reviewers[i3].TeamsRefs,
Selector: mg.Spec.ForProvider.Reviewers[i3].TeamsSelector,
To: reference.To{
List: &v1alpha1.TeamList{},
Managed: &v1alpha1.Team{},
},
})
if err != nil {
return errors.Wrap(err, "mg.Spec.ForProvider.Reviewers[i3].Teams")
}
-- mg.Spec.ForProvider.Reviewers[i3].Teams = reference.ToPtrValues(mrsp.ResolvedValues)
++ mg.Spec.ForProvider.Reviewers[i3].Teams = reference.ToFloatPtrValues(mrsp.ResolvedValues)
mg.Spec.ForProvider.Reviewers[i3].TeamsRefs = mrsp.ResolvedReferences
} |
What happened?
Context:
https://github.com/crossplane-contrib/provider-jet-datadog
Attempt to create cross resource reference for ServiceLevelObjective resource pointing to Monitors
It fails with type mismatch error
I've tried to override the field type ( thanks @ezgidemirel ) with
but it failed runtime with
reporting the underlying terraform type mismatch
I've also tried to play with Extractor function but it looks like it always has to return ExtractValueFn of crossplane-runtime but it also eventually return string.
CC: @turkenh
How can we reproduce it?
Add the reference configuration to
config/monitor/config.go
to reproduce the type mismatch failure
The text was updated successfully, but these errors were encountered: