Inventory, tasks & plans¶
This page walks the engine's capabilities. Each is complete unless explicitly marked as a documented deferral.
Inventory (v2)¶
Targets, nested groups, per-group / per-target config / facts / vars / features, effective-value resolution through the hierarchy (deep merge, closest group wins, target overrides all), and target selection by name / alias / group / glob (TargetsForQuery).
Tasks¶
Parses the Bolt task *.json metadata shape (typed parameters, input_method, supports_noop, implementations, files) and validates arguments against the declared parameter types.
YAML plans¶
plan.yaml parameters plus an ordered list of task / command / script / eval / plan / resources / message steps with targets, per-step parameters and a return expression, executed by a step runner.
Puppet-language (.pp) plans¶
plan name(...) { ... } manifests run through github.com/go-puppet/puppet: the run_task / run_command / run_script / get_targets / apply plan functions dispatch through this executor's transports and inventory to real targets (Executor.RunPuppetPlan).
Transports¶
A Transport interface with three implementations:
LocalTransport— a host-local transport driven through an injectableCommandRunnerseam.SSHTransport— a full pure-Go SSH transport overgolang.org/x/crypto/sshthat honours the target'sconfig.ssh(user, port, key/password auth, host-key-check, run-as/sudo, tty, tmpdir) and uploads-then-runs scripts and tasks.WinRMTransport— a full pure-Go WS-Management / MS-WSMV transport (SOAP overnet/http) withbasic,negotiate(NTLM viagithub.com/Azure/go-ntlmssp) andssl(TLS client-certificate) auth, honouringconfig.winrm, that uploads-then-runs scripts and tasks on Windows.
Executor & apply¶
An Executor runs a command, script or task across a set of targets, collecting a per-target Result into a ResultSet. For apply blocks and the YAML resources step, the manifest is compiled to a catalog via go-puppet/puppet and an apply ResultSet is produced (Executor.ApplyCatalog).
Documented boundaries¶
applyexecution —ApplyCatalogcompiles the catalog and reports the resources it would enforce per target; it does not remotely enforce resources (that needs a Puppet agent on the target, Bolt'sapply_prepmodel — out of scope for the agentless core).- WinRM Kerberos / CredSSP — only
basic,negotiateandsslauth are implemented; Kerberos (realm) is rejected with a clear error. - PuppetDB and other
_plugininventory resolvers — not implemented.