Skip to main content

Podman Desktop 1.17 Release

Β· 17 min read
Florent Benoit
Principal Software Engineer

Podman Desktop 1.17 Release! πŸŽ‰

podman-desktop-hero-1.17

Podman Desktop 1.17 is now available! Click here to download it!

This release brings exciting new features and improvements:

  • New running workflow πŸ› οΈ: Start containers from images in just a few steps.
  • Registry mirror configuration πŸ”„: Simplify registry mirroring setup with a dedicated command.
  • Smoother kind cluster experience ☁️: Spin up a Kubernetes cluster effortlessly, even without a pre-installed kind binary.
  • Podman 5.4 πŸš€: Upgrade to the latest Podman engine for enhanced performance and features.
  • Pods, redefined πŸ“¦: Clear separation between Podman pods and Kubernetes pods for better usability.
  • Kubernetes experimental mode ⚑: Change the way on how the resources are collected and monitored.

Release Details πŸ”β€‹

This release brings exciting enhancements, making container management smoother than a seal gliding through the waves. Let's dive in!

Starting a container from scratch​

Ever wanted to start a container effortlessly? Now, just enter the image (local or remote), select it from a dropdown, and with a single click, you'll get the perfect startup prompt. In no time, your container is swimming happily in its new environment!

Starting a container from scratchStarting a container from scratch

Mirroring of Registries – No More Fishy Workarounds​

When creating a Podman machine from Podman Desktop, we now include a playbook that mounts the host’s registries.conf into the VM at /etc/containers/registries.conf.d/. To handle this configuration, simply click on 'More Actions' in the Podman machine menu, and you're all set. No more struggling like a seal stuck on an ice floe.

Mirroring of RegistriesMirroring of Registries Mirroring of Registries step 2Mirroring of Registries step 2

Podman 5.4​

A new version of Podman is here. Check out the full details: Podman 5.4.0 Release Notes.

Breaking change

As mentioned in the podman 5.4 release notes, support for Mac/Intel is now on a best-effort basis.

Note for 2020 Mac/Intel Users

There is an open issue where Podman Machine is not booting on certain setups. It is currently under investigation, and you can track the progress here: Issue #25121.

In the meantime, here is a quick workaround if 5.4 is not booting:

podman machine init --image=docker://quay.io/podman/machine-os:5.2

Smoother kind cluster experience​

Even if you do not have the kind CLI installed, Podman Desktop will guide you through the process of installing it when creating a Kind cluster, ensuring you can set up your cluster without leaving the workflow. No more diving back to shore for missing tools!

Smoother kind cluster experienceSmoother kind cluster experience

Kubernetes: Pods and CronJobs​

Since the last version, we have introduced a dedicated Kubernetes navigation bar. Now, we are making things even clearer:

  • Podman Pods and Kubernetes Pods are now separate.
  • A new Pods entry has been added under the Kubernetes section, ensuring you always know which pods you're working with.
  • The Pods view only displays Podman pods.

This means you can now navigate your Kubernetes resources while staying in the Kubernetes section. No more getting lost at sea!

CronJobs are now available, making them easier to manage than ever before.

Kubernetes: Pods and CronJobsKubernetes: Pods and CronJobs

Kubernetes: new experimental mode​

Using this mode, the update of Kubernetes resources is done using health and permission checks. One bonus now is the ability to easily troubleshoot resource status.

Kubernetes: Pods and CronJobsKubernetes: Pods and CronJobs

We would love your feedback! Share your thoughts at GitHub Discussions

Community thank you​

πŸŽ‰ A big thank you to all the amazing contributors who helped improve Podman Desktop! Your pull requests made a splash in this release:

  • @cyqsimon made their first contribution in #11380 docs(website): add SELinux info to GPU guide
  • @gaetschwartz made their first contribution in #10863 docs: Add missing -o flag in Importing saved containers to Podman
  • @gnmerritt made their first contribution in #10821 docs: fix path in macos docker context create example command
  • @renner0e made their first contribution in #11022 feat: upgrade flatpak runtime to 24.08
  • @rujutashinde made their first contribution in #11164 docs: updated MAINTAINERS.md file with new user

Final notes​

Fixed issues​

The complete list of issues fixed in this release is available here.

Where to download​

πŸš€ Grab the latest release from the Downloads section and power up your development with Podman Desktop! Want to make it even better? Dive into our GitHub repository and join the action! 🦭πŸ”₯

Detailed release changelog​

Features​

  • feat: add a command to configure registries of Podman #11390
  • feat: display connection lost on resources pages #11381
  • feat: display route details in experimental mode #11377
  • feat: expandable component #11364
  • feat: restart monitoring on offline context #11360
  • feat: display if cluster is available in experimental mode in resources pages #11358
  • feat: display Ingress details in experimental mode #11341
  • feat: display CronJob details in experimental mode #11338
  • feat: display PVC details in experimental mode #11337
  • feat: display secret details in experimental mode #11336
  • feat: display deployment details in experimental mode #11306
  • feat: display node details in experimental mode #11305
  • feat: display offline status in Kubernetes Contexts page #11285
  • feat: monitor current context only by default #11268
  • feat: display troubleshooting info for experimental Kubernetes monitoring #11217
  • feat: display service details on Kubernetes experimental mode #11196
  • feat: kubernetes resource navigation #11166
  • feat: add apiVersion and kind to kubernetes objects #11162
  • feat: navigate to kubernetes pods and cron jobs #11122
  • feat(PodsLists): make the age column sortable #11115
  • feat: use KubernetesObjectsList for Kube pods #11103
  • feat: add and register Cronjob resource for Kubernetes experimental mode #11100
  • feat: display ingresses/routes in Kubernetes experimental mode #11065
  • feat: display Nodes list in Kubernetes experimental mode #11054
  • feat: upgrade flatpak runtime to 24.08 #11022
  • feat: display PVCs in Kubernetes experimental mode #11021
  • feat: display services in Kubernetes experimental mode #11020
  • feat: add cronjobs to kubernetes #10982
  • feat: ask to install kind when creating cluster #10980
  • feat: create a KubernetesObjectsList #10928
  • feat: kube pod details #10927
  • feat: expose navigateToCliTools to 3rd party extensions #10924
  • feat: job and cronjob icons #10910
  • feat: display deployments from experimental informers #10880
  • feat: represent non accessible resources in Kubernetes Contexts page #10856
  • feat: kube pods page #10852

Bugfixes​

  • fix: revert lost change to have proper higlight/selected colors #11384
  • fix: ensure that chaining calls to showQuickPick is working #11383
  • fix: pass only added env vars to process.exec in Kind and Lima #11369
  • fix: use correct css variable name #11357
  • fix: display of route details #11349
  • fix: pods should have kubernetes empty screen #11318
  • fix: stop informers and delete informers and cache #11255
  • fix: dispose and delete informers when a context is removed from kubeconfig file #11252
  • fix: add priority based sorting for onboarding #11248
  • fix: update missed pd version in mac update e2e #11238
  • fix: copying docker-compose to fails on windows #11235
  • fix: ports accepted type during creation #11227
  • fix: svelte reactivity on Map #11226
  • fix(podman): running deactivate to ensure test isolation #11206
  • fix: handle compose releases with many assets #11191
  • fix: duplicate keys in pnpm-lock.yaml #11178
  • fix(run-image-page): checkbox interactive name used #11159
  • fix: remove check of updateContainerConnection being called #11158
  • fix: handle ApiException error during waitForPod/JobDeletion #11156
  • fix: refresh machine settings after podman installation #11145
  • fix: libkrun is only supported on silicon/M* macs #11136
  • fix(ListItemButtonIcon): only use inline-flex when hidden is not set #11110
  • fix(feedback): showing modal dialog when closing feedback form #11089
  • fix: do not start informers for non permitted resources #11063
  • fix: support multiple permissions requests #11058
  • fix: show error message dialog in case compose download error #10987
  • fix: autostarted connection fires onDidUpdateContainerConnection #10970
  • fix(preload-index): remove no-explicit-any #10945
  • fix(webview-registry-spec): remove no-explicit-any #10943
  • fix(webview-panel-impl-spec): remove no-explicit-any #10939
  • fix: add kubeconfig flag to create a Kind cluster #10905
  • fix: changed color of text on kubernetes empty page to have better visibility #10896
  • fix: do not check connection after listen #10877
  • fix(spawn-promise-spec): remove no-explicit-any #10867
  • fix(exec-spec): remove no-explicit-any #10866
  • fix(uri-spec): remove no-explicit-any #10865
  • fix(telemetry): remove no-explicit-any #10864

Chore​

  • chore: allow to contribute 3rd party actions for container provider connection #11404
  • chore(docs): Add missing step E2E extension tests #11400
  • chore: remove kube badge from pods page #11392
  • chore: remove kubernetes pod watcher #11391
  • chore(test): fix kubernetes e2e tests #11387
  • chore: bump to storybook v8.6.0 #11382
  • chore(test): wait for update dialog to switch instead of closing in e2e #11362
  • chore: update the description of empty forwards configuration #11356
  • chore: use kube icon on dashboard #11353
  • chore(test): Update Kubernetes E2E tests to use Kubernetes pods page #11350
  • chore(test): handle search result delay #11347
  • chore: wait for update dialogs to disappear #11345
  • chore: port forwarding should open kubernetes pod page #11327
  • chore: remove pod environment column #11324
  • chore: remove kubernetesListPods #11323
  • chore(test): create e2e test for cancelable task #11322
  • chore: open Typeahead list on focus of input box #11319
  • chore: kubernetes icon component #11317
  • chore: fix optional argument #11312
  • chore: updated wsl check version message #11310
  • chore: mount the registries.conf inside the podman VM #11304
  • chore: reuse ingress route utils #11289
  • chore: add a method to check if playbook is a command supported on podman CLI #11280
  • chore(test): kubernetes deployment resource e2e test #11256
  • chore: add colors to ProviderWidget tooltip statuses #11234
  • chore: use navigation for kube resource card links #11233
  • chore: fix navigateToRoute args #11232
  • chore: common kubernetes name column #11230
  • chore(test): e2e test for untagged image pruning #11229
  • chore: remove kubernetes from internal navigation api #11222
  • chore(test): extract kubernetes operations to a dedicated utility file #11221
  • chore: common kubernetes ui objects #11220
  • chore: added colors for ai lab tags #11213
  • chore(tests): Port forwarding smoke tests #11209
  • chore(tests): added kube resources table mapping #11208
  • chore: update delete Kind, kubectl, and Compose executables to use process.exec #11199
  • chore: add class prop to tip slot in tooltip #11195
  • chore: update ProviderWidget tooltips #11194
  • chore: update mermaid js component #11188
  • chore: fix transitive dependency on esbuild #11185
  • chore: fix cve on esbuild #11184
  • chore: ensure the update of machine / listing podman machines is sequential #11179
  • chore: add telemetry to kubernetes dashboard cards #11167
  • chore: fix CVE issue in katex #11161
  • chore: fix CVE issue #11160
  • chore: ignore expired certificate for CI test when installing podman 5 #11150
  • chore: update unidici from 6.21.0 to 6.21.1 #11148
  • chore: Update Chocolatey package to 1.16.2 #11147
  • chore: install latest corepack #11146
  • chore: remove commented code #11144
  • chore(test): handle different heading from navbar name #11137
  • chore: increase size of checkboxes #11135
  • chore(test): add e2e test for terminal access validation #11132
  • chore: remove @typescript-eslint/no-explicit-any usage #11131
  • chore: remove kubernetes pods from pods page #11125
  • chore: add a rule to clean prettier cache #11101
  • chore: update podman to v5.4.0 #11092
  • chore: remove no-explicit-any from registries extension #11090
  • chore: bump storybook to tailwindcss v4 #11059
  • chore: use nullish coalescing operator #11056
  • chore: group dependabot updates #11055
  • chore: use nullish coalescing operator #11041
  • chore: remove @typescript-eslint/no-explicit-any usage in markdown #11038
  • chore: remove use of any in extension.ts #11017
  • chore(test): skip test on mac until fix is found #11015
  • chore: remove use of any in registry-setup.ts #11012
  • chore: remove unnecessary no-explicit-any #11011
  • chore: remove use of any in podman-info-helper.spec.ts #11010
  • chore: remove use of any in podman-configuration.ts #11008
  • chore: add summary page cronjobs #11001
  • chore: remove @typescript-eslint/no-explicit-any usage #10999
  • chore: add a compare function prop for resultItems sorting in Typeahead #10996
  • chore: remove use of any #10995
  • chore: remove unnecessary no-explicit-any #10994
  • chore: remove @typescript-eslint/no-explicit-any usage #10991
  • chore: remove @typescript-eslint/no-explicit-any usage #10989
  • chore: remove @typescript-eslint/no-explicit-any usage in renderer #10986
  • chore: remove @typescript-eslint/no-explicit-any usage from image #10985
  • chore: remove @typescript-eslint/no-explicit-any usage from image #10983
  • chore: remove @typescript-eslint/no-explicit-any usage from featured, feedback, and kube #10981
  • chore: remove @typescript-eslint/no-explicit-any usage #10977
  • chore: remove @typescript-eslint/no-explicit-any usage #10976
  • chore: Update Chocolatey package to 1.16.1 #10974
  • chore(test): make locator exact #10971
  • chore: remove @typescript-eslint/no-explicit-any usage #10969
  • chore(test): validate that dialog disappears after dismissal #10967
  • chore: remove @typescript-eslint/no-explicit-any usage #10965
  • chore: update release notes banner to not show for first time users of PD #10959
  • chore: add cronjobs store functions #10956
  • chore: cronjob use native functions rather than custom API call #10955
  • chore: remove @typescript-eslint/no-explicit-any usage #10948
  • chore: remove @typescript-eslint/no-explicit-any usage #10947
  • chore: remove @typescript-eslint/no-explicit-any usage #10946
  • chore: remove @typescript-eslint/no-explicit-any usage #10944
  • chore: replace any by unknown type in onboarding API #10941
  • chore: remove gradient styling from tailwindcss #10909
  • chore: svelte 5 kubernetes columns #10906
  • chore: kubernetes navigation store mocking #10904
  • chore: set tailwind framework as being the 'winner of the CSS' #10901
  • chore: postinstall should only install chromium #10888
  • chore: switch to Tailwind CSS v4.0.1 #10886
  • chore: fix scripts command #10885
  • chore: use podman desktop colors rather than theme colors #10883
  • chore(test,ci): add option to install all extensions before update #10882
  • chore: declare isomorphic-ws as external for vite #10869
  • chore(test): extend timeouts in Kubernetes tests #10860
  • chore: Update Chocolatey package to 1.16.0 #10859

Documentation​

  • docs(website): updated the custom extension installation procedure #11385
  • docs(website): add SELinux info to GPU guide #11380
  • docs(website): updated documenation for hyper-v support on windows #11309
  • docs(website): added a tutorial to create an extension #11253
  • docs: updated MAINTAINERS.md file with new user #11164
  • docs(website): edited a troubleshooting section #11053
  • docs(website): added the customizing docker compatibility procedure #11033
  • docs(website): added a troubleshooting section #10942
  • docs(website): added experimental settings details to the discover PD… #10938
  • docs(website): removes periods from headers #10915
  • docs(website): highlighted the search functionality in the container … #10895
  • docs(website): edits the creating a kind cluster procedure #10874
  • docs: Add missing -o flag in Importing saved containers to Podman #10863

Dependencies​

  • chore(deps-dev): bump electron from 34.2.0 to 34.3.0 #11415
  • chore(deps-dev): bump vite from 6.1.0 to 6.2.0 #11376
  • chore(deps-dev): bump svelte-eslint-parser from 0.43.0 to 1.0.0 #11374
  • chore(deps-dev): bump the tailwindcss group across 1 directory with 3 updates #11372
  • chore(deps-dev): bump typedoc from 0.27.8 to 0.27.9 #11332
  • chore(deps-dev): bump svelte from 5.20.2 to 5.20.4 #11331
  • chore(deps-dev): bump msw from 2.7.1 to 2.7.3 #11330
  • chore(deps-dev): bump typedoc from 0.27.7 to 0.27.8 #11302
  • chore(deps-dev): bump prettier from 3.5.1 to 3.5.2 #11301
  • chore(deps): bump the eslint group with 4 updates #11299
  • chore(deps-dev): bump eslint-import-resolver-typescript from 3.8.2 to 3.8.3 #11292
  • chore(deps-dev): bump msw from 2.7.0 to 2.7.1 #11291
  • chore(deps-dev): bump globals from 15.15.0 to 16.0.0 #11290
  • chore(deps-dev): bump eslint-import-resolver-typescript from 3.8.1 to 3.8.2 #11246
  • chore(deps-dev): bump postcss from 8.5.2 to 8.5.3 #11244
  • chore(deps-dev): bump tsx from 4.19.2 to 4.19.3 #11243
  • chore(deps-dev): bump svelte from 5.20.1 to 5.20.2 #11242
  • chore(deps-dev): bump the vitest group with 2 updates #11241
  • chore(deps-dev): bump the tailwindcss group with 3 updates #11240
  • chore(deps-dev): bump the storybook group with 7 updates #11239
  • chore(deps-dev): bump eslint-import-resolver-typescript from 3.8.0 to 3.8.1 #11202
  • chore(deps-dev): bump eslint-plugin-unicorn from 56.0.1 to 57.0.0 #11201
  • chore(deps-dev): bump the typescript-eslint group with 3 updates #11200
  • chore(deps-dev): bump eslint-import-resolver-typescript from 3.7.0 to 3.8.0 #11175
  • chore(deps): bump @octokit/rest from 21.1.0 to 21.1.1 #11174
  • chore(deps-dev): bump svelte from 5.20.0 to 5.20.1 #11173
  • chore(deps): bump @octokit/graphql from 8.2.0 to 8.2.1 #11172
  • chore(deps-dev): bump octokit from 4.1.1 to 4.1.2 #11171
  • chore(deps-dev): bump the storybook group with 7 updates #11170
  • chore(deps-dev): bump eslint-plugin-sonarjs from 3.0.1 to 3.0.2 #11143
  • chore(deps-dev): bump electron from 34.1.1 to 34.2.0 #11142
  • chore(deps-dev): bump @types/node from 20.17.17 to 20.17.19 #11141
  • chore(deps-dev): bump prettier from 3.5.0 to 3.5.1 #11140
  • chore(deps-dev): bump globals from 15.14.0 to 15.15.0 #11129
  • chore(deps-dev): bump svelte from 5.19.10 to 5.20.0 #11128
  • chore(deps-dev): bump @vitest/eslint-plugin from 1.1.28 to 1.1.31 in the vitest group #11127
  • chore(deps-dev): bump the storybook group with 7 updates #11126
  • chore(deps-dev): bump @testing-library/svelte from 5.2.6 to 5.2.7 #11097
  • chore(deps-dev): bump svelte from 5.19.9 to 5.19.10 #11096
  • chore(deps): bump eslint from 9.20.0 to 9.20.1 in the eslint group #11095
  • chore(deps-dev): bump @vitest/coverage-v8 from 2.1.6 to 3.0.5 in the vitest group #11086
  • chore(deps-dev): bump tailwindcss from 4.0.3 to 4.0.6 in the tailwindcss group #11085
  • chore(deps-dev): bump the storybook group with 7 updates #11084
  • chore(deps-dev): bump postcss from 8.5.1 to 8.5.2 #11076
  • chore(deps-dev): bump @vitest/eslint-plugin from 1.1.27 to 1.1.28 #11074
  • chore(deps-dev): bump @tailwindcss/vite from 4.0.4 to 4.0.6 #11073
  • chore(deps-dev): bump @tailwindcss/postcss from 4.0.4 to 4.0.6 #11072
  • chore(deps-dev): bump the typescript-eslint group with 3 updates #11071
  • chore(deps-dev): bump typedoc from 0.27.6 to 0.27.7 #11051
  • chore(deps-dev): bump @vitest/eslint-plugin from 1.1.25 to 1.1.27 #11048
  • chore(deps): bump eslint from 9.19.0 to 9.20.0 #11046
  • chore(deps-dev): bump prettier from 3.4.2 to 3.5.0 #11045
  • chore(deps-dev): bump typedoc-plugin-markdown from 4.4.1 to 4.4.2 #11044
  • chore(deps-dev): bump @eslint/js from 9.19.0 to 9.20.0 #11043
  • chore(deps-dev): bump svelte from 5.19.8 to 5.19.9 #11031
  • chore(deps): bump electron-context-menu from 4.0.4 to 4.0.5 #11030
  • chore(deps-dev): bump @tailwindcss/vite from 4.0.3 to 4.0.4 #11028
  • chore(deps-dev): bump octokit from 4.1.0 to 4.1.1 #11027
  • chore(deps-dev): bump electron from 34.1.0 to 34.1.1 #11026
  • chore(deps-dev): bump @tailwindcss/postcss from 4.0.3 to 4.0.4 #11024
  • chore(deps-dev): bump vitest from 2.1.9 to 3.0.5 #11023
  • chore(deps-dev): bump vitest from 2.1.6 to 2.1.9 #11007
  • chore(deps-dev): bump svelte from 5.19.7 to 5.19.8 #11005
  • chore(deps-dev): bump vite from 6.0.11 to 6.1.0 #11004
  • chore(deps-dev): bump electron from 34.0.2 to 34.1.0 #11003
  • chore(deps-dev): bump svelte from 5.19.6 to 5.19.7 #10963
  • chore(deps-dev): bump @sveltejs/package from 2.3.9 to 2.3.10 #10962
  • chore(deps-dev): bump @types/node from 20.17.16 to 20.17.17 #10961
  • chore(deps): bump semver from 7.7.0 to 7.7.1 #10960
  • chore(deps-dev): bump the typescript-eslint group across 1 directory with 3 updates #10958
  • chore(deps): bump @octokit/graphql from 8.1.2 to 8.2.0 #10936
  • chore(deps-dev): bump @commitlint/cli from 19.6.1 to 19.7.1 #10935
  • chore(deps): bump docusaurus-plugin-typedoc from 1.2.2 to 1.2.3 #10934
  • chore(deps-dev): bump @playwright/test from 1.50.0 to 1.50.1 #10933
  • chore(deps-dev): bump @commitlint/config-conventional from 19.6.0 to 19.7.1 #10932
  • chore(deps-dev): bump @eslint/compat from 1.2.5 to 1.2.6 #10931
  • chore(deps-dev): bump the storybook group with 7 updates #10930
  • chore(deps-dev): bump svelte from 5.19.4 to 5.19.6 #10911
  • chore(deps): bump semver from 7.6.3 to 7.7.0 #10890
  • chore(deps-dev): bump electron from 34.0.1 to 34.0.2 #10889
  • chore(deps-dev): bump svelte from 5.19.3 to 5.19.4 #10873
  • chore(deps-dev): bump the storybook group with 7 updates #10854