* Initial skill to use compose Fabric modules * Update CONTRIBUTING to reflect new naming patterns * Fix boilertplate * Add readme, update year * Update script and conventions * fix python format * remove random string mention * Make fetch commands explicit. Allow downloading schemas. --------- Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2.4 KiB
2.4 KiB
name, description
| name | description |
|---|---|
| fabric-builder | 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.