Add a new compose type for Hyper-V
This is based on the VHD compose type, with the following differences: * Use the vhdx format instead of vhd * No WALinuxAgent * Install hyperv-daemons The hyperv-daemons are activated through udev rules, so there is no need to add them to the services line. (cherry picked from commit434fe58c28
) (cherry picked from commit367c2583e4
)
This commit is contained in:
parent
c1628bd171
commit
0220077242
@ -41,8 +41,8 @@ keep track of the build. You can also cancel the build if needed.
|
||||
|
||||
<<<<<<< HEAD
|
||||
The available types of images is displayed by ``composer-cli compose types``.
|
||||
Currently this consists of: ami, ext4-filesystem, google, live-iso, openstack,
|
||||
partitioned-disk, qcow2, tar, vhd, vmdk
|
||||
Currently this consists of: ami, ext4-filesystem, google, hyper-v, live-iso,
|
||||
openstack, partitioned-disk, qcow2, tar, vhd, vmdk
|
||||
|
||||
Monitor the build status
|
||||
------------------------
|
||||
|
60
share/composer/hyper-v.ks
Normal file
60
share/composer/hyper-v.ks
Normal file
@ -0,0 +1,60 @@
|
||||
# Lorax Composer VHD (Azure, Hyper-V) output kickstart template
|
||||
|
||||
# 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 earlyprintk=ttyS0,115200 rootdelay=300 net.ifnames=0"
|
||||
# Add platform specific partitions
|
||||
reqpart --add-boot
|
||||
|
||||
# Basic services
|
||||
services --enabled=sshd,chronyd
|
||||
|
||||
%post
|
||||
# Remove random-seed
|
||||
rm /var/lib/systemd/random-seed
|
||||
|
||||
# Clear /etc/machine-id
|
||||
rm /etc/machine-id
|
||||
touch /etc/machine-id
|
||||
|
||||
# Remove the rescue kernel and image to save space
|
||||
rm -f /boot/*-rescue*
|
||||
|
||||
# Add Hyper-V modules into initramfs
|
||||
cat > /etc/dracut.conf.d/10-hyperv.conf << EOF
|
||||
add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
|
||||
EOF
|
||||
|
||||
# Regenerate the intramfs image
|
||||
dracut -f -v --persistent-policy by-uuid
|
||||
%end
|
||||
|
||||
%addon com_redhat_kdump --disable
|
||||
%end
|
||||
|
||||
%packages
|
||||
kernel
|
||||
selinux-policy-targeted
|
||||
|
||||
chrony
|
||||
|
||||
hyperv-daemons
|
||||
|
||||
# NOTE lorax-composer will add the recipe packages below here, including the final %end
|
@ -848,6 +848,31 @@ def compose_args(compose_type):
|
||||
"app_template": None,
|
||||
"app_file": None,
|
||||
},
|
||||
"hyper-v": {"make_iso": False,
|
||||
"make_disk": True,
|
||||
"make_fsimage": False,
|
||||
"make_appliance": False,
|
||||
"make_ami": False,
|
||||
"make_tar": False,
|
||||
"make_tar_disk": 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_size_align": 0,
|
||||
"image_type": "vhdx",
|
||||
"qemu_args": [],
|
||||
"image_name": "disk.vhdx",
|
||||
"tar_disk_name": None,
|
||||
"fs_label": "",
|
||||
"image_only": True,
|
||||
"app_name": None,
|
||||
"app_template": None,
|
||||
"app_file": None,
|
||||
},
|
||||
}
|
||||
return _MAP[compose_type]
|
||||
|
||||
|
@ -9,7 +9,7 @@ CLI="${CLI:-./src/bin/composer-cli}"
|
||||
rlJournalStart
|
||||
rlPhaseStartTest "compose types"
|
||||
rlAssertEquals "lists all supported types" \
|
||||
"`$CLI compose types | sort | xargs`" "ami ext4-filesystem google live-iso openstack partitioned-disk qcow2 tar vhd vmdk"
|
||||
"`$CLI compose types | sort | xargs`" "ami ext4-filesystem google hyper-v live-iso openstack partitioned-disk qcow2 tar vhd vmdk"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest "compose start"
|
||||
|
@ -859,7 +859,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', 'google', 'live-iso', 'openstack', 'partitioned-disk', 'qcow2', 'tar', 'vhd', 'vmdk']"}],
|
||||
self.assertEqual(data["errors"], [{"id": BAD_COMPOSE_TYPE, "msg": "Invalid compose type (snakes), must be one of ['ami', 'ext4-filesystem', 'google', 'hyper-v', 'live-iso', 'openstack', 'partitioned-disk', 'qcow2', 'tar', 'vhd', 'vmdk']"}],
|
||||
"Failed to get errors: %s" % data)
|
||||
|
||||
def test_compose_03_status_fail(self):
|
||||
|
Loading…
Reference in New Issue
Block a user