ZeroDownTime - Alpine golden images AWS only for now
Go to file
Jake Buchholz 95b7837c9f PR updates
* README.md
  + update list of modern instance types
  + add caveat regarding linux-vanilla vs. linux-virt
* alpine-ami.yaml
  + build instance type is always t3.nano
  + block device where we build is always /dev/xvdf
  + add optional AMI encryption
  + always enable AMI SR-IOV flag (vanilla & virt both have the necessary driver)
  + no need to pass volume_name to make_ami.sh
* make_ami.sh
  + replace hard tabs with 4 spaces
  + always set up edge repositories
  + no need to add mkinitfs package, it's a dependency of linux-*
  + fix update of /etc/inittab
  + fix configuration of NTP
  + declare local vars in main()
  + device is always /dev/xvdf
* variables.json-default/example
  + improve comment for kernel_flavor
  + default add_repos is now empty
  + remove acct & e2fsprogs-extra from add_pkgs
  + add optional AMI encryption
  + remove sriov_enable, build_instance_type, and volume_name vars
2018-08-28 09:20:48 -07:00
.gitignore Add gen-readme script 2017-12-25 05:03:24 +00:00
alpine-ami.yaml PR updates 2018-08-28 09:20:48 -07:00
gen-readme.py.in Add gen-readme script 2017-12-25 05:03:24 +00:00
LICENSE.txt Initial import 2017-12-25 03:14:34 +00:00
make_ami.sh PR updates 2018-08-28 09:20:48 -07:00
Makefile Add gen-readme script 2017-12-25 05:03:24 +00:00
README.md PR updates 2018-08-28 09:20:48 -07:00
release.yaml Release 3.7-r2 2017-12-26 16:58:28 +00:00
scrub-old-amis.py.in Also delete snapshots 2017-12-25 05:25:14 +00:00
variables.json-default PR updates 2018-08-28 09:20:48 -07:00
variables.json-example PR updates 2018-08-28 09:20:48 -07:00

Alpine Linux EC2 AMI Build

NOTE: This is not an official Amazon or AWS provided image. This is community built and supported.

This repository contains a packer file and a script to create an EC2 AMI containing Alpine Linux. The AMI is designed to work with most EC2 features such as Elastic Network Adapters and NVME EBS volumes by default. If anything is missing please report a bug.

This image can be launched on any modern instance type, including T3, M5, C5, I3, R5, P3, X1, X1e, D2, Z1d. Other instances may also work but have not been tested. If you find an issue with instance support for any current generation instance please file a bug against this project.

To get started use one of the AMIs below. The default user is alpine and will be configured to use whatever SSH keys you chose when you launched the image. If user data is specified it must be a shell script that begins with #!. If a script is provided it will be executed as root after the network is configured.

Note: This image will be updated as Alpine Linux changes over time and as AWS adds regions. This file and release.yaml will be updated as new regions are made available.

Alpine Version Region Code AMI ID
3.7 ap-southeast-2 ami-7628d814
3.7 sa-east-1 ami-ae5414c2
3.7 us-west-2 ami-e474db9c
3.7 eu-central-1 ami-a96ff8c6
3.7 eu-west-2 ami-9ea2bbfa
3.7 ap-south-1 ami-29c28846
3.7 eu-west-1 ami-66de501f
3.7 us-east-1 ami-976020ed
3.7 us-west-1 ami-1c393f7c
3.7 ap-northeast-2 ami-b96ccdd7
3.7 ap-northeast-1 ami-361c8850
3.7 us-east-2 ami-c487afa1
3.7 ap-southeast-1 ami-25a8c059
3.7 ca-central-1 ami-293d874d

Caveats

This image is being used in production but it's still somewhat early stage in its development and thus there are some sharp edges.

  • Only EBS-backed HVM instances are supported. While paravirtualized instances are still available from AWS they are not supported on any of the newer hardware so it seems unlikely that they will be supported going forward. Thus this project does not support them.

  • The linux-vanilla kernel all the linux-firmware packages it installs is much larger than is necessary for an AMI designed to run on EC2. Unfortunately, the linux-virt kernel is currently missing NVMe support, which is required for the newest generation of instance families.

  • The aws-ena-driver-vanilla package is still in edge/testing, and requires the matching linux-vanilla package from edge/main. When ENA is available in an alpine version release (ideally with a 'virt' kernel flavor), edge/testing and edge/main should no longer be necessary.

  • cloud-init is not currently supported on Alpine Linux. Instead this image uses tiny-ec2-bootstrap. Hostname setting will work as will setting the ssh keys for the Alpine user based on what was configured during instance launch. User data is supported as long as it's a shell script (starts with #!). See the tiny-ec2-bootstrap README for more details. You can still install cloud-init using aports but the version in the tree is somewhat old and may not work correctly for Alpine. If full cloud-init support is important to you please file a bug against this project.

  • CloudFormation support is still forthcoming. This requires patches and packaging for the upstream cfn tools that have not yet been accepted. Eventually full CloudFormation support will be available.