3d41d01efc
* plugin folder, gitignore, serverless connector example * add support to fast plugin variables and outputs to tfdoc * rename folder, READMEs * add variable description * show diffs * check documentation, use multiple files * debug check doc * try a different glob * debug tfdoc names * more debug * and even more debug * fix gitignore * fix links * support extra files in tests * fix fixture, switch stage 2 peering to new tests * tfdoc * Allow globs in extra files --------- Co-authored-by: Julio Castillo <jccb@google.com> |
||
---|---|---|
.. | ||
2-networking-serverless-connector | ||
README.md |
README.md
FAST plugin system
This folders details a simple mechanism that can be used to add extra functionality to FAST stages, and a few examples that implement simple plugins that can be used as-is.
Available plugins
Networking
Anatomy of a plugin
FAST plugins are much simpler and easier to code than full-blown stages: each plugin is meant to add a single feature using a small set of resources, and interacting directly with stage modules and variables.
A simple plugin might be composed of a single file with one resource, and grow up to the canonical set of one "main" (resources), one variables, and outputs file.
Plugin file names start with the local-
prefix which is purposefully excluded in FAST stages via Git ignore, so that plugins are not accidentally committed to stages during development and staying aligned with our master branch is possible.
Plugins are structured here as individual folders, organized in top-level folders according to the FAST stage they are designed to work with.
As an example, the 2-networking/serverless-connector
plugin implements centralized Serverless VPC Access Connectors for our networking stages, and is composed of three files:
local-serverless-connector.tf
managing resources including the subnets needed in each VPC and the connectors themselveslocal-serverless-connector-outputs.tf
defining a singleserverless_connectors
output for the plugin, and optional output fileslocal-serverless-connector-variables.tf
defining a singleserverless_connector_config
variable used to configure the plugin