data

package
v0.14.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2026 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	FedoraDefaultVersion string = "43"
)

Functions

func FilterComputeSizesByDiskControllerType added in v0.14.1

func FilterComputeSizesByDiskControllerType(ctx context.Context, location *string, computeSizes []string, requiredType string) ([]string, error)

FilterComputeSizesByDiskControllerType returns the subset of computeSizes that are available in location AND support requiredType. Sizes without a DiskControllerTypes capability are assumed to support only SCSI (Azure historical default).

func FilterNoLocalStorageSizes added in v0.14.1

func FilterNoLocalStorageSizes(ctx context.Context, computeSizes []string) ([]string, error)

FilterNoLocalStorageSizes returns only the sizes from computeSizes that have no NVMe-only local storage (L-series). Temp disks (MaxResourceVolumeMB > 0) are allowed — they are ephemeral scratch space that does not interfere with RHEL AI's OS disk. Sizes not found in the Azure SKU catalog (typo or restricted SKU) are logged as warnings and excluded.

func FilterVMSizeOfferedByLocation added in v0.8.2

func FilterVMSizeOfferedByLocation(ctx context.Context, vmSizes []string, location string) ([]string, error)

Get InstanceTypes offerings on current location

func GetSharedImage added in v0.10.0

func GetSharedImageDiskControllerTypes added in v0.14.1

func GetSharedImageDiskControllerTypes(ctx context.Context, id *string) ([]string, error)

GetSharedImageDiskControllerTypes returns the disk controller types listed in the gallery image definition's features (e.g. ["SCSI"] for RHEL AI images). Returns nil when the feature is absent. Uses the gallery owner's subscription (parts[2] of the ARM resource ID) so the API path resolves to where the resource actually lives. The image ID must be a full ARM resource ID with 13 slash-separated parts.

func IsImageOffered

func IsImageOffered(ctx context.Context, req ImageRequest) error

func IsVMSizeOfferedByLocation added in v0.8.2

func IsVMSizeOfferedByLocation(ctx context.Context, vmSize, location string) (bool, error)

func Locations added in v0.9.6

func Locations(ctx context.Context) ([]string, error)

func LocationsBySupportedResourceType added in v0.9.6

func LocationsBySupportedResourceType(ctx context.Context, rt ResourceType) ([]string, error)

func SkuG2Support added in v0.9.1

func SkuG2Support(ctx context.Context, location string, publisher string, offer string, sku string) (string, error)

func SpotInfo added in v0.9.6

func SpotInfo(mCtx *mc.Context, args *SpotInfoArgs) (*spot.SpotResults, error)

This function will return the best spot option

func SubscriptionID added in v0.14.1

func SubscriptionID() string

SubscriptionID returns the Azure subscription ID, checking AZURE_SUBSCRIPTION_ID first, then falling back to ARM_SUBSCRIPTION_ID (Pulumi/Terraform convention).

Types

type ComputeSelector added in v0.9.5

type ComputeSelector struct{}

func NewComputeSelector added in v0.9.5

func NewComputeSelector() *ComputeSelector

func (*ComputeSelector) Select added in v0.9.5

func (c *ComputeSelector) Select(ctx context.Context, args *cr.ComputeRequestArgs) ([]string, error)

type ImageReference

type ImageReference struct {
	// Market Place
	Publisher string
	Offer     string
	Sku       string
	// Community
	CommunityImageID string
	// Private Shared
	SharedImageID string
	// Required disk controller type for this image (e.g. "SCSI", "NVMe").
	// Empty means no specific requirement; Azure uses the VM size default.
	DiskControllerType string
}

func GetImageRef

func GetImageRef(osTarget OSType, arch string, version string) (*ImageReference, error)

version should came in format X.Y (major.minor)

type ImageRequest

type ImageRequest struct {
	Region string
	ImageReference
}

type OSType

type OSType int
const (
	Ubuntu OSType = iota + 1
	RHEL
	Fedora
)

type ResourceType added in v0.9.6

type ResourceType string
const (
	RTPublicIPAddresses ResourceType = "publicIPAddresses"
	RTVirtualMachines   ResourceType = "virtualMachines"
)

type SpotInfoArgs added in v0.9.6

type SpotInfoArgs struct {
	ComputeSizes          []string
	ImageRef              *ImageReference
	OSType                string
	ExcludedLocations     []string
	SpotTolerance         *spot.Tolerance
	SpotPriceIncreaseRate *int
}

type SpotInfoResult added in v0.9.6

type SpotInfoResult struct {
	ComputeSize  string  `json:"skuName"`
	Location     string  `json:"location"`
	Price        float64 `json:"latestSpotPriceUSD"`
	EvictionRate string  `json:"evictionRate"`
}

type SpotSelector added in v0.9.5

type SpotSelector struct{}

func NewSpotSelector added in v0.9.5

func NewSpotSelector() *SpotSelector

func (*SpotSelector) Select added in v0.9.5

func (c *SpotSelector) Select(mCtx *mc.Context,
	args *spot.SpotRequestArgs) (*spot.SpotResults, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL