The Road to Making Puppet Optional

Does this still work with the Puppet master and smart-proxy are on separate hosts?

Do I have these “registration” workflows correct?

So for Puppet (requires smart-proxy with Puppet feature):

Puppet agent → Puppet master (impersonating smart proxy) → Foreman

For Ansible (requires foreman_ansible + smart-proxy with Puppet feature):

Ansible on host → Smart Proxy → Foreman

For subscription-manager (requires Katello):

sub-man on host → Foreman