In production Foreman and Katello setups you might like to load balance the work of Smart Proxies across a cluster. This post describes how to do this, utilizing Foreman 1.17, Katello 3.6 and HAProxy.
The ideal workflow for discovery is PXE booting new hardware. When it’s turned on, nodes are discovered and reboot or kexec into OS installer. Hosts can be reprovisioned by simply deleting from inventory which leads to default PXE entry - discovery. But life is not black or white, let’s take a closer look on other scenarios - reprovisioning in PXE-less workflow.
Newer versions of Foreman come with a handy feature - fact and NIC filtering. When Foreman manages hypervisors or container hosts with many bridge or virtual devices, fact names are too often updated and when under heavy load, database locks or rollbacks can happen as fact uploads are one of the most common API calls. Also for each individual NIC reported, Foreman creates a NIC entry and by design it never deletes those from the database. This can lead to situations when hypervisors and container hosts are assigned thousands of NICs when more and more VMs (or containers) are spawned. This slows down performance of various actions, most importantly fact import.