Project description

Foremast is a Spinnaker pipeline and infrastructure configuration and
templating tool. Just create a couple JSON configuration files and then
manually creating Spinnaker pipelines becomes a thing of the past.

Why Foremast?

No manual creation of pipelines in the Spinnaker UI

Reproducible and versioned Spinnaker pipelines

Standardized pipelines with flexibilty for application specific needs

With Foremast, Developers create a couple simple JSON configs per application.
These configs provide details on the pipeline and infrastructure specific to
the application’s needs. Foremast takes those configs, renders some Jinja2
templates, and then acts as a client for the Spinnaker Gate API. Foremast comes
with generic templates for creating a simple pipeline but it can also point to
external templates for custom pipelines that fit any workflow.

Runway Configuration Files

To begin using Foremast, you must have a few JSON configuration files defined
for each application

pipeline.json

This file will be needed for each application. Foremast has a lot of defaults
in place for pipeline.json, take a look at the pipeline.json docs for
all options.

Minimum

{"deployment":"spinnaker"}

Example Deployment Environments Override

Custom deployment environment order and selection can be provided in the
env key. When missing, the default provided is {"env": ["stage",
"prod"]}. Here, the order matters and Pipeline will be generated in the given
order.

{"deployment":"spinnaker","env":["prod"]}

application-master-{env}.json

Each deployment environment specified in the pipeline.json file will need
an accompanying application-master-{env}.json file in the same directory.

The `application-master-{env} files have a lot of exposed values with sane
defaults. Please take a look at the application.json docs for all options.