Skip to content

Add support for EKSConfig LaunchTemplate bootstrapping for AL2023 using nodeadm #5546

@pavansokkenagaraj

Description

@pavansokkenagaraj

/kind feature

Describe the solution you'd like
Add support for bootstrapping Amazon Linux 2023 (AL2023) nodes in EKSConfig LaunchTemplate mode using nodeadm.

Currently, the Cluster API Provider for AWS (CAPA/CABPE) uses bootstrap.sh tailored for AL2:
https://github.com/kubernetes-sigs/cluster-api-provider-aws/blob/main/bootstrap/eks/internal/userdata/node.go#L29-L32

const (
defaultBootstrapCommand = "/etc/eks/bootstrap.sh"
nodeUserData = `#cloud-config

To support AL2023, the provider should be enhanced to optionally use nodeadm, which is the new method for AL2023 bootstrapping.

Anything else you would like to add:

  • nodeadm is already part of the upstream EKS AMIs for AL2023.
  • This will allow CAPA users to build node groups using the latest Amazon Linux distribution.

Environment:

  • Cluster-api-provider-aws version: latest
  • Kubernetes version: (use kubectl version): All
  • OS (e.g. from /etc/os-release): AL2023

nodeadm bootstrapping example:

MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="//"

--//
Content-Type: application/node.eks.aws

---
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  cluster:
    apiServerEndpoint: https://4BEC49F1E8ECD359C3F598CCC9.gr7.us-west-2.eks.amazonaws.com
    certificateAuthority: LS0t....tLS0K
    cidr: 10.96.0.0/12
    name: eks-al2023-custom
  kubelet:
    config:
      maxPods: 58
      clusterDNS:
      - 10.96.0.10
    flags:
    - "--node-labels=eks.amazonaws.com/nodegroup-image=ami-09ef91d9ab1f3f76c,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup=al2023-worker-pool"

--//--%

Metadata

Metadata

Assignees

Labels

kind/featureCategorizes issue or PR as related to a new feature.lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale.needs-priorityneeds-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions