# Copyright (C) 2014, 2015 Codethink Limited # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, see . help: | Deploy a Baserock system as a *new* KVM/LibVirt virtual machine. Use the `ssh-rsync` write extension to deploy upgrades to an *existing* VM Parameters: * location: a custom URL scheme of the form `kvm+ssh://HOST/GUEST/PATH`, where: * HOST is the name of the host on which KVM/LibVirt is running * GUEST is the name of the guest VM on that host * PATH is the path to the disk image that should be created, on that host. For example, `kvm+ssh://alice@192.168.122.1/testsys/home/alice/testys.img` where * `alice@192.168.122.1` is the target host as given to ssh, **from within the development host** (which may be different from the target host's normal address); * `testsys` is the name of the new guest VM'; * `/home/alice/testys.img` is the pathname of the disk image files on the target host. * HOSTNAME=name: the hostname of the **guest** VM within the network into which it is being deployed * DISK_SIZE=X: the size of the VM's primary virtual hard disk. `X` should use a suffix of `K`, `M`, or `G` (in upper or lower case) to indicate kilo-, mega-, or gigabytes. For example, `DISK_SIZE=100G` would create a 100 gigabyte disk image. **This parameter is mandatory**. * RAM_SIZE=X: The amount of RAM that the virtual machine should allocate for itself from the host. `X` is interpreted in the same was as for DISK_SIZE`, and defaults to `1G` * VCPUS=n: the number of virtual CPUs for the VM. Allowed values 1-32. Do not use more CPU cores than you have available physically (real cores, no hyperthreads) * INITRAMFS_PATH=path: the location of an initramfs for the bootloader to tell Linux to use, rather than booting the rootfs directly. * AUTOSTART=` - boolean. If it is set, the VM will be started when it has been deployed. * DTB_PATH=path: **(MANDATORY)** for systems that require a device tree binary - Give the full path (without a leading /) to the location of the DTB in the built system image . The deployment will fail if `path` does not exist. * BOOTLOADER_INSTALL=value: the bootloader to be installed **(MANDATORY)** for non-x86 systems allowed values = - 'extlinux' (default) - the extlinux bootloader will be installed - 'none' - no bootloader will be installed by `morph deploy`. A bootloader must be installed manually. This value must be used when deploying non-x86 systems such as ARM. * BOOTLOADER_CONFIG_FORMAT=value: the bootloader format to be used. If not specified for x86-32 and x86-64 systems, 'extlinux' will be used allowed values = - 'extlinux' * KERNEL_ARGS=args: optional additional kernel command-line parameters to be appended to the default set. The default set is: 'rw init=/sbin/init rootfstype=btrfs \ rootflags=subvol=systems/default/run \ root=[name or UUID of root filesystem]' (See https://www.kernel.org/doc/Documentation/kernel-parameters.txt) (See `morph help deploy` for details of how to pass parameters to write extensions)