Affects Version/s: None
Fix Version/s: None
Epic Name:Bolt stdlib
QA Risk Assessment:Needs Assessment
Bolt is very powerful but users cannot access that power without writing quite a bit of puppet and ruby code or finding and installing modules.
Types of content:
Stdlib like puppet utility functions(puppetlabs-stdlib doesn't support bolt like
merge, join, empty, trim)
Utility control flow plans for common paths like aggregate results, canary and batch execution
Task specific functions to retry until, sleep etc.
Core tasks to manage services install packages, collect facts etc
This library should consist of multiple modules that ship with bolt
Stdlib modules are appended to the module path and live in the modules directory of the bolt repo
Boltlib modules should remain at the front of the module path only these functions should directly access bolt executor or inventory objects. These live in the ??? directory of the bolt repo
For now these modules should live in the bolt repo
modulepath should not be a required parameter it should be empty.
How do we deal with modules that are already separate repos? Submodules? Puppetfile? vanagon? probably puppetfile perhaps backed by json.
String: with strip and split functions
Hash: with merge function