Feature #8518
openForeman as a node_terminus
Description
In doing performance testing on using foreman as an ENC we noticed that we were chewing up a lot of CPU on the puppetmasters. Looking at it, I hypothesized that a lot of that was being spent exec-ing new ENC processes, firing up Ruby, etc. So to test I was looking at the puppet indirector, the 'exec' node_terminus and the foreman ENC script and tried to do some work to crib together a foreman node_terminus. In our synthetic setup it saved about 15% CPU. Not spectacular, but I figured it helps.
I'm brand new to Ruby and probably did some dumb stuff, but I thought I'd suggest this upstream. It doesn't entirely replace node.rb functionality, and there are downsides I'm sure, like needing to restart the puppetmaster to pick up config changes. I'm not in a position to be able to contribute, but I would like to file this as a feature request and attach this as an example of what could be done.
Files