Docs

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.

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.

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.

Continuous Integration

A GitHub Actions CI workflow for Facets module repos that previews modules on pull requests and publishes them to the control plane on merge to main.

Generate Modules via AI

Use the Facets Module-Generation MCP, a guided CLI tool, to turn a module concept into a working, standards-aligned Terraform module for Facets in minutes.

On this page

No Headings
Edit on GitHub