How to create VM images for ucloud ================================== Overview --------- ucloud tries to be least invasise towards VMs and only require strictly necessary changes for running in a virtualised environment. This includes configurations for: * Configuring the network * Managing access via ssh keys * Resizing the attached disk(s) Network configuration --------------------- All VMs in ucloud are required to support IPv6. The primary network configuration is always done using SLAAC. A VM thus needs only to be configured to * accept router advertisements on all network interfaces * use the router advertisements to configure the network interfaces * accept the DNS entries from the router advertisements Configuring SSH keys -------------------- To be able to access the VM, ucloud support provisioning SSH keys. To accept ssh keys in your VM, request the URL *http://metadata/ssh_keys*. Add the content to the appropriate user's **authorized_keys** file. Below you find sample code to accomplish this task: .. code-block:: sh tmp=$(mktemp) curl -s http://metadata/ssk_keys > "$tmp" touch ~/.ssh/authorized_keys # ensure it exists cat ~/.ssh/authorized_keys >> "$tmp" sort "$tmp" | uniq > ~/.ssh/authorized_keys Disk resize ----------- In virtualised environments, the disk sizes might grow. The operating system should detect disks that are bigger than the existing partition table and resize accordingly. This task is os specific. ucloud does not support shrinking disks due to the complexity and intra OS dependencies.