A GUI tool to manage your Puppet/Hiera for you.
- Cross platform
- Supports Hierarchy: shows changes on every level
- You can edit properties of classes generated by Puppet, or you can assign classes in Hiera Editor itself, as it detects
hiera_include
function - Automatically retrieves all nodes information from Puppet
- Automatically installs Modules locally from Puppetfile
- Parses modules to extract class information like field names, types and doc strings
- Retrieves default values of class fields by doing best-effort compilation of Puppet AST on your machine
- Automatic field validation (for example, if module fails when you pass a value that does not match a regular expression)
- It can display icons for your classes (if you add a comment like
@option editor icon data:<base64-encoded icon>
to your class) - You can mark you classes
@api private
and it will suggest the end user not to use them.
Hiera Editor needs to connect to Puppet Server on the first launch, so you need to have at least running empty Puppet Server to use this. Connection on consequential launches are optional, but essential to obtain latest fact information. But that is done with handly in-app Wizard that will take you trough all steps with careful explanation.
To make a node appear in environment, you would need to setup it within Puppet itself, Hiera Editor will notice it automatically. For example, you may do it like this:
puppet agent --test --waitforcert 10
on a node- Simultaneously,
pupper cert sign <node hostname>
on the Puppet Server
You can download it from Releases page.
As a working example, you can clone this repository, and open it within the editor.
To build the project youself you'll need install Node, clone this repo, open it in the terminal, and just do
npm install
tsc
npm start
It also has debug configurations for Visual Studio Code.
The project has a bunch of tests, to run those do tsc
to compile the typescript and then do npm test
.
MIT
This project uses icons from Font Awesome (https://fontawesome.com/license) under the Creative Commons Attribution 4.0 International license.