Amazon EKS AMI Build Specification
The Amazon EKS AMI Build Specification project, hosted on GitHub, provides resources and configuration scripts for creating a custom Amazon Elastic Kubernetes Service (EKS) Amazon Machine Image (AMI) using HashiCorp Packer. This project uses the same configuration as the official Amazon EKS-optimized AMIs, making it a valuable resource for those needing to build custom images that closely align with the standard EKS setup.
🚀 Getting Started
For those new to Amazon EKS, it is advisable to follow the "Getting Started" guide available in the Amazon EKS User Guide. This comprehensive guide provides critical information to navigate EKS efficiently. For users who already have an EKS cluster set up, the project documentation helps in launching a new node group with the customized AMI. Steps for this can be found under the "Launching Amazon EKS Worker Nodes" section of the guide.
🔢 Pre-requisites
Before beginning the process of building the AMI, users need to ensure they have Packer installed on their systems. The project requires Packer version 1.8.0 or higher. Installation instructions for Packer can be found in the official Packer documentation. Additionally, users need to have AWS account credentials set up. This setup enables Packer to perform necessary AWS API operations.
👷 Building the AMI
The project provides a Makefile to streamline the construction of the Amazon EKS Worker AMI, serving as a simple wrapper to execute Packer commands. The building process can be initiated with different configurations using commands within the repository’s root directory:
- To create an AMI with the latest Kubernetes version:
make
- To specify a Kubernetes version:
make k8s=1.29
- To choose both a Kubernetes version and an OS distribution:
make k8s=1.29 os_distro=al2023
- To explore default values and options:
make help
It is important to note that the default instance types used during this process do not fall under the AWS free tier and may incur charges.
🔒 Security
In matters of security, the project advises against opening GitHub issues or pull requests for security disclosures. Instead, any suspicions or confirmations of security vulnerabilities should be reported to AWS Security to ensure proper handling and response.
⚖️ License Summary
The sample code from this project is provided under a MIT-0 license. However, using NVIDIA accelerated AMIs involves agreeing to the NVIDIA Cloud End User License Agreement. It includes several third-party components with distinct licensing, such as:
- NVIDIA open-gpu-kernel-modules, licensed under MIT/GPLv2.
- NVIDIA nvidia-container-toolkit, licensed under Apache-2.0.
- AWS Neuron Driver, licensed under GPLv2.
- Elastic Fabric Adapter Driver, licensed under GPLv2.
These licenses reflect the collaborative nature of this AMI building project, encompassing components crucial for specialized functionalities in accelerated computing environments.