Skip to main content

Podman Desktop 1.22 Release

· 16 min read
Denis Golovin
Principal Software Engineer

Podman Desktop 1.22 Release! 🎉

podman-desktop-fall-1.22

Podman Desktop 1.22 is now available. Click here to download it!

This release introduces exciting new features, improvements and bug fixes:

  • Explore Features Section on the Dashboard: Accelerates your onboarding experience #13776
  • Switching Podman Machines Between Rootless and Rootful (macOS and Windows Only): Simplifies Podman machine configuration #12781
  • Apply Kubernetes YAML Files with Ease: Allows you to apply YAML without creating a file in the local filesystem #13751
  • Transparent Proxy Support: Configures your CA certificates for all HTTP/HTTPS requests to avoid self signed certificate errors #13789
  • Include ARM64 Podman Installer for Windows: Provides a Podman installer for Windows running on the ARM64 platform #13815

Release details

Explore Features Section on the Dashboard

The new Explore Features section on the Podman Desktop Dashboard helps you quickly discover and use key features, accelerating your onboarding experience. From this intuitive section, you can easily:

  • Create containers
  • Manage Kubernetes resources
  • Browse the Extensions Catalog
  • Configure Docker compatibility
Explore Features Section on the DashboardExplore Features Section on the Dashboard

Switching Podman Machines Between Rootless and Rootful (macOS and Windows Only)

Podman allows containers to run in rootful (privileged) or rootless (non-privileged) modes, balancing security, flexibility, and system access. Now you can toggle an existing Podman machine between these modes using a simple “Run with root privileges” switch in the UI, eliminating the need to recreate the machine.

Switching Podman Machines Between Rootless and RootfulSwitching Podman Machines Between Rootless and Rootful

Apply Kubernetes YAML Files with Ease

The new 'Create File from Scratch' option on the Play Kubernetes YAML page provides an integrated text editor where you can write YAML from scratch or paste existing YAML artifacts. With syntax highlighting and validation, the editor ensures accurate YAML creation and reduces deployment errors. To use it, navigate to the Play Kubernetes YAML page, select 'Create File from Scratch', paste or write your YAML, and click 'Apply' to deploy to your cluster. This enhancement simplifies Kubernetes resource management, enabling developers to deploy pods, services, or other resources efficiently in both local and remote cluster environments.

Apply Kubernetes YAML Files with EaseApply Kubernetes YAML Files with Ease

Transparent Proxy Support

To ensure applications work seamlessly with transparent proxies, developers must configure the client environment appropriately. This typically involves adding the transparent proxy’s CA certificate to the system’s certificate store. Podman Desktop now leverages these CA certificates for HTTPS requests, eliminating the Self signed certificate in certificate chain error when downloading CLI tools or interacting with services outside the local network. This enhancement simplifies workflows in enterprise environments with transparent proxies, ensuring smooth access to external resources and streamlined CLI tool management.

Include arm64 Podman Installer for Windows

Starting with Podman v5.5, native ARM64 binaries are available for Windows, enabling better performance and compatibility on ARM-based devices. Podman Desktop now includes both ARM64 and AMD64 Podman installers, automatically selecting the appropriate version based on your system architecture. This enhancement ensures a seamless setup experience for Windows users on modern ARM64 devices.


Community Thank You

🎉 We’d like to say a big thank you to everyone who helped to make Podman Desktop even better.

We received pull requests from the following new contributors:

We worked closely with the following contributors to resolve the reported issue:


Final Notes

The complete list of issues fixed in this release is available in the 1.22.0 milestone.

Get the latest release from the Downloads section of the website and boost your development journey with Podman Desktop. Additionally, visit the GitHub repository and see how you can help us make Podman Desktop better.

Detailed Release Changelog

feat

  • feat: detect podman-compose installation before trying to install docker-compose by @benoitf #14108
  • feat(ui): make Input component expose type in props by @axel7083 #13953
  • feat: use min-h-screen for downloads page layout by @Tanmayshi #13831
  • feat: allow to declare properties using password formatting by @benoitf #13801
  • feat: add explore features section in the Dashboard page by @SoniaSandler #13776
  • feat(extensions/kind): update projectcontour to v1.32.1 by @Blaimi #13774
  • feat: added new way how to apply YAML by @gastoner #13751
  • feat: added xdg directory specification for linux by @MarsKubeX #13703
  • feat(extension-api): adding path property to CliToolInfo by @axel7083 #13656
  • feat(extension-api): adding inspectPod method by @axel7083 #13632
  • feat: adds tabs to global searchbar by @gastoner #13629
  • feat: added global searchbar by @gastoner #13618
  • feat(renderer): update ContainerList to Svelte 5 by @simonrey1 #13391
  • feat(cli-tools): install latest version without asking to select one by @dgolovin #13030
  • feat: support routing to experimental features page from podman-desktop:// protocol by @SoniaSandler #12809
  • feat: allow changing between rootless and rootful connection for an existing Podman machine by @SoniaSandler #12781

fix

  • fix: e2e test fails to push image to remote cr with new name by @dgolovin #14053
  • fix(extension: podman): powershell should use absolute path for whoami binary by @axel7083 #14028
  • fix(podman): display path for multiple installation of podman by @jiridostal #13985
  • fix: wrong behaviour expanding preferences menu from expander icon by @MarsKubeX #13979
  • fix: wrong string for navigation when image has no name by @MarsKubeX #13973
  • fix(typography): correct incorrect use of question marks by @vancura #13962
  • fix(windows): fixed minimizing the app during startup by @gastoner #13958
  • fix(website): replace expired linkedin image with gravatar by @axel7083 #13945
  • fix: hide kind create cluster button when podman vm is off by @bmahabirbu #13924
  • fix(ui): adding missing mandatory children prop in Link.spec.ts by @axel7083 #13913
  • fix(renderer): svelte-check errors by @axel7083 #13893
  • fix(renderer/FilteredEmptyScreen): migrate to Svelte5 by @simonrey1 #13888
  • fix: https protocol detection in fetch proxy wrapper by @dgolovin #13874
  • fix(extension: podman): remove unused mock by @axel7083 #13840
  • fix(tray): polish the low-res icons by @vancura #13838
  • fix(icons): fix various alignment inconsistencies in loading icons by @jiridostal #13812
  • fix: avoid propagating event of PasswordInput component for show/hide by @benoitf #13799
  • fix: always use certs for fetch/http(s) to work w/ transparent proxy by @dgolovin #13789
  • fix: configuration not detected by handler by @gastoner #13756
  • fix(renderer): update SaveImages to svelte 5 by @simonrey1 #13722
  • fix(renderer): update RunImage to svelte 5 by @simonrey1 #13721
  • fix: update pnpm for stability by @simonrey1 #13717
  • fix(renderer): update PullImage to svelte 5 by @simonrey1 #13714
  • fix(renderer): copy object to avoid error when opening Files tab of an Image by @simonrey1 #13712
  • fix(renderer): import image pass snapshot so selectedProvider can be cloned by @simonrey1 #13708
  • fix(renderer): update LoadImages and RecommendedRegistry to svelte 5 by @simonrey1 #13706
  • fix: call extension loader dispose specifically to fix stack trace on quit by @bmahabirbu #13579

chore

  • chore(tray): add accessible status icons by @vancura #14114
  • chore: simplify mocking by @benoitf #14107
  • chore: add commitlint to its group by @deboer-tim #14077
  • chore: change configuration registry init to async by @cdrage #14041
  • chore: add a next identifier by @benoitf #14029
  • chore(renderer): migrate tooltip.svelte to svelte 5 by @MarsKubeX #14026
  • chore(renderer): rename the Play Kubernetes YAML by Podman Kube Play by @axel7083 #13976
  • chore: fix timezone issue of the test by @benoitf #13967
  • chore: send provider status update event and check lifecycle methods for tray menu by @SoniaSandler #13966
  • chore(searchbar): disabled go to option by @gastoner #13961
  • chore(build): refactor electron-builder config by @odockal #13950
  • chore: updated security restrictions by @gastoner #13943
  • chore(website): add blogpost for 3million downloads by @Firewall #13930
  • chore(package.json): update typecheck:renderer script by @axel7083 #13903
  • chore(ci): Run e2e tests on Testing Farm after merge by @amisskii #13887
  • chore: add 3m downloads banner to the website by @SoniaSandler #13873
  • chore: remove duplicated entry in the lock file by @benoitf #13869
  • chore(podman): bump to 5.6.1 by @axel7083 #13849
  • chore(deps): remove pnpm#overrides for vitest>vite by @axel7083 #13846
  • chore(deps): bump docusaurus to 3.8.1 by @axel7083 #13844
  • chore(typedoc): bump latest by @axel7083 #13837
  • chore: include arm based podman installer by @odockal #13815
  • chore: allow to specify name of the underlying input component by @benoitf #13810
  • chore: fixed comparing default value of object config properties by @gastoner #13760
  • chore(pnpm): specify sha512 by @axel7083 #13719
  • chore: use last log timestamp to clear container logs and store it by @SoniaSandler #13704
  • chore: updated scrolling through carousel component by @gastoner #13676
  • chore: updated carousel component by @gastoner #13511
  • chore(renderer): remove LegacyDialog unused / migrate test to dialog by @simonrey1 #13450
  • chore(renderer/containerList): remove unused code to restore group expansion by @simonrey1 #13449
  • chore(docs): update README.md to include social media badges by @MariaLeonova #13372
  • chore: added experimental feedback logic by @gastoner #11992

test

  • fix(test): make verification of connection provider case insensitive by @odockal #14113
  • chore(test): add validation for jobs being finished by @cbr7 #14089
  • chore(test): add k8s dashboard validation e2e by @cbr7 #14072
  • chore(test): add workaround to e2e tests to apply kube yaml by @odockal #14071
  • chore(test): create builtin extension e2e tests by @cbr7 #14054
  • chore(test): increase test coverage of task manager by @cbr7 #14025
  • chore(test): enable openshiftDockerExtension test by @serbangeorge-m #13986
  • chore(test): fix typecheck on proxy.spec.ts file by @danivilla9 #13978
  • chore(test): add podman installer assets e2e tests by @odockal #13951
  • chore(test): enable podman extension script unit tests by @odockal #13948
  • test(e2e): revert hotfix in pr check by @danivilla9 #13895
  • chore(test): remove unneeded interaction at close by @cbr7 #13883
  • chore(test): increase timeout for waiter by @cbr7 #13871
  • chore(test): skip if rate limit is exceeded by @cbr7 #13866
  • chore(test): adjust timeout for wrong password by @cbr7 #13865
  • chore(test): check version selector link by @cbr7 #13797
  • chore(test): revert previous extension list change by @cbr7 #13764
  • chore(test): increase timeout in extension activation by @danivilla9 #13762
  • chore(test): add handling for different resource name from resource card by @cbr7 #13759
  • chore(test): ensure machine cleanup on failure by @cbr7 #13757
  • chore(test): swap external extensions on extension-installation-smoke for internal ones by @danivilla9 #13752
  • chore(test): change test execution order by @cbr7 #13750
  • chore(test): ensure version switching for cli tool by @cbr7 #13745
  • chore(test): implement check and uncheck all in main page by @cbr7 #13742
  • chore(test): ensure terminal is ready before writing by @cbr7 #13741
  • chore(test): fixes some possible flakyness in volume e2e tests by @cbr7 #13728
  • chore(test): reset machine after test failure by @cbr7 #13716
  • chore(test): centralize values for states by @danivilla9 #13715
  • chore(test): update cli tools tests for new behavior by @cbr7 #13709
  • chore(test): re-structure skip conditions on podman-machine-resources E2E test by @danivilla9 #13698
  • chore(test): setting test expectation to fail due to issue by @cbr7 #13697
  • chore(test): switch to using composite action for workflows by @cbr7 #13290
  • test(e2e): include podman provider check after machine creation by @danivilla9 #12874

refactor

  • refactor(extension: podman): extract checkRosettaMacArm to dedicated file by @axel7083 #14063
  • refactor(extension: podman): split Hyper-V check in two by @axel7083 #14061
  • refactor(renderer): migrate PasswordInput to Svelte5 by @axel7083 #13965
  • refactor: mv terminal-theme(.spec).ts files to renderer by @axel7083 #13848

docs

  • docs: use unambiguous name for Apple silicon in GPU docs by @samdoran #14027
  • docs: added a note for clarification in the adding certificates section by @shipsing #13925
  • docs: add blog post about new apple container extension by @benoitf #13918
  • docs: updated the verification examples by @shipsing #13884
  • docs(CONTRIBUTING.md): replace containers org with podman-desktop by @axel7083 #13847
  • docs: added a blogpost highlighting Podman Desktop availability on RH… by @shipsing #13692
  • docs: add LFX insights badges to readme by @castrojo #13442