Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backport from master: Set the default instance type to t3.medium for AWS #8652

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/releases/1.16-NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ the notes prior to the release).
kops-controller currently labels nodes, but will likely perform additional
functionality in future releases.

* The default instance type for AWS is now t3.medium. This should provide better
performance and reduced costs in clusters where the average CPU usage is low.

# Required Actions

* If either a Kops 1.16 alpha release or a custom Kops build was used on a cluster,
Expand Down
14 changes: 5 additions & 9 deletions upup/pkg/fi/cloudup/awsup/aws_cloud.go
Original file line number Diff line number Diff line change
Expand Up @@ -1368,17 +1368,13 @@ func (c *awsCloudImplementation) DefaultInstanceType(cluster *kops.Cluster, ig *
var candidates []string

switch ig.Spec.Role {
case kops.InstanceGroupRoleMaster:
// Some regions do not (currently) support the m3 family; the c4 large is the cheapest non-burstable instance
// (us-east-2, ca-central-1, eu-west-2, ap-northeast-2).
// Also some accounts are no longer supporting m3 in us-east-1 zones
candidates = []string{"m3.medium", "c4.large"}

case kops.InstanceGroupRoleNode:
candidates = []string{"t2.medium"}
case kops.InstanceGroupRoleMaster, kops.InstanceGroupRoleNode:
// t3.medium is the cheapest instance with 4GB of mem, unlimited by default, fast and has decent network
// c5.large and c4.large are a good second option in case t3.medium is not available in the AZ
candidates = []string{"t3.medium", "c5.large", "c4.large"}

case kops.InstanceGroupRoleBastion:
candidates = []string{"t2.micro"}
candidates = []string{"t3.micro", "t2.micro"}

default:
return "", fmt.Errorf("unhandled role %q", ig.Spec.Role)
Expand Down