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:

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.