alpine-zdt-images/alpine-ami.yaml
Jake Buchholz 836d9a3e7e * switch to alpine v3.8
* add public_ip variable, setting to 'true' allows packer to build from outside AWS
* use smallest instance_type (t2.nano) and volume_size (1 GiB)
* eu-west-3 region is live; ap-northeast-3 requires subscription
* no longer need setup_staging_repos function...
+ tiny-ec2-bootstrap is available in main since v3.8
+ aws-ena-driver-vanilla is only available in edge/testing
* switched to linux-vanilla since linux-hardened is no longer available and linux-virt does not have NVME available
+ TODO?  make kernel choice selectable (significant memory/disk savings linux-virt can be used)
2018-07-30 07:59:39 -07:00

85 lines
2.5 KiB
YAML

variables:
security_group: ""
subnet: ""
public_ip: "false"
# Treat this similar to a ABUILD pkgrel variable and increment with every
# release. Packer will notice an exiting AMI at build start and fail unless
# it is rmoved. To prevent a period of time where no Alpine AMI exists,
# create a new variant. Old AMIs should be pruned at some point.
ami_release: "0"
# Overriding this requires validating that the installation script still
# works as expected. It probably does but stuff changes between major
# version.
alpine_release: "3.8"
# Don't override this without a good reason and if you do just make sure it
# gets passed all the way through to the make_ami script
volume_name: "/dev/xvdf"
builders:
- type: "amazon-ebssurrogate"
# Image is built inside a custom VPC so let Packer use the existing
# resources
security_group_id: "{{user `security_group`}}"
subnet_id: "{{user `subnet`}}"
# Input Instance Setting
instance_type: "t2.nano"
launch_block_device_mappings:
- volume_type: "gp2"
device_name: "{{user `volume_name`}}"
delete_on_termination: true
volume_size: 1
associate_public_ip_address: "{{user `public_ip`}}"
# Output AMI Settings
ena_support: true
ami_name: "Alpine-{{user `alpine_release`}}-r{{user `ami_release`}}-EC2"
ami_description: "Alpine Linux {{user `alpine_release`}}-r{{user `ami_release`}} Release with EC2 Optimizations"
ami_groups:
- "all"
ami_virtualization_type: "hvm"
ami_regions:
- us-east-1
- us-east-2
- us-west-1
- us-west-2
- ca-central-1
- eu-central-1
- eu-west-1
- eu-west-2
- eu-west-3
- ap-northeast-1
- ap-northeast-2
# - ap-northeast-3
- ap-southeast-1
- ap-southeast-2
- ap-south-1
- sa-east-1
ami_root_device:
source_device_name: "{{user `volume_name`}}"
device_name: "/dev/xvda"
delete_on_termination: true
volume_size: 1
volume_type: "gp2"
# Use the most recent Amazon Linux AMI as our base
ssh_username: "ec2-user"
source_ami_filter:
filters:
virtualization-type: "hvm"
root-device-type: "ebs"
architecture: "x86_64"
name: "amzn-ami-hvm-*-x86_64-gp2"
owners:
- "137112412989"
most_recent: true
provisioners:
- type: "shell"
script: "make_ami.sh"
execute_command: "sudo sh -c '{{ .Vars }} {{ .Path }} {{user `volume_name`}}'"