Upgrade the GCP examples to pulumi-gcp v9 - #2991
Merged
Merged
Conversation
Part of #2985 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
jkodroff
approved these changes
Sep 1, 2026
jkodroff
left a comment
Member
There was a problem hiding this comment.
Should be fine as long as CI passes.
This was referenced Sep 2, 2026
Six of the GCP TypeScript examples failed `tsc`. All six now pass,
verified by typechecking every GCP TypeScript example in the repo with
no regressions.
Two are not purely mechanical. `gcp-ts-gke-serviceaccount` had
`"n1-standard-1" || config.get("machineType")`, which is backwards, so
the `machineType` config key was silently ignored; reversing it makes
that key take effect. In `gcp-ts-slackbot` the express import sits
inside a closure that gets serialized into a Cloud Function, so it uses
`import express = require("express")`; a default import would compile to
`__importDefault(...)` and hand the closure serializer a synthetic
wrapper rather than a module reference.
These are typecheck-only fixes. None of the six has integration test
coverage, so none is verified at `pulumi up`. That gap is #2993. The two
remaining failures are multicloud and out of scope here, tracked in
#2992.
Stacked on #2991; retarget to `master` once that merges.
Part of #2993
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
35 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upgrades the GCP examples to pulumi-gcp v9, so the pending v10 move is a single-major bump rather than a two-major jump.
No source change was required by the 8-to-9 break in any language. The only code edits are the Go import paths (
sdk/v8->sdk/v9); everything else is a manifest pin, so there is nothing to cross-check against the v9 migration guide.The Go modules also move
pulumi/sdk/v3from 3.223.0 to 3.256.0 and thegodirective from 1.25.0 to 1.25.11. Both are forced rather than chosen:pulumi-gcp/sdk/v9 v9.35.1declaresgo 1.25.11and requirespulumi/sdk/v3 v3.256.0.gcp-hcl-webserverneeds no change: it pins the upstream Terraform provider (google ~> 7.0), which already corresponds to pulumi-gcp v9. It will need~> 8.0for v10.Verification
pulumi upneeds credentials, so the integration tests run in CI. Locally: all 5 Go examples compile against v9; both .NET examples build with NuGet resolving Pulumi.Gcp 9.35.1; the Python pin resolves to pulumi-gcp 9.35.1 and everypulumi_gcpsymbol the examples reference still exists in it; and all 16 TypeScript examples were typechecked.The Java example is not built here: there is no Maven in the toolchain and no integration test covers it.
com.pulumi:gcp9.35.1 is on Maven Central and all 9 classesApp.javaimports are present in that jar.Pre-existing TypeScript failures, untouched
8 of the 16 TypeScript examples fail to typecheck. Every failure reproduces identically against the v8 pins on
master, so none is caused by this upgrade, and none of the 8 has integration test coverage, which is how they were able to rot. Left alone here rather than mixed into a version bump.gcp-ts-gke-serviceaccountgcp.serviceAccountshould begcp.serviceaccount;IAMBindingArgs.projectnow requiredgcp-ts-docker-gcr-cloudrun/cloud-run-deployService.statusshould bestatusesmulticloud-ts-buckets{}not assignable toBucketArgsgcp-ts-gke-hello-worldtsconfig.jsonlistscluster.tsandconfig.ts, which do not existgcp-ts-docker-gcr-cloudrun/docker-build-push-gcrImage.digestgone from@pulumi/dockergcp-ts-k8s-ruby-on-rails-postgresql/infrabuildtyped asstringgcp-ts-slackbotkubernetes-ts-multiclouddeployDashboardgone from eksClusterArgsPart of #2985