Documentation
¶
Index ¶
Constants ¶
const Version = "v0.5.0"
Version is the current version of herd. Version is the current version of herd.
Variables ¶
This section is empty.
Functions ¶
func GetTargetHomeDir ¶ added in v0.5.1
GetTargetHomeDir returns the home directory of the original user if running under sudo, falling back to the current user's home directory.
Types ¶
type BinaryConfig ¶ added in v0.5.0
type CloudConfig ¶ added in v0.5.4
type Config ¶
type Config struct {
Network NetworkConfig `yaml:"network"`
Storage StorageConfig `yaml:"storage"`
Resources ResourceConfig `yaml:"resources"`
Binaries BinaryConfig `yaml:"binaries"`
Jailer JailerConfig `yaml:"jailer"`
Telemetry TelemetryConfig `yaml:"telemetry"`
Cloud CloudConfig `yaml:"cloud"`
}
Config is the strict daemon bootstrap contract. The daemon fails fast if any required field is missing or malformed.
type JailerConfig ¶ added in v0.5.4
type JailerConfig struct {
// UIDPoolStart is the first UID (and GID) in the pool. Must be >= 65536 to
// stay well above system-reserved UIDs. Recommended: 300000.
UIDPoolStart int `yaml:"uid_pool_start"`
// UIDPoolSize is how many concurrent MicroVMs the pool can support.
// Set this to at least your max_global_vms value.
UIDPoolSize int `yaml:"uid_pool_size"`
ChrootBaseDir string `yaml:"chroot_base_dir"`
}
JailerConfig holds parameters for the Firecracker jailer process.
Each concurrent MicroVM is assigned a unique UID/GID leased from the pool [UIDPoolStart, UIDPoolStart+UIDPoolSize). This ensures every tenant runs in a distinct DAC security domain — a requirement for multi-tenant public cloud deployments where different tenants share the same bare-metal host.
type NetworkConfig ¶
type ResourceConfig ¶
type ResourceConfig struct {
MaxGlobalVMs int `yaml:"max_global_vms"`
MaxGlobalMemoryMB int64 `yaml:"max_global_memory_mb"`
CPULimitCores float64 `yaml:"cpu_limit_cores"`
}
func (ResourceConfig) MemoryLimitBytes ¶
func (r ResourceConfig) MemoryLimitBytes() int64