用途:把线上 GCP 资源逆向工程为 Cloud Foundation Fabric Terraform 模块配置,并生成原生 import 块。没有逐资源流水线,由智能体依据 cookbook 自行完成映射,由两个冻结门禁校验结果,信任来自门禁而非智能体自身。
主要能力与流程: 第 0 步建立清单(与用户共同确认),可从既有 Terraform state 推断:uv run scripts/manifest_from_state.py --state <state-files...> --out import-manifest.yaml;或从线上资产勘察:uv run scripts/inventory.py survey --scope organizations/ORG_ID --out survey.json,再 uv run scripts/manifest_init.py --survey survey.json --scope organizations/ORG_ID --out import-manifest.yaml。 第 1 步枚举(分母):uv run scripts/inventory.py collect --manifest import-manifest.yaml --out inventory.json。默认过滤软删除容器及 GCP 自动生成的资源,可用 --include-deleted、--include-auto-generated 控制;CAI 是默认来源但非边界,缺失类型需用其他方式枚举并合并,否则对两个门禁同时不可见。 第 2 步获取工作清单:uv run scripts/coverage.py --inventory inventory.json --workspace tf --waivers waivers.yaml --worklist-out worklist.yaml。 第 3 步映射与生成:按 cookbook 的规范模块映射,产出模块配置与 import 块,维护 tf/coverage-map.yaml;IAM 默认以 additive 方式生成。先读 references/mapping-cookbook.md,其余未收录类型按同一方法处理。
必要约束:禁止运行 terraform apply;对 GCP 仅只读操作;不得修改 scripts/ 下任何冻结脚本;不得合成 state 文件;不得将清单、waivers.yaml、benign-drift.yaml 及最终 apply 签字等人工决策步骤自动化;所有工作区输出属组织机密,禁止进入公开仓库或外发文档;拉取的 .tfstate 与 *.tfplan 含敏感值,须删除且不得提交;不得为残余差异找理由掩盖。若无法获得交互确认必须停止,不得假定已获批。
适用场景:将现有 GCP 组织、文件夹、项目、IAM、组织策略与 sinks 纳入 Fabric Terraform 管理并做增量迁移。限制:清单与豁免需人工提交;门禁脚本冻结;验证仅通过 verify_plan.py 的计划检查,暂时未提供更多细节。