Documentation
¶
Index ¶
- Constants
- type AutoProvisionConfig
- type ConfigMapLoader
- func (c *ConfigMapLoader) GetEnvAutoProvisionFilter() string
- func (c *ConfigMapLoader) GetEnvFilters() (deviceFilter, vendorFilter, pathFilter, labelFilter string)
- func (c *ConfigMapLoader) LoadAutoProvisionFromConfigMap(ctx context.Context) (devPaths string, err error)
- func (c *ConfigMapLoader) LoadFiltersFromConfigMap(ctx context.Context) (deviceFilter, vendorFilter, pathFilter, labelFilter string, err error)
- func (c *ConfigMapLoader) ParseAutoProvisionConfigs(yamlContent string) ([]AutoProvisionConfig, error)
- func (c *ConfigMapLoader) ParseFilterConfigs(yamlContent string) ([]FilterConfig, error)
- type DiskFilter
- type Filter
- func RegisterDevicePathFilter(filters ...string) *Filter
- func RegisterDriveTypeFilter() *Filter
- func RegisterLabelFilter(filters ...string) *Filter
- func RegisterPartTypeFilter(filters ...string) *Filter
- func RegisterPathFilter(filters ...string) *Filter
- func RegisterVendorFilter(filters ...string) *Filter
- func SetAutoProvisionFilters(devPathString string) []*Filter
- func SetExcludeFilters(deviceString, vendorString, pathString, labelString string) []*Filter
- type FilterConfig
- type PartFilter
Constants ¶
const ( DefaultConfigMapName = "harvester-node-disk-manager" DefaultConfigMapNamespace = "harvester-system" FiltersConfigKey = "filters.yaml" AutoProvisionConfigKey = "autoprovision.yaml" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AutoProvisionConfig ¶
type AutoProvisionConfig struct {
Hostname string `yaml:"hostname"`
Devices []string `yaml:"devices,omitempty"`
// We haven't support auto provision for longhorn v2 and LVM yet.
// But, we keep the provisioner and params fields for future extension.
Provisioner string `yaml:"provisioner,omitempty"`
Params map[string]string `yaml:"params,omitempty"`
}
AutoProvisionConfig represents a single auto-provision configuration block
type ConfigMapLoader ¶
type ConfigMapLoader struct {
// contains filtered or unexported fields
}
ConfigMapLoader loads filter configurations from ConfigMap
func NewConfigMapLoader ¶
func NewConfigMapLoader(configMapClient k8scorev1.ConfigMapClient, nodeName string, envVendorFilter, envPathFilter, envLabelFilter, envAutoProvisionFilter string) *ConfigMapLoader
NewConfigMapLoader creates a new ConfigMapLoader
func (*ConfigMapLoader) GetEnvAutoProvisionFilter ¶
func (c *ConfigMapLoader) GetEnvAutoProvisionFilter() string
GetEnvAutoProvisionFilter returns the fallback environment variable value for auto-provision filter
func (*ConfigMapLoader) GetEnvFilters ¶
func (c *ConfigMapLoader) GetEnvFilters() (deviceFilter, vendorFilter, pathFilter, labelFilter string)
GetEnvFilters returns the fallback environment variable values for filters deviceFilter is always empty as it's a new feature only available via ConfigMap
func (*ConfigMapLoader) LoadAutoProvisionFromConfigMap ¶
func (c *ConfigMapLoader) LoadAutoProvisionFromConfigMap(ctx context.Context) (devPaths string, err error)
LoadAutoProvisionFromConfigMap loads auto-provision configurations from ConfigMap Returns the merged device paths string for the current node, or empty string if ConfigMap doesn't exist
func (*ConfigMapLoader) LoadFiltersFromConfigMap ¶
func (c *ConfigMapLoader) LoadFiltersFromConfigMap(ctx context.Context) (deviceFilter, vendorFilter, pathFilter, labelFilter string, err error)
LoadFiltersFromConfigMap loads filter configurations from ConfigMap Returns the merged filter strings for the current node, or empty strings if ConfigMap doesn't exist
func (*ConfigMapLoader) ParseAutoProvisionConfigs ¶
func (c *ConfigMapLoader) ParseAutoProvisionConfigs(yamlContent string) ([]AutoProvisionConfig, error)
ParseAutoProvisionConfigs parses the auto-provision YAML content If provisioner is empty, defaults to provisioner.TypeLonghornV1
func (*ConfigMapLoader) ParseFilterConfigs ¶
func (c *ConfigMapLoader) ParseFilterConfigs(yamlContent string) ([]FilterConfig, error)
ParseFilterConfigs parses the filters YAML content
type DiskFilter ¶ added in v0.2.0
type Filter ¶
type Filter struct {
Name string
DiskFilter DiskFilter
PartFilter PartFilter
}
func RegisterDevicePathFilter ¶ added in v0.3.0
func RegisterDriveTypeFilter ¶ added in v0.4.0
func RegisterDriveTypeFilter() *Filter
func RegisterLabelFilter ¶ added in v0.2.0
func RegisterPartTypeFilter ¶ added in v0.3.1
func RegisterPathFilter ¶
func RegisterVendorFilter ¶
func SetAutoProvisionFilters ¶ added in v0.3.0
func SetExcludeFilters ¶ added in v0.3.0
func (*Filter) ApplyDiskFilter ¶ added in v0.2.0
type FilterConfig ¶
type FilterConfig struct {
Hostname string `yaml:"hostname"`
ExcludeDevices []string `yaml:"excludeDevices,omitempty"`
ExcludeLabels []string `yaml:"excludeLabels,omitempty"`
ExcludeVendors []string `yaml:"excludeVendors,omitempty"`
ExcludePaths []string `yaml:"excludePaths,omitempty"`
}
FilterConfig represents a single filter configuration block