Documentation
¶
Index ¶
Constants ¶
View Source
const (
MachineFinalizer = "machine"
)
Variables ¶
View Source
var ( ErrAttachedVolumeNotFound = errors.New("volume not found") ErrAttachedVolumeAlreadyExists = errors.New("volume already exists") )
View Source
var (
ErrMountedVolumeNotFound = errors.New("mounted volume not found")
)
Functions ¶
func GetUniqueVolumeName ¶
Types ¶
type AttachVolume ¶
type AttachVolume struct {
Name string
Device string
Spec providervolume.Volume
}
type DomainExecutor ¶
type DomainExecutor interface {
AttachDisk(disk *libvirtxml.DomainDisk) error
DetachDisk(disk *libvirtxml.DomainDisk) error
ResizeDisk(device string, size int64) error
ApplySecret(secret *libvirtxml.Secret, data []byte) error
DeleteSecret(secretUUID string) error
}
func NewCreateDomainExecutor ¶
func NewCreateDomainExecutor(lv *libvirt.Libvirt) DomainExecutor
func NewRunningDomainExecutor ¶
func NewRunningDomainExecutor(lv *libvirt.Libvirt, machineID string) DomainExecutor
type MachineReconciler ¶
type MachineReconciler struct {
machineEvent.EventRecorder
// contains filtered or unexported fields
}
func NewMachineReconciler ¶
func NewMachineReconciler( log logr.Logger, libvirt *libvirt.Libvirt, machines store.Store[*api.Machine], machineEvents event.Source[*api.Machine], eventRecorder machineEvent.EventRecorder, opts MachineReconcilerOptions, ) (*MachineReconciler, error)
type MachineReconcilerOptions ¶
type MachineReconcilerOptions struct {
GuestCapabilities guest.Capabilities
TCMallocLibPath string
ImageCache providerimage.Cache
Raw raw.Raw
Host providerhost.Host
VolumePluginManager *providervolume.PluginManager
NetworkInterfacePlugin providernetworkinterface.Plugin
VolumeEvents event.Source[*api.Machine]
ResyncIntervalVolumeSize time.Duration
ResyncIntervalGarbageCollector time.Duration
EnableHugepages bool
GCVMGracefulShutdownTimeout time.Duration
VolumeCachePolicy string
}
type MountVolume ¶
type MountVolume = providerhost.MachineVolume
type VolumeAttacher ¶
type VolumeAttacher interface {
ListVolumes() ([]AttachVolume, error)
ForEachVolume(f func(*AttachVolume) bool) error
GetVolume(name string) (*AttachVolume, error)
AttachVolume(volume *AttachVolume) error
DetachVolume(name string) error
ResizeVolume(volume *AttachVolume) error
}
func NewLibvirtVolumeAttacher ¶
func NewLibvirtVolumeAttacher(domainDesc *libvirtxml.Domain, executor DomainExecutor, policy string) (VolumeAttacher, error)
type VolumeMounter ¶
type VolumeMounter interface {
PluginManager() *providervolume.PluginManager
ForEachVolume(f func(*MountVolume) bool) error
ListVolumes() ([]MountVolume, error)
GetVolume(computeVolumeName string) (*MountVolume, error)
ApplyVolume(ctx context.Context, spec *api.VolumeSpec, onDelete func(*MountVolume) error) (string, *providervolume.Volume, error)
DeleteVolume(ctx context.Context, computeVolumeName string) error
}
Click to show internal directories.
Click to hide internal directories.