pulumi / pulumi-eks

A Pulumi component for easily creating and managing an Amazon EKS Cluster
https://www.pulumi.com/registry/packages/eks/
Apache License 2.0
171 stars 80 forks source link

Support AL2023 & Bottlerocket for node groups #1195

Closed flostadler closed 3 weeks ago

flostadler commented 3 months ago

Hello!

Issue details

When creating a ManagedNodeGroup/NodeGroup with kubeletExtraArgs or bootstrapExtraArgs the component creates a LaunchTemplate/LaunchConfig with custom EC2 userdata to bootstrap the node. Right now this LaunchTemplate/LaunchConfig is hardcoded to use AL2. AL2 will be EOL in June 2025 and users need enough time to upgrade to newer AMIs (Bottlerocket or AL2023).

This change will involve changes to the way userdata is structured because Amazon Linux 2023 (AL2023) introduces a new node initialization process nodeadm that uses a YAML configuration schema and Bottlerocket structures user data in the TOML format (see AWS docs).

Necessary changes:

Necessary bug fixes:

Affected area/feature

flostadler commented 1 month ago

I found an issue with ManagedNodeGroup not properly handling instances with ARM64 architecture. Need to fix this first: #1323

flostadler commented 1 month ago

1323 is fixed now.

Continuing with this work now.

In order for ami type selection to work we'll also need to fix https://github.com/pulumi/pulumi-eks/issues/1179.

flostadler commented 3 weeks ago

The feature branch has support for AL2023 & Bottlerocket now: https://github.com/pulumi/pulumi-eks/tree/flostadler/al2023-bottlerocket-support.

Closing this out while we work on hardening this before we move it to the main branch