Documentation ¶
Index ¶
- Constants
- Variables
- func IsNilDisk(disk Disk) bool
- func IsNilSnapshot(snapshot Snapshot) bool
- type Cloud
- type Disk
- type DiskOptions
- type EC2Metadata
- type ListSnapshotsResponse
- type Metadata
- type MetadataService
- type OscClient
- func (client *OscClient) CreateSnapshot(ctx context.Context, localVarOptionals osc.CreateSnapshotRequest) (osc.CreateSnapshotResponse, *_nethttp.Response, error)
- func (client *OscClient) CreateTags(ctx context.Context, localVarOptionals osc.CreateTagsRequest) (osc.CreateTagsResponse, *_nethttp.Response, error)
- func (client *OscClient) CreateVolume(ctx context.Context, localVarOptionals osc.CreateVolumeRequest) (osc.CreateVolumeResponse, *_nethttp.Response, error)
- func (client *OscClient) DeleteSnapshot(ctx context.Context, localVarOptionals osc.DeleteSnapshotRequest) (osc.DeleteSnapshotResponse, *_nethttp.Response, error)
- func (client *OscClient) DeleteVolume(ctx context.Context, localVarOptionals osc.DeleteVolumeRequest) (osc.DeleteVolumeResponse, *_nethttp.Response, error)
- func (client *OscClient) LinkVolume(ctx context.Context, localVarOptionals osc.LinkVolumeRequest) (osc.LinkVolumeResponse, *_nethttp.Response, error)
- func (client *OscClient) ReadSnapshots(ctx context.Context, localVarOptionals osc.ReadSnapshotsRequest) (osc.ReadSnapshotsResponse, *_nethttp.Response, error)
- func (client *OscClient) ReadSubregions(ctx context.Context, localVarOptionals osc.ReadSubregionsRequest) (osc.ReadSubregionsResponse, *_nethttp.Response, error)
- func (client *OscClient) ReadVms(ctx context.Context, localVarOptionals osc.ReadVmsRequest) (osc.ReadVmsResponse, *_nethttp.Response, error)
- func (client *OscClient) ReadVolumes(ctx context.Context, localVarOptionals osc.ReadVolumesRequest) (osc.ReadVolumesResponse, *_nethttp.Response, error)
- func (client *OscClient) UnlinkVolume(ctx context.Context, localVarOptionals osc.UnlinkVolumeRequest) (osc.UnlinkVolumeResponse, *_nethttp.Response, error)
- func (client *OscClient) UpdateVolume(ctx context.Context, localVarOptionals osc.UpdateVolumeRequest) (osc.UpdateVolumeResponse, *_nethttp.Response, error)
- type OscInterface
- type Snapshot
- type SnapshotOptions
Constants ¶
const ( // Cold workloads where you do not need to access data frequently // Cases in which the lowest storage cost highly matters. VolumeTypeSTANDARD = "standard" // Most workloads that require moderate performance with moderate costs // Applications that require high performance for a short period of time //(for example, starting a file system) VolumeTypeGP2 = "gp2" //Workloads where you must access data frequently (for example, a database) //Critical business applications that can be blocked by a low performance when accessing data stored on the volume VolumeTypeIO1 = "io1" )
AWS volume types
const ( // MinTotalIOPS represents the minimum Input Output per second. MinTotalIOPS = 100 // MaxTotalIOPS represents the maximum Input Output per second. MaxTotalIOPS = 13000 // MaxIopsPerGb represents the maximum Input Output per GigaBits MaxIopsPerGb = 300 // MaxNumTagsPerResource represents the maximum number of tags per AWS resource. MaxNumTagsPerResource = 50 // MaxTagKeyLength represents the maximum key length for a tag. MaxTagKeyLength = 128 // MaxTagValueLength represents the maximum value length for a tag. MaxTagValueLength = 256 )
AWS provisioning limits. Source: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
const ( // DefaultVolumeSize represents the default volume size. DefaultVolumeSize int64 = 100 * util.GiB // DefaultVolumeType specifies which storage to use for newly created Volumes. DefaultVolumeType = VolumeTypeGP2 )
Defaults
const ( // VolumeNameTagKey is the key value that refers to the volume's name. VolumeNameTagKey = "CSIVolumeName" // SnapshotNameTagKey is the key value that refers to the snapshot's name. SnapshotNameTagKey = "CSIVolumeSnapshotName" // KubernetesTagKeyPrefix is the prefix of the key value that is reserved for Kubernetes. KubernetesTagKeyPrefix = "kubernetes.io" // AWSTagKeyPrefix is the prefix of the key value that is reserved for AWS. AWSTagKeyPrefix = "aws:" )
Tags
Variables ¶
var ( // ValidVolumeTypes = []string{VolumeTypeIO1, VolumeTypeGP2, VolumeTypeSC1, VolumeTypeST1} ValidVolumeTypes = []string{VolumeTypeIO1, VolumeTypeGP2, VolumeTypeSTANDARD} // Throtlling ThrottlingError = []int{503, 429} )
var ( // ErrMultiDisks is an error that is returned when multiple // disks are found with the same volume name. ErrMultiDisks = errors.New("Multiple disks with same name") // ErrDiskExistsDiffSize is an error that is returned if a disk with a given // name, but different size, is found. ErrDiskExistsDiffSize = errors.New("There is already a disk with same name and different size") // ErrNotFound is returned when a resource is not found. ErrNotFound = errors.New("Resource was not found") // ErrAlreadyExists is returned when a resource is already existent. ErrAlreadyExists = errors.New("Resource already exists") // ErrMultiSnapshots is returned when multiple snapshots are found // with the same ID ErrMultiSnapshots = errors.New("Multiple snapshots with the same name found") // ErrInvalidMaxResults is returned when a MaxResults pagination parameter is between 1 and 4 ErrInvalidMaxResults = errors.New("MaxResults parameter must be 0 or greater than or equal to 5") )
Functions ¶
func IsNilSnapshot ¶
Types ¶
type Cloud ¶
type Cloud interface { CreateDisk(ctx context.Context, volumeName string, diskOptions *DiskOptions) (disk Disk, err error) DeleteDisk(ctx context.Context, volumeID string) (success bool, err error) AttachDisk(ctx context.Context, volumeID string, nodeID string) (devicePath string, err error) DetachDisk(ctx context.Context, volumeID string, nodeID string) (err error) ResizeDisk(ctx context.Context, volumeID string, reqSize int64) (newSize int64, err error) WaitForAttachmentState(ctx context.Context, volumeID, state string) error GetDiskByName(ctx context.Context, name string, capacityBytes int64) (disk Disk, err error) GetDiskByID(ctx context.Context, volumeID string) (disk Disk, err error) IsExistInstance(ctx context.Context, nodeID string) (success bool) CreateSnapshot(ctx context.Context, volumeID string, snapshotOptions *SnapshotOptions) (snapshot Snapshot, err error) DeleteSnapshot(ctx context.Context, snapshotID string) (success bool, err error) GetSnapshotByName(ctx context.Context, name string) (snapshot Snapshot, err error) GetSnapshotByID(ctx context.Context, snapshotID string) (snapshot Snapshot, err error) ListSnapshots(ctx context.Context, volumeID string, maxResults int64, nextToken string) (listSnapshotsResponse ListSnapshotsResponse, err error) }
func NewCloudWithoutMetadata ¶
NewCloudWithoutMetadata to instantiate a cloud object outside osc instances
type DiskOptions ¶
type DiskOptions struct { CapacityBytes int64 Tags map[string]string VolumeType string IOPSPerGB int AvailabilityZone string Encrypted bool // KmsKeyID represents a fully qualified resource name to the key to use for encryption. // example: arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef KmsKeyID string SnapshotID string }
DiskOptions represents parameters to create an EBS volume
type EC2Metadata ¶
type EC2Metadata interface { Available() bool GetInstanceIdentityDocument() (ec2metadata.EC2InstanceIdentityDocument, error) GetMetadata(p string) (string, error) }
type ListSnapshotsResponse ¶
ListSnapshotsResponse is the container for our snapshots along with a pagination token to pass back to the caller
type Metadata ¶
type Metadata struct { InstanceID string InstanceType string Region string AvailabilityZone string }
func (*Metadata) GetAvailabilityZone ¶
GetAvailabilityZone returns the Availability Zone which the instance is in.
func (*Metadata) GetInstanceID ¶
GetInstanceID returns the instance identification.
func (*Metadata) GetInstanceType ¶
GetInstanceID returns the instance type.
type MetadataService ¶
type MetadataService interface { GetInstanceID() string GetInstanceType() string GetRegion() string GetAvailabilityZone() string }
MetadataService represents AWS metadata service.
func NewMetadata ¶
func NewMetadata() (MetadataService, error)
func NewMetadataService ¶
func NewMetadataService(svc EC2Metadata) (MetadataService, error)
NewMetadataService returns a new MetadataServiceImplementation.
type OscClient ¶
type OscClient struct {
// contains filtered or unexported fields
}
func (*OscClient) CreateSnapshot ¶
func (client *OscClient) CreateSnapshot(ctx context.Context, localVarOptionals osc.CreateSnapshotRequest) (osc.CreateSnapshotResponse, *_nethttp.Response, error)
func (*OscClient) CreateTags ¶
func (client *OscClient) CreateTags(ctx context.Context, localVarOptionals osc.CreateTagsRequest) (osc.CreateTagsResponse, *_nethttp.Response, error)
func (*OscClient) CreateVolume ¶
func (client *OscClient) CreateVolume(ctx context.Context, localVarOptionals osc.CreateVolumeRequest) (osc.CreateVolumeResponse, *_nethttp.Response, error)
func (*OscClient) DeleteSnapshot ¶
func (client *OscClient) DeleteSnapshot(ctx context.Context, localVarOptionals osc.DeleteSnapshotRequest) (osc.DeleteSnapshotResponse, *_nethttp.Response, error)
func (*OscClient) DeleteVolume ¶
func (client *OscClient) DeleteVolume(ctx context.Context, localVarOptionals osc.DeleteVolumeRequest) (osc.DeleteVolumeResponse, *_nethttp.Response, error)
func (*OscClient) LinkVolume ¶
func (client *OscClient) LinkVolume(ctx context.Context, localVarOptionals osc.LinkVolumeRequest) (osc.LinkVolumeResponse, *_nethttp.Response, error)
func (*OscClient) ReadSnapshots ¶
func (client *OscClient) ReadSnapshots(ctx context.Context, localVarOptionals osc.ReadSnapshotsRequest) (osc.ReadSnapshotsResponse, *_nethttp.Response, error)
func (*OscClient) ReadSubregions ¶
func (client *OscClient) ReadSubregions(ctx context.Context, localVarOptionals osc.ReadSubregionsRequest) (osc.ReadSubregionsResponse, *_nethttp.Response, error)
func (*OscClient) ReadVms ¶
func (client *OscClient) ReadVms(ctx context.Context, localVarOptionals osc.ReadVmsRequest) (osc.ReadVmsResponse, *_nethttp.Response, error)
func (*OscClient) ReadVolumes ¶
func (client *OscClient) ReadVolumes(ctx context.Context, localVarOptionals osc.ReadVolumesRequest) (osc.ReadVolumesResponse, *_nethttp.Response, error)
func (*OscClient) UnlinkVolume ¶
func (client *OscClient) UnlinkVolume(ctx context.Context, localVarOptionals osc.UnlinkVolumeRequest) (osc.UnlinkVolumeResponse, *_nethttp.Response, error)
func (*OscClient) UpdateVolume ¶
func (client *OscClient) UpdateVolume(ctx context.Context, localVarOptionals osc.UpdateVolumeRequest) (osc.UpdateVolumeResponse, *_nethttp.Response, error)
type OscInterface ¶
type OscInterface interface { CreateVolume(ctx context.Context, localVarOptionals osc.CreateVolumeRequest) (osc.CreateVolumeResponse, *_nethttp.Response, error) CreateTags(ctx context.Context, localVarOptionals osc.CreateTagsRequest) (osc.CreateTagsResponse, *_nethttp.Response, error) ReadVolumes(ctx context.Context, localVarOptionals osc.ReadVolumesRequest) (osc.ReadVolumesResponse, *_nethttp.Response, error) DeleteVolume(ctx context.Context, localVarOptionals osc.DeleteVolumeRequest) (osc.DeleteVolumeResponse, *_nethttp.Response, error) LinkVolume(ctx context.Context, localVarOptionals osc.LinkVolumeRequest) (osc.LinkVolumeResponse, *_nethttp.Response, error) UnlinkVolume(ctx context.Context, localVarOptionals osc.UnlinkVolumeRequest) (osc.UnlinkVolumeResponse, *_nethttp.Response, error) CreateSnapshot(ctx context.Context, localVarOptionals osc.CreateSnapshotRequest) (osc.CreateSnapshotResponse, *_nethttp.Response, error) ReadSnapshots(ctx context.Context, localVarOptionals osc.ReadSnapshotsRequest) (osc.ReadSnapshotsResponse, *_nethttp.Response, error) DeleteSnapshot(ctx context.Context, localVarOptionals osc.DeleteSnapshotRequest) (osc.DeleteSnapshotResponse, *_nethttp.Response, error) ReadSubregions(ctx context.Context, localVarOptionals osc.ReadSubregionsRequest) (osc.ReadSubregionsResponse, *_nethttp.Response, error) ReadVms(ctx context.Context, localVarOptionals osc.ReadVmsRequest) (osc.ReadVmsResponse, *_nethttp.Response, error) UpdateVolume(ctx context.Context, localVarOptionals osc.UpdateVolumeRequest) (osc.UpdateVolumeResponse, *_nethttp.Response, error) }
type Snapshot ¶
type Snapshot struct { SnapshotID string SourceVolumeID string Size int64 CreationTime time.Time ReadyToUse bool }
Snapshot represents an BSU volume snapshot
type SnapshotOptions ¶
SnapshotOptions represents parameters to create an EBS volume
Directories ¶
Path | Synopsis |
---|---|
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |