hostlet

package
v2.0.0-alpha.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 5, 2026 License: Apache-2.0 Imports: 46 Imported by: 0

Documentation

Index

Constants

View Source
const InagentStatusPath = "/in/api/v2/hostlet/inagent/status"

InagentStatusPath is the full HTTP path the inagent POSTs stage reports to. It is served on the shared HTTP server (ServerConfig.HttpPort) under the hostlet module.

Variables

This section is empty.

Functions

func EnsurePackages

func EnsurePackages(app *inapi.AppInstance) (map[string]string, error)

EnsurePackages downloads and prepares all packages for an app. It returns a map of package name -> install path. Duplicate packages (same name and version) are skipped.

func NewHostletModule

func NewHostletModule() *httpsrv.Module

NewHostletModule builds the hostlet HTTP module, mounted under "/in/api/v2/hostlet" by the server. It currently exposes the inagent stage-progress reporting endpoint.

func NewInternalServer

func NewInternalServer() inapi.HostInternalServiceServer

func PackageDownload

func PackageDownload(pkgRef *inapi.AppSpecPackage) (string, error)

PackageDownload downloads a package from zonelet and extracts it. It returns the install path of the extracted package. The operation is idempotent - if the package is already downloaded and extracted, it returns the existing path.

func Run

func Run()

func TryRun

func TryRun() error

Types

type PackagePaths

type PackagePaths struct {
	// contains filtered or unexported fields
}

PackagePaths provides path utilities for package storage.

func NewPackagePaths

func NewPackagePaths(prefix string) *PackagePaths

NewPackagePaths creates a PackagePaths instance.

func (*PackagePaths) IpkDir

func (p *PackagePaths) IpkDir() string

IpkDir returns the base directory for ipk files.

func (*PackagePaths) IpkFile

func (p *PackagePaths) IpkFile(pkgName, pkgId string) string

IpkFile returns the path to the ipk archive file. Format: {prefix}/var/ipk/{name}/{name}_{version}_{os}_{arch}.ipk

func (*PackagePaths) IpkInstallDir

func (p *PackagePaths) IpkInstallDir() string

IpkInstallDir returns the base directory for extracted packages.

func (*PackagePaths) IpkInstallPath

func (p *PackagePaths) IpkInstallPath(pkgName, pkgId string) string

IpkInstallPath returns the path to the extracted package directory. Format: {prefix}/var/ipk_install/{name}/{name}_{version}_{os}_{arch}/

type QuotaConfig

type QuotaConfig struct {
	Items       []*QuotaProject `json:"items,omitempty"`
	Updated     int64           `json:"updated"`
	IdOffset    int             `json:"id_offset"`
	MountPoints []string        `json:"mount_points"`
	// contains filtered or unexported fields
}

QuotaConfig manages XFS project quota entries for app instance volume isolation. It persists quota state to a JSON file and synchronizes the kernel quota projects via the xfs_quota command-line tool.

func (*QuotaConfig) Fetch

func (it *QuotaConfig) Fetch(name string) *QuotaProject

Fetch returns the quota project with the given name, or nil.

func (*QuotaConfig) FetchById

func (it *QuotaConfig) FetchById(id int) *QuotaProject

FetchById returns the quota project with the given project ID, or nil.

func (*QuotaConfig) FetchOrCreate

func (it *QuotaConfig) FetchOrCreate(mnt, name string) *QuotaProject

FetchOrCreate returns an existing project by name, or allocates a new one. The project ID is assigned from a sequentially increasing offset (starting at 100) with gap detection to reuse IDs freed by removed projects.

func (*QuotaConfig) Has

func (it *QuotaConfig) Has(id uint32) bool

Has checks whether a project with the given ID exists.

func (*QuotaConfig) Remove

func (it *QuotaConfig) Remove(name string)

Remove deletes the project with the given name from the in-memory list.

func (*QuotaConfig) Sync

func (it *QuotaConfig) Sync() error

Sync persists the quota configuration to the JSON state file.

func (*QuotaConfig) SyncVendor

func (it *QuotaConfig) SyncVendor() error

SyncVendor writes the /etc/projects file that maps project IDs to their directory paths. The file is only rewritten when content changes (detected via SHA1 checksum) to minimize unnecessary disk I/O.

type QuotaProject

type QuotaProject struct {
	Id   int    `json:"id"`
	Mnt  string `json:"mnt"`
	Name string `json:"name"`
	Soft int64  `json:"soft"`
	Hard int64  `json:"hard"`
	Used int64  `json:"used"`
}

QuotaProject represents a single XFS project quota entry. Each active container/app-instance-replica gets a unique project ID with configured soft/hard block limits enforced by the XFS filesystem.

Directories

Path Synopsis
Package docker provides a Docker container driver implementation.
Package docker provides a Docker container driver implementation.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL