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] Unblock provider use of Plugin Framework alongside SDKv2 #981

Closed
7 of 9 tasks
t0yv0 opened this issue Apr 12, 2023 · 11 comments
Closed
7 of 9 tasks

[Epic] Unblock provider use of Plugin Framework alongside SDKv2 #981

t0yv0 opened this issue Apr 12, 2023 · 11 comments
Assignees
Labels
area/plugin-framework Support for Plugin Framework based providers kind/epic Large new features or investments resolution/fixed This issue was fixed
Milestone

Comments

@t0yv0
Copy link
Member

t0yv0 commented Apr 12, 2023

Support providers that serve a mix of SDKv2 and Plugin Framework based resources, targeting these three Pulumi providers:

Requirements

  • no unexplained changes in schema
  • tests passing on a mix of new and old resources/functions, new tests added as necessary
  • functionality for the majority of resources/functions that continue to be implemented against TF SDKv2 upstream continues to use previous production code paths, so we gradually expose new code paths into production

Work Items ⚙️

These providers combine Plugin Framework and SDKv2 based resources with a gradual transition:

The following providers are fully based on Plugin Framework:

  • Random - Status: in prod
  • TLS - Status: awaiting upstream release based on PF

M0.87

M0.88

M0.89

@t0yv0 t0yv0 added needs-triage Needs attention from the triage team kind/enhancement Improvements or new features and removed needs-triage Needs attention from the triage team labels Apr 12, 2023
@t0yv0 t0yv0 self-assigned this Apr 12, 2023
@t0yv0 t0yv0 added this to the 0.87 milestone Apr 12, 2023
@t0yv0
Copy link
Member Author

t0yv0 commented Apr 13, 2023

Some progress, got a build that has strictly additive schema changes and preserves ExtraTypes and is able to deploy resources.

pulumi/pulumi-aws#2464
#988

name: check
runtime: yaml
description: A minimal Pulumi YAML program
outputs: {}
resources:
  bucket1:
    type: aws:s3:Bucket
  rexpl1:
    type: aws:resourceexplorer/index:Index
    properties:
      type: LOCAL
  cidrcol1:
    type: aws:route53/cidrCollection:CidrCollection
    properties:
     name: collection-2
variables: {}

To make this mergeable:

  • verify GetMapping
  • verify cmd-line flags to dump MasrhsallableProviderInfo work as before
  • verify sdk generation works
  • verify tests pass in CI
  • do an API simplification pass to tuck away internals from the provider itself
  • break apart and check in changes to pulumi-terraform-bridge into the repo to release

@t0yv0 t0yv0 added the area/plugin-framework Support for Plugin Framework based providers label Apr 19, 2023
@t0yv0
Copy link
Member Author

t0yv0 commented Apr 19, 2023

A lot more progress pulumi/pulumi-aws#2464 - this doesn't have any known issues, we're working through CI issues to get a clean passing mark on all tests, and adding some tests specific to PF.

@t0yv0
Copy link
Member Author

t0yv0 commented Apr 21, 2023

More progress still, most tests passing except aliased legacy LoadBalancer is failing with, I think @iwahbe is taking this, then we re-test.

    error: unrecognized resource type (Check): aws:elasticloadbalancingv2/loadBalancer:LoadBalancer

@AaronFriel
Copy link
Contributor

@t0yv0 @iwahbe Can we add issues to track the rollout for Cloudflare, GCP & Azure (stage 1 & stage 2), cross-linking those with the other epics?

@t0yv0 t0yv0 modified the milestones: 0.87, 0.88 Apr 24, 2023
@t0yv0 t0yv0 changed the title Unblock pulumi-aws provider use of Plugin Framework Unblock bridged provider partial use of Plugin Framework alongside SDKv2 Apr 26, 2023
@t0yv0 t0yv0 changed the title Unblock bridged provider partial use of Plugin Framework alongside SDKv2 Unblock provider use of Plugin Framework alongside SDKv2 Apr 26, 2023
@t0yv0 t0yv0 added kind/epic Large new features or investments and removed kind/enhancement Improvements or new features labels Apr 26, 2023
@t0yv0
Copy link
Member Author

t0yv0 commented Apr 26, 2023

Per our conversations this issue is now repurposed as an epic encompassing all 3 providers rather than an AWS-specific task. I've added links to known WIP PRs and tracking issues. Feel free to edit. I've less context on what needs to happen for Stage 2, fork removal perhaps? If we want to track it here please populate that section.

@t0yv0 t0yv0 changed the title Unblock provider use of Plugin Framework alongside SDKv2 [Epic] Unblock provider use of Plugin Framework alongside SDKv2 Apr 26, 2023
@t0yv0
Copy link
Member Author

t0yv0 commented May 5, 2023

#1032 is "almost" ready to review. The plan is:

https://github.com/pulumi/home/issues/2849 first cover prod code at ProgramTest level (postmortem follow, reduce risk to editing sdkv2 code)
https://github.com/pulumi/pulumi-terraform-bridge/pull/1086 then merge refactor of prod code
https://github.com/pulumi/pulumi-terraform-bridge/pull/1065 then rebase, review and merge actual fix

However 1032 by itself does NOT unblock pulumi-aws as I previously thought, which is unfortunate.

The underlying remaining issue #1074 is deeper.

I hope that #1086 fixes this deeper problem, but have not verified yet that this fixes it.

Also want to call out that lack of AutoName support is possible blocker if we move resources that used to rely on AutoName to PF and they lose AutoName that's breaking.

Support for provider-info level default values and autoname still on track in the iteration.

@t0yv0
Copy link
Member Author

t0yv0 commented May 12, 2023

Notes from @iwahbe : it's helpful to install autoaliasing before these updates to speed up the process. We're unlocked now and starting to make releases.

@t0yv0
Copy link
Member Author

t0yv0 commented Jun 2, 2023

Notes from project sync: AWS has extensive backports; likely first PF release of AWS (+ new version alpha) will not do any of that but simply add net-new PF resources and datasources. Removing backports and using straight PF resources will be left for later, and preferably picked up by pulumi/providers team.

@t0yv0
Copy link
Member Author

t0yv0 commented Jun 2, 2023

Possible reasons to do backports sooner: if there's some incompatible changes over the resources in question that coincide with the major version bump; backported resources may defer these breaking changes.

@mikhailshilkov mikhailshilkov modified the milestones: 0.89, 0.90 Jun 7, 2023
@t0yv0
Copy link
Member Author

t0yv0 commented Jun 9, 2023

Closing as complete per conversation with @AaronFriel . Remaining AWS rollout is happening as 6.0-alpha and tracked in pulumi/pulumi-aws#2539

@t0yv0 t0yv0 closed this as completed Jun 9, 2023
@pulumi-bot pulumi-bot reopened this Jun 9, 2023
@pulumi-bot
Copy link
Contributor

Cannot close issue without required labels: resolution/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/plugin-framework Support for Plugin Framework based providers kind/epic Large new features or investments resolution/fixed This issue was fixed
Projects
None yet
Development

No branches or pull requests

4 participants