Poor documentation

Not clear if I use --cloud-init if that adds to the default or overrides it - my experience suggests it overrides it.
Why is the file /etc/cloud/cloud.cfg not in yaml format as the docs suggest it MUST be?
Since it is NOT in yaml format how do I change or add to it? Specifically how do I add another user?

Hi @istringer, you’re right we need a bit more documentation on the --cloud-init usage, we have a dedicated page planned for it.

Why do you say /etc/cloud/cloud.cfg is not YAML? In any case, that’s not where you want to add cloud metadata.

Have a look at upstream cloud-init documentation, but specifically for creating users this is the simplest use with Multipass:

$ mp launch --cloud-init - <<EOF
users:
- default
- name: ${USER}
  ssh_authorized_keys: 
  - $( cat ~/.ssh/id_rsa.pub )
EOF

Thanks for the speed reply.

So with a bit of digging in the source it appears the defaults for multipass are hardcoded.
I had mistakenly found /etc./cloud/cloud.cfg and assumed it was used as the defaults. I said it did not look YAML as it differs significantly from the examples shown on the cloud-init page (including NOT having the “#cloud-config” tag at the top of the file etc.

In your example what does the “- default” actually do?

I am also interested in using static IP’s if possible rather than relying on DHCP but again can not see clearly from the documents how that can be achieved…
I have tried adding a "network: section with an ethernet: defined but it appears to be ignored.

Thanks

It adds the default ubuntu user, which is necessary for Multipass to be able to access the instance.

The default, DHCP-based networking is also required for now for Multipass to function (we rely on finding the instance’s address out from the DHCP server).

We’re close to releasing a version of Multipass with bridging support, which means you can add a secondary interface and manage it how you like. You can find more information on the GitHub issue.