provisioner: new Puppet provisioner (#18851)
* Basic Puppet provisioner
* (fixup) fix snake_case use in Bolt
* (fixup) Remove unused ValidateFunc
* (fixup) Check bolt result status
* (lint) go fmt
* Requested changes
* Remove PE autodetection
* Apply suggestions from @svanharmelen
Co-Authored-By: rodjek <tim@sharpe.id.au>
* Tag all JSON fields in bolt output
* Defer comm.Disconnect() as suggested
* Make bolt timeout configurable
* Update builtin/provisioners/puppet/resource_provisioner.go
Co-Authored-By: rodjek <tim@sharpe.id.au>
* Make extension_requests and custom_attributes configurable