Documentation ¶
Index ¶
- Constants
- func IsInstanceInStoppedState(instance *core.Instance) bool
- func IsInstanceInTerminalState(instance *core.Instance) bool
- func IsNotFound(err error) bool
- func IsRetryable(err error) bool
- func MapProviderIDToInstanceID(providerID string) string
- func NewRetryPolicyWithMaxAttempts(retryAttempts uint) *common.RetryPolicy
- func RateLimitError(isWrite bool, opName string) error
- type BlockStorageInterface
- type ComputeInterface
- type FileStorageInterface
- type GenericBackend
- type GenericBackendSetDetails
- type GenericCertificate
- type GenericConnectionConfiguration
- type GenericCreateLoadBalancerDetails
- type GenericHealthChecker
- type GenericIpAddress
- type GenericListener
- type GenericLoadBalancer
- type GenericLoadBalancerInterface
- type GenericReservedIp
- type GenericSessionPersistenceConfiguration
- type GenericShapeDetails
- type GenericSslConfigurationDetails
- type GenericUpdateLoadBalancerShapeDetails
- type GenericUpdateNetworkSecurityGroupsDetails
- type GenericWorkRequest
- type IdentityInterface
- type Interface
- type NetworkingInterface
- type RateLimiter
- type VolumeAttachmentInterface
Constants ¶
const ( // KiB is 1024 bytes KiB = 1 << (10 * iota) // MiB is 1024KB MiB // GiB is 1024 MB GiB // TiB is 1024 GB TiB )
const ( // OCIVolumeID is the name of the oci volume id. OCIVolumeID = "ociVolumeID" // OCIVolumeBackupID is the name of the oci volume backup id annotation. OCIVolumeBackupID = "volume.beta.kubernetes.io/oci-volume-source" // FSType is the name of the file storage type parameter for storage classes. FSType = "fsType" )
const ( HTTP400RelatedResourceNotAuthorizedOrNotFoundCode = "RelatedResourceNotAuthorizedOrNotFound" HTTP401NotAuthenticatedCode = "NotAuthenticated" HTTP404NotAuthorizedOrNotFoundCode = "NotAuthorizedOrNotFound" HTTP409IncorrectStateCode = "IncorrectState" HTTP409NotAuthorizedOrResourceAlreadyExistsCode = "NotAuthorizedOrResourceAlreadyExists" HTTP429TooManyRequestsCode = "TooManyRequests" HTTP500InternalServerErrorCode = "InternalServerError" )
HTTP Error Types
const (
ListWorkRequestLimit = 100
)
const (
NetworkLoadBalancerEntityType = "NetworkLoadBalancer"
)
Variables ¶
This section is empty.
Functions ¶
func IsInstanceInStoppedState ¶
IsInstanceInStoppedState returns true if the instance is in a stopped or stopping state, false otherwise.
func IsInstanceInTerminalState ¶
IsInstanceInTerminalState returns true if the instance is in a terminal state, false otherwise.
func IsNotFound ¶
IsNotFound returns true if the given error indicates that a resource could not be found.
func IsRetryable ¶
IsRetryable returns true if the given error is retriable.
func MapProviderIDToInstanceID ¶
MapProviderIDToInstanceID parses the provider id and returns the instance ocid.
func NewRetryPolicyWithMaxAttempts ¶
func NewRetryPolicyWithMaxAttempts(retryAttempts uint) *common.RetryPolicy
NewRetryPolicyWithMaxAttempts returns a RetryPolicy with the specified max retryAttempts
func RateLimitError ¶
RateLimitError produces an Errorf for rate limiting.
Types ¶
type BlockStorageInterface ¶
type BlockStorageInterface interface { AwaitVolumeAvailableORTimeout(ctx context.Context, id string) (*core.Volume, error) CreateVolume(ctx context.Context, details core.CreateVolumeDetails) (*core.Volume, error) DeleteVolume(ctx context.Context, id string) error GetVolume(ctx context.Context, id string) (*core.Volume, error) GetVolumesByName(ctx context.Context, volumeName, compartmentID string) ([]core.Volume, error) UpdateVolume(ctx context.Context, volumeId string, details core.UpdateVolumeDetails) (*core.Volume, error) }
BlockStorageInterface defines the interface to OCI block storage utilised by the volume provisioner.
type ComputeInterface ¶
type ComputeInterface interface { // GetInstance gets information about the specified instance. GetInstance(ctx context.Context, id string) (*core.Instance, error) // GetInstanceByNodeName gets the OCI instance corresponding to the given // Kubernetes node name. GetInstanceByNodeName(ctx context.Context, compartmentID, vcnID, nodeName string) (*core.Instance, error) GetPrimaryVNICForInstance(ctx context.Context, compartmentID, instanceID string) (*core.Vnic, error) VolumeAttachmentInterface }
ComputeInterface defines the subset of the OCI compute API utilised by the CCM.
type FileStorageInterface ¶
type FileStorageInterface interface { AwaitMountTargetActive(ctx context.Context, logger *zap.SugaredLogger, id string) (*fss.MountTarget, error) GetFileSystem(ctx context.Context, id string) (*fss.FileSystem, error) GetFileSystemSummaryByDisplayName(ctx context.Context, compartmentID, ad, displayName string) (bool, []fss.FileSystemSummary, error) AwaitFileSystemActive(ctx context.Context, logger *zap.SugaredLogger, id string) (*fss.FileSystem, error) CreateFileSystem(ctx context.Context, details fss.CreateFileSystemDetails) (*fss.FileSystem, error) DeleteFileSystem(ctx context.Context, id string) error CreateExport(ctx context.Context, details fss.CreateExportDetails) (*fss.Export, error) FindExport(ctx context.Context, fsID, path, exportSetID string) (*fss.ExportSummary, error) AwaitExportActive(ctx context.Context, logger *zap.SugaredLogger, id string) (*fss.Export, error) DeleteExport(ctx context.Context, id string) error GetMountTarget(ctx context.Context, id string) (*fss.MountTarget, error) CreateMountTarget(ctx context.Context, details fss.CreateMountTargetDetails) (*fss.MountTarget, error) DeleteMountTarget(ctx context.Context, id string) error GetMountTargetSummaryByDisplayName(ctx context.Context, compartmentID, ad, mountTargetName string) (bool, []fss.MountTargetSummary, error) }
FileStorageInterface defines the interface to OCI File Storage Service consumed by the volume provisioner and fss-controller.
type GenericBackend ¶ added in v1.19.12
type GenericBackendSetDetails ¶ added in v1.19.12
type GenericBackendSetDetails struct { Name *string HealthChecker *GenericHealthChecker Policy *string Backends []GenericBackend SessionPersistenceConfiguration *GenericSessionPersistenceConfiguration // Only needed for LB SslConfiguration *GenericSslConfigurationDetails // Only needed for NLB IsPreserveSource *bool }
type GenericCertificate ¶ added in v1.19.12
type GenericConnectionConfiguration ¶ added in v1.19.12
type GenericCreateLoadBalancerDetails ¶ added in v1.19.12
type GenericCreateLoadBalancerDetails struct { CompartmentId *string DisplayName *string ShapeName *string SubnetIds []string ShapeDetails *GenericShapeDetails IsPrivate *bool IsPreserveSourceDestination *bool ReservedIps []GenericReservedIp Listeners map[string]GenericListener BackendSets map[string]GenericBackendSetDetails NetworkSecurityGroupIds []string FreeformTags map[string]string DefinedTags map[string]map[string]interface{} // Only needed for LB Certificates map[string]GenericCertificate }
type GenericHealthChecker ¶ added in v1.19.12
type GenericIpAddress ¶ added in v1.19.12
type GenericIpAddress struct { IpAddress *string IsPublic *bool ReservedIp *GenericReservedIp }
type GenericListener ¶ added in v1.19.12
type GenericListener struct { Name *string DefaultBackendSetName *string Port *int Protocol *string HostnameNames []string PathRouteSetName *string SslConfiguration *GenericSslConfigurationDetails ConnectionConfiguration *GenericConnectionConfiguration RoutingPolicyName *string RuleSetNames []string }
type GenericLoadBalancer ¶ added in v1.19.12
type GenericLoadBalancer struct { Id *string CompartmentId *string DisplayName *string LifecycleState *string ShapeName *string IpAddresses []GenericIpAddress ShapeDetails *GenericShapeDetails IsPrivate *bool SubnetIds []string NetworkSecurityGroupIds []string Listeners map[string]GenericListener Certificates map[string]GenericCertificate BackendSets map[string]GenericBackendSetDetails FreeformTags map[string]string DefinedTags map[string]map[string]interface{} }
type GenericLoadBalancerInterface ¶ added in v1.19.12
type GenericLoadBalancerInterface interface { CreateLoadBalancer(ctx context.Context, details *GenericCreateLoadBalancerDetails) (string, error) GetLoadBalancer(ctx context.Context, id string) (*GenericLoadBalancer, error) GetLoadBalancerByName(ctx context.Context, compartmentID, name string) (*GenericLoadBalancer, error) DeleteLoadBalancer(ctx context.Context, id string) (string, error) GetCertificateByName(ctx context.Context, lbID, name string) (*GenericCertificate, error) CreateCertificate(ctx context.Context, lbID string, cert *GenericCertificate) (string, error) CreateBackendSet(ctx context.Context, lbID, name string, details *GenericBackendSetDetails) (string, error) UpdateBackendSet(ctx context.Context, lbID, name string, details *GenericBackendSetDetails) (string, error) DeleteBackendSet(ctx context.Context, lbID, name string) (string, error) UpdateListener(ctx context.Context, lbID, name string, details *GenericListener) (string, error) CreateListener(ctx context.Context, lbID, name string, details *GenericListener) (string, error) DeleteListener(ctx context.Context, lbID, name string) (string, error) UpdateLoadBalancerShape(context.Context, string, *GenericUpdateLoadBalancerShapeDetails) (string, error) UpdateNetworkSecurityGroups(context.Context, string, []string) (string, error) AwaitWorkRequest(ctx context.Context, id string) (*GenericWorkRequest, error) ListWorkRequests(ctx context.Context, compartmentId, lbId string) ([]*GenericWorkRequest, error) }
type GenericReservedIp ¶ added in v1.19.12
type GenericReservedIp struct {
Id *string
}
type GenericSessionPersistenceConfiguration ¶ added in v1.19.12
type GenericShapeDetails ¶ added in v1.19.12
type GenericSslConfigurationDetails ¶ added in v1.19.12
type GenericUpdateLoadBalancerShapeDetails ¶ added in v1.19.12
type GenericUpdateLoadBalancerShapeDetails struct { ShapeName *string ShapeDetails *GenericShapeDetails }
type GenericUpdateNetworkSecurityGroupsDetails ¶ added in v1.19.12
type GenericUpdateNetworkSecurityGroupsDetails struct {
NetworkSecurityGroupIds []string
}
type GenericWorkRequest ¶ added in v1.19.12
type IdentityInterface ¶
type IdentityInterface interface { GetAvailabilityDomainByName(ctx context.Context, compartmentID, name string) (*identity.AvailabilityDomain, error) ListAvailabilityDomains(ctx context.Context, compartmentID string) ([]identity.AvailabilityDomain, error) }
IdentityInterface defines the interface to the OCI identity service consumed by the volume provisioner.
type Interface ¶
type Interface interface { Compute() ComputeInterface LoadBalancer(string) GenericLoadBalancerInterface Networking() NetworkingInterface BlockStorage() BlockStorageInterface FSS() FileStorageInterface Identity() IdentityInterface }
Interface of consumed OCI API functionality.
func New ¶
func New(logger *zap.SugaredLogger, cp common.ConfigurationProvider, opRateLimiter *RateLimiter) (Interface, error)
New constructs an OCI API client.
type NetworkingInterface ¶
type NetworkingInterface interface { GetSubnet(ctx context.Context, id string) (*core.Subnet, error) GetSubnetFromCacheByIP(ip string) (*core.Subnet, error) IsRegionalSubnet(ctx context.Context, id string) (bool, error) GetVcn(ctx context.Context, id string) (*core.Vcn, error) GetSecurityList(ctx context.Context, id string) (core.GetSecurityListResponse, error) UpdateSecurityList(ctx context.Context, id string, etag string, ingressRules []core.IngressSecurityRule, egressRules []core.EgressSecurityRule) (core.UpdateSecurityListResponse, error) GetPrivateIP(ctx context.Context, id string) (*core.PrivateIp, error) GetPublicIpByIpAddress(ctx context.Context, id string) (*core.PublicIp, error) }
NetworkingInterface defines the subset of the OCI compute API utilised by the CCM.
type RateLimiter ¶
type RateLimiter struct { Reader flowcontrol.RateLimiter Writer flowcontrol.RateLimiter }
RateLimiter reader and writer.
func NewRateLimiter ¶
func NewRateLimiter(logger *zap.SugaredLogger, config *providercfg.RateLimiterConfig) RateLimiter
NewRateLimiter builds and returns a struct containing read and write rate limiters. Defaults are used where no (0) value is provided.
type VolumeAttachmentInterface ¶
type VolumeAttachmentInterface interface { // FindVolumeAttachment searches for a volume attachment in either the state // ATTACHING or ATTACHED and returns the first volume attachment found. FindVolumeAttachment(ctx context.Context, compartmentID, volumeID string) (core.VolumeAttachment, error) // AttachVolume attaches a block storage volume to the specified instance. // See https://docs.us-phoenix-1.oraclecloud.com/api/#/en/iaas/20160918/VolumeAttachment/AttachVolume AttachVolume(ctx context.Context, instanceID, volumeID string) (core.VolumeAttachment, error) AttachParavirtualizedVolume(ctx context.Context, instanceID, volumeID string, isPvEncryptionInTransitEnabled bool) (core.VolumeAttachment, error) // WaitForVolumeAttached polls waiting for a OCI block volume to be in the // ATTACHED state. WaitForVolumeAttached(ctx context.Context, attachmentID string) (core.VolumeAttachment, error) // DetachVolume detaches a storage volume from the specified instance. // See: https://docs.us-phoenix-1.oraclecloud.com/api/#/en/iaas/20160918/Volume/DetachVolume DetachVolume(ctx context.Context, id string) error // WaitForVolumeDetached polls waiting for a OCI block volume to be in the // DETACHED state. WaitForVolumeDetached(ctx context.Context, attachmentID string) error FindActiveVolumeAttachment(ctx context.Context, compartmentID, volumeID string) (core.VolumeAttachment, error) }
VolumeAttachmentInterface defines the interface to the OCI volume attachement API.