Documentation ¶
Index ¶
- Constants
- Variables
- func GetgovmomiClient(cfg *VSphereConfig) (*govmomi.Client, error)
- type Instances
- func (i *Instances) AddSSHKeyToAllInstances(user string, keyData []byte) error
- func (i *Instances) CurrentNodeName(hostname string) (k8stypes.NodeName, error)
- func (i *Instances) ExternalID(nodeName k8stypes.NodeName) (string, error)
- func (i *Instances) InstanceID(nodeName k8stypes.NodeName) (string, error)
- func (i *Instances) InstanceType(name k8stypes.NodeName) (string, error)
- func (i *Instances) InstanceTypeByProviderID(providerID string) (string, error)
- func (i *Instances) NodeAddresses(nodeName k8stypes.NodeName) ([]v1.NodeAddress, error)
- func (i *Instances) NodeAddressesByProviderID(providerID string) ([]v1.NodeAddress, error)
- type VSphere
- func (vs *VSphere) AttachDisk(vmDiskPath string, nodeName k8stypes.NodeName) (diskID string, diskUUID string, err error)
- func (vs *VSphere) Clusters() (cloudprovider.Clusters, bool)
- func (vs *VSphere) CreateVolume(volumeOptions *VolumeOptions) (volumePath string, err error)
- func (vs *VSphere) DeleteVolume(vmDiskPath string) error
- func (vs *VSphere) DetachDisk(volPath string, nodeName k8stypes.NodeName) error
- func (vs *VSphere) DiskIsAttached(volPath string, nodeName k8stypes.NodeName) (bool, error)
- func (vs *VSphere) DisksAreAttached(volPaths []string, nodeName k8stypes.NodeName) (map[string]bool, error)
- func (vs *VSphere) Instances() (cloudprovider.Instances, bool)
- func (vs *VSphere) LoadBalancer() (cloudprovider.LoadBalancer, bool)
- func (vs *VSphere) NodeExists(c *govmomi.Client, nodeName k8stypes.NodeName) (bool, error)
- func (vs *VSphere) ProviderName() string
- func (vs *VSphere) Routes() (cloudprovider.Routes, bool)
- func (vs *VSphere) ScrubDNS(nameservers, searches []string) (nsOut, srchOut []string)
- func (vs *VSphere) Zones() (cloudprovider.Zones, bool)
- type VSphereConfig
- type VolumeOptions
- type Volumes
Constants ¶
const ( ProviderName = "vsphere" ActivePowerState = "poweredOn" SCSIControllerType = "scsi" LSILogicControllerType = "lsiLogic" BusLogicControllerType = "busLogic" PVSCSIControllerType = "pvscsi" LSILogicSASControllerType = "lsiLogic-sas" SCSIControllerLimit = 4 SCSIControllerDeviceLimit = 15 SCSIDeviceSlots = 16 SCSIReservedSlot = 7 ThinDiskType = "thin" PreallocatedDiskType = "preallocated" EagerZeroedThickDiskType = "eagerZeroedThick" ZeroedThickDiskType = "zeroedThick" VolDir = "kubevols" RoundTripperDefaultCount = 3 DummyVMName = "kubernetes-helper-vm" VSANDatastoreType = "vsan" )
Variables ¶
var DiskformatValidOptions = generateDiskFormatValidOptions()
var ErrFileAlreadyExist = errors.New("File requested already exist")
var ErrNoDevicesFound = errors.New("No devices found")
var ErrNoDiskIDFound = errors.New("No vSphere disk ID found")
var ErrNoDiskUUIDFound = errors.New("No disk UUID found")
var ErrNonSupportedControllerType = errors.New("Disk is attached to non-supported controller type")
Functions ¶
func GetgovmomiClient ¶ added in v1.6.0
func GetgovmomiClient(cfg *VSphereConfig) (*govmomi.Client, error)
Types ¶
type Instances ¶
type Instances struct {
// contains filtered or unexported fields
}
func (*Instances) AddSSHKeyToAllInstances ¶
func (*Instances) CurrentNodeName ¶
func (*Instances) ExternalID ¶
ExternalID returns the cloud provider ID of the node with the specified Name (deprecated).
func (*Instances) InstanceID ¶
InstanceID returns the cloud provider ID of the node with the specified Name.
func (*Instances) InstanceType ¶
func (*Instances) InstanceTypeByProviderID ¶
InstanceTypeByProviderID returns the cloudprovider instance type of the node with the specified unique providerID This method will not be called from the node that is requesting this ID. i.e. metadata service and other local methods cannot be used here
func (*Instances) NodeAddresses ¶
NodeAddresses is an implementation of Instances.NodeAddresses.
func (*Instances) NodeAddressesByProviderID ¶
func (i *Instances) NodeAddressesByProviderID(providerID string) ([]v1.NodeAddress, error)
NodeAddressesByProviderID returns the node addresses of an instances with the specified unique providerID This method will not be called from the node that is requesting this ID. i.e. metadata service and other local methods cannot be used here
type VSphere ¶
type VSphere struct {
// contains filtered or unexported fields
}
VSphere is an implementation of cloud provider Interface for VSphere.
func GetVSphere ¶ added in v1.6.0
Reads vSphere configuration from system environment and construct vSphere object
func (*VSphere) AttachDisk ¶
func (vs *VSphere) AttachDisk(vmDiskPath string, nodeName k8stypes.NodeName) (diskID string, diskUUID string, err error)
Attaches given virtual disk volume to the compute running kubelet.
func (*VSphere) CreateVolume ¶
func (vs *VSphere) CreateVolume(volumeOptions *VolumeOptions) (volumePath string, err error)
CreateVolume creates a volume of given size (in KiB).
func (*VSphere) DeleteVolume ¶
DeleteVolume deletes a volume given volume name. Also, deletes the folder where the volume resides.
func (*VSphere) DetachDisk ¶
DetachDisk detaches given virtual disk volume from the compute running kubelet.
func (*VSphere) DiskIsAttached ¶ added in v1.3.7
DiskIsAttached returns if disk is attached to the VM using controllers supported by the plugin.
func (*VSphere) DisksAreAttached ¶ added in v1.4.6
func (vs *VSphere) DisksAreAttached(volPaths []string, nodeName k8stypes.NodeName) (map[string]bool, error)
DisksAreAttached returns if disks are attached to the VM using controllers supported by the plugin.
func (*VSphere) Instances ¶
func (vs *VSphere) Instances() (cloudprovider.Instances, bool)
Instances returns an implementation of Instances for vSphere.
func (*VSphere) LoadBalancer ¶
func (vs *VSphere) LoadBalancer() (cloudprovider.LoadBalancer, bool)
LoadBalancer returns an implementation of LoadBalancer for vSphere.
func (*VSphere) NodeExists ¶ added in v1.3.7
NodeExists checks if the node with given nodeName exist. Returns false if VM doesn't exist or VM is in powerOff state.
func (*VSphere) ProviderName ¶
ProviderName returns the cloud provider ID.
func (*VSphere) Routes ¶
func (vs *VSphere) Routes() (cloudprovider.Routes, bool)
Routes returns a false since the interface is not supported for vSphere.
type VSphereConfig ¶
type VSphereConfig struct { Global struct { // vCenter username. User string `gcfg:"user"` // vCenter password in clear text. Password string `gcfg:"password"` // vCenter IP. VCenterIP string `gcfg:"server"` // vCenter port. VCenterPort string `gcfg:"port"` // True if vCenter uses self-signed cert. InsecureFlag bool `gcfg:"insecure-flag"` // Datacenter in which VMs are located. Datacenter string `gcfg:"datacenter"` // Datastore in which vmdks are stored. Datastore string `gcfg:"datastore"` // WorkingDir is path where VMs can be found. WorkingDir string `gcfg:"working-dir"` // Soap round tripper count (retries = RoundTripper - 1) RoundTripperCount uint `gcfg:"soap-roundtrip-count"` // VMUUID is the VM Instance UUID of virtual machine which can be retrieved from instanceUuid // property in VmConfigInfo, or also set as vc.uuid in VMX file. // If not set, will be fetched from the machine via sysfs (requires root) VMUUID string `gcfg:"vm-uuid"` } Network struct { // PublicNetwork is name of the network the VMs are joined to. PublicNetwork string `gcfg:"public-network"` } Disk struct { // SCSIControllerType defines SCSI controller to be used. SCSIControllerType string `dcfg:"scsicontrollertype"` } }
type VolumeOptions ¶ added in v1.5.0
type VolumeOptions struct { CapacityKB int Tags map[string]string Name string DiskFormat string Datastore string StorageProfileData string }
VolumeOptions specifies capacity, tags, name and diskFormat for a volume.
type Volumes ¶ added in v1.3.7
type Volumes interface { // AttachDisk attaches given disk to given node. Current node // is used when nodeName is empty string. AttachDisk(vmDiskPath string, nodeName k8stypes.NodeName) (diskID string, diskUUID string, err error) // DetachDisk detaches given disk to given node. Current node // is used when nodeName is empty string. // Assumption: If node doesn't exist, disk is already detached from node. DetachDisk(volPath string, nodeName k8stypes.NodeName) error // DiskIsAttached checks if a disk is attached to the given node. // Assumption: If node doesn't exist, disk is not attached to the node. DiskIsAttached(volPath string, nodeName k8stypes.NodeName) (bool, error) // DisksAreAttached checks if a list disks are attached to the given node. // Assumption: If node doesn't exist, disks are not attached to the node. DisksAreAttached(volPath []string, nodeName k8stypes.NodeName) (map[string]bool, error) // CreateVolume creates a new vmdk with specified parameters. CreateVolume(volumeOptions *VolumeOptions) (volumePath string, err error) // DeleteVolume deletes vmdk. DeleteVolume(vmDiskPath string) error }