package daemonconfig
import "github.com/containerd/nydus-snapshotter/config/daemonconfig"
Index ¶
- Constants
- func DumpConfigFile(c interface{}, path string) error
- func DumpConfigString(c interface{}) (string, error)
- func SupplementDaemonConfig(c DaemonConfig, imageID, snapshotID string, vpcRegistry bool, labels map[string]string, params map[string]string) error
- type BackendConfig
- type BlobPrefetchConfig
- type DaemonConfig
- type DeviceConfig
- type FSPrefetch
- type FscacheDaemonConfig
- func LoadFscacheConfig(p string) (*FscacheDaemonConfig, error)
- func (c *FscacheDaemonConfig) DumpFile(f string) error
- func (c *FscacheDaemonConfig) DumpString() (string, error)
- func (c *FscacheDaemonConfig) FillAuth(kc *auth.PassKeyChain)
- func (c *FscacheDaemonConfig) StorageBackend() (string, *BackendConfig)
- func (c *FscacheDaemonConfig) Supplement(host, repo, snapshotID string, params map[string]string)
- func (c *FscacheDaemonConfig) UpdateMirrors(mirrorsConfigDir, registryHost string) error
- type FuseDaemonConfig
- func LoadFuseConfig(p string) (*FuseDaemonConfig, error)
- func (c *FuseDaemonConfig) DumpFile(f string) error
- func (c *FuseDaemonConfig) DumpString() (string, error)
- func (c *FuseDaemonConfig) FillAuth(kc *auth.PassKeyChain)
- func (c *FuseDaemonConfig) StorageBackend() (string, *BackendConfig)
- func (c *FuseDaemonConfig) Supplement(host, repo, snapshotID string, params map[string]string)
- func (c *FuseDaemonConfig) UpdateMirrors(mirrorsConfigDir, registryHost string) error
- type HostFileConfig
- type MirrorConfig
- type StorageBackendType
Constants ¶
const CacheDir string = "cachedir"
Functions ¶
func DumpConfigFile ¶
For nydusd as FUSE daemon. Serialize Daemon info and persist to a json file We don't have to persist configuration file for fscache since its configuration is passed through HTTP API.
func DumpConfigString ¶
func SupplementDaemonConfig ¶
func SupplementDaemonConfig(c DaemonConfig, imageID, snapshotID string, vpcRegistry bool, labels map[string]string, params map[string]string) error
Achieve a daemon configuration from template or snapshotter's configuration
Types ¶
type BackendConfig ¶
type BackendConfig struct {
// Localfs backend configs
BlobFile string `json:"blob_file,omitempty"`
Dir string `json:"dir,omitempty"`
ReadAhead bool `json:"readahead"`
ReadAheadSec int `json:"readahead_sec,omitempty"`
// Registry backend configs
Host string `json:"host,omitempty"`
Repo string `json:"repo,omitempty"`
Auth string `json:"auth,omitempty" secret:"true"`
RegistryToken string `json:"registry_token,omitempty" secret:"true"`
BlobURLScheme string `json:"blob_url_scheme,omitempty"`
BlobRedirectedHost string `json:"blob_redirected_host,omitempty"`
Mirrors []MirrorConfig `json:"mirrors,omitempty"`
// Shared by oss and s3 backend configs
EndPoint string `json:"endpoint,omitempty"`
AccessKeyID string `json:"access_key_id,omitempty" secret:"true"`
AccessKeySecret string `json:"access_key_secret,omitempty" secret:"true"`
BucketName string `json:"bucket_name,omitempty"`
ObjectPrefix string `json:"object_prefix,omitempty"`
// S3-specific config
Region string `json:"region,omitempty"`
// Shared by registry, oss, and s3
Scheme string `json:"scheme,omitempty"`
SkipVerify bool `json:"skip_verify,omitempty"`
// Below configs are common configs shared by all backends
Proxy struct {
URL string `json:"url,omitempty"`
Fallback bool `json:"fallback"`
PingURL string `json:"ping_url,omitempty"`
CheckInterval int `json:"check_interval,omitempty"`
UseHTTP bool `json:"use_http,omitempty"`
} `json:"proxy,omitempty"`
Timeout int `json:"timeout,omitempty"`
ConnectTimeout int `json:"connect_timeout,omitempty"`
RetryLimit int `json:"retry_limit,omitempty"`
}
type BlobPrefetchConfig ¶
type BlobPrefetchConfig struct {
Enable bool `json:"enable"`
ThreadsCount int `json:"threads_count"`
MergingSize int `json:"merging_size"`
BandwidthRate int `json:"bandwidth_rate"`
PrefetchAll bool `json:"prefetch_all"`
}
type DaemonConfig ¶
type DaemonConfig interface {
// Provide stuffs relevant to accessing registry apart from auth
Supplement(host, repo, snapshotID string, params map[string]string)
// Provide auth
FillAuth(kc *auth.PassKeyChain)
StorageBackend() (StorageBackendType, *BackendConfig)
UpdateMirrors(mirrorsConfigDir, registryHost string) error
DumpString() (string, error)
DumpFile(path string) error
}
func NewDaemonConfig ¶
func NewDaemonConfig(fsDriver, path string) (DaemonConfig, error)
Daemon configurations factory
type DeviceConfig ¶
type DeviceConfig struct {
ID string `json:"id,omitempty"`
Backend struct {
BackendType string `json:"type"`
Config BackendConfig `json:"config"`
} `json:"backend"`
Cache struct {
CacheType string `json:"type"`
Compressed bool `json:"compressed,omitempty"`
Config struct {
WorkDir string `json:"work_dir"`
DisableIndexedMap bool `json:"disable_indexed_map"`
} `json:"config"`
} `json:"cache"`
}
type FSPrefetch ¶
type FSPrefetch struct {
Enable bool `json:"enable"`
PrefetchAll bool `json:"prefetch_all"`
ThreadsCount int `json:"threads_count,omitempty"`
MergingSize int `json:"merging_size,omitempty"`
BandwidthRate int `json:"bandwidth_rate,omitempty"`
}
Control how to perform prefetch from file system layer
type FscacheDaemonConfig ¶
type FscacheDaemonConfig struct {
// These fields is only for fscache daemon.
Type string `json:"type"`
// Snapshotter fills
ID string `json:"id"`
DomainID string `json:"domain_id"`
Config *struct {
ID string `json:"id"`
BackendType string `json:"backend_type"`
BackendConfig BackendConfig `json:"backend_config"`
CacheType string `json:"cache_type"`
// Snapshotter fills
CacheConfig struct {
WorkDir string `json:"work_dir"`
} `json:"cache_config"`
BlobPrefetchConfig BlobPrefetchConfig `json:"prefetch_config"`
MetadataPath string `json:"metadata_path"`
} `json:"config"`
}
func LoadFscacheConfig ¶
func LoadFscacheConfig(p string) (*FscacheDaemonConfig, error)
Load Fscache configuration template file
func (*FscacheDaemonConfig) DumpFile ¶
func (c *FscacheDaemonConfig) DumpFile(f string) error
func (*FscacheDaemonConfig) DumpString ¶
func (c *FscacheDaemonConfig) DumpString() (string, error)
func (*FscacheDaemonConfig) FillAuth ¶
func (c *FscacheDaemonConfig) FillAuth(kc *auth.PassKeyChain)
func (*FscacheDaemonConfig) StorageBackend ¶
func (c *FscacheDaemonConfig) StorageBackend() (string, *BackendConfig)
func (*FscacheDaemonConfig) Supplement ¶
func (c *FscacheDaemonConfig) Supplement(host, repo, snapshotID string, params map[string]string)
Each fscache/erofs has a configuration with different fscache ID built from snapshot ID.
func (*FscacheDaemonConfig) UpdateMirrors ¶
func (c *FscacheDaemonConfig) UpdateMirrors(mirrorsConfigDir, registryHost string) error
type FuseDaemonConfig ¶
type FuseDaemonConfig struct {
Device *DeviceConfig `json:"device"`
Mode string `json:"mode"`
DigestValidate bool `json:"digest_validate"`
IOStatsFiles bool `json:"iostats_files,omitempty"`
EnableXattr bool `json:"enable_xattr,omitempty"`
AccessPattern bool `json:"access_pattern,omitempty"`
LatestReadFiles bool `json:"latest_read_files,omitempty"`
AmplifyIo *int `json:"amplify_io,omitempty"`
FSPrefetch `json:"fs_prefetch,omitempty"`
// (experimental) The nydus daemon could cache more data to increase hit ratio when enabled the warmup feature.
Warmup uint64 `json:"warmup,omitempty"`
}
Used when nydusd works as a FUSE daemon or vhost-user-fs backend
func LoadFuseConfig ¶
func LoadFuseConfig(p string) (*FuseDaemonConfig, error)
Load fuse daemon configuration from template file
func (*FuseDaemonConfig) DumpFile ¶
func (c *FuseDaemonConfig) DumpFile(f string) error
func (*FuseDaemonConfig) DumpString ¶
func (c *FuseDaemonConfig) DumpString() (string, error)
func (*FuseDaemonConfig) FillAuth ¶
func (c *FuseDaemonConfig) FillAuth(kc *auth.PassKeyChain)
func (*FuseDaemonConfig) StorageBackend ¶
func (c *FuseDaemonConfig) StorageBackend() (string, *BackendConfig)
func (*FuseDaemonConfig) Supplement ¶
func (c *FuseDaemonConfig) Supplement(host, repo, snapshotID string, params map[string]string)
func (*FuseDaemonConfig) UpdateMirrors ¶
func (c *FuseDaemonConfig) UpdateMirrors(mirrorsConfigDir, registryHost string) error
type HostFileConfig ¶
type HostFileConfig struct {
Capabilities []string `toml:"capabilities"`
CACert interface{} `toml:"ca"`
Client interface{} `toml:"client"`
SkipVerify *bool `toml:"skip_verify"`
Header map[string]interface{} `toml:"header"`
OverridePath bool `toml:"override_path"`
// The following configuration items are specific to nydus.
HealthCheckInterval int `toml:"health_check_interval,omitempty"`
FailureLimit uint8 `toml:"failure_limit,omitempty"`
PingURL string `toml:"ping_url,omitempty"`
}
Copied from containerd, for compatibility with containerd's toml configuration file.
type MirrorConfig ¶
type MirrorConfig struct {
Host string `json:"host,omitempty"`
Headers map[string]string `json:"headers,omitempty"`
HealthCheckInterval int `json:"health_check_interval,omitempty"`
FailureLimit uint8 `json:"failure_limit,omitempty"`
PingURL string `json:"ping_url,omitempty"`
}
func LoadMirrorsConfig ¶
func LoadMirrorsConfig(mirrorsConfigDir, registryHost string) ([]MirrorConfig, error)
type StorageBackendType ¶
type StorageBackendType = string
Source Files ¶
daemonconfig.go fscache.go fuse.go mirrors.go
- Version
- v0.15.15 (latest)
- Published
- Apr 17, 2026
- Platform
- linux/amd64
- Imports
- 17 packages
- Last checked
- 1 hour ago –
Tools for package owners.