crossplane / upjet

A code generation framework and runtime for Crossplane providers
Apache License 2.0
320 stars 90 forks source link

Call TerraformConversions in Terraform Plugin Framework External Client #430

Open turkenf opened 2 months ago

turkenf commented 2 months ago

What problem are you facing?

When we work on adding s3 directory bucket resource (framework resource), we noticed that we could not determine the fields that are singleton lists from the schema JSON. We added the following function to set the field's MaxItems to 1 manually.

func setMaxItemsConstraintsOnFrameworkResources() config.ResourceOption {
    return func(r *config.Resource) {
        switch r.Name {
        case "aws_s3_directory_bucket":
            r.TerraformResource.Schema["location"].MaxItems = 1
        default:
            return
        }
    }
}

Then we encountered the following issue:

Screenshot 2024-08-29 at 18 32 02

This issue is caused by the fact that we cannot call TerraformConversions in the Terraform Plugin Framework External Client.

PR discussion

How could Upjet help solve your problem?

Implement the feature that caused the above issue.