Disclaimer, I work for enStratus and had a hand in the support for Puppet/Chef in enStratus.
I'm not going to get in a religious war over Chef vs. Puppet but one thing enStratus DOES have is support for both Puppet and Chef. And not some sort of bastardized support either:
Note that the Puppet support requires a small agent on the Puppet master but that was unavoidable. Puppet is great but it lacks a proper API that third party services can integrate with. Regardless of which CM system you use, enStratus punts all configuration management tasks to those tools natively and gets out of the way. In the case of Puppet, we use the agent to pregenerate your cert, sign that cert and also add the node the Puppet Dashboard ENC. When the newly provisioned node comes online, we kick off a normal puppet run ('puppet agent --onetime --no-daemonize --detailed-exitcodes --logdest=/some/logfile' if your curious). We don't set puppet to run via cron or as a daemon. That's an internal policy matter for you to decide and should be driven by your puppet modules and not some third party.