Multipass roadmap planning - what are your ideas?

Hi everyone,
Here at Canonical we are beginning to plan our next six-month development cycle. The Multipass team has been growing and we’re excited to take on some bigger challenges in the months ahead.

We would love to hear from all of you about where you want to see this project go in the future! What would improve your Multipass experience?

Anything is on the table at this stage in the process, so let us know in the comments below what you are hoping to see added in Multipass for 23.04 and beyond.

4 Likes

Better documentation. It is still pretty unclear what the purpose of multipass is.

1 Like

This isn’t exactly specific to 23.04, but I would love to be able to test Subiquity for auto-installs, similar to how you can pass cloud-init data. This would allow for rapid testing and iteration of functions within subiquity rather than spinning up a full VM in your hypervisor of choice every time you want to test something out, which is a very long winded process.

i recently discovered multipass. its a great way to run a headless VM, it simplifies the lxd/lxc setup process and you dont need to mess around with virtualbox or virt-manager anymore.

i use it to run VM’s so on my mac i have a linux base, inside i run docker.

i would like to see interoperability between lxc, that would solve the shortcomings, like cloning a VM and snapshots. like you can switch between gnome-boxes and virt-manager, maybe multipass can be the boxes equivalent GUI/CLI

would like to see options and instructions on creating config yml files or plain bash scripts so you can predefine, configure all the mount points , ram, disksizes and automate.

commercially, if you combine it with a wireguard solution like tailscale, teleport, zerotrust cloudflare tunnels, it would be a great product to setup you own private cloud solutions and in docker and kubernetes you can run apps like nextcloud, wordpress,etc and run something like nginx proxy manager or use the buildin swarm and k3s cluster loadbalancers for in/exgress .

2 Likes

Thanks for the ideas, everyone! @Yoredio you’ll be happy to know that we are looking hard at snapshots for this cycle. @reedacus25 I hadn’t thought about Subiquity in Multipass before, but I can see how that would be useful for testing. I’ll dig more into what that could look like.

And welcome to all of you! Thanks for joining discourse and contributing to the discussion.

Perhaps I’m missing it, but being able to create multiple hard disks, including raw drives, would be very helpful with kubernetes and storage products like portworx…

3 Likes

I’m using Multipass on my Mac, because it’s the only tool that I find to create fast headless env.
The other alternative for ARM is UTM but it’s too heavy to configure, and even auto-configured vm doesn’t work out of the box (networking especially). I was a fan of Vagrant but now on ARM it’s doesn’t work well.

Maybe have a minimal GUI to create simple VM (simply OS, Mem, CPU) ?
And some “file” config file, like vagrant files, to recreate similary env without writing a long command ?

1 Like

A GUI (or at least an MVP version) is definitely on our roadmap this cycle, glad to know that’s something you would find useful @damdam.

I’d like to learn more about the config file idea you mentioned - would that be something we could roll in with cloud-init, or something different?

Thanks for the input!

1 Like

Nothing more than the vagrant workflow : a sort of “multipass up” command that will look if there is a config file into the current directory (or a cloud-init file).
With this workflow, I can have my project code and the “dev-instance” settings in the same folder. But maybe its not very useful : i can copy my cloud-init file and launch multipass instance from these folders.

Thinking about that, I’m using cloud-init to inject my SSH key into each VM (because I want VsCode to connect to these VM in SSH), but maybe it is possible to set a “unique” ssh-key that will be injected into each new multipass vm ?

1 Like

Ok I see what you mean - that could definitely make it quicker than typing out a long configuration string on each launch. We have some more work to do in that area.

The SSH key thing is not that different from what happens now under the hood. Multipass controls instances via SSH. I was also wondering if it would be possible to tie that same mechanism into vscode for having easy-access dev environments. I’ve configured my vscode environments manually so far but it’s a great idea to do it via cloud-init. I’ll have to give that a try!

2 Likes

Better documentation and more shortcuts for using Multipass for HA with kubernetes and Terraform/pulumi especially in bare metal environments. This would help a lot of startups save a lot of much needed resources. Thanks for a great job so far !

1 Like

I’d +1 for the snapshots/backup option. I’m running lab tests on my local machine, so being able to start from a specific setup point would be fantastic. I already leveraged the scripts to create a default install and upload my settings to each VM, but my app state changes when doing updates, so the snapshot and copy function would be ideal.

Hi! It would be great to have a public roadmap and (tentative) release dates.
I know the team uses GitHub milestones, but there are no dates there.
Thanks!

BTW I found a plugin for Vagrant using Multipass
https://github.com/Fred78290/vagrant-multipass
And this is the first time I can use Vagrant without any problem on my Macbook ARM :heart_eyes:
Don’t know if is possible to “sponsor” this tool, just to avoid to broke it when a new version of Multipass will be release ?

1 Like

I wanted to post this as a new topic, but for the life of me - I could not find that button.


I am looking for someone who can either help me understand it, or willing to collaborate to realize the workflow described below in case it is not possible now.

I hope the end result of this exercise can be:

  1. A multipass command OR a script OR a collection of scripts.
  2. If this is not possible, at least a clear “Guide for Dummies” on how to set it up.

The problem

I am a long time Vagrant user. I am using a Windows host, and launching an Ubuntu guest. This has worked fine for years, but it gradually becomes more difficult with compatibility issues, and “lazily maintained” Vagrant components and plugins.

What seems to be the final nail in the coffin, is the fact that Ubuntu 21 and up no longer supports UDP for NFS.

I am hoping that multipass can serve as a replacement for my Vagrant setup.

The requirements

  1. Host is Windows (Home edition, no NFS built in - solved in Vagrant by vagrant-winnfsd, which uses this winnfsd.exe).
  2. Guest is Ubuntu (headless).
  3. Set up multiple port forwarding.
  4. Set up file sharing via NFS, using UDP (everything else is too slow).
  5. Logging into the guest is done via SSH using a key file, and not any of the Windows terminal apps.
  6. Have all configuration (ports, mounting directories) inside a configuration file or script (like Vagrantfile).

The dream

Ideally, I would like to get as close as possible to something like this:

# multipass-config.yml
name: "Ubuntu Jammy Box"
version: jammy64
disk: 40GB
memory: 4GB
ports: [80, 443, 3000, 4000]
keyfile: /path/to/private.key
mounts:
  - host: ./
    guest: /path/on/guest

then run multipass up in the same directory as this file.