GitHub – awslabs/amazon-eks-ami: Packer configuration for building a custom EKS AMI

Amazon EKS AMI Build Specification

This repository contains resources and configuration scripts for building a
custom Amazon EKS AMI with HashiCorp Packer. This is
the same configuration that Amazon EKS uses to create the official Amazon
EKS-optimized AMI.

🚀 Getting started

If you are new to Amazon EKS, we recommend that you follow
our Getting Started
chapter in the Amazon EKS User Guide. If you already have a cluster, and you
want to launch a node group with your new AMI, see Launching Amazon EKS Worker
Nodes.

You must have Packer version 1.8.0 or later installed on your local system.
For more information, see Installing Packer
in the Packer documentation. You must also have AWS account credentials
configured so that Packer can make calls to AWS API operations on your behalf.
For more information, see Authentication
in the Packer documentation.

👷 Building the AMI

A Makefile is provided to build the Amazon EKS Worker AMI, but it is just a small wrapper around
invoking Packer directly. You can initiate the build process by running the
following command in the root of this repository:

#

build an AMI with the latest Kubernetes versionmake

#

build an AMI with a specific Kubernetes versionmake 1.25

The Makefile chooses a particular kubelet binary to use per Kubernetes version which you can view here.

Note
The default instance type to build this AMI does not qualify for the AWS free tier.
You are charged for any instances created when building this AMI.

👩‍💻 Using the AMI

The AMI user guide has details about the AMI’s internals, and the EKS user guide explains how to use a custom AMI in a managed node group.

🔒 Security

For security issues or concerns, please do not open an issue or pull request on GitHub. Please report any suspected or confirmed security issues to AWS Security https://aws.amazon.com/security/vulnerability-reporting/

⚖️ License Summary

This sample code is made available under a modified MIT license. See the LICENSE file.