For the reporting side, I'm using a
Python project called PuppetBoard at the moment -
https://github.com/nedap/puppetboard - and it does everything I
liked about Dashboard, and also loads pages in a not just
reasonable but fast amount of time. It pulls directly from
PuppetDB.
In terms of the ENC side, I'm currently using a Python/Django ENC
(
https://github.com/jantman/nodemeister/tree/develop ) which can
itself be installed with a module (
https://github.com/jantman/puppet-nodemeister/tree/install_fixes
). It's feature-complete on the ENC side, including support for
inheritance and overrides/exclusions, and actually supports
parameterized classes (and global params of any data type you can
push into the yaml). We're using it in production, but it's really
still proof of concept - there's a bunch of annoying things like
selects ordered by ID instead of name, having to input param
values and class params as JSON, etc. And its only interface is
currently the Django Admin, which is pretty awful looking.
I took over the code from someone else, so I'm in the process of
taking it from 0 tests to full-ish coverage, and then building out
the long list of features we have. One of those is integration
with PuppetBoard, to make this an all-in-one ENC and
reporting/dashboard solution.
It's not ready for prime time yet, but if anyone is interested in
looking at it or submitting PRs, that would be greatly
appreciated.
-Jason
PS - As an aside, we wrote this mainly because we did *not* want
Foreman. What we wanted was Puppet Dashboard's ENC features (nodes
and groups, and boxes to type stuff in, but no "magic") with
support for parameterized classes and deep data structures,
class/param overrides at any level, class/param exclusions, and a
simple REST API for all of it.