alpine-zdt-images/alpine-ami.yaml

82 lines
2.4 KiB
YAML

variables:
security_group: ""
subnet: ""
# 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: "2"
# Overriding this requires validating that the installation script still
# works as expected. It probably does but stuff changes between major
# version.
alpine_release: "3.7"
# 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.micro"
launch_block_device_mappings:
- volume_type: "gp2"
device_name: "{{user `volume_name`}}"
delete_on_termination: true
volume_size: 5
# Output AMI Settings
ena_support: true
ami_name: "Alpine-{{user `alpine_release`}}-r{{user `ami_release`}}-Hardened-EC2"
ami_description: "Alpine Linux {{user `alpine_release`}}-r{{user `ami_release`}} Release with Hardened Kernel and 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-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: 5
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`}}'"