Documentation
¶
Index ¶
- Constants
- func IsNotFound(err error) bool
- type Client
- type FlavorInfo
- type FlavorService
- type LoadBalancerHealthMonitorService
- type LoadBalancerListenerService
- type LoadBalancerPoolMemberService
- type LoadBalancerPoolService
- type LoadBalancerService
- type NetworkService
- type RegionInfo
- type RegionService
- type ServerGroupService
- type ServerService
- type SubnetService
Constants ¶
const ( // ResourceNvidiaGPU is the resource name for NVIDIA GPUs. ResourceNvidiaGPU corev1.ResourceName = "nvidia.com/gpu" )
Variables ¶
This section is empty.
Functions ¶
func IsNotFound ¶
IsNotFound checks if an error from the cloudscale.ch API indicates a 404 Not Found response.
Types ¶
type Client ¶
type Client struct {
Networks NetworkService
Subnets SubnetService
Regions RegionService
Servers ServerService
ServerGroups ServerGroupService
LoadBalancers LoadBalancerService
LoadBalancerPools LoadBalancerPoolService
LoadBalancerPoolMembers LoadBalancerPoolMemberService
LoadBalancerListeners LoadBalancerListenerService
LoadBalancerHealthMonitors LoadBalancerHealthMonitorService
Flavors FlavorService
}
type FlavorInfo ¶
type FlavorInfo struct {
// contains filtered or unexported fields
}
FlavorInfo holds cloudscale.ch flavor information for capacity calculation.
func NewFlavorInfo ¶
func NewFlavorInfo(flavors []cloudscalesdk.Flavor) *FlavorInfo
NewFlavorInfo creates a FlavorInfo from a list of flavors.
func (*FlavorInfo) GetAllFlavors ¶
func (fi *FlavorInfo) GetAllFlavors() []string
GetAllFlavors returns all known flavor slugs.
func (*FlavorInfo) GetCapacity ¶
func (fi *FlavorInfo) GetCapacity(slug string, rootVolumeSizeGB int) (corev1.ResourceList, error)
GetCapacity returns the resource capacity for a flavor slug. rootVolumeSizeGB is used to calculate ephemeral-storage.
func (*FlavorInfo) GetFlavor ¶
func (fi *FlavorInfo) GetFlavor(slug string) *cloudscalesdk.Flavor
GetFlavor returns the flavor for a given slug, or nil if not found.
func (*FlavorInfo) IsValidFlavor ¶
func (fi *FlavorInfo) IsValidFlavor(slug string) bool
IsValidFlavor returns true if the flavor slug is valid.
type FlavorService ¶
type FlavorService interface {
List(ctx context.Context) ([]cloudscalesdk.Flavor, error)
}
type LoadBalancerHealthMonitorService ¶
type LoadBalancerHealthMonitorService interface {
Create(ctx context.Context, req *cloudscalesdk.LoadBalancerHealthMonitorRequest) (*cloudscalesdk.LoadBalancerHealthMonitor, error)
Get(ctx context.Context, id string) (*cloudscalesdk.LoadBalancerHealthMonitor, error)
List(ctx context.Context, modifiers ...cloudscalesdk.ListRequestModifier) ([]cloudscalesdk.LoadBalancerHealthMonitor, error)
Delete(ctx context.Context, id string) error
Update(ctx context.Context, id string, req *cloudscalesdk.LoadBalancerHealthMonitorRequest) error
}
type LoadBalancerListenerService ¶
type LoadBalancerListenerService interface {
Create(ctx context.Context, req *cloudscalesdk.LoadBalancerListenerRequest) (*cloudscalesdk.LoadBalancerListener, error)
Get(ctx context.Context, id string) (*cloudscalesdk.LoadBalancerListener, error)
List(ctx context.Context, modifiers ...cloudscalesdk.ListRequestModifier) ([]cloudscalesdk.LoadBalancerListener, error)
Delete(ctx context.Context, id string) error
Update(ctx context.Context, id string, req *cloudscalesdk.LoadBalancerListenerRequest) error
}
type LoadBalancerPoolMemberService ¶
type LoadBalancerPoolMemberService interface {
Create(ctx context.Context, poolID string, req *cloudscalesdk.LoadBalancerPoolMemberRequest) (*cloudscalesdk.LoadBalancerPoolMember, error)
Get(ctx context.Context, poolID, memberID string) (*cloudscalesdk.LoadBalancerPoolMember, error)
List(ctx context.Context, poolID string, modifiers ...cloudscalesdk.ListRequestModifier) ([]cloudscalesdk.LoadBalancerPoolMember, error)
Delete(ctx context.Context, poolID, memberID string) error
Update(ctx context.Context, poolID, memberID string, req *cloudscalesdk.LoadBalancerPoolMemberRequest) error
}
type LoadBalancerPoolService ¶
type LoadBalancerPoolService interface {
Create(ctx context.Context, req *cloudscalesdk.LoadBalancerPoolRequest) (*cloudscalesdk.LoadBalancerPool, error)
Get(ctx context.Context, id string) (*cloudscalesdk.LoadBalancerPool, error)
List(ctx context.Context, modifiers ...cloudscalesdk.ListRequestModifier) ([]cloudscalesdk.LoadBalancerPool, error)
Delete(ctx context.Context, id string) error
Update(ctx context.Context, id string, req *cloudscalesdk.LoadBalancerPoolRequest) error
}
type LoadBalancerService ¶
type LoadBalancerService interface {
Create(ctx context.Context, req *cloudscalesdk.LoadBalancerRequest) (*cloudscalesdk.LoadBalancer, error)
Get(ctx context.Context, id string) (*cloudscalesdk.LoadBalancer, error)
List(ctx context.Context, modifiers ...cloudscalesdk.ListRequestModifier) ([]cloudscalesdk.LoadBalancer, error)
Delete(ctx context.Context, id string) error
Update(ctx context.Context, id string, req *cloudscalesdk.LoadBalancerRequest) error
}
type NetworkService ¶
type NetworkService interface {
Create(ctx context.Context, req *cloudscalesdk.NetworkCreateRequest) (*cloudscalesdk.Network, error)
Get(ctx context.Context, id string) (*cloudscalesdk.Network, error)
List(ctx context.Context, modifiers ...cloudscalesdk.ListRequestModifier) ([]cloudscalesdk.Network, error)
Delete(ctx context.Context, id string) error
}
type RegionInfo ¶
type RegionInfo struct {
// contains filtered or unexported fields
}
RegionInfo holds cloudscale.ch region and zone information for validation.
func NewRegionInfo ¶
func NewRegionInfo(regions []cloudscalesdk.Region) *RegionInfo
NewRegionInfo creates a RegionInfo from the SDK region list.
func (*RegionInfo) GetAllRegions ¶
func (ri *RegionInfo) GetAllRegions() []string
GetAllRegions returns all known region slugs.
func (*RegionInfo) GetDefaultZoneForRegion ¶
func (ri *RegionInfo) GetDefaultZoneForRegion(region string) string
GetDefaultZoneForRegion returns the first (default) zone for a region. Returns empty string if region is not found or has no zones.
func (*RegionInfo) IsValidZone ¶
func (ri *RegionInfo) IsValidZone(zone string) bool
IsValidZone returns true if the zone slug is valid.
func (*RegionInfo) ZoneBelongsToRegion ¶
func (ri *RegionInfo) ZoneBelongsToRegion(zone, region string) bool
ZoneBelongsToRegion returns true if the zone belongs to the specified region.
type RegionService ¶
type RegionService interface {
List(ctx context.Context) ([]cloudscalesdk.Region, error)
}
type ServerGroupService ¶
type ServerGroupService interface {
Create(ctx context.Context, req *cloudscalesdk.ServerGroupRequest) (*cloudscalesdk.ServerGroup, error)
Get(ctx context.Context, id string) (*cloudscalesdk.ServerGroup, error)
List(ctx context.Context, modifiers ...cloudscalesdk.ListRequestModifier) ([]cloudscalesdk.ServerGroup, error)
Delete(ctx context.Context, id string) error
Update(ctx context.Context, id string, req *cloudscalesdk.ServerGroupRequest) error
}
type ServerService ¶
type ServerService interface {
Create(ctx context.Context, req *cloudscalesdk.ServerRequest) (*cloudscalesdk.Server, error)
Get(ctx context.Context, id string) (*cloudscalesdk.Server, error)
List(ctx context.Context, modifiers ...cloudscalesdk.ListRequestModifier) ([]cloudscalesdk.Server, error)
Delete(ctx context.Context, id string) error
Update(ctx context.Context, id string, req *cloudscalesdk.ServerUpdateRequest) error
}
type SubnetService ¶
type SubnetService interface {
Create(ctx context.Context, req *cloudscalesdk.SubnetCreateRequest) (*cloudscalesdk.Subnet, error)
Get(ctx context.Context, id string) (*cloudscalesdk.Subnet, error)
List(ctx context.Context, modifiers ...cloudscalesdk.ListRequestModifier) ([]cloudscalesdk.Subnet, error)
Delete(ctx context.Context, id string) error
}