Documentation
¶
Index ¶
- Constants
- func GenerateBaseInitramfs(ctx context.Context, arch apko_types.Architecture, cfg MicrovmConfig, ...) error
- func LogObservabilityEvents(ctx context.Context, events *ObservabilityEvents)
- type BindMount
- type Capabilities
- type Config
- type Debugger
- type Loader
- type MicrovmConfig
- type NetworkConnection
- type ObservabilityEvents
- type Runner
Constants ¶
View Source
const ( // DefaultWorkspaceDir is the default path to the workspace directory in the runner's environment. DefaultWorkspaceDir = "/home/build" // DefaultCacheDir is the default path to the cache directory in the runner's environment. DefaultCacheDir = "/var/cache/melange" // DefaultResolvConfPath is the default path to the resolv.conf file in the runner's environment. DefaultResolvConfPath = "/etc/resolv.conf" )
View Source
const ( KB = 1 << (10 * iota) MB GB TB )
Use binary values for all units
View Source
const (
BubblewrapName = "bubblewrap"
)
View Source
const QemuName = "qemu"
Variables ¶
This section is empty.
Functions ¶
func GenerateBaseInitramfs ¶ added in v0.46.0
func GenerateBaseInitramfs(ctx context.Context, arch apko_types.Architecture, cfg MicrovmConfig, outputPath string) error
GenerateBaseInitramfs generates a base initramfs suitable for the QEMU runner. This can be reused via QEMU_BASE_INITRAMFS, but is cached if not.
The generated initramfs does NOT contain SSH host keys or kernel modules, those are injected at runtime by the QEMU runner.
func LogObservabilityEvents ¶ added in v0.48.0
func LogObservabilityEvents(ctx context.Context, events *ObservabilityEvents)
LogObservabilityEvents writes all observability events to melange's stdout via the structured logger. Each raw event is logged as a separate line with an [OBSERVABILITY] prefix for filtering. Network connections get a dedicated summary section. In the elastic build environment, these log lines flow to Cloud Logging via GKE pod stdout and are individually searchable.
Types ¶
type Capabilities ¶
type Config ¶
type Config struct {
PackageName string
Mounts []BindMount
Capabilities Capabilities
Environment map[string]string
ImgRef string
PodID string
Arch apko_types.Architecture
RunAsUID string
RunAs string
WorkspaceDir string
CacheDir string
CPU, CPUModel, Memory string
SSHKey ssh.Signer
SSHAddress string // SSH address for the build / chrooted environment
SSHControlAddress string // SSH address for the control / management environment
SSHHostKey string // Path to known_hosts file containing the VM's host key
VMHostKeySigner ssh.Signer // VM's SSH host key (private signer)
VMHostKeyPublic ssh.PublicKey // VM's SSH host key (public) - for verification
VMHostKeyPrivateKeyBytes []byte // VM's SSH host key (raw private key bytes) - for injection
VMHostKeyPrivate ed25519.PrivateKey // VM's SSH host key (raw private key) - for explicit zeroing
InitramfsPath string // Path to temp initramfs file (contains sensitive key material)
Disk string
Timeout time.Duration
SSHBuildClient *ssh.Client // SSH client for the build environment, may not have privileges
SSHControlBuildClient *ssh.Client // SSH client for control operations in the build environment, has privileges
SSHControlClient *ssh.Client // SSH client for unrestricted control environment, has privileges
QemuProcess *os.Process // QEMU process handle (not just PID, to avoid PID reuse issues)
RunAsGID string
// Virtiofs-related fields for cache directory
VirtiofsEnabled bool // Whether virtiofs is enabled for cache
VirtiofsdPID int // PID of virtiofsd daemon for cleanup
VirtiofsdSocketPath string // Path to Unix socket for virtiofsd
// ObservabilityHook is true when the observability hook's sentinel file
// was found in the initramfs CPIO during VM setup. When false,
// RetrieveObservabilityEvents returns immediately without probing the VM.
ObservabilityHook bool
}
type Loader ¶ added in v0.4.0
type Loader interface {
LoadImage(ctx context.Context, layer v1.Layer, arch apko_types.Architecture, bc *apko_build.Context) (ref