Documentation
¶
Overview ¶
Package nodepath holds the node-level paths more than one component needs: the host directory atelet and the ateoms both mount, the sockets and netns they find each other by, the per-actor parent directory, and where atelet stages runtime binaries.
Index ¶
Constants ¶
const BasePath = "/var/lib/ate"
BasePath is the root shared folder on the host filesystem, mounted at the same path into the atelet and ateom containers.
const SandboxVersionsFileName = "sandbox-versions.json"
SandboxVersionsFileName is the base name of the file in AteomPath(podUID) where atelet keeps the sandbox versions of a worker's pool, a sandboxversions.File. A runtime it lists may not have its assets on the node yet.
Variables ¶
var ActorsDir = filepath.Join(BasePath, "actors")
ActorsDir is the parent of the per-actor directories atelet prepares.
var AteomSupportSocket = filepath.Join(BasePath, "ateom-support.sock")
AteomSupportSocket is the node-local atelet socket used by atunnel to request credentials for the worker's current actor assignment.
var StaticFilesDir = filepath.Join(BasePath, "static-files")
StaticFilesDir holds things like runsc binaries.
Functions ¶
func ActorNetNSName ¶
ActorNetNSName names an actor's sandbox network namespace.
func ActorNetNSPath ¶
ActorNetNSPath is the mount path of the actor's named namespace.
func AteletOTLPSocketPath ¶
func AteletOTLPSocketPath() string
AteletOTLPSocketPath is the node-scoped unix socket atelet serves the OTLP relay on (see internal/otlprelay). It is node-scoped rather than per-pod because every ateom on the node pushes into the same relay: atelet is a DaemonSet, so one socket collapses N per-pod collector connections into one per-node connection.
It sits directly under BasePath, which is the host directory already mounted at the same path into atelet and into every ateom pod, so no new volume is needed for ateom to reach it. Note that BasePath is mounted writable (workerpool_apply.go) and shared with AteomSupportSocket and the image cache, so a worker pod can unlink or replace this socket. Confining atelet-owned sockets to a subdirectory mounted read-only would be an improvement, but it is a property of the whole BasePath mount rather than of this socket — a read-only subdir needs its own volume and mount, and the pod keeps CAP_SYS_ADMIN. Tracked separately rather than solved here.
func AteomSocketPath ¶
func AteomsDir ¶
func AteomsDir() string
AteomsDir is the parent of every per-ateom directory, so listing it is how a scraper with no prior knowledge discovers the node's ateoms. atelet creates AteomPath(podUID) once it writes the pod's sandbox versions file and removes it when the pod is deleted; the ateom also MkdirAlls it at boot. A directory may exist before its ateom listens on its socket.
Types ¶
This section is empty.