Modules
Platform-engineering guides for Facets modules: core concepts, authoring, form UI, custom actions, versioning, the registry, and CI.
Introduction
How Facets modules turn Terraform into reusable, versioned capabilities with typed inputs and outputs, so developers can self-serve infrastructure.
Module anatomy
This section explains the building blocks of a Facets module. You’ll learn how modules declare what they offer, what they require, and how they connect with others using a shared type system.
Building a Facets Module
This section explains how to turn a module concept into a working Facets module. You'll define the module interface using `facets.yaml`, connect it to Terraform logic, and use the Facets CLI to scaffold and validate your work.
Generate Modules via AI
Use the Facets Module Generation MCP server from your AI coding host to turn a module concept into a working, standards-aligned Terraform module for Facets in minutes.
Form UI (X-UI Tags)
Reference for the x-ui-* extension fields in facets.yaml that shape module config forms: conditional display, dynamic dropdowns, layout, and validation.
Defining Module Resource Actions
Define custom resource Actions for any Facets module using containerised Tekton workflows, with auto-injected credentials, RBAC scoping, and UI integration.
Modules Repo
Connect a git repository as the source of truth for your custom modules, migrate published modules into it, and provenance-check every publish.
Continuous Integration
How Facets module repos preview modules on pull requests and publish them on merge, using the generated Facets Module CI workflow or your own CI.
Versioning Strategy
How Facets modules version safely: major versions in facets.yaml for breaking changes, soft versioning for compatible updates, and per-version directories.
Module Registry
The Facets Module Registry is a searchable catalogue of system and custom modules in a control plane, with metadata, preview/published states, and usage maps.
AWS IAM in modules
Declaratively manage AWS IAM roles and policies in Facets service modules, attaching policies from managed resources and custom policies for unmanaged ones.
Reusing Terraform code
Reference external public Terraform modules from within Facets modules to reuse common logic like naming and provisioning, plus the Facets Utility Modules.
Secrets Backend Integration
Store secrets in AWS Secrets Manager, Google Cloud Secret Manager, Vault-compatible OpenBao, or a database-backed store, with the backend set by your environment's cluster config.
Introduction
How Facets modules turn Terraform into reusable, versioned capabilities with typed inputs and outputs, so developers can self-serve infrastructure.