Host Creation form dependency map (Luna version)


I worked on a dependency map of the fields in our Host form. I took a Luna instance (vanilla Foreman + several plugins including Katello) and tried to capture relations between the fields. This should server as a base for the new provisioning wizard mockups that we’d like to start exploring, but I thought this may be useful for others, so I’m sharing it here. I keep the original file so if something is incorrect, please let me know and I’m happy to fix it and upload a new map here.

(picture updated)

Hope you find this useful.


I am missing the selection of “Provisioning Method”, you get this field after selecting to deploy on a compute resource and it contains values based on the used compute resource (Network and/or Image) and installed plugins (Bootdisk).

If this is redone, this could be a good time to solve this information not being stored or inherited from the Hostgroup: Feature #21831: Select default Provisioning Method in Compute Profile or Host group. - Foreman


I think you can only select a Puppet environment that actually lives on the Smart Proxy. So I’d think it’s:

Puppet Proxy → Puppet Environment
Puppet Environment → Puppet Classes
Puppet Environment → Config groups

And I’d also argue that a Puppet CA doesn’t make sense unless you select a Puppet Proxy. So I’d also opt for:

Puppet Proxy → Puppet CA

That effectively makes the Puppet Proxy a selection to turn Puppet on/off.

Now I’m going to argue with myself. There is a use case where you can use DNS to detect the Puppet servers, but AFAIK we require the Puppet feature to be correct to allow reports and facts to be uploaded. Though that may only be “it needs to have the Puppet feature”.

It should be noted that database wise today we have the Puppet Proxy field in the foreman_puppet plugin while Puppet CA is in Foreman itself. IMHO it’s a mistake we didn’t deal with that properly in the plugin migration and we should still resolve that. It’s a great source of confusion. IIRC the reason was that Puppet CA is part of the host creation/deletion orchestration and we didn’t touch that area, but plugins can hook into orchestration.


Thanks for quick comments!

:dart: will add this one

Nope, there’s no connection between smart proxy and environment besides the dead code that was used for puppet doc generating. I was also surprised I can choose environment without picking any proxy and I could assign classes.

In general, this picture ambition isn’t capturing what makes sense or what we’d like to have but rather the today state. I’m sure there’s going to be a great debate about what all we should fix with the new wizard, so it may be good to start thinking about that before we have the first version of mockups. At the same time, I think we’re weeks or months before that point.

1 Like

IMHO that’s more a bug than a feature, but it’s good that we at least know about it here. We should certainly discuss it.