diff --git a/packer.conf b/packer.conf index dafb071..e741255 100644 --- a/packer.conf +++ b/packer.conf @@ -87,6 +87,7 @@ provisioners = [ "SVCS={{user `svcs`}}" "KERNEL_MODS={{user `kernel_modules`}}" "KERNEL_OPTS={{user `kernel_options`}}" + "INITFS_FEATURES={{user `initfs_features`}}" ] use_env_var_file = "true" execute_command = "sudo sh -c '. {{.EnvVarFile}} && {{.Path}}'" diff --git a/profiles/base/1 b/profiles/base/1 index 666e5d4..936018f 100644 --- a/profiles/base/1 +++ b/profiles/base/1 @@ -91,3 +91,9 @@ kernel_options { "console=ttyS0" = true "console=tty0" = true } +# NOTE: nvme and ena are critical for i3, a1, m6g, and anything in the 5 series +# forward. Without them these instances will not boot. +initfs_features { + nvme = true + ena = true +} diff --git a/scripts/builder.py b/scripts/builder.py index 08c0fa7..bfbd5d4 100755 --- a/scripts/builder.py +++ b/scripts/builder.py @@ -487,13 +487,14 @@ class ConfigBuilder: self.out_dir = out_dir self._keys_to_transform = { - "kernel_modules" : self.fold_comma, - "kernel_options" : self.fold_space, - "repos" : self.fold_repos, - "pkgs" : self.fold_packages, - "svcs" : self.fold_services, - "revision" : self.resolve_now, - "end_of_life" : lambda x: \ + "kernel_modules" : self.fold_comma, + "kernel_options" : self.fold_space, + "initfs_features" : self.fold_space, + "repos" : self.fold_repos, + "pkgs" : self.fold_packages, + "svcs" : self.fold_services, + "revision" : self.resolve_now, + "end_of_life" : lambda x: \ self.force_iso_date(self.resolve_tomorrow(x)), } diff --git a/scripts/setup-ami b/scripts/setup-ami index 1b43495..023c208 100755 --- a/scripts/setup-ami +++ b/scripts/setup-ami @@ -158,10 +158,7 @@ setup_mdev() { } create_initfs() { - # Enable ENA and NVME features these don't hurt for any instance and are - # hard requirements of the 5 series and i3 series of instances - # TODO: profile-ize? - sed -Ei 's/^features="([^"]+)"/features="\1 nvme ena"/' \ + sed -Ei "s/^features=\"([^\"]+)\"/features=\"\1 $INITFS_FEATURES\"/" \ "$TARGET/etc/mkinitfs/mkinitfs.conf" chroot "$TARGET" /sbin/mkinitfs $(basename $(find "$TARGET/lib/modules/"* -maxdepth 0))