mirror of https://github.com/kubernetes/kops.git
Switch to using ec2.DescribeInstanceTypes for building the MachineType list
This commit is contained in:
parent
c4d8fcf34a
commit
1b29afb45d
|
@ -2,18 +2,14 @@ load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
|
||||||
|
|
||||||
go_library(
|
go_library(
|
||||||
name = "go_default_library",
|
name = "go_default_library",
|
||||||
srcs = [
|
srcs = ["machine_types.go"],
|
||||||
"machine_types.go",
|
|
||||||
"vpc_ip_resource_limit.go",
|
|
||||||
],
|
|
||||||
importpath = "k8s.io/kops/hack/machine_types",
|
importpath = "k8s.io/kops/hack/machine_types",
|
||||||
visibility = ["//visibility:private"],
|
visibility = ["//visibility:private"],
|
||||||
deps = [
|
deps = [
|
||||||
"//upup/pkg/fi/cloudup/awsup:go_default_library",
|
"//upup/pkg/fi/cloudup/awsup:go_default_library",
|
||||||
"//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
|
"//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
|
||||||
"//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library",
|
|
||||||
"//vendor/github.com/aws/aws-sdk-go/aws/session:go_default_library",
|
"//vendor/github.com/aws/aws-sdk-go/aws/session:go_default_library",
|
||||||
"//vendor/github.com/aws/aws-sdk-go/service/pricing:go_default_library",
|
"//vendor/github.com/aws/aws-sdk-go/service/ec2:go_default_library",
|
||||||
"//vendor/k8s.io/klog:go_default_library",
|
"//vendor/k8s.io/klog:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
|
@ -22,15 +22,14 @@ import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"math"
|
||||||
"os"
|
"os"
|
||||||
"sort"
|
"sort"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/aws/aws-sdk-go/aws"
|
"github.com/aws/aws-sdk-go/aws"
|
||||||
"github.com/aws/aws-sdk-go/aws/awserr"
|
|
||||||
"github.com/aws/aws-sdk-go/aws/session"
|
"github.com/aws/aws-sdk-go/aws/session"
|
||||||
"github.com/aws/aws-sdk-go/service/pricing"
|
"github.com/aws/aws-sdk-go/service/ec2"
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
"k8s.io/kops/upup/pkg/fi/cloudup/awsup"
|
"k8s.io/kops/upup/pkg/fi/cloudup/awsup"
|
||||||
)
|
)
|
||||||
|
@ -55,10 +54,104 @@ func run() error {
|
||||||
|
|
||||||
klog.Info("Beginning AWS Machine Refresh")
|
klog.Info("Beginning AWS Machine Refresh")
|
||||||
|
|
||||||
machines := []awsup.AWSMachineTypeInfo{}
|
// These are instance types not available in every account
|
||||||
families := make(map[string]struct{})
|
// If they're not available, they wont be in the ec2.DescribeInstanceTypes response
|
||||||
|
// so they are hardcoded here for reference.
|
||||||
|
// Note that the m6g instances do not have ENI or IP information
|
||||||
|
machines := []awsup.AWSMachineTypeInfo{
|
||||||
|
{
|
||||||
|
Name: "cr1.8xlarge",
|
||||||
|
MemoryGB: 244,
|
||||||
|
Cores: 32,
|
||||||
|
InstanceENIs: 8,
|
||||||
|
InstanceIPsPerENI: 30,
|
||||||
|
EphemeralDisks: []int{120, 120},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "hs1.8xlarge",
|
||||||
|
MemoryGB: 117,
|
||||||
|
Cores: 16,
|
||||||
|
InstanceENIs: 8,
|
||||||
|
InstanceIPsPerENI: 30,
|
||||||
|
EphemeralDisks: []int{2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "m6g.medium",
|
||||||
|
MemoryGB: 4,
|
||||||
|
Cores: 1,
|
||||||
|
InstanceENIs: 0,
|
||||||
|
InstanceIPsPerENI: 0,
|
||||||
|
EphemeralDisks: nil,
|
||||||
|
},
|
||||||
|
|
||||||
prices := []aws.JSONValue{}
|
{
|
||||||
|
Name: "m6g.large",
|
||||||
|
MemoryGB: 8,
|
||||||
|
Cores: 2,
|
||||||
|
InstanceENIs: 0,
|
||||||
|
InstanceIPsPerENI: 0,
|
||||||
|
EphemeralDisks: nil,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
Name: "m6g.xlarge",
|
||||||
|
MemoryGB: 16,
|
||||||
|
Cores: 4,
|
||||||
|
InstanceENIs: 0,
|
||||||
|
InstanceIPsPerENI: 0,
|
||||||
|
EphemeralDisks: nil,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
Name: "m6g.2xlarge",
|
||||||
|
MemoryGB: 32,
|
||||||
|
Cores: 8,
|
||||||
|
InstanceENIs: 0,
|
||||||
|
InstanceIPsPerENI: 0,
|
||||||
|
EphemeralDisks: nil,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
Name: "m6g.4xlarge",
|
||||||
|
MemoryGB: 64,
|
||||||
|
Cores: 16,
|
||||||
|
InstanceENIs: 0,
|
||||||
|
InstanceIPsPerENI: 0,
|
||||||
|
EphemeralDisks: nil,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
Name: "m6g.8xlarge",
|
||||||
|
MemoryGB: 128,
|
||||||
|
Cores: 32,
|
||||||
|
InstanceENIs: 0,
|
||||||
|
InstanceIPsPerENI: 0,
|
||||||
|
EphemeralDisks: nil,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
Name: "m6g.12xlarge",
|
||||||
|
MemoryGB: 192,
|
||||||
|
Cores: 48,
|
||||||
|
InstanceENIs: 0,
|
||||||
|
InstanceIPsPerENI: 0,
|
||||||
|
EphemeralDisks: nil,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
Name: "m6g.16xlarge",
|
||||||
|
MemoryGB: 256,
|
||||||
|
Cores: 64,
|
||||||
|
InstanceENIs: 0,
|
||||||
|
InstanceIPsPerENI: 0,
|
||||||
|
EphemeralDisks: nil,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
families := map[string]struct{}{
|
||||||
|
"cr1": {},
|
||||||
|
"hs1": {},
|
||||||
|
"m6g": {},
|
||||||
|
}
|
||||||
|
|
||||||
config := aws.NewConfig()
|
config := aws.NewConfig()
|
||||||
// Give verbose errors on auth problems
|
// Give verbose errors on auth problems
|
||||||
|
@ -70,144 +163,54 @@ func run() error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
svc := pricing.New(sess, config)
|
client := ec2.New(sess, config)
|
||||||
typeTerm := pricing.FilterTypeTermMatch
|
instanceTypes := make([]*ec2.InstanceTypeInfo, 0)
|
||||||
input := &pricing.GetProductsInput{
|
err = client.DescribeInstanceTypesPages(&ec2.DescribeInstanceTypesInput{},
|
||||||
Filters: []*pricing.Filter{
|
func(page *ec2.DescribeInstanceTypesOutput, lastPage bool) bool {
|
||||||
{
|
instanceTypes = append(instanceTypes, page.InstanceTypes...)
|
||||||
Field: aws.String("operatingSystem"),
|
return true
|
||||||
Type: &typeTerm,
|
})
|
||||||
Value: aws.String("Linux"),
|
if err != nil {
|
||||||
},
|
return err
|
||||||
{
|
|
||||||
Field: aws.String("tenancy"),
|
|
||||||
Type: &typeTerm,
|
|
||||||
Value: aws.String("shared"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Field: aws.String("location"),
|
|
||||||
Type: &typeTerm,
|
|
||||||
Value: aws.String("US East (N. Virginia)"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Field: aws.String("preInstalledSw"),
|
|
||||||
Type: &typeTerm,
|
|
||||||
Value: aws.String("NA"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
FormatVersion: aws.String("aws_v1"),
|
|
||||||
ServiceCode: aws.String("AmazonEC2"),
|
|
||||||
}
|
|
||||||
|
|
||||||
for {
|
|
||||||
result, err := svc.GetProducts(input)
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
if aerr, ok := err.(awserr.Error); ok {
|
|
||||||
switch aerr.Code() {
|
|
||||||
case pricing.ErrCodeInternalErrorException:
|
|
||||||
return fmt.Errorf("%s: %v", pricing.ErrCodeInternalErrorException, aerr)
|
|
||||||
case pricing.ErrCodeInvalidParameterException:
|
|
||||||
return fmt.Errorf("%s: %v", pricing.ErrCodeInvalidParameterException, aerr)
|
|
||||||
case pricing.ErrCodeNotFoundException:
|
|
||||||
return fmt.Errorf("%s: %v", pricing.ErrCodeNotFoundException, aerr)
|
|
||||||
case pricing.ErrCodeInvalidNextTokenException:
|
|
||||||
return fmt.Errorf("%s: %v", pricing.ErrCodeInvalidNextTokenException, aerr)
|
|
||||||
case pricing.ErrCodeExpiredNextTokenException:
|
|
||||||
return fmt.Errorf("%s: %v", pricing.ErrCodeExpiredNextTokenException, aerr)
|
|
||||||
default:
|
|
||||||
return aerr
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Print the error, cast err to awserr.Error to get the Code and
|
|
||||||
// Message from an error.
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
prices = append(prices, result.PriceList...)
|
|
||||||
|
|
||||||
if result.NextToken != nil {
|
|
||||||
input.NextToken = result.NextToken
|
|
||||||
} else {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var warnings []string
|
var warnings []string
|
||||||
|
|
||||||
seen := map[string]bool{}
|
seen := map[string]bool{}
|
||||||
for _, item := range prices {
|
for _, typeInfo := range instanceTypes {
|
||||||
for k, v := range item {
|
instanceType := *typeInfo.InstanceType
|
||||||
if k == "product" {
|
|
||||||
product := v.(map[string]interface{})
|
|
||||||
attributes := map[string]string{}
|
|
||||||
for k, v := range product["attributes"].(map[string]interface{}) {
|
|
||||||
attributes[k] = v.(string)
|
|
||||||
}
|
|
||||||
|
|
||||||
instanceType := attributes["instanceType"]
|
if _, ok := seen[instanceType]; ok {
|
||||||
|
continue
|
||||||
if _, ok := seen[instanceType]; ok {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
seen[instanceType] = true
|
|
||||||
|
|
||||||
machine := awsup.AWSMachineTypeInfo{
|
|
||||||
Name: instanceType,
|
|
||||||
Cores: stringToInt(attributes["vcpu"]),
|
|
||||||
}
|
|
||||||
|
|
||||||
memory := strings.TrimSuffix(attributes["memory"], " GiB")
|
|
||||||
machine.MemoryGB = stringToFloat32(memory)
|
|
||||||
|
|
||||||
if attributes["storage"] != "EBS only" {
|
|
||||||
storage := strings.Split(attributes["storage"], " ")
|
|
||||||
var size int
|
|
||||||
var count int
|
|
||||||
if len(storage) > 1 {
|
|
||||||
count = stringToInt(storage[0])
|
|
||||||
if storage[2] == "NVMe" {
|
|
||||||
count = 1
|
|
||||||
size = stringToInt(storage[0])
|
|
||||||
} else {
|
|
||||||
size = stringToInt(storage[2])
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
count = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
ephemeralDisks := []int{}
|
|
||||||
for i := 0; i < count; i++ {
|
|
||||||
ephemeralDisks = append(ephemeralDisks, size)
|
|
||||||
}
|
|
||||||
|
|
||||||
machine.EphemeralDisks = ephemeralDisks
|
|
||||||
}
|
|
||||||
|
|
||||||
if attributes["instanceFamily"] == "GPU instance" {
|
|
||||||
machine.GPU = true
|
|
||||||
}
|
|
||||||
|
|
||||||
if enis, enisOK := InstanceENIsAvailable[instanceType]; enisOK {
|
|
||||||
machine.InstanceENIs = enis
|
|
||||||
} else {
|
|
||||||
warnings = append(warnings, fmt.Sprintf("ENIs not known for %s", instanceType))
|
|
||||||
}
|
|
||||||
|
|
||||||
if ipsPerENI, ipsOK := InstanceIPsAvailable[instanceType]; ipsOK {
|
|
||||||
machine.InstanceIPsPerENI = int(ipsPerENI)
|
|
||||||
} else {
|
|
||||||
warnings = append(warnings, fmt.Sprintf("IPs per ENI not known for %s", instanceType))
|
|
||||||
}
|
|
||||||
|
|
||||||
machines = append(machines, machine)
|
|
||||||
|
|
||||||
family := strings.Split(instanceType, ".")[0]
|
|
||||||
families[family] = struct{}{}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
seen[instanceType] = true
|
||||||
|
machine := awsup.AWSMachineTypeInfo{
|
||||||
|
Name: instanceType,
|
||||||
|
GPU: typeInfo.GpuInfo != nil,
|
||||||
|
InstanceENIs: intValue(typeInfo.NetworkInfo.MaximumNetworkInterfaces),
|
||||||
|
InstanceIPsPerENI: intValue(typeInfo.NetworkInfo.Ipv4AddressesPerInterface),
|
||||||
|
}
|
||||||
|
memoryGB := float64(intValue(typeInfo.MemoryInfo.SizeInMiB)) / 1024
|
||||||
|
machine.MemoryGB = float32(math.Round(memoryGB*100) / 100)
|
||||||
|
|
||||||
|
if typeInfo.VCpuInfo != nil && typeInfo.VCpuInfo.DefaultVCpus != nil {
|
||||||
|
machine.Cores = intValue(typeInfo.VCpuInfo.DefaultVCpus)
|
||||||
|
}
|
||||||
|
if typeInfo.InstanceStorageInfo != nil && len(typeInfo.InstanceStorageInfo.Disks) > 0 {
|
||||||
|
disks := make([]int, 0)
|
||||||
|
for _, disk := range typeInfo.InstanceStorageInfo.Disks {
|
||||||
|
for i := 0; i < intValue(disk.Count); i++ {
|
||||||
|
disks = append(disks, intValue(disk.SizeInGB))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
machine.EphemeralDisks = disks
|
||||||
|
}
|
||||||
|
|
||||||
|
machines = append(machines, machine)
|
||||||
|
|
||||||
|
family := strings.Split(instanceType, ".")[0]
|
||||||
|
families[family] = struct{}{}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sortedFamilies := []string{}
|
sortedFamilies := []string{}
|
||||||
|
@ -248,6 +251,7 @@ func run() error {
|
||||||
output = output + fmt.Sprintf("\n// %s family", f)
|
output = output + fmt.Sprintf("\n// %s family", f)
|
||||||
for _, m := range machines {
|
for _, m := range machines {
|
||||||
if family := strings.Split(m.Name, ".")[0]; family == f {
|
if family := strings.Split(m.Name, ".")[0]; family == f {
|
||||||
|
|
||||||
body := fmt.Sprintf(`
|
body := fmt.Sprintf(`
|
||||||
{
|
{
|
||||||
Name: "%s",
|
Name: "%s",
|
||||||
|
@ -319,22 +323,6 @@ func run() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func stringToFloat32(s string) float32 {
|
func intValue(v *int64) int {
|
||||||
// For 1,000 case
|
return int(aws.Int64Value(v))
|
||||||
clean := strings.Replace(s, ",", "", -1)
|
|
||||||
value, err := strconv.ParseFloat(clean, 32)
|
|
||||||
if err != nil {
|
|
||||||
klog.Errorf("error converting string to float32: %v", err)
|
|
||||||
}
|
|
||||||
return float32(value)
|
|
||||||
}
|
|
||||||
|
|
||||||
func stringToInt(s string) int {
|
|
||||||
// For 1,000 case
|
|
||||||
clean := strings.Replace(s, ",", "", -1)
|
|
||||||
value, err := strconv.Atoi(clean)
|
|
||||||
if err != nil {
|
|
||||||
klog.Error(err)
|
|
||||||
}
|
|
||||||
return value
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,566 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2019 The Kubernetes Authors.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License"). You may
|
|
||||||
// not use this file except in compliance with the License. A copy of the
|
|
||||||
// License is located at
|
|
||||||
//
|
|
||||||
// http://aws.amazon.com/apache2.0/
|
|
||||||
//
|
|
||||||
// or in the "license" file accompanying this file. This file is distributed
|
|
||||||
// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
|
||||||
// express or implied. See the License for the specific language governing
|
|
||||||
// permissions and limitations under the License.
|
|
||||||
|
|
||||||
package main
|
|
||||||
|
|
||||||
// InstanceENIsAvailable contains a mapping of instance types to the number of ENIs available which is described at
|
|
||||||
// https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI
|
|
||||||
var InstanceENIsAvailable = map[string]int{
|
|
||||||
"a1.2xlarge": 4,
|
|
||||||
"a1.4xlarge": 8,
|
|
||||||
"a1.large": 3,
|
|
||||||
"a1.medium": 2,
|
|
||||||
"a1.metal": 8,
|
|
||||||
"a1.xlarge": 4,
|
|
||||||
"c1.medium": 2,
|
|
||||||
"c1.xlarge": 4,
|
|
||||||
"c3.2xlarge": 4,
|
|
||||||
"c3.4xlarge": 8,
|
|
||||||
"c3.8xlarge": 8,
|
|
||||||
"c3.large": 3,
|
|
||||||
"c3.xlarge": 4,
|
|
||||||
"c4.2xlarge": 4,
|
|
||||||
"c4.4xlarge": 8,
|
|
||||||
"c4.8xlarge": 8,
|
|
||||||
"c4.large": 3,
|
|
||||||
"c4.xlarge": 4,
|
|
||||||
"c5.12xlarge": 8,
|
|
||||||
"c5.18xlarge": 15,
|
|
||||||
"c5.24xlarge": 15,
|
|
||||||
"c5.2xlarge": 4,
|
|
||||||
"c5.4xlarge": 8,
|
|
||||||
"c5.9xlarge": 8,
|
|
||||||
"c5.large": 3,
|
|
||||||
"c5.metal": 15,
|
|
||||||
"c5.xlarge": 4,
|
|
||||||
"c5d.12xlarge": 8,
|
|
||||||
"c5d.18xlarge": 15,
|
|
||||||
"c5d.24xlarge": 15,
|
|
||||||
"c5d.2xlarge": 4,
|
|
||||||
"c5d.4xlarge": 8,
|
|
||||||
"c5d.9xlarge": 8,
|
|
||||||
"c5d.large": 3,
|
|
||||||
"c5d.metal": 15,
|
|
||||||
"c5d.xlarge": 4,
|
|
||||||
"c5n.18xlarge": 15,
|
|
||||||
"c5n.2xlarge": 4,
|
|
||||||
"c5n.4xlarge": 8,
|
|
||||||
"c5n.9xlarge": 8,
|
|
||||||
"c5n.large": 3,
|
|
||||||
"c5n.metal": 15,
|
|
||||||
"c5n.xlarge": 4,
|
|
||||||
"cc2.8xlarge": 8,
|
|
||||||
"cr1.8xlarge": 8,
|
|
||||||
"d2.2xlarge": 4,
|
|
||||||
"d2.4xlarge": 8,
|
|
||||||
"d2.8xlarge": 8,
|
|
||||||
"d2.xlarge": 4,
|
|
||||||
"f1.16xlarge": 8,
|
|
||||||
"f1.2xlarge": 4,
|
|
||||||
"f1.4xlarge": 8,
|
|
||||||
"g2.2xlarge": 4,
|
|
||||||
"g2.8xlarge": 8,
|
|
||||||
"g3.16xlarge": 15,
|
|
||||||
"g3.4xlarge": 8,
|
|
||||||
"g3.8xlarge": 8,
|
|
||||||
"g3s.xlarge": 4,
|
|
||||||
"g4dn.12xlarge": 8,
|
|
||||||
"g4dn.16xlarge": 15,
|
|
||||||
"g4dn.2xlarge": 3,
|
|
||||||
"g4dn.4xlarge": 3,
|
|
||||||
"g4dn.8xlarge": 4,
|
|
||||||
"g4dn.xlarge": 3,
|
|
||||||
"h1.16xlarge": 15,
|
|
||||||
"h1.2xlarge": 4,
|
|
||||||
"h1.4xlarge": 8,
|
|
||||||
"h1.8xlarge": 8,
|
|
||||||
"hs1.8xlarge": 8,
|
|
||||||
"i2.2xlarge": 4,
|
|
||||||
"i2.4xlarge": 8,
|
|
||||||
"i2.8xlarge": 8,
|
|
||||||
"i2.xlarge": 4,
|
|
||||||
"i3.16xlarge": 15,
|
|
||||||
"i3.2xlarge": 4,
|
|
||||||
"i3.4xlarge": 8,
|
|
||||||
"i3.8xlarge": 8,
|
|
||||||
"i3.large": 3,
|
|
||||||
"i3.metal": 15,
|
|
||||||
"i3.xlarge": 4,
|
|
||||||
"i3en.12xlarge": 8,
|
|
||||||
"i3en.24xlarge": 15,
|
|
||||||
"i3en.2xlarge": 4,
|
|
||||||
"i3en.3xlarge": 4,
|
|
||||||
"i3en.6xlarge": 8,
|
|
||||||
"i3en.large": 3,
|
|
||||||
"i3en.metal": 15,
|
|
||||||
"i3en.xlarge": 4,
|
|
||||||
"inf1.xlarge": 4,
|
|
||||||
"inf1.2xlarge": 4,
|
|
||||||
"inf1.6xlarge": 8,
|
|
||||||
"inf1.24xlarge": 15,
|
|
||||||
"m1.large": 3,
|
|
||||||
"m1.medium": 2,
|
|
||||||
"m1.small": 2,
|
|
||||||
"m1.xlarge": 4,
|
|
||||||
"m2.2xlarge": 4,
|
|
||||||
"m2.4xlarge": 8,
|
|
||||||
"m2.xlarge": 4,
|
|
||||||
"m3.2xlarge": 4,
|
|
||||||
"m3.large": 3,
|
|
||||||
"m3.medium": 2,
|
|
||||||
"m3.xlarge": 4,
|
|
||||||
"m4.10xlarge": 8,
|
|
||||||
"m4.16xlarge": 8,
|
|
||||||
"m4.2xlarge": 4,
|
|
||||||
"m4.4xlarge": 8,
|
|
||||||
"m4.large": 2,
|
|
||||||
"m4.xlarge": 4,
|
|
||||||
"m5.12xlarge": 8,
|
|
||||||
"m5.16xlarge": 15,
|
|
||||||
"m5.24xlarge": 15,
|
|
||||||
"m5.2xlarge": 4,
|
|
||||||
"m5.4xlarge": 8,
|
|
||||||
"m5.8xlarge": 8,
|
|
||||||
"m5.large": 3,
|
|
||||||
"m5.metal": 15,
|
|
||||||
"m5.xlarge": 4,
|
|
||||||
"m5a.12xlarge": 8,
|
|
||||||
"m5a.16xlarge": 15,
|
|
||||||
"m5a.24xlarge": 15,
|
|
||||||
"m5a.2xlarge": 4,
|
|
||||||
"m5a.4xlarge": 8,
|
|
||||||
"m5a.8xlarge": 8,
|
|
||||||
"m5a.large": 3,
|
|
||||||
"m5a.xlarge": 4,
|
|
||||||
"m5ad.12xlarge": 8,
|
|
||||||
"m5ad.24xlarge": 15,
|
|
||||||
"m5ad.2xlarge": 4,
|
|
||||||
"m5ad.4xlarge": 8,
|
|
||||||
"m5ad.large": 3,
|
|
||||||
"m5ad.xlarge": 4,
|
|
||||||
"m5d.12xlarge": 8,
|
|
||||||
"m5d.16xlarge": 15,
|
|
||||||
"m5d.24xlarge": 15,
|
|
||||||
"m5d.2xlarge": 4,
|
|
||||||
"m5d.4xlarge": 8,
|
|
||||||
"m5d.8xlarge": 8,
|
|
||||||
"m5d.large": 3,
|
|
||||||
"m5d.metal": 15,
|
|
||||||
"m5d.xlarge": 4,
|
|
||||||
"m5dn.12xlarge": 8,
|
|
||||||
"m5dn.16xlarge": 15,
|
|
||||||
"m5dn.24xlarge": 15,
|
|
||||||
"m5dn.2xlarge": 4,
|
|
||||||
"m5dn.4xlarge": 8,
|
|
||||||
"m5dn.8xlarge": 8,
|
|
||||||
"m5dn.large": 3,
|
|
||||||
"m5dn.xlarge": 4,
|
|
||||||
"m5n.12xlarge": 8,
|
|
||||||
"m5n.16xlarge": 15,
|
|
||||||
"m5n.24xlarge": 15,
|
|
||||||
"m5n.2xlarge": 4,
|
|
||||||
"m5n.4xlarge": 8,
|
|
||||||
"m5n.8xlarge": 8,
|
|
||||||
"m5n.large": 3,
|
|
||||||
"m5n.xlarge": 4,
|
|
||||||
"p2.16xlarge": 8,
|
|
||||||
"p2.8xlarge": 8,
|
|
||||||
"p2.xlarge": 4,
|
|
||||||
"p3.16xlarge": 8,
|
|
||||||
"p3.2xlarge": 4,
|
|
||||||
"p3.8xlarge": 8,
|
|
||||||
"p3dn.24xlarge": 15,
|
|
||||||
"r3.2xlarge": 4,
|
|
||||||
"r3.4xlarge": 8,
|
|
||||||
"r3.8xlarge": 8,
|
|
||||||
"r3.large": 3,
|
|
||||||
"r3.xlarge": 4,
|
|
||||||
"r4.16xlarge": 15,
|
|
||||||
"r4.2xlarge": 4,
|
|
||||||
"r4.4xlarge": 8,
|
|
||||||
"r4.8xlarge": 8,
|
|
||||||
"r4.large": 3,
|
|
||||||
"r4.xlarge": 4,
|
|
||||||
"r5.12xlarge": 8,
|
|
||||||
"r5.16xlarge": 15,
|
|
||||||
"r5.24xlarge": 15,
|
|
||||||
"r5.2xlarge": 4,
|
|
||||||
"r5.4xlarge": 8,
|
|
||||||
"r5.8xlarge": 8,
|
|
||||||
"r5.large": 3,
|
|
||||||
"r5.metal": 15,
|
|
||||||
"r5.xlarge": 4,
|
|
||||||
"r5a.12xlarge": 8,
|
|
||||||
"r5a.16xlarge": 15,
|
|
||||||
"r5a.24xlarge": 15,
|
|
||||||
"r5a.2xlarge": 4,
|
|
||||||
"r5a.4xlarge": 8,
|
|
||||||
"r5a.8xlarge": 8,
|
|
||||||
"r5a.large": 3,
|
|
||||||
"r5a.xlarge": 4,
|
|
||||||
"r5ad.12xlarge": 8,
|
|
||||||
"r5ad.24xlarge": 15,
|
|
||||||
"r5ad.2xlarge": 4,
|
|
||||||
"r5ad.4xlarge": 8,
|
|
||||||
"r5ad.large": 3,
|
|
||||||
"r5ad.xlarge": 4,
|
|
||||||
"r5d.12xlarge": 8,
|
|
||||||
"r5d.16xlarge": 15,
|
|
||||||
"r5d.24xlarge": 15,
|
|
||||||
"r5d.2xlarge": 4,
|
|
||||||
"r5d.4xlarge": 8,
|
|
||||||
"r5d.8xlarge": 8,
|
|
||||||
"r5d.large": 3,
|
|
||||||
"r5d.metal": 15,
|
|
||||||
"r5d.xlarge": 4,
|
|
||||||
"r5dn.12xlarge": 8,
|
|
||||||
"r5dn.16xlarge": 15,
|
|
||||||
"r5dn.24xlarge": 15,
|
|
||||||
"r5dn.2xlarge": 4,
|
|
||||||
"r5dn.4xlarge": 8,
|
|
||||||
"r5dn.8xlarge": 8,
|
|
||||||
"r5dn.large": 3,
|
|
||||||
"r5dn.xlarge": 4,
|
|
||||||
"r5n.12xlarge": 8,
|
|
||||||
"r5n.16xlarge": 15,
|
|
||||||
"r5n.24xlarge": 15,
|
|
||||||
"r5n.2xlarge": 4,
|
|
||||||
"r5n.4xlarge": 8,
|
|
||||||
"r5n.8xlarge": 8,
|
|
||||||
"r5n.large": 3,
|
|
||||||
"r5n.xlarge": 4,
|
|
||||||
"t1.micro": 2,
|
|
||||||
"t2.2xlarge": 3,
|
|
||||||
"t2.large": 3,
|
|
||||||
"t2.medium": 3,
|
|
||||||
"t2.micro": 2,
|
|
||||||
"t2.nano": 2,
|
|
||||||
"t2.small": 3,
|
|
||||||
"t2.xlarge": 3,
|
|
||||||
"t3.2xlarge": 4,
|
|
||||||
"t3.large": 3,
|
|
||||||
"t3.medium": 3,
|
|
||||||
"t3.micro": 2,
|
|
||||||
"t3.nano": 2,
|
|
||||||
"t3.small": 3,
|
|
||||||
"t3.xlarge": 4,
|
|
||||||
"t3a.2xlarge": 4,
|
|
||||||
"t3a.large": 3,
|
|
||||||
"t3a.medium": 3,
|
|
||||||
"t3a.micro": 2,
|
|
||||||
"t3a.nano": 2,
|
|
||||||
"t3a.small": 3,
|
|
||||||
"t3a.xlarge": 4,
|
|
||||||
"u-12tb1.metal": 5,
|
|
||||||
"u-6tb1.metal": 5,
|
|
||||||
"u-9tb1.metal": 5,
|
|
||||||
"x1.16xlarge": 8,
|
|
||||||
"x1.32xlarge": 8,
|
|
||||||
"x1e.16xlarge": 8,
|
|
||||||
"x1e.2xlarge": 4,
|
|
||||||
"x1e.32xlarge": 8,
|
|
||||||
"x1e.4xlarge": 4,
|
|
||||||
"x1e.8xlarge": 4,
|
|
||||||
"x1e.xlarge": 3,
|
|
||||||
"z1d.12xlarge": 15,
|
|
||||||
"z1d.2xlarge": 4,
|
|
||||||
"z1d.3xlarge": 8,
|
|
||||||
"z1d.6xlarge": 8,
|
|
||||||
"z1d.large": 3,
|
|
||||||
"z1d.metal": 15,
|
|
||||||
"z1d.xlarge": 4,
|
|
||||||
}
|
|
||||||
|
|
||||||
// InstanceIPsAvailable contains a mapping of instance types to the number of IPs per ENI
|
|
||||||
// https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI
|
|
||||||
var InstanceIPsAvailable = map[string]int64{
|
|
||||||
"a1.2xlarge": 15,
|
|
||||||
"a1.4xlarge": 30,
|
|
||||||
"a1.large": 10,
|
|
||||||
"a1.medium": 4,
|
|
||||||
"a1.metal": 30,
|
|
||||||
"a1.xlarge": 15,
|
|
||||||
"c1.medium": 6,
|
|
||||||
"c1.xlarge": 15,
|
|
||||||
"c3.2xlarge": 15,
|
|
||||||
"c3.4xlarge": 30,
|
|
||||||
"c3.8xlarge": 30,
|
|
||||||
"c3.large": 10,
|
|
||||||
"c3.xlarge": 15,
|
|
||||||
"c4.2xlarge": 15,
|
|
||||||
"c4.4xlarge": 30,
|
|
||||||
"c4.8xlarge": 30,
|
|
||||||
"c4.large": 10,
|
|
||||||
"c4.xlarge": 15,
|
|
||||||
"c5.12xlarge": 30,
|
|
||||||
"c5.18xlarge": 50,
|
|
||||||
"c5.24xlarge": 50,
|
|
||||||
"c5.2xlarge": 15,
|
|
||||||
"c5.4xlarge": 30,
|
|
||||||
"c5.9xlarge": 30,
|
|
||||||
"c5.large": 10,
|
|
||||||
"c5.metal": 50,
|
|
||||||
"c5.xlarge": 15,
|
|
||||||
"c5d.12xlarge": 30,
|
|
||||||
"c5d.18xlarge": 50,
|
|
||||||
"c5d.24xlarge": 50,
|
|
||||||
"c5d.2xlarge": 15,
|
|
||||||
"c5d.4xlarge": 30,
|
|
||||||
"c5d.9xlarge": 30,
|
|
||||||
"c5d.large": 10,
|
|
||||||
"c5d.metal": 50,
|
|
||||||
"c5d.xlarge": 15,
|
|
||||||
"c5n.18xlarge": 50,
|
|
||||||
"c5n.2xlarge": 15,
|
|
||||||
"c5n.4xlarge": 30,
|
|
||||||
"c5n.9xlarge": 30,
|
|
||||||
"c5n.large": 10,
|
|
||||||
"c5n.metal": 50,
|
|
||||||
"c5n.xlarge": 15,
|
|
||||||
"cc2.8xlarge": 30,
|
|
||||||
"cr1.8xlarge": 30,
|
|
||||||
"d2.2xlarge": 15,
|
|
||||||
"d2.4xlarge": 30,
|
|
||||||
"d2.8xlarge": 30,
|
|
||||||
"d2.xlarge": 15,
|
|
||||||
"f1.16xlarge": 50,
|
|
||||||
"f1.2xlarge": 15,
|
|
||||||
"f1.4xlarge": 30,
|
|
||||||
"g2.2xlarge": 15,
|
|
||||||
"g2.8xlarge": 30,
|
|
||||||
"g3.16xlarge": 50,
|
|
||||||
"g3.4xlarge": 30,
|
|
||||||
"g3.8xlarge": 30,
|
|
||||||
"g3s.xlarge": 15,
|
|
||||||
"g4dn.12xlarge": 30,
|
|
||||||
"g4dn.16xlarge": 50,
|
|
||||||
"g4dn.2xlarge": 10,
|
|
||||||
"g4dn.4xlarge": 10,
|
|
||||||
"g4dn.8xlarge": 15,
|
|
||||||
"g4dn.xlarge": 10,
|
|
||||||
"h1.16xlarge": 50,
|
|
||||||
"h1.2xlarge": 15,
|
|
||||||
"h1.4xlarge": 30,
|
|
||||||
"h1.8xlarge": 30,
|
|
||||||
"hs1.8xlarge": 30,
|
|
||||||
"i2.2xlarge": 15,
|
|
||||||
"i2.4xlarge": 30,
|
|
||||||
"i2.8xlarge": 30,
|
|
||||||
"i2.xlarge": 15,
|
|
||||||
"i3.16xlarge": 50,
|
|
||||||
"i3.2xlarge": 15,
|
|
||||||
"i3.4xlarge": 30,
|
|
||||||
"i3.8xlarge": 30,
|
|
||||||
"i3.large": 10,
|
|
||||||
"i3.metal": 50,
|
|
||||||
"i3.xlarge": 15,
|
|
||||||
"i3en.12xlarge": 30,
|
|
||||||
"i3en.24xlarge": 50,
|
|
||||||
"i3en.2xlarge": 15,
|
|
||||||
"i3en.3xlarge": 15,
|
|
||||||
"i3en.6xlarge": 30,
|
|
||||||
"i3en.large": 10,
|
|
||||||
"i3en.metal": 50,
|
|
||||||
"i3en.xlarge": 15,
|
|
||||||
"inf1.xlarge": 10,
|
|
||||||
"inf1.2xlarge": 10,
|
|
||||||
"inf1.6xlarge": 30,
|
|
||||||
"inf1.24xlarge": 50,
|
|
||||||
"m1.large": 10,
|
|
||||||
"m1.medium": 6,
|
|
||||||
"m1.small": 4,
|
|
||||||
"m1.xlarge": 15,
|
|
||||||
"m2.2xlarge": 30,
|
|
||||||
"m2.4xlarge": 30,
|
|
||||||
"m2.xlarge": 15,
|
|
||||||
"m3.2xlarge": 30,
|
|
||||||
"m3.large": 10,
|
|
||||||
"m3.medium": 6,
|
|
||||||
"m3.xlarge": 15,
|
|
||||||
"m4.10xlarge": 30,
|
|
||||||
"m4.16xlarge": 30,
|
|
||||||
"m4.2xlarge": 15,
|
|
||||||
"m4.4xlarge": 30,
|
|
||||||
"m4.large": 10,
|
|
||||||
"m4.xlarge": 15,
|
|
||||||
"m5.12xlarge": 30,
|
|
||||||
"m5.16xlarge": 30,
|
|
||||||
"m5.24xlarge": 50,
|
|
||||||
"m5.2xlarge": 15,
|
|
||||||
"m5.4xlarge": 30,
|
|
||||||
"m5.8xlarge": 30,
|
|
||||||
"m5.large": 10,
|
|
||||||
"m5.metal": 50,
|
|
||||||
"m5.xlarge": 15,
|
|
||||||
"m5a.12xlarge": 30,
|
|
||||||
"m5a.16xlarge": 30,
|
|
||||||
"m5a.24xlarge": 50,
|
|
||||||
"m5a.2xlarge": 15,
|
|
||||||
"m5a.4xlarge": 30,
|
|
||||||
"m5a.8xlarge": 30,
|
|
||||||
"m5a.large": 10,
|
|
||||||
"m5a.xlarge": 15,
|
|
||||||
"m5ad.12xlarge": 30,
|
|
||||||
"m5ad.24xlarge": 50,
|
|
||||||
"m5ad.2xlarge": 15,
|
|
||||||
"m5ad.4xlarge": 30,
|
|
||||||
"m5ad.large": 10,
|
|
||||||
"m5ad.xlarge": 15,
|
|
||||||
"m5d.12xlarge": 30,
|
|
||||||
"m5d.16xlarge": 30,
|
|
||||||
"m5d.24xlarge": 50,
|
|
||||||
"m5d.2xlarge": 15,
|
|
||||||
"m5d.4xlarge": 30,
|
|
||||||
"m5d.8xlarge": 30,
|
|
||||||
"m5d.large": 10,
|
|
||||||
"m5d.metal": 50,
|
|
||||||
"m5d.xlarge": 15,
|
|
||||||
"m5dn.12xlarge": 30,
|
|
||||||
"m5dn.16xlarge": 50,
|
|
||||||
"m5dn.24xlarge": 50,
|
|
||||||
"m5dn.2xlarge": 15,
|
|
||||||
"m5dn.4xlarge": 30,
|
|
||||||
"m5dn.8xlarge": 30,
|
|
||||||
"m5dn.large": 10,
|
|
||||||
"m5dn.xlarge": 15,
|
|
||||||
"m5n.12xlarge": 30,
|
|
||||||
"m5n.16xlarge": 50,
|
|
||||||
"m5n.24xlarge": 50,
|
|
||||||
"m5n.2xlarge": 15,
|
|
||||||
"m5n.4xlarge": 30,
|
|
||||||
"m5n.8xlarge": 30,
|
|
||||||
"m5n.large": 10,
|
|
||||||
"m5n.xlarge": 15,
|
|
||||||
"p2.16xlarge": 30,
|
|
||||||
"p2.8xlarge": 30,
|
|
||||||
"p2.xlarge": 15,
|
|
||||||
"p3.16xlarge": 30,
|
|
||||||
"p3.2xlarge": 15,
|
|
||||||
"p3.8xlarge": 30,
|
|
||||||
"p3dn.24xlarge": 50,
|
|
||||||
"r3.2xlarge": 15,
|
|
||||||
"r3.4xlarge": 30,
|
|
||||||
"r3.8xlarge": 30,
|
|
||||||
"r3.large": 10,
|
|
||||||
"r3.xlarge": 15,
|
|
||||||
"r4.16xlarge": 50,
|
|
||||||
"r4.2xlarge": 15,
|
|
||||||
"r4.4xlarge": 30,
|
|
||||||
"r4.8xlarge": 30,
|
|
||||||
"r4.large": 10,
|
|
||||||
"r4.xlarge": 15,
|
|
||||||
"r5.12xlarge": 30,
|
|
||||||
"r5.16xlarge": 50,
|
|
||||||
"r5.24xlarge": 50,
|
|
||||||
"r5.2xlarge": 15,
|
|
||||||
"r5.4xlarge": 30,
|
|
||||||
"r5.8xlarge": 30,
|
|
||||||
"r5.large": 10,
|
|
||||||
"r5.metal": 50,
|
|
||||||
"r5.xlarge": 15,
|
|
||||||
"r5a.12xlarge": 30,
|
|
||||||
"r5a.16xlarge": 50,
|
|
||||||
"r5a.24xlarge": 50,
|
|
||||||
"r5a.2xlarge": 15,
|
|
||||||
"r5a.4xlarge": 30,
|
|
||||||
"r5a.8xlarge": 30,
|
|
||||||
"r5a.large": 10,
|
|
||||||
"r5a.xlarge": 15,
|
|
||||||
"r5ad.12xlarge": 30,
|
|
||||||
"r5ad.24xlarge": 50,
|
|
||||||
"r5ad.2xlarge": 15,
|
|
||||||
"r5ad.4xlarge": 30,
|
|
||||||
"r5ad.large": 10,
|
|
||||||
"r5ad.xlarge": 15,
|
|
||||||
"r5d.12xlarge": 30,
|
|
||||||
"r5d.16xlarge": 50,
|
|
||||||
"r5d.24xlarge": 50,
|
|
||||||
"r5d.2xlarge": 15,
|
|
||||||
"r5d.4xlarge": 30,
|
|
||||||
"r5d.8xlarge": 30,
|
|
||||||
"r5d.large": 10,
|
|
||||||
"r5d.metal": 50,
|
|
||||||
"r5d.xlarge": 15,
|
|
||||||
"r5dn.12xlarge": 30,
|
|
||||||
"r5dn.16xlarge": 50,
|
|
||||||
"r5dn.24xlarge": 50,
|
|
||||||
"r5dn.2xlarge": 15,
|
|
||||||
"r5dn.4xlarge": 30,
|
|
||||||
"r5dn.8xlarge": 30,
|
|
||||||
"r5dn.large": 10,
|
|
||||||
"r5dn.xlarge": 15,
|
|
||||||
"r5n.12xlarge": 30,
|
|
||||||
"r5n.16xlarge": 50,
|
|
||||||
"r5n.24xlarge": 50,
|
|
||||||
"r5n.2xlarge": 15,
|
|
||||||
"r5n.4xlarge": 30,
|
|
||||||
"r5n.8xlarge": 30,
|
|
||||||
"r5n.large": 10,
|
|
||||||
"r5n.xlarge": 15,
|
|
||||||
"t1.micro": 2,
|
|
||||||
"t2.2xlarge": 15,
|
|
||||||
"t2.large": 12,
|
|
||||||
"t2.medium": 6,
|
|
||||||
"t2.micro": 2,
|
|
||||||
"t2.nano": 2,
|
|
||||||
"t2.small": 4,
|
|
||||||
"t2.xlarge": 15,
|
|
||||||
"t3.2xlarge": 15,
|
|
||||||
"t3.large": 12,
|
|
||||||
"t3.medium": 6,
|
|
||||||
"t3.micro": 2,
|
|
||||||
"t3.nano": 2,
|
|
||||||
"t3.small": 4,
|
|
||||||
"t3.xlarge": 15,
|
|
||||||
"t3a.2xlarge": 15,
|
|
||||||
"t3a.large": 12,
|
|
||||||
"t3a.medium": 6,
|
|
||||||
"t3a.micro": 2,
|
|
||||||
"t3a.nano": 2,
|
|
||||||
"t3a.small": 4,
|
|
||||||
"t3a.xlarge": 15,
|
|
||||||
"u-12tb1.metal": 30,
|
|
||||||
"u-6tb1.metal": 30,
|
|
||||||
"u-9tb1.metal": 30,
|
|
||||||
"x1.16xlarge": 30,
|
|
||||||
"x1.32xlarge": 30,
|
|
||||||
"x1e.16xlarge": 30,
|
|
||||||
"x1e.2xlarge": 15,
|
|
||||||
"x1e.32xlarge": 30,
|
|
||||||
"x1e.4xlarge": 15,
|
|
||||||
"x1e.8xlarge": 15,
|
|
||||||
"x1e.xlarge": 10,
|
|
||||||
"z1d.12xlarge": 50,
|
|
||||||
"z1d.2xlarge": 15,
|
|
||||||
"z1d.3xlarge": 30,
|
|
||||||
"z1d.6xlarge": 30,
|
|
||||||
"z1d.large": 10,
|
|
||||||
"z1d.metal": 50,
|
|
||||||
"z1d.xlarge": 15,
|
|
||||||
}
|
|
|
@ -75,23 +75,6 @@ var MachineTypes []AWSMachineTypeInfo = []AWSMachineTypeInfo{
|
||||||
// NOTE: Content below is auto generated by `make update-machine-types`
|
// NOTE: Content below is auto generated by `make update-machine-types`
|
||||||
// BEGIN GENERATED CONTENT
|
// BEGIN GENERATED CONTENT
|
||||||
|
|
||||||
// WARNING: ENIs not known for m6g.medium
|
|
||||||
// WARNING: IPs per ENI not known for m6g.medium
|
|
||||||
// WARNING: ENIs not known for m6g.8xlarge
|
|
||||||
// WARNING: IPs per ENI not known for m6g.8xlarge
|
|
||||||
// WARNING: ENIs not known for m6g.16xlarge
|
|
||||||
// WARNING: IPs per ENI not known for m6g.16xlarge
|
|
||||||
// WARNING: ENIs not known for m6g.2xlarge
|
|
||||||
// WARNING: IPs per ENI not known for m6g.2xlarge
|
|
||||||
// WARNING: ENIs not known for m6g.xlarge
|
|
||||||
// WARNING: IPs per ENI not known for m6g.xlarge
|
|
||||||
// WARNING: ENIs not known for m6g.4xlarge
|
|
||||||
// WARNING: IPs per ENI not known for m6g.4xlarge
|
|
||||||
// WARNING: ENIs not known for m6g.12xlarge
|
|
||||||
// WARNING: IPs per ENI not known for m6g.12xlarge
|
|
||||||
// WARNING: ENIs not known for m6g.large
|
|
||||||
// WARNING: IPs per ENI not known for m6g.large
|
|
||||||
|
|
||||||
// a1 family
|
// a1 family
|
||||||
{
|
{
|
||||||
Name: "a1.medium",
|
Name: "a1.medium",
|
||||||
|
@ -513,7 +496,7 @@ var MachineTypes []AWSMachineTypeInfo = []AWSMachineTypeInfo{
|
||||||
Cores: 4,
|
Cores: 4,
|
||||||
InstanceENIs: 4,
|
InstanceENIs: 4,
|
||||||
InstanceIPsPerENI: 15,
|
InstanceIPsPerENI: 15,
|
||||||
EphemeralDisks: []int{2000, 2000, 2000},
|
EphemeralDisks: []int{2048, 2048, 2048},
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -522,7 +505,7 @@ var MachineTypes []AWSMachineTypeInfo = []AWSMachineTypeInfo{
|
||||||
Cores: 8,
|
Cores: 8,
|
||||||
InstanceENIs: 4,
|
InstanceENIs: 4,
|
||||||
InstanceIPsPerENI: 15,
|
InstanceIPsPerENI: 15,
|
||||||
EphemeralDisks: []int{2000, 2000, 2000, 2000, 2000, 2000},
|
EphemeralDisks: []int{2048, 2048, 2048, 2048, 2048, 2048},
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -531,7 +514,7 @@ var MachineTypes []AWSMachineTypeInfo = []AWSMachineTypeInfo{
|
||||||
Cores: 16,
|
Cores: 16,
|
||||||
InstanceENIs: 8,
|
InstanceENIs: 8,
|
||||||
InstanceIPsPerENI: 30,
|
InstanceIPsPerENI: 30,
|
||||||
EphemeralDisks: []int{2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000},
|
EphemeralDisks: []int{2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048},
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -540,7 +523,7 @@ var MachineTypes []AWSMachineTypeInfo = []AWSMachineTypeInfo{
|
||||||
Cores: 36,
|
Cores: 36,
|
||||||
InstanceENIs: 8,
|
InstanceENIs: 8,
|
||||||
InstanceIPsPerENI: 30,
|
InstanceIPsPerENI: 30,
|
||||||
EphemeralDisks: []int{2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000},
|
EphemeralDisks: []int{2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048},
|
||||||
},
|
},
|
||||||
|
|
||||||
// f1 family
|
// f1 family
|
||||||
|
@ -689,8 +672,8 @@ var MachineTypes []AWSMachineTypeInfo = []AWSMachineTypeInfo{
|
||||||
Name: "g4dn.16xlarge",
|
Name: "g4dn.16xlarge",
|
||||||
MemoryGB: 256,
|
MemoryGB: 256,
|
||||||
Cores: 64,
|
Cores: 64,
|
||||||
InstanceENIs: 15,
|
InstanceENIs: 4,
|
||||||
InstanceIPsPerENI: 50,
|
InstanceIPsPerENI: 15,
|
||||||
EphemeralDisks: []int{900},
|
EphemeralDisks: []int{900},
|
||||||
GPU: true,
|
GPU: true,
|
||||||
},
|
},
|
||||||
|
@ -837,7 +820,7 @@ var MachineTypes []AWSMachineTypeInfo = []AWSMachineTypeInfo{
|
||||||
{
|
{
|
||||||
Name: "i3.metal",
|
Name: "i3.metal",
|
||||||
MemoryGB: 512,
|
MemoryGB: 512,
|
||||||
Cores: 64,
|
Cores: 72,
|
||||||
InstanceENIs: 15,
|
InstanceENIs: 15,
|
||||||
InstanceIPsPerENI: 50,
|
InstanceIPsPerENI: 50,
|
||||||
EphemeralDisks: []int{1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900},
|
EphemeralDisks: []int{1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900},
|
||||||
|
@ -949,7 +932,7 @@ var MachineTypes []AWSMachineTypeInfo = []AWSMachineTypeInfo{
|
||||||
MemoryGB: 192,
|
MemoryGB: 192,
|
||||||
Cores: 96,
|
Cores: 96,
|
||||||
InstanceENIs: 15,
|
InstanceENIs: 15,
|
||||||
InstanceIPsPerENI: 50,
|
InstanceIPsPerENI: 30,
|
||||||
EphemeralDisks: nil,
|
EphemeralDisks: nil,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -965,7 +948,7 @@ var MachineTypes []AWSMachineTypeInfo = []AWSMachineTypeInfo{
|
||||||
|
|
||||||
{
|
{
|
||||||
Name: "m1.medium",
|
Name: "m1.medium",
|
||||||
MemoryGB: 3.75,
|
MemoryGB: 3.7,
|
||||||
Cores: 1,
|
Cores: 1,
|
||||||
InstanceENIs: 2,
|
InstanceENIs: 2,
|
||||||
InstanceIPsPerENI: 6,
|
InstanceIPsPerENI: 6,
|
||||||
|
@ -1170,7 +1153,7 @@ var MachineTypes []AWSMachineTypeInfo = []AWSMachineTypeInfo{
|
||||||
MemoryGB: 256,
|
MemoryGB: 256,
|
||||||
Cores: 64,
|
Cores: 64,
|
||||||
InstanceENIs: 15,
|
InstanceENIs: 15,
|
||||||
InstanceIPsPerENI: 30,
|
InstanceIPsPerENI: 50,
|
||||||
EphemeralDisks: nil,
|
EphemeralDisks: nil,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1252,7 +1235,7 @@ var MachineTypes []AWSMachineTypeInfo = []AWSMachineTypeInfo{
|
||||||
MemoryGB: 256,
|
MemoryGB: 256,
|
||||||
Cores: 64,
|
Cores: 64,
|
||||||
InstanceENIs: 15,
|
InstanceENIs: 15,
|
||||||
InstanceIPsPerENI: 30,
|
InstanceIPsPerENI: 50,
|
||||||
EphemeralDisks: nil,
|
EphemeralDisks: nil,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1380,7 +1363,7 @@ var MachineTypes []AWSMachineTypeInfo = []AWSMachineTypeInfo{
|
||||||
MemoryGB: 256,
|
MemoryGB: 256,
|
||||||
Cores: 64,
|
Cores: 64,
|
||||||
InstanceENIs: 15,
|
InstanceENIs: 15,
|
||||||
InstanceIPsPerENI: 30,
|
InstanceIPsPerENI: 50,
|
||||||
EphemeralDisks: []int{600, 600, 600, 600},
|
EphemeralDisks: []int{600, 600, 600, 600},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1697,7 +1680,7 @@ var MachineTypes []AWSMachineTypeInfo = []AWSMachineTypeInfo{
|
||||||
// r3 family
|
// r3 family
|
||||||
{
|
{
|
||||||
Name: "r3.large",
|
Name: "r3.large",
|
||||||
MemoryGB: 15.25,
|
MemoryGB: 15,
|
||||||
Cores: 2,
|
Cores: 2,
|
||||||
InstanceENIs: 3,
|
InstanceENIs: 3,
|
||||||
InstanceIPsPerENI: 10,
|
InstanceIPsPerENI: 10,
|
||||||
|
@ -2236,7 +2219,7 @@ var MachineTypes []AWSMachineTypeInfo = []AWSMachineTypeInfo{
|
||||||
// t1 family
|
// t1 family
|
||||||
{
|
{
|
||||||
Name: "t1.micro",
|
Name: "t1.micro",
|
||||||
MemoryGB: 0.613,
|
MemoryGB: 0.61,
|
||||||
Cores: 1,
|
Cores: 1,
|
||||||
InstanceENIs: 2,
|
InstanceENIs: 2,
|
||||||
InstanceIPsPerENI: 2,
|
InstanceIPsPerENI: 2,
|
||||||
|
@ -2394,7 +2377,7 @@ var MachineTypes []AWSMachineTypeInfo = []AWSMachineTypeInfo{
|
||||||
Name: "t3a.small",
|
Name: "t3a.small",
|
||||||
MemoryGB: 2,
|
MemoryGB: 2,
|
||||||
Cores: 2,
|
Cores: 2,
|
||||||
InstanceENIs: 3,
|
InstanceENIs: 2,
|
||||||
InstanceIPsPerENI: 4,
|
InstanceIPsPerENI: 4,
|
||||||
EphemeralDisks: nil,
|
EphemeralDisks: nil,
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue