Restructure simp_bolt to work with project directories and hiera


The current design of simp_bolt confuses a user's default bolt.yaml with the bolt.yaml for a project directory, and can only configure a node for single user and purpose.

The controller node:

  • manages a local user home directory files .puppetlabs/bolt.yaml with default bolt settings

    • This cannot be edited by the user

    • It will be ignored when be ignored when using any project with its own bolt.yaml or Boltdir (most of them).

  • A local hiera.yaml and data under .puppetlabs

    • This is useless

The puppet code is broken into classes, which should be defined types wrapped by Puppet classes that can configure multiple nodesets of bolt administration that might include the same node as a target/controller.

Acceptance Criteria



Chris Tessmer
April 1, 2020, 2:14 AM

Update: noted that bolt now has cascading config file that includes system and user settings:

This affects the assumption of this issue, and probably the future architecture of the simp_bolt module.

Chris Tessmer
April 9, 2020, 12:53 AM

Module manages a node as a Bolt 2.x controller:

  • ensure the puppet-bolt package

  • manage (at least one) system-wide bolt.yaml and inventory.yaml

  • system-wide inventory.yaml isn't a thing, but we can make it so by specifying the path in the system-wide bolt.yaml

  • as templates OR direct content

  • direct content provided as a `Hash`, so both methods can use the same template in the end

  • possibly manage additional inventory and bolt files

System-wide bolt.yaml paths:

  • *nix: /etc/puppetlabs/bolt/bolt.yaml

  • Windows: %PROGRAMDATA%\PuppetLabs\bolt\etc\bolt.yaml

Chris Tessmer
June 5, 2020, 10:39 PM

Note to self: an example SIMP-related inventory.yaml:

Chris Tessmer
June 11, 2020, 5:18 PM

Created a Vagrant project to prototype cross-platform bolt projects:

Epic Link

Story Points




Chris Tessmer