cloud-foundation-fabric/fast/plugins
Ludovico Magnocavallo 3d41d01efc
FAST plugin system (#1266)
* 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>
2023-03-24 12:28:32 +00:00
..
2-networking-serverless-connector FAST plugin system (#1266) 2023-03-24 12:28:32 +00:00
README.md FAST plugin system (#1266) 2023-03-24 12:28:32 +00:00

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: