Repository navigation
feat(0-bootstrap): add granular deploy_org_resources toggles for folder-scoped deployments - #381
Merged
Merged
Conversation
…er-scoped deployments
aghassemlouei
requested changes
Oct 29, 2026
aghassemlouei
left a comment
Member
There was a problem hiding this comment.
Appreciate the clean deploy_org_resources toggle structure for folder-scoped Stage 0 deployments. Running terraform plan across compliance regimes and validating the folder-scoped resources against an IL5 Assured Workloads folder surfaced six blocking plan, apply, and cross-stage issues documented inline:
fast/stages-aw/0-bootstrap/organization.tffailsterraform planwithInconsistent conditional result typeswheneverdeploy_org_resources.org_policiesistrue, including the defaultdeploy_org_resources = {}.fast/stages-aw/0-bootstrap/automation.tffailsterraform planon fresh deployments withInvalid for_each argumentwheniam = falseandcustom_roles = true, and drops read access to the Stage 0 outputs bucket whencustom_roles = false.fast/stages-aw/0-bootstrap/organization.tfleaves four organization-only IAM roles unfiltered onmodule.root-folder-config, omitsroles/resourcemanager.folderAdminforbootstrap-0, and leaves1-resmanwriting organization-level additive IAM without permissions wheniam = false.fast/stages-aw/0-bootstrap/organization.tfsetslogging_settingsonmodule.root-folder-configwithout a KMS key, which failsconstraints/gcp.restrictNonCmekServicesonIL5andFEDRAMP_HIGHAssured Workloads folders and evaluates after Stage 0 projects are already created.fast/stages-aw/0-bootstrap/outputs.tfwritescustom_roles = {}into0-bootstrap.auto.tfvars.jsonwhencustom_roles = false, which failsvar.custom_rolesobject validation and unguardedvar.custom_roleslookups in Stages 1 through 3.fast/stages-aw/0-bootstrap/audit-logging.tfandorganization.tfaddcounttogoogle_organization_iam_audit_config.organizationandmodule.organization-loggingwithoutmovedblocks, planning a destroy-and-recreate on existing deployments.
Adding terraform test coverage for both the default deploy_org_resources = {} configuration and the folder-scoped toggle combinations will help catch plan-time regressions in CI.
aghassemlouei
approved these changes
Oct 31, 2026
aghassemlouei
left a comment
Member
There was a problem hiding this comment.
All 6 review items are resolved and verified against Stage 0 and Stage 1 folder-scoped plans. LGTM.
Merged
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.
Description
Adds the
deploy_org_resourcesobject variable tofast/stages-aw/0-bootstrapto allow selective control over deploying organization-level resources for brownfield environments or folder-scoped deployments without organization-level permissions.Each attribute defaults to
trueto preserve existing behavior:audit_config: Togglesgoogle_organization_iam_audit_config.organizationversusgoogle_folder_iam_audit_config.folderon the root Assured Workloads folder.custom_roles: Toggles organization-level custom role creation and custom role IAM bindings (storage_viewer,organization_admin_viewer,tag_viewer), returning{}forcustom_rolesoutputs whenfalse.iam: Toggles organization-level IAM bindings inmodule.organizationversus folder-scoped IAM bindings (filtering out organization-only roles) and conditionalroles/resourcemanager.folderIamAdmindelegated grants inmodule.root-folder-config.logging_settings: Togglesmodule.organization-loggingversus folder-levellogging_settingsinmodule.root-folder-config.logging_sinks: Toggles log sinks onmodule.organizationversusmodule.root-folder-configand routestfvars.logging.writer_identitiesaccordingly.org_policies: Toggles organization policy creation and default organization policyimportblocks.workforce_identity_pool: Togglesgoogle_iam_workforce_pool.defaultcreation.Type of Change
Deployment & Compliance Impact
Checklist
Code Quality & Reusability
modules/orfast/can be leveraged for this change.documentation/naming-convention.md.Documentation
README.mdof the modified module or blueprint.Security
Testing
Testing Performed
terraform fmt -checkandterraform validateinfast/stages-aw/0-bootstrap.fast/stages-aw/0-bootstrap/README.mdwithtools/tfdoc.pyandtools/check_documentation.py.