package config

import "github.com/containerd/nydus-snapshotter/config"

Index

Constants

const (
	FsDriverBlockdev string = constant.FsDriverBlockdev
	FsDriverFusedev  string = constant.FsDriverFusedev
	FsDriverFscache  string = constant.FsDriverFscache
	FsDriverNodev    string = constant.FsDriverNodev
	FsDriverProxy    string = constant.FsDriverProxy
)
const (
	TarfsLayerVerityOnly      string = "layer_verity_only"
	TarfsImageVerityOnly      string = "image_verity_only"
	TarfsLayerBlockDevice     string = "layer_block"
	TarfsImageBlockDevice     string = "image_block"
	TarfsLayerBlockWithVerity string = "layer_block_with_verity"
	TarfsImageBlockWithVerity string = "image_block_with_verity"
)

Functions

func GetCacheGCPeriod

func GetCacheGCPeriod() time.Duration

func GetConfigRoot

func GetConfigRoot() string

func GetDaemonLogRotationSize

func GetDaemonLogRotationSize() int

func GetDaemonProfileCPUDuration

func GetDaemonProfileCPUDuration() int64

func GetDaemonThreadsNumber

func GetDaemonThreadsNumber() int

func GetFsDriver

func GetFsDriver() string

func GetLogDir

func GetLogDir() string

func GetLogLevel

func GetLogLevel() string

func GetLogToStdout

func GetLogToStdout() bool

func GetMirrorsConfigDir

func GetMirrorsConfigDir() string

func GetRootMountpoint

func GetRootMountpoint() string

func GetSkipSSLVerify

func GetSkipSSLVerify() bool

func GetSnapshotsRootDir

func GetSnapshotsRootDir() string

func GetSocketRoot

func GetSocketRoot() string

func GetTarfsExportEnabled

func GetTarfsExportEnabled() bool

func GetTarfsExportFlags

func GetTarfsExportFlags() (bool, bool, bool)

Returns (wholeImage, generateBlockImage, withVerityInfo) wholeImage: generate tarfs for the whole image instead of of a specific layer. generateBlockImage: generate a block image file. withVerityInfo: generate disk verity information.

func GetTarfsMountOnHost

func GetTarfsMountOnHost() bool

func IsBackendSourceEnabled

func IsBackendSourceEnabled() bool

func IsFusedevSharedModeEnabled

func IsFusedevSharedModeEnabled() bool

func IsSystemControllerEnabled

func IsSystemControllerEnabled() bool

func MergeConfig

func MergeConfig(to, from *SnapshotterConfig) error

func ParseCgroupConfig

func ParseCgroupConfig(config CgroupConfig) (cgroup.Config, error)

func ParseParameters

func ParseParameters(args *flags.Args, cfg *SnapshotterConfig) error

Parse command line arguments and fill the nydus-snapshotter configuration Always let options from CLI override those from configuration file.

func ProcessConfigurations

func ProcessConfigurations(c *SnapshotterConfig) error

func SetUpEnvironment

func SetUpEnvironment(c *SnapshotterConfig) error

func SystemControllerAddress

func SystemControllerAddress() string

func SystemControllerPprofAddress

func SystemControllerPprofAddress() string

func ValidateConfig

func ValidateConfig(c *SnapshotterConfig) error

Types

type AuthConfig

type AuthConfig struct {
	// based on kubeconfig or ServiceAccount
	EnableKubeconfigKeychain bool   `toml:"enable_kubeconfig_keychain"`
	KubeconfigPath           string `toml:"kubeconfig_path"`
	// CRI proxy mode
	EnableCRIKeychain   bool   `toml:"enable_cri_keychain"`
	ImageServiceAddress string `toml:"image_service_address"`
}

Configure how nydus-snapshotter receive auth information

type CacheManagerConfig

type CacheManagerConfig struct {
	Disable bool `toml:"disable"`
	// Trigger GC gc_period after the specified period.
	// Example format: 24h, 120min
	GCPeriod string `toml:"gc_period"`
	CacheDir string `toml:"cache_dir"`
}

Configure cache manager that manages the cache files lifecycle

type CgroupConfig

type CgroupConfig struct {
	Enable      bool   `toml:"enable"`
	MemoryLimit string `toml:"memory_limit"`
}

type DaemonConfig

type DaemonConfig struct {
	NydusdPath       string `toml:"nydusd_path"`
	NydusdConfigPath string `toml:"nydusd_config"`
	NydusImagePath   string `toml:"nydusimage_path"`
	RecoverPolicy    string `toml:"recover_policy"`
	FsDriver         string `toml:"fs_driver"`
	ThreadsNumber    int    `toml:"threads_number"`
	LogRotationSize  int    `toml:"log_rotation_size"`
}

Configure how to start and recover nydusd daemons

type DaemonMode

type DaemonMode string

Define a policy how to fork nydusd daemon and attach file system instances to serve.

const (
	// Spawn a dedicated nydusd for each RAFS instance.
	DaemonModeMultiple DaemonMode = DaemonMode(constant.DaemonModeMultiple)
	// Spawn a dedicated nydusd for each RAFS instance.
	DaemonModeDedicated DaemonMode = DaemonMode(constant.DaemonModeDedicated)
	// Share a global nydusd to serve all RAFS instances.
	DaemonModeShared DaemonMode = DaemonMode(constant.DaemonModeShared)
	// Do not spawn nydusd for RAFS instances.
	//
	// For tarfs and rund, there's no need to create nydusd to serve RAFS instances,
	// the snapshotter just returns mount slices with additional information for runC/runD
	// to manage those snapshots.
	DaemonModeNone    DaemonMode = DaemonMode(constant.DaemonModeNone)
	DaemonModeInvalid DaemonMode = DaemonMode(constant.DaemonModeInvalid)
)

func GetDaemonMode

func GetDaemonMode() DaemonMode

type DaemonRecoverPolicy

type DaemonRecoverPolicy int
const (
	RecoverPolicyInvalid DaemonRecoverPolicy = iota
	RecoverPolicyNone
	RecoverPolicyRestart
	RecoverPolicyFailover
)

func ParseRecoverPolicy

func ParseRecoverPolicy(p string) (DaemonRecoverPolicy, error)

func (DaemonRecoverPolicy) String

func (p DaemonRecoverPolicy) String() string

type DebugConfig

type DebugConfig struct {
	ProfileDuration int64  `toml:"daemon_cpu_profile_duration_secs"`
	PprofAddress    string `toml:"pprof_address"`
}

type Experimental

type Experimental struct {
	EnableStargz         bool        `toml:"enable_stargz"`
	EnableReferrerDetect bool        `toml:"enable_referrer_detect"`
	TarfsConfig          TarfsConfig `toml:"tarfs"`
	EnableBackendSource  bool        `toml:"enable_backend_source"`
}

type GlobalConfig

type GlobalConfig struct {
	SnapshotsDir     string
	DaemonMode       DaemonMode
	SocketRoot       string
	ConfigRoot       string
	RootMountpoint   string
	DaemonThreadsNum int
	CacheGCPeriod    time.Duration
	MirrorsConfig    MirrorsConfig
	// contains filtered or unexported fields
}

Global cached configuration information to help: - access configuration information without passing a configuration object - avoid frequent generation of information from configuration information

type ImageConfig

type ImageConfig struct {
	PublicKeyFile     string `toml:"public_key_file"`
	ValidateSignature bool   `toml:"validate_signature"`
}

Nydus image layers additional process

type LoggingConfig

type LoggingConfig struct {
	LogToStdout         bool   `toml:"log_to_stdout"`
	LogLevel            string `toml:"level"`
	LogDir              string `toml:"dir"`
	RotateLogMaxSize    int    `toml:"log_rotation_max_size"`
	RotateLogMaxBackups int    `toml:"log_rotation_max_backups"`
	RotateLogMaxAge     int    `toml:"log_rotation_max_age"`
	RotateLogLocalTime  bool   `toml:"log_rotation_local_time"`
	RotateLogCompress   bool   `toml:"log_rotation_compress"`
}

type MetricsConfig

type MetricsConfig struct {
	Address string `toml:"address"`
}

type MirrorsConfig

type MirrorsConfig struct {
	Dir string `toml:"dir"`
}

type RemoteConfig

type RemoteConfig struct {
	AuthConfig         AuthConfig    `toml:"auth"`
	ConvertVpcRegistry bool          `toml:"convert_vpc_registry"`
	SkipSSLVerify      bool          `toml:"skip_ssl_verify"`
	MirrorsConfig      MirrorsConfig `toml:"mirrors_config"`
}

Configure remote storage like container registry

type SnapshotConfig

type SnapshotConfig struct {
	EnableNydusOverlayFS bool   `toml:"enable_nydus_overlayfs"`
	NydusOverlayFSPath   string `toml:"nydus_overlayfs_path"`
	EnableKataVolume     bool   `toml:"enable_kata_volume"`
	SyncRemove           bool   `toml:"sync_remove"`
}

Configure containerd snapshots interfaces and how to process the snapshots requests from containerd

type SnapshotterConfig

type SnapshotterConfig struct {
	// Configuration format version
	Version int `toml:"version"`
	// Snapshotter's root work directory
	Root       string `toml:"root"`
	Address    string `toml:"address"`
	DaemonMode string `toml:"daemon_mode"`
	// Clean up all the resources when snapshotter is closed
	CleanupOnClose bool `toml:"cleanup_on_close"`

	SystemControllerConfig SystemControllerConfig `toml:"system"`
	MetricsConfig          MetricsConfig          `toml:"metrics"`
	DaemonConfig           DaemonConfig           `toml:"daemon"`
	SnapshotsConfig        SnapshotConfig         `toml:"snapshot"`
	RemoteConfig           RemoteConfig           `toml:"remote"`
	ImageConfig            ImageConfig            `toml:"image"`
	CacheManagerConfig     CacheManagerConfig     `toml:"cache_manager"`
	LoggingConfig          LoggingConfig          `toml:"log"`
	CgroupConfig           CgroupConfig           `toml:"cgroup"`
	Experimental           Experimental           `toml:"experimental"`
}

func LoadSnapshotterConfig

func LoadSnapshotterConfig(path string) (*SnapshotterConfig, error)

func (*SnapshotterConfig) FillUpWithDefaults

func (c *SnapshotterConfig) FillUpWithDefaults() error

func (*SnapshotterConfig) SetupNydusBinaryPaths

func (c *SnapshotterConfig) SetupNydusBinaryPaths() error

type SystemControllerConfig

type SystemControllerConfig struct {
	Enable      bool        `toml:"enable"`
	Address     string      `toml:"address"`
	DebugConfig DebugConfig `toml:"debug"`
}

type TarfsConfig

type TarfsConfig struct {
	EnableTarfs       bool   `toml:"enable_tarfs"`
	MountTarfsOnHost  bool   `toml:"mount_tarfs_on_host"`
	TarfsHint         bool   `toml:"tarfs_hint"`
	MaxConcurrentProc int    `toml:"max_concurrent_proc"`
	ExportMode        string `toml:"export_mode"`
}

Source Files

config.go default.go global.go

Directories

PathSynopsis
config/daemonconfig
Version
v0.15.1 (latest)
Published
Jan 26, 2025
Platform
linux/amd64
Imports
17 packages
Last checked
1 week ago

Tools for package owners.