Add a vhd compose type for Azure images

This does pretty much the same things as the AMI compose type, but also
replaces NetworkManager with the Azure linux agent.

(cherry picked from commit e0c236ff36)

Resolves: rhbz#1628648
This commit is contained in:
David Shea 2018-09-28 15:11:09 -04:00
parent 253689ff49
commit 1c1f97ad70
4 changed files with 71 additions and 2 deletions

View File

@ -41,7 +41,7 @@ keep track of the build. You can also cancel the build if needed.
The available types of images is displayed by ``composer-cli compose types``.
Currently this consists of: ami, ext4-filesystem, live-iso, partitioned-disk,
qcow2, tar
qcow2, tar, vhd
Monitor the build status
------------------------

47
share/composer/vhd.ks Normal file
View File

@ -0,0 +1,47 @@
# Lorax Composer VHD (Azure, Hyper-V) output kickstart template
# Add a separate /boot partition
part /boot --size=1024
# Firewall configuration
firewall --enabled
# NOTE: The root account is locked by default
# Network information
network --bootproto=dhcp --onboot=on --activate
# System keyboard
keyboard --xlayouts=us --vckeymap=us
# System language
lang en_US.UTF-8
# SELinux configuration
selinux --enforcing
# Installation logging level
logging --level=info
# Shutdown after installation
shutdown
# System timezone
timezone US/Eastern
# System bootloader configuration
bootloader --location=mbr --append="no_timer_check console=ttyS0,115200n8 console=tty1 net.ifnames=0"
# Basic services
services --enabled=sshd,chronyd,waagent
%post
# Remove random-seed
rm /var/lib/systemd/random-seed
%end
%packages
kernel
-dracut-config-rescue
grub2
chrony
# Uninstall NetworkManager, install WALinuxAgent
-NetworkManager
WALinuxAgent
# NOTE lorax-composer will add the blueprint packages below here, including the final %end

View File

@ -569,6 +569,28 @@ def compose_args(compose_type):
"app_template": None,
"app_file": None,
},
"vhd": {"make_iso": False,
"make_disk": True,
"make_fsimage": False,
"make_appliance": False,
"make_ami": False,
"make_tar": False,
"make_pxe_live": False,
"make_ostree_live": False,
"make_oci": False,
"make_vagrant": False,
"ostree": False,
"live_rootfs_keep_size": False,
"live_rootfs_size": 0,
"image_type": "vpc",
"qemu_args": ["-o", "subformat=fixed,force_size"],
"image_name": "disk.vhd",
"fs_label": "",
"image_only": True,
"app_name": None,
"app_template": None,
"app_file": None,
},
}
return _MAP[compose_type]

View File

@ -808,7 +808,7 @@ class ServerTestCase(unittest.TestCase):
data = json.loads(resp.data)
self.assertNotEqual(data, None)
self.assertEqual(data["status"], False, "Failed to fail to start test compose: %s" % data)
self.assertEqual(data["errors"], [{"id": BAD_COMPOSE_TYPE, "msg": "Invalid compose type (snakes), must be one of ['ami', 'ext4-filesystem', 'live-iso', 'partitioned-disk', 'qcow2', 'tar']"}],
self.assertEqual(data["errors"], [{"id": BAD_COMPOSE_TYPE, "msg": "Invalid compose type (snakes), must be one of ['ami', 'ext4-filesystem', 'live-iso', 'partitioned-disk', 'qcow2', 'tar', 'vhd']"}],
"Failed to get errors: %s" % data)
def test_compose_03_status_fail(self):