Documentation ¶
Index ¶
Constants ¶
View Source
const ( VksClusterIdTagKey = "vks-cluster-id" VksPvcNamespaceTagKey = "vks-namespace" VksPvNameTagKey = "vks-pv-name" VksPvcNameTagKey = "vks-pvc-name" VksSnapshotIdTagKey = "vks-snapshot-id" VksReclaimPolicyTagKey = "vks-reclaim-policy" )
View Source
const ( VolumeAvailableStatus = "AVAILABLE" VolumeInUseStatus = "IN-USE" VolumeCreatingStatus = "CREATING" VolumeErrorStatus = "ERROR" SnapshotActiveStatus = "ACTIVE" )
View Source
const ( // DefaultVolumeSize represents the default volume size. DefaultVolumeSize int64 = 5 * lsutil.GiB )
Variables ¶
View Source
var ( ErrDeviceVolumeIdNotFound = lerr.New("device volume id not found") ErrInvalidArgument = lerr.New("invalid argument") ErrSnapshotNotFound = lerr.New("snapshot not found") )
View Source
var ( ErrBadMetadata = errors.New("invalid vServer metadata because of got empty uuid") ErrMetadataEmpty = errors.New("metadata is empty") )
View Source
var DefaultEventRecorder = func(pclient lk8s.Interface) (lk8srecord.EventBroadcaster, lk8srecord.EventRecorder, error) { broadcaster := lk8srecord.NewBroadcaster() broadcaster.StartRecordingToSink(&lcoreV1.EventSinkImpl{Interface: pclient.CoreV1().Events("")}) eventRecorder := broadcaster.NewRecorder(lk8sscheme.Scheme, lk8score.EventSource{Component: "vngcloud-blockstorage-csi-driver"}) return broadcaster, eventRecorder, nil }
View Source
var DefaultKubernetesAPIClient = func() (lk8s.Interface, error) { config, err := lk8srest.InClusterConfig() if err != nil { return nil, err } clientset, err := lk8s.NewForConfig(config) if err != nil { return nil, err } return clientset, nil }
View Source
var DefaultVServerMetadataClient = func() (IVServerMetadata, error) { metadataURL := getMetadataURL(defaultMetadataVersion) resp, err := noProxyHTTPClient().Get(metadataURL) if err != nil { return nil, fmt.Errorf("getFromMetadataService; error fetching metadata from URL %s; ERR: %v", metadataURL, err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { err = fmt.Errorf("getFromMetadataService; unexpected status code when reading metadata from %s with response status code %s", metadataURL, resp.Status) return nil, err } return parseMetadata(resp.Body) }
Functions ¶
This section is empty.
Types ¶
type Cloud ¶
type Cloud interface { EitherCreateResizeVolume(preq lsdkVolumeV2.ICreateBlockVolumeRequest) (*lsentity.Volume, lserr.IError) GetVolumeByName(pvolName string) (*lsentity.Volume, lserr.IError) GetVolume(volumeID string) (*lsentity.Volume, lserr.IError) DeleteVolume(volID string) lserr.IError AttachVolume(instanceID, volumeID string) (*lsentity.Volume, lserr.IError) DetachVolume(instanceID, volumeID string) lserr.IError ModifyVolumeType(pvolumeId, pvolumeType string, psize int) lserr.IError ResizeOrModifyDisk(volumeID string, newSizeBytes int64, options *ModifyDiskOptions) (newSize int64, err error) ExpandVolume(volumeID, volumeTypeID string, newSize uint64) error GetDeviceDiskID(pvolID string) (string, error) GetVolumeSnapshotByName(pvolID, psnapshotName string) (*lsentity.Snapshot, error) CreateSnapshotFromVolume(pclusterId, pvolId, psnapshotName string) (*lsentity.Snapshot, error) DeleteSnapshot(psnapshotID string) error ListSnapshots(pvolID string, ppage int, ppageSize int) (*lsentity.ListSnapshots, lserr.IError) GetVolumeTypeById(pvolTypeId string) (*lsentity.VolumeType, lserr.IError) GetDefaultVolumeType() (*lsentity.VolumeType, lserr.IError) }
type DeviceMetadata ¶
type IVServerMetadata ¶
type IVServerMetadata interface {
GetMetadata() *VServerMetadata
}
type KubernetesAPIClient ¶
KubernetesAPIClient is a function that returns a Kubernetes client
type Metadata ¶
type Metadata struct { UUID string `json:"uuid"` Name string `json:"name"` ProjectID string `json:"project_id"` AvailabilityZone string `json:"availability_zone"` Devices []DeviceMetadata `json:"devices,omitempty"` }
func (*Metadata) GetAvailabilityZone ¶
func (*Metadata) GetInstanceID ¶
func (*Metadata) GetProjectID ¶
type MetadataService ¶
type MetadataService interface { GetInstanceID() string GetProjectID() string GetAvailabilityZone() string }
func NewMetadataService ¶
func NewMetadataService(vserverMetadataClient VServerMetadataClient) (MetadataService, error)
func VServerMetadataInstanceInfo ¶
func VServerMetadataInstanceInfo(psvc IVServerMetadata) (MetadataService, error)
type ModifyDiskOptions ¶
type ModifyDiskOptions struct {
VolumeType string
}
ModifyDiskOptions represents parameters to modify a volume
type VServerMetadata ¶
type VServerMetadata struct { UUID string `json:"uuid"` Name string `json:"name"` AvailabilityZone string `json:"availability_zone"` ProjectID string `json:"project_id"` Devices []DeviceMetadata `json:"devices,omitempty"` Meta Meta `json:"meta,omitempty"` }
func (*VServerMetadata) GetMetadata ¶
func (s *VServerMetadata) GetMetadata() *VServerMetadata
type VServerMetadataClient ¶
type VServerMetadataClient func() (IVServerMetadata, error)
Source Files ¶
Click to show internal directories.
Click to hide internal directories.