hiera-editor icon indicating copy to clipboard operation
hiera-editor copied to clipboard

A GUI tool to manage your Puppet/Hiera for you

Hiera Editor

A GUI tool to manage your Puppet/Hiera for you.

Features

  • 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.

Prerequisites

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:

  1. puppet agent --test --waitforcert 10 on a node
  2. Simultaneously, pupper cert sign <node hostname> on the Puppet Server

Download

You can download it from Releases page.

Demo

As a working example, you can clone this repository, and open it within the editor.

Building from source

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.

License

MIT

This project uses icons from Font Awesome (https://fontawesome.com/license) under the Creative Commons Attribution 4.0 International license.