name: fabric-builder description: Generates idiomatic Cloud Foundation Fabric (CFF) Terraform code using CFF modules. Use when users ask to create GCP resources, use Fabric modules, or generate Terraform code for Google Cloud.
Fabric Builder
This skill generates idiomatic Terraform code using Cloud Foundation Fabric (CFF) modules, following established best practices and conventions.
Core Workflow
- Understand Request: Identify the GCP resources and relationships requested by the user.
- Fetch Module Info: Identify the relevant CFF module(s) from the
modules/folder on GitHub (GoogleCloudPlatform/cloud-foundation-fabric). - Generate Terraform: Output an idiomatic Terraform root module that consumes the CFF modules.
Important Guidance
- Conventions & Best Practices: Consult conventions.md for guidelines on how to consume Fabric modules and write high-quality, idiomatic Terraform code.
- Fetching Modules: Do not invent module inputs or outputs. Use the
fabric.pyscript to pull exact details (README, variables, examples) for a specific module from GitHub before using it.- To list available modules:
python3 scripts/fabric.py modules - To fetch details for a module (README):
python3 scripts/fabric.py fetch readme <module_name> - To fetch variables files:
python3 scripts/fabric.py fetch variables <module_name> - To fetch outputs files:
python3 scripts/fabric.py fetch outputs <module_name> - To fetch schema files (useful for factories):
python3 scripts/fabric.py fetch schemas <module_name> - To fetch the latest release version:
python3 scripts/fabric.py release
- To list available modules:
Guidelines for Output
- Root Module Output: Your output must be a complete Terraform root module that calls the appropriate CFF modules to fulfill the user's requirements.
- Use Fabric Modules: Rely on CFF modules instead of raw
google_resources whenever possible. - Example-based Learning: Always refer to the module's README (fetched via
scripts/fabric.py) for correct usage examples. - Module Source: When generating module calls, use a GitHub source. It should look like this:
source = "github.com/GoogleCloudPlatform/cloud-foundation-fabric//modules/project?ref={VERSION}&depth=1". - Formatting & Validation: Ensure the generated code is properly formatted. If possible, run
terraform fmt,terraform validate, andterraform planto check your work.