plugin-pod
| Placement | compiled-in (in-process) |
| Source | github.com/opencharly/plugin-pod/candy/plugin-pod |
| Version | 2026.201.0000 |
| Candy | plugin-pod |
This plugin is listed in charly/charly.yml’s compiled_plugins:, so its providers are compiled into the charly binary and register in-process.
Providers
Section titled “Providers”The reserved words this plugin serves:
config— command classcp— command classlogs— command classremove— command classrestart— command classservice— command classshell— command classstart— command classstop— command classupdate— command classvolume— command class
What it does
Section titled “What it does”The charly start/stop/restart/config/shell/service/logs/remove/cp/
volume pod-lifecycle CLI — a COMMAND-class charly plugin (github.com/opencharly/sdk),
the CLI sibling of candy/plugin-deploy-pod (which keeps deploy:pod out-of-process,
untouched — mirroring the candy/plugin-vm / candy/plugin-deploy-vm split). Each command
word is INDEPENDENT (no shared parent). charly restart is pure sdk/kit + sdk/deploykit
logic (deploykit.RestartPodService) with zero host coupling. The registry-bound commands
(start/stop/…) forward their authored flags, as sdk/spec wire requests, to a per-command
HostBuild seam — the host reconstructs the original core orchestration struct and runs
its Run() logic VERBATIM (mirroring candy/plugin-fleet’s deploy-add/deploy-del seams),
because the provider REGISTRY (ResolveTarget, the plugin loader) is a core Mechanism a
plugin cannot import or hold. COMPILED-IN, it dispatches IN-PROC via Invoke(OpRun), so the
handlers run in charly’s own process and inherit real stdio/TTY natively. Placement of
THIS candy is independent of candy/plugin-deploy-pod’s placement.
Parameter schema
Section titled “Parameter schema”The CUE schema below is the authoritative grammar for this plugin’s input. It is the same single source that generates the plugin’s Go parameter types and answers the runtime Describe RPC, so this page cannot disagree with either.
schema/pod.cue
Section titled “schema/pod.cue”// plugin-pod's OWN self-contained CUE schema — the SINGLE SOURCE for this plugin's// served declaration surface (there is no schema-less plugin: every plugin ships a// non-empty schema over Describe).//// SELF-CONTAINED and PACKAGE-LESS: it references no base def and carries no package// clause, so it compiles STANDALONE — the property the SDK's serve-side compile needs// and the property that lets the host splice `base ++ plugin` at the load gate// (registerPluginUnitSchema); a self-contained schema that will not splice is a LOUD// load failure.//// NO GO CONSUMER: the plugin declares no typed `plugin_input` (its authored input is// its pass-through CLI grammar), so this schema generates NO `params` package and has// NO `cue exp gengotypes` artifact — it is the SERVED documentation/config surface,// not a code-generation source.//// It DOCUMENTS the eleven independent top-level `command:` words this plugin serves.#PodPlugin: { // The independent top-level command words this plugin serves (no shared parent // — each command word is its own top-level charly command). A command's args // are pass-through CLI tokens (there is no typed plugin_input), so these words // ARE this plugin's authored declaration surface. commands: ["start", "stop", "restart", "logs", "remove", "shell", "service", "volume", "cp", "config", "update"]
// What the plugin does, in one line (the public-docs surface). contract: string & !=""}See also the candy reference for this candy’s install surface.