hundreds-truck-17153
02/24/2025, 12:40 PMxternal-bridged-provider
template and then calling make ci-mgmt.
Below I am detailing the process we think we need to implement to upgrade the provider and sdks. Can somebody take a look at it andlet us know if this is ok? I appreciate it!
1. Make Changes to the Terraform Provider
Modify the Terraform provider source code to add/update resources, data sources, or functionality.
Commit and push the changes to the repository.
2. Upgrade the Pulumi Provider Using the Terraform Bridge
The Pulumi provider is generated from Terraform using the Pulumi Terraform Bridge. To sync the changes, you need to run the bridge upgrade process.
How to trigger the upgrade process:
Manually trigger it via GitHub Actions:
Go to GitHub → Actions → "Upgrade Provider" workflow (upgrade-provider.yml).
Click "Run workflow" and provide the necessary version input.
Automatically trigger it (scheduled upgrade):
The upgrade-provider.yml workflow runs every day at 3 AM UTC to check for updates.
Relevant Workflow:
✅ upgrade-provider.yml (Triggered manually or scheduled)
This workflow:
Upgrades the Pulumi provider to use the latest Terraform provider.
Uses upgrade-provider to regenerate the provider code.
Commits and pushes the updates to a new branch.
Creates a pull request to merge the changes.
3. Review and Merge the Upgrade PR
After the upgrade, a pull request is created automatically with the updated provider code.
A developer needs to review and merge the PR to integrate the changes into main.
Relevant Workflow:
✅ pull-request.yml (Runs on PR creation)
This workflow:
Adds a comment to the PR.
Notifies maintainers that they can run acceptance tests.
4. Run Acceptance Tests to Validate the Upgrade
Once the upgrade PR is ready, acceptance tests must be run to ensure that the Pulumi provider still functions correctly.
How to trigger the tests:
Comment /run-acceptance-tests on the pull request.
This triggers the run-acceptance-tests.yml workflow.
Relevant Workflows:
✅ run-acceptance-tests.yml (Triggered via PR comment or automatically)
This workflow:
Builds the provider.
Runs acceptance tests.
If the tests fail, the PR needs further changes before merging.
5. Merge the Upgrade PR
If all tests pass, merge the PR into the main branch.
Relevant Workflow:
✅ main.yml (Triggered on push to main)
This workflow:
Builds the provider.
Runs tests.
Publishes an internal pre-release version.
Checks if a full release is needed.
6. Tag a New Release
Once the upgrade is complete, a new version must be released.
A maintainer tags a new release using a semantic version (vX.Y.Z).
Relevant Workflows:
✅ release.yml (Triggered when a release tag is pushed (vX.Y.Z))
This workflow:
Builds the final provider.
Runs final tests.
Publishes the provider to Pulumi.
✅ verify-release.yml (Runs after publishing)
This workflow:
Verifies that the published provider works correctly.adorable-house-61348
02/26/2025, 1:58 PM