Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
PATToken string
APIHost string
APIPort int
Domain string
PublicHost string
CaddyAdminURL string
CaddyServerID string
DBPath string
DockerNetwork string
ToolboxBinaryPath string
ToolboxMountPath string
ToolboxPort int
IdleTimeoutMinutes int
ContainerPrivileged bool
ResourceLimitsOff bool
// Runtime is the host default container runtime for new sandboxes.
// Per-sandbox CreateSandboxRequest.Runtime overrides it. Allowed values
// are "docker" (default), "gvisor", or "kata"; validation lives in Load().
Runtime string
AutoReconcile bool
EnableCaddy bool
EnableNetworkRules bool
EnableEventMonitor bool
EnableSSHGateway bool
SSHListenAddr string
SSHHostKeyPath string
CredentialEncryptionKey string
CredentialEncryptionKeyPath string
MountsRootPath string
MountsCredentialsRuntimeDir string
MountWaitTimeout time.Duration
LogLevel string
ShutdownTimeout time.Duration
HTTPClientTimeout time.Duration
DockerRuntimeWaitTimeout time.Duration
ToolboxWaitTimeout time.Duration
ReconcileInterval time.Duration
UploadMaxBytes int64
// Admission control. Admission is purely resource-math: CPU/memory
// reservation ratios plus a live memory floor. There is no fixed sandbox
// count cap — the host runs as many sandboxes as the math allows.
CPUReservationRatio float64
MemoryReservationRatio float64
MemoryFloorRatio float64
// CPUOverProvisionFactor and MemoryOverProvisionFactor multiply the
// reservation budgets above. Docker --cpus is a CFS cap (not a hard
// reservation) and Linux lazy-allocates memory pages, so a host with
// mostly-idle sandboxes can safely accept far more reservations than its
// nominal capacity. The live MemoryFloorRatio check is the backstop that
// catches real pressure when reservations and reality diverge. 0 or <1
// is clamped to 1.0 (no overcommit) — operators that want strict packing
// should lower the reservation ratios instead.
CPUOverProvisionFactor float64
MemoryOverProvisionFactor float64
HostCPUCoresOverride int
HostMemoryMBOverride int
// L4PortRangeStart / L4PortRangeEnd bound the parent-host port pool that
// raw-TCP sandbox exposures (caddy-l4) are allocated from. The allocator
// picks a random candidate first; collisions fall back to a deterministic
// scan. Both sides are inclusive.
//
// The default range [22000, 23000] sits ABOVE the Linux registered-ports
// boundary (1024) and BELOW the default ephemeral-port range
// (net.ipv4.ip_local_port_range, typically 32768-60999). Keeping the pool
// out of the ephemeral range matters: if these ports overlapped, the
// kernel could hand any of them to an unrelated outbound connection as a
// source port, and the next L4 expose attempt to bind() that number would
// race-fail with EADDRINUSE. 1000 slots is the deliberate concurrent-TCP-
// exposure cap per host; raise it via the env vars if you need more, but
// keep both bounds outside the host's ephemeral range.
L4PortRangeStart int
L4PortRangeEnd int
// L4TLSListen is the listen address for the shared TLS-SNI multiplexer.
// Empty disables TLS-SNI exposure entirely (the daemon will reject
// protocol="tls" requests). When set, caddy-l4 binds this address and
// routes by SNI to per-sandbox subdomains.
//
// install.sh sets this to ":443" in domain mode (which always uses
// DNS-01 wildcard issuance, so :443 is free of ACME traffic and caddy-l4
// can own it). The HTTPS Caddy server is moved to 127.0.0.1:8443 in that
// case. In IP/path mode (no --domain) this stays empty and caddy-l4
// is never started.
L4TLSListen string
// L4TLSFallback is the local address caddy-l4 forwards a TLS connection
// to when no per-sandbox SNI route matches — i.e. the regular HTTPS site
// served by Caddy itself (sandbox API and the catch-all 404).
// Required when L4TLSListen is non-empty; ignored otherwise. Default is
// "127.0.0.1:8443" to match install.sh's relocated HTTPS listener.
L4TLSFallback string
}
func (Config) DomainMode ¶
func (Config) IdleTimeout ¶
func (Config) ListenAddr ¶
Click to show internal directories.
Click to hide internal directories.