plugin-deploy-vm
| Placement | runtime (out-of-process over gRPC) |
| Source | github.com/opencharly/charly/candy/plugin-deploy-vm |
| Version | 2026.180.0001 |
| Candy | plugin-deploy-vm |
This plugin is not listed in charly/charly.yml’s compiled_plugins:. It is not part of the shipped binary: charly builds and loads it out-of-process over gRPC when a plan references one of its words (the coexist path).
Providers
Section titled “Providers”The reserved words this plugin serves:
vm— deploy class
What it does
Section titled “What it does”OUT-OF-TREE charly DEPLOY plugin serving the vm deploy SUBSTRATE —
target: vm (a deployment applied INSIDE a running VM over SSH). A standalone
Go module (go.mod + main.go) served over go-plugin gRPC via the charly plugin
SDK; charly’s loader host-builds the provider binary and connects it
OUT-OF-PROCESS (LocalTransport). The generic pluginDeployTarget (charly core)
reaches it via candy/plugin-bundle’s Invoke(OpDeployDispatch) ->
sdk.Executor.InvokeProvider, which Invokes it (OpExecute) with the deployment’s
InstallPlan VIEWS + a venue descriptor, and the host’s executor served on the
broker — for vm the GUEST SSHExecutor THIS PLUGIN’s own venue lifecycle built
after booting the domain, waiting for sshd / cloud-init, and ensuring charly is
in the guest. The plugin dials BACK through the SDK
Executor and hands the plans to the shared kit.WalkPlans: the plugin-renderable
step kinds (Op/File/ShellHook + env.d-managed-block/ShellSnippet/Service*/
RepoChange) it EXECUTES itself via the F2 reverse legs
(RunSystem/RunUser/PutFile) INSIDE THE GUEST, echoing the host-computed reverse
ops; the HOST-ENGINE kinds (Builder/LocalPkgInstall/SystemPackages/act-Op/
ExternalPlugin) AND a reboot: true RebootStep it drives over the RunHostStep
reverse leg (builders run on the host’s podman + scp into the guest; a reboot
reboots the guest + waits for the boot_id change). It returns the combined
teardown ops the host records in the install ledger and replays at
charly bundle del. The vm-substrate sibling of candy/plugin-deploy-local; this
plugin owns BOTH the VM lifecycle (boot/destroy/console/ssh + nested
pod-in-guest) and the plan WALK — no core-side lifecycle hook remains.
See also the candy reference for this candy’s install surface.