Categorygithub.com/libopenstorage/cloudops
modulepackage
0.0.0-20240819180206-1aa1ecb48432
Repository: https://github.com/libopenstorage/cloudops.git
Documentation: pkg.go.dev

# README

cloudops

Go Report Card Build Status

Goal

  1. Define abstraction layerproviding a common interface to perform cloud operations that include:
  • Provisioning and managing Instances
  • Provisioning and managing Storage
  • Provisioning and managing network resources.
  1. Provide implementation for variety of clouds.

Cloudops will provide a set of binaries for debugging but its main purpose is to be used a library.

Building and running Cloudops

Cloudops expects GOLANG to be installed. To build cloudops, simply run make:

make

Vendoring

This repo uses go dep for vendoring. The following make rule will update the vendor directory.

make vendor

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Package mock is a generated GoMock package.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

AddElementToMap adds to the given 'elem' to the 'sets' map with given 'key'.
GetEnvValueStrict fetches value for env variable "key".
NewStorageError creates a new custom storage error instance.
NewStorageManager returns a cloud provider specific implementation of StorageManager interface.
RegisterStorageManager registers cloud providers who support Storage Management.

# Constants

AWS provider.
Azure provider.
CSI provider.
DryRunOption is the key to tell if dry run the request.
ErrDiskGreaterOrEqualToExpandSize is code when a volume/disk expansion call fails as the given disk is already at a size greater than or equal to requested size.
ErrExponentialTimeout is code when all the retries with exponential backoff have exhausted.
ErrInvalidDevicePath is code when a volume/disk has invalid device path.
ErrVolAttachedOnRemoteNode is code when a volume is not attached locally but attached on a remote node.
ErrVolDetached is code for a volume is detached on the instance.
ErrVolInval is the code for a invalid volume.
ErrVolNotFound is code when a volume is not found.
ErrVolumeAttachedOnMultipleNodes is code when a volume is attached to multiple nodes.
GCE provider.
IBM provider.
InstanceStateOffline instance is offline.
InstanceStateOnline instance is online.
InstanceStateStarting instance is starting.
InstanceStateTerminating instance is terminating.
InstanceStateUnknown unknown instance state.
Oracle provider.
ProviderOpsMaxRetries is the number of retries to use for provider ops.
ProviderOpsRetryInterval is the time to wait before each retry of provider ops.
ProviderOpsTimeout is the default timeout of storage provider ops.
Pure provider.
SetIdentifierNone is a default identifier to group all disks from a particular set.
Vsphere provider.

# Variables

ErrCurrentCapacitySameAsDesired is returned when total current capacity of instance is already equal to requested capacity.
ErrNumOfZonesCannotBeZero is returned when the number of zones provided is zero.

# Structs

CloudResourceInfo provides metadata information on a cloud resource.
ErrCloudProviderRequestFailure is returned when an unknown API request failure occurred.
ErrCurrentCapacityHigherThanDesired is returned when the current capacity of the instance is already higher than the desired capacity.
ErrInvalidMaxDriveSizeRequest is returned when an unsupported or invalid request is sent to get the max drive size.
ErrInvalidStoragePoolUpdateRequest is returned when an unsupported or invalid request is sent to get the updated storage config on an instance.
ErrMaxDriveSizeCandidateNotFound is returned when an unsupported or invalid request is sent to get the max drive size.
ErrNoInstanceGroup is returned when instance doesn't belong to an instance group.
ErrNotFound is error type when an object of Type with ID is not found.
ErrNotSupported is the error type for unsupported operations.
ErrStorageDistributionCandidateNotFound is returned when the storage manager fails to determine the right storage distribution candidate.
InstanceGroupInfo encapsulates info for a cloud instance group.
InstanceInfo encapsulates info for a cloud instance.
No description provided by the author
No description provided by the author
StorageDecisionMatrix is used to determine the optimum cloud storage distribution for a cluster based on user's requirement specified through StorageSpec.
StorageDecisionMatrixRow defines an entry in the cloud storage decision matrix.
StorageDistributionRequest is the input the cloud drive decision matrix.
StorageDistributionResponse is the result returned the CloudStorage Decision Matrix for the provided request.
StorageError error returned for storage operations.
StoragePoolSpec defines the type, capacity and number of storage drive that needs to be provisioned.
StoragePoolUpdateRequest is the required changes for updating the storage on a given cloud instance.
StoragePoolUpdateResponse is the result returned by the CloudStorage Decision Matrix for the storage update request.
StorageSpec is the user provided storage requirement for the cluster.

# Interfaces

Compute interface to manage compute instances.
Ops interface to perform basic cloud operations.
Storage interface to manage storage operations.
StorageManager interface provides a set of APIs to manage cloud storage drives across multiple nodes in the cluster.

# Type aliases

InitStorageManagerFn initializes the cloud provider for Storage Management.
InstanceState is an enum for the current state of a compute instance.
ProviderType is an enum indicating the different cloud provider supported by cloudops.