Skip to content

plugin-substrate

Placement compiled-in (in-process)
Source github.com/opencharly/charly/candy/plugin-substrate
Version 2026.196.0600
Candy plugin-substrate

This plugin is listed in charly/charly.yml’s compiled_plugins:, so its providers are compiled into the charly binary and register in-process.

The reserved words this plugin serves:

  • android — kind class
  • k8s — kind class
  • local — kind class
  • pod — kind class
  • vm — kind class

The 5 SUBSTRATE structural deploy KINDS — pod / vm / k8s / local / android — relocated into ONE candy (C2-substrate; formerly the shared built-in standaloneKind). Each substrate kind is BOTH a standalone TEMPLATE (a bare vm:/pod: block → the typed template map uf.Pod/uf.VM/…, the PRIMARY VM authoring form) AND a DEPLOY (from:/image: cross-ref or resource members → uf.Bundle). Its value is RICH + core-referencing (#Vm/#Deploy/#LibvirtDomain/…), so — unlike group’s small self-contained #GroupInput — it cannot be re-decoded from op.Params nor validated by a self-contained plugin schema. So the HOST pre-decodes the CANONICAL node via the core loader (buildBundleNode / decodeNodeValue — the single decode source of truth), validates its value against the KEPT #Value core def, and threads it in op.Env; this plugin’s OpLoad ECHOES it and the host folds the echo into uf.Bundle (deploy) or the typed template map (template — the C2-substrate TEMPLATE fold arm extending F5’s deploy-only fold), byte-equivalent to the former in-proc standaloneKind decode. COMPILED-IN (in the embedded compiled_plugins:), like the tier-1 kinds and group, because these 5 are core deploy primitives every box/submodule must always resolve; also serves out-of-process via cmd/serve. P14a added the COLLECTOR OpStatusCollect on the same kind-provider Invoke (dispatched by word pod/vm/k8s/local/android): the cleanly-movable status collectors — pod live (snapshot + live mounts + tool probes) + local (install-ledger) + the 7 probes — relocated here from charly core, reached by the host’s charly status fan-out; the deploy-cone-coupled enrichment + the vm/k8s/android collectors stay host-side until K5.


See also the candy reference for this candy’s install surface.