Documentation ¶
Index ¶
Constants ¶
View Source
const (
MetdataDomain = "provider.unikorn-cloud.org"
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ExternalNetwork ¶ added in v0.1.3
type ExternalNetwork struct { // ID is the provider specific network ID. ID string // Name is the network name. Name string }
ExternalNetwork represents an external network.
type ExternalNetworks ¶ added in v0.1.3
type ExternalNetworks []ExternalNetwork
ExternalNetworks is a list of provider networks.
type Flavor ¶
type Flavor struct { // ID must be an immutable ID, preferably a UUID. // If the provider doesn't have the concept of an ID, and the name // is immutable you can make one out of that. ID string // Name of the flavor. Name string // CPU count. CPUs int // CPUFamily tells you the CPU type. CPUFamily *string // Memory available. Memory *resource.Quantity // Disk available. Disk *resource.Quantity // GPU describes the GPU(s) if any are available to the flavor. GPU *GPU // Baremetal is a bare-metal flavor. Baremetal bool }
Flavor represents a machine type.
type FlavorList ¶
type FlavorList []Flavor
FlavorList allows us to attach sort functions and the like.
type Image ¶
type Image struct { // ID must be an immutable ID, preferably a UUID. // If the provider doesn't have the concept of an ID, and the name // is immutable you can make one out of that. ID string // Name of the image. Name string // Created is when the image was created. Created time.Time // Modified is when the image was modified. Modified time.Time // ImageVirtualization defines how the image can be used. Virtualization ImageVirtualization // KubernetesVersion is only populated if the image contains a pre-installed // version of Kubernetes, this acts as a cache and improves provisioning performance. // This is pretty much the only source of truth about Kubernetes versions at // present, so should be populated. It must be a semver (starts with a vN.N.N). KubernetesVersion string // GPU is any GPU specific configuration for scheduling on a specific flavor type. GPU *ImageGPU }
Image represents an operating system image.
type ImageGPU ¶ added in v0.1.26
type ImageGPU struct { // Vendor is the vendor a GPU is compatible with. Vendor GPUVendor // Driver is the driver version string. Driver string // Models is a list of GPU models a driver is certified with. Models []string }
ImageGPU defines image specific GPU compatibility information.
type ImageVirtualization ¶ added in v0.1.26
type ImageVirtualization string
const ( Virtualized ImageVirtualization = "virtualized" Baremetal ImageVirtualization = "baremetal" Any ImageVirtualization = "any" )
type Provider ¶
type Provider interface { // Region returns the provider's region. Region(ctx context.Context) (*unikornv1.Region, error) // Flavors list all available flavors. Flavors(ctx context.Context) (FlavorList, error) // Images lists all available images. Images(ctx context.Context) (ImageList, error) // CreateIdentity creates a new identity for cloud infrastructure. CreateIdentity(ctx context.Context, identity *unikornv1.Identity) error // DeleteIdentity cleans up an identity for cloud infrastructure. DeleteIdentity(ctx context.Context, identity *unikornv1.Identity) error // CreatePhysicalNetwork creates a new physical network. CreatePhysicalNetwork(ctx context.Context, identity *unikornv1.Identity, physicalNetwork *unikornv1.PhysicalNetwork) error // DeletePhysicalNetwork deletes a physical network. DeletePhysicalNetwork(ctx context.Context, identity *unikornv1.Identity, physicalNetwork *unikornv1.PhysicalNetwork) error // ListExternalNetworks returns a list of external networks if the platform // supports such a concept. ListExternalNetworks(ctx context.Context) (ExternalNetworks, error) }
Providers are expected to provide a provider agnostic manner. They are also expected to provide any caching or memoization required to provide high performance and a decent UX.
Click to show internal directories.
Click to hide internal directories.