In Horizon, in the instance details tab, I want a tab called 'Puppet Roles.' That will display a structured gui:
[] First role param1: [ text field ] param2: [ text field ] param3: [ text field ] param4: [ text field ] [] Second role param1: [ text field ] param2: [ text field ] ... > Advanced roles (puppet experts only) =========== -- THESE ROLLS ARE SET BUT NO LONGER EXIST IN PUPPET -- [x] deprecated role 1 param1: label ... =========== > Free-form hiera (for puppet experts only)
The set of available roles will come from a direct query on the puppetmaster. A select set of designate roles will appear expanded, the rest of the roles will be under the 'expert' disclosure. A free-form hiera .yaml field will also be available, also undisclosed by default.
Getting/setting node-specific roles will happen via a to-be-written REST API. See https://etherpad.wikimedia.org/p/puppet-enc-labs for details on the API.
That API will be implemented via a custom ENC and some hiera magic.