Skip to content

plugin-deploy-vm

Version 2026.180.0001
Repo superproject
Plugin yes — see the plugin reference

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.

This candy’s plan: — the runnable spec charly check executes against a live deployment. check: steps are idempotent probes; run: steps change state.

Intent Step
check the out-of-tree deploy:vm plugin ships a buildable Go module (go.mod + the provider main) the host can build + serve out-of-process