FBL (FireBlink Logistics)
This is a second reincarnation on internal tool that FireBlink LTD used to deploy its own projects.
Original tool was vendor locked and had pretty much limited functionality.
The new one, README of which you're currently reading is redesigned from scratch to fix that limitation.
Even more, due to plugin nature it can process any kind of flows, even non related to deployments.
FBL generally designed to help with automation related tasks that require flexible control over the flow.
Here is how a very basic flow may FBL handle:
FBL can run steps "A" then "B" and "C" in a chain, but step "E" in parallel with that chain.
Once all are completed step "D" is invoked.
Out of the box FBL contains lots of default steps that can help to control the flow.
Usage
Flexibility is the key concept of the FBL, so it can be used either as a command line tool, or integrated into any
existing Node.js app.
FBL by its own just provides a generally limited amount of embedded plugins and for real life usage may require 3rd party plugins.
Requirements
- Node.js v8+ (earlier version may also work, but not supported officially)
Installation
Just run npm i -g fbl
to install the CLI.
Flow file format
version: 1.0.0
requires:
fbl: >0.2.0
plugins:
- fbl.plugin.ftpo@^0.1.0
applications:
- kubectl
- helm
description: |-
Plugn invoker.
pipeline:
'plugin.id': 'plugin.options'
$title: 'Human readable title of action'
Flow files can use EJS templates for a flexible control over the flow.
Default Plugins
Global Config
Create folder .fbl
inside your user home directory. Put config
file inside it with following format:
plugins:
- fbl-plugin-name
- /home/user/test/fbl-plugins/fbl-plugin-name
context:
- key=value
secrets:
- key=value
no-colors: true
global-template-delimiter: $
local-template-delimiter: %
Packaging
You can also optionally package your flow (in a tarball) and reference it via file or url if it stored remotelly.
Read more about it here.