Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
pandion
command
Command pandion is the CLI: a provision/run/teardown flow over the in-memory mock provider (default, free, offline) or a real cloud backend (--provider=hetzner | digitalocean | vultr | linode | scaleway), with security-hardened bootstrap.
|
Command pandion is the CLI: a provision/run/teardown flow over the in-memory mock provider (default, free, offline) or a real cloud backend (--provider=hetzner | digitalocean | vultr | linode | scaleway), with security-hardened bootstrap. |
|
pandion-relay
command
Command pandion-relay is the node-hosted browser-SSH relay: it serves an xterm.js terminal over TLS and bridges each authorized token to a host-key-pinned SSH PTY on a target node, reached over the WireGuard overlay.
|
Command pandion-relay is the node-hosted browser-SSH relay: it serves an xterm.js terminal over TLS and bridges each authorized token to a host-key-pinned SSH PTY on a target node, reached over the WireGuard overlay. |
|
internal
|
|
|
audit
Package audit emits a structured (JSON) trail of Pandion's OWN infrastructure actions — provision, teardown, lockdown, reap — for debugging Pandion itself and as an after-the-fact record (L3).
|
Package audit emits a structured (JSON) trail of Pandion's OWN infrastructure actions — provision, teardown, lockdown, reap — for debugging Pandion itself and as an after-the-fact record (L3). |
|
config
Package config loads and validates cluster.yaml against the published JSON Schema (draft 2020-12).
|
Package config loads and validates cluster.yaml against the published JSON Schema (draft 2020-12). |
|
config/gen
command
Command gen renders docs/cluster-yaml.md from the embedded JSON Schema, so the user-facing cluster.yaml reference can never drift from what the loader accepts (P3.1).
|
Command gen renders docs/cluster-yaml.md from the embedded JSON Schema, so the user-facing cluster.yaml reference can never drift from what the loader accepts (P3.1). |
|
discovery
Package discovery builds the service-discovery environment injected into every cluster node (C5/H1).
|
Package discovery builds the service-discovery environment injected into every cluster node (C5/H1). |
|
firewall
Package firewall generates nftables rulesets for host-level network hardening.
|
Package firewall generates nftables rulesets for host-level network hardening. |
|
flock
Package flock is a tiny cross-process advisory lock over a lock file, used to serialize the mutating pandion commands (up/down/start/lockdown/reap) that touch a single cluster's on-disk state.
|
Package flock is a tiny cross-process advisory lock over a lock file, used to serialize the mutating pandion commands (up/down/start/lockdown/reap) that touch a single cluster's on-disk state. |
|
gpucache
Package gpucache is a small on-disk cache of a provider's GPU offerings (~/.pandion/cache/<provider>-gpu.json), so `pandion list-gpus` is fast and works offline within a TTL.
|
Package gpucache is a small on-disk cache of a provider's GPU offerings (~/.pandion/cache/<provider>-gpu.json), so `pandion list-gpus` is fast and works offline within a TTL. |
|
harden
Package harden builds the provision-time hardening artifacts.
|
Package harden builds the provision-time hardening artifacts. |
|
lockfile
Package lockfile records and replays the resolved toolchain of a cluster, for reproducibility (H2).
|
Package lockfile records and replays the resolved toolchain of a cluster, for reproducibility (H2). |
|
orchestrator
Package orchestrator is the provider-agnostic state machine + reconcile loop.
|
Package orchestrator is the provider-agnostic state machine + reconcile loop. |
|
overlay
Package overlay builds WireGuard configuration for the management overlay.
|
Package overlay builds WireGuard configuration for the management overlay. |
|
provider
Package provider defines the single seam between Pandion's orchestration and any cloud backend.
|
Package provider defines the single seam between Pandion's orchestration and any cloud backend. |
|
provider/digitalocean
Package digitalocean implements provider.Provider against the DigitalOcean API using godo.
|
Package digitalocean implements provider.Provider against the DigitalOcean API using godo. |
|
provider/hetzner
Package hetzner implements provider.Provider against the Hetzner Cloud API using hcloud-go.
|
Package hetzner implements provider.Provider against the Hetzner Cloud API using hcloud-go. |
|
provider/lambda
Package lambda implements provider.Provider + provider.GPUProvider + provider.Pricer for Lambda Cloud (https://cloud.lambdalabs.com) — a Tier-A GPU cloud (see docs/gpu-design.md §5): full VMs whose base image (Lambda Stack) is already CUDA-native, so Pandion's kernel-space overlay + eBPF/XDP lockdown work unchanged and no driver injection is needed.
|
Package lambda implements provider.Provider + provider.GPUProvider + provider.Pricer for Lambda Cloud (https://cloud.lambdalabs.com) — a Tier-A GPU cloud (see docs/gpu-design.md §5): full VMs whose base image (Lambda Stack) is already CUDA-native, so Pandion's kernel-space overlay + eBPF/XDP lockdown work unchanged and no driver injection is needed. |
|
provider/linode
Package linode implements provider.Provider against the Linode (Akamai) API using linodego.
|
Package linode implements provider.Provider against the Linode (Akamai) API using linodego. |
|
provider/mock
Package mock is an in-memory Provider used for fast, free, offline tests.
|
Package mock is an in-memory Provider used for fast, free, offline tests. |
|
provider/scaleway
Package scaleway implements provider.Provider against the Scaleway Instances API.
|
Package scaleway implements provider.Provider against the Scaleway Instances API. |
|
provider/vultr
Package vultr implements provider.Provider against the Vultr API using govultr.
|
Package vultr implements provider.Provider against the Vultr API using govultr. |
|
relay
Package relay is the model behind Pandion's browser-SSH relay: scoped, expiring, revocable grants that let a participant reach ONE node's shell over the overlay from a browser, with no install.
|
Package relay is the model behind Pandion's browser-SSH relay: scoped, expiring, revocable grants that let a participant reach ONE node's shell over the overlay from a browser, with no install. |
|
secret
Package secret stores provider API tokens in the OS keychain (macOS Keychain, Linux Secret Service / libsecret, Windows Credential Manager) via go-keyring, so a token need not sit in an environment variable (H6).
|
Package secret stores provider API tokens in the OS keychain (macOS Keychain, Linux Secret Service / libsecret, Windows Credential Manager) via go-keyring, so a token need not sit in an environment variable (H6). |
|
ssh
Package ssh runs commands on a node over SSH with a PINNED host key.
|
Package ssh runs commands on a node over SSH with a PINNED host key. |
|
sshkeys
Package sshkeys generates ed25519 SSH key pairs for Pandion.
|
Package sshkeys generates ed25519 SSH key pairs for Pandion. |
|
state
Package state is the journaled, on-disk cluster state store.
|
Package state is the journaled, on-disk cluster state store. |
|
stream
Package stream multiplexes per-node stdout/stderr into one local view: color-coded, line-prefixed by node, and tee'd to per-node log files (M4).
|
Package stream multiplexes per-node stdout/stderr into one local view: color-coded, line-prefixed by node, and tee'd to per-node log files (M4). |
|
userconfig
Package userconfig loads and saves the operator's personal defaults from ~/.pandion/config.yaml — the layer that lets bare one-liners work without flags (e.g.
|
Package userconfig loads and saves the operator's personal defaults from ~/.pandion/config.yaml — the layer that lets bare one-liners work without flags (e.g. |
|
workspace
Package workspace syncs the local project to remote nodes by streaming a gzip'd tar over Pandion's existing pinned SSH connection (no rsync, no external ssh, no key files — consistent with the security model).
|
Package workspace syncs the local project to remote nodes by streaming a gzip'd tar over Pandion's existing pinned SSH connection (no rsync, no external ssh, no key files — consistent with the security model). |
Click to show internal directories.
Click to hide internal directories.