Documentation ¶
Index ¶
- func GetApplicationBackupLabels(backup *storkapi.ApplicationBackup, pvc *v1.PersistentVolumeClaim) map[string]string
- func GetApplicationRestoreLabels(restore *storkapi.ApplicationRestore, ...) map[string]string
- func GetDefaultDriverName() string
- func GetPVCDriver(coreOps core.Ops, pvc *v1.PersistentVolumeClaim) (string, error)
- func GetPVDriver(pv *v1.PersistentVolume) (string, error)
- func GetSnapshotType(snap *snapv1.VolumeSnapshot) string
- func IsNodeMatch(k8sNode *v1.Node, driverNode *NodeInfo) bool
- func Register(name string, d Driver) error
- type BackupRestoreNotSupported
- func (b *BackupRestoreNotSupported) CancelBackup(*storkapi.ApplicationBackup) error
- func (b *BackupRestoreNotSupported) CancelRestore(*storkapi.ApplicationRestore) error
- func (b *BackupRestoreNotSupported) DeleteBackup(*storkapi.ApplicationBackup) error
- func (b *BackupRestoreNotSupported) GetBackupStatus(*storkapi.ApplicationBackup) ([]*storkapi.ApplicationBackupVolumeInfo, error)
- func (b *BackupRestoreNotSupported) GetPreRestoreResources(*storkapi.ApplicationBackup, []runtime.Unstructured) ([]runtime.Unstructured, error)
- func (b *BackupRestoreNotSupported) GetRestoreStatus(*storkapi.ApplicationRestore) ([]*storkapi.ApplicationRestoreVolumeInfo, error)
- func (b *BackupRestoreNotSupported) StartBackup(*storkapi.ApplicationBackup, []v1.PersistentVolumeClaim) ([]*storkapi.ApplicationBackupVolumeInfo, error)
- func (b *BackupRestoreNotSupported) StartRestore(*storkapi.ApplicationRestore, []*storkapi.ApplicationBackupVolumeInfo) ([]*storkapi.ApplicationRestoreVolumeInfo, error)
- type BackupRestorePluginInterface
- type CloneNotSupported
- type ClonePluginInterface
- type ClusterDomainsNotSupported
- type ClusterDomainsPluginInterface
- type ClusterPairNotSupported
- type ClusterPairPluginInterface
- type Driver
- type ErrPVCPending
- type GroupSnapshotCreateResponse
- type GroupSnapshotNotSupported
- func (g *GroupSnapshotNotSupported) CreateGroupSnapshot(*storkapi.GroupVolumeSnapshot) (*GroupSnapshotCreateResponse, error)
- func (g *GroupSnapshotNotSupported) DeleteGroupSnapshot(*storkapi.GroupVolumeSnapshot) error
- func (g *GroupSnapshotNotSupported) GetGroupSnapshotStatus(*storkapi.GroupVolumeSnapshot) (*GroupSnapshotCreateResponse, error)
- type GroupSnapshotPluginInterface
- type Info
- type MigratePluginInterface
- type MigrationNotSupported
- func (m *MigrationNotSupported) CancelMigration(*storkapi.Migration) error
- func (m *MigrationNotSupported) GetMigrationStatus(*storkapi.Migration) ([]*storkapi.MigrationVolumeInfo, error)
- func (m *MigrationNotSupported) StartMigration(*storkapi.Migration) ([]*storkapi.MigrationVolumeInfo, error)
- func (m *MigrationNotSupported) UpdateMigratedPersistentVolumeSpec(*v1.PersistentVolume) (*v1.PersistentVolume, error)
- type NodeInfo
- type NodeStatus
- type SnapshotRestoreNotSupported
- func (s *SnapshotRestoreNotSupported) CleanupSnapshotRestoreObjects(*storkapi.VolumeSnapshotRestore) error
- func (s *SnapshotRestoreNotSupported) CompleteVolumeSnapshotRestore(snap *storkapi.VolumeSnapshotRestore) error
- func (s *SnapshotRestoreNotSupported) GetVolumeSnapshotRestoreStatus(*storkapi.VolumeSnapshotRestore) error
- func (s *SnapshotRestoreNotSupported) StartVolumeSnapshotRestore(*storkapi.VolumeSnapshotRestore) error
- type SnapshotRestorePluginInterface
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetApplicationBackupLabels ¶ added in v1.4.0
func GetApplicationBackupLabels( backup *storkapi.ApplicationBackup, pvc *v1.PersistentVolumeClaim, ) map[string]string
GetApplicationBackupLabels Gets the labels that need to be applied to a snapshot when creating a backup
func GetApplicationRestoreLabels ¶ added in v1.4.0
func GetApplicationRestoreLabels( restore *storkapi.ApplicationRestore, volumeInfo *storkapi.ApplicationRestoreVolumeInfo, ) map[string]string
GetApplicationRestoreLabels Gets the labels that need to be applied to a volume when restoring from a backup
func GetDefaultDriverName ¶ added in v1.4.0
func GetDefaultDriverName() string
GetDefaultDriverName returns the default driver name in case on isn't set
func GetPVCDriver ¶ added in v1.4.0
GetPVCDriver gets the driver associated with a PVC. Returns ErrNotFound if the PVC is not owned by any available driver
func GetPVDriver ¶ added in v1.4.0
func GetPVDriver(pv *v1.PersistentVolume) (string, error)
GetPVDriver gets the driver associated with a PV. Returns ErrNotFound if the PV is not owned by any available driver
func GetSnapshotType ¶ added in v1.4.0
func GetSnapshotType(snap *snapv1.VolumeSnapshot) string
GetSnapshotType gets the snapshot type
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 BackupRestoreNotSupported ¶ added in v1.4.0
type BackupRestoreNotSupported struct{}
BackupRestoreNotSupported to be used by drivers that don't support backup
func (*BackupRestoreNotSupported) CancelBackup ¶ added in v1.4.0
func (b *BackupRestoreNotSupported) CancelBackup(*storkapi.ApplicationBackup) error
CancelBackup returns ErrNotSupported
func (*BackupRestoreNotSupported) CancelRestore ¶ added in v1.4.0
func (b *BackupRestoreNotSupported) CancelRestore(*storkapi.ApplicationRestore) error
CancelRestore returns ErrNotSupported
func (*BackupRestoreNotSupported) DeleteBackup ¶ added in v1.4.0
func (b *BackupRestoreNotSupported) DeleteBackup(*storkapi.ApplicationBackup) error
DeleteBackup returns ErrNotSupported
func (*BackupRestoreNotSupported) GetBackupStatus ¶ added in v1.4.0
func (b *BackupRestoreNotSupported) GetBackupStatus(*storkapi.ApplicationBackup) ([]*storkapi.ApplicationBackupVolumeInfo, error)
GetBackupStatus returns ErrNotSupported
func (*BackupRestoreNotSupported) GetPreRestoreResources ¶ added in v1.4.0
func (b *BackupRestoreNotSupported) GetPreRestoreResources( *storkapi.ApplicationBackup, []runtime.Unstructured, ) ([]runtime.Unstructured, error)
GetPreRestoreResources returns ErrNotSupported
func (*BackupRestoreNotSupported) GetRestoreStatus ¶ added in v1.4.0
func (b *BackupRestoreNotSupported) GetRestoreStatus(*storkapi.ApplicationRestore) ([]*storkapi.ApplicationRestoreVolumeInfo, error)
GetRestoreStatus returns ErrNotSupported
func (*BackupRestoreNotSupported) StartBackup ¶ added in v1.4.0
func (b *BackupRestoreNotSupported) StartBackup( *storkapi.ApplicationBackup, []v1.PersistentVolumeClaim, ) ([]*storkapi.ApplicationBackupVolumeInfo, error)
StartBackup returns ErrNotSupported
func (*BackupRestoreNotSupported) StartRestore ¶ added in v1.4.0
func (b *BackupRestoreNotSupported) StartRestore( *storkapi.ApplicationRestore, []*storkapi.ApplicationBackupVolumeInfo, ) ([]*storkapi.ApplicationRestoreVolumeInfo, error)
StartRestore returns ErrNotSupported
type BackupRestorePluginInterface ¶ added in v1.4.0
type BackupRestorePluginInterface interface { // Start backup of volumes specified by the spec. Should only backup // volumes, not the specs associated with them StartBackup(*storkapi.ApplicationBackup, []v1.PersistentVolumeClaim) ([]*storkapi.ApplicationBackupVolumeInfo, error) // Get the status of backup of the volumes specified in the status // for the backup spec GetBackupStatus(*storkapi.ApplicationBackup) ([]*storkapi.ApplicationBackupVolumeInfo, error) // Cancel the backup of volumes specified in the status CancelBackup(*storkapi.ApplicationBackup) error // Delete the backups specified in the status DeleteBackup(*storkapi.ApplicationBackup) error // Get any resources that should be created before the restore is started GetPreRestoreResources(*storkapi.ApplicationBackup, []runtime.Unstructured) ([]runtime.Unstructured, error) // Start restore of volumes specified by the spec. Should only restore // volumes, not the specs associated with them StartRestore(*storkapi.ApplicationRestore, []*storkapi.ApplicationBackupVolumeInfo) ([]*storkapi.ApplicationRestoreVolumeInfo, error) // Get the status of restore of the volumes specified in the status // for the restore spec GetRestoreStatus(*storkapi.ApplicationRestore) ([]*storkapi.ApplicationRestoreVolumeInfo, error) // Cancel the restore of volumes specified in the status CancelRestore(*storkapi.ApplicationRestore) error }
BackupRestorePluginInterface Interface to backup and restore volumes
type CloneNotSupported ¶ added in v1.4.0
type CloneNotSupported struct{}
CloneNotSupported to be used by drivers that don't support volume clone
func (*CloneNotSupported) CreateVolumeClones ¶ added in v1.4.0
func (c *CloneNotSupported) CreateVolumeClones(*storkapi.ApplicationClone) error
CreateVolumeClones returns ErrNotSupported
type ClonePluginInterface ¶ added in v1.4.0
type ClonePluginInterface interface {
CreateVolumeClones(*storkapi.ApplicationClone) error
}
ClonePluginInterface Interface to clone volumes
type ClusterDomainsNotSupported ¶ added in v1.4.0
type ClusterDomainsNotSupported struct{}
ClusterDomainsNotSupported to be used by drivers that don't support cluster domains
func (*ClusterDomainsNotSupported) ActivateClusterDomain ¶ added in v1.4.0
func (c *ClusterDomainsNotSupported) ActivateClusterDomain(*storkapi.ClusterDomainUpdate) error
ActivateClusterDomain activates a cluster domain
func (*ClusterDomainsNotSupported) DeactivateClusterDomain ¶ added in v1.4.0
func (c *ClusterDomainsNotSupported) DeactivateClusterDomain(*storkapi.ClusterDomainUpdate) error
DeactivateClusterDomain deactivates a cluster domain
func (*ClusterDomainsNotSupported) GetClusterDomains ¶ added in v1.4.0
func (c *ClusterDomainsNotSupported) GetClusterDomains() (*storkapi.ClusterDomains, error)
GetClusterDomains returns all the cluster domains and their status
type ClusterDomainsPluginInterface ¶ added in v1.4.0
type ClusterDomainsPluginInterface interface { // GetClusterDomains returns all the cluster domains and their status GetClusterDomains() (*storkapi.ClusterDomains, error) // ActivateClusterDomain activates a cluster domain ActivateClusterDomain(*storkapi.ClusterDomainUpdate) error // DeactivateClusterDomain deactivates a cluster domain DeactivateClusterDomain(*storkapi.ClusterDomainUpdate) error }
ClusterDomainsPluginInterface Interface to manage cluster domains
type ClusterPairNotSupported ¶ added in v1.4.0
type ClusterPairNotSupported struct{}
ClusterPairNotSupported to be used by drivers that don't support pairing
func (*ClusterPairNotSupported) CreatePair ¶ added in v1.4.0
func (c *ClusterPairNotSupported) CreatePair(*storkapi.ClusterPair) (string, error)
CreatePair Returns ErrNotSupported
func (*ClusterPairNotSupported) DeletePair ¶ added in v1.4.0
func (c *ClusterPairNotSupported) DeletePair(*storkapi.ClusterPair) error
DeletePair Returns ErrNotSupported
type ClusterPairPluginInterface ¶ added in v1.4.0
type ClusterPairPluginInterface interface { // Create a pair with a remote cluster CreatePair(*storkapi.ClusterPair) (string, error) // Deletes a paring with a remote cluster DeletePair(*storkapi.ClusterPair) error }
ClusterPairPluginInterface Interface to pair clusters
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) // InspectNode using ID InspectNode(id string) (*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) // OwnsPVC returns true if the PVC is owned by the driver OwnsPVC(coreOps core.Ops, pvc *v1.PersistentVolumeClaim) bool // OwnsPV returns true if the PV is owned by the driver OwnsPV(pvc *v1.PersistentVolume) bool // GetSnapshotPlugin Get the snapshot plugin to be used for the driver GetSnapshotPlugin() snapshotVolume.Plugin // GetSnapshotType Get the type of the snapshot. Return error is snapshot // doesn't belong to driver GetSnapshotType(snap *snapv1.VolumeSnapshot) (string, error) // Stop the driver Stop() error // GetClusterID returns the clusterID for the driver GetClusterID() (string, error) // GroupSnapshotPluginInterface Interface for group snapshots GroupSnapshotPluginInterface // ClusterPairPluginInterface Interface to pair clusters ClusterPairPluginInterface // MigratePluginInterface Interface to migrate data between clusters MigratePluginInterface // ClusterDomainsPluginInterface Interface to manage cluster domains ClusterDomainsPluginInterface // BackupRestorePluginInterface Interface to backup and restore volumes BackupRestorePluginInterface // ClonePluginInterface Interface to clone volumes ClonePluginInterface // SnapshotRestorePluginInterface Interface to do in-place restore of volumes SnapshotRestorePluginInterface }
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 GroupSnapshotCreateResponse ¶ added in v1.4.0
type GroupSnapshotCreateResponse struct {
Snapshots []*storkapi.VolumeSnapshotStatus
}
GroupSnapshotCreateResponse is the response for the group snapshot operation
type GroupSnapshotNotSupported ¶ added in v1.4.0
type GroupSnapshotNotSupported struct{}
GroupSnapshotNotSupported to be used by drivers that don't support group snapshots
func (*GroupSnapshotNotSupported) CreateGroupSnapshot ¶ added in v1.4.0
func (g *GroupSnapshotNotSupported) CreateGroupSnapshot(*storkapi.GroupVolumeSnapshot) (*GroupSnapshotCreateResponse, error)
CreateGroupSnapshot returns ErrNotSupported
func (*GroupSnapshotNotSupported) DeleteGroupSnapshot ¶ added in v1.4.0
func (g *GroupSnapshotNotSupported) DeleteGroupSnapshot(*storkapi.GroupVolumeSnapshot) error
DeleteGroupSnapshot returns ErrNotSupported
func (*GroupSnapshotNotSupported) GetGroupSnapshotStatus ¶ added in v1.4.0
func (g *GroupSnapshotNotSupported) GetGroupSnapshotStatus(*storkapi.GroupVolumeSnapshot) (*GroupSnapshotCreateResponse, error)
GetGroupSnapshotStatus returns ErrNotSupported
type GroupSnapshotPluginInterface ¶ added in v1.4.0
type GroupSnapshotPluginInterface interface { // CreateGroupSnapshot creates a group snapshot with the given pvcs CreateGroupSnapshot(snap *storkapi.GroupVolumeSnapshot) (*GroupSnapshotCreateResponse, error) // GetGroupSnapshotStatus returns status of group snapshot GetGroupSnapshotStatus(snap *storkapi.GroupVolumeSnapshot) (*GroupSnapshotCreateResponse, error) // DeleteGroupSnapshot delete a group snapshot with the given spec DeleteGroupSnapshot(snap *storkapi.GroupVolumeSnapshot) error }
GroupSnapshotPluginInterface is used to perform group snapshot operations
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 MigratePluginInterface ¶ added in v1.4.0
type MigratePluginInterface interface { // Start migration of volumes specified by the spec. Should only migrate // volumes, not the specs associated with them StartMigration(*storkapi.Migration) ([]*storkapi.MigrationVolumeInfo, error) // Get the status of migration of the volumes specified in the status // for the migration spec GetMigrationStatus(*storkapi.Migration) ([]*storkapi.MigrationVolumeInfo, error) // Cancel the migration of volumes specified in the status CancelMigration(*storkapi.Migration) error // Update the PVC spec to point to the migrated volume on the destination // cluster UpdateMigratedPersistentVolumeSpec(*v1.PersistentVolume) (*v1.PersistentVolume, error) }
MigratePluginInterface Interface to migrate data between clusters
type MigrationNotSupported ¶ added in v1.4.0
type MigrationNotSupported struct{}
MigrationNotSupported to be used by drivers that don't support migration
func (*MigrationNotSupported) CancelMigration ¶ added in v1.4.0
func (m *MigrationNotSupported) CancelMigration(*storkapi.Migration) error
CancelMigration returns ErrNotSupported
func (*MigrationNotSupported) GetMigrationStatus ¶ added in v1.4.0
func (m *MigrationNotSupported) GetMigrationStatus(*storkapi.Migration) ([]*storkapi.MigrationVolumeInfo, error)
GetMigrationStatus returns ErrNotSupported
func (*MigrationNotSupported) StartMigration ¶ added in v1.4.0
func (m *MigrationNotSupported) StartMigration(*storkapi.Migration) ([]*storkapi.MigrationVolumeInfo, error)
StartMigration returns ErrNotSupported
func (*MigrationNotSupported) UpdateMigratedPersistentVolumeSpec ¶ added in v1.4.0
func (m *MigrationNotSupported) UpdateMigratedPersistentVolumeSpec( *v1.PersistentVolume, ) (*v1.PersistentVolume, error)
UpdateMigratedPersistentVolumeSpec returns ErrNotSupported
type NodeInfo ¶
type NodeInfo struct { // StorageID is a unique identifier for the storage node StorageID string // SchedulerID is a unique identifier for the scheduler node SchedulerID 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 // RawStatus as returned by the driver RawStatus string }
NodeInfo Information about a node
func RemoveDuplicateOfflineNodes ¶ added in v1.4.0
RemoveDuplicateOfflineNodes Removes duplicate offline nodes from the list which have the same IP as an online 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" )
type SnapshotRestoreNotSupported ¶ added in v1.4.0
type SnapshotRestoreNotSupported struct{}
SnapshotRestoreNotSupported to be used by drivers that don't support volume snapshot restore
func (*SnapshotRestoreNotSupported) CleanupSnapshotRestoreObjects ¶ added in v1.4.0
func (s *SnapshotRestoreNotSupported) CleanupSnapshotRestoreObjects(*storkapi.VolumeSnapshotRestore) error
CleanupSnapshotRestoreObjects deletes restore objects if any
func (*SnapshotRestoreNotSupported) CompleteVolumeSnapshotRestore ¶ added in v1.4.0
func (s *SnapshotRestoreNotSupported) CompleteVolumeSnapshotRestore(snap *storkapi.VolumeSnapshotRestore) error
CompleteVolumeSnapshotRestore returns ErrNotSupported
func (*SnapshotRestoreNotSupported) GetVolumeSnapshotRestoreStatus ¶ added in v1.4.0
func (s *SnapshotRestoreNotSupported) GetVolumeSnapshotRestoreStatus(*storkapi.VolumeSnapshotRestore) error
GetVolumeSnapshotRestoreStatus returns ErrNotSupported
func (*SnapshotRestoreNotSupported) StartVolumeSnapshotRestore ¶ added in v1.4.0
func (s *SnapshotRestoreNotSupported) StartVolumeSnapshotRestore(*storkapi.VolumeSnapshotRestore) error
StartVolumeSnapshotRestore returns ErrNotSupported
type SnapshotRestorePluginInterface ¶ added in v1.4.0
type SnapshotRestorePluginInterface interface { // StartVolumeSnapshotRestore will prepare volume for restore StartVolumeSnapshotRestore(*storkapi.VolumeSnapshotRestore) error // CompleteVolumeSnapshotRestore will perform in-place restore for given snapshot and associated pvc // Returns error if restore failed CompleteVolumeSnapshotRestore(*storkapi.VolumeSnapshotRestore) error // GetVolumeSnapshotRestore returns snapshot restore status GetVolumeSnapshotRestoreStatus(*storkapi.VolumeSnapshotRestore) error // CleanupSnapshotRestoreObjects deletes restore objects if any CleanupSnapshotRestoreObjects(*storkapi.VolumeSnapshotRestore) error }
SnapshotRestorePluginInterface Interface to perform in place restore of volume