Roadmap¶
Done¶
- 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
*.jsonmetadata shape (typedparameters,input_method,supports_noop,implementations,files) and validates arguments against the declared parameter types. - YAML plans —
plan.yamlparametersplus an ordered list oftask/command/script/eval/plan/resources/messagesteps withtargets, per-step parameters and areturnexpression, executed by a step runner. - Puppet-language (
.pp) plans —plan name(...) { ... }manifests run throughgithub.com/go-puppet/puppet; therun_task/run_command/run_script/get_targets/applyplan functions dispatch through the executor's transports and inventory (Executor.RunPuppetPlan). - Transports — a
Transportinterface with a host-localLocalTransport, a full pure-Go SSH transport (SSHTransport, overgolang.org/x/crypto/ssh) and a full pure-Go WinRM transport (WinRMTransport, WS-Management / MS-WSMV overnet/http, withbasic/negotiate(NTLM) /sslauth). - Executor &
apply— anExecutorruns a command, script or task across a target set into aResultSet;applyblocks and theresourcesstep compile a catalog viago-puppet/puppetand produce an applyResultSet(Executor.ApplyCatalog).
Documented boundaries (not silently capped)¶
applyexecution is compile-and-report only: it does not remotely enforce resources (that needs a Puppet agent on the target — Bolt'sapply_prepmodel).- WinRM Kerberos / CredSSP auth is not implemented (
basic/negotiate/sslare). - PuppetDB and other
_plugininventory resolvers are not implemented.
Quality is a standing gate: 100% coverage including error branches, gofmt + go vet clean, CI green across the six 64-bit Go targets (amd64, arm64, riscv64, loong64, ppc64le, s390x).