Commit Graph

190 Commits

Author SHA1 Message Date
Stefan Reimer 247ef1a388 chore: remove debug 2022-04-14 21:19:22 +02:00
Stefan Reimer 9c21b6cd7c fix: make age-seal safe to call multiple times 2022-04-14 21:18:28 +02:00
Stefan Reimer d996397619 Implement agebox flow in Makefile 2022-04-14 17:25:41 +02:00
Stefan Reimer 97d66abd84 feat: first working KubeZero images, alpha agebox support 2022-04-14 15:35:10 +02:00
Stefan Reimer 72689bfeb1 Merge commit '97f9193bcdb7973b081c55087d1bac12a662c871' 2022-03-21 12:57:04 +01:00
Stefan Reimer 97f9193bcd Squashed 'alpine-cloud-images/' changes from 99474a8..190e7f0
190e7f0 Merge branch 'main' of https://gitlab.alpinelinux.org/alpine/cloud/alpine-cloud-images
dd0e7b2 filter out non-tiny bootstrap images
7ac2029 Minor Fixes
5e89670 always apk upgrade builder VM, fix --clean of symlinked dirs
3399bde Fine tune apk upgrade

git-subtree-dir: alpine-cloud-images
git-subtree-split: 190e7f014539314b2ab29bd92156eec933da785f
2022-03-21 12:57:04 +01:00
Jake Buchholz Göktürk dd0e7b280c filter out non-tiny bootstrap images 2022-03-19 17:17:27 -07:00
Jake Buchholz Göktürk 7ac2029267 Minor Fixes
* switch 3.12 back to tiny-ec2-bootstrap (tiny-cloud requires ifupdown-ng)
* restrict cloud-init to 3.15+
* pad UEFI firmware so QEMU works with aarch64 again
* kinda fix motd release_notes (more to do yet)
2022-03-19 14:24:26 -07:00
Stefan Reimer 5e8967002e always apk upgrade builder VM, fix --clean of symlinked dirs
Fix for softlinks to directories during --clean / always use latest packages within a release at build time to pick up latest security fixes etc.
2022-03-12 17:56:14 +00:00
Stefan Reimer 9ccfc0cdaa Add 'alpine-cloud-images/' from commit '99474a8a6ab7a22e90f5f73d7cfb706cab51ace0'
git-subtree-dir: alpine-cloud-images
git-subtree-mainline: 043116c92a
git-subtree-split: 99474a8a6a
2022-03-11 18:31:44 +01:00
Stefan Reimer 043116c92a Initial commit 2022-03-11 17:30:11 +00:00
Stefan Reimer 99474a8a6a Always use latest packages within the release during builds to pick up security patches etc 2022-03-11 15:38:35 +01:00
Stefan Reimer 882bfa4393 Fix minor bug for softlinks pointing to directories during clean 2022-03-11 15:38:00 +01:00
Jake Buchholz Göktürk c9665f68dc Add "cloudinit" to Bootstrap Dimension
* cloudinit bootstrap is functional now
* remove cloudinit from testing overlay
* add e2fsprogs to all images

Resolves #100
2022-02-24 20:10:24 -08:00
Jake Buchholz Göktürk 13ad49f6f3 Move AWS-Related configs to aws.conf
Resolves #131
2022-02-23 18:51:07 -08:00
Jake Buchholz Göktürk 2a3d99fdc9 tweak readme 2022-01-31 19:44:08 -08:00
Jake Buchholz Göktürk 63a522149d Tiny Cloud / set default NTP server
* switch to tiny-cloud instead of tiny-ec2-bootstrap
* set default NTP server, if configured
* add default /etc/network/interfaces
* add urlopen() timeout to mitigate ipv6 issues connecting to alpinelinux.org
2022-01-30 19:18:09 +00:00
Jake Buchholz Göktürk 51cc63091f Make AWS Images Work with CloudFormation
root device / block device needs full '/dev/...' for CloudFormation to work (individual instance launches worked just fine though).

Also...
* HOCON += introduces unwanted spaces in motd
* minor log.debug fixes
* update gen_releases.py --help note
2021-12-28 13:11:16 -08:00
Jake Buchholz Göktürk c1469d6c31 Update Docs / Misc Refinements
Fleshed out Documentation

alpine.conf
* improve motd readability
* default access = public
* default regions = all
* remove version 3.11 (EOL)

alpine-testing.conf
* access is private
* limit aws regions

build
* improve/refine overlay installation
* rename "actions" step to "state"

image_configs.py
* target step "state" updates images.yaml as if "publish" WOULD be done (but won't be)
2021-12-26 21:52:47 +00:00
Jake Buchholz Göktürk 0cf623f7a5 Merge branch 'fixes/authoritative-EOLs_etc' into 'main'
Authoritative EOL / Publish Updates Tags & Description

See merge request tomalok/alpine-cloud-images!129
2021-11-30 16:11:32 +00:00
Jake Buchholz Göktürk a8fae241f0 Authoritative EOL / Publish Updates Tags & Description
Implement alpine lib as a class
* get versions/releases/EOLs from authoritative source
* methods to build appropriate URLs
* fallback to old method of determining release for RC versions
* compute edge & RC EOLs here instead of elsewhere

Remove end_of_life from configs, and don't return it from imported images.

Always update image tags and descriptions when re/publishing images.

Fix image description URL...  :P
2021-11-30 16:11:32 +00:00
Jake Buchholz Göktürk 31b84a9dd1 Merge branch 'initial/part_three' into 'main'
alpine-cloud-images, part three

See merge request tomalok/alpine-cloud-images!128
2021-11-28 23:04:28 +00:00
Jake Buchholz Göktürk 274d883acb alpine-cloud-images, part three 2021-11-28 23:04:28 +00:00
Jake Buchholz Göktürk 4f754f8d59 Merge branch 'initial/part_two' into 'main'
alpine-cloud-images, part two

See merge request tomalok/alpine-cloud-images!127
2021-11-23 06:09:18 +00:00
Jake Buchholz Göktürk 6674286b46 alpine-cloud-images, part two 2021-11-23 06:09:18 +00:00
Jake Buchholz Göktürk 9d882bff7a Merge branch 'initial/part_one' into 'main'
alpine-cloud-images, part one

See merge request tomalok/alpine-cloud-images!126
2021-11-07 21:35:17 +00:00
Jake Buchholz Göktürk e01e56bfa3 alpine-cloud-images, part one
This is the first MR to replace !125, and contains everything except the new python stuff -- which is part two.
2021-11-07 12:37:56 -08:00
tomalok dd5b5ea415
released 3.14.1 (#124) 2021-08-06 22:25:08 -07:00
tomalok b8ac181435
Update for Version 3.14 (#122)
Update for Version 3.14

* remove 3.10 build
* fix aarch64 AMI's /etc/default/grub (resolves #121)
* bump revision for aarch64 3.13 & 3.12 (to rebuild with fix)
* fix comment on 3.13
* fix comment on 3.14
* new 3.14.0 AMIs released
2021-06-15 12:34:38 -07:00
Mike Crute b578a39eb7 Remove backport hack for tiny-ec2-bootstrap 2021-05-03 09:49:16 -07:00
tomalok 3b7fd13083
new Alpine releases (#117) 2021-04-14 18:48:02 -07:00
tomalok 19dc1beaa6
New releases (3.13.4, 3.12.6, 3.11.10, 3.10.8) (#116)
Addresses CVE-2021-28831
2021-03-31 18:53:54 -07:00
tomalok 1fb5e5b663
Alpine 3.13.2 released (#115) 2021-02-17 08:49:13 -08:00
tomalok 88f3f1374e
Autodetect Current Revision of Alpine Version (#113)
* continue to use provided 'release' value if specified
* continue to use 'edge' for edge versions
* deduce 'release' value from the version on the alpine-base APK in https://dl-cdn.alpinelinux.org/alpine/v<version/main/<arch>/ 
* update test profile with 3.13
2021-02-02 20:13:33 -08:00
tomalok 30550530fe
Alpine Linux 3.13.1 released (#111) 2021-01-29 19:25:21 -08:00
tomalok 2bf6727f67
Release Alpine 3.13.0 (#108)
3.13.0 release
* add version 3.13 profile
* 3.13 end-of-life is 2022-11-01
* note we're an official Alpine project now!
* releases/alpine.yaml has been "--trim release"'d
* updated releases/README.md

scripts/builder.py
* fix ReleaseReadme() to not die when release contains "_rc"
* add --trim to releases-yaml
* tweak some --help for release-yaml and prune

scripts/setup-ami
* explicitly lock AMI root account
2021-01-14 23:53:40 -08:00
Mike Crute 644ac6b2b7 These are now official 2021-01-14 18:35:59 +00:00
tomalok 53fd1d27b1
Builder Overhaul (#106)
Subcommands
* merge 'resolve-profiles' and 'make-amis' into 'amis'
* rename 'update-releases' to 'release-yaml'
* rename 'gen-release-readme' to 'release-readme'
* rename 'prune-amis' to 'prune'
* reorder to match the usual workflow
* use argparse mutually-exclusive group where appropriate
* use argparse 'metavar' and 'nargs' for more salient help

release
* can now specify multiple AMIs on command line
* add explicit '--private' argument
* if no '--private', '--public', or '--allow-account' is specified, default to propagate the source AMI's permissions to its copies
* move 'iter_regions' and 'get*image' methods out of ReleaseAMIs class because they're also used elsewhere
* 'update_image_permissions' resets perms before adding new perms
* pending_copy loop, reports on everything in progress, waits 3m before reporting on everything again, and then waits 30s between reports
* pending_copy also notes when a copy has completed (and only queues for pending_perms if they need adjustment)

Releases class
* used by release-yaml and prune subcommands
* caches region client objects for later use (by prune)
* loads images from region - either from a profile or "unknown" (no profile tag)
* builds the releases object - now structured release -> build (instead of build -> release)

ReleasesReadme
* works with new releases object format
* improve sorting and selection of latest per version per-build AMIs
* empty cell if a region doesn't happen to have a build AMI there

PruneAMIs
* rename 'version' level to 'end-of-life'
* add 'UNKNOWN' pruning level
* works, even if you don't want to --use-broker
* --keep N - keeps an additional N AMIs that would otherwise have been purged per build
* --defer-eol DAYS - give EOL AMIs a grace period past their official EOL date
* no AMI deletion happens unless --no-pretend arg is provided
* improve pruning criteria scan and candidate selection

Co-authored-by: Jake Buchholz <jake@jakesys.net>
2021-01-04 17:36:15 -08:00
Jake Buchholz e5b574f48f Post-Build Cleanup, etc.
scripts/builder.py...

GenReleaseReadme:
* combine with ReleaseReadmeUpdater
* generates README_<profile>.md
* README_alpine.md is a symlink to README.md
* don't crash when README doesn't preexist
* append image list to README if no list found to replace

MakeAMIs:
* collect all artifact IDs and report after all builds
* don't update releases/readme

PruneAMIs:
* defaults to pretend mode, unless --no-pretend
* improve readability

UpdateReleases:
* replace code with what was RefreshReleases
2020-12-22 15:42:20 -08:00
tomalok 4494aa4463
Release the latest versions (#101)
Release the latest versions
* v3.12.3 (x86_64 & aarch64)
* v3.11.7 (x86_64)
* v3.10.5-r1 (x86_64)
* today's edge (x86_64 & aarch64)
* sort the release AMIs by region

builder.py timings, roughly
* amis - 23m
* release (serial) - 1h38m
* refresh-releases - 4m
* gen-release-readme - instantaneous
2020-12-19 11:16:48 -08:00
tomalok a530e331f3
Add refresh-releases subcommand, etc. (#97)
* Add refresh-releases subcommand, etc.

* builder.py
  + gen-release-readme
    - convert `build_time` to int
  + release
    - add `source_region` to copied AMI tags
    - check source AMI's permissions, queue for fixing, if necessary
  + refresh-releases
    - update releases/<profile>.yaml based on AMIs that exist in regions
  + explicitly call out `python-dateutil` dependency and `pip install` it into the venv

* Release Alpine 3.12.2 & today's edge
2020-12-14 22:24:29 -08:00
Mike Crute 3b4e395850
New Release Tool (#83)
* Add EC2 data types
* Add release command
2020-12-11 18:02:13 -08:00
tomalok 20ee5f5bc1
Define Bootloader in Profiles, etc. (#94)
* make it easier to switch between bootloaders
* experimental (non-working) EFI_STUB bootloader
* remove apk_tools & alpine_keys from profiles
* determine & install appropriate apk_toosl & alpine_keys in setup-ami based on version and arch.
2020-12-11 17:43:27 -08:00
tomalok 6e252ce9de
Fix 3.12.1 aarch64 Root Resize (#93)
release alpine-ami-3.12.1-aarch64-r1

Also...
* release new edge builds
* Alpine 3.9 is EOL
* build_instance_type set in profiles/arch/
* a couple comment fixes
2020-11-22 16:16:45 -08:00
Jake Buchholz 24bf01621f Fix assembly of /etc/network/interfaces
Include the other interface configs from /etc/network/interfaces.d/ after lo
and existing eth*, as was initially intended.

Also separate out the assembly code into its own script, as this is done both
on boot via eth-eni-setup and on hotplug events by etc-eni-hotplug.

Resolves #91
2020-11-15 20:31:36 -08:00
Jake Buchholz 9ddcac75c3 s/private IPv4/secondary IPv4/ 2020-11-05 08:17:24 -08:00
Jake Buchholz 909e9fd2a8 specify _Alpine_ release 3.12.1 2020-11-05 08:17:24 -08:00
Jake Buchholz e578d23975 add missing ) after (launch 2020-11-05 08:17:24 -08:00
Jake Buchholz 2ffd039692 fix collapsable sections 2020-11-05 08:17:24 -08:00
Jake Buchholz 79beab0f97 grammar tweak 2020-11-05 08:17:24 -08:00