Skip to content

Commit

Permalink
switch from slice to map
Browse files Browse the repository at this point in the history
  • Loading branch information
cadenmarchese committed Apr 26, 2022
1 parent 8afa3b7 commit 5800086
Showing 1 changed file with 59 additions and 66 deletions.
125 changes: 59 additions & 66 deletions pkg/api/validate/vm.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,73 +7,73 @@ import (
"github.com/Azure/ARO-RP/pkg/api"
)

var supportedMasterVMSizes = []api.VMSize{
var supportedMasterVMSizes = map[api.VMSize]bool{
// General purpose
api.VMSizeStandardD8sV3,
api.VMSizeStandardD16sV3,
api.VMSizeStandardD32sV3,
api.VMSizeStandardD8sV3: true,
api.VMSizeStandardD16sV3: true,
api.VMSizeStandardD32sV3: true,
// Memory optimized
api.VMSizeStandardE64iV3,
api.VMSizeStandardE64isV3,
api.VMSizeStandardE80isV4,
api.VMSizeStandardE80idsV4,
api.VMSizeStandardE104iV5,
api.VMSizeStandardE104isV5,
api.VMSizeStandardE104idV5,
api.VMSizeStandardE104idsV5,
api.VMSizeStandardE64iV3: true,
api.VMSizeStandardE64isV3: true,
api.VMSizeStandardE80isV4: true,
api.VMSizeStandardE80idsV4: true,
api.VMSizeStandardE104iV5: true,
api.VMSizeStandardE104isV5: true,
api.VMSizeStandardE104idV5: true,
api.VMSizeStandardE104idsV5: true,
// Compute optimized
api.VMSizeStandardF72sV2,
api.VMSizeStandardF72sV2: true,
// Memory and storage optimized
api.VMSizeStandardGS5,
api.VMSizeStandardG5,
// Memory optimized
api.VMSizeStandardM128ms,
api.VMSizeStandardGS5: true,
api.VMSizeStandardG5: true,
// Memory and compute optimized
api.VMSizeStandardM128ms: true,
}

var supportedWorkerVMSizes = []api.VMSize{
var supportedWorkerVMSizes = map[api.VMSize]bool{
// General purpose
api.VMSizeStandardD4asV4,
api.VMSizeStandardD8asV4,
api.VMSizeStandardD16asV4,
api.VMSizeStandardD32asV4,
api.VMSizeStandardD4sV3,
api.VMSizeStandardD8sV3,
api.VMSizeStandardD16sV3,
api.VMSizeStandardD32sV3,
api.VMSizeStandardD4asV4: true,
api.VMSizeStandardD8asV4: true,
api.VMSizeStandardD16asV4: true,
api.VMSizeStandardD32asV4: true,
api.VMSizeStandardD4sV3: true,
api.VMSizeStandardD8sV3: true,
api.VMSizeStandardD16sV3: true,
api.VMSizeStandardD32sV3: true,
// Memory optimized
api.VMSizeStandardE4sV3,
api.VMSizeStandardE8sV3,
api.VMSizeStandardE16sV3,
api.VMSizeStandardE32sV3,
api.VMSizeStandardE64isV3,
api.VMSizeStandardE64iV3,
api.VMSizeStandardE80isV4,
api.VMSizeStandardE80idsV4,
api.VMSizeStandardE104iV5,
api.VMSizeStandardE104isV5,
api.VMSizeStandardE104idV5,
api.VMSizeStandardE104idsV5,
api.VMSizeStandardE4sV3: true,
api.VMSizeStandardE8sV3: true,
api.VMSizeStandardE16sV3: true,
api.VMSizeStandardE32sV3: true,
api.VMSizeStandardE64isV3: true,
api.VMSizeStandardE64iV3: true,
api.VMSizeStandardE80isV4: true,
api.VMSizeStandardE80idsV4: true,
api.VMSizeStandardE104iV5: true,
api.VMSizeStandardE104isV5: true,
api.VMSizeStandardE104idV5: true,
api.VMSizeStandardE104idsV5: true,
// Compute optimized
api.VMSizeStandardF4sV2,
api.VMSizeStandardF8sV2,
api.VMSizeStandardF16sV2,
api.VMSizeStandardF32sV2,
api.VMSizeStandardF72sV2,
api.VMSizeStandardF4sV2: true,
api.VMSizeStandardF8sV2: true,
api.VMSizeStandardF16sV2: true,
api.VMSizeStandardF32sV2: true,
api.VMSizeStandardF72sV2: true,
// Memory and storage optimized
api.VMSizeStandardG5,
api.VMSizeStandardGS5,
// Memory optimized
api.VMSizeStandardM128ms,
api.VMSizeStandardG5: true,
api.VMSizeStandardGS5: true,
// Memory and compute optimized
api.VMSizeStandardM128ms: true,
// Storage optimized
api.VMSizeStandardL4s,
api.VMSizeStandardL8s,
api.VMSizeStandardL16s,
api.VMSizeStandardL32s,
api.VMSizeStandardL8sV2,
api.VMSizeStandardL16sV2,
api.VMSizeStandardL32sV2,
api.VMSizeStandardL48sV2,
api.VMSizeStandardL64sV2,
api.VMSizeStandardL4s: true,
api.VMSizeStandardL8s: true,
api.VMSizeStandardL16s: true,
api.VMSizeStandardL32s: true,
api.VMSizeStandardL8sV2: true,
api.VMSizeStandardL16sV2: true,
api.VMSizeStandardL32sV2: true,
api.VMSizeStandardL48sV2: true,
api.VMSizeStandardL64sV2: true,
}

func DiskSizeIsValid(sizeGB int) bool {
Expand All @@ -82,20 +82,13 @@ func DiskSizeIsValid(sizeGB int) bool {

func VMSizeIsValid(vmSize api.VMSize, requiredD2sV3Workers, isMaster bool) bool {
if isMaster {
for _, supportedSize := range supportedMasterVMSizes {
if supportedSize == vmSize {
return true
}
}
}

for _, supportedSize := range supportedWorkerVMSizes {
if supportedSize == vmSize && !requiredD2sV3Workers {
if supportedMasterVMSizes[vmSize] {
return true
}
}

if requiredD2sV3Workers && vmSize == api.VMSizeStandardD2sV3 {
if supportedWorkerVMSizes[vmSize] && !requiredD2sV3Workers ||
requiredD2sV3Workers && vmSize == api.VMSizeStandardD2sV3 {
return true
}

Expand Down

0 comments on commit 5800086

Please sign in to comment.