Fix usability issues and improve interface for podman machine creation
UX Description
High Impact
- Add numerical input fields (or hybrid) for CPU/Memory/Disk.
- Add helper text/tooltips to advanced settings.
- Add system capacity indicators for CPU/RAM.
- Group advanced/optional fields
- Group related settings with visual containers.
Medium Impact
- Provide presets for configuration.
- Improve labeling and microcopy for ambiguous terms.
- Implement consistent form control styling across all input types.
- Add clear labels directly associated with form fields.
- Provide inline validation with helpful error messages.
Low Impact
- Improve visual distinction between required and optional fields.
- Provide warnings for sensitive actions (root access / GPU).
Request type
UX analysis/suggestions for improvement
Primary Contact
No response
Deadline for request
No response
I think this is related to all of our forms, like kind, and other extensions
You might want to move to standard units for memory and disk size?
Usage:
podman-remote machine init [options] [NAME]
Options:
--cpus uint Number of CPUs (default 4)
--disk-size uint Disk size in GiB (default 100)
-m, --memory uint Memory in MiB (default 2048)
- cpus: 4
- diskSize: 107374182400 bytes
- memory: 2147483648 bytes
If you are allocating 4 GB, then it will become an awkward 3.725 GiB...
"podman.factory.machine.cpus": {
"type": "number",
"format": "cpu",
"default": "HOST_HALF_CPU_CORES",
"minimum": 1,
"maximum": "HOST_TOTAL_CPU",
"scope": "ContainerProviderConnectionFactory",
"description": "CPU(s)",
"when": "podman.podmanMachineCpuSupported && !podman.isCreateWSLOptionSelected"
},
"podman.factory.machine.memory": {
"type": "number",
"format": "memory",
"minimum": 1000000000,
"default": 4000000000,
"maximum": "HOST_TOTAL_MEMORY",
"scope": "ContainerProviderConnectionFactory",
"step": 500000000,
"description": "Memory",
"when": "podman.podmanMachineMemorySupported && !podman.isCreateWSLOptionSelected"
},
"podman.factory.machine.diskSize": {
"type": "number",
"format": "diskSize",
"default": 100000000000,
"minimum": 10000000000,
"maximum": "HOST_TOTAL_DISKSIZE",
"step": 500000000,
"scope": "ContainerProviderConnectionFactory",
"description": "Disk size",
"when": "podman.podmanMachineDiskSupported && !podman.isCreateWSLOptionSelected"
},
EDIT: We talked about this before, but only to make GB be GB and GiB be GiB:
- https://github.com/podman-desktop/podman-desktop/issues/3062
Related: https://github.com/podman-desktop/podman-desktop/issues/13534
I never see this dialog on Linux (or when using Lima provider), so the usability issues are different.
i.e. the same parameters are given on the CLI, rather than being selected from sliders in the GUI
I never see this dialog on Linux (or when using Lima provider), so the usability issues are different.
That's great input. Could you please specify in more details, what issues you experience?
Do you recall what the flow was when you were first doing the onboarding? Did you already have the machine running when installing Podman Desktop?
First? That was a long time ago, there was no podman machine so I first had to create it... Back then there was no packaging for Ubuntu. Now there is, but only for the older versions
https://packages.ubuntu.com/podman
If I want to run a newer version, I have two alternatives:
- I can build it myself, from the source code
- I can start a VM, from the command line CLI
There are no packages, and no option to use the GUI
Once installed/started, it shows up in Podman Desktop
-
https://github.com/podman-desktop/podman-desktop/issues/6225
-
https://github.com/podman-desktop/podman-desktop/discussions/5762
There are three steps in the Podman onboarding, before being redirected to the Terminal:
After those screens, it is command-line parameters all the way. And then "onboarding" exits.
$ podman-remote-static machine init podman-machine-default --cpus 4 --memory 4096 --disk-size 100 --rootful --now
Looking up Podman Machine image at quay.io/podman/machine-os:5.7 to create VM
But back in the GUI, the machine has appeared. That is, the one that we created in the CLI.
(and there you can see the mismatch in units, that I was referring to in my comment above)
@afbjorklund that is very helpful, thank you!
As you probably know, it is being hidden on purpose...
// We allow creating machines for both macOS and Windows
// but not Linux. The reasoning being is that podman for Linux is
// NOT packaged with qemu + kvm by default. So, we don't want to
// create machines on Linux via Podman Desktop, however we will still support
// the lifecycle management of one.
if (extensionApi.env.isMac || extensionApi.env.isWindows) {
In order to not have to support qemu, or podman dependencies.
- /usr/local/libexec/podman/gvproxy
- /usr/local/libexec/podman/virtiofsd
I did have to install them manually, same as podman-remote-static.