From 6c0d2f81976ed76ef6b451cd618e369407e9278d Mon Sep 17 00:00:00 2001 From: talnevo Date: Thu, 20 Jul 2023 16:30:33 -0400 Subject: [PATCH] Correct volume limits for i4i instance types Is this a bug fix or adding new feature? This is a bug fix What is this PR about? / Why do we need it? This PR adds support for m6id and x2idn instance types to volume_limits.go so that the Kubernetes scheduler will be able to correctly determine the number of volumes available on these node types. This PR also removes the x2idn instance types from the non Nitro list. What testing is done? No direct testing was performed: Kubernetes tests on nodes based on the i4i.32xlarge instance type have shown that there is a gap between the number of [volume requiring] pods the Kubernetes scheduler allows to run on a node and the number of pods that are able to attach their respective volume. Our research brought us to determine that this is the place to make the change that will fix this problem. Similar issues were observed last year with nodes based on m5d.16xlarge & m5d.24xlarge and later with m6id.16xlarge & m6id.32xlarge. These older issues no longer exist. We concluded that a change to volume_limits.go introduced in March 2022 fixed the problem for m5d instance types and our own PR for m6id in December 2022 fixed the issue for m6id instance types and we want to do the same for i4i based nodes. --- pkg/cloud/volume_limits.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/cloud/volume_limits.go b/pkg/cloud/volume_limits.go index 1e74387870..82ecd6dc8c 100644 --- a/pkg/cloud/volume_limits.go +++ b/pkg/cloud/volume_limits.go @@ -169,6 +169,13 @@ var nvmeInstanceStoreVolumes = map[string]int{ "i3en.12xlarge": 4, "i3en.24xlarge": 8, "i3en.metal": 8, + "i4i.xlarge": 1, + "i4i.2xlarge": 1, + "i4i.4xlarge": 1, + "i4i.8xlarge": 2, + "i4i.16xlarge": 4, + "i4i.32xlarge": 8, + "i4i.metal": 8, "im4gn.large": 1, "im4gn.xlarge": 1, "im4gn.2xlarge": 1,