Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Epic] Support bridging providers built with Terraform Plugin Framework #744

Closed
t0yv0 opened this issue Jan 26, 2023 · 7 comments
Closed
Assignees
Labels
kind/epic Large new features or investments resolution/fixed This issue was fixed
Milestone

Comments

@t0yv0
Copy link
Member

t0yv0 commented Jan 26, 2023

Overview

Enable building Pulumi providers from Terraform providers that are defined fully or in part using the new Terraform Plugin Framework by updating pulumi-terraform-bridge to understand it.

The work in progress is available as pf Go Module
which includes a README with instructions on
trying it out.

Support

#plugin-framework in Community Slack.

Timeline

2023 Q1

Releases:

Bridged Terraform Plugin Framework Providers ⚙️

Pulumi-maintained providers targeting an update soon:

Other provider ideas, open for community suggestions and unblocking issues encountered on community ports:

  • github.com/fly-apps/terraform-provider-fly
  • github.com/hashicorp/terraform-provider-tls
  • github.com/aiven/terraform-provider-aiven
  • github.com/civo/terraform-provider-civo
  • github.com/fortinetdev/terraform-provider-fortios
  • github.com/tmeckel/terraform-provider-mssql

Work Items ⚙️

M0.79

  • pulumi/home#2380
  • pulumi/home#2387
  • Investigate quick support options via muxing to v5 protocol

M0.80

  • Read support
  • Rewrote Diff/Create/Update with better understanding of state vs checkedInputs from Design syncs, remove TODOs
  • Support more types on the wire
  • Boolean
  • List
  • Map
  • Support computing PackageSpec Pulumi schema from PF schema (by reusing tfgen)
  • Resources
  • Provider config
  • Build new-style tfgen.Main
  • Integration tests cover CRUD scenarios over random provider and test-only testbridge provider
  • Unit tests replay gRPC logs from integration tests to check CRUD methods more quickly

M0.81

M0.82

M0.83

  • pulumi/home#2471
  • pulumi/home#2472
  • pulumi/home#2473

Review:

M0.84

Dev:

Review:

https://github.com/pulumi/home/issues/2543 PF 1.0

M0.85

M0.86

To Triage

Remaining

@ryanrasti
Copy link

Wow -- what great timing! I was looking for this feature for writing our fly configuration with Pulumi (brought here by this thread).

Any idea on what the timeline for getting TPF support would be?

@t0yv0
Copy link
Member Author

t0yv0 commented Jan 26, 2023

@ryanrasti it's my team's top priority for the quarter. What's available today is viable for small/simple providers and I'm working to itemize the list of known missing features and provides links to getting started. Several Pulumi partners are trying this out already and we will be dogfooding it in random and tls providers shortly.

Any feedback you might have or even just upvoting issues is super helpful!

@t0yv0 t0yv0 added the kind/epic Large new features or investments label Jan 26, 2023
@t0yv0 t0yv0 self-assigned this Jan 26, 2023
@tmeckel
Copy link
Contributor

tmeckel commented Feb 1, 2023

@t0yv0 Actually I wanted to publish the PGSoft MSSQL Terraform Provider as a Pulumi provider using TF Bridge. pulumiverse/infra#59 But I wasn't aware of the fact that the provider is using the terraform-plugin-framework. So I suspect that I've to postpone my work until TF bridge will support terraform-plugin-framework.

That's a small bummer because I planned to use the Pulumi version of the provider in a customer project to fulfill compliance requirements. Sad that I could upvote this issue here only once 😁

@tmeckel
Copy link
Contributor

tmeckel commented Feb 1, 2023

@t0yv0 Any guidance on how to use the PF Version of TF Bridge? I could try to add/integrate the required steps to wrap a TF provider using the terraform-plugin-framework in my cookiecutter template to create new Pulumi providers based on TF Bridge.

@t0yv0
Copy link
Member Author

t0yv0 commented Feb 8, 2023

@tmeckel sorry for late reply here, I have been keeping quite busy! The cookiecutter template support sounds quite exciting actually.

The README you link to is the best we have for the moment, but we will have some example repositories shortly. Our current goal is to start using it ourselves as soon as practical. The first attempt to release pulumi-random encountered a critical issue with unexpected replace plans on pf/v0.1.0, which is fixed by #748, and now I'm working to try to upgrade pulumi-random again.

There're some trade-offs with trying to use pf/tfbridge before it reaches GA - it may not be suitable for all providers yet based on incomplete feature set support. We try to keep the list in this issue up to date to help evaluate, and I'll start correlating it to versions as in a CHANGELOG shortly.

@t0yv0
Copy link
Member Author

t0yv0 commented Apr 5, 2023

Sorry folks to ask for update the bookmarks, but according to our company process the remaining work rolls over to a continuation epic for Q2 2023: #956

@t0yv0 t0yv0 closed this as completed Apr 5, 2023
@pulumi-bot pulumi-bot reopened this Apr 5, 2023
@pulumi-bot
Copy link
Contributor

Cannot close issue without required labels: resolution/

@t0yv0 t0yv0 added the resolution/fixed This issue was fixed label Apr 5, 2023
@t0yv0 t0yv0 closed this as completed Apr 5, 2023
@AaronFriel AaronFriel added this to the 0.87 milestone Apr 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/epic Large new features or investments resolution/fixed This issue was fixed
Projects
None yet
Development

No branches or pull requests

5 participants