Repository: osbuild/osbuild-composer
Pull request #187 (2020-01-02 11:00:31)

Tweak the Fedora vhd output format to boot in Azure
Replaces #158 which has a lot of merge conflicts.


Patch:
diff --git a/internal/distro/fedora30/distro.go b/internal/distro/fedora30/distro.go
index 9e25b07f1..822c02fac 100644
--- a/internal/distro/fedora30/distro.go
+++ b/internal/distro/fedora30/distro.go
@@ -210,11 +210,23 @@ func New() *Fedora30 {
 			"ntfsprogs",
 			"WALinuxAgent",
 			"libxcrypt-compat",
+			"initscripts",
+			"glibc-all-langpacks",
+			"dracut-config-generic",
 		},
 		ExcludedPackages: []string{
 			"dracut-config-rescue",
 		},
-		KernelOptions: "ro biosdevname=0 net.ifnames=0",
+		EnabledServices: []string{
+			"sshd",
+			"waagent", // needed to run in Azure
+		},
+		DisabledServices: []string{
+			"proc-sys-fs-binfmt_misc.mount",
+			"loadmodules.service",
+		},
+		// These kernel parameters are required by Azure documentation
+		KernelOptions: "ro biosdevname=0 rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0",
 		Bootable:      true,
 		Assembler:     func(uefi bool) *pipeline.Assembler { return r.qemuAssembler("vpc", "disk.vhd", uefi) },
 	}


Test patch:
diff --git a/test/cases/vhd_empty_blueprint.json b/test/cases/vhd_empty_blueprint.json
index 78af91d4a..4f3879316 100644
--- a/test/cases/vhd_empty_blueprint.json
+++ b/test/cases/vhd_empty_blueprint.json
@@ -57,7 +57,10 @@
             "@Core",
             "WALinuxAgent",
             "chrony",
+            "dracut-config-generic",
+            "glibc-all-langpacks",
             "grub2-pc",
+            "initscripts",
             "kernel",
             "langpacks-en",
             "libxcrypt-compat",
@@ -102,10 +105,23 @@
         "name": "org.osbuild.grub2",
         "options": {
           "root_fs_uuid": "76a22bf4-f153-4541-b6c7-0332c0dfaeac",
-          "kernel_opts": "ro biosdevname=0 net.ifnames=0",
+          "kernel_opts": "ro biosdevname=0 rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0",
           "legacy": true
         }
       },
+      {
+        "name": "org.osbuild.systemd",
+        "options": {
+          "enabled_services": [
+            "sshd",
+            "waagent"
+          ],
+          "disabled_services": [
+            "proc-sys-fs-binfmt_misc.mount",
+            "loadmodules.service"
+          ]
+        }
+      },
       {
         "name": "org.osbuild.selinux",
         "options": {
@@ -139,7 +155,7 @@
     "boot-environment": {
       "GRUB2_BOOT_FS_UUID": "76a22bf4-f153-4541-b6c7-0332c0dfaeac",
       "GRUB2_ROOT_FS_UUID": "76a22bf4-f153-4541-b6c7-0332c0dfaeac",
-      "kernelopts": "root=UUID=76a22bf4-f153-4541-b6c7-0332c0dfaeac ro biosdevname=0 net.ifnames=0"
+      "kernelopts": "root=UUID=76a22bf4-f153-4541-b6c7-0332c0dfaeac ro biosdevname=0 rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
     },
     "bootloader": "grub",
     "bootmenu": [
@@ -275,6 +291,7 @@
       "dnf-plugins-core-4.0.6-1.fc30.noarch",
       "dnf-yum-4.2.2-2.fc30.noarch",
       "dracut-049-26.git20181204.fc30.x86_64",
+      "dracut-config-generic-049-26.git20181204.fc30.x86_64",
       "e2fsprogs-1.44.6-1.fc30.x86_64",
       "e2fsprogs-libs-1.44.6-1.fc30.x86_64",
       "ebtables-2.0.10-31.fc30.x86_64",
@@ -304,6 +321,7 @@
       "gettext-libs-0.19.8.1-18.fc30.x86_64",
       "glib2-2.60.1-2.fc30.x86_64",
       "glibc-2.29-9.fc30.x86_64",
+      "glibc-all-langpacks-2.29-9.fc30.x86_64",
       "glibc-common-2.29-9.fc30.x86_64",
       "glibc-langpack-en-2.29-9.fc30.x86_64",
       "gmp-6.1.2-10.fc30.x86_64",
@@ -326,6 +344,7 @@
       "hardlink-1.3-8.fc30.x86_64",
       "hostname-3.20-8.fc30.x86_64",
       "ima-evm-utils-1.1-5.fc30.x86_64",
+      "initscripts-10.01-2.fc30.x86_64",
       "ipcalc-0.2.5-2.fc30.x86_64",
       "iproute-5.0.0-2.fc30.x86_64",
       "iproute-tc-5.0.0-2.fc30.x86_64",
@@ -613,6 +632,7 @@
       "console-getty.service",
       "debug-shell.service",
       "ebtables.service",
+      "loadmodules.service",
       "nftables.service",
       "nis-domainname.service",
       "rdisc.service",
@@ -626,7 +646,6 @@
       "systemd-time-wait-sync.service",
       "systemd-timesyncd.service",
       "tcsd.service",
-      "waagent.service",
       "sshd.socket",
       "sssd-autofs.socket",
       "sssd-nss.socket",
@@ -656,6 +675,7 @@
       "dbus.service",
       "firewalld.service",
       "getty@.service",
+      "import-state.service",
       "messagebus.service",
       "NetworkManager-dispatcher.service",
       "NetworkManager-wait-online.service",
@@ -664,6 +684,7 @@
       "sshd.service",
       "sssd.service",
       "timedatex.service",
+      "waagent.service",
       "dbus.socket",
       "sssd-kcm.socket",
       "ctrl-alt-del.target",