Skip to content

Upgrade the GCP examples to pulumi-gcp v9 - #2991

Merged
pose merged 2 commits into
masterfrom
pose/gcp-v9-examples
Sep 2, 2026
Merged

Upgrade the GCP examples to pulumi-gcp v9#2991
pose merged 2 commits into
masterfrom
pose/gcp-v9-examples

Conversation

@pose

@pose pose commented Sep 1, 2026

Copy link
Copy Markdown
Member

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/v3 from 3.223.0 to 3.256.0 and the go directive from 1.25.0 to 1.25.11. Both are forced rather than chosen: pulumi-gcp/sdk/v9 v9.35.1 declares go 1.25.11 and requires pulumi/sdk/v3 v3.256.0.

gcp-hcl-webserver needs no change: it pins the upstream Terraform provider (google ~> 7.0), which already corresponds to pulumi-gcp v9. It will need ~> 8.0 for v10.

Verification

pulumi up needs 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 every pulumi_gcp symbol 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:gcp 9.35.1 is on Maven Central and all 9 classes App.java imports 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.

Example Error
gcp-ts-gke-serviceaccount gcp.serviceAccount should be gcp.serviceaccount; IAMBindingArgs.project now required
gcp-ts-docker-gcr-cloudrun/cloud-run-deploy Service.status should be statuses
multicloud-ts-buckets {} not assignable to BucketArgs
gcp-ts-gke-hello-world tsconfig.json lists cluster.ts and config.ts, which do not exist
gcp-ts-docker-gcr-cloudrun/docker-build-push-gcr Image.digest gone from @pulumi/docker
gcp-ts-k8s-ruby-on-rails-postgresql/infra docker build typed as string
gcp-ts-slackbot expression not callable
kubernetes-ts-multicloud deployDashboard gone from eks ClusterArgs

Part of #2985

Part of #2985

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@pose
pose requested a review from jkodroff as a code owner September 1, 2026 15:12
@pose
pose requested a review from a team September 1, 2026 15:12
@pose pose self-assigned this Sep 1, 2026
@pose pose added this to the 0.140 milestone Sep 1, 2026

@jkodroff jkodroff left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be fine as long as CI passes.

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>
@pose
pose merged commit 579127d into master Sep 2, 2026
16 checks passed
@pose
pose deleted the pose/gcp-v9-examples branch September 2, 2026 11:21
@pose pose mentioned this pull request Sep 4, 2026
35 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants