Skip to content

Bootstrap the approval-gated GCP IAM workflow (supersedes #12565) - #13291

Merged
gunbai-bot[bot] merged 21 commits into
mainfrom
gcp-iam-bootstrap-land
Oct 4, 2026
Merged

gunbai-bot[bot] merged 21 commits into
mainfrom
gcp-iam-bootstrap-land

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

Supersedes #12565 (operator's Codex work, branch codex/gcp-iam-bootstrap, left untouched). Adopted into warm-badger-442's lane per operator decision 2026-10-04.

#12565 created iam-converge@, its WIF pool and its deny policy live; the receipts under docs/plans/receipts/gcp-iam-*-2026-09-2{8,9}/ are kept verbatim as evidence of the applied estate. This branch is #12565's head with main merged in.

Reconciliation with main

  • extdeps.cloud.gcp.iam_admin: one import conflict (main added std.resources { Network }); resolved by keeping both GET, POST and Network.
  • Every GCP operation Bootstrap the approval-gated GCP IAM workflow #12565 adds (iam_admin x6, iam x4, iam_deny x2, google.userinfo x1) now declares requires Network, as main's operations do.
  • gunbc.auth.gcp_iam_bootstrap_model consumes gunbc.auth.gcp_iam_converge (roles, permissions, deny list, gcp_iam_converge_targets) and forks nothing. Main replaced mtcollins1_boot_dedicated_federation with provisioned_boot_federations/boot_dedicated_federation; the mtcollins1 pool, provider, service account and environment names are identical to those the receipts applied, and mtcollins1 is still the only provisioned host — no model/live drift found at the name level.

No live IAM mutation here; the iam_bootstrap_apply run is a separate operator-approved dispatch.

🤖 Generated with Claude Code

briansrls and others added 18 commits September 28, 2026 21:44
…are requires Network like main's

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review October 4, 2026 15:54
Brian Searls and others added 2 commits October 4, 2026 16:21
…fold-residue gate refused 16 wildcard sites)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… gunbc.auth.approval_run_identity's; same fix quick-moth-82 verified 24/24)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…bootstrap witness (review 75821 finding 1)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@gunbai-bot

gunbai-bot Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor Author

Addressing review 75821 (automated, at f407722; it hit max-runtime-exceeded, but I'm treating the findings as real):

  1. Regex closure helper (tools/tests/dag_validation_closure.py): fixed in 610120d. Deleted. The plan doc's Validation section now points to the required floor lane instead of a manual recipe.
  2. Witness reached only by the manual recipe: incorrect. The required floor job at f407722 (job 111481981249) planned and passed all 18 test.claim.auth.gcp_iam_bootstrap_witness_test claims ([changed-witness] ... standing=planned-and-passed; the job's summary reads planned=690 executed=690 claims_failed=0). It is discovered from test/claim/ like every other witness, so the merge path re-runs it.
  3. Receipts under docs/plans/receipts/: keeping them, deliberately. They aren't transcribed measurements of something the tree can re-derive. They record an out-of-band, operator-approved live IAM actuation from 2026-09-28/29 (iam-converge@, its WIF pool, the deny policy). Nothing on the merge path can re-produce that output without mutating live IAM again, which this work item forbids. The operator's adoption brief requires keeping them as the evidence the model is reconciled against. The instrument that re-derives the state (not the logs) is gunbc.auth.gcp_iam_bootstrap itself: its next iam_bootstrap_apply run reads back every existing cell and refuses adoption on drift.

gunbai-bot Bot pushed a commit that referenced this pull request Oct 4, 2026
…automatic create until observed present or operator-disposed (reuses #13291's election journal)
@gunbai-bot
gunbai-bot Bot added this pull request to the merge queue Oct 4, 2026
Merged via the queue into main with commit 5a41955 Oct 4, 2026
4 checks passed
@gunbai-bot
gunbai-bot Bot deleted the gcp-iam-bootstrap-land branch October 4, 2026 22:12
gunbai-bot Bot pushed a commit that referenced this pull request Oct 4, 2026
gunbai-bot Bot pushed a commit that referenced this pull request Oct 4, 2026
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.

1 participant