Skip to content

EKS Nodegroup Includes both LaunchTemplate.ID and LaunchTemplate.Name when updating LaunchTemplate.Version #2645

@knottnt

Description

@knottnt

Describe the bug
When the launchTemplate.version field is updated for an EKS Nodegroup the update call fails and the Nodegroup CR enters a ACK.Terminal condition like the one shown below.

Message:               InvalidParameterException: Either provide launch template ID or launch template name in the request.
Status:                True
Type:                  ACK.Terminal

According to the EKS docs only one of LaunchTemplate.ID or LaunchTemplate.Name can be included in the request payload. However, in the newUpdateNodegroupVersionPayload function both will be set if available.

Steps to reproduce
Create a Nodegroup with a LaunchTemplate set.

apiVersion: eks.services.k8s.aws/v1alpha1
kind: Nodegroup
metadata:
  name: eks-test
spec:
  amiType: AL2023_x86_64_STANDARD
  releaseVersion: "1.32.9-20250920"
  launchTemplate:
    name: <launchtemplate-name>
    version: "1"
  capacityType: ON_DEMAND
  clusterName: <cluster-name>
  instanceTypes:
  - t3.medium
  labels:
    nodegroup: eks-test
  name: eks-test
  nodeRole: <role-arn>
  scalingConfig:
    desiredSize: 0
    maxSize: 1
    minSize: 0
  subnets:
  - <subnet-id
  taints:
  - effect: NO_SCHEDULE
    key: nodegroup-test
    value: eks-test
  updateConfig:
    maxUnavailable: 1
  version: "1.32"

Update launchTemplate.version

apiVersion: eks.services.k8s.aws/v1alpha1
kind: Nodegroup
metadata:
  name: eks-test
spec:
  amiType: AL2023_x86_64_STANDARD
  releaseVersion: "1.32.9-20250920"
  launchTemplate:
    name: <launchtemplate-name>
    version: "2" # Updated LaunchTemplate version
  capacityType: ON_DEMAND
  clusterName: <cluster-name>
  instanceTypes:
  - t3.medium
  labels:
    nodegroup: eks-test
  name: eks-test
  nodeRole: <role-arn>
  scalingConfig:
    desiredSize: 0
    maxSize: 1
    minSize: 0
  subnets:
  - <subnet-id
  taints:
  - effect: NO_SCHEDULE
    key: nodegroup-test
    value: eks-test
  updateConfig:
    maxUnavailable: 1
  version: "1.32"

Expected outcome
EKS Nodegroup Launch Template version is successfully updated.

Environment
Kubernetes version - 1.32
Using EKS (yes/no), if so version? - no
AWS service targeted (S3, RDS, etc.) - EKS Nodegroup

Metadata

Metadata

Assignees

Labels

kind/bugCategorizes issue or PR as related to a bug.service/eksIndicates issues or PRs that are related to eks-controller.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions