From 60df255e5e97ed93a13bd49a9b5d0387deda2340 Mon Sep 17 00:00:00 2001 From: Jason-ZW Date: Tue, 4 Sep 2018 09:25:28 +0800 Subject: [PATCH] Support ebs nvme blocks (cherry picked from commit 46347594495f97baa729e199329a59ca426f3b00) --- config/cloudinit/datasource/metadata/ec2/metadata.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/config/cloudinit/datasource/metadata/ec2/metadata.go b/config/cloudinit/datasource/metadata/ec2/metadata.go index e918ba94..b060db62 100644 --- a/config/cloudinit/datasource/metadata/ec2/metadata.go +++ b/config/cloudinit/datasource/metadata/ec2/metadata.go @@ -37,6 +37,10 @@ const ( defaultNVMeRootDisk = "/dev/nvme0n1" ) +var ( + nvmeInstanceTypes = []string{"c5", "c5d", "i3.metal", "m5", "m5d", "r5", "r5d", "t3", "z1d"} +) + type MetadataService struct { metadata.Service } @@ -144,8 +148,11 @@ func (ms MetadataService) FetchMetadata() (datasource.Metadata, error) { // http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nvme-ebs-volumes.html metadata.RootDisk = defaultXVRootDisk if instanceType, err := ms.FetchAttribute("instance-type"); err == nil { - if strings.HasPrefix(instanceType, "m5") || strings.HasPrefix(instanceType, "c5") { - metadata.RootDisk = defaultNVMeRootDisk + for _, nvmeType := range nvmeInstanceTypes { + if strings.HasPrefix(instanceType, nvmeType) { + metadata.RootDisk = defaultNVMeRootDisk + break + } } } else if _, ok := err.(pkg.ErrNotFound); !ok { return metadata, err