pod/skills/pod/SKILL.md
--- name: pod description: Schema reference for `kind: pod` and deploy entities — charly.yml entry shape, tree-position nesting, sidecars, pod networking. For verb-level operations see /charly-core:deploy. --- # `kind: pod` and deploy entities — Schema Reference This skill is a thin schema pointer. For runtime verbs (`charly bundle add`, `charly bundle del`, `charly update`), see `/charly-core:deploy`. ## What lives in `kind: pod` / a deploy node A `pod` entity declares a co-scheduled set of
npx skillsauth add overthinkos/overthink-plugins pod/skills/podInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
kind: pod and deploy entities — Schema ReferenceThis skill is a thin schema pointer. For runtime verbs (charly bundle add, charly bundle del, charly update), see /charly-core:deploy.
kind: pod / a deploy nodeA pod entity declares a co-scheduled set of containers and the volumes / network / sidecars they share. A deploy node is the bind site — its first child key is the substrate kind at the EDGE (pod: the default, or vm: / k8s: / local: / android:, or group: for a targetless member group), carrying image: (the box a pod/k8s/android runs) or from: (inherit a same-kind template), plus the runtime knobs (encrypted volumes, tunnels, env, ports).
A host/remote deploy MUST use the host: FIELD on a local: (or pod:) deploy (local: {from: <template>, host: <user@machine>}) — there is NO host: venue KIND. group: here is EXCLUSIVELY the targetless deploy group; a Calamares package group is the separate package-group: kind, never group:.
Schema sources (read these for the canonical truth):
charly/deploy.go — BundleConfig + BundleNode Go types, the deploy entry shape, target discriminator.charly/spec/cue_types_gen.go (generated) — the PodSpec Go type / kind: pod shape./charly-core:deploy — the verb-level skill covering charly bundle add / charly bundle del / charly update.Nesting is expressed by tree position, not a nested: field: a resource node placed UNDER another resource node deploys INTO it (the migrated nested: — e.g. a pod → android tree), and the parent and its nested entries share the pod and the tunnel; each nested entry is a separate quadlet/process inside the same pod namespace. A resource node placed directly under a deploy is instead a sibling member (the migrated peer:). There are no authored nested: / peer: / target: / on: fields — membership is read from the tree.
sidecar: declares co-running containers with their own env-var routing (env_accept / env_require). See /charly-automation:sidecar for the topic skill.
/charly-core:deploy, /charly-core:charly-update, /charly-core:remove./charly-image:image, /charly-vm:vm, /charly-kubernetes:kubernetes, /charly-local:local-spec./charly-automation:sidecar, /charly-automation:enc.tools
Use when authoring or modifying a charly PLUGIN — a candy with a `plugin:` block that contributes Providers (verbs/kinds/deploy-targets/steps/builders/commands), its own CUE schema, builtin (compiled-in) or external (out-of-tree git repo). Covers the unified Provider model, the per-plugin CUE-schema contract (single source → Go params for dev + schema-over-Describe RPC for runtime), the SDK, and the loader.
tools
The CUE data-validation / configuration CLI (cue), pinned to v0.16.1. Use when working with the cue candy, installing the cue binary into a box or onto a target:local dev host, or running the offline schema-vendoring pipeline that feeds charly's egress validation.
tools
CUE EGRESS validation — validating (and, where it adds value, generating) the config files charly WRITES to a system BEFORE the bytes hit disk. MUST be invoked before working on charly/egress.go, the vendored schemas under candy/plugin-egress/egress-schemas/vendor/, the ValidateEgress / registerVendoredEgressKind path, the offline `task cue:vendor` pipeline, or adding an egress schema for any written artifact (cloud-init, k8s manifests, traefik routes, runtime config, install ledger, systemd/quadlet units, ssh_config, libvirt XML).
tools
Kubernetes cluster-probe declarative check verb — the `kube:` check verb (nodes, pods, ingress, storage class, addon health, apply/delete, and arbitrary resource GETs) served out-of-process by the candy/plugin-kube plugin (vendored client-go; no external kubectl required).