Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsNodeMatch ¶ added in v1.1.4
IsNodeMatch There are a couple of things that need to be checked to see if the driver node matched the k8s node since different k8s installs set the node name, hostname and IPs differently
Types ¶
type Driver ¶
type Driver interface {
// Init initializes the volume driver.
Init(interface{}) error
// String returns the string name of this driver.
String() string
// InspectVolume returns information about a volume.
InspectVolume(volumeID string) (*Info, error)
// GetNodes Get the list of nodes where the driver is available
GetNodes() ([]*NodeInfo, error)
// GetPodVolumes Get all the volumes used by a pod backed by the driver
GetPodVolumes(*v1.PodSpec, string) ([]*Info, error)
// GetVolumeClaimTemplates Get all the volume templates from the list backed by
// the driver
GetVolumeClaimTemplates([]v1.PersistentVolumeClaim) ([]v1.PersistentVolumeClaim, error)
// GetSnapshotPlugin Get the snapshot plugin to be used for the driver
GetSnapshotPlugin() snapshotVolume.Plugin
// Stop the driver
Stop() error
}
Driver defines an external volume driver interface. Any driver that wants to be used with stork needs to implement these interfaces.
type ErrPVCPending ¶
type ErrPVCPending struct {
// Name of the PVC
Name string
}
ErrPVCPending PVC hasn't been bound yet
func (*ErrPVCPending) Error ¶
func (e *ErrPVCPending) Error() string
type Info ¶
type Info struct {
// VolumeID is a unique identifier for the volume
VolumeID string
// VolumeName is the name for the volume
VolumeName string
// DataNodes is a list of nodes where the data for the volume resides
DataNodes []string
// Size is the size of the volume in GB
Size uint64
// ParentID points to the ID of the parent volume for snapshots
ParentID string
// Labels are user applied labels on the volume
Labels map[string]string
// VolumeSourceRef is a optional reference to the source of the volume
VolumeSourceRef interface{}
}
Info Information about a volume
type NodeInfo ¶
type NodeInfo struct {
// ID is a unique identifier for the node
ID string
// Hostname of the node. Should be in lower case because Kubernetes
// converts it to lower case
Hostname string
// IPs List of IPs associated with the node
IPs []string
// Rack Specifies the rack within the datacenter where the node is located
Rack string
// Zone Specifies the zone where the rack is located
Zone string
// Region Specifies the region where the datacenter is located
Region string
// Status of the node
Status NodeStatus
}
NodeInfo Information about a node
type NodeStatus ¶
type NodeStatus string
NodeStatus Status of driver on a node
const ( // NodeOnline Node is online NodeOnline NodeStatus = "Online" // NodeOffline Node is Offline NodeOffline NodeStatus = "Offline" // NodeDegraded Node is in degraded state NodeDegraded NodeStatus = "Degraded" )
Click to show internal directories.
Click to hide internal directories.