alpine-ec2-ami merge requestshttps://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests2018-07-30T14:59:40Zhttps://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/6Alpine v3.8, etc.2018-07-30T14:59:40ZJake Buchholz GöktürkAlpine v3.8, etc.* 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 subscriptio...* 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 if linux-virt can be used)https://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/11Improve Configurability & Additional Fixes2018-08-28T16:20:49ZJake Buchholz GöktürkImprove Configurability & Additional FixesCombining PR's #7, #8, #9, and #10.Combining PR's #7, #8, #9, and #10.https://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/13Incorporate recent Alpine edge changes2018-09-05T14:39:49ZJake Buchholz GöktürkIncorporate recent Alpine edge changes* standardize on 'linux-virt' kernel
+ no longer need 'kernel_flavor' variable
+ always install 'aws-ena-driver' package
+ always enable ena_support
* switch to 'variables.yaml' for config
+ update build/convert script to st...* standardize on 'linux-virt' kernel
+ no longer need 'kernel_flavor' variable
+ always install 'aws-ena-driver' package
+ always enable ena_support
* switch to 'variables.yaml' for config
+ update build/convert script to stringify certain keys that may contain arrays
+ copy from 'variables.yaml-default' if it doesn't exist
* drop 'vpc' variable, using 'subnet' derives the proper VPC to use
* fix chrony.conf (all pool.ntp.org references are changed to 169.254.169.123)
* update README.md caveatshttps://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/16make edge2018-09-11T16:57:38ZJake Buchholz Göktürkmake edge* Add the ability to 'make edge' to create an AMI based on the latest Alpine edge repository
* Force 'ami_revision' to be 'rYYYYMMDDHHMMSS'* Add the ability to 'make edge' to create an AMI based on the latest Alpine edge repository
* Force 'ami_revision' to be 'rYYYYMMDDHHMMSS'https://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/18fixes and tweaks2018-12-02T19:16:40ZJake Buchholz Göktürkfixes and tweaks* aws-ena-driver moved from testing to community
* improve minimum release version test
* clarify public_ip variable; uses subnet's default when unset
* add 'distclean' Makefile target
* add 'variables.yaml_*' to .gitignore to exclud...* aws-ena-driver moved from testing to community
* improve minimum release version test
* clarify public_ip variable; uses subnet's default when unset
* add 'distclean' Makefile target
* add 'variables.yaml_*' to .gitignore to exclude custom build profileshttps://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/26fix issue #242018-12-03T03:58:50ZJake Buchholz Göktürkfix issue #24* Latest Amazon Linux enables 64bid when creating ext4 partitions, which is incompatible with syslinux/extlinux bootloader. Explicitly disable 64bit support, as it's highly unlikely we'll need a boot volume >16 TiB.
* update-extlinux.c...* Latest Amazon Linux enables 64bid when creating ext4 partitions, which is incompatible with syslinux/extlinux bootloader. Explicitly disable 64bit support, as it's highly unlikely we'll need a boot volume >16 TiB.
* update-extlinux.conf - switch kernel default to 'virt', as 'hardened' no longer exists.https://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/31Alpine 3.8.2 updates2019-01-19T20:22:54ZJake Buchholz GöktürkAlpine 3.8.2 updates* no longer need aws-ena-driver, it's in linux-virt
* no longer need to install edge repo version of linux-virt package* no longer need aws-ena-driver, it's in linux-virt
* no longer need to install edge repo version of linux-virt packagehttps://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/33fix 3.8 ena drivers2019-01-19T20:00:15ZJake Buchholz Göktürkfix 3.8 ena drivers* go back to using `linux-virt@edge-main`, which has `ena` drivers -- fixes #32
* other misc fixes
* update `README`
* use `--no-cache` when installing alpine-base* go back to using `linux-virt@edge-main`, which has `ena` drivers -- fixes #32
* other misc fixes
* update `README`
* use `--no-cache` when installing alpine-basehttps://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/34Add add_svcs, fix nvme, add eu-north-12019-02-06T02:04:12ZJake Buchholz GöktürkAdd add_svcs, fix nvme, add eu-north-1Ability to enable additional services on the AMI's runlevels. I'm using this to add `haveged` to the boot runlevel to boost the amount of initial entropy on smaller instance types, so `sshd` can start in under 6s instead of over 2m. (I...Ability to enable additional services on the AMI's runlevels. I'm using this to add `haveged` to the boot runlevel to boost the amount of initial entropy on smaller instance types, so `sshd` can start in under 6s instead of over 2m. (I `rc-update del haveged boot` after `sshd` is up.) Example `variables.yaml` snippet:
```
add_svcs:
boot:
- haveged
default:
- docker
- nginx
```
There was also a race condition I encountered with the NVMe-to-EBS device mapping. Occasionally, the EBS device (`/dev/sdX`, `/dev/xvdX`) wasn't available the first time we tried to get it with `nvme id-ctrl`. Subsequent attempts succeed, however.
This PR also adds the new eu-north-1 (Stockholm) region.https://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/36Re-baseline to the newly-released Alpine 3.92019-02-06T02:04:09ZJake Buchholz GöktürkRe-baseline to the newly-released Alpine 3.9* Match meanings of 'version' and 'release' to how Alpine uses them
* Use optional 'revision' to denote any same-release AMI rebuild
* Include CPU 'arch' in naming/description (may also offer 'aarch64' AMIs someday)
* Upgrade build in...* Match meanings of 'version' and 'release' to how Alpine uses them
* Use optional 'revision' to denote any same-release AMI rebuild
* Include CPU 'arch' in naming/description (may also offer 'aarch64' AMIs someday)
* Upgrade build instance to use Amazon Linux 2 AMIs
* Use env vars to pass details to `make_ami.sh` instead of via CLI parameters
* `make_ami.sh`
* minimum version/release shouldn't be overridable
* update APK tools & Alpine keys
* check build's release vs. installed `/etc/alpine-release`https://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/38Release Alpine Linux 3.9.0 AMIs2019-02-08T01:29:39ZJake Buchholz GöktürkRelease Alpine Linux 3.9.0 AMIs* Update README.md and release.yaml with a fresh batch of 3.9.0 AMIs
* Append GitHub project link to AMI description* Update README.md and release.yaml with a fresh batch of 3.9.0 AMIs
* Append GitHub project link to AMI descriptionhttps://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/41fix nvme-ebs-links2019-02-24T19:52:17ZJake Buchholz Göktürkfix nvme-ebs-linksEnsure that the EBS volume alias matches what we expect it to be.
Should fix issue #40.Ensure that the EBS volume alias matches what we expect it to be.
Should fix issue #40.https://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/42release 3.9.0-12019-02-26T02:09:17ZJake Buchholz Göktürkrelease 3.9.0-1Release a revised set of Alpine Linux AMIs, including...
* improved `nvme-ebs-links` mdev script (issue #40)
* start `haveged` at boot runlevel (issue #39)Release a revised set of Alpine Linux AMIs, including...
* improved `nvme-ebs-links` mdev script (issue #40)
* start `haveged` at boot runlevel (issue #39)https://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/43Alpine 3.9.12019-03-05T02:15:08ZJake Buchholz GöktürkAlpine 3.9.1https://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/45Fix nvme-ebs-links (issue #44)2019-03-04T05:57:34ZJake Buchholz GöktürkFix nvme-ebs-links (issue #44)* EBS may prepend '/dev/' in front of the EBS alias, adjust the "sanity `sed`" to account for this.
* Attempt to get a sane EBS alias up to 50x, sleep 1/10s in between (max duration ~5 secs).
* Log when we add / fail-to-add / remove EB...* EBS may prepend '/dev/' in front of the EBS alias, adjust the "sanity `sed`" to account for this.
* Attempt to get a sane EBS alias up to 50x, sleep 1/10s in between (max duration ~5 secs).
* Log when we add / fail-to-add / remove EBS alias symlinks.https://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/46Alpine release 3.9.22019-03-05T02:14:40ZJake Buchholz GöktürkAlpine release 3.9.2https://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/47Alpine Release 3.9.32019-05-12T05:40:36ZJake Buchholz GöktürkAlpine Release 3.9.3* Alpine release 3.9.3
* take care of YAML.load(input) deprecation, per https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation* Alpine release 3.9.3
* take care of YAML.load(input) deprecation, per https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecationhttps://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/51Build Profiles, 3.9.4, and 3.10.02019-07-12T16:01:09ZJake Buchholz GöktürkBuild Profiles, 3.9.4, and 3.10.0* Build Profiles (completion of PR #49)
+ ~auto-updates version profile when new release detected~
+ updates `releases/<profile>.yaml` after successful builds
* Prune AMIs (in AWS and `releases/<profile>.yaml`) at different levels...* Build Profiles (completion of PR #49)
+ ~auto-updates version profile when new release detected~
+ updates `releases/<profile>.yaml` after successful builds
* Prune AMIs (in AWS and `releases/<profile>.yaml`) at different levels...
+ 'revision' - keep latest revision per release
+ 'release' - keep latest release per version
+ 'version' - remove end-of-life versions
+ resolves issue #20 and provides a way to manage issue #23
* `releases/README.md` updater script (resolves issue #20)
* The above should provide most of the necessary functionality for setting up CICD (issue #22)
* README overhaul...
+ Pre-built AMIs --> `releases/README.md`
- mentions `/var/lib/cloud/.bootstrap-complete` (resolves issue #48)
+ `profiles/README.md` for in-depth profile configuration details
+ main `README.md` overhauled to go over how to build and manage custom AMIs
Also, new AMIs for Alpine 3.10.0, Alpine 3.9.4 (resolves #39), and today's snapshot of Alpine Edge.https://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/52alpine 3.10.1 release2019-07-12T16:01:28ZJake Buchholz Göktürkalpine 3.10.1 releasehttps://gitlab.alpinelinux.org/alpine/cloud/alpine-ec2-ami/-/merge_requests/54Latest AMIs per Version in releases/README.md2019-07-14T19:44:10ZJake Buchholz GöktürkLatest AMIs per Version in releases/README.mdOnly keep the latest AMIs per version in releases/README.md instead of per release.Only keep the latest AMIs per version in releases/README.md instead of per release.