I will be talking based on some quick QEMU experiments along the following setup: https://askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit-online/1081171#1081171
As of 18.04, the cloud images are already in qcow2 format, so the following seemed to work:
qemu-img resize ubuntu-18.04-server-cloudimg-arm64.img +128G
The guest appeared to immediately pick this new size up.
This script claims to make a given partition fill up as much space as possible and might be of use:
sudo apt-get install cloud-guest-utils
sudo growpart /dev/vda 1
It seems to run happily even though /dev/vda1 was mounted at /.