From 367dac8ee9e8c5556f18694628f46153cc29313a Mon Sep 17 00:00:00 2001 From: Mathias Gebbe Date: Tue, 3 Jun 2025 17:17:07 +0200 Subject: [PATCH 1/3] feat: add amazon-linux-2023 ami lookup parameters for ssm --- api/v1beta2/types.go | 4 ++++ pkg/cloud/services/ec2/ami.go | 23 +++++++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/api/v1beta2/types.go b/api/v1beta2/types.go index bee54a9f0b..5a6ab673d6 100644 --- a/api/v1beta2/types.go +++ b/api/v1beta2/types.go @@ -463,6 +463,10 @@ const ( AmazonLinux EKSAMILookupType = "AmazonLinux" // AmazonLinuxGPU is the AmazonLinux GPU AMI type. AmazonLinuxGPU EKSAMILookupType = "AmazonLinuxGPU" + // AmazonLinux2023 is the AmazonLinux 2023 AMI type. + AmazonLinux2023 EKSAMILookupType = "AmazonLinux2023" + // AmazonLinux2023 is the AmazonLinux 2023 GPU AMI type. + AmazonLinux2023GPU EKSAMILookupType = "AmazonLinux2023GPU" ) // PrivateDNSName is the options for the instance hostname. diff --git a/pkg/cloud/services/ec2/ami.go b/pkg/cloud/services/ec2/ami.go index 4127eeafd1..dc80b85c20 100644 --- a/pkg/cloud/services/ec2/ami.go +++ b/pkg/cloud/services/ec2/ami.go @@ -80,11 +80,20 @@ const ( // EKS AMI ID SSM Parameter name. eksAmiSSMParameterFormat = "/aws/service/eks/optimized-ami/%s/amazon-linux-2/recommended/image_id" + // EKS AL2023 AMI ID SSM Parameter name. + eksAmiAl2023SSMParameterFormat = "/aws/service/eks/optimized-ami/%s/amazon-linux-2023/x86_64/standard/recommended/image_id" + // EKS ARM64 AMI ID SSM Parameter name. eksARM64AmiSSMParameterFormat = "/aws/service/eks/optimized-ami/%s/amazon-linux-2-arm64/recommended/image_id" + // EKS ARM64 AL2023 AMI ID SSM Parameter name. + eksARM64AmiAl2023SSMParameterFormat = "/aws/service/eks/optimized-ami/%s/amazon-linux-2023/x86_64/nvidia/recommended/image_id" + // EKS GPU AMI ID SSM Parameter name. eksGPUAmiSSMParameterFormat = "/aws/service/eks/optimized-ami/%s/amazon-linux-2-gpu/recommended/image_id" + + // EKS GPU AL2023 AMI ID SSM Parameter name. + eksGPUAmiAl2023SSMParameterFormat = "/aws/service/eks/optimized-ami/%s/amazon-linux-2023/x86_64/nvidia/recommended/image_id" ) // AMILookup contains the parameters used to template AMI names used for lookup. @@ -323,14 +332,24 @@ func (s *Service) eksAMILookup(kubernetesVersion string, architecture string, am } switch *amiType { + case infrav1.AmazonLinux2023GPU: + paramName = fmt.Sprintf(eksGPUAmiAl2023SSMParameterFormat, formattedVersion) case infrav1.AmazonLinuxGPU: paramName = fmt.Sprintf(eksGPUAmiSSMParameterFormat, formattedVersion) default: switch architecture { case Arm64ArchitectureTag: - paramName = fmt.Sprintf(eksARM64AmiSSMParameterFormat, formattedVersion) + if *amiType == infrav1.AmazonLinux2023 { + paramName = fmt.Sprintf(eksARM64AmiAl2023SSMParameterFormat, formattedVersion) + } else { + paramName = fmt.Sprintf(eksARM64AmiSSMParameterFormat, formattedVersion) + } case Amd64ArchitectureTag: - paramName = fmt.Sprintf(eksAmiSSMParameterFormat, formattedVersion) + if *amiType == infrav1.AmazonLinux2023 { + paramName = fmt.Sprintf(eksAmiAl2023SSMParameterFormat, formattedVersion) + } else { + paramName = fmt.Sprintf(eksAmiSSMParameterFormat, formattedVersion) + } default: return "", fmt.Errorf("cannot look up eks-optimized image for architecture %q", architecture) } From 1333e8621d6eea56eedd1b8422cbfc94ea655270 Mon Sep 17 00:00:00 2001 From: Mathias Gebbe Date: Wed, 4 Jun 2025 09:19:19 +0200 Subject: [PATCH 2/3] fix: use arm param for eksARM64AmiAl2023SSMParameterFormat --- pkg/cloud/services/ec2/ami.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/cloud/services/ec2/ami.go b/pkg/cloud/services/ec2/ami.go index dc80b85c20..03c3afb0cd 100644 --- a/pkg/cloud/services/ec2/ami.go +++ b/pkg/cloud/services/ec2/ami.go @@ -87,7 +87,7 @@ const ( eksARM64AmiSSMParameterFormat = "/aws/service/eks/optimized-ami/%s/amazon-linux-2-arm64/recommended/image_id" // EKS ARM64 AL2023 AMI ID SSM Parameter name. - eksARM64AmiAl2023SSMParameterFormat = "/aws/service/eks/optimized-ami/%s/amazon-linux-2023/x86_64/nvidia/recommended/image_id" + eksARM64AmiAl2023SSMParameterFormat = "/aws/service/eks/optimized-ami/%s/amazon-linux-2023/arm64/standard/recommended/image_id" // EKS GPU AMI ID SSM Parameter name. eksGPUAmiSSMParameterFormat = "/aws/service/eks/optimized-ami/%s/amazon-linux-2-gpu/recommended/image_id" From b746a1041424a165c93df1527ab722ec6533297f Mon Sep 17 00:00:00 2001 From: Mathias Gebbe Date: Sun, 8 Jun 2025 20:18:49 +0200 Subject: [PATCH 3/3] chore(lint): fix revive linter comment for AmazonLinux2023GPU --- api/v1beta2/types.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/v1beta2/types.go b/api/v1beta2/types.go index 5a6ab673d6..481ac7dd75 100644 --- a/api/v1beta2/types.go +++ b/api/v1beta2/types.go @@ -465,7 +465,7 @@ const ( AmazonLinuxGPU EKSAMILookupType = "AmazonLinuxGPU" // AmazonLinux2023 is the AmazonLinux 2023 AMI type. AmazonLinux2023 EKSAMILookupType = "AmazonLinux2023" - // AmazonLinux2023 is the AmazonLinux 2023 GPU AMI type. + // AmazonLinux2023GPU is the AmazonLinux 2023 GPU AMI type. AmazonLinux2023GPU EKSAMILookupType = "AmazonLinux2023GPU" )