filter

package
v1.8.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Mar 11, 2026 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
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 DiskFilter interface {
	// Match returns true if passing disk matches with the value
	Match(disk *block.Disk) bool
	// Details returns a human-readable string describing the filter criteria
	Details() string
}

type Filter

type Filter struct {
	Name       string
	DiskFilter DiskFilter
	PartFilter PartFilter
}

func RegisterDevicePathFilter added in v0.3.0

func RegisterDevicePathFilter(filters ...string) *Filter

func RegisterDriveTypeFilter added in v0.4.0

func RegisterDriveTypeFilter() *Filter

func RegisterLabelFilter added in v0.2.0

func RegisterLabelFilter(filters ...string) *Filter

func RegisterPartTypeFilter added in v0.3.1

func RegisterPartTypeFilter(filters ...string) *Filter

func RegisterPathFilter

func RegisterPathFilter(filters ...string) *Filter

func RegisterVendorFilter

func RegisterVendorFilter(filters ...string) *Filter

func SetAutoProvisionFilters added in v0.3.0

func SetAutoProvisionFilters(devPathString string) []*Filter

func SetExcludeFilters added in v0.3.0

func SetExcludeFilters(deviceString, vendorString, pathString, labelString string) []*Filter

func (*Filter) ApplyDiskFilter added in v0.2.0

func (f *Filter) ApplyDiskFilter(disk *block.Disk) bool

func (*Filter) ApplyPartFilter added in v0.2.0

func (f *Filter) ApplyPartFilter(part *block.Partition) bool

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

type PartFilter added in v0.2.0

type PartFilter interface {
	// Match returns true if passing partition matches with the value
	Match(part *block.Partition) bool
	// Details returns a human-readable string describing the filter criteria
	Details() string
}

Jump to

Keyboard shortcuts

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