We use FreeIPA integration with foreman for some years. That work really fine, and the documentation that Dirk pointed to you was sufficient for us to make it work. No need of puppet or anything more than foreman-installer with some options. For any host you create in foreman (and associate to the realm) on FreeIPA side it will create host, set an OTP, install client parts and register it automatically on provisioning (I talk for kickstart at least, we use only that provisioning method in with FreeIPA), and remove the host in FreeIPA (and its DNS if you want) when you remove your host from foreman. So you don’t have to do any action on FreeIPA side for these two actions. On the FreeIPA side, you can also add auto-member rules to add your new host to needed host groups to automate further your host creation/deletion workflow.
On the FreeIPA servers installation part, our instances are some years old now and this part was not automated, but the FreeIPA installation is really simple, even in multi-master deployment and its documentation is really good.