Repository navigation
docs: GCP is simulated by plugin-gcp from CLI v0.6.18 (ENG-1193) - #5
Conversation
Name the three dialects, the per-resource project order and the --organization fallback (through extra-args, no input yet), what happens to an auto-named Pulumi resource, and the Linro Release 2026.10.1 floor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lumi project key (ENG-1193) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Claude: codex review (gpt-6.1-sol), pass 1 — sweep on 3ac7453.
Confirmation pass follows on the fixed head. |
|
Claude: codex review (gpt-6.1-sol), pass 2 — confirmation on 8bb04c7: MERGE. No critical or major issue remains. Nothing left unverified. Step 4 is done; this is not a merge approval. |
| if you simulate a preview, pass `account`/`region` (and `project` for GCP, or | ||
| `domain` for T Cloud Public), or the resources are identified against the wrong | ||
| scope. | ||
| if you simulate a preview, pass `account`/`region` (or `domain` for T Cloud |
There was a problem hiding this comment.
lets make this more generic, seems like it was written for AWS, appended with GCP then (tcloud)
There was a problem hiding this comment.
should be something like different providers/plugins define their scopes differently, for more details please visit the marketplace's Scope section for the given plugin or whatever like that
There was a problem hiding this comment.
Claude: Done in 9b795eb. The section now opens with what is generic: each plugin defines its own scope (which values, and where a plan or preview can state them), and that scope is listed under Scopes on the plugin's marketplace page, e.g. https://marketplace.linro.io/plugins/gcp. That tab is real: marketplace-frontend/src/app/plugins/[slug]/page.tsx:281 shows it whenever the plugin declares scope dimensions. The inputs are described as filling what the source does not state, with a missing required value refusing the run unless a placeholder is allowed. The AWS-first plan-vs-preview wording is gone.
| | AWS region | the plan's provider config, a per-resource hint, then `region` | | ||
| | AWS account | an `assume_role` role ARN in the provider config, `stack-export`, then `account` | | ||
| | GCP project | a constant `project` in the `google` provider block, then `project` | | ||
| | GCP project | the resource's own `project`, then a constant `project` in **its** provider block (a Pulumi preview: an explicit provider's `project` input; for a default provider only, the stack's `gcp:project` / `google-native:project`), then `project` | |
There was a problem hiding this comment.
for now this section should be fine, but at some point has the same problems as above
There was a problem hiding this comment.
Claude: Kept as is for now, as you suggest. It is the one place that still lists rules per provider. Once each plugin's Scopes tab carries the order in which values are resolved, this table can be replaced by links.
|
|
||
| ## GCP | ||
|
|
||
| From CLI **v0.6.18**, GCP resources are simulated by **plugin-gcp**, the plugin |
There was a problem hiding this comment.
probably TMI
There was a problem hiding this comment.
Claude: Trimmed in 9b795eb to the facts a user acts on: from v0.6.18 plugin-gcp simulates GCP in all three dialects, and version has to be set.
| `google-native`. The action's default `version` predates this, so set it. | ||
|
|
||
| **Availability.** As of 2026-10-08, `marketplace.linro.io` (the default | ||
| `marketplace-url`) does not serve v0.6.18 or v0.6.19 yet: the download answers |
There was a problem hiding this comment.
lets push and drop this
There was a problem hiding this comment.
Claude: The note is dropped in 9b795eb. Pushing v0.6.18/v0.6.19 to production (linro-io/workflows promote-to-prod.yml) is the operator's call. Until it happens the example's version: v0.6.19 404s from the default marketplace, so this PR should merge only after the promotion lands.
There was a problem hiding this comment.
Claude: Pushed. linro-simulator v0.6.19 was promoted to production (linro-io/workflows run 37770735358, success), and marketplace.linro.io now serves it (linux-amd64 and darwin-arm64 answer 302). The example in this PR downloads from the default marketplace.
| the provider draws for the preview, and the apply draws a different one. The | ||
| resource is simulated under the preview's name: its findings are real, but it | ||
| can never match a live resource. An update keeps the live name. Set `name` | ||
| explicitly if you want a create to line up with what lands. A resource whose |
There was a problem hiding this comment.
'A resource whose
name the plan cannot state at all'
for now this is fine, but later on we have to still simulate these, even if the names will be autogenerated, still not perfect, but better
There was a problem hiding this comment.
Claude: Agreed. Today a resource whose name the plan cannot state at all (unknown until apply, redacted) is reported as skipped (ErrIaCUnkeyable), and resources that reference it still compose. Simulating it under a generated name is a plugin-sdk/plugin-gcp change (a stand-in key, like MintedKey does for server-minted ids). I've raised it with the operator as a follow-up rather than growing this docs PR.
…r needs (ENG-1193) Review on #5: the scope section read as AWS with GCP and OTC appended. It now says each plugin defines its scope and points at the plugin's Scopes tab in the marketplace; the per-provider table stays. The GCP intro is trimmed, and the availability note goes: the CLI is to be promoted to production instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Part of ENG-1193. Docs only.
projectinput: a fallback for a resource whose plan states none, not an override. A contradiction refuses the run.gcp:project, read by CLI v0.6.18+). The table gains the per-resource project order and a GCP organization row.google/google-beta, Pulumi bridgedgcp, Pulumigoogle-native);--organizationthroughextra-args, since there is no input yet (left to ENG-1196);Auto-naming, stated as the plugin behaves: the ticket expected "auto-named Pulumi resources are skipped with a reason". plugin-gcp deliberately does something else. It keys a create by the name the preview drew (
compute.planName, pinned byTestIaC_SQLInstance_ACreatedAutonameComposes), because skipping it would also drop everything that references it. Only a name the plan cannot state at all is skipped (unkeyable). The README says that.🤖 Generated with Claude Code