From 76a50bdafe902731e1aaef8aee5ef8ce207f5ae3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 08:45:20 +0000 Subject: [PATCH] deploy: b97992031ed315b1db32c158d75386ad24a4ebd3 --- 404.html | 4 ++-- assets/js/894e67a6.176b91ec.js | 1 - assets/js/894e67a6.71b063cd.js | 1 + assets/js/b2f554cd.47f0780c.js | 1 - assets/js/b2f554cd.d126abe1.js | 1 + assets/js/ff38b1ce.2aa92837.js | 1 + assets/js/ff38b1ce.315bf772.js | 1 - ...in.a7a03ce0.js => runtime~main.42552359.js} | 2 +- blog.html | 6 +++--- blog/5-things-to-know-for-a-docker-user.html | 4 ++-- blog/archive.html | 4 ++-- blog/develop-using-devcontainer.html | 4 ++-- blog/podman-desktop-release-0.10.html | 4 ++-- blog/podman-desktop-release-0.11.html | 4 ++-- blog/podman-desktop-release-0.12.html | 4 ++-- blog/podman-desktop-release-0.13.html | 4 ++-- blog/podman-desktop-release-0.14.html | 4 ++-- blog/podman-desktop-release-0.15.html | 4 ++-- blog/podman-desktop-release-1.0.html | 4 ++-- blog/podman-desktop-release-1.1.html | 4 ++-- blog/podman-desktop-release-1.2.html | 4 ++-- blog/podman-desktop-release-1.3.html | 4 ++-- blog/podman-desktop-release-1.4.html | 8 ++++---- ...kubernetes-cluster-with-podman-desktop.html | 4 ++-- blog/tags.html | 4 ++-- blog/tags/codespaces.html | 4 ++-- blog/tags/compose.html | 4 ++-- blog/tags/devcontainer.html | 4 ++-- blog/tags/docker.html | 4 ++-- blog/tags/kind.html | 4 ++-- blog/tags/kubernetes.html | 6 +++--- blog/tags/migrating.html | 4 ++-- blog/tags/openshift.html | 6 +++--- blog/tags/podman-desktop.html | 6 +++--- blog/tags/release.html | 6 +++--- blog/tags/story.html | 4 ++-- core-values.html | 4 ++-- docs/compose.html | 4 ++-- docs/compose/running-compose.html | 4 ++-- docs/compose/setting-up-compose.html | 4 ++-- docs/extensions.html | 4 ++-- docs/extensions/install.html | 4 ++-- docs/extensions/publish.html | 4 ++-- docs/extensions/write.html | 4 ++-- docs/extensions/write/when-clause-context.html | 4 ++-- docs/installation.html | 4 ++-- docs/installation/linux-install.html | 4 ++-- ...man-desktop-from-a-compressed-tar-file.html | 4 ++-- ...g-podman-desktop-from-a-flatpak-bundle.html | 4 ++-- docs/installation/macos-install.html | 4 ++-- docs/installation/windows-install.html | 4 ++-- ...and-podman-in-a-restricted-environment.html | 4 ++-- ...op-silently-with-the-windows-installer.html | 4 ++-- ...talling-podman-desktop-with-chocolatey.html | 4 ++-- .../installing-podman-desktop-with-scoop.html | 4 ++-- .../installing-podman-desktop-with-winget.html | 4 ++-- docs/intro.html | 4 ++-- docs/kubernetes.html | 4 ++-- ...iguring-access-to-a-kubernetes-cluster.html | 4 ++-- .../deploying-a-container-to-kubernetes.html | 4 ++-- .../deploying-a-pod-to-kubernetes.html | 4 ++-- docs/kubernetes/kind.html | 4 ++-- ...ilding-an-image-and-testing-it-in-kind.html | 4 ++-- .../kind/pushing-an-image-to-kind.html | 4 ++-- .../working-with-your-local-kind-cluster.html | 4 ++-- docs/kubernetes/lima.html | 4 ++-- docs/kubernetes/minikube.html | 4 ++-- ...ng-an-image-and-testing-it-in-minikube.html | 4 ++-- ...iguring-podman-for-minikube-on-windows.html | 4 ++-- .../minikube/creating-a-minikube-cluster.html | 4 ++-- .../deleting-your-minikube-cluster.html | 4 ++-- .../minikube/installing-minikube.html | 4 ++-- .../minikube/pushing-an-image-to-minikube.html | 4 ++-- .../restarting-your-minikube-cluster.html | 4 ++-- ...rking-with-your-local-minikube-cluster.html | 4 ++-- docs/kubernetes/openshift.html | 4 ++-- ...figuring-access-to-a-developer-sandbox.html | 4 ++-- .../creating-an-openshift-local-cluster.html | 4 ++-- ...nt-kubernete-context-in-the-status-bar.html | 4 ++-- ...nd-selecting-current-kubernete-context.html | 4 ++-- docs/migrating-from-docker.html | 4 ++-- .../emulating-docker-cli-with-podman.html | 4 ++-- .../importing-saved-containers.html | 4 ++-- .../using-podman-mac-helper.html | 4 ++-- ...g-the-docker_host-environment-variable.html | 4 ++-- .../verifying-your-tools-are-using-podman.html | 4 ++-- docs/onboarding.html | 4 ++-- docs/onboarding/containers.html | 4 ++-- ...ng-a-lima-instance-with-podman-desktop.html | 4 ++-- ...g-a-podman-machine-with-podman-desktop.html | 4 ++-- ...podman-with-openshift-local-on-windows.html | 4 ++-- ...-podman-with-podman-desktop-on-windows.html | 4 ++-- docs/onboarding/kubernetes.html | 4 ++-- docs/onboarding/kubernetes/kind.html | 4 ++-- ...configuring-podman-for-kind-on-windows.html | 4 ++-- .../kind/creating-a-kind-cluster.html | 4 ++-- .../kind/deleting-your-kind-cluster.html | 4 ++-- .../kubernetes/kind/installing-kind.html | 4 ++-- .../kind/restarting-your-kind-cluster.html | 4 ++-- docs/proxy.html | 4 ++-- .../using-a-proxy-in-your-containers.html | 4 ++-- docs/proxy/using-a-proxy-on-linux.html | 4 ++-- .../using-a-proxy-requiring-a-custom-ca.html | 4 ++-- docs/proxy/using-a-proxy.html | 4 ++-- docs/proxy/using-a-vpn-on-windows.html | 4 ++-- docs/tags.html | 4 ++-- docs/tags/chocolatey.html | 4 ++-- docs/tags/compose.html | 4 ++-- docs/tags/containers.html | 4 ++-- docs/tags/extension.html | 4 ++-- docs/tags/flathub.html | 4 ++-- docs/tags/flatpak.html | 4 ++-- docs/tags/images.html | 4 ++-- docs/tags/installing.html | 4 ++-- docs/tags/kind.html | 4 ++-- docs/tags/lima.html | 4 ++-- docs/tags/linux.html | 4 ++-- docs/tags/mac-0-s.html | 4 ++-- docs/tags/mac-os.html | 4 ++-- docs/tags/macos.html | 4 ++-- docs/tags/migrating-from-docker.html | 4 ++-- docs/tags/migrating-to-kubernetes.html | 4 ++-- docs/tags/minikube.html | 4 ++-- docs/tags/onboarding.html | 4 ++-- docs/tags/openshift-local.html | 4 ++-- docs/tags/openshift.html | 4 ++-- docs/tags/podman-desktop.html | 4 ++-- docs/tags/podman.html | 4 ++-- docs/tags/pods.html | 4 ++-- docs/tags/proxy.html | 4 ++-- docs/tags/publishing.html | 4 ++-- docs/tags/registries.html | 4 ++-- docs/tags/restricted-environment.html | 4 ++-- docs/tags/scoop.html | 4 ++-- docs/tags/vpn.html | 4 ++-- docs/tags/when-clause.html | 4 ++-- docs/tags/windows.html | 4 ++-- docs/tags/winget.html | 4 ++-- docs/tags/writing.html | 4 ++-- docs/troubleshooting.html | 4 ++-- .../troubleshooting-openshift-local.html | 4 ++-- .../troubleshooting-podman-on-linux.html | 4 ++-- .../troubleshooting-podman-on-macos.html | 4 ++-- .../troubleshooting-podman-on-windows.html | 4 ++-- .../troubleshooting-podman.html | 4 ++-- docs/working-with-containers.html | 4 ++-- .../creating-a-pod.html | 4 ++-- docs/working-with-containers/images.html | 4 ++-- .../images/building-an-image.html | 4 ++-- .../images/pulling-an-image.html | 4 ++-- .../images/pushing-an-image-to-a-registry.html | 4 ++-- docs/working-with-containers/registries.html | 4 ++-- ...enticating-to-a-preconfigured-registry.html | 4 ++-- .../registries/insecure-registry.html | 4 ++-- .../starting-a-container.html | 4 ++-- ...hing-podman-machine-default-connection.html | 4 ++-- downloads.html | 4 ++-- downloads/linux.html | 4 ++-- downloads/macos.html | 4 ++-- downloads/windows.html | 4 ++-- extend.html | 4 ++-- features.html | 4 ++-- .../podman-desktop-release-1.4/juggling.png | Bin 0 -> 597226 bytes index.html | 4 ++-- search.html | 4 ++-- 165 files changed, 325 insertions(+), 325 deletions(-) delete mode 100644 assets/js/894e67a6.176b91ec.js create mode 100644 assets/js/894e67a6.71b063cd.js delete mode 100644 assets/js/b2f554cd.47f0780c.js create mode 100644 assets/js/b2f554cd.d126abe1.js create mode 100644 assets/js/ff38b1ce.2aa92837.js delete mode 100644 assets/js/ff38b1ce.315bf772.js rename assets/js/{runtime~main.a7a03ce0.js => runtime~main.42552359.js} (98%) create mode 100644 img/blog/podman-desktop-release-1.4/juggling.png diff --git a/404.html b/404.html index cfd76600bf8..5f6bfe5ccf1 100644 --- a/404.html +++ b/404.html @@ -13,13 +13,13 @@ - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/assets/js/894e67a6.176b91ec.js b/assets/js/894e67a6.176b91ec.js deleted file mode 100644 index 547e0535a44..00000000000 --- a/assets/js/894e67a6.176b91ec.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3714],{35318:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>h});var n=a(27378);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=p(a),h=o,c=d["".concat(s,".").concat(h)]||d[h]||u[h]||r;return a?n.createElement(c,i(i({ref:t},m),{},{components:a})):n.createElement(c,i({ref:t},m))}));function h(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var n=a(25773),o=(a(27378),a(35318));const r={title:"Release Notes - Podman Desktop 1.4",description:"Podman Desktop 1.4 has been released!",slug:"podman-desktop-release-1.4",authors:["jeffmaury"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.4.webp"},i=void 0,l={permalink:"/blog/podman-desktop-release-1.4",source:"@site/blog/2023-09-18-release-1.4.md",title:"Release Notes - Podman Desktop 1.4",description:"Podman Desktop 1.4 has been released!",date:"2023-09-18T00:00:00.000Z",formattedDate:"September 18, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"}],readingTime:3.415,hasTruncateMarker:!1,authors:[{name:"Jeff Maury",title:"Engineering Manager",url:"https://github.com/jeffmaury",imageURL:"https://github.com/jeffmaury.png",key:"jeffmaury"}],frontMatter:{title:"Release Notes - Podman Desktop 1.4",description:"Podman Desktop 1.4 has been released!",slug:"podman-desktop-release-1.4",authors:["jeffmaury"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.4.webp"},nextItem:{title:"Release Notes - Podman Desktop 1.3",permalink:"/blog/podman-desktop-release-1.3"}},s={authorsImageUrls:[void 0]},p=[{value:"Release Details",id:"release-details",level:2},{value:"Port range mapping #3654",id:"port-range-mapping-3654",level:3},{value:"Terminal lifetime #3725",id:"terminal-lifetime-3725",level:3},{value:"Create volume #3742",id:"create-volume-3742",level:3},{value:"bash support #3750",id:"bash-support-3750",level:3},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:3},{value:"Community Thank You",id:"community-thank-you",level:3},{value:"Final Notes",id:"final-notes",level:3}],m={toc:p};function u(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Podman Desktop 1.4 Release! \ud83c\udf89"),(0,o.kt)("p",null,"This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Podman 4.6.2"),": Podman 4.6.2 included with Podman Desktop 1.4"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Windows Arm64"),": Native Windows on Arm64 installers and binaries"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Port range mapping"),": Start containers and map a range of ports"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Terminal UX Improvement"),": Persistent terminal sessions when SSH'ing in a container"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Volume Creation"),": Create volume from the ",(0,o.kt)("inlineCode",{parentName:"li"},"Volumes")," page"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Bash support"),": Terminals are now using ",(0,o.kt)("inlineCode",{parentName:"li"},"bash")," if available.")),(0,o.kt)("p",null,"Podman Desktop 1.4 is now available. ",(0,o.kt)("a",{parentName:"p",href:"/downloads"},"Click here to download it"),"!"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Podman-desktop-1-4-juggling",src:a(91617).Z,width:"1920",height:"1080"})),(0,o.kt)("hr",null),(0,o.kt)("h2",{id:"release-details"},"Release Details"),(0,o.kt)("h3",{id:"port-range-mapping-3654"},"Port range mapping ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3654"},"#3654")),(0,o.kt)("p",null,"When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised."),(0,o.kt)("p",null,(0,o.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/49404737/262927546-da66b67a-0884-40b1-85bd-a9c3ea2f3f9e.gif",alt:"Range mapping"})),(0,o.kt)("h3",{id:"terminal-lifetime-3725"},"Terminal lifetime ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3725"},"#3725")),(0,o.kt)("p",null,"When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"terminal lifetime",src:a(79019).Z,width:"1316",height:"879"})),(0,o.kt)("h3",{id:"create-volume-3742"},"Create volume ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3742"},"#3742")),(0,o.kt)("p",null,"The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create volume",src:a(83022).Z,width:"1316",height:"879"})),(0,o.kt)("h3",{id:"bash-support-3750"},"bash support ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3750"},"#3750")),(0,o.kt)("p",null,"When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"bash sh",src:a(41834).Z,width:"1316",height:"879"})),(0,o.kt)("h3",{id:"notable-bug-fixes"},"Notable Bug Fixes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Reduce API calls when listing containers by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3489"},"#3489")),(0,o.kt)("li",{parentName:"ul"},"Removing a connection(podman machine) should redirect to previous page by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3576"},"#3576")),(0,o.kt)("li",{parentName:"ul"},"Enhance error message when image is not there by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3587"},"#3587")),(0,o.kt)("li",{parentName:"ul"},"Dispose kind install button when extension is deactivated (#3586) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3610"},"#3610")),(0,o.kt)("li",{parentName:"ul"},"Replace backslash/slash on windows when building image (#3465) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3618"},"#3618")),(0,o.kt)("li",{parentName:"ul"},"Handle null value in container command (#3620) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3625"},"#3625")),(0,o.kt)("li",{parentName:"ul"},"Add maximum activation time for extensions by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3446"},"#3446")),(0,o.kt)("li",{parentName:"ul"},"Handle single non-spread arguments by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3641"},"#3641")),(0,o.kt)("li",{parentName:"ul"},"Grab usage data of volumes only on-demand by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3635"},"#3635")),(0,o.kt)("li",{parentName:"ul"},"Add arm64 binaries for Windows by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3643"},"#3643")),(0,o.kt)("li",{parentName:"ul"},"Include right airgap file for Windows and arm64 by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3651"},"#3651")),(0,o.kt)("li",{parentName:"ul"},"Redirect to previous page when removing a kubernetes connection by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3650"},"#3650")),(0,o.kt)("li",{parentName:"ul"},"Support port ranges when starting a container (#3204) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3654"},"#3654")),(0,o.kt)("li",{parentName:"ul"},"Add a strict undefined check to messagebox result (#3692) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3699"},"#3699")),(0,o.kt)("li",{parentName:"ul"},"Only restart if a machine is running by @cdrage ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3491"},"#3491")),(0,o.kt)("li",{parentName:"ul"},"Session to the terminal is reused by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3725"},"#3725")),(0,o.kt)("li",{parentName:"ul"},"Disable next button and show try again when onboarding failed (#3616) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3711"},"#3711")),(0,o.kt)("li",{parentName:"ul"},"Add podman in PATH after updating process environment PATH (#3729) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3730"},"#3730")),(0,o.kt)("li",{parentName:"ul"},"Allow to create a volume by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3742"},"#3742")),(0,o.kt)("li",{parentName:"ul"},"Using bash if available otherwise sh in terminal by @axel7083 ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3750"},"#3750")),(0,o.kt)("li",{parentName:"ul"},"Allow to embed existing component to onboarding (#3755) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3763"},"#3763")),(0,o.kt)("li",{parentName:"ul"},"Some containers never return logs, do not wait for them by @dgolovin ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3784"},"#3784")),(0,o.kt)("li",{parentName:"ul"},"Remove cancel button when on final onboarding step (#3771) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3802"},"#3802")),(0,o.kt)("li",{parentName:"ul"},"Onboarding add link micromark for commands by @cdrage ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3747"},"#3747")),(0,o.kt)("li",{parentName:"ul"},"Mounts can be null when using older podman by @afbjorklund ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3806"},"#3806")),(0,o.kt)("li",{parentName:"ul"},"Remove redundant step completion check when onboarding gets started by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3798"},"#3798")),(0,o.kt)("li",{parentName:"ul"},"Ability to click enter in pull image name input by @deboer-tim ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3850"},"#3850")),(0,o.kt)("li",{parentName:"ul"},"Set proxy environment variable when launching process by @jeffmaury ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3838"},"#3838")),(0,o.kt)("li",{parentName:"ul"},"The socket location was moved for new podman by @afbjorklund ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3853"},"#3853")),(0,o.kt)("li",{parentName:"ul"},"Don't log console errors when activating lima extension by @afbjorklund ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3852"},"#3852"))),(0,o.kt)("h3",{id:"community-thank-you"},"Community Thank You"),(0,o.kt)("p",null,"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better."),(0,o.kt)("p",null,"A warm welcome to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/tomgoren"},"@tomgoren"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/Julian"},"@Julian"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/Gelob"},"@Gelob")," and ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/cedricclyburn"},"@cedricclyburn")," who made their first contribution to the project in this release."),(0,o.kt)("h3",{id:"final-notes"},"Final Notes"),(0,o.kt)("p",null,"The complete list of issues fixed in this release is available ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.4.0"},"here"),"."),(0,o.kt)("p",null,"Get the latest release from the ",(0,o.kt)("a",{parentName:"p",href:"/downloads"},"Downloads")," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/containers/podman-desktop"},"GitHub repository")," and see how you can help us make Podman Desktop better."))}u.isMDXComponent=!0},41834:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/bash-sh-640dea579335def1a54ad3d2fb668a13.gif"},83022:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/create-volume-b826557a9841c4f92311a2b5833ec247.gif"},91617:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/juggling-bfd34fcfc3b63b29752c5f16a53e36ad.png"},79019:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/terminal-dc078da2d12869ee9e148c38afe530da.gif"}}]); \ No newline at end of file diff --git a/assets/js/894e67a6.71b063cd.js b/assets/js/894e67a6.71b063cd.js new file mode 100644 index 00000000000..71075111a1b --- /dev/null +++ b/assets/js/894e67a6.71b063cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3714],{35318:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>h});var n=a(27378);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=p(a),h=o,c=d["".concat(s,".").concat(h)]||d[h]||u[h]||r;return a?n.createElement(c,i(i({ref:t},m),{},{components:a})):n.createElement(c,i({ref:t},m))}));function h(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var n=a(25773),o=(a(27378),a(35318));const r={title:"Release Notes - Podman Desktop 1.4",description:"Podman Desktop 1.4 has been released!",slug:"podman-desktop-release-1.4",authors:["jeffmaury"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/blog/img/podman-desktop-release-1.4/juggling.png"},i=void 0,l={permalink:"/blog/podman-desktop-release-1.4",source:"@site/blog/2023-09-18-release-1.4.md",title:"Release Notes - Podman Desktop 1.4",description:"Podman Desktop 1.4 has been released!",date:"2023-09-18T00:00:00.000Z",formattedDate:"September 18, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"}],readingTime:3.415,hasTruncateMarker:!1,authors:[{name:"Jeff Maury",title:"Engineering Manager",url:"https://github.com/jeffmaury",imageURL:"https://github.com/jeffmaury.png",key:"jeffmaury"}],frontMatter:{title:"Release Notes - Podman Desktop 1.4",description:"Podman Desktop 1.4 has been released!",slug:"podman-desktop-release-1.4",authors:["jeffmaury"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/blog/img/podman-desktop-release-1.4/juggling.png"},nextItem:{title:"Release Notes - Podman Desktop 1.3",permalink:"/blog/podman-desktop-release-1.3"}},s={authorsImageUrls:[void 0]},p=[{value:"Release Details",id:"release-details",level:2},{value:"Port range mapping #3654",id:"port-range-mapping-3654",level:3},{value:"Terminal lifetime #3725",id:"terminal-lifetime-3725",level:3},{value:"Create volume #3742",id:"create-volume-3742",level:3},{value:"bash support #3750",id:"bash-support-3750",level:3},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:3},{value:"Community Thank You",id:"community-thank-you",level:3},{value:"Final Notes",id:"final-notes",level:3}],m={toc:p};function u(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Podman Desktop 1.4 Release! \ud83c\udf89"),(0,o.kt)("p",null,"This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Podman 4.6.2"),": Podman 4.6.2 included with Podman Desktop 1.4"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Windows Arm64"),": Native Windows on Arm64 installers and binaries"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Port range mapping"),": Start containers and map a range of ports"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Terminal UX Improvement"),": Persistent terminal sessions when SSH'ing in a container"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Volume Creation"),": Create volume from the ",(0,o.kt)("inlineCode",{parentName:"li"},"Volumes")," page"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Bash support"),": Terminals are now using ",(0,o.kt)("inlineCode",{parentName:"li"},"bash")," if available.")),(0,o.kt)("p",null,"Podman Desktop 1.4 is now available. ",(0,o.kt)("a",{parentName:"p",href:"/downloads"},"Click here to download it"),"!"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Podman-desktop-1-4-juggling",src:a(91617).Z,width:"1920",height:"1080"})),(0,o.kt)("hr",null),(0,o.kt)("h2",{id:"release-details"},"Release Details"),(0,o.kt)("h3",{id:"port-range-mapping-3654"},"Port range mapping ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3654"},"#3654")),(0,o.kt)("p",null,"When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised."),(0,o.kt)("p",null,(0,o.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/49404737/262927546-da66b67a-0884-40b1-85bd-a9c3ea2f3f9e.gif",alt:"Range mapping"})),(0,o.kt)("h3",{id:"terminal-lifetime-3725"},"Terminal lifetime ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3725"},"#3725")),(0,o.kt)("p",null,"When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"terminal lifetime",src:a(79019).Z,width:"1316",height:"879"})),(0,o.kt)("h3",{id:"create-volume-3742"},"Create volume ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3742"},"#3742")),(0,o.kt)("p",null,"The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create volume",src:a(83022).Z,width:"1316",height:"879"})),(0,o.kt)("h3",{id:"bash-support-3750"},"bash support ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3750"},"#3750")),(0,o.kt)("p",null,"When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"bash sh",src:a(41834).Z,width:"1316",height:"879"})),(0,o.kt)("h3",{id:"notable-bug-fixes"},"Notable Bug Fixes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Reduce API calls when listing containers by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3489"},"#3489")),(0,o.kt)("li",{parentName:"ul"},"Removing a connection(podman machine) should redirect to previous page by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3576"},"#3576")),(0,o.kt)("li",{parentName:"ul"},"Enhance error message when image is not there by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3587"},"#3587")),(0,o.kt)("li",{parentName:"ul"},"Dispose kind install button when extension is deactivated (#3586) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3610"},"#3610")),(0,o.kt)("li",{parentName:"ul"},"Replace backslash/slash on windows when building image (#3465) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3618"},"#3618")),(0,o.kt)("li",{parentName:"ul"},"Handle null value in container command (#3620) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3625"},"#3625")),(0,o.kt)("li",{parentName:"ul"},"Add maximum activation time for extensions by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3446"},"#3446")),(0,o.kt)("li",{parentName:"ul"},"Handle single non-spread arguments by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3641"},"#3641")),(0,o.kt)("li",{parentName:"ul"},"Grab usage data of volumes only on-demand by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3635"},"#3635")),(0,o.kt)("li",{parentName:"ul"},"Add arm64 binaries for Windows by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3643"},"#3643")),(0,o.kt)("li",{parentName:"ul"},"Include right airgap file for Windows and arm64 by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3651"},"#3651")),(0,o.kt)("li",{parentName:"ul"},"Redirect to previous page when removing a kubernetes connection by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3650"},"#3650")),(0,o.kt)("li",{parentName:"ul"},"Support port ranges when starting a container (#3204) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3654"},"#3654")),(0,o.kt)("li",{parentName:"ul"},"Add a strict undefined check to messagebox result (#3692) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3699"},"#3699")),(0,o.kt)("li",{parentName:"ul"},"Only restart if a machine is running by @cdrage ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3491"},"#3491")),(0,o.kt)("li",{parentName:"ul"},"Session to the terminal is reused by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3725"},"#3725")),(0,o.kt)("li",{parentName:"ul"},"Disable next button and show try again when onboarding failed (#3616) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3711"},"#3711")),(0,o.kt)("li",{parentName:"ul"},"Add podman in PATH after updating process environment PATH (#3729) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3730"},"#3730")),(0,o.kt)("li",{parentName:"ul"},"Allow to create a volume by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3742"},"#3742")),(0,o.kt)("li",{parentName:"ul"},"Using bash if available otherwise sh in terminal by @axel7083 ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3750"},"#3750")),(0,o.kt)("li",{parentName:"ul"},"Allow to embed existing component to onboarding (#3755) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3763"},"#3763")),(0,o.kt)("li",{parentName:"ul"},"Some containers never return logs, do not wait for them by @dgolovin ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3784"},"#3784")),(0,o.kt)("li",{parentName:"ul"},"Remove cancel button when on final onboarding step (#3771) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3802"},"#3802")),(0,o.kt)("li",{parentName:"ul"},"Onboarding add link micromark for commands by @cdrage ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3747"},"#3747")),(0,o.kt)("li",{parentName:"ul"},"Mounts can be null when using older podman by @afbjorklund ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3806"},"#3806")),(0,o.kt)("li",{parentName:"ul"},"Remove redundant step completion check when onboarding gets started by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3798"},"#3798")),(0,o.kt)("li",{parentName:"ul"},"Ability to click enter in pull image name input by @deboer-tim ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3850"},"#3850")),(0,o.kt)("li",{parentName:"ul"},"Set proxy environment variable when launching process by @jeffmaury ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3838"},"#3838")),(0,o.kt)("li",{parentName:"ul"},"The socket location was moved for new podman by @afbjorklund ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3853"},"#3853")),(0,o.kt)("li",{parentName:"ul"},"Don't log console errors when activating lima extension by @afbjorklund ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3852"},"#3852"))),(0,o.kt)("h3",{id:"community-thank-you"},"Community Thank You"),(0,o.kt)("p",null,"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better."),(0,o.kt)("p",null,"A warm welcome to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/tomgoren"},"@tomgoren"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/Julian"},"@Julian"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/Gelob"},"@Gelob")," and ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/cedricclyburn"},"@cedricclyburn")," who made their first contribution to the project in this release."),(0,o.kt)("h3",{id:"final-notes"},"Final Notes"),(0,o.kt)("p",null,"The complete list of issues fixed in this release is available ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.4.0"},"here"),"."),(0,o.kt)("p",null,"Get the latest release from the ",(0,o.kt)("a",{parentName:"p",href:"/downloads"},"Downloads")," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/containers/podman-desktop"},"GitHub repository")," and see how you can help us make Podman Desktop better."))}u.isMDXComponent=!0},41834:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/bash-sh-640dea579335def1a54ad3d2fb668a13.gif"},83022:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/create-volume-b826557a9841c4f92311a2b5833ec247.gif"},91617:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/juggling-bfd34fcfc3b63b29752c5f16a53e36ad.png"},79019:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/terminal-dc078da2d12869ee9e148c38afe530da.gif"}}]); \ No newline at end of file diff --git a/assets/js/b2f554cd.47f0780c.js b/assets/js/b2f554cd.47f0780c.js deleted file mode 100644 index 6cbb35ec032..00000000000 --- a/assets/js/b2f554cd.47f0780c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1477],{30010:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"podman-desktop-release-1.4","metadata":{"permalink":"/blog/podman-desktop-release-1.4","source":"@site/blog/2023-09-18-release-1.4.md","title":"Release Notes - Podman Desktop 1.4","description":"Podman Desktop 1.4 has been released!","date":"2023-09-18T00:00:00.000Z","formattedDate":"September 18, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"openshift","permalink":"/blog/tags/openshift"}],"readingTime":3.415,"hasTruncateMarker":false,"authors":[{"name":"Jeff Maury","title":"Engineering Manager","url":"https://github.com/jeffmaury","imageURL":"https://github.com/jeffmaury.png","key":"jeffmaury"}],"frontMatter":{"title":"Release Notes - Podman Desktop 1.4","description":"Podman Desktop 1.4 has been released!","slug":"podman-desktop-release-1.4","authors":["jeffmaury"],"tags":["podman-desktop","release","kubernetes","openshift"],"hide_table_of_contents":false,"image":"/img/blog/podman-desktop-release-1.4.webp"},"nextItem":{"title":"Release Notes - Podman Desktop 1.3","permalink":"/blog/podman-desktop-release-1.3"}},"content":"import ReactPlayer from \'react-player\'\\n\\nPodman Desktop 1.4 Release! \ud83c\udf89\\n\\nThis is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features.\\n\\n- **Podman 4.6.2**: Podman 4.6.2 included with Podman Desktop 1.4\\n- **Windows Arm64**: Native Windows on Arm64 installers and binaries\\n- **Port range mapping**: Start containers and map a range of ports\\n- **Terminal UX Improvement**: Persistent terminal sessions when SSH\'ing in a container\\n- **Volume Creation**: Create volume from the `Volumes` page\\n- **Bash support**: Terminals are now using `bash` if available.\\n\\nPodman Desktop 1.4 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-1-4-juggling](img/podman-desktop-release-1.4/juggling.png)\\n\\n---\\n\\n## Release Details\\n\\n### Port range mapping [#3654](https://github.com/containers/podman-desktop/pull/3654)\\n\\nWhen starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised.\\n\\n![Range mapping](https://user-images.githubusercontent.com/49404737/262927546-da66b67a-0884-40b1-85bd-a9c3ea2f3f9e.gif)\\n\\n### Terminal lifetime [#3725](https://github.com/containers/podman-desktop/pull/3725)\\n\\nWhen a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI.\\n\\n![terminal lifetime](img/podman-desktop-release-1.4/terminal.gif)\\n\\n### Create volume [#3742](https://github.com/containers/podman-desktop/pull/3742)\\n\\nThe Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name.\\n\\n![create volume](img/podman-desktop-release-1.4/create-volume.gif)\\n\\n### bash support [#3750](https://github.com/containers/podman-desktop/pull/3750)\\n\\nWhen a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used.\\n\\n![bash sh](img/podman-desktop-release-1.4/bash-sh.gif)\\n\\n### Notable Bug Fixes\\n\\n- Reduce API calls when listing containers by @benoitf [#3489](https://github.com/containers/podman-desktop/pull/3489)\\n- Removing a connection(podman machine) should redirect to previous page by @benoitf [#3576](https://github.com/containers/podman-desktop/pull/3576)\\n- Enhance error message when image is not there by @benoitf [#3587](https://github.com/containers/podman-desktop/pull/3587)\\n- Dispose kind install button when extension is deactivated (#3586) by @lstocchi [#3610](https://github.com/containers/podman-desktop/pull/3610)\\n- Replace backslash/slash on windows when building image (#3465) by @lstocchi [#3618](https://github.com/containers/podman-desktop/pull/3618)\\n- Handle null value in container command (#3620) by @lstocchi [#3625](https://github.com/containers/podman-desktop/pull/3625)\\n- Add maximum activation time for extensions by @benoitf [#3446](https://github.com/containers/podman-desktop/pull/3446)\\n- Handle single non-spread arguments by @benoitf [#3641](https://github.com/containers/podman-desktop/pull/3641)\\n- Grab usage data of volumes only on-demand by @benoitf [#3635](https://github.com/containers/podman-desktop/pull/3635)\\n- Add arm64 binaries for Windows by @benoitf [#3643](https://github.com/containers/podman-desktop/pull/3643)\\n- Include right airgap file for Windows and arm64 by @benoitf [#3651](https://github.com/containers/podman-desktop/pull/3651)\\n- Redirect to previous page when removing a kubernetes connection by @benoitf [#3650](https://github.com/containers/podman-desktop/pull/3650)\\n- Support port ranges when starting a container (#3204) by @lstocchi [#3654](https://github.com/containers/podman-desktop/pull/3654)\\n- Add a strict undefined check to messagebox result (#3692) by @lstocchi [#3699](https://github.com/containers/podman-desktop/pull/3699)\\n- Only restart if a machine is running by @cdrage [#3491](https://github.com/containers/podman-desktop/pull/3491)\\n- Session to the terminal is reused by @benoitf [#3725](https://github.com/containers/podman-desktop/pull/3725)\\n- Disable next button and show try again when onboarding failed (#3616) by @lstocchi [#3711](https://github.com/containers/podman-desktop/pull/3711)\\n- Add podman in PATH after updating process environment PATH (#3729) by @lstocchi [#3730](https://github.com/containers/podman-desktop/pull/3730)\\n- Allow to create a volume by @benoitf [#3742](https://github.com/containers/podman-desktop/pull/3742)\\n- Using bash if available otherwise sh in terminal by @axel7083 [#3750](https://github.com/containers/podman-desktop/pull/3750)\\n- Allow to embed existing component to onboarding (#3755) by @lstocchi [#3763](https://github.com/containers/podman-desktop/pull/3763)\\n- Some containers never return logs, do not wait for them by @dgolovin [#3784](https://github.com/containers/podman-desktop/pull/3784)\\n- Remove cancel button when on final onboarding step (#3771) by @lstocchi [#3802](https://github.com/containers/podman-desktop/pull/3802)\\n- Onboarding add link micromark for commands by @cdrage [#3747](https://github.com/containers/podman-desktop/pull/3747)\\n- Mounts can be null when using older podman by @afbjorklund [#3806](https://github.com/containers/podman-desktop/pull/3806)\\n- Remove redundant step completion check when onboarding gets started by @lstocchi [#3798](https://github.com/containers/podman-desktop/pull/3798)\\n- Ability to click enter in pull image name input by @deboer-tim [#3850](https://github.com/containers/podman-desktop/pull/3850)\\n- Set proxy environment variable when launching process by @jeffmaury [#3838](https://github.com/containers/podman-desktop/pull/3838)\\n- The socket location was moved for new podman by @afbjorklund [#3853](https://github.com/containers/podman-desktop/pull/3853)\\n- Don\'t log console errors when activating lima extension by @afbjorklund [#3852](https://github.com/containers/podman-desktop/pull/3852)\\n\\n### Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better.\\n\\nA warm welcome to [@tomgoren](https://github.com/tomgoren), [@Julian](https://github.com/Julian), [@Gelob](https://github.com/Gelob) and [@cedricclyburn](https://github.com/cedricclyburn) who made their first contribution to the project in this release.\\n\\n### Final Notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.4.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-1.3","metadata":{"permalink":"/blog/podman-desktop-release-1.3","source":"@site/blog/2023-08-16-release-1.3.md","title":"Release Notes - Podman Desktop 1.3","description":"Podman Desktop 1.3 has been released!","date":"2023-08-16T00:00:00.000Z","formattedDate":"August 16, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"openshift","permalink":"/blog/tags/openshift"}],"readingTime":5.195,"hasTruncateMarker":false,"authors":[{"name":"Denis Golovin","title":"Principal Software Engineer","url":"https://github.com/cdrage","imageURL":"https://github.com/dgolovin.png","key":"dgolovin"}],"frontMatter":{"title":"Release Notes - Podman Desktop 1.3","description":"Podman Desktop 1.3 has been released!","slug":"podman-desktop-release-1.3","authors":["dgolovin"],"tags":["podman-desktop","release","kubernetes","openshift"],"hide_table_of_contents":false,"image":"/img/blog/podman-desktop-release-1.3.webp"},"prevItem":{"title":"Release Notes - Podman Desktop 1.4","permalink":"/blog/podman-desktop-release-1.4"},"nextItem":{"title":"Release Notes - Podman Desktop 1.2","permalink":"/blog/podman-desktop-release-1.2"}},"content":"import ReactPlayer from \'react-player\'\\n\\nPodman Desktop 1.3 Release! \ud83c\udf89\\n\\nThis is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features.\\n\\n- **Podman 4.6.1**: Podman 4.6.1 included in Windows and Mac installers\\n- **Podman user-mode networking support to Windows/WSL**: A new switch `User mode networking\' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations\\n- **Compose group new UI elements**: You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs\\n- **Extension packs and extension dependencies**: Install group of extensions in one click\\n- **Resource details page update**: See summary and log for resource\\n- **Create Kind cluster form update**: A new `Node\'s container image` field can be used to specify the Kubernetes version used for the control-planed\\n- **Support Docker Desktop extensions using a backend**: When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension\'s descriptor\\n- **Podman Initial Onboarding (preview)**: Install and configure podman using included installer\\n\\nPodman Desktop 1.3 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-1-3-bug-swatting](img/podman-desktop-release-1.3/title-bug-swatting.png)\\n\\n---\\n\\n## Release Details\\n\\n### Compose group Logs tab [#3176](https://github.com/containers/podman-desktop/pull/3176)\\n\\nWhen clicking on the group of containers, you can now view the logs of the entire group of compose containers and don\'t need to open\\nlog for every component individually.\\n\\n![Screenshot 2023-07-11 at 12 48 47 PM](https://github.com/containers/podman-desktop/assets/6422176/743a4ffc-e291-4697-8ac5-8052cc921946)\\n\\n### Podman user-mode networking support to Windows/WSL [#3251](https://github.com/containers/podman-desktop/pull/3251)\\n\\nCertain VPN setups or other specialized networking configs will block traffic from the virtual WSL networking device, resulting in the podman WSL backend from being unable to contact systems on the VPN, and potentially losing internet access altogether. The new switch allows you to create a podman VM machine configured to work correctly in mentioned above networking environments.\\n\\n![user](https://github.com/containers/podman-desktop/assets/620330/2f521576-b6a6-42b5-b24d-08df5b432608)\\n\\n### Compose group Summary tab [#3317](https://github.com/containers/podman-desktop/pull/3317),\\n\\nCompose group Summary tab shows all containers in the group and let you navigate to Details page for specific container.\\n\\n\\n\\n### Compose group Inspect tab [#3316](https://github.com/containers/podman-desktop/pull/3316)\\n\\nCompose group Inspect tab shows an array of \\"container inspect\\" from docker / podman.\\n\\n\\n\\n### `Deploy to kubernetes` in compose actions [#3299](https://github.com/containers/podman-desktop/pull/3295)\\n\\nA button to deploy to kubernetes added to Compose group.\\n\\n\\n\\n### `Generate Kube` in Compose actions and `Kube` tab in compose details [#3253](https://github.com/containers/podman-desktop/pull/3253)\\n\\n`Generate Kube` item added to Compose actions and \\"Kube\\" tab is now available in Compose details view.\\n\\n\\n\\n### Install multiple extensions using extension pack [#3150](https://github.com/containers/podman-desktop/pull/3150)\\n\\nAn Extension pack introduced in Extension engine is a way to declare set of extensions to install them all at once.\\n\\n\\n\\n### Customize icons from extension [#3131](https://github.com/containers/podman-desktop/pull/3131)\\n\\nExtensions now can customize icons for list elements using `when` clause.\\n\\n![image](https://github.com/containers/podman-desktop/assets/49404737/7aae5347-4f07-4854-ba11-1f629b5ccf22)\\n\\n### Resource details page update [#1923](https://github.com/containers/podman-desktop/pull/1923)\\n\\nIf you click on the arrow icon next to a resource name it will open up a details page (similarly to how clicking on a container in the container list opens up a details page).\\n\\n![image](https://user-images.githubusercontent.com/49404737/229542404-bae44f89-5cd3-4baf-8b08-e934e4462697.gif)\\n\\n### `Node\'s container image` field added to `Create a Kind cluster` form [#3508](https://github.com/containers/podman-desktop/pull/3508)\\n\\nThe new `Node\'s container image` field can be used to specify the Kubernetes version used for the control-planed.\\n\\n![image](https://github.com/containers/podman-desktop/assets/42176370/b2a63faf-629f-436d-8496-7c0cd8158679)\\n\\n### Support Docker Desktop extensions using a backend [#3435](https://github.com/containers/podman-desktop/pull/3435)\\n\\nPodman Desktop now loads the containers in the backend as described in the vm section of extension descriptor the same way as Docker Desktop does.\\n\\n### Initial onboarding implementation for podman (experimental) [#3308](https://github.com/containers/podman-desktop/pull/3308)\\n\\nThis is the initial implementation for the onboarding feature. It only covers a simple onboarding for podman. Check system requirements -> install podman -> yay! Done!\\n\\n### Notable Bug Fixes\\n\\n- Updating videos to be adaptive for mobile by @mairin [#3229](https://github.com/containers/podman-desktop/pull/3229)\\n- Consistent max width and padding in settings by @deboer-tim [#3232](https://github.com/containers/podman-desktop/pull/3232)\\n- Settings navigation bar resizing by @deboer-tim in [#3231](https://github.com/containers/podman-desktop/pull/3231)\\n- Move new registry button to header by @deboer-tim [#3245](https://github.com/containers/podman-desktop/pull/3245)\\n- Bigger lima logo by @afbjorklund [#3248](https://github.com/containers/podman-desktop/pull/3248)\\n- Horizontal docker logo by @afbjorklund [#3236](https://github.com/containers/podman-desktop/pull/3236)\\n- Respect LIMA_HOME environment variable by @afbjorklund [#3254](https://github.com/containers/podman-desktop/pull/3254)\\n- Add check before writing to terminal by @lstocchi [#3263](https://github.com/containers/podman-desktop/pull/3263)\\n- Wait until remote side has fully initialized the extensions by @benoitf [#3257](https://github.com/containers/podman-desktop/pull/3257)\\n- Fix loader not centered horizontally by @benoitf [#3270](https://github.com/containers/podman-desktop/pull/3270)\\n- Troubleshooting still waiting after failure by @deboer-tim [#3354](https://github.com/containers/podman-desktop/pull/3354)\\n- Store error for build by @cdrage [#3365](https://github.com/containers/podman-desktop/pull/3365)\\n- Missing checkbox tooltips by @deboer-tim [#3380](https://github.com/containers/podman-desktop/pull/3380)\\n- Load compose logs async not await by @cdrage [#3377](https://github.com/containers/podman-desktop/pull/3377)\\n- Set rootful connection when starting rootful machine by @lstocchi [#3364](https://github.com/containers/podman-desktop/pull/3364)\\n- Default last page by @deboer-tim [#3388](https://github.com/containers/podman-desktop/pull/3388)\\n- Avoid dashboard displaying providers starting while they don\'t by @benoitf [#3451](https://github.com/containers/podman-desktop/pull/3451)\\n- Do not use extensionInfo until it is defined by @benoitf [#V](https://github.com/containers/podman-desktop/pull/3450)\\n- Allow BASIC authentication (all caps) by @cdrage [#3471](https://github.com/containers/podman-desktop/pull/3471)\\n- Allow single domain registry such as localhost:5000 by @cdrage [#3468](https://github.com/containers/podman-desktop/pull/3468)\\n- Create /usr/local/bin directory if it does not exist on binary install by @cdrage [#3425](https://github.com/containers/podman-desktop/pull/3425)\\n- Only delete selected pods by @deboer-tim [#](https://github.com/containers/podman-desktop/pull/3378)\\n- Add back \'Done\' text on the button by @benoitf [#3487](https://github.com/containers/podman-desktop/pull/3487)\\n- Do not wait for more than 5s when checking for podman ping by @benoitf [#3497](https://github.com/containers/podman-desktop/pull/3497)\\n- Add proxy support for extension using patching get and request approach by @dgolovin [#2825](https://github.com/containers/podman-desktop/pull/2825)\\n- Refresh component when field is updated by @benoitf [#3525](https://github.com/containers/podman-desktop/pull/3525)\\n- Higher-res icons for featured extensions list by @mairin [#3511](https://github.com/containers/podman-desktop/pull/3511)\\n- Main nav selection by @deboer-tim [#3510](https://github.com/containers/podman-desktop/pull/3510)\\n- kube event error when switching context by @jeffmaury [#3494](https://github.com/containers/podman-desktop/pull/3494)\\n- Reset error message each time we pull image by @benoitf [#3550](https://github.com/containers/podman-desktop/pull/3550)\\n\\n### Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better.\\n\\nA warm welcome to [@rostalan](https://github.com/rostalan) and [@axel7083](https://github.com/axel7083) who made their first contribution to the project in this release.\\n\\n### Final Notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.3.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-1.2","metadata":{"permalink":"/blog/podman-desktop-release-1.2","source":"@site/blog/2023-07-12-release-1.2.md","title":"Release Notes - Podman Desktop 1.2","description":"Podman Desktop 1.2 has been released!","date":"2023-07-12T00:00:00.000Z","formattedDate":"July 12, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"openshift","permalink":"/blog/tags/openshift"}],"readingTime":6.05,"hasTruncateMarker":false,"authors":[{"name":"Charlie Drage","title":"Software Engineer","url":"https://github.com/cdrage","imageURL":"https://github.com/cdrage.png","key":"cdrage"}],"frontMatter":{"title":"Release Notes - Podman Desktop 1.2","description":"Podman Desktop 1.2 has been released!","slug":"podman-desktop-release-1.2","authors":["cdrage"],"tags":["podman-desktop","release","kubernetes","openshift"],"hide_table_of_contents":false,"image":"/img/blog/podman-desktop-release-1.2.webp"},"prevItem":{"title":"Release Notes - Podman Desktop 1.3","permalink":"/blog/podman-desktop-release-1.3"},"nextItem":{"title":"Release Notes - Podman Desktop 1.1","permalink":"/blog/podman-desktop-release-1.1"}},"content":"import ReactPlayer from \'react-player\'\\n\\nPodman Desktop 1.2 Release! \ud83c\udf89\\n\\nWe\'re excited to announce the release of Podman Desktop version 1.2.0! This release includes many new features (Kubernetes, Compose and extension support!), bug fixes, and improvements to enhance your container management experience. Here\'s a summary of the key changes in this release:\\n\\n- **Added start/stop/delete/restart buttons for Compose**: You can now make changes to an entire Compose group of containers\\n- **Kubernetes context on the status bar**: Choose from multiple Kubernetes contexts more easily all from the status bar\\n- **Rename images**: Rename an image with a click of a button\\n- **Protocol handler support**: Added support for protocol handlers such as `open podman-desktop:extension/redhat.openshift-local`\\n- **Troubleshooting page**: A troubleshooting page for helping diagnose Podman Desktop related development issues\\n\\nPodman Desktop 1.2 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-1-2-hero](img/podman-desktop-release-1.2/podman-desktop-release-1.2.png)\\n\\n---\\n\\n## Release Details\\n\\n### Added start/stop/delete/restart buttons for Compose\\n\\nIn the last month we\'ve been addind support for more Compose features. Before you were only able to control a group of containers if they were in a Pod. Now we have added the ability to control a group of Compose containers. You can now start, stop, delete and restart a group of containers launched by either `docker-compose` or `podman-compose`.\\n\\nStay tuned as we add even more features to Compose! If you have any feedback or feature requests, feel free to open an issue or start a discussion on GitHub.\\n\\n\\n\\n### Kubernetes context on the status bar\\n\\nWith Kubernetes context on the status bar, you can switch from one context to another in just a couple of clicks. Easily switch to a different cluster all together. If there are multiple contexts available, you can now click and pick which one to use.\\n\\n\\n\\n### Rename images\\n\\nDeployed an image but now you need to rename it / add a new tag? Podman Desktop allows you to edit an image now. Thanks to an awesome contributor [@tuckerrc](https://github.com/tuckerrc) who added the new feature.\\n\\n\\n\\n### Troubleshooting page\\n\\nDeveloping an extension for Podman Desktop? Want to view the logs of Podman Desktop as well as ping your container connection? We now have a troubleshooting page!\\n\\nClick on the lightbulb button on the bottom right to access the page.\\n\\n\\n\\n### Protocol handler support\\n\\nPodman Desktop now supports protocol handling when using the terminal! Want to access your favourite extension directly from a script or the terminal? If you type in `open podman-desktop:extension/redhat.openshift-local` in the terminal, Podman Desktop will automatically load up to the correct extension.\\n\\n\\n\\n---\\n\\n## Other Notable Features\\n\\n- Background colors and FormPage ([PR #2977](https://github.com/containers/podman-desktop/pull/2977))\\n- Add ability to add insecure registry / skipping cert verify ([PR #2896](https://github.com/containers/podman-desktop/pull/2896))\\n- Add support for icon contribution ([PR #2984](https://github.com/containers/podman-desktop/pull/2984))\\n- Add warning dialog message that virtual machine has low memory limit ([PR #2822](https://github.com/containers/podman-desktop/pull/2822))\\n- Propose indexed name for new pod ([PR #3028](https://github.com/containers/podman-desktop/pull/3028))\\n- Add restart button after enabling / disabling mac os compatibility ([PR #2841](https://github.com/containers/podman-desktop/pull/2841))\\n- Add environment related helper constants ([PR #3079](https://github.com/containers/podman-desktop/pull/3079))\\n- Allow entrypoint and cmd when starting container ([PR #3031](https://github.com/containers/podman-desktop/pull/3031))\\n- Add a way to debug stores in troubleshooting page ([PR #3121](https://github.com/containers/podman-desktop/pull/3121))\\n- Add custompick component (#2855) ([PR #3012](https://github.com/containers/podman-desktop/pull/3012))\\n- Dynamic breadcrumbs ([PR #3119](https://github.com/containers/podman-desktop/pull/3119))\\n- Icons on form pages ([PR #3155](https://github.com/containers/podman-desktop/pull/3155))\\n- Switch more pages to formpage ([PR #3162](https://github.com/containers/podman-desktop/pull/3162))\\n- Add rename image button ([PR #2588](https://github.com/containers/podman-desktop/pull/2588))\\n- Fixed headers, improved scrollbars ([PR #2863](https://github.com/containers/podman-desktop/pull/2863))\\n- Reports warnings on failed kube deploy, fixes error out ([PR #3050](https://github.com/containers/podman-desktop/pull/3050))\\n- Kube context on statusbar ([PR #2755](https://github.com/containers/podman-desktop/pull/2755))\\n- Install provider if not installed when clicking on create new button (#2706) ([PR #2817](https://github.com/containers/podman-desktop/pull/2817))\\n- Add tag and authenticated push capacity to the extension API ([PR #2876](https://github.com/containers/podman-desktop/pull/2876))\\n- Add navigation bar e2e tests ([PR #2950](https://github.com/containers/podman-desktop/pull/2950))\\n\\n---\\n\\n## Documentation Updates\\n\\n- Fix documentation for building image of extensions ([PR #2873](https://github.com/containers/podman-desktop/pull/2873))\\n- Add Minikube install docs ([PR #2824](https://github.com/containers/podman-desktop/pull/2824))\\n- Add Minikube documentation ([PR #2694](https://github.com/containers/podman-desktop/pull/2694))\\n- Updated Building an image procedure ([PR #2964](https://github.com/containers/podman-desktop/pull/2964))\\n- Starting a container ([PR #2958](https://github.com/containers/podman-desktop/pull/2958))\\n- Pulling an image ([PR #2956](https://github.com/containers/podman-desktop/pull/2956))\\n- Updated selecting containers to run in a pod ([PR #2970](https://github.com/containers/podman-desktop/pull/2970))\\n- Pushing an image to a registry ([PR #2969](https://github.com/containers/podman-desktop/pull/2969))\\n- How to add an insecure registry ([PR #2953](https://github.com/containers/podman-desktop/pull/2953))\\n- Add documentation for lima ([PR #2995](https://github.com/containers/podman-desktop/pull/2995))\\n- Replace broken link to podman.io ([PR #2994](https://github.com/containers/podman-desktop/pull/2994))\\n- Authenticating to a pre-configured registry ([PR #2965](https://github.com/containers/podman-desktop/pull/2965))\\n- Lima is not a container engine ([PR #3051](https://github.com/containers/podman-desktop/pull/3051))\\n- Using the Troubleshooting page ([PR #3083](https://github.com/containers/podman-desktop/pull/3083))\\n- View and select your current Kubernetes context in the status bar ([PR #3090](https://github.com/containers/podman-desktop/pull/3090))\\n\\n---\\n\\n## Notable Bug Fixes\\n\\n- Deleting a running pod generates an error ([PR #2827](https://github.com/containers/podman-desktop/pull/2827))\\n- If kubeconfig is empty, does not try to do things, cancel ([PR #2874](https://github.com/containers/podman-desktop/pull/2874))\\n- Async telemetry startup ([PR #2885](https://github.com/containers/podman-desktop/pull/2885))\\n- Do not block startup while waiting for kube resource refresh ([PR #2884](https://github.com/containers/podman-desktop/pull/2884))\\n- Images list too wide ([PR #2918](https://github.com/containers/podman-desktop/pull/2918))\\n- Compose deactivate function never called ([PR #2922](https://github.com/containers/podman-desktop/pull/2922))\\n- Auto-scrolling on form pages, layout issues ([PR #2927](https://github.com/containers/podman-desktop/pull/2927))\\n- Show current context in quick pick ([PR #2920](https://github.com/containers/podman-desktop/pull/2920))\\n- Remove sticky position of loader in dashboard UI (#2535) ([PR #2959](https://github.com/containers/podman-desktop/pull/2959))\\n- Undo change that broke the website ([PR #2992](https://github.com/containers/podman-desktop/pull/2992))\\n- Detailspage, resizing & consistency ([PR #2987](https://github.com/containers/podman-desktop/pull/2987))\\n- Quick pick click to close and over nav bar ([PR #2758](https://github.com/containers/podman-desktop/pull/2758))\\n- Only show empty screen when no pods ([PR #2929](https://github.com/containers/podman-desktop/pull/2929))\\n- Do not redirect to /pods when deleting pod in containerlist ([PR #2963](https://github.com/containers/podman-desktop/pull/2963))\\n- Bulk delete on pods should call the pod deletion ([PR #2979](https://github.com/containers/podman-desktop/pull/2979))\\n- Update nodejs version to 18 in .nvmrc to fix yarn install failure ([PR #2989](https://github.com/containers/podman-desktop/pull/2989))\\n- Website check targets ([PR #2996](https://github.com/containers/podman-desktop/pull/2996))\\n- Don\'t show exception to user ([PR #3034](https://github.com/containers/podman-desktop/pull/3034))\\n- Interpret arguments given to info command for example ([PR #3015](https://github.com/containers/podman-desktop/pull/3015))\\n- Change defaults for Podman machine ([PR #3061](https://github.com/containers/podman-desktop/pull/3061))\\n- Normalize development/production folders path ([PR #3113](https://github.com/containers/podman-desktop/pull/3113))\\n- Calculate machine socket path for linux ([PR #3070](https://github.com/containers/podman-desktop/pull/3070))\\n- Replace backslash with slash so to support rendering on Windows (#3120) ([PR #3122](https://github.com/containers/podman-desktop/pull/3122))\\n- Keep stdout and stderr in the error object for Docker Desktop extensions ([PR #3014](https://github.com/containers/podman-desktop/pull/3014))\\n- Mark task completed if there\'s a failure ([PR #3016](https://github.com/containers/podman-desktop/pull/3016))\\n- Handle invalid kubeconfig file ([PR #3129](https://github.com/containers/podman-desktop/pull/3129))\\n- Do not remove registries when podman extension is stopping ([PR #3136](https://github.com/containers/podman-desktop/pull/3136))\\n- Warning should be amber ([PR #3153](https://github.com/containers/podman-desktop/pull/3153))\\n- Load user extensions from plugins as removable ([PR #3152](https://github.com/containers/podman-desktop/pull/3152))\\n- Images with spaces in entrypoints or commands fail to start ([PR #3161](https://github.com/containers/podman-desktop/pull/3161))\\n- Scrolling offscreen when clicking checkbox ([PR #3178](https://github.com/containers/podman-desktop/pull/3178))\\n- Avoid messagebox expanding offscreen ([PR #2778](https://github.com/containers/podman-desktop/pull/2778))\\n- Release-notes-generator run failure ([PR #2752](https://github.com/containers/podman-desktop/pull/2752))\\n- Unable to do a new build if the previous one failed ([PR #2721](https://github.com/containers/podman-desktop/pull/2721))\\n\\n---\\n\\n## Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better.\\n\\nA big shoutout to [@afbjorklund](https://github.com/afbjorklund), [@tuckerrc](https://github.com/tuckerrc) and [@evanshortiss](https://github.com/evanshortiss) who contributed to this release!\\n\\n---\\n\\n## Final notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.2.0) and [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.2.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-1.1","metadata":{"permalink":"/blog/podman-desktop-release-1.1","source":"@site/blog/2023-06-08-release-1.1.md","title":"Release Notes - Podman Desktop 1.1","description":"Podman Desktop 1.1 has been released!","date":"2023-06-08T00:00:00.000Z","formattedDate":"June 8, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"openshift","permalink":"/blog/tags/openshift"}],"readingTime":2.465,"hasTruncateMarker":true,"authors":[{"name":"Tim deBoer","title":"Architect","url":"https://github.com/deboer-tim","imageURL":"https://github.com/deboer-tim.png","key":"deboer"}],"frontMatter":{"title":"Release Notes - Podman Desktop 1.1","description":"Podman Desktop 1.1 has been released!","slug":"podman-desktop-release-1.1","authors":["deboer"],"tags":["podman-desktop","release","kubernetes","openshift"],"hide_table_of_contents":false,"image":"/img/blog/podman-desktop-release-1.1.webp"},"prevItem":{"title":"Release Notes - Podman Desktop 1.2","permalink":"/blog/podman-desktop-release-1.2"},"nextItem":{"title":"Release Notes - Podman Desktop 1.0","permalink":"/blog/podman-desktop-release-1.0"}},"content":"import ReactPlayer from \'react-player\'\\n\\nPodman Desktop 1.1 Release! \ud83c\udf89\\n\\nThis is primarily a bug-fix release to fix a few important issues, but we\'ve managed to squeeze in a few enhancements\\nalong the way.\\n\\n\x3c!--Main Features--\x3e\\n\\n- **Podman 4.5.1**: Podman 4.5.1 now included in Windows and Mac installers.\\n- **Extensions**: Update extensions from within Podman Desktop.\\n- **Lima Support**: Choose engine type and override its name from the settings.\\n- **UX and UI Improvements**: New loading screen.\\n\\nPodman Desktop 1.1 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-1-1-hero](img/podman-desktop-release-1.1/podman-desktop-release-1.1.png)\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release Details\\n\\n### Podman v4.5.1\\n\\nPodman Desktop 1.1 moves up to [Podman 4.5.1](https://github.com/containers/podman/releases/tag/v4.5.1).\\n\\n### Extensions\\n\\nOptional extensions will follow their own lifecycle and update independently from Podman Desktop. As of\\nthis release you\'ll be able to see when there is an update available and install from within\\nPodman Desktop [#2655](https://github.com/containers/podman-desktop/pull/2655).\\n\\nWe\'ve also added options in **Settings > Preferences** to\\nautomatically check for and install extension updates.\\n\\n\\n\\n![Update extensions](img/podman-desktop-release-1.1/update-extensions.png)\\n\\n### Lima Support\\n\\nThanks to contributor [Anders Bj\xf6rklund](https://github.com/afbjorklund), we have some improvements to the\\nLima extension! In **Settings > Preferences** you can select which\\nengine type Lima runs on and override the instance name [#2674](https://github.com/containers/podman-desktop/pull/2674).\\n\\n![Lima preferences](https://user-images.githubusercontent.com/10364051/241755966-0a6a293b-b18e-4222-9c40-abd6c114d464.png)\\n\\n### Other UI and UX Improvements\\n\\n#### New Loading Screen\\n\\nWe have a new loading screen, Podman Desktop style! [#2743](https://github.com/containers/podman-desktop/pull/2743).\\n\\n\\n\\n---\\n\\n## Other Notable Enhancements\\n\\n- Docker-compose can be installed system-wide [#2718](https://github.com/containers/podman-desktop/pull/2718).\\n- Show warning when creating a pod with two containers that use the same port [#2671](https://github.com/containers/podman-desktop/pull/2671).\\n- Display Kubernetes context name in pod label [#2634](https://github.com/containers/podman-desktop/pull/2634).\\n- Add Docker compatibility button using flatpak-spawn [#1925](https://github.com/containers/podman-desktop/pull/1925).\\n- Improve UI consistency of Pull Image page [#2604](https://github.com/containers/podman-desktop/pull/2604).\\n\\n---\\n\\n## Notable Bug Fixes\\n\\n- Could not install extensions on Windows 10 [#2762](https://github.com/containers/podman-desktop/pull/2762).\\n- Could not use locally built images on Kubernetes [#2710](https://github.com/containers/podman-desktop/pull/2710).\\n- Dashboard still suggests update after installation [#2648](https://github.com/containers/podman-desktop/pull/2648).\\n- Could not Play Kubernetes YAML to Podman on Windows [#2594](https://github.com/containers/podman-desktop/pull/2594).\\n- Pod label wasn\'t always shown in list [#2614](https://github.com/containers/podman-desktop/pull/2614).\\n- Dashboard button state was resetting [#2584](https://github.com/containers/podman-desktop/pull/2584).\\n- Change checkbox style so they don\'t look like stop buttons [#2723](https://github.com/containers/podman-desktop/pull/2723).\\n\\n---\\n\\n## Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better. In this\\nsprint we received pull requests from the following people:\\n\\n- [wangxiaolei](https://github.com/fatelei) in [#2602 - Add meaningful tooltips to build, pull, prune buttons](https://github.com/containers/podman-desktop/pull/2602)\\n- [AsciiWolf](https://github.com/AsciiWolf) in [#2607 - fix typing error in Flathub name](https://github.com/containers/podman-desktop/pull/2607) and [#2609 - fix Flatpak install instructions](https://github.com/containers/podman-desktop/pull/2609)\\n- [Anders Bj\xf6rklund](https://github.com/afbjorklund) in [#2674 - Select engine for Lima provider](https://github.com/containers/podman-desktop/pull/2674)\\n\\n---\\n\\n## Final notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.1.0) and [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.1.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-1.0","metadata":{"permalink":"/blog/podman-desktop-release-1.0","source":"@site/blog/2023-05-17-release-1.0.md","title":"Release Notes - Podman Desktop 1.0","description":"Podman Desktop 1.0 has been released!","date":"2023-05-17T00:00:00.000Z","formattedDate":"May 17, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"kind","permalink":"/blog/tags/kind"},{"label":"openshift","permalink":"/blog/tags/openshift"}],"readingTime":5,"hasTruncateMarker":true,"authors":[{"name":"Tim deBoer","title":"Architect","url":"https://github.com/deboer-tim","imageURL":"https://github.com/deboer-tim.png","key":"deboer"}],"frontMatter":{"title":"Release Notes - Podman Desktop 1.0","description":"Podman Desktop 1.0 has been released!","slug":"podman-desktop-release-1.0","authors":["deboer"],"tags":["podman-desktop","release","kubernetes","kind","openshift"],"hide_table_of_contents":false,"image":"/img/blog/podman-desktop-release-1.0.jpg"},"prevItem":{"title":"Release Notes - Podman Desktop 1.1","permalink":"/blog/podman-desktop-release-1.1"},"nextItem":{"title":"Release Notes - Podman Desktop 0.15","permalink":"/blog/podman-desktop-release-0.15"}},"content":"import ReactPlayer from \'react-player\'\\n\\nPodman Desktop 1.0 Release! \ud83c\udf89\\n\\nWe still have many things planned, but with a little polish and a few more bug fixes we\\nfelt we\'ve reached a level of maturity and it is now time to declare our 1.0 release.\\n\\nThank you to everyone who has been with us on this journey so far! Please keep the\\nfeedback coming!\\n\\n\x3c!--Main Features--\x3e\\n\\n- **Highlighting Featured Extensions**: Easily find and install new extensions.\\n- **Featured Extensions**: Two new extensions supporting OpenShift.\\n- **Podman Machine as Root**: Ability to run a Podman machine as root.\\n- **UX and UI Improvements**: Opening external websites, editing numbers, and tooltips.\\n\\nPodman Desktop 1.0 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-1-0-hero](img/podman-desktop-release-1.0/podman-desktop-release-1.0.jpg)\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release Details\\n\\n### Highlighting Featured Extensions\\n\\nA critical part of our vision for Podman Deskop is the ability to install extensions to\\nsupport additional container engines, Kubernetes providers, or other tools. However, it\\nhas not been easy to discover new extensions.\\n\\nWith 1.0 we show a list of featured extensions in the **Welcome**\\n[#2354](https://github.com/containers/podman-desktop/pull/2354), the **Dashboard** and in\\n** Settings > Extensions**\\n[#2355](https://github.com/containers/podman-desktop/pull/2355). Check out the new\\nextensions for **Red Hat OpenShift Local** and the **Developer Sandbox for Red Hat OpenShift**!\\n\\n![Featured extensions](img/podman-desktop-release-1.0/featured-extensions.png)\\n\\n### Featured Extensions\\n\\nSpeaking of extensions, let\'s take a minute to turn the spotlight on these two!\\n\\nHave another idea for extending Podman Desktop? We would love to hear from you or see\\nwhat you can create with the [Extension documentation](/docs/extensions),\\nand feature your extension here.\\n\\n#### Red Hat OpenShift Local\\n\\nOpenShift Local is a fully-featured single-node OpenShift cluster designed to run on your local computer.\\nWith this extension you can install, start/stop, and deploy pods or YAML to OpenShift Local,\\nallowing you to test your applications on a full OpenShift environment, ensuring a consistent\\nexperience between development, test, and production.\\n\\nThe recent addition of the MicroShift preset provides a lighter, optimized option that\\nstarts faster and uses less resources for deployments that still want OpenShift compatibility\\nwithout the full set of OpenShift services.\\n\\n![OpenShift Local](img/podman-desktop-release-1.0/openshift-local.png)\\n\\n#### Developer Sandbox for Red Hat OpenShift\\n\\nThe OpenShift Developer Sandbox is a free, cloud-based OpenShift environment that allows developers to\\ncreate, build, and deploy applications to OpenShift for 30 days. With this extension you can sign up\\nand easily deploy pods or YAML to a hosted OpenShift environment without a local installation or\\nleaving Podman Desktop.\\n\\n![Developer Sandbox](img/podman-desktop-release-1.0/sandbox.png)\\n\\n### Podman Machine as Root\\n\\nWhen creating a Podman machine you can now decide to run as root [#2427](https://github.com/containers/podman-desktop/pull/2427). This is a prerequisite for some scenarios, such as running Kind on Windows.\\n\\n![Podman machine as root](img/podman-desktop-release-1.0/podman-root.png)\\n\\n### Other UI and UX Improvements\\n\\n#### Prompt to Open External Website\\n\\nIn the previous release links to external websites were blocked due to the security risk.\\nIn 1.0 you can click to see the URL and have the option of opening or copying it\\n[#2414](https://github.com/containers/podman-desktop/pull/2414).\\n\\n![External link dialog](img/podman-desktop-release-1.0/external-link.png)\\n\\n#### Editable Numeric Preferences\\n\\nTired of clicking +, +, +? Us too. Numeric preferences are now editable so\\nyou can directly enter the value you want\\n[#2368](https://github.com/containers/podman-desktop/pull/2368).\\n\\n![Editing numbers](img/podman-desktop-release-1.0/edit-number.png)\\n\\n#### Navigation tooltips\\n\\nWe like our new navigation bar, but the tooltips were slow to appear. This made it harder for new\\nusers to discover the pages and for power users to see the container/pod/image counts. The\\ntooltips are now a little nicer and appear immediately\\n[#2286](https://github.com/containers/podman-desktop/pull/2286).\\n\\n![Navigation tooltips](img/podman-desktop-release-1.0/nav-tooltips.png)\\n\\n---\\n\\n## Other Notable Enhancements\\n\\n- If you use a non-default Podman machine you are now prompted to make it the default, so\\n that command line tools will use the same machine [#2205](https://github.com/containers/podman-desktop/pull/2205).\\n\\n- Extensions can now be installed without requiring a running local container engine\\n [#2273](https://github.com/containers/podman-desktop/pull/2273).\\n\\n- When extensions fail to load there is a new state (failed!) and an error message\\n to help you fix or report the problem [#2424](https://github.com/containers/podman-desktop/pull/2424).\\n\\n- The showInputBox API has support for Markdown [#2418](https://github.com/containers/podman-desktop/pull/2418).\\n\\n---\\n\\n## Notable Bug Fixes\\n\\n- Fixed shared status when using multiple Podman 4.5 machines [#2441](https://github.com/containers/podman-desktop/pull/2441).\\n- Fixed hang on exit when telemetry is unreachable [#2431](https://github.com/containers/podman-desktop/pull/2431).\\n- Reduced initial Podman REST API calls to improve performance [#2419](https://github.com/containers/podman-desktop/pull/2419).\\n- **Play Kubernetes YAML** now honors the namespace [#2509](https://github.com/containers/podman-desktop/pull/2509).\\n- **Container** list was not remembering expand/collapsed status [#2491](https://github.com/containers/podman-desktop/pull/2491).\\n- Clear previous error when installing Docker extension [#2469](https://github.com/containers/podman-desktop/pull/2469).\\n- Ensure correct path with running Kind CLI [#2455](https://github.com/containers/podman-desktop/pull/2455).\\n- Use IPv4 over IPv6 by default [#2398](https://github.com/containers/podman-desktop/pull/2398).\\n- When changing the Kubernetes pod name, change the app name to match [#2389](https://github.com/containers/podman-desktop/pull/2389).\\n- Fixed incorrect pod status in **Containers** view [#2387](https://github.com/containers/podman-desktop/pull/2387).\\n- **Dashboard** wasn\'t correctly refreshing Podman status [#2359](https://github.com/containers/podman-desktop/pull/2359).\\n\\n---\\n\\n## Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better. In this final\\nsprint we received pull requests from the following people:\\n\\n- [Taha Attari](https://github.com/TahaAttari) in [#2470 - Update docker command in importing-saved-containers.md](https://github.com/containers/podman-desktop/pull/2470)\\n- [Jason Greene](https://github.com/n1hility) in [#2431 - Fix hang on exit when telemetry endpoint is unreachable](https://github.com/containers/podman-desktop/pull/2431)\\n- [Anders Bj\xf6rklund](https://github.com/afbjorklund) in [#2571 - Fix the location of the lima podman socket](https://github.com/containers/podman-desktop/pull/2571) and [#2572 - Fix the state of the lima container provider](https://github.com/containers/podman-desktop/pull/2572)\\n- [Tucker Chapman](https://github.com/tuckerrc) in [#2567 - Add example image name in placeholder](https://github.com/containers/podman-desktop/pull/2567)\\n\\nThere are now a total of 54 people (and two bots!) who have contributed PRs to Podman Desktop, and we\'d\\nlike to extend an extra thanks to all of those outside of the immediate development team who contributed\\nto get us here:\\n\\n[afbjorklund](https://github.com/afbjorklund),\\n[alv67](https://github.com/alv67),\\n[anjannath](https://github.com/anjannath),\\n[ankanroy-code](https://github.com/ankanroy-code),\\n[arixmkii](https://github.com/arixmkii),\\n[cblecker](https://github.com/cblecker),\\n[cfergeau](https://github.com/cfergeau),\\n[chevdor](https://github.com/chevdor),\\n[chrisjsimpson](https://github.com/chrisjsimpson),\\n[cu8code](https://github.com/cu8code),\\n[doehyunbaek](https://github.com/doehyunbaek),\\n[dylanmtaylor](https://github.com/dylanmtaylor),\\n[eidottermihi](https://github.com/eidottermihi),\\n[elervik](https://github.com/elervik),\\n[emmanuelbernard](https://github.com/emmanuelbernard),\\n[evanfpearson](https://github.com/evanfpearson),\\n[gorkem](https://github.com/gorkem),\\n[idjohnson](https://github.com/idjohnson),\\n[imphil](https://github.com/imphil),\\n[iongion](https://github.com/iongion),\\n[jlosito](https://github.com/jlosito),\\n[KevinAtSesam](https://github.com/KevinAtSesam),\\n[lsm5](https://github.com/lsm5),\\n[Mitch9378](https://github.com/Mitch9378),\\n[n1hility](https://github.com/n1hility),\\n[osslate](https://github.com/osslate),\\n[PatentLobster](https://github.com/PatentLobster),\\n[pwright](https://github.com/pwright),\\n[rdwz](https://github.com/rdwz),\\n[redhatrises](https://github.com/redhatrises),\\n[rhatdan](https://github.com/rhatdan),\\n[RobotSail](https://github.com/RobotSail),\\n[rohit-rambade](https://github.com/rohit-rambade),\\n[rsvoboda](https://github.com/rsvoboda),\\n[sfrunza13](https://github.com/sfrunza13),\\n[shemanaev](https://github.com/shemanaev),\\n[sstosh](https://github.com/sstosh),\\n[stickster](https://github.com/stickster),\\n[TahaAttari](https://github.com/TahaAttari),\\n[ths83](https://github.com/ths83),\\n[Tony-Sol](https://github.com/Tony-Sol),\\n[tuckerrc](https://github.com/tuckerrc),\\n[ucomesdag](https://github.com/ucomesdag),\\n[xbabalov](https://github.com/xbabalov),\\n[zezo2019](https://github.com/zezo2019).\\n\\n---\\n\\n## Final notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.0.0) and [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.0.1).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-0.15","metadata":{"permalink":"/blog/podman-desktop-release-0.15","source":"@site/blog/2023-05-02-release-0.15.md","title":"Release Notes - Podman Desktop 0.15","description":"Podman Desktop 0.15 has been released!","date":"2023-05-02T00:00:00.000Z","formattedDate":"May 2, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"kind","permalink":"/blog/tags/kind"}],"readingTime":3.685,"hasTruncateMarker":true,"authors":[{"name":"Tim deBoer","title":"Architect","url":"https://github.com/deboer-tim","imageURL":"https://github.com/deboer-tim.png","key":"deboer"}],"frontMatter":{"title":"Release Notes - Podman Desktop 0.15","description":"Podman Desktop 0.15 has been released!","slug":"podman-desktop-release-0.15","authors":["deboer"],"tags":["podman-desktop","release","kubernetes","kind"],"hide_table_of_contents":false,"image":"/img/blog/podman-desktop-release-0.15.webp"},"prevItem":{"title":"Release Notes - Podman Desktop 1.0","permalink":"/blog/podman-desktop-release-1.0"},"nextItem":{"title":"Setting up and running a Kubernetes cluster locally with Podman Desktop","permalink":"/blog/running-a-local-kubernetes-cluster-with-podman-desktop"}},"content":"import ReactPlayer from \'react-player\'\\n\\nPodman Desktop 0.15 - Cleanliness is next to Podliness!\\n\\nIt has only been two weeks since our last release, but we really wanted to complete a few scenarios,\\nfix a few bugs, and show off several design updates and UI improvements that we have been working on.\\n\\n\x3c!--Main Features--\x3e\\n\\n- **Podman Version**: Podman 4.5 now included in Windows and Mac installers.\\n- **Kind Ingress**: Creating an ingress to expose services outside the Kind cluster.\\n- **Podliness**: Ability to choose external ports when podifying containers.\\n- **Cleanliness**: New navigation bar, dialog, and palette update.\\n- **UX and UI Improvements**: Markdown support for extensions.\\n\\nPodman Desktop 0.15 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-0-15-hero](img/podman-desktop-release-0.15/podman-desktop-release-0.15.webp)\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release Details\\n\\n### Update to Podman v4.5.O\\n\\nPodman Desktop 0.15 embeds [Podman 4.5.0](https://github.com/containers/podman/releases/tag/v4.5.0) in\\nWindows and macOS installers [#2115](https://github.com/containers/podman-desktop/issues/2115).\\n\\n### Kind Ingress\\n\\nWait a minute, didn\'t we enable this last release? Well yes, last time we did add support for installing\\nthe Contour ingress controller on Kind [#1675](https://github.com/containers/podman-desktop/issues/1675),\\nbut you still couldn\'t access your containers without the corresponding ingress.\\n\\nThis release adds a simple checkbox you can use when deploying to Kind to create an ingress and\\nmake your service accessible [#1322](https://github.com/containers/podman-desktop/issues/1322).\\n\\n\\n\\n### Podliness: Ability to Choose External Ports when Podifying Containers\\n\\nWhen you create a pod from of a set of containers (Podifying!), you probably don\'t want to expose every\\nsingle port from every container to the world. With an updated panel you can now see which ports each container\\nexposes, pick which should remain visible outside the pod, and which are for internal use\\n[#2232](https://github.com/containers/podman-desktop/pull/2232).\\n\\n![Podify page](https://user-images.githubusercontent.com/49404737/234527674-ed14f52c-8f66-445f-8038-c8135bb61136.gif)\\n\\n### Cleanliness: New Navigation Bar, Dialogs, and Palette\\n\\nIt was time to catch up on some design ideas and do some UI cleanup!\\n\\n#### New Navgation Bar\\n\\nThe navigation bar is now always fixed on the left size, without labels. This opens up more space\\nfor the content on each page, and is easier to jump in and out of ** Settings**.\\n[#2167](https://github.com/containers/podman-desktop/issues/2167)\\n\\n![Navigation bar](img/podman-desktop-release-0.15/navigation.png)\\n\\n#### Updated Dialogs\\n\\nWe wanted messages and dialog boxes to feel a bit more integrated, so we have a new message box\\n[#1808](https://github.com/containers/podman-desktop/pull/1808) and use it for all dialogs opened by\\nextensions, pruning containers/pods/images/volumes [#2138](https://github.com/containers/podman-desktop/pull/2138),\\nand updating Podman Desktop itself [#2249](https://github.com/containers/podman-desktop/pull/2249).\\n\\n![Dialog](img/podman-desktop-release-0.15/dialog.png)\\n\\n#### Colors\\n\\nWe spent some time tweaking colors and closing on our final palette\\n[#2199](https://github.com/containers/podman-desktop/pull/2199), updating the colors in the terminal & detail page\\n[#2222](https://github.com/containers/podman-desktop/pull/2222), tweaking the navigation and main page colors\\n[#2223](https://github.com/containers/podman-desktop/pull/2223),\\nand improving the look of forms [#2156](https://github.com/containers/podman-desktop/issues/2156).\\n\\nWe\'re not done yet, but hopefully you will notice a more polished, consistent, good-looking application!\\n\\n### Other UI and UX Improvements\\n\\n#### Markdown Support for Extensions\\n\\nWe added a new component to display markdown [#2219](https://github.com/containers/podman-desktop/pull/2219) and\\nenabled it in preferences [#2253](https://github.com/containers/podman-desktop/pull/2253), and\\nprovider properties/creation pages [#2152](https://github.com/containers/podman-desktop/issues/2152).\\nWe can now embed links and other formatting in preferences, and extensions can use them in many places, for example:\\n\\n![Markdown](img/podman-desktop-release-0.15/markdown.png)\\n\\n---\\n\\n## Other Notable Enhancements\\n\\n- We know which **Settings** page is used the most often, so now it\'s the default: ** Settings > Resources** [#2105](https://github.com/containers/podman-desktop/issues/2105).\\n\\n- Extensions can now use the Tasks API to let long running tasks continue in the background [#2019](https://github.com/containers/podman-desktop/issues/2019) and the existing withProgress API also uses the task manager now\\n [#2187](https://github.com/containers/podman-desktop/pull/2187).\\n\\n![Task API](https://user-images.githubusercontent.com/695993/233560830-85cfa685-5dcd-4efa-9fae-730a8a9eef3b.gif)\\n\\n- Images are now sorted by age [#2311](https://github.com/containers/podman-desktop/pull/2311).\\n\\n- When you start/stop a container or pod, the button is now animated instead of having an separate spinner\\n [#2101](https://github.com/containers/podman-desktop/issues/2101).\\n\\n- The ** Settings > Preferences** page now has a search bar [#2128](https://github.com/containers/podman-desktop/pull/2128).\\n\\n![Search preferences](img/podman-desktop-release-0.15/prefs.png)\\n\\n- The Help page has been updated [#431](https://github.com/containers/podman-desktop/issues/431).\\n\\n![Updated Help](img/podman-desktop-release-0.15/help.png)\\n\\n---\\n\\n## Notable Bug Fixes\\n\\n- There was no way to see log or outcome if you leave the Kind cluster creation page [#2079](https://github.com/containers/podman-desktop/issues/2079).\\n- Kind image load doesn\'t show a notification [#2225](https://github.com/containers/podman-desktop/issues/2225).\\n- Fix odd selection in ** Settings > Extensions** [#2130](https://github.com/containers/podman-desktop/issues/2130).\\n- Menus are now cleaned up properly when extensions are stopped [#2188](https://github.com/containers/podman-desktop/pull/2188).\\n- Kind clusters are now cleaned up when Podman machine is stopped [#2306](https://github.com/containers/podman-desktop/pull/2306).\\n\\n---\\n\\n## Final notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.15.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"running-a-local-kubernetes-cluster-with-podman-desktop","metadata":{"permalink":"/blog/running-a-local-kubernetes-cluster-with-podman-desktop","source":"@site/blog/2023-04-19-running-a-local-kubernetes-cluster-with-podman-desktop.md","title":"Setting up and running a Kubernetes cluster locally with Podman Desktop","description":"Setting up and running a Kubernetes cluster locally with Podman Desktop","date":"2023-04-19T00:00:00.000Z","formattedDate":"April 19, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"story","permalink":"/blog/tags/story"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"kind","permalink":"/blog/tags/kind"}],"readingTime":8.86,"hasTruncateMarker":true,"authors":[{"name":"Fabrice Flore-Thebault","title":"Technical writer","url":"https://github.com/themr0c","imageURL":"https://github.com/themr0c.png","key":"themr0c"}],"frontMatter":{"title":"Setting up and running a Kubernetes cluster locally with Podman Desktop","description":"Setting up and running a Kubernetes cluster locally with Podman Desktop","slug":"running-a-local-kubernetes-cluster-with-podman-desktop","authors":["themr0c"],"tags":["podman-desktop","story","kubernetes","kind"],"hide_table_of_contents":false},"prevItem":{"title":"Release Notes - Podman Desktop 0.15","permalink":"/blog/podman-desktop-release-0.15"},"nextItem":{"title":"Release Notes - Podman Desktop 0.14","permalink":"/blog/podman-desktop-release-0.14"}},"content":"In this blog post you will learn to use Podman Desktop to run the [Kubernetes documentation example: Deploying PHP Guestbook application with Redis](https://kubernetes.io/docs/tutorials/stateless-application/guestbook/).\\n\\nOn the agenda:\\n\\n1. Installing Podman Desktop.\\n1. Installing and initializing your container engine: Podman.\\n1. Installing and starting your local Kubernetes provider: Kind.\\n1. Starting the Redis leader.\\n1. Starting and scaling the Redis followers.\\n1. Starting and exposing the Guestbook frontend.\\n\\n\x3c!--truncate--\x3e\\n\\n## Installing Podman Desktop\\n\\nYou need Podman Desktop.\\n\\n1. Go to [Podman Desktop installation documentation](/docs/installation).\\n1. Click on your platform name: [Windows](/docs/installation/windows-install), [macOS](/docs/installation/macos-install), or [Linux](/docs/installation/linux-install).\\n1. Follow the instructions. Stick to the default installation method.\\n1. Start **Podman Desktop**.\\n\\nAt this point, you have a graphical user interface to:\\n\\n- Install Podman and Kind.\\n- Control and work with your container engines and Kubernetes clusters.\\n- Run your application on your container engine and migrate it to Kubernetes.\\n\\n## Installing and initializing your container engine: Podman\\n\\nPodman Desktop can control various container engines, such as:\\n\\n- Docker\\n- Lima\\n- Podman\\n\\nConsider installing the Podman container engine for:\\n\\n- Added security\\n- No daemon\\n- Open source\\n\\nContainers are a Linux technology.\\n\\n- On Linux, you can install Podman natively.\\n See: [Installing Podman on Linux](https://podman.io/docs/installation#installing-on-linux).\\n- On macOS and Windows, Podman requires to run in a Linux virtual machine: the Podman machine.\\n Use Podman Desktop to install Podman and initialize your Podman machine:\\n\\n#### Procedure\\n\\n1. Open Podman Desktop **Dashboard**\\n1. The **Dashboard** displays _Podman Desktop was not able to find an installation of Podman_.\\n1. Click on **Install**.\\n1. Podman Desktop checks the prerequisites to install Podman Engine. When necessary, follow the instructions to install prerequisites.\\n1. Podman displays the dialog: _Podman is not installed on this system, would you like to install Podman?_. Click on **Yes** to install Podman.\\n1. Click on **Initialize and start**.\\n\\n#### Verification\\n\\n- The **Dashboard** displays _Podman is running_.\\n\\n ![Podman is running](img/running-a-local-kubernetes-cluster-with-podman-desktop/podman-is-running.png)\\n\\nAt this point, you can start working with containers.\\n\\n## Installing and starting your local Kubernetes provider: Kind\\n\\nYou want to deploy your application to a local Kubernetes cluster.\\n\\nPodman Desktop can help you run Kind-powered local Kubernetes clusters on a container engine, such as Podman.\\n\\nPodman Desktop helps you [installing the `kind` CLI](/docs/kubernetes/kind/installing-kind):\\n\\n1. In the status bar, click on **Kind**, and follow the prompts.\\n1. When the `kind` CLI is available, the status bar does not display **Kind**.\\n1. On Windows, [configure Podman in rootful mode](/docs/kubernetes/kind/configuring-podman-for-kind-on-windows)\\n\\n ```shell-session\\n $ podman system connection default podman-machine-default-root\\n ```\\n\\n1. Go to ** Settings > Resources**\\n1. In the **\\"Podman Podman** tile, click on the **** icon to restart the Podman container engine.\\n1. In the **\\"Kind Kind** tile, click on the **Create new** button.\\n 1. **Name**: enter `kind-cluster`.\\n 1. **Provider Type**: select `podman`.\\n 1. **HTTP Port**: select `9090`.\\n 1. **HTTPS Port**: select `9443`.\\n 1. **Setup an ingress controller**: `Enabled`\\n 1. Click the **Create** button.\\n ![Create a Kind cluster screen](img/running-a-local-kubernetes-cluster-with-podman-desktop/create-a-kind-cluster.png)\\n1. After successful creation, click on the **Go back to resources** button\\n\\n#### Verification\\n\\n1. In ** Settings > Resources** your Kind cluster is running/\\n\\n ![Kind cluster is running](img/running-a-local-kubernetes-cluster-with-podman-desktop/kind-cluster-is-running.png)\\n\\n1. In the **Podman Desktop** tray, open the **Kubernetes** menu: you can set the context to your Kind cluster: `kind-kind-cluster`.\\n\\n ![Kind cluster Kubernetes context in the tray](img/running-a-local-kubernetes-cluster-with-podman-desktop/kind-cluster-context-in-the-tray.png)\\n\\n At this point, you can start working with containers, and your local Kubernetes cluster.\\n\\n#### Additional resources\\n\\n- [Creating a local Kind-powered Kubernetes cluster](/docs/kubernetes/kind/creating-a-kind-cluster)\\n\\n## Starting the Redis leader\\n\\nThe Guestbook application uses Redis to store its data.\\n\\nWith Podman Desktop, you can prepare the Redis leader image and container on your local container engine, and deploy the results to a Kubernetes pod and service.\\nThis is functionally equal to the `redis-leader` deployment that the Kubernetes example propose.\\n\\n#### Procedure\\n\\n1. Open ** Images > Pull an image**.\\n 1. **Image to Pull**: enter `docker.io/redis:6.0.5`\\n 1. Click **Pull image** to pull the image to your container engine local image registry.\\n 1. Click **Done** to get back to the images list.\\n1. ** Search images**: enter `redis:6.0.5` to find the image.\\n1. Click **** to open the **Create a container from image** dialog.\\n 1. **Container name**: enter `leader`,\\n 1. **Local port for `6379/tcp`**: `6379`.\\n 1. Click ** Start Container** to start the container in your container engine.\\n1. ** Search containers**: enter `leader` to find the running container.\\n1. Click **** to stop the container, and leave the `6379` port available for the Redis follower container.\\n\\n1. Click ** > Deploy to Kubernetes** to open the **Deploy generated pod to Kubernetes** screen.\\n\\n 1. **Pod Name**: enter `redis-leader`.\\n 1. **Use Kubernetes Services**: select **Replace `hostPort` exposure on containers by Services. It is the recommended way to expose ports, as a cluster policy might prevent to use `hostPort`.**\\n 1. **Expose service locally using Kubernetes Ingress**: deselect **Create a Kubernetes ingress to get access to the ports that this pod exposes, at the default ingress controller location. Example: on a default Kind cluster created with Podman Desktop: `http://localhost:9090`. Requirements: your cluster has an ingress controller`**.\\n 1. **Kubernetes namespaces**: select `default`.\\n 1. Click ** Deploy**.\\n ![Deploy generated leader pod to Kubernetes screen](img/running-a-local-kubernetes-cluster-with-podman-desktop/deploy-generated-leader-pod-to-kubernetes.png)\\n 1. Wait for the pod to reach the state: **Phase: Running**.\\n 1. Click **Done**.\\n\\n#### Verification\\n\\n- The ** Pods** screen lists the running `redis-leader` pod.\\n\\n ![leader pod is running](img/running-a-local-kubernetes-cluster-with-podman-desktop/leader-pod-is-running.png)\\n\\n## Starting the Redis followers\\n\\nAlthough the Redis leader is a single Pod, you can make it highly available and meet traffic demands by adding a few Redis followers, or replicas.\\n\\n**With Podman Desktop, you can prepare the Redis follower image and container on your local container engine, and deploy the results to Kubernetes pods and services.**\\nThis is functionally equal to the `redis-follower` deployment that the Kubernetes example propose.\\n\\n#### Procedure\\n\\n1. Open ** Images > Pull an image**.\\n 1. **Image to Pull**: enter `gcr.io/google_samples/gb-redis-follower:v2`\\n 1. Click **Pull image** to pull the image to your container engine local image registry.\\n 1. Click **Done** to get back to the images list.\\n1. ** Search images**: enter `gb-redis-follower:v2` to find the image.\\n1. Click **** to open the **Create a container from image** dialog.\\n 1. **Container name**: enter `follower`,\\n 1. **Local port for `6379/tcp`**: `6379`.\\n 1. Click ** Start Container** to start the container in your container engine.\\n1. ** Search containers**: enter `follower` to find the running container.\\n1. Click **** to stop the container: you do not need it to run in the container engine.\\n1. Click ** > Deploy to Kubernetes** to open the **Deploy generated pod to Kubernetes** screen.\\n 1. **Pod Name**: enter `redis-follower`.\\n 1. **Use Kubernetes Services**: select **Replace `hostPort` exposure on containers by Services. It is the recommended way to expose ports, as a cluster policy might prevent to use `hostPort`.**\\n 1. **Expose service locally using Kubernetes Ingress**: deselect **Create a Kubernetes ingress to get access to the ports that this pod exposes, at the default ingress controller location. Example: on a default Kind cluster created with Podman Desktop: `http://localhost:9090`. Requirements: your cluster has an ingress controller`**.\\n 1. **Kubernetes namespaces**: select `default`.\\n 1. Click ** Deploy**.\\n ![Deploy generated follower pod to Kubernetes screen](img/running-a-local-kubernetes-cluster-with-podman-desktop/deploy-generated-follower-pod-to-kubernetes.png)\\n 1. Wait for the pod to reach the state: **Phase: Running**.\\n 1. Click **Done**.\\n1. To add replicas, repeat the last step with another **Pod Name** value.\\n\\n#### Verification\\n\\n- The ** Pods** screen lists the running `redis-follower` pods.\\n\\n ![follower pods are running](img/running-a-local-kubernetes-cluster-with-podman-desktop/follower-pods-are-running.png)\\n\\n## Starting the default frontend\\n\\nNow that you have the Redis storage of your Guestbook up and running, start the Guestbook web servers.\\nLike the Redis followers, deploy the frontend using Kubernetes pods and services.\\n\\nThe Guestbook app uses a PHP frontend.\\nIt is configured to communicate with either the Redis follower or leader Services, depending on whether the request is a read or a write.\\nThe frontend exposes a JSON interface, and serves a jQuery-Ajax-based UX.\\n\\nWith Podman Desktop, you can prepare the Guestbook frontend image and container on your local container engine, and deploy the results to Kubernetes pods and services.\\nThis is functionally equal to the `frontend` deployment that the Kubernetes example propose.\\n\\n#### Procedure\\n\\n1. Open ** Images > Pull an image**.\\n 1. **Image to Pull**: enter `gcr.io/google_samples/gb-frontend:v5`\\n 1. Click **Pull image** to pull the image to your container engine local image registry.\\n 1. Wait for the pull to complete.\\n 1. Click **Done** to get back to the images list.\\n1. ** Search images**: enter `gb-frontend:v5` to find the image.\\n1. Click **** to open the **Create a container from image** dialog.\\n 1. **Container name**: enter `frontend`,\\n 1. **Local port for `80/tcp`**: `9000`.\\n 1. Click ** Start Container** to start the container in your container engine.\\n1. ** Search containers**: enter `frontend` to find the running container.\\n1. Click **** to stop the container: you do not need it to run in the container engine.\\n1. Click ** > Deploy to Kubernetes** to open the **Deploy generated pod to Kubernetes** screen.\\n 1. **Pod Name**: enter `frontend`.\\n 1. **Use Kubernetes Services**: select **Replace `hostPort` exposure on containers by Services. It is the recommended way to expose ports, as a cluster policy might prevent to use `hostPort`.**\\n 1. **Expose service locally using Kubernetes Ingress**: select **Create a Kubernetes ingress to get access to the ports that this pod exposes, at the default ingress controller location. Example: on a default Kind cluster created with Podman Desktop: `http://localhost:9090`. Requirements: your cluster has an ingress controller`**.\\n 1. **Kubernetes namespaces**: select `default`.\\n 1. Click ** Deploy**.\\n ![Deploy generated frontend pod to Kubernetes screen](img/running-a-local-kubernetes-cluster-with-podman-desktop/deploy-generated-frontend-pod-to-kubernetes.png)\\n 1. Wait for the pod to reach the state: **Phase: Running**.\\n 1. Click **Done**.\\n\\n#### Verification\\n\\n1. The ** Pods** screen lists the running `frontend` pod.\\n\\n ![`frontend` pod is running](img/running-a-local-kubernetes-cluster-with-podman-desktop/frontend-pod-is-running.png)\\n\\n1. Go to `http://localhost:9090`: the Guestbook application is running."},{"id":"podman-desktop-release-0.14","metadata":{"permalink":"/blog/podman-desktop-release-0.14","source":"@site/blog/2023-04-14-release-0.14.md","title":"Release Notes - Podman Desktop 0.14","description":"Podman Desktop 0.14 has been released!","date":"2023-04-14T00:00:00.000Z","formattedDate":"April 14, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"kind","permalink":"/blog/tags/kind"}],"readingTime":4.025,"hasTruncateMarker":true,"authors":[{"name":"Tim deBoer","title":"Architect","url":"https://github.com/deboer-tim","imageURL":"https://github.com/deboer-tim.png","key":"deboer"}],"frontMatter":{"title":"Release Notes - Podman Desktop 0.14","description":"Podman Desktop 0.14 has been released!","slug":"podman-desktop-release-0.14","authors":["deboer"],"tags":["podman-desktop","release","kubernetes","kind"],"hide_table_of_contents":false},"prevItem":{"title":"Setting up and running a Kubernetes cluster locally with Podman Desktop","permalink":"/blog/running-a-local-kubernetes-cluster-with-podman-desktop"},"nextItem":{"title":"Release Notes - Podman Desktop 0.13","permalink":"/blog/podman-desktop-release-0.13"}},"content":"import ReactPlayer from \'react-player\'\\n\\nPodman Desktop 0.14 - Our Kind-est release yet!\\n\\nWe have been working on a Kind extension for a while now, and decided it is time to promote it\\ninto a release just in time for KubeCon and CloudNativeCon Europe!\\n\\nWe\'re especially excited about releasing Kind because it finally shows the full purpose\\nof Podman Desktop: not just local container engines, but Kubernetes too. More importantly,\\nproviding tools that allow you to manage both environments and seamlessly move between them.\\n\\nSome of these features were available in development mode over the last few releases,\\nbut since they are now in the release build, we will do a full roundup and talk about\\nall the Kind features.\\n\\n\x3c!--Main Features--\x3e\\n\\n- **Kind Installation**: Install Kind from the status bar\\n- **Manage Kind Clusters**: Create and manage Kind clusters from ** Settings > Resources**\\n- **Using Kind**: Deploying YAML and sharing images to a cluster\\n- **Kind Ingress**: Install a Contour ingress controller\\n- **UX and UI Improvements**: Updated preferences and telemetry prompt\\n\\nPodman Desktop 0.14 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-0-14-hero](img/podman-desktop-release-0.14/podman-desktop-release-0.14.png)\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release details\\n\\n### Kind Installation\\n\\nGet Kind up and running in seconds! The Kind extension is now bundled as part of Podman Desktop\\n[1421](https://github.com/containers/podman-desktop/issues/1421)\\nand allows you to easily [install Kind directly from the status bar](/docs/kubernetes/kind/installing-kind)\\n[1257](https://github.com/containers/podman-desktop/issues/1257).\\n\\nThe installed `kind` CLI is available from the system shell [1516](https://github.com/containers/podman-desktop/issues/1516),\\nallowing you to open a terminal window to `kind get clusters` or work with other tools.\\n\\n### Manage Kind Clusters\\n\\nOnce Kind is installed (or if you already had it), you can manage your clusters in ** Settings > Resources**.\\nFrom here you can [create Kind clusters](/docs/kubernetes/kind/creating-a-kind-cluster),\\nstart/stop [1953](https://github.com/containers/podman-desktop/issues/1953)\\nor delete [1977](https://github.com/containers/podman-desktop/issues/1977) them.\\n\\n![kind-clusters](img/podman-desktop-release-0.14/kind-clusters.png)\\n\\nThe Kind control plane runs as a container. You will see this container\\nin the **Container** list and can also start or stop it from there.\\n\\n### Using Kind\\n\\nNow that you have Kind installed and running, what can you do with it?\\nIf you like terminals, you can always open one up and use the Kind CLI to\\n[interact with your cluster](https://kind.sigs.k8s.io/docs/user/quick-start/#interacting-with-your-cluster).\\n\\nWithin Podman Desktop we have started with two ways to interact with the cluster.\\nThe first is the ability to play local YAML files on your Kind (or any other Kubernetes!) cluster [1261](https://github.com/containers/podman-desktop/issues/1261). This allows you to take existing Kubernetes YAML definitons -\\nyour deployments, services, or other objects - and deploy it to the cluster.\\n\\n\\n\\nAs you deploy pods, they will automatically appear in the list of **Pods** [1263](https://github.com/containers/podman-desktop/issues/1263), allowing you to start, stop, and interact them just like pods running on Podman.\\n\\nOne of the most common uses is to deploy a container that you have been running on Podman, and this will fail\\nif the image is not available in Kind. To solve this we have made it easy to push images from\\nPodman to Kind [1448](https://github.com/containers/podman-desktop/issues/1448).\\n\\n![push-image-kind](img/podman-desktop-release-0.14/push-image-kind.png)\\n\\n### Kind Ingress\\n\\nIf you deploy a pod to Kind, you are also going to want to reach it! To do this you will need to install a load balancer or\\ningress controller so that the pod is accessible from outside the cluster. We made it easy to install the Contour ingress\\ncontroller while creating a Kind cluster [1675](https://github.com/containers/podman-desktop/issues/1675),\\nso if you created your cluster with Podman Desktop it is already there!\\n\\n![kind-ingress](img/podman-desktop-release-0.14/kind-ingress.png)\\n\\nWe have several other Kind and Kubernetes features planned to expand the supported scenarios, but hopefully this\\nmakes it easy to get started with Kind and shows where we\'re headed. As always, feedback is appreciated!\\n\\n### UI and UX improvements\\n\\n#### Updated Preferences\\n\\nThe ** Settings > Preferences** page has been updated with a new design [1913](https://github.com/containers/podman-desktop/pull/1913),\\nmaking it easier to see and change preferences. Changes are live, no more Update button.\\n\\n![preferences](https://user-images.githubusercontent.com/49404737/229498507-e754b55c-dcbd-486d-9ee3-a1fe3bed7271.gif)\\n\\n#### Telemetry Prompt\\n\\nThe prompt to enable or disable telemetry has been moved from its own dialog into the **Welcome** screen.\\n[1927](https://github.com/containers/podman-desktop/pull/1927)\\nThis is more usable, one less prompt, and solves a window-layering issue for some users!\\n\\n![telemetry prompt](https://user-images.githubusercontent.com/19958075/229577331-365a9a01-0426-4482-a95d-f5dfe39af90a.png)\\n\\n---\\n\\n## Other notable enhancements\\n\\n- Extension support for opening an external URL [2028](https://github.com/containers/podman-desktop/pull/2028) and\\n accessing the clipboard [2023](https://github.com/containers/podman-desktop/pull/2023)\\n\\n---\\n\\n## Documentation\\n\\nNaturally, we have a section in the documentation just for [Kind](https://podman-desktop.io/docs/kubernetes/kind).\\n\\n---\\n\\n## Notable bug fixes\\n\\n- Avoid a dialog box if unable to check for updates [2062](https://github.com/containers/podman-desktop/pull/2062)\\n- Unable to get to the Dashboard if Kind (or Kubernetes) cluster was not running [2052](https://github.com/containers/podman-desktop/issues/2052)\\n\\n---\\n\\n## Final notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.14.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-0.13","metadata":{"permalink":"/blog/podman-desktop-release-0.13","source":"@site/blog/2023-03-29-release-0.13.md","title":"Release Notes - Podman Desktop 0.13","description":"Podman Desktop 0.13 has been released!","date":"2023-03-29T00:00:00.000Z","formattedDate":"March 29, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"compose","permalink":"/blog/tags/compose"}],"readingTime":3.155,"hasTruncateMarker":true,"authors":[{"name":"Tim deBoer","title":"Architect","url":"https://github.com/deboer-tim","imageURL":"https://github.com/deboer-tim.png","key":"deboer"}],"frontMatter":{"title":"Release Notes - Podman Desktop 0.13","description":"Podman Desktop 0.13 has been released!","slug":"podman-desktop-release-0.13","authors":["deboer"],"tags":["podman-desktop","release","kubernetes","compose"],"hide_table_of_contents":false},"prevItem":{"title":"Release Notes - Podman Desktop 0.14","permalink":"/blog/podman-desktop-release-0.14"},"nextItem":{"title":"5 things to know about Podman Desktop for a Docker user","permalink":"/blog/5-things-to-know-for-a-docker-user"}},"content":"import ReactPlayer from \'react-player\'\\n\\nThis release note covers Podman Desktop 0.13 release changes.\\n\\n\x3c!--Main Features--\x3e\\n\\n- **Podman Version**: Podman 4.4.4 now included in Windows and Mac installers.\\n- **Compose**: Support for installing Docker Compose.\\n- **Extensions**: Improved extension support for Podman Desktop with additional capabilities.\\n- **UX and UI Improvements**: Welcome page, task manager, resources, and update alerts.\\n\\nPodman Desktop 0.13 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-0-13-hero](img/podman-desktop-release-0.13/podman-desktop-release-0.13.png)\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release details\\n\\n### Update to Podman v4.4.4\\n\\nPodman Desktop 0.13 embeds [Podman 4.4.4](https://github.com/containers/podman/releases/tag/v4.4.4) in\\nWindows and macOS installers [#1456](https://github.com/containers/podman-desktop/pull/1456).\\n\\n### Compose support\\n\\nYou can install Docker Compose from the Podman Desktop UI [#1578](https://github.com/containers/podman-desktop/pull/1578). This will allow you use Compose workflows using Podman.\\n\\n### Extensions\\n\\nTo make it easier to extend Podman Desktop we have:\\n\\n- Published the [Podman Desktop Extension API](https://www.npmjs.com/package/@podman-desktop/api) to npmjs [#1727](https://github.com/containers/podman-desktop/pull/1727)\\n- Documented [how to create, publish, and install your own extensions](https://podman-desktop.io/docs/extensions)\\n- Expanded the API for `QuickPickInput` [#1839](https://github.com/containers/podman-desktop/pull/1839)\\n\\n### UI and UX improvements\\n\\n#### Welcome page [#1726](https://github.com/containers/podman-desktop/pull/1726)\\n\\nThe first time every user starts Podman Desktop, they will see a welcome page:\\n\\n![welcome-page](https://user-images.githubusercontent.com/19958075/225682776-e016ba31-5bb9-41d5-87ed-f93caeb3fb84.png)\\n\\nNote that the Welcome page will only appear the first time you run Podman Desktop 0.13.0, and none of your settings or assets in Podman Desktop will be affected by it.\\nOver time, this page will be expanded to help with initial setup and configuration.\\n\\n#### New Task Manager [#1724](https://github.com/containers/podman-desktop/pull/1724)\\n\\nA new Task Manager has been added to the status bar to see the progress (or return to) long running tasks. To start with, building images [#1725](https://github.com/containers/podman-desktop/pull/1725) and Podman machine [#1742](https://github.com/containers/podman-desktop/pull/1742) are using the task manager.\\n\\n![task-manager](img/podman-desktop-release-0.13/task-manager.png)\\n\\n#### Updated Resources Settings [#1582](https://github.com/containers/podman-desktop/pull/1582)\\n\\nThe ** Settings > Resources** page has been updated with a new design, making it easier to see and control your providers from a single place.\\n\\n![resources](https://user-images.githubusercontent.com/49404737/221908815-595715fe-4c95-4087-89e0-45e5544ed5c9.gif)\\n\\nThe other settings pages have been updated for consistency with this new design.\\n\\n#### Update Alerts [#1827](https://github.com/containers/podman-desktop/pull/1827)\\n\\nA new alert button will appear in the status bar when future updates are available.\\n\\n\\n\\n#### Prune buttons [#1481](https://github.com/containers/podman-desktop/pull/1481), [#1482](https://github.com/containers/podman-desktop/pull/1482), [#1484](https://github.com/containers/podman-desktop/pull/1484)\\n\\nWe\'ve added buttons to prune unused volumes [#1481](https://github.com/containers/podman-desktop/pull/1481), images [#1482](https://github.com/containers/podman-desktop/pull/1482) and pods [#1484](https://github.com/containers/podman-desktop/pull/1484).\\n\\n![prune-image](img/podman-desktop-release-0.13/prune-image.png)\\n\\n---\\n\\n## Other notable enhancements\\n\\n- Kubernetes pods are now shown in the Pods view [#1312](https://github.com/containers/podman-desktop/pull/1312)\\n- Easy button to fix Docker compatibility mode on macOS [#1697](https://github.com/containers/podman-desktop/pull/1697)\\n- Display extension icons [#1058](https://github.com/containers/podman-desktop/pull/1058)\\n- API to cancel long running tasks [#1777](https://github.com/containers/podman-desktop/pull/1777)\\n\\n---\\n\\n## Documentation\\n\\nThe documentation has new content:\\n\\n- [How to create, publish, and install your own Podman Desktop extensions](https://podman-desktop.io/docs/extensions)\\n- [Using Compose](https://podman-desktop.io/docs/compose/podman-compose)\\n- [Restarting Kind](https://podman-desktop.io/docs/kubernetes/kind)\\n\\n---\\n\\n## Notable bug fixes\\n\\n- Periodically check and refresh Podman connection on Windows and Mac [#1662](https://github.com/containers/podman-desktop/pull/1662)\\n- Fix inconsistent Log view behaviour [#1710](https://github.com/containers/podman-desktop/pull/1710)\\n- Don\'t create route for regular Kubernetes clusters [#1707](https://github.com/containers/podman-desktop/pull/1707)\\n- Fix copy button on empty screen [#1804](https://github.com/containers/podman-desktop/pull/1804)\\n- Register extension tray items correctly [#1778](https://github.com/containers/podman-desktop/pull/1778) and handle updates [#1800](https://github.com/containers/podman-desktop/pull/1800)\\n\\n---\\n\\n## Community thank you\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop 0.13 even better:\\n\\n- [`Tony Soloveyv`](https://github.com/Tony-Sol) in [#1605 - Fix directories inconsistency in `~/.local/share/`](https://github.com/containers/podman-desktop/pull/1605)\\n- [`Oleg`](https://github.com/RobotSail) in [#1567 - Check for Flatpak when calling command from exec](https://github.com/containers/podman-desktop/pull/1567)\\n- [`Christoph Blecker`](https://github.com/cblecker) in [#1556 - Fix: Hide dock icon on macOS if starting minimized](https://github.com/containers/podman-desktop/pull/1556)\\n- [`Paul Wright`](https://github.com/pwright) in [#1604 - Docs: correct syntax of kind doc](https://github.com/containers/podman-desktop/pull/1604)\\n- [`Denis Golovin`](https://github.com/dgolovin) in [#1790 - Feat: add EventEmitter class to extension API](https://github.com/containers/podman-desktop/pull/1790)\\n- [`Christophe Fergeau`](https://github.com/cfergeau) in [#1642 - Fix: Pod list \\"an pod\\" typing error](https://github.com/containers/podman-desktop/pull/1642)\\n\\n## Final notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.13.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"5-things-to-know-for-a-docker-user","metadata":{"permalink":"/blog/5-things-to-know-for-a-docker-user","source":"@site/blog/2023-03-24-5-things-to-know-for-a-docker-user.md","title":"5 things to know about Podman Desktop for a Docker user","description":"Important things to know when switching from Docker Desktop to Podman Desktop","date":"2023-03-24T00:00:00.000Z","formattedDate":"March 24, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"docker","permalink":"/blog/tags/docker"},{"label":"migrating","permalink":"/blog/tags/migrating"}],"readingTime":4.275,"hasTruncateMarker":true,"authors":[{"name":"Florent Benoit","title":"Maintainer of Podman Desktop","url":"https://github.com/benoitf","imageURL":"https://github.com/benoitf.png","key":"benoitf"}],"frontMatter":{"title":"5 things to know about Podman Desktop for a Docker user","description":"Important things to know when switching from Docker Desktop to Podman Desktop","slug":"5-things-to-know-for-a-docker-user","authors":["benoitf"],"tags":["podman-desktop","docker","migrating"],"hide_table_of_contents":false},"prevItem":{"title":"Release Notes - Podman Desktop 0.13","permalink":"/blog/podman-desktop-release-0.13"},"nextItem":{"title":"Release Notes - Podman Desktop 0.12","permalink":"/blog/podman-desktop-release-0.12"}},"content":"The 5 things to know being a Docker user by using Podman Desktop:\\n\\n- **Use a single UI**: Podman Desktop works with several container engines, including Docker.\\n- The **compatibility mode**: How to ensure tools are working with Podman instead of Docker.\\n- **Compose** support: How to work with Compose files and Podman.\\n- **Kubernetes** support: How to use Kubernetes with Podman.\\n- **Security**: Use `rootless` mode or containers without root privileges.\\n\\n![5-things-to-know-for-a-docker-user-hero](img/5-things-to-know-for-a-docker-user/5-things-to-know-for-a-docker-user-hero.png)\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Use Podman Desktop to interact with containers running in Docker\\n\\nDocker Desktop provides a UI to interact with containers and images. But the UI depends on Docker API and it is not possible to use the UI with Docker and Podman at the same time.\\n\\nPodman Desktop is a multi-engine UI tool. The UI is compatible with the API of Docker and Podman. It means all containers and images from all the engines at the same time are visible in the UI.\\n\\nWhen migrating from Docker to Podman, you can use Podman Desktop to interact with containers running in Docker. Explore all commands and features of Podman Desktop and see all the resources from Docker.\\n\\n![Many container engines at the same time](img/5-things-to-know-for-a-docker-user/multiple-container-engines.png)\\n\\n## Docker compatibility mode\\n\\nUsing Podman with Podman Desktop or with the Podman CLI is straightforward. But some tools expect to find `docker` CLI or `docker.sock` socket. In this case, you have to use the compatibility mode of Podman.\\n\\n### Socket file compatibility\\n\\nThe socket compatibility mode is a feature of Podman that allows to bind the Podman socket under the Docker socket path.\\n\\nOn Windows the socket compatibility mode is always enabled by default. On macOS, by using the `.pkg installer` it is active by default. But when installing with `brew`, it will not be there because it requires some admin permissions.\\n\\nThat is not an issue because you can enable it by [invoking a CLI tool](https://podman-desktop.io/docs/migrating-from-docker/using-podman-mac-helper) that will setup the compatibility mode.\\n\\nFor example if you use [`TestContainers`](https://www.testcontainers.org/) in your Java project, you can use the compatibility mode to ensure that the tool will use Podman instead of Docker.\\n\\n### CLI compatibility\\n\\nIf you have scripts relying on `docker` CLI, you can use the compatibility mode to ensure that the tool is working with Podman instead of Docker.\\n\\nIf you have the `docker` CLI installed on your computer, you can use the socket file compatibility of docker to ensure that the tool is working with Podman engine instead of Docker.\\n\\nIf you do not have the `docker` CLI installed on your computer, you can [Create a script](https://podman-desktop.io/docs/migrating-from-docker/emulating-docker-cli-with-podman) called `docker` that will call the `podman` CLI\\n\\n**_NOTE:_** creating a shell prompt alias, for example `alias docker=podman`, will not work inside scripts that you call.\\n\\n## Compose\\n\\nAs a user of Docker, you might use `docker compose` (or `docker-compose`) to run some of your applications.\\n\\nFor now Podman does not include a `Compose` support directly in the CLI with a command `podman compose`.\\n\\n`Compose` can work with the Podman socket.\\n\\nBased on the compatibility mode (see [section about Docker compatibility mode](#docker-compatibility-mode)):\\n\\n- Enabled: you can use the `compose` binary to run your applications.\\n- Disabled: you need to [export the environment variable DOCKER_HOST](https://podman-desktop.io/docs/migrating-from-docker/using-the-docker_host-environment-variable) before running compose.\\n\\nYou can now use the `compose` binary to run your applications and it will use Podman engine.\\n\\nPodman Desktop has a `compose` extension that can fetch `compose` binary if not already available on the filesystem.\\n\\nPodman Desktop UI displays the containers created by `Compose` are in the same group.\\n\\n![Compose support in the UI](img/5-things-to-know-for-a-docker-user/compose-containers-in-ui.png)\\n\\n## Kubernetes\\n\\nIt is possible to start a Kubernetes cluster with Docker.\\n\\nPodman supports directly a subset of Kubernetes resources that you can use with `.yaml` files.\\n\\nFor example if you only want to create a `Pod` resource, you can use the `Play Kubernetes YAML` button from the `Containers` list screen with your `.yaml` file. No need to install or start a Kubernetes cluster.\\n\\n![Play Kubernetes YAML](img/5-things-to-know-for-a-docker-user/play-kubernetes-yaml.png)\\n\\nIt is possible to do the counter-part. Export the definition of a container or pod to a Kubernetes resource. You can use the `Generate kube` button from the kebab menu of a given container or pod.\\n\\n![Kubernetes generate](img/5-things-to-know-for-a-docker-user/kube-generate.png)\\n\\nPodman handles pods and in the Podman Desktop UI, you can see all the pods inside a Pod section. All containers inside the pod are in the same group.\\n\\n![Pods in the UI](img/5-things-to-know-for-a-docker-user/pods-in-ui.png)\\n\\n![Containers from pod](img/5-things-to-know-for-a-docker-user/containers-from-pod.png)\\n\\nAn experimental `kind` extension is bringing the creation of full-blown Kubernetes cluster with Podman.\\n\\n## Rootless mode\\n\\nOne of the difference of Docker and Podman is the way they handle containers. Docker requires root privileges to run containers by default. Podman can run containers without root privileges by default.\\n\\nIt means that for example, starting a container with a port < 1024 will not work. You need to use a port > 1024.\\n\\nIf you still need to create containers with a port < 1024, you can change the Podman machine configuration of the Podman Machine if you are on Windows or macOS.\\n\\nThe command is `podman machine --rootful` to enable the execution with root privileges or `podman machine --rootful=false` to switch back to rootless mode."},{"id":"podman-desktop-release-0.12","metadata":{"permalink":"/blog/podman-desktop-release-0.12","source":"@site/blog/2023-02-15-release-0.12.md","title":"Release Notes - Podman Desktop 0.12","description":"Podman Desktop 0.12 has been released!","date":"2023-02-15T00:00:00.000Z","formattedDate":"February 15, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"}],"readingTime":4.505,"hasTruncateMarker":true,"authors":[{"name":"Stevan Le Meur","title":"Product Manager","url":"https://github.com/slemeur","imageURL":"https://github.com/slemeur.png","key":"slemeur"}],"frontMatter":{"title":"Release Notes - Podman Desktop 0.12","description":"Podman Desktop 0.12 has been released!","slug":"podman-desktop-release-0.12","authors":["slemeur"],"tags":["podman-desktop","release","kubernetes"],"hide_table_of_contents":false},"prevItem":{"title":"5 things to know about Podman Desktop for a Docker user","permalink":"/blog/5-things-to-know-for-a-docker-user"},"nextItem":{"title":"Release Notes - Podman Desktop 0.11","permalink":"/blog/podman-desktop-release-0.11"}},"content":"import ReactPlayer from \'react-player\'\\n\\nThis release note covers Podman Desktop 0.12 release changes.\\n\\n\x3c!--Main Features--\x3e\\n\\n- **Podman Version**: Podman 4.4.1 now included in Windows and Mac installers.\\n- **Containers Configuration**: Configure port mappings for an image without exported ports.\\n- **Windows Home Support**: Podman Desktop now supports Windows Home Edition.\\n- **Start minimized**: Option to start Podman Desktop minimized to system tray.\\n- **UX and UI Improvements**: Consistent actions, placeholder for logs, unified icons and others.\\n\\nPodman Desktop 0.12 is now available. [Click here to download it](/downloads)!\\n\\n![podman-desktop-0-12-hero](img/podman-desktop-release-0.12/podman-desktop-release-0.12.png)\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release Details\\n\\n### Update to Podman v4.4.1 [#1456](https://github.com/containers/podman-desktop/pull/1456)\\n\\nPodman Desktop 0.12 embeds [Podman 4.4.1](https://github.com/containers/podman/releases/tag/v4.4.1) in Windows and macOS installers. Make sure to upgrade to benefit from the latest Podman features and bug fixes.\\n\\n### Configuring port mappings when an image has no exported port [#1265](https://github.com/containers/podman-desktop/pull/1265)\\n\\nWith the latest update, users can now add multiple local-to-remote port mappings when starting a container from an image that has no exported ports. This feature provides users with the flexibility to specify which ports on their local machine should map to which ports on the container, even if the container does not have any exported ports by default.\\n\\n![port-mapping](https://user-images.githubusercontent.com/49404737/215112797-86dcf3f0-121a-487e-a71f-ad41e91f93da.gif)\\n\\n### Installing Podman Dekstop on Windows Home Edition [#1268](https://github.com/containers/podman-desktop/pull/1268)\\n\\nPodman Desktop 0.12 offers the ability to be installed on Windows Home Edition. The mechanism uses Virtual Machine Platform detection, instead of hyper-v. WSL2 is still requires but can be installed along with the installation process.\\n\\n![install-windows-home-edition-2](https://user-images.githubusercontent.com/436777/215121429-7c757aaa-a838-43db-98a2-78ad368f407e.png)\\n\\n### Option to automatically minimize Podman Desktop on login [#1374](https://github.com/containers/podman-desktop/pull/1374)\\n\\nPodman Desktop now provides a \\"start minimized\\" option when users log in onto the laptop. This option, available from the application\'s settings, can be useful if users want to automatically launch Podman Desktop at log in, but prefer not to have the window visible on the screen. With this feature, you can ensure that Podman Desktop is up and running in the background without any interruption to your workflows.\\n\\n- Go to ** Settings > Preferences > Login: Minimize** to activate the option.\\n\\n![minimize-on-login](https://user-images.githubusercontent.com/6422176/216651424-bcf756fd-7554-4b24-a838-e3e2f798fe6e.png)\\n\\n### UI and UX Improvements\\n\\n#### Improved actions consistency [#1225](https://github.com/containers/podman-desktop/pull/1225)\\n\\nActions displayed in the list pages for Images and Containers have been reviewed and made consistent between other pages.\\n\\n![action-consistency-1](https://user-images.githubusercontent.com/19958075/214104678-2d4148d7-484e-41f9-9da9-aecee328ae2b.png)\\n\\nActions displayed in the header of the container\'s details page have been improved so that the actions are always displayed in the same order.\\n\\n![action-consistency-2](https://user-images.githubusercontent.com/19958075/214104663-64fa0601-bb79-49bf-8226-6a78a88d3622.png)\\n\\n#### Consistent status icons for Pods, Containers, Images and Volumes [#1326](https://github.com/containers/podman-desktop/pull/1326), [#1377](https://github.com/containers/podman-desktop/pull/1377), [#1459](https://github.com/containers/podman-desktop/pull/1459) and [#1245](https://github.com/containers/podman-desktop/pull/1245)\\n\\nThe status icons for Pods, Containers, Images, and Volumes have been unified and use consistent states.\\n\\n![pods-status-icon](https://user-images.githubusercontent.com/19958075/216671859-bdd8dca4-56b7-40a8-961a-dcb6e01be61e.png)\\n\\nIcons in empty screens have been updated to use the same consistent SVG icon as the status icons.\\n\\n![empty-screen-2](https://user-images.githubusercontent.com/436777/214577726-f4cfde7b-017a-499d-a2a9-e50d455ffaf0.png)\\n\\n#### Placeholder when logs for containers are being fetched [#1353](https://github.com/containers/podman-desktop/pull/1353)\\n\\nA placeholder is now displayed when logs are being fetched.\\n![placeholder-loading-logs](https://user-images.githubusercontent.com/49404737/216952505-899308ae-183e-487a-b6e5-28832a0b6452.gif)\\n\\n#### Fixed alignement in badges from the navigation sidebar [#1357](https://github.com/containers/podman-desktop/pull/1357)\\n\\nBadges in the sidebar are now aligned with the title of the section.\\n\\n![alignement-badges](https://user-images.githubusercontent.com/49404737/216336502-2a34dea3-fd41-4184-8cfe-9226d70da070.png)\\n\\n#### Enable/disable open browser action based on container state [#1395](https://github.com/containers/podman-desktop/pull/1395) and [#1397](https://github.com/containers/podman-desktop/pull/1397)\\n\\nThe action to open the browser if a port is opened in a container, is now disabled when the container is stopped. It is also hidden in the kebab menu.\\n\\n![enable-disable-container-actions](https://user-images.githubusercontent.com/49404737/217284414-1bdc820b-30a8-485e-b0f9-485229026696.gif)\\n\\n---\\n\\n## Other Notable Enhancements\\n\\n- Display extension icons [#1058](https://github.com/containers/podman-desktop/pull/1058)\\n- Solid Icons [#1267](https://github.com/containers/podman-desktop/pull/1276)\\n- Differentiate icons compared to status icons [#1268](https://github.com/containers/podman-desktop/pull/1298)\\n- Refactors window initializing [#1309](https://github.com/containers/podman-desktop/pull/1309)\\n- Change window creation background color to dark [#1310](https://github.com/containers/podman-desktop/pull/1310)\\n- Use Podman `machine inspect` to read the address to connect to the Podman machine [#1364](https://github.com/containers/podman-desktop/pull/1364)\\n- Update the editor content when the pod name changes, and disable the deploy button when empty [#1403](https://github.com/containers/podman-desktop/pull/1403)\\n- Ability to manually set color of tray icon for Windows and Linux [#1243](https://github.com/containers/podman-desktop/pull/1243)\\n- Better UI feedback when starting pods [#1242](https://github.com/containers/podman-desktop/pull/1242)\\n\\n---\\n\\n## Documentation\\n\\nThe documentation had many editorial reviews, and new content.\\n\\n- [Link to simple WSL2 installation instructions](/docs/installation/windows-install)\\n- [Refresh Windows Installation](/docs/installation/windows-install)\\n- [Revamped installation introduction](/docs/installation)\\n- [Reorganized Linux installation](/docs/installation/linux-install)\\n- [Installing Podman with OpenShift Local](/docs/onboarding/containers/installing-podman-with-openshift-local-on-windows)\\n- [Installing Podman Desktop on Windows in a restricted environment](/docs/installation/windows-install/installing-podman-desktop-and-podman-in-a-restricted-environment)\\n- [Fixed documentation on `podman-mac-helper` setup](/docs/migrating-from-docker/using-podman-mac-helper)\\n\\n---\\n\\n## Notable bug fixes\\n\\n- Fixed handling path with spaces on Windows when installing Podman [#1270](https://github.com/containers/podman-desktop/pull/1270)\\n- Removed padding from SVG icons [#1253](https://github.com/containers/podman-desktop/pull/1253)\\n- Website: fixed download links for Windows and macOS binaries [#1255](https://github.com/containers/podman-desktop/pull/1255)\\n- Fixed prettier commands on Windows [#1266](https://github.com/containers/podman-desktop/pull/1267)\\n- Fixed new xterm instance spawn when clicking the logs route [#1344](https://github.com/containers/podman-desktop/pull/1344)\\n- Fixed need to wait that telemetry has been initilized before proceeding [#1373](https://github.com/containers/podman-desktop/pull/1373)\\n- Fixed new xterm instance spawn when clicking the logs route in pod details[#1393](https://github.com/containers/podman-desktop/pull/1393)\\n- Fixed stop spinner if image cannot be retrieved [#1394](https://github.com/containers/podman-desktop/pull/1394)\\n- Fixed escape command with quotes only for Windows [#1462](https://github.com/containers/podman-desktop/pull/1462)\\n- Fixed random CRC status change [#1420](https://github.com/containers/podman-desktop/pull/1420)\\n\\n---\\n\\n## Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop 0.12 even better:\\n\\n- [Philipp Wagner](https://github.com/imphil) in [#1274 - Link to simple WSL2 installation instructions](https://github.com/containers/podman-desktop/pull/1274)\\n- [Arthur S](https://github.com/arixmkii) in [#1364 - Get podman machine socketPath from podman machine inspect first](https://github.com/containers/podman-desktop/pull/1364)\\n- [Mitch West](https://github.com/Mitch9378) in [#1428 - Fix old documentation for \'podman-mac-helper setup\'](https://github.com/containers/podman-desktop/pull/1428)\\n\\n## Final Notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.12.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-0.11","metadata":{"permalink":"/blog/podman-desktop-release-0.11","source":"@site/blog/2023-01-18-release-0.11.md","title":"Release Notes - Podman Desktop 0.11","description":"Podman Desktop 0.11 has been released!","date":"2023-01-18T00:00:00.000Z","formattedDate":"January 18, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"}],"readingTime":9.43,"hasTruncateMarker":true,"authors":[{"name":"Stevan Le Meur","title":"Product Manager","url":"https://github.com/slemeur","imageURL":"https://github.com/slemeur.png","key":"slemeur"}],"frontMatter":{"title":"Release Notes - Podman Desktop 0.11","description":"Podman Desktop 0.11 has been released!","slug":"podman-desktop-release-0.11","authors":["slemeur"],"tags":["podman-desktop","release","kubernetes"],"hide_table_of_contents":false},"prevItem":{"title":"Release Notes - Podman Desktop 0.12","permalink":"/blog/podman-desktop-release-0.12"},"nextItem":{"title":"Release Notes - Podman Desktop 0.10","permalink":"/blog/podman-desktop-release-0.10"}},"content":"import ReactPlayer from \'react-player\'\\n\\nThis release note covers Podman Desktop 0.11 release changes.\\n\\n- **Air-Gapped Installation**: New all-in-one binaries for air-gapped installation.\\n- **Feedback**: Submit feedback directly from Podman Desktop.\\n- **Docker Compatibility Mode**: Information about the Docker compatibility mode.\\n- **Proxy Setting**: Toggle on/off the proxy setting.\\n- **Deploy to Kubernetes**: Select the namespace to deploy to Kubernetes.\\n- **Registry Configuration**: Simplified registry configuration for well known registries.\\n- **UX/UI Improvements**: View pod\'s container logs, better visual feedback, configurable editor font size, and more.\\n\\nPodman Desktop 0.11 is now available. [Click here to download it](/downloads)!\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release Details\\n\\n### Air-Gapped installation [#1104](https://github.com/containers/podman-desktop/pull/1104) [#1120](https://github.com/containers/podman-desktop/pull/1120)\\n\\nFor users who are not able to connect to the internet, a new all-in-one (airgap) binary that includes the Podman Desktop application and the Podman binaries is now available for both Mac and Windows. When initializing a new Podman machine using all-in-one binaries, it\'ll use the embedded files and not grab them from internet:\\n\\n- on Mac, it embeds the qemu FCOS binaries.\\n- on Windows, it embeds the WSL binary.\\n\\nTo differentiate the air-gapped binaries from the regular ones, you can check the artifactname, they\'re containing \'airgap\' and are bigger.\\nPlease note, that those binaries are available only on releases and not the pre-releases.\\n\\nThere is also an optional way to provide a custom Podman machine image in the create machine form. By providing the path to the image you want, Podman Desktop will create a machine with that image. Leaving the field empty will use the default image (the one included in the binary).\\n\\n\\n\\n### Feedback within Podman Desktop [#1078](https://github.com/containers/podman-desktop/pull/1078)\\n\\nSubmitting feedback on Podman Desktop is getting easier as it is possible directly within the tool. This will help to get more information about the issues you are facing and will help us to improve the tool.\\n\\n\\n\\nPlease feel free to submit any feedback you have, we are looking forward to hearing from you!\\n\\n### Docker compatibility mode [#1047](https://github.com/containers/podman-desktop/pull/1047)\\n\\nThe Docker compatibility mode is a feature that allows to use Podman as a drop-in replacement for Docker. It relies on the Docker socket helper provided with Podman and automatically handle the local setup of Podman path to the Docker socket. Tools like [Testcontainers](https://www.testcontainers.org/) or others are relying on this to communicate to the container engine.\\n\\nIn this new version of Podman Desktop, we are now providing information to the user about the status of this compatibility mode directly on the dashboard page. The way it works is the following:\\n\\n- When Docker is running: the socket is pointing to Docker.\\n- When Podman is starting and Docker is not running: the docker API socket will use Podman.\\n\\nIn case the compatibility mode is not activated, new documentation on how to activate it and how to easily switch between Docker and Podman is available here: [https://podman-desktop.io/docs/migrating-from-docker](https://podman-desktop.io/docs/migrating-from-docker).\\n\\nThis is a warning displayed for Windows users:\\n![windows-docker-compatibility](https://user-images.githubusercontent.com/436777/209305744-9056addd-f122-4f75-9e03-ad27a0109375.png)\\n\\nThis is the warning for Mac users:\\n![mac-docker-compatibility](https://user-images.githubusercontent.com/6422176/207964861-a9c1f72c-89d6-4816-beab-397af4125620.png)\\n\\n### Allow to toggle on/off the proxy setting [#983](https://github.com/containers/podman-desktop/pull/983)\\n\\nIn some context, users need the ability to disable and re-enable the proxy configuration very quickly, without having to entirely reconfigure it. This is now possible from the Podman Desktop settings page, where a toggle to enable/disable the proxy configuration has been added.\\n\\n\\n\\nNote: extensions can read this information and then update the proxy configuration.\\n\\n### Namespace selection for deploy to Kubernetes [#1008](https://github.com/containers/podman-desktop/pull/1008)\\n\\nA new dropdown menu has been added to the deploy to Kubernetes screen to allow selecting the namespace to deploy to. Defaults to defaultnamespace, if unable to get any from kube_client module.\\n\\nIf the user have set `kubectl config set-context --current --namespace=NAMESPACE` it honors that as the chosen value.\\n\\n![deploy-kubernetes-namespace](https://user-images.githubusercontent.com/7339809/206688886-095e4f15-42ae-4a0a-b1c6-ae4b547fcdfb.gif)\\n\\n### Configure Podman binary path [#941](https://github.com/containers/podman-desktop/pull/941)\\n\\nUsers may use a custom path to the podman binary. An option within settings (Settings -> Preferences) to allow providing an additional path to Podman binary has been added. This is useful for users who have installed Podman using a package manager and want to use the binary provided by the package manager. Additional information is available in the documentation for Mac users: [http://podman-desktop.io/docs/troubleshooting#unable-to-set-custom-binary-path-for-podman-on-macos](http://podman-desktop.io/docs/troubleshooting#unable-to-set-custom-binary-path-for-podman-on-macos)\\n\\n![custom-path](https://user-images.githubusercontent.com/6422176/204832063-5858065a-2fc3-49de-8d23-3b99b7d10dbf.png)\\n\\n### Provide pre-defined registries [#1201](https://github.com/containers/podman-desktop/pull/1201)\\n\\nThe experience of configuring a registry is getting simplified for the most popular ones. The user will be able to select a registry from a pre-defined list and will only have to provide the username and password. The following registries will be pre-defined:\\n\\n- Dockerhub\\n- Red Hat Quay\\n- GitHub\\n- IBM Container Registry\\n- Google Container Registry\\n\\n\\n\\n### UI/UX Improvements\\n\\n#### View Pods logs [#1122](https://github.com/containers/podman-desktop/pull/1122)\\n\\nThe pods details view provides the ability to view the logs of each containers that might be running in a pod. Moreover, as it can also be hard to scan and identify which container is producing which output, we appended the container name at the beginning of each output and differentiate each container with a different color.\\n\\n![pods-logs](https://user-images.githubusercontent.com/6422176/211024673-eee9bad8-1b0c-4446-b8d1-97a226282c4d.png)\\n\\n#### Improved feedback when clicking on container list action icons [#1150](https://github.com/containers/podman-desktop/pull/1150) [#1161](https://github.com/containers/podman-desktop/pull/1161)\\n\\nWhen starting/stopping or deleting a container, a spinner is now displayed. In case of error, a message indicating that the action failed will also be better indicated.\\n\\n\\n\\nFor containers that exit immediately or short-lived containers, the feedback is also improved and include report of error now provide a better feedback to the user [#1161](https://github.com/containers/podman-desktop/pull/1161).\\n\\n\\n\\n#### Allows to change the default font size for the editor [#1160](https://github.com/containers/podman-desktop/pull/1160)\\n\\nAn editor is used in several screens of Podman Desktop, from the inspect screen to container\'s outputs and Kubernetes YAML. The default font size is 10 pixels. It\'s now possible to adjust the font size to the one the one you prefer. This setting is persisted and will be used for all the editors of Podman Desktop and available from the preferences page (Settings -> Preferences).\\n\\n\\n\\n#### Keep expanded state of pods when refreshing containers [#1042](https://github.com/containers/podman-desktop/pull/1042)\\n\\nWhen switching from different screens of the application or simply refreshing the list of containers, the expanded state of each item in the list is now persisted and will be properly restored.\\n\\n\\n\\n#### Click on the Pod name redirects to the Pod details page [#1159](https://github.com/containers/podman-desktop/pull/1159)\\n\\nThe list of containers also displays pods, now clicking on the pod name directly redirects to the Pod details page.\\n\\n\\n\\n#### Improved styles of buttons for actions [#984](https://github.com/containers/podman-desktop/pull/984)\\n\\nThe style of the buttons for actions on item in the list of in details pages have been improved. The background has been removed, but to make the hover state more visible, the \\"hover\\" circle is visble and the icon\'s color is also changing.\\n\\nOn lists:\\n![list-actions](https://user-images.githubusercontent.com/6422176/205979121-b49a0ddf-03bb-4a4d-8d12-bc8d0bd52387.png)\\n\\nOn details pages:\\n![details-actions](https://user-images.githubusercontent.com/6422176/205979123-ea420b17-e834-4029-82eb-22949889eee9.png)\\n\\n#### Improved alignments in pages with lists [#1182](https://github.com/containers/podman-desktop/pull/1182)\\n\\nThe alignment of the items in the list of containers and pods have been improved. The header of each columns are now aligned with the text. and the actions icons are now aligned with the top of the text.\\n\\n![list-actions](https://user-images.githubusercontent.com/19958075/212712580-096fd090-0beb-40a4-8dc6-b3fdc5e81e35.png)\\n\\n---\\n\\n## Other Notable Enhancements\\n\\n- Statistics area in container details are always shown. ([#1131](https://github.com/containers/podman-desktop/pull/1131))\\n- Add more descriptive wording and more information to extensions. ([#985](https://github.com/containers/podman-desktop/pull/985))\\n- Allow to install on-the fly Podman Desktop extensions using an OCI image. ([#1187](https://github.com/containers/podman-desktop/pull/1187))\\n- Display correctly non-multiplexed stream in logs (when using non interactive mode). ([#1197](https://github.com/containers/podman-desktop/pull/1197))\\n- Font changed from white to gray for non-name sections (creation date, size). ([#1206](https://github.com/containers/podman-desktop/pull/1206))\\n- Add Help/about menu for macOS/Windows/Linux. ([#1207](https://github.com/containers/podman-desktop/pull/1207))\\n\\n---\\n\\n## Documentation\\n\\nComing with this new version of Podman Desktop, the documentation has been getting attention (with number of editorial reviews) and new content have been added.\\n\\nContent for helping users to migrate from Docker to Podman has been added:\\n\\n- [Using the `podman-mac-helper` tool to migrate from Docker to Podman on macOS](https://github.com/containers/podman-desktop/pull/1088)\\n- [better identify podman-mac-helper verification steps](https://github.com/containers/podman-desktop/pull/1129)\\n- [Emulating Docker CLI using Podman to migrate from Docker to Podman](https://github.com/containers/podman-desktop/pull/1143)\\n- [Migrating from Docker section](https://github.com/containers/podman-desktop/pull/1146)\\n- [Verifying that your tools are using Podman](https://github.com/containers/podman-desktop/pull/1152)\\n- [Importing saved containers](https://github.com/containers/podman-desktop/pull/1144)\\n\\nSeveral of other improvements have been made to the documentation and the website:\\n\\n- [Troubleshooting for Apple Silicon and brew x86_64 installs](https://github.com/containers/podman-desktop/pull/962)\\n- [Change text of custom binary location, add docs](https://github.com/containers/podman-desktop/pull/972)\\n- [Silent install option for windows](https://github.com/containers/podman-desktop/pull/974)\\n- [Upgrade to vite v4 and rollup v3](https://github.com/containers/podman-desktop/pull/1079)\\n- [Refreshing documentation on installing on Linux](https://github.com/containers/podman-desktop/pull/1118)\\n- [Identify the shell sessions in Installing on Linux](https://github.com/containers/podman-desktop/pull/1130)\\n- [Website: the linux binary is not a source, it should be promoted as a binary](https://github.com/containers/podman-desktop/pull/1133)\\n- [Introducing tabs for operatings systems and container engines](https://github.com/containers/podman-desktop/pull/1162)\\n- [website: In the landing page, update plugins and container engines lists](https://github.com/containers/podman-desktop/pull/1165)\\n- [Document where code is located within Podman Desktop](https://github.com/containers/podman-desktop/pull/1163)\\n- [(extension-api): Documentation on how to write an extension and use the api](https://github.com/containers/podman-desktop/pull/1172)\\n\\n---\\n\\n## Notable bug fixes\\n\\n- Update to v0.3.2 Docker Desktop API for extensions - [#1070](https://github.com/containers/podman-desktop/pull/1070)\\n- Updated link to the Matrix room - [#1076](https://github.com/containers/podman-desktop/pull/1076)\\n- Report error when container name already exists - [#1142](https://github.com/containers/podman-desktop/pull/1142)\\n- Fixed connectivity to the Podman machine when the generated socket length is greater than 104 characters in MacOS - [#1145](https://github.com/containers/podman-desktop/pull/1145)\\n- Do not use long calls for external clients - [#1151](https://github.com/containers/podman-desktop/pull/1151)\\n- Invalid name/tag for images with registries using a different port - [#1127](https://github.com/containers/podman-desktop/pull/1127)\\n- Invalid badge count for images when two images have the same tag - [#1124](https://github.com/containers/podman-desktop/pull/1124)\\n- Fixed detection of WSL2 - [#981](https://github.com/containers/podman-desktop/pull/981)\\n- Handle invalid kubeconfig files instead of crashing - [#953](https://github.com/containers/podman-desktop/pull/953)\\n- Removed redundant actions from details pages - [#1200](https://github.com/containers/podman-desktop/pull/1200)\\n- Fixed registry URL not aligned with header - [#1205](https://github.com/containers/podman-desktop/pull/1205)\\n- Moved SVGs to reusable components - [#1211](https://github.com/containers/podman-desktop/pull/1211)\\n\\n**Extensions API has also been improved in this new release:**\\n\\n- (extension-api): Allows to register a factory for kubernetes connection objects (like for container connections) - [#1040](https://github.com/containers/podman-desktop/pull/1040)\\n- (extension-api): List or inspect containers, be notified on events - [#1041](https://github.com/containers/podman-desktop/pull/1041)\\n- (extension-api): Allows to get provider notification - [#1045](https://github.com/containers/podman-desktop/pull/1045)\\n- (dd-extension-api): Implement toast API - [#1154](https://github.com/containers/podman-desktop/pull/1154)\\n- (extension-api): Moved extension properties to preferences - [#948](https://github.com/containers/podman-desktop/pull/948)\\n- (dd-extension-api): Added open dev console on dd webview in development mode - [#1071](https://github.com/containers/podman-desktop/pull/1071)\\n- (extension-api): Added notes on extension and frameworks/tooling of Podman Desktop - [#1166](https://github.com/containers/podman-desktop/pull/1166)\\n- (extension-api): Documentation on how to write an extension and use the api - [#1172](https://github.com/containers/podman-desktop/pull/1172)\\n- (dd-extension-api): DD extensions should see only minimal information on containers - [#1191](https://github.com/containers/podman-desktop/pull/1191)\\n\\n---\\n\\n## Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop 0.11 even better:\\n\\n- [Emmanuel Bernard](https://github.com/emmanuelbernard) in [#962 - Troubleshooting for Apple Silicon](https://github.com/containers/podman-desktop/pull/962)\\n- [Michael Prankl](https://github.com/eidottermihi) in [#974 - Silent install option for windows](https://github.com/containers/podman-desktop/pull/974)\\n- [Endre Lervik](https://github.com/elervik) in [#1008 - Namespace selection for deploy to kubernetes](https://github.com/containers/podman-desktop/pull/1008)\\n- [Evan FP](https://github.com/evanfpearson) in [#1145 - fixed socket path length error](https://github.com/containers/podman-desktop/pull/1145)\\n- [Lokesh Mandvekar](https://github.com/lsm5) in [#956 - add repository key to package.json](https://github.com/containers/podman-desktop/pull/956)\\n- [Jean Fran\xe7ois Maury](https://github.com/jeffmaury) in [#1194 - Cannot create Kind cluster on Windows](https://github.com/containers/podman-desktop/pull/1194)\\n\\n## Final Notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.11.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-0.10","metadata":{"permalink":"/blog/podman-desktop-release-0.10","source":"@site/blog/2022-12-01-release-0.10-blog.md","title":"Release Notes - Podman Desktop 0.10","description":"Podman Desktop 0.10 has been released! New Create Container Wizard, improved Kubernetes workflows, revamped registries configuration, and more!","date":"2022-12-01T00:00:00.000Z","formattedDate":"December 1, 2022","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"}],"readingTime":4.115,"hasTruncateMarker":true,"authors":[{"name":"Dev Kumar","title":"Technical PMM Intern","url":"https://github.com/deekay2310","imageURL":"https://github.com/deekay2310.png","key":"deekay2310"}],"frontMatter":{"title":"Release Notes - Podman Desktop 0.10","description":"Podman Desktop 0.10 has been released! New Create Container Wizard, improved Kubernetes workflows, revamped registries configuration, and more!","slug":"podman-desktop-release-0.10","authors":["deekay2310"],"tags":["podman-desktop","release","kubernetes"],"hide_table_of_contents":false},"prevItem":{"title":"Release Notes - Podman Desktop 0.11","permalink":"/blog/podman-desktop-release-0.11"},"nextItem":{"title":"Build & run Podman Desktop in a DevContainer","permalink":"/blog/develop-using-devcontainer"}},"content":"This release note covers Podman Desktop 0.10 release changes.\\n\\n- **Containers Configuration**: Container creation wizzard allowing to define environment variables, networking and more configuration options.\\n- **Kubernetes Improvements**: Play Kubernetes YAML, custom Kubeconfig path support, reload of kube context.\\n- **Registries Configuration**: Revamped registries configuration UI.\\n- **Podman Version**: Podman 4.3.1 now included in Windows and Mac installers.\\n- **UX/UI Improvements**: Improved lists, better contrast, and more.\\n\\nPodman Desktop 0.10 is now available. [Click here to download it](/downloads)!\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release Details\\n\\n### New configuration wizzard to create containers ([#773](https://github.com/containers/podman-desktop/pull/773))\\n\\nUntil now, we could only specify port binding when building images to start containers. The create container wizzard now includes several options enabling configuring volumes, environment variables, restart policy and settings on networking and security. It is also possible to reuse an existing (and already configured) a network when creating containers.\\n\\n![new container creation wizard](img/podman-desktop-release-0.10/new_container_creation_wizard.gif)\\n\\n### Kubernetes Capabilities Improvements\\n\\n**Custom Kubeconfig file path ([#780](https://github.com/containers/podman-desktop/pull/780))**\\n\\nKubeconfig path location is now configurable from ** Settings > Preferences > Kubernetes: Kubeconfig** and can be set to a custom path. By default, Podman Desktop use the path `$HOME/.kube/config` for the Kubeconfig file.\\n\\n![custom kubeconfig file path](img/podman-desktop-release-0.10/custom-kubeconfig.png)\\n\\n**Play Kubernetes YAML from the Pods list ([#739](https://github.com/containers/podman-desktop/pull/739))**\\n\\nPodman Desktop enables to play existing Kubernetes YAML files. This is now available from `Play Kubernetes YAML` button added to the Pods list, in addition to the Containers list.\\n\\n![play k8s yaml](img/podman-desktop-release-0.10/play_k8s_yaml.gif)\\n\\n**Kube context automatically reloaded when updated ([#813](https://github.com/containers/podman-desktop/pull/813))**\\n\\nAny change to the kube context will now be detected by Podman Desktop in its running state. The system tray, allowing to select which Kubernetes environment to work with, will now reload the kube context without restarting Podman Desktop.\\n\\n### Revamped Container Registries UI ([#446](https://github.com/containers/podman-desktop/issues/446))\\n\\nThe registries configuration UI has been revamped. Instead of using tiles for displaying the registries, now it uses a list where each registry can be added or edited directly in the list. The kebab menu provides options to edit or remove a registry from the list.\\n\\n![registries](img/podman-desktop-release-0.10/registries.png)\\n\\n### Update to Podman 4.3.1 ([#913](https://github.com/containers/podman-desktop/issues/913))\\n\\nPodman Desktop 0.10 is now embedding [Podman 4.3.1](https://github.com/containers/podman/releases/tag/v4.3.1) in Windows and macOS installers.\\n\\n### UI/UX Improvements\\n\\n**Improved lists UX ([#877](https://github.com/containers/podman-desktop/pull/877))**\\n\\nTo reduce the width used in the lists when displaying all the icons, main actions icons are now always displayed (before it was on hover) and the secondary actions are displayed in a kebab menu. For example Start/Stop and delete are primary actions while open the browser, inspect, generate kube yaml, etc. are secondary options.\\n\\n![kebab menu](img/podman-desktop-release-0.10/kebab-menu.png)\\n\\n**Delay appearance of text in navbar ([#767](https://github.com/containers/podman-desktop/pull/767))**\\n\\nWhen minimizing or expanding the navbar, the text was overlapping for a few second the page. Now it\'s displayed with a fading animation.\\n\\n**Selected state: better text color contrast ([#802](https://github.com/containers/podman-desktop/pull/802))**\\n\\nIn the `Images` page, on hover for both the image and the name column, the text contrast has been increased for better visibility: violet indicates that you have selected it.\\n\\n![text color when hover](img/podman-desktop-release-0.10/text-color.gif)\\n\\n**On Linux and Windows, the menu bar is now hidden by default ([#668](https://github.com/containers/podman-desktop/pull/668))**\\n\\nWith this change, the menu bar looks more integrated to the Operating System. The menu can appear if you hit the `Alt` key. Thanks to [Dylan M. Taylor](https://github.com/dylanmtaylor) for contributing to fix this.\\n\\n**Exit when clicking on the close icon of the dashboard on Linux ([#671](https://github.com/containers/podman-desktop/pull/671))**\\n\\nFor most users on Linux, there is no tray icon support. In this situation, when closed, Podman Desktop continues to run in background. [Dylan M. Taylor](https://github.com/dylanmtaylor) added a property to exit the app by default when clicking on the close icon. For people having tray icon support or with the desire of a different behavior, it is possible to disable it from the Settings.\\n\\n---\\n\\n## Other Notable Enhancements\\n\\n- Rename `Started` into `Age` in Containers list.([#878](https://github.com/containers/podman-desktop/pull/878))\\n- Added domain validation when adding a registry. ([#838](https://github.com/containers/podman-desktop/pull/838))\\n- Provided a consistent behavior with Podman CLI, `podman-machine-default` is now the default name when creating a Podman machine from Podman Desktop. ([#775](https://github.com/containers/podman-desktop/pull/775))\\n\\n---\\n\\n## Notable bug fixes\\n\\n- Fixed error handling when pulling images of Desktop Extensions. ([#782](https://github.com/containers/podman-desktop/pull/782))\\n- Fixed use of the full height of the screen when displaying log in the details of a container. ([#946](https://github.com/containers/podman-desktop/discussions/946))\\n- Fixed First start of Podman Desktop on flatpak was not seeing the podman engine ([#860](https://github.com/containers/podman-desktop/pull/860))\\n\\n## Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop 0.10 even better:\\n\\n- [Dylan M. Taylor](https://github.com/dylanmtaylor) in [#671](https://github.com/containers/podman-desktop/pull/671)\\n- [Fionn Kelleher](https://github.com/osslate) in [#713](https://github.com/containers/podman-desktop/pull/713)\\n- [Rostislav Svoboda](https://github.com/rsvoboda) in [#737](https://github.com/containers/podman-desktop/pull/737)\\n- [Denis Shemanaev](https://github.com/shemanaev) in [#783](https://github.com/containers/podman-desktop/pull/783)\\n- [Fabrice Flore-Th\xe9bault](https://github.com/themr0c) in [#856](https://github.com/containers/podman-desktop/pull/856)\\n- [Kevin](https://github.com/KevinAtSesam) in [#864](https://github.com/containers/podman-desktop/pull/864)\\n- [@sfrunza13](https://github.com/sfrunza13) in [#872](https://github.com/containers/podman-desktop/pull/872)\\n- [Anjan Nath](https://github.com/anjannath) in [#918](https://github.com/containers/podman-desktop/pull/918)\\n\\n## Final Notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.10.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"develop-using-devcontainer","metadata":{"permalink":"/blog/develop-using-devcontainer","source":"@site/blog/2022-11-17-develop-podman-using-codespaces.md","title":"Build & run Podman Desktop in a DevContainer","description":"Develop Podman Desktop using a DevContainer locally or using GitHub Codespaces.","date":"2022-11-17T00:00:00.000Z","formattedDate":"November 17, 2022","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"devcontainer","permalink":"/blog/tags/devcontainer"},{"label":"codespaces","permalink":"/blog/tags/codespaces"}],"readingTime":6.985,"hasTruncateMarker":true,"authors":[{"name":"Florent Benoit","title":"Maintainer of Podman Desktop","url":"https://github.com/benoitf","imageURL":"https://github.com/benoitf.png","key":"benoitf"}],"frontMatter":{"title":"Build & run Podman Desktop in a DevContainer","description":"Develop Podman Desktop using a DevContainer locally or using GitHub Codespaces.","slug":"develop-using-devcontainer","authors":["benoitf"],"tags":["podman-desktop","devcontainer","codespaces"],"hide_table_of_contents":false},"prevItem":{"title":"Release Notes - Podman Desktop 0.10","permalink":"/blog/podman-desktop-release-0.10"}},"content":"GitHub [announced last week](https://github.blog/changelog/2022-11-09-codespaces-for-free-and-pro-accounts/) that Codespaces is available for everyone and it includes free minutes.\\n\\nLet see how we can use a [Development Container](https://containers.dev/) having all the tools to build and run Podman Desktop. The Development Container works locally using Visual Studio Code but in this blog post we will see how it works directly with a simple click from GitHub.\\n\\nThe challenges are to run a desktop tool (Podman Desktop) and running a container engine (Podman) inside this Development Container without using too many memory !\\n\\n\x3c!--truncate--\x3e\\n\\n## Defining image of the container\\n\\nThe first thing is in the choice of the image for the container. It is possible to pick-up a default image and add some features but there is no existing feature for Podman at and most of the features are expecting to run on top of Debian/Ubuntu\\n\\nIf you are not interested in how to setup the image, jump to the [next section](#configure-the-devcontainer-using-devcontainerjson).\\n\\nPodman binaries are available quickly after the releases for Fedora. I decided then to use `Fedora 37` as the base image.\\n\\nLet start the Containerfile using:\\n\\n```docker\\nFROM quay.io/fedora/fedora:37\\n```\\n\\nThen I install Node.js 16 from official nodejs.org repository. It\'s easier to switch to the version that we need.\\n\\n```docker\\n# install Node.js + yarn\\nENV NODE_VERSION 16.18.1\\nRUN curl -SLO \\"https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz\\" && \\\\\\n tar -xzf \\"node-v$NODE_VERSION-linux-x64.tar.gz\\" -C /usr/local --strip-components=1 && \\\\\\n rm \\"node-v$NODE_VERSION-linux-x64.tar.gz\\" && \\\\\\n npm install -g yarn\\n```\\n\\nNow, all system dependencies used to run an Electron application needs to be installed.\\n\\nPodman is also installed so we can run some containers inside this container.\\n\\nAnd of course, we need to install VNC (I choose [tigervnc](https://tigervnc.org/)) with a light Window Manager ([fluxbox](http://fluxbox.org/)).\\n\\nTo connect to the display of the container, we need to expose VNC over HTML/websocket using [noVNC](https://novnc.com/)\\n\\nxterm is installed to start a terminal from the VNC side.\\n\\n```docker\\nRUN dnf -y update && \\\\\\n yum -y reinstall shadow-utils && \\\\\\n yum install -y git \\\\\\n # dependencies for Podman Desktop\\n nss \\\\\\n atk \\\\\\n at-spi2-atk \\\\\\n cups-libs \\\\\\n gtk3 \\\\\\n # for remote Display\\n fluxbox \\\\\\n tigervnc-server \\\\\\n xorg-x11-fonts-Type1 \\\\\\n novnc \\\\\\n supervisor \\\\\\n xdpyinfo \\\\\\n # for podman\\n podman \\\\\\n fuse-overlayfs --exclude container-selinux \\\\\\n xterm && \\\\\\n rm -rf /var/cache /var/log/dnf* /var/log/yum.*\\n```\\n\\nSupervisord setup the launch of the VNC server and the Window manager\\n\\n```docker\\nCOPY supervisord.conf /etc/supervisord.conf\\n```\\n\\nA custom theme for fluxbox:\\n\\n```docker\\nCOPY fluxbox /usr/share/fluxbox/init\\n```\\n\\nThen we need a special configuration to allow to have Podman working inside the container\\n\\nWe add the `podman-desktop` user with correct range on subuid and subgid when running containers. I used the [tutorial](https://github.com/containers/podman/blob/main/docs/tutorials/rootless_tutorial.md#etcsubuid-and-etcsubgid-configuration).\\n\\n```docker\\nRUN useradd -u 1000 podman-desktop && echo podman-desktop:10000:5000 > /etc/subuid && echo podman-desktop:10000:5000 > /etc/subgid\\n```\\n\\nThen use some default configuration files\\n\\n```docker\\n# initialize conf files\\nADD https://raw.githubusercontent.com/containers/libpod/master/contrib/podmanimage/stable/containers.conf /etc/containers/containers.conf\\nADD https://raw.githubusercontent.com/containers/libpod/master/contrib/podmanimage/stable/podman-containers.conf /home/podman-desktop/.config/containers/containers.conf\\n```\\n\\nand make sure that all permissions are correct following the guide [https://www.redhat.com/sysadmin/podman-inside-container](https://www.redhat.com/sysadmin/podman-inside-container)\\n\\n```docker\\n# set permissions\\nRUN chown podman-desktop:podman-desktop -R /home/podman-desktop && chmod 644 /etc/containers/containers.conf && \\\\\\n mkdir -p /var/lib/shared/overlay-images /var/lib/shared/overlay-layers /var/lib/shared/vfs-images /var/lib/shared/vfs-layers; touch /var/lib/shared/overlay-images/images.lock; touch /var/lib/shared/overlay-layers/layers.lock; touch /var/lib/shared/vfs-images/images.lock; touch /var/lib/shared/vfs-layers/layers.lock && \\\\\\n mkdir -p /run/user/1000 && chown podman-desktop:podman-desktop /run/user/1000\\n```\\n\\nplus define an empty user namespace.\\n\\n```docker\\nENV _CONTAINERS_USERNS_CONFIGURED=\\"\\"\\n```\\n\\nMake sure Podman will create the socket in an expected directory:\\n\\n```docker\\n# socket path for podman\\nENV XDG_RUNTIME_DIR=/run/user/1000\\n```\\n\\nOK ! we have a custom Containerfile providing all the tools to build and run Podman Desktop (using VNC for the display), run Podman and run Electron.\\n\\nThe current file is available at \\n\\nLet\'s configure the DevContainer.\\n\\n## Configure the DevContainer using devcontainer.json\\n\\nDevContainer definition is stored at `.devcontainer/devcontainer.json` file.\\n\\nWe need to reuse the image of the previous step. For that let\'s use the build section of the `devcontainer.json` file.\\n\\n```json\\n\\"build\\": {\\n \\"dockerfile\\": \\"Containerfile\\"\\n},\\n```\\n\\nIn order to avoid to redo all the build steps each time we open a workspace using this dev container, we published the image to quay.io at [quay.io/podman-desktop/devcontainer-parent:next\\n](https://quay.io/repository/podman-desktop/devcontainer-parent?tab=tags&tag=next). This parent image is not changing much so it\'s better to use is as a parent one.\\n\\nInside `.devcontainer` directory there is a `.parent` directory with everything related to the parent image.\\n\\nAnd in the `.devcontainer/Containerfile` file we reference this image\\n\\n```docker\\nFROM quay.io/podman-desktop/devcontainer-parent:next\\n```\\n\\nBy default, we will be `root` in the container and this is probably not what we expect. Let\'s change that.\\n\\n```json\\n\\"containerUser\\": \\"podman-desktop\\"\\n```\\n\\nSome Visual Studio Code extensions are nice to use and we can add them\\n\\n```json\\n \\"extensions\\": [\\"svelte.svelte-vscode\\", \\"bradlc.vscode-tailwindcss\\"]\\n```\\n\\nThen here is the tricky part, how to run our container allowing to run again inside the container some containers with podman.\\n\\nWe specify the arguments to make it possible. It\'s possible to use `--privileged` flag but I prefer to list the subset of permissions.\\nUsing `--privileged` we don\'t really know what are the privilege that are required while specifying all of them, people are aware of what is granted/denied.\\n\\n```json\\n\\"runArgs\\": [\\n \\"--cap-add=sys_admin\\",\\n \\"--security-opt\\",\\n \\"seccomp=unconfined\\",\\n \\"--device\\",\\n \\"/dev/fuse\\",\\n \\"--security-opt\\",\\n \\"label=disable\\",\\n \\"--security-opt\\",\\n \\"apparmor=unconfined\\"\\n ],\\n```\\n\\nSource code of Podman Desktop needs to be editable within the DevContainer so it needs to be mounted.\\n\\n```json\\n\\"workspaceMount\\": \\"source=${localWorkspaceFolder},target=/workspace,type=bind\\",\\n\\"workspaceFolder\\": \\"/workspace\\",\\n```\\n\\nThen we need a command to build Podman Desktop.\\n\\nFor that, we use `onCreateCommand` hook with a custom command\\n\\n```json\\n\\"onCreateCommand\\": \\"${containerWorkspaceFolder}/.devcontainer/onCreateCommand.sh\\",\\n```\\n\\nand in the `.devcontainer` folder the `onCreateCommand.sh` script is the following\\n\\n```shell\\n#!/bin/sh\\nyarn\\n\\nMODE=production yarn run build && yarn run electron-builder build --linux --dir --config .electron-builder.config.cjs\\n```\\n\\nTwo instructions:\\n\\n1. Fetch all Node.js dependencies.\\n2. build Podman Desktop in the `dist` folder using `Linux` as target Operating System.\\n\\nAfter the start of the container, how to launch Podman Desktop, the website and VNC, etc ?\\n\\nJust use `postStartCommand` hook.\\n\\n```json\\n\\"postStartCommand\\": \\"${containerWorkspaceFolder}/.devcontainer/postStartCommand.sh\\",\\n```\\n\\nand in the `.devcontainer` folder the `postStartCommand.sh` script is the following:\\n\\n```shell\\n#!/bin/sh\\n\\n# Start all services\\n/usr/bin/supervisord -c /etc/supervisord.conf &\\n\\n# wait X server to be ready or after 2mn exit\\necho \\"Waiting for X server to be ready\\"\\ntimeout 120 bash -c \'until xdpyinfo -display :0 &> /dev/null; do printf \\".\\"; sleep 1; done\'\\n\\n# launch podman desktop\\necho \\"Launching Podman Desktop\\"\\ncd dist/linux-unpacked/&& ./podman-desktop &\\n\\n# Launch the 9000 redirect after 20 seconds\\nsleep 20\\nwebsockify --web=/usr/share/novnc localhost:9000 localhost:5900 &\\n\\n# launch the website rendering\\necho \\"Launching Website\\"\\ncd website && yarn start\\n```\\n\\nIt starts VNC and noVNC, start precompiled Podman Desktop and start the documentation rendering.\\n\\nIt is not launching the Watch mode/development mode of Podman Desktop as it requires a container having more than 8GB of memory.\\n\\nPicking up a larger instace with for example 16GB, it\'s possible to use development mode.\\n\\nOf course, to make VNC happy, we need to specify the `DISPLAY` environment variable.\\n\\n```json\\n\\"remoteEnv\\": {\\n \\"DISPLAY\\": \\":0\\"\\n}\\n```\\n\\nWhen the DevContainer is fully available, we want to have a way to quickly open the `Website rendering URL` and `noVNC`\\n\\nLet\'s tweak the `devcontainer.json` file by adding the `portsAttributes` section\\n\\n```json\\n\\"portsAttributes\\": {\\n \\"9000\\": {\\n \\"label\\": \\"vnc\\",\\n \\"onAutoForward\\": \\"openPreview\\"\\n },\\n \\"3000\\": {\\n \\"label\\": \\"website\\"\\n }\\n}\\n```\\n\\nAfter all post-creation steps, the `Preview` browser inside the VS Code editor will open a window to VNC. And another port (`3000`) is flagged for the website.\\n\\n## Using the DevContainer.json on Github Codespace\\n\\nAs a user, opening a workspace with all what we configured is done using a single click.\\n\\nGo to then click on the `< > Code` dropdown and click on `Create codespace on main` button.\\n\\n![Open Codespace](img/develop-podman-using-codespaces/codespaces-click-repository.png)\\n\\nOnce you click on the button, the codespace is setting up:\\n\\n![Preparing Codepace](img/develop-podman-using-codespaces/codespaces-preparing-codespace.png)\\n\\nAfter few minutes, as there is not yet [prebuilt codespaces](https://docs.github.com/en/codespaces/prebuilding-your-codespaces/about-github-codespaces-prebuilds), the codespace is opening.\\n\\nThe simple Browser displays the noVNC window:\\n![Opening Codespace](img/develop-podman-using-codespaces/codespaces-open-novnc.png)\\n\\nClick on the connect button. Then on the terminal you can enter `podman run quay.io/podman/hello` and the container is detected in Podman Desktop.\\n![Testing Codespace](img/develop-podman-using-codespaces/codespaces-testing-podman-desktop.png)\\n\\nIt\'s also possible using the port widget to get on `3000` port by clicking on the world icon a preview of the website in another tab. Changing source code of the website will refresh the content of the window.\\n\\nDepending on the usecase, it\'s also possible to open documentation in the preview browser.\\n\\n![Edit website Codespace](img/develop-podman-using-codespaces/codespaces-edit-website.png)\\n\\n## Conclusion\\n\\nThe DevContainer image for Podman Desktop is recent so it\'ll probably evolve over time by adding new capabilities but it allows you to easily build/run/experiment and **contribute** to the tool or the website."}]}')}}]); \ No newline at end of file diff --git a/assets/js/b2f554cd.d126abe1.js b/assets/js/b2f554cd.d126abe1.js new file mode 100644 index 00000000000..cb2463a75aa --- /dev/null +++ b/assets/js/b2f554cd.d126abe1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1477],{30010:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"podman-desktop-release-1.4","metadata":{"permalink":"/blog/podman-desktop-release-1.4","source":"@site/blog/2023-09-18-release-1.4.md","title":"Release Notes - Podman Desktop 1.4","description":"Podman Desktop 1.4 has been released!","date":"2023-09-18T00:00:00.000Z","formattedDate":"September 18, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"openshift","permalink":"/blog/tags/openshift"}],"readingTime":3.415,"hasTruncateMarker":false,"authors":[{"name":"Jeff Maury","title":"Engineering Manager","url":"https://github.com/jeffmaury","imageURL":"https://github.com/jeffmaury.png","key":"jeffmaury"}],"frontMatter":{"title":"Release Notes - Podman Desktop 1.4","description":"Podman Desktop 1.4 has been released!","slug":"podman-desktop-release-1.4","authors":["jeffmaury"],"tags":["podman-desktop","release","kubernetes","openshift"],"hide_table_of_contents":false,"image":"/blog/img/podman-desktop-release-1.4/juggling.png"},"nextItem":{"title":"Release Notes - Podman Desktop 1.3","permalink":"/blog/podman-desktop-release-1.3"}},"content":"import ReactPlayer from \'react-player\'\\n\\nPodman Desktop 1.4 Release! \ud83c\udf89\\n\\nThis is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features.\\n\\n- **Podman 4.6.2**: Podman 4.6.2 included with Podman Desktop 1.4\\n- **Windows Arm64**: Native Windows on Arm64 installers and binaries\\n- **Port range mapping**: Start containers and map a range of ports\\n- **Terminal UX Improvement**: Persistent terminal sessions when SSH\'ing in a container\\n- **Volume Creation**: Create volume from the `Volumes` page\\n- **Bash support**: Terminals are now using `bash` if available.\\n\\nPodman Desktop 1.4 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-1-4-juggling](img/podman-desktop-release-1.4/juggling.png)\\n\\n---\\n\\n## Release Details\\n\\n### Port range mapping [#3654](https://github.com/containers/podman-desktop/pull/3654)\\n\\nWhen starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised.\\n\\n![Range mapping](https://user-images.githubusercontent.com/49404737/262927546-da66b67a-0884-40b1-85bd-a9c3ea2f3f9e.gif)\\n\\n### Terminal lifetime [#3725](https://github.com/containers/podman-desktop/pull/3725)\\n\\nWhen a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI.\\n\\n![terminal lifetime](img/podman-desktop-release-1.4/terminal.gif)\\n\\n### Create volume [#3742](https://github.com/containers/podman-desktop/pull/3742)\\n\\nThe Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name.\\n\\n![create volume](img/podman-desktop-release-1.4/create-volume.gif)\\n\\n### bash support [#3750](https://github.com/containers/podman-desktop/pull/3750)\\n\\nWhen a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used.\\n\\n![bash sh](img/podman-desktop-release-1.4/bash-sh.gif)\\n\\n### Notable Bug Fixes\\n\\n- Reduce API calls when listing containers by @benoitf [#3489](https://github.com/containers/podman-desktop/pull/3489)\\n- Removing a connection(podman machine) should redirect to previous page by @benoitf [#3576](https://github.com/containers/podman-desktop/pull/3576)\\n- Enhance error message when image is not there by @benoitf [#3587](https://github.com/containers/podman-desktop/pull/3587)\\n- Dispose kind install button when extension is deactivated (#3586) by @lstocchi [#3610](https://github.com/containers/podman-desktop/pull/3610)\\n- Replace backslash/slash on windows when building image (#3465) by @lstocchi [#3618](https://github.com/containers/podman-desktop/pull/3618)\\n- Handle null value in container command (#3620) by @lstocchi [#3625](https://github.com/containers/podman-desktop/pull/3625)\\n- Add maximum activation time for extensions by @benoitf [#3446](https://github.com/containers/podman-desktop/pull/3446)\\n- Handle single non-spread arguments by @benoitf [#3641](https://github.com/containers/podman-desktop/pull/3641)\\n- Grab usage data of volumes only on-demand by @benoitf [#3635](https://github.com/containers/podman-desktop/pull/3635)\\n- Add arm64 binaries for Windows by @benoitf [#3643](https://github.com/containers/podman-desktop/pull/3643)\\n- Include right airgap file for Windows and arm64 by @benoitf [#3651](https://github.com/containers/podman-desktop/pull/3651)\\n- Redirect to previous page when removing a kubernetes connection by @benoitf [#3650](https://github.com/containers/podman-desktop/pull/3650)\\n- Support port ranges when starting a container (#3204) by @lstocchi [#3654](https://github.com/containers/podman-desktop/pull/3654)\\n- Add a strict undefined check to messagebox result (#3692) by @lstocchi [#3699](https://github.com/containers/podman-desktop/pull/3699)\\n- Only restart if a machine is running by @cdrage [#3491](https://github.com/containers/podman-desktop/pull/3491)\\n- Session to the terminal is reused by @benoitf [#3725](https://github.com/containers/podman-desktop/pull/3725)\\n- Disable next button and show try again when onboarding failed (#3616) by @lstocchi [#3711](https://github.com/containers/podman-desktop/pull/3711)\\n- Add podman in PATH after updating process environment PATH (#3729) by @lstocchi [#3730](https://github.com/containers/podman-desktop/pull/3730)\\n- Allow to create a volume by @benoitf [#3742](https://github.com/containers/podman-desktop/pull/3742)\\n- Using bash if available otherwise sh in terminal by @axel7083 [#3750](https://github.com/containers/podman-desktop/pull/3750)\\n- Allow to embed existing component to onboarding (#3755) by @lstocchi [#3763](https://github.com/containers/podman-desktop/pull/3763)\\n- Some containers never return logs, do not wait for them by @dgolovin [#3784](https://github.com/containers/podman-desktop/pull/3784)\\n- Remove cancel button when on final onboarding step (#3771) by @lstocchi [#3802](https://github.com/containers/podman-desktop/pull/3802)\\n- Onboarding add link micromark for commands by @cdrage [#3747](https://github.com/containers/podman-desktop/pull/3747)\\n- Mounts can be null when using older podman by @afbjorklund [#3806](https://github.com/containers/podman-desktop/pull/3806)\\n- Remove redundant step completion check when onboarding gets started by @lstocchi [#3798](https://github.com/containers/podman-desktop/pull/3798)\\n- Ability to click enter in pull image name input by @deboer-tim [#3850](https://github.com/containers/podman-desktop/pull/3850)\\n- Set proxy environment variable when launching process by @jeffmaury [#3838](https://github.com/containers/podman-desktop/pull/3838)\\n- The socket location was moved for new podman by @afbjorklund [#3853](https://github.com/containers/podman-desktop/pull/3853)\\n- Don\'t log console errors when activating lima extension by @afbjorklund [#3852](https://github.com/containers/podman-desktop/pull/3852)\\n\\n### Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better.\\n\\nA warm welcome to [@tomgoren](https://github.com/tomgoren), [@Julian](https://github.com/Julian), [@Gelob](https://github.com/Gelob) and [@cedricclyburn](https://github.com/cedricclyburn) who made their first contribution to the project in this release.\\n\\n### Final Notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.4.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-1.3","metadata":{"permalink":"/blog/podman-desktop-release-1.3","source":"@site/blog/2023-08-16-release-1.3.md","title":"Release Notes - Podman Desktop 1.3","description":"Podman Desktop 1.3 has been released!","date":"2023-08-16T00:00:00.000Z","formattedDate":"August 16, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"openshift","permalink":"/blog/tags/openshift"}],"readingTime":5.195,"hasTruncateMarker":false,"authors":[{"name":"Denis Golovin","title":"Principal Software Engineer","url":"https://github.com/cdrage","imageURL":"https://github.com/dgolovin.png","key":"dgolovin"}],"frontMatter":{"title":"Release Notes - Podman Desktop 1.3","description":"Podman Desktop 1.3 has been released!","slug":"podman-desktop-release-1.3","authors":["dgolovin"],"tags":["podman-desktop","release","kubernetes","openshift"],"hide_table_of_contents":false,"image":"/img/blog/podman-desktop-release-1.3.webp"},"prevItem":{"title":"Release Notes - Podman Desktop 1.4","permalink":"/blog/podman-desktop-release-1.4"},"nextItem":{"title":"Release Notes - Podman Desktop 1.2","permalink":"/blog/podman-desktop-release-1.2"}},"content":"import ReactPlayer from \'react-player\'\\n\\nPodman Desktop 1.3 Release! \ud83c\udf89\\n\\nThis is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features.\\n\\n- **Podman 4.6.1**: Podman 4.6.1 included in Windows and Mac installers\\n- **Podman user-mode networking support to Windows/WSL**: A new switch `User mode networking\' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations\\n- **Compose group new UI elements**: You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs\\n- **Extension packs and extension dependencies**: Install group of extensions in one click\\n- **Resource details page update**: See summary and log for resource\\n- **Create Kind cluster form update**: A new `Node\'s container image` field can be used to specify the Kubernetes version used for the control-planed\\n- **Support Docker Desktop extensions using a backend**: When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension\'s descriptor\\n- **Podman Initial Onboarding (preview)**: Install and configure podman using included installer\\n\\nPodman Desktop 1.3 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-1-3-bug-swatting](img/podman-desktop-release-1.3/title-bug-swatting.png)\\n\\n---\\n\\n## Release Details\\n\\n### Compose group Logs tab [#3176](https://github.com/containers/podman-desktop/pull/3176)\\n\\nWhen clicking on the group of containers, you can now view the logs of the entire group of compose containers and don\'t need to open\\nlog for every component individually.\\n\\n![Screenshot 2023-07-11 at 12 48 47 PM](https://github.com/containers/podman-desktop/assets/6422176/743a4ffc-e291-4697-8ac5-8052cc921946)\\n\\n### Podman user-mode networking support to Windows/WSL [#3251](https://github.com/containers/podman-desktop/pull/3251)\\n\\nCertain VPN setups or other specialized networking configs will block traffic from the virtual WSL networking device, resulting in the podman WSL backend from being unable to contact systems on the VPN, and potentially losing internet access altogether. The new switch allows you to create a podman VM machine configured to work correctly in mentioned above networking environments.\\n\\n![user](https://github.com/containers/podman-desktop/assets/620330/2f521576-b6a6-42b5-b24d-08df5b432608)\\n\\n### Compose group Summary tab [#3317](https://github.com/containers/podman-desktop/pull/3317),\\n\\nCompose group Summary tab shows all containers in the group and let you navigate to Details page for specific container.\\n\\n\\n\\n### Compose group Inspect tab [#3316](https://github.com/containers/podman-desktop/pull/3316)\\n\\nCompose group Inspect tab shows an array of \\"container inspect\\" from docker / podman.\\n\\n\\n\\n### `Deploy to kubernetes` in compose actions [#3299](https://github.com/containers/podman-desktop/pull/3295)\\n\\nA button to deploy to kubernetes added to Compose group.\\n\\n\\n\\n### `Generate Kube` in Compose actions and `Kube` tab in compose details [#3253](https://github.com/containers/podman-desktop/pull/3253)\\n\\n`Generate Kube` item added to Compose actions and \\"Kube\\" tab is now available in Compose details view.\\n\\n\\n\\n### Install multiple extensions using extension pack [#3150](https://github.com/containers/podman-desktop/pull/3150)\\n\\nAn Extension pack introduced in Extension engine is a way to declare set of extensions to install them all at once.\\n\\n\\n\\n### Customize icons from extension [#3131](https://github.com/containers/podman-desktop/pull/3131)\\n\\nExtensions now can customize icons for list elements using `when` clause.\\n\\n![image](https://github.com/containers/podman-desktop/assets/49404737/7aae5347-4f07-4854-ba11-1f629b5ccf22)\\n\\n### Resource details page update [#1923](https://github.com/containers/podman-desktop/pull/1923)\\n\\nIf you click on the arrow icon next to a resource name it will open up a details page (similarly to how clicking on a container in the container list opens up a details page).\\n\\n![image](https://user-images.githubusercontent.com/49404737/229542404-bae44f89-5cd3-4baf-8b08-e934e4462697.gif)\\n\\n### `Node\'s container image` field added to `Create a Kind cluster` form [#3508](https://github.com/containers/podman-desktop/pull/3508)\\n\\nThe new `Node\'s container image` field can be used to specify the Kubernetes version used for the control-planed.\\n\\n![image](https://github.com/containers/podman-desktop/assets/42176370/b2a63faf-629f-436d-8496-7c0cd8158679)\\n\\n### Support Docker Desktop extensions using a backend [#3435](https://github.com/containers/podman-desktop/pull/3435)\\n\\nPodman Desktop now loads the containers in the backend as described in the vm section of extension descriptor the same way as Docker Desktop does.\\n\\n### Initial onboarding implementation for podman (experimental) [#3308](https://github.com/containers/podman-desktop/pull/3308)\\n\\nThis is the initial implementation for the onboarding feature. It only covers a simple onboarding for podman. Check system requirements -> install podman -> yay! Done!\\n\\n### Notable Bug Fixes\\n\\n- Updating videos to be adaptive for mobile by @mairin [#3229](https://github.com/containers/podman-desktop/pull/3229)\\n- Consistent max width and padding in settings by @deboer-tim [#3232](https://github.com/containers/podman-desktop/pull/3232)\\n- Settings navigation bar resizing by @deboer-tim in [#3231](https://github.com/containers/podman-desktop/pull/3231)\\n- Move new registry button to header by @deboer-tim [#3245](https://github.com/containers/podman-desktop/pull/3245)\\n- Bigger lima logo by @afbjorklund [#3248](https://github.com/containers/podman-desktop/pull/3248)\\n- Horizontal docker logo by @afbjorklund [#3236](https://github.com/containers/podman-desktop/pull/3236)\\n- Respect LIMA_HOME environment variable by @afbjorklund [#3254](https://github.com/containers/podman-desktop/pull/3254)\\n- Add check before writing to terminal by @lstocchi [#3263](https://github.com/containers/podman-desktop/pull/3263)\\n- Wait until remote side has fully initialized the extensions by @benoitf [#3257](https://github.com/containers/podman-desktop/pull/3257)\\n- Fix loader not centered horizontally by @benoitf [#3270](https://github.com/containers/podman-desktop/pull/3270)\\n- Troubleshooting still waiting after failure by @deboer-tim [#3354](https://github.com/containers/podman-desktop/pull/3354)\\n- Store error for build by @cdrage [#3365](https://github.com/containers/podman-desktop/pull/3365)\\n- Missing checkbox tooltips by @deboer-tim [#3380](https://github.com/containers/podman-desktop/pull/3380)\\n- Load compose logs async not await by @cdrage [#3377](https://github.com/containers/podman-desktop/pull/3377)\\n- Set rootful connection when starting rootful machine by @lstocchi [#3364](https://github.com/containers/podman-desktop/pull/3364)\\n- Default last page by @deboer-tim [#3388](https://github.com/containers/podman-desktop/pull/3388)\\n- Avoid dashboard displaying providers starting while they don\'t by @benoitf [#3451](https://github.com/containers/podman-desktop/pull/3451)\\n- Do not use extensionInfo until it is defined by @benoitf [#V](https://github.com/containers/podman-desktop/pull/3450)\\n- Allow BASIC authentication (all caps) by @cdrage [#3471](https://github.com/containers/podman-desktop/pull/3471)\\n- Allow single domain registry such as localhost:5000 by @cdrage [#3468](https://github.com/containers/podman-desktop/pull/3468)\\n- Create /usr/local/bin directory if it does not exist on binary install by @cdrage [#3425](https://github.com/containers/podman-desktop/pull/3425)\\n- Only delete selected pods by @deboer-tim [#](https://github.com/containers/podman-desktop/pull/3378)\\n- Add back \'Done\' text on the button by @benoitf [#3487](https://github.com/containers/podman-desktop/pull/3487)\\n- Do not wait for more than 5s when checking for podman ping by @benoitf [#3497](https://github.com/containers/podman-desktop/pull/3497)\\n- Add proxy support for extension using patching get and request approach by @dgolovin [#2825](https://github.com/containers/podman-desktop/pull/2825)\\n- Refresh component when field is updated by @benoitf [#3525](https://github.com/containers/podman-desktop/pull/3525)\\n- Higher-res icons for featured extensions list by @mairin [#3511](https://github.com/containers/podman-desktop/pull/3511)\\n- Main nav selection by @deboer-tim [#3510](https://github.com/containers/podman-desktop/pull/3510)\\n- kube event error when switching context by @jeffmaury [#3494](https://github.com/containers/podman-desktop/pull/3494)\\n- Reset error message each time we pull image by @benoitf [#3550](https://github.com/containers/podman-desktop/pull/3550)\\n\\n### Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better.\\n\\nA warm welcome to [@rostalan](https://github.com/rostalan) and [@axel7083](https://github.com/axel7083) who made their first contribution to the project in this release.\\n\\n### Final Notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.3.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-1.2","metadata":{"permalink":"/blog/podman-desktop-release-1.2","source":"@site/blog/2023-07-12-release-1.2.md","title":"Release Notes - Podman Desktop 1.2","description":"Podman Desktop 1.2 has been released!","date":"2023-07-12T00:00:00.000Z","formattedDate":"July 12, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"openshift","permalink":"/blog/tags/openshift"}],"readingTime":6.05,"hasTruncateMarker":false,"authors":[{"name":"Charlie Drage","title":"Software Engineer","url":"https://github.com/cdrage","imageURL":"https://github.com/cdrage.png","key":"cdrage"}],"frontMatter":{"title":"Release Notes - Podman Desktop 1.2","description":"Podman Desktop 1.2 has been released!","slug":"podman-desktop-release-1.2","authors":["cdrage"],"tags":["podman-desktop","release","kubernetes","openshift"],"hide_table_of_contents":false,"image":"/img/blog/podman-desktop-release-1.2.webp"},"prevItem":{"title":"Release Notes - Podman Desktop 1.3","permalink":"/blog/podman-desktop-release-1.3"},"nextItem":{"title":"Release Notes - Podman Desktop 1.1","permalink":"/blog/podman-desktop-release-1.1"}},"content":"import ReactPlayer from \'react-player\'\\n\\nPodman Desktop 1.2 Release! \ud83c\udf89\\n\\nWe\'re excited to announce the release of Podman Desktop version 1.2.0! This release includes many new features (Kubernetes, Compose and extension support!), bug fixes, and improvements to enhance your container management experience. Here\'s a summary of the key changes in this release:\\n\\n- **Added start/stop/delete/restart buttons for Compose**: You can now make changes to an entire Compose group of containers\\n- **Kubernetes context on the status bar**: Choose from multiple Kubernetes contexts more easily all from the status bar\\n- **Rename images**: Rename an image with a click of a button\\n- **Protocol handler support**: Added support for protocol handlers such as `open podman-desktop:extension/redhat.openshift-local`\\n- **Troubleshooting page**: A troubleshooting page for helping diagnose Podman Desktop related development issues\\n\\nPodman Desktop 1.2 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-1-2-hero](img/podman-desktop-release-1.2/podman-desktop-release-1.2.png)\\n\\n---\\n\\n## Release Details\\n\\n### Added start/stop/delete/restart buttons for Compose\\n\\nIn the last month we\'ve been addind support for more Compose features. Before you were only able to control a group of containers if they were in a Pod. Now we have added the ability to control a group of Compose containers. You can now start, stop, delete and restart a group of containers launched by either `docker-compose` or `podman-compose`.\\n\\nStay tuned as we add even more features to Compose! If you have any feedback or feature requests, feel free to open an issue or start a discussion on GitHub.\\n\\n\\n\\n### Kubernetes context on the status bar\\n\\nWith Kubernetes context on the status bar, you can switch from one context to another in just a couple of clicks. Easily switch to a different cluster all together. If there are multiple contexts available, you can now click and pick which one to use.\\n\\n\\n\\n### Rename images\\n\\nDeployed an image but now you need to rename it / add a new tag? Podman Desktop allows you to edit an image now. Thanks to an awesome contributor [@tuckerrc](https://github.com/tuckerrc) who added the new feature.\\n\\n\\n\\n### Troubleshooting page\\n\\nDeveloping an extension for Podman Desktop? Want to view the logs of Podman Desktop as well as ping your container connection? We now have a troubleshooting page!\\n\\nClick on the lightbulb button on the bottom right to access the page.\\n\\n\\n\\n### Protocol handler support\\n\\nPodman Desktop now supports protocol handling when using the terminal! Want to access your favourite extension directly from a script or the terminal? If you type in `open podman-desktop:extension/redhat.openshift-local` in the terminal, Podman Desktop will automatically load up to the correct extension.\\n\\n\\n\\n---\\n\\n## Other Notable Features\\n\\n- Background colors and FormPage ([PR #2977](https://github.com/containers/podman-desktop/pull/2977))\\n- Add ability to add insecure registry / skipping cert verify ([PR #2896](https://github.com/containers/podman-desktop/pull/2896))\\n- Add support for icon contribution ([PR #2984](https://github.com/containers/podman-desktop/pull/2984))\\n- Add warning dialog message that virtual machine has low memory limit ([PR #2822](https://github.com/containers/podman-desktop/pull/2822))\\n- Propose indexed name for new pod ([PR #3028](https://github.com/containers/podman-desktop/pull/3028))\\n- Add restart button after enabling / disabling mac os compatibility ([PR #2841](https://github.com/containers/podman-desktop/pull/2841))\\n- Add environment related helper constants ([PR #3079](https://github.com/containers/podman-desktop/pull/3079))\\n- Allow entrypoint and cmd when starting container ([PR #3031](https://github.com/containers/podman-desktop/pull/3031))\\n- Add a way to debug stores in troubleshooting page ([PR #3121](https://github.com/containers/podman-desktop/pull/3121))\\n- Add custompick component (#2855) ([PR #3012](https://github.com/containers/podman-desktop/pull/3012))\\n- Dynamic breadcrumbs ([PR #3119](https://github.com/containers/podman-desktop/pull/3119))\\n- Icons on form pages ([PR #3155](https://github.com/containers/podman-desktop/pull/3155))\\n- Switch more pages to formpage ([PR #3162](https://github.com/containers/podman-desktop/pull/3162))\\n- Add rename image button ([PR #2588](https://github.com/containers/podman-desktop/pull/2588))\\n- Fixed headers, improved scrollbars ([PR #2863](https://github.com/containers/podman-desktop/pull/2863))\\n- Reports warnings on failed kube deploy, fixes error out ([PR #3050](https://github.com/containers/podman-desktop/pull/3050))\\n- Kube context on statusbar ([PR #2755](https://github.com/containers/podman-desktop/pull/2755))\\n- Install provider if not installed when clicking on create new button (#2706) ([PR #2817](https://github.com/containers/podman-desktop/pull/2817))\\n- Add tag and authenticated push capacity to the extension API ([PR #2876](https://github.com/containers/podman-desktop/pull/2876))\\n- Add navigation bar e2e tests ([PR #2950](https://github.com/containers/podman-desktop/pull/2950))\\n\\n---\\n\\n## Documentation Updates\\n\\n- Fix documentation for building image of extensions ([PR #2873](https://github.com/containers/podman-desktop/pull/2873))\\n- Add Minikube install docs ([PR #2824](https://github.com/containers/podman-desktop/pull/2824))\\n- Add Minikube documentation ([PR #2694](https://github.com/containers/podman-desktop/pull/2694))\\n- Updated Building an image procedure ([PR #2964](https://github.com/containers/podman-desktop/pull/2964))\\n- Starting a container ([PR #2958](https://github.com/containers/podman-desktop/pull/2958))\\n- Pulling an image ([PR #2956](https://github.com/containers/podman-desktop/pull/2956))\\n- Updated selecting containers to run in a pod ([PR #2970](https://github.com/containers/podman-desktop/pull/2970))\\n- Pushing an image to a registry ([PR #2969](https://github.com/containers/podman-desktop/pull/2969))\\n- How to add an insecure registry ([PR #2953](https://github.com/containers/podman-desktop/pull/2953))\\n- Add documentation for lima ([PR #2995](https://github.com/containers/podman-desktop/pull/2995))\\n- Replace broken link to podman.io ([PR #2994](https://github.com/containers/podman-desktop/pull/2994))\\n- Authenticating to a pre-configured registry ([PR #2965](https://github.com/containers/podman-desktop/pull/2965))\\n- Lima is not a container engine ([PR #3051](https://github.com/containers/podman-desktop/pull/3051))\\n- Using the Troubleshooting page ([PR #3083](https://github.com/containers/podman-desktop/pull/3083))\\n- View and select your current Kubernetes context in the status bar ([PR #3090](https://github.com/containers/podman-desktop/pull/3090))\\n\\n---\\n\\n## Notable Bug Fixes\\n\\n- Deleting a running pod generates an error ([PR #2827](https://github.com/containers/podman-desktop/pull/2827))\\n- If kubeconfig is empty, does not try to do things, cancel ([PR #2874](https://github.com/containers/podman-desktop/pull/2874))\\n- Async telemetry startup ([PR #2885](https://github.com/containers/podman-desktop/pull/2885))\\n- Do not block startup while waiting for kube resource refresh ([PR #2884](https://github.com/containers/podman-desktop/pull/2884))\\n- Images list too wide ([PR #2918](https://github.com/containers/podman-desktop/pull/2918))\\n- Compose deactivate function never called ([PR #2922](https://github.com/containers/podman-desktop/pull/2922))\\n- Auto-scrolling on form pages, layout issues ([PR #2927](https://github.com/containers/podman-desktop/pull/2927))\\n- Show current context in quick pick ([PR #2920](https://github.com/containers/podman-desktop/pull/2920))\\n- Remove sticky position of loader in dashboard UI (#2535) ([PR #2959](https://github.com/containers/podman-desktop/pull/2959))\\n- Undo change that broke the website ([PR #2992](https://github.com/containers/podman-desktop/pull/2992))\\n- Detailspage, resizing & consistency ([PR #2987](https://github.com/containers/podman-desktop/pull/2987))\\n- Quick pick click to close and over nav bar ([PR #2758](https://github.com/containers/podman-desktop/pull/2758))\\n- Only show empty screen when no pods ([PR #2929](https://github.com/containers/podman-desktop/pull/2929))\\n- Do not redirect to /pods when deleting pod in containerlist ([PR #2963](https://github.com/containers/podman-desktop/pull/2963))\\n- Bulk delete on pods should call the pod deletion ([PR #2979](https://github.com/containers/podman-desktop/pull/2979))\\n- Update nodejs version to 18 in .nvmrc to fix yarn install failure ([PR #2989](https://github.com/containers/podman-desktop/pull/2989))\\n- Website check targets ([PR #2996](https://github.com/containers/podman-desktop/pull/2996))\\n- Don\'t show exception to user ([PR #3034](https://github.com/containers/podman-desktop/pull/3034))\\n- Interpret arguments given to info command for example ([PR #3015](https://github.com/containers/podman-desktop/pull/3015))\\n- Change defaults for Podman machine ([PR #3061](https://github.com/containers/podman-desktop/pull/3061))\\n- Normalize development/production folders path ([PR #3113](https://github.com/containers/podman-desktop/pull/3113))\\n- Calculate machine socket path for linux ([PR #3070](https://github.com/containers/podman-desktop/pull/3070))\\n- Replace backslash with slash so to support rendering on Windows (#3120) ([PR #3122](https://github.com/containers/podman-desktop/pull/3122))\\n- Keep stdout and stderr in the error object for Docker Desktop extensions ([PR #3014](https://github.com/containers/podman-desktop/pull/3014))\\n- Mark task completed if there\'s a failure ([PR #3016](https://github.com/containers/podman-desktop/pull/3016))\\n- Handle invalid kubeconfig file ([PR #3129](https://github.com/containers/podman-desktop/pull/3129))\\n- Do not remove registries when podman extension is stopping ([PR #3136](https://github.com/containers/podman-desktop/pull/3136))\\n- Warning should be amber ([PR #3153](https://github.com/containers/podman-desktop/pull/3153))\\n- Load user extensions from plugins as removable ([PR #3152](https://github.com/containers/podman-desktop/pull/3152))\\n- Images with spaces in entrypoints or commands fail to start ([PR #3161](https://github.com/containers/podman-desktop/pull/3161))\\n- Scrolling offscreen when clicking checkbox ([PR #3178](https://github.com/containers/podman-desktop/pull/3178))\\n- Avoid messagebox expanding offscreen ([PR #2778](https://github.com/containers/podman-desktop/pull/2778))\\n- Release-notes-generator run failure ([PR #2752](https://github.com/containers/podman-desktop/pull/2752))\\n- Unable to do a new build if the previous one failed ([PR #2721](https://github.com/containers/podman-desktop/pull/2721))\\n\\n---\\n\\n## Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better.\\n\\nA big shoutout to [@afbjorklund](https://github.com/afbjorklund), [@tuckerrc](https://github.com/tuckerrc) and [@evanshortiss](https://github.com/evanshortiss) who contributed to this release!\\n\\n---\\n\\n## Final notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.2.0) and [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.2.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-1.1","metadata":{"permalink":"/blog/podman-desktop-release-1.1","source":"@site/blog/2023-06-08-release-1.1.md","title":"Release Notes - Podman Desktop 1.1","description":"Podman Desktop 1.1 has been released!","date":"2023-06-08T00:00:00.000Z","formattedDate":"June 8, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"openshift","permalink":"/blog/tags/openshift"}],"readingTime":2.465,"hasTruncateMarker":true,"authors":[{"name":"Tim deBoer","title":"Architect","url":"https://github.com/deboer-tim","imageURL":"https://github.com/deboer-tim.png","key":"deboer"}],"frontMatter":{"title":"Release Notes - Podman Desktop 1.1","description":"Podman Desktop 1.1 has been released!","slug":"podman-desktop-release-1.1","authors":["deboer"],"tags":["podman-desktop","release","kubernetes","openshift"],"hide_table_of_contents":false,"image":"/img/blog/podman-desktop-release-1.1.webp"},"prevItem":{"title":"Release Notes - Podman Desktop 1.2","permalink":"/blog/podman-desktop-release-1.2"},"nextItem":{"title":"Release Notes - Podman Desktop 1.0","permalink":"/blog/podman-desktop-release-1.0"}},"content":"import ReactPlayer from \'react-player\'\\n\\nPodman Desktop 1.1 Release! \ud83c\udf89\\n\\nThis is primarily a bug-fix release to fix a few important issues, but we\'ve managed to squeeze in a few enhancements\\nalong the way.\\n\\n\x3c!--Main Features--\x3e\\n\\n- **Podman 4.5.1**: Podman 4.5.1 now included in Windows and Mac installers.\\n- **Extensions**: Update extensions from within Podman Desktop.\\n- **Lima Support**: Choose engine type and override its name from the settings.\\n- **UX and UI Improvements**: New loading screen.\\n\\nPodman Desktop 1.1 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-1-1-hero](img/podman-desktop-release-1.1/podman-desktop-release-1.1.png)\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release Details\\n\\n### Podman v4.5.1\\n\\nPodman Desktop 1.1 moves up to [Podman 4.5.1](https://github.com/containers/podman/releases/tag/v4.5.1).\\n\\n### Extensions\\n\\nOptional extensions will follow their own lifecycle and update independently from Podman Desktop. As of\\nthis release you\'ll be able to see when there is an update available and install from within\\nPodman Desktop [#2655](https://github.com/containers/podman-desktop/pull/2655).\\n\\nWe\'ve also added options in **Settings > Preferences** to\\nautomatically check for and install extension updates.\\n\\n\\n\\n![Update extensions](img/podman-desktop-release-1.1/update-extensions.png)\\n\\n### Lima Support\\n\\nThanks to contributor [Anders Bj\xf6rklund](https://github.com/afbjorklund), we have some improvements to the\\nLima extension! In **Settings > Preferences** you can select which\\nengine type Lima runs on and override the instance name [#2674](https://github.com/containers/podman-desktop/pull/2674).\\n\\n![Lima preferences](https://user-images.githubusercontent.com/10364051/241755966-0a6a293b-b18e-4222-9c40-abd6c114d464.png)\\n\\n### Other UI and UX Improvements\\n\\n#### New Loading Screen\\n\\nWe have a new loading screen, Podman Desktop style! [#2743](https://github.com/containers/podman-desktop/pull/2743).\\n\\n\\n\\n---\\n\\n## Other Notable Enhancements\\n\\n- Docker-compose can be installed system-wide [#2718](https://github.com/containers/podman-desktop/pull/2718).\\n- Show warning when creating a pod with two containers that use the same port [#2671](https://github.com/containers/podman-desktop/pull/2671).\\n- Display Kubernetes context name in pod label [#2634](https://github.com/containers/podman-desktop/pull/2634).\\n- Add Docker compatibility button using flatpak-spawn [#1925](https://github.com/containers/podman-desktop/pull/1925).\\n- Improve UI consistency of Pull Image page [#2604](https://github.com/containers/podman-desktop/pull/2604).\\n\\n---\\n\\n## Notable Bug Fixes\\n\\n- Could not install extensions on Windows 10 [#2762](https://github.com/containers/podman-desktop/pull/2762).\\n- Could not use locally built images on Kubernetes [#2710](https://github.com/containers/podman-desktop/pull/2710).\\n- Dashboard still suggests update after installation [#2648](https://github.com/containers/podman-desktop/pull/2648).\\n- Could not Play Kubernetes YAML to Podman on Windows [#2594](https://github.com/containers/podman-desktop/pull/2594).\\n- Pod label wasn\'t always shown in list [#2614](https://github.com/containers/podman-desktop/pull/2614).\\n- Dashboard button state was resetting [#2584](https://github.com/containers/podman-desktop/pull/2584).\\n- Change checkbox style so they don\'t look like stop buttons [#2723](https://github.com/containers/podman-desktop/pull/2723).\\n\\n---\\n\\n## Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better. In this\\nsprint we received pull requests from the following people:\\n\\n- [wangxiaolei](https://github.com/fatelei) in [#2602 - Add meaningful tooltips to build, pull, prune buttons](https://github.com/containers/podman-desktop/pull/2602)\\n- [AsciiWolf](https://github.com/AsciiWolf) in [#2607 - fix typing error in Flathub name](https://github.com/containers/podman-desktop/pull/2607) and [#2609 - fix Flatpak install instructions](https://github.com/containers/podman-desktop/pull/2609)\\n- [Anders Bj\xf6rklund](https://github.com/afbjorklund) in [#2674 - Select engine for Lima provider](https://github.com/containers/podman-desktop/pull/2674)\\n\\n---\\n\\n## Final notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.1.0) and [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.1.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-1.0","metadata":{"permalink":"/blog/podman-desktop-release-1.0","source":"@site/blog/2023-05-17-release-1.0.md","title":"Release Notes - Podman Desktop 1.0","description":"Podman Desktop 1.0 has been released!","date":"2023-05-17T00:00:00.000Z","formattedDate":"May 17, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"kind","permalink":"/blog/tags/kind"},{"label":"openshift","permalink":"/blog/tags/openshift"}],"readingTime":5,"hasTruncateMarker":true,"authors":[{"name":"Tim deBoer","title":"Architect","url":"https://github.com/deboer-tim","imageURL":"https://github.com/deboer-tim.png","key":"deboer"}],"frontMatter":{"title":"Release Notes - Podman Desktop 1.0","description":"Podman Desktop 1.0 has been released!","slug":"podman-desktop-release-1.0","authors":["deboer"],"tags":["podman-desktop","release","kubernetes","kind","openshift"],"hide_table_of_contents":false,"image":"/img/blog/podman-desktop-release-1.0.jpg"},"prevItem":{"title":"Release Notes - Podman Desktop 1.1","permalink":"/blog/podman-desktop-release-1.1"},"nextItem":{"title":"Release Notes - Podman Desktop 0.15","permalink":"/blog/podman-desktop-release-0.15"}},"content":"import ReactPlayer from \'react-player\'\\n\\nPodman Desktop 1.0 Release! \ud83c\udf89\\n\\nWe still have many things planned, but with a little polish and a few more bug fixes we\\nfelt we\'ve reached a level of maturity and it is now time to declare our 1.0 release.\\n\\nThank you to everyone who has been with us on this journey so far! Please keep the\\nfeedback coming!\\n\\n\x3c!--Main Features--\x3e\\n\\n- **Highlighting Featured Extensions**: Easily find and install new extensions.\\n- **Featured Extensions**: Two new extensions supporting OpenShift.\\n- **Podman Machine as Root**: Ability to run a Podman machine as root.\\n- **UX and UI Improvements**: Opening external websites, editing numbers, and tooltips.\\n\\nPodman Desktop 1.0 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-1-0-hero](img/podman-desktop-release-1.0/podman-desktop-release-1.0.jpg)\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release Details\\n\\n### Highlighting Featured Extensions\\n\\nA critical part of our vision for Podman Deskop is the ability to install extensions to\\nsupport additional container engines, Kubernetes providers, or other tools. However, it\\nhas not been easy to discover new extensions.\\n\\nWith 1.0 we show a list of featured extensions in the **Welcome**\\n[#2354](https://github.com/containers/podman-desktop/pull/2354), the **Dashboard** and in\\n** Settings > Extensions**\\n[#2355](https://github.com/containers/podman-desktop/pull/2355). Check out the new\\nextensions for **Red Hat OpenShift Local** and the **Developer Sandbox for Red Hat OpenShift**!\\n\\n![Featured extensions](img/podman-desktop-release-1.0/featured-extensions.png)\\n\\n### Featured Extensions\\n\\nSpeaking of extensions, let\'s take a minute to turn the spotlight on these two!\\n\\nHave another idea for extending Podman Desktop? We would love to hear from you or see\\nwhat you can create with the [Extension documentation](/docs/extensions),\\nand feature your extension here.\\n\\n#### Red Hat OpenShift Local\\n\\nOpenShift Local is a fully-featured single-node OpenShift cluster designed to run on your local computer.\\nWith this extension you can install, start/stop, and deploy pods or YAML to OpenShift Local,\\nallowing you to test your applications on a full OpenShift environment, ensuring a consistent\\nexperience between development, test, and production.\\n\\nThe recent addition of the MicroShift preset provides a lighter, optimized option that\\nstarts faster and uses less resources for deployments that still want OpenShift compatibility\\nwithout the full set of OpenShift services.\\n\\n![OpenShift Local](img/podman-desktop-release-1.0/openshift-local.png)\\n\\n#### Developer Sandbox for Red Hat OpenShift\\n\\nThe OpenShift Developer Sandbox is a free, cloud-based OpenShift environment that allows developers to\\ncreate, build, and deploy applications to OpenShift for 30 days. With this extension you can sign up\\nand easily deploy pods or YAML to a hosted OpenShift environment without a local installation or\\nleaving Podman Desktop.\\n\\n![Developer Sandbox](img/podman-desktop-release-1.0/sandbox.png)\\n\\n### Podman Machine as Root\\n\\nWhen creating a Podman machine you can now decide to run as root [#2427](https://github.com/containers/podman-desktop/pull/2427). This is a prerequisite for some scenarios, such as running Kind on Windows.\\n\\n![Podman machine as root](img/podman-desktop-release-1.0/podman-root.png)\\n\\n### Other UI and UX Improvements\\n\\n#### Prompt to Open External Website\\n\\nIn the previous release links to external websites were blocked due to the security risk.\\nIn 1.0 you can click to see the URL and have the option of opening or copying it\\n[#2414](https://github.com/containers/podman-desktop/pull/2414).\\n\\n![External link dialog](img/podman-desktop-release-1.0/external-link.png)\\n\\n#### Editable Numeric Preferences\\n\\nTired of clicking +, +, +? Us too. Numeric preferences are now editable so\\nyou can directly enter the value you want\\n[#2368](https://github.com/containers/podman-desktop/pull/2368).\\n\\n![Editing numbers](img/podman-desktop-release-1.0/edit-number.png)\\n\\n#### Navigation tooltips\\n\\nWe like our new navigation bar, but the tooltips were slow to appear. This made it harder for new\\nusers to discover the pages and for power users to see the container/pod/image counts. The\\ntooltips are now a little nicer and appear immediately\\n[#2286](https://github.com/containers/podman-desktop/pull/2286).\\n\\n![Navigation tooltips](img/podman-desktop-release-1.0/nav-tooltips.png)\\n\\n---\\n\\n## Other Notable Enhancements\\n\\n- If you use a non-default Podman machine you are now prompted to make it the default, so\\n that command line tools will use the same machine [#2205](https://github.com/containers/podman-desktop/pull/2205).\\n\\n- Extensions can now be installed without requiring a running local container engine\\n [#2273](https://github.com/containers/podman-desktop/pull/2273).\\n\\n- When extensions fail to load there is a new state (failed!) and an error message\\n to help you fix or report the problem [#2424](https://github.com/containers/podman-desktop/pull/2424).\\n\\n- The showInputBox API has support for Markdown [#2418](https://github.com/containers/podman-desktop/pull/2418).\\n\\n---\\n\\n## Notable Bug Fixes\\n\\n- Fixed shared status when using multiple Podman 4.5 machines [#2441](https://github.com/containers/podman-desktop/pull/2441).\\n- Fixed hang on exit when telemetry is unreachable [#2431](https://github.com/containers/podman-desktop/pull/2431).\\n- Reduced initial Podman REST API calls to improve performance [#2419](https://github.com/containers/podman-desktop/pull/2419).\\n- **Play Kubernetes YAML** now honors the namespace [#2509](https://github.com/containers/podman-desktop/pull/2509).\\n- **Container** list was not remembering expand/collapsed status [#2491](https://github.com/containers/podman-desktop/pull/2491).\\n- Clear previous error when installing Docker extension [#2469](https://github.com/containers/podman-desktop/pull/2469).\\n- Ensure correct path with running Kind CLI [#2455](https://github.com/containers/podman-desktop/pull/2455).\\n- Use IPv4 over IPv6 by default [#2398](https://github.com/containers/podman-desktop/pull/2398).\\n- When changing the Kubernetes pod name, change the app name to match [#2389](https://github.com/containers/podman-desktop/pull/2389).\\n- Fixed incorrect pod status in **Containers** view [#2387](https://github.com/containers/podman-desktop/pull/2387).\\n- **Dashboard** wasn\'t correctly refreshing Podman status [#2359](https://github.com/containers/podman-desktop/pull/2359).\\n\\n---\\n\\n## Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better. In this final\\nsprint we received pull requests from the following people:\\n\\n- [Taha Attari](https://github.com/TahaAttari) in [#2470 - Update docker command in importing-saved-containers.md](https://github.com/containers/podman-desktop/pull/2470)\\n- [Jason Greene](https://github.com/n1hility) in [#2431 - Fix hang on exit when telemetry endpoint is unreachable](https://github.com/containers/podman-desktop/pull/2431)\\n- [Anders Bj\xf6rklund](https://github.com/afbjorklund) in [#2571 - Fix the location of the lima podman socket](https://github.com/containers/podman-desktop/pull/2571) and [#2572 - Fix the state of the lima container provider](https://github.com/containers/podman-desktop/pull/2572)\\n- [Tucker Chapman](https://github.com/tuckerrc) in [#2567 - Add example image name in placeholder](https://github.com/containers/podman-desktop/pull/2567)\\n\\nThere are now a total of 54 people (and two bots!) who have contributed PRs to Podman Desktop, and we\'d\\nlike to extend an extra thanks to all of those outside of the immediate development team who contributed\\nto get us here:\\n\\n[afbjorklund](https://github.com/afbjorklund),\\n[alv67](https://github.com/alv67),\\n[anjannath](https://github.com/anjannath),\\n[ankanroy-code](https://github.com/ankanroy-code),\\n[arixmkii](https://github.com/arixmkii),\\n[cblecker](https://github.com/cblecker),\\n[cfergeau](https://github.com/cfergeau),\\n[chevdor](https://github.com/chevdor),\\n[chrisjsimpson](https://github.com/chrisjsimpson),\\n[cu8code](https://github.com/cu8code),\\n[doehyunbaek](https://github.com/doehyunbaek),\\n[dylanmtaylor](https://github.com/dylanmtaylor),\\n[eidottermihi](https://github.com/eidottermihi),\\n[elervik](https://github.com/elervik),\\n[emmanuelbernard](https://github.com/emmanuelbernard),\\n[evanfpearson](https://github.com/evanfpearson),\\n[gorkem](https://github.com/gorkem),\\n[idjohnson](https://github.com/idjohnson),\\n[imphil](https://github.com/imphil),\\n[iongion](https://github.com/iongion),\\n[jlosito](https://github.com/jlosito),\\n[KevinAtSesam](https://github.com/KevinAtSesam),\\n[lsm5](https://github.com/lsm5),\\n[Mitch9378](https://github.com/Mitch9378),\\n[n1hility](https://github.com/n1hility),\\n[osslate](https://github.com/osslate),\\n[PatentLobster](https://github.com/PatentLobster),\\n[pwright](https://github.com/pwright),\\n[rdwz](https://github.com/rdwz),\\n[redhatrises](https://github.com/redhatrises),\\n[rhatdan](https://github.com/rhatdan),\\n[RobotSail](https://github.com/RobotSail),\\n[rohit-rambade](https://github.com/rohit-rambade),\\n[rsvoboda](https://github.com/rsvoboda),\\n[sfrunza13](https://github.com/sfrunza13),\\n[shemanaev](https://github.com/shemanaev),\\n[sstosh](https://github.com/sstosh),\\n[stickster](https://github.com/stickster),\\n[TahaAttari](https://github.com/TahaAttari),\\n[ths83](https://github.com/ths83),\\n[Tony-Sol](https://github.com/Tony-Sol),\\n[tuckerrc](https://github.com/tuckerrc),\\n[ucomesdag](https://github.com/ucomesdag),\\n[xbabalov](https://github.com/xbabalov),\\n[zezo2019](https://github.com/zezo2019).\\n\\n---\\n\\n## Final notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.0.0) and [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.0.1).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-0.15","metadata":{"permalink":"/blog/podman-desktop-release-0.15","source":"@site/blog/2023-05-02-release-0.15.md","title":"Release Notes - Podman Desktop 0.15","description":"Podman Desktop 0.15 has been released!","date":"2023-05-02T00:00:00.000Z","formattedDate":"May 2, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"kind","permalink":"/blog/tags/kind"}],"readingTime":3.685,"hasTruncateMarker":true,"authors":[{"name":"Tim deBoer","title":"Architect","url":"https://github.com/deboer-tim","imageURL":"https://github.com/deboer-tim.png","key":"deboer"}],"frontMatter":{"title":"Release Notes - Podman Desktop 0.15","description":"Podman Desktop 0.15 has been released!","slug":"podman-desktop-release-0.15","authors":["deboer"],"tags":["podman-desktop","release","kubernetes","kind"],"hide_table_of_contents":false,"image":"/img/blog/podman-desktop-release-0.15.webp"},"prevItem":{"title":"Release Notes - Podman Desktop 1.0","permalink":"/blog/podman-desktop-release-1.0"},"nextItem":{"title":"Setting up and running a Kubernetes cluster locally with Podman Desktop","permalink":"/blog/running-a-local-kubernetes-cluster-with-podman-desktop"}},"content":"import ReactPlayer from \'react-player\'\\n\\nPodman Desktop 0.15 - Cleanliness is next to Podliness!\\n\\nIt has only been two weeks since our last release, but we really wanted to complete a few scenarios,\\nfix a few bugs, and show off several design updates and UI improvements that we have been working on.\\n\\n\x3c!--Main Features--\x3e\\n\\n- **Podman Version**: Podman 4.5 now included in Windows and Mac installers.\\n- **Kind Ingress**: Creating an ingress to expose services outside the Kind cluster.\\n- **Podliness**: Ability to choose external ports when podifying containers.\\n- **Cleanliness**: New navigation bar, dialog, and palette update.\\n- **UX and UI Improvements**: Markdown support for extensions.\\n\\nPodman Desktop 0.15 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-0-15-hero](img/podman-desktop-release-0.15/podman-desktop-release-0.15.webp)\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release Details\\n\\n### Update to Podman v4.5.O\\n\\nPodman Desktop 0.15 embeds [Podman 4.5.0](https://github.com/containers/podman/releases/tag/v4.5.0) in\\nWindows and macOS installers [#2115](https://github.com/containers/podman-desktop/issues/2115).\\n\\n### Kind Ingress\\n\\nWait a minute, didn\'t we enable this last release? Well yes, last time we did add support for installing\\nthe Contour ingress controller on Kind [#1675](https://github.com/containers/podman-desktop/issues/1675),\\nbut you still couldn\'t access your containers without the corresponding ingress.\\n\\nThis release adds a simple checkbox you can use when deploying to Kind to create an ingress and\\nmake your service accessible [#1322](https://github.com/containers/podman-desktop/issues/1322).\\n\\n\\n\\n### Podliness: Ability to Choose External Ports when Podifying Containers\\n\\nWhen you create a pod from of a set of containers (Podifying!), you probably don\'t want to expose every\\nsingle port from every container to the world. With an updated panel you can now see which ports each container\\nexposes, pick which should remain visible outside the pod, and which are for internal use\\n[#2232](https://github.com/containers/podman-desktop/pull/2232).\\n\\n![Podify page](https://user-images.githubusercontent.com/49404737/234527674-ed14f52c-8f66-445f-8038-c8135bb61136.gif)\\n\\n### Cleanliness: New Navigation Bar, Dialogs, and Palette\\n\\nIt was time to catch up on some design ideas and do some UI cleanup!\\n\\n#### New Navgation Bar\\n\\nThe navigation bar is now always fixed on the left size, without labels. This opens up more space\\nfor the content on each page, and is easier to jump in and out of ** Settings**.\\n[#2167](https://github.com/containers/podman-desktop/issues/2167)\\n\\n![Navigation bar](img/podman-desktop-release-0.15/navigation.png)\\n\\n#### Updated Dialogs\\n\\nWe wanted messages and dialog boxes to feel a bit more integrated, so we have a new message box\\n[#1808](https://github.com/containers/podman-desktop/pull/1808) and use it for all dialogs opened by\\nextensions, pruning containers/pods/images/volumes [#2138](https://github.com/containers/podman-desktop/pull/2138),\\nand updating Podman Desktop itself [#2249](https://github.com/containers/podman-desktop/pull/2249).\\n\\n![Dialog](img/podman-desktop-release-0.15/dialog.png)\\n\\n#### Colors\\n\\nWe spent some time tweaking colors and closing on our final palette\\n[#2199](https://github.com/containers/podman-desktop/pull/2199), updating the colors in the terminal & detail page\\n[#2222](https://github.com/containers/podman-desktop/pull/2222), tweaking the navigation and main page colors\\n[#2223](https://github.com/containers/podman-desktop/pull/2223),\\nand improving the look of forms [#2156](https://github.com/containers/podman-desktop/issues/2156).\\n\\nWe\'re not done yet, but hopefully you will notice a more polished, consistent, good-looking application!\\n\\n### Other UI and UX Improvements\\n\\n#### Markdown Support for Extensions\\n\\nWe added a new component to display markdown [#2219](https://github.com/containers/podman-desktop/pull/2219) and\\nenabled it in preferences [#2253](https://github.com/containers/podman-desktop/pull/2253), and\\nprovider properties/creation pages [#2152](https://github.com/containers/podman-desktop/issues/2152).\\nWe can now embed links and other formatting in preferences, and extensions can use them in many places, for example:\\n\\n![Markdown](img/podman-desktop-release-0.15/markdown.png)\\n\\n---\\n\\n## Other Notable Enhancements\\n\\n- We know which **Settings** page is used the most often, so now it\'s the default: ** Settings > Resources** [#2105](https://github.com/containers/podman-desktop/issues/2105).\\n\\n- Extensions can now use the Tasks API to let long running tasks continue in the background [#2019](https://github.com/containers/podman-desktop/issues/2019) and the existing withProgress API also uses the task manager now\\n [#2187](https://github.com/containers/podman-desktop/pull/2187).\\n\\n![Task API](https://user-images.githubusercontent.com/695993/233560830-85cfa685-5dcd-4efa-9fae-730a8a9eef3b.gif)\\n\\n- Images are now sorted by age [#2311](https://github.com/containers/podman-desktop/pull/2311).\\n\\n- When you start/stop a container or pod, the button is now animated instead of having an separate spinner\\n [#2101](https://github.com/containers/podman-desktop/issues/2101).\\n\\n- The ** Settings > Preferences** page now has a search bar [#2128](https://github.com/containers/podman-desktop/pull/2128).\\n\\n![Search preferences](img/podman-desktop-release-0.15/prefs.png)\\n\\n- The Help page has been updated [#431](https://github.com/containers/podman-desktop/issues/431).\\n\\n![Updated Help](img/podman-desktop-release-0.15/help.png)\\n\\n---\\n\\n## Notable Bug Fixes\\n\\n- There was no way to see log or outcome if you leave the Kind cluster creation page [#2079](https://github.com/containers/podman-desktop/issues/2079).\\n- Kind image load doesn\'t show a notification [#2225](https://github.com/containers/podman-desktop/issues/2225).\\n- Fix odd selection in ** Settings > Extensions** [#2130](https://github.com/containers/podman-desktop/issues/2130).\\n- Menus are now cleaned up properly when extensions are stopped [#2188](https://github.com/containers/podman-desktop/pull/2188).\\n- Kind clusters are now cleaned up when Podman machine is stopped [#2306](https://github.com/containers/podman-desktop/pull/2306).\\n\\n---\\n\\n## Final notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.15.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"running-a-local-kubernetes-cluster-with-podman-desktop","metadata":{"permalink":"/blog/running-a-local-kubernetes-cluster-with-podman-desktop","source":"@site/blog/2023-04-19-running-a-local-kubernetes-cluster-with-podman-desktop.md","title":"Setting up and running a Kubernetes cluster locally with Podman Desktop","description":"Setting up and running a Kubernetes cluster locally with Podman Desktop","date":"2023-04-19T00:00:00.000Z","formattedDate":"April 19, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"story","permalink":"/blog/tags/story"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"kind","permalink":"/blog/tags/kind"}],"readingTime":8.86,"hasTruncateMarker":true,"authors":[{"name":"Fabrice Flore-Thebault","title":"Technical writer","url":"https://github.com/themr0c","imageURL":"https://github.com/themr0c.png","key":"themr0c"}],"frontMatter":{"title":"Setting up and running a Kubernetes cluster locally with Podman Desktop","description":"Setting up and running a Kubernetes cluster locally with Podman Desktop","slug":"running-a-local-kubernetes-cluster-with-podman-desktop","authors":["themr0c"],"tags":["podman-desktop","story","kubernetes","kind"],"hide_table_of_contents":false},"prevItem":{"title":"Release Notes - Podman Desktop 0.15","permalink":"/blog/podman-desktop-release-0.15"},"nextItem":{"title":"Release Notes - Podman Desktop 0.14","permalink":"/blog/podman-desktop-release-0.14"}},"content":"In this blog post you will learn to use Podman Desktop to run the [Kubernetes documentation example: Deploying PHP Guestbook application with Redis](https://kubernetes.io/docs/tutorials/stateless-application/guestbook/).\\n\\nOn the agenda:\\n\\n1. Installing Podman Desktop.\\n1. Installing and initializing your container engine: Podman.\\n1. Installing and starting your local Kubernetes provider: Kind.\\n1. Starting the Redis leader.\\n1. Starting and scaling the Redis followers.\\n1. Starting and exposing the Guestbook frontend.\\n\\n\x3c!--truncate--\x3e\\n\\n## Installing Podman Desktop\\n\\nYou need Podman Desktop.\\n\\n1. Go to [Podman Desktop installation documentation](/docs/installation).\\n1. Click on your platform name: [Windows](/docs/installation/windows-install), [macOS](/docs/installation/macos-install), or [Linux](/docs/installation/linux-install).\\n1. Follow the instructions. Stick to the default installation method.\\n1. Start **Podman Desktop**.\\n\\nAt this point, you have a graphical user interface to:\\n\\n- Install Podman and Kind.\\n- Control and work with your container engines and Kubernetes clusters.\\n- Run your application on your container engine and migrate it to Kubernetes.\\n\\n## Installing and initializing your container engine: Podman\\n\\nPodman Desktop can control various container engines, such as:\\n\\n- Docker\\n- Lima\\n- Podman\\n\\nConsider installing the Podman container engine for:\\n\\n- Added security\\n- No daemon\\n- Open source\\n\\nContainers are a Linux technology.\\n\\n- On Linux, you can install Podman natively.\\n See: [Installing Podman on Linux](https://podman.io/docs/installation#installing-on-linux).\\n- On macOS and Windows, Podman requires to run in a Linux virtual machine: the Podman machine.\\n Use Podman Desktop to install Podman and initialize your Podman machine:\\n\\n#### Procedure\\n\\n1. Open Podman Desktop **Dashboard**\\n1. The **Dashboard** displays _Podman Desktop was not able to find an installation of Podman_.\\n1. Click on **Install**.\\n1. Podman Desktop checks the prerequisites to install Podman Engine. When necessary, follow the instructions to install prerequisites.\\n1. Podman displays the dialog: _Podman is not installed on this system, would you like to install Podman?_. Click on **Yes** to install Podman.\\n1. Click on **Initialize and start**.\\n\\n#### Verification\\n\\n- The **Dashboard** displays _Podman is running_.\\n\\n ![Podman is running](img/running-a-local-kubernetes-cluster-with-podman-desktop/podman-is-running.png)\\n\\nAt this point, you can start working with containers.\\n\\n## Installing and starting your local Kubernetes provider: Kind\\n\\nYou want to deploy your application to a local Kubernetes cluster.\\n\\nPodman Desktop can help you run Kind-powered local Kubernetes clusters on a container engine, such as Podman.\\n\\nPodman Desktop helps you [installing the `kind` CLI](/docs/kubernetes/kind/installing-kind):\\n\\n1. In the status bar, click on **Kind**, and follow the prompts.\\n1. When the `kind` CLI is available, the status bar does not display **Kind**.\\n1. On Windows, [configure Podman in rootful mode](/docs/kubernetes/kind/configuring-podman-for-kind-on-windows)\\n\\n ```shell-session\\n $ podman system connection default podman-machine-default-root\\n ```\\n\\n1. Go to ** Settings > Resources**\\n1. In the **\\"Podman Podman** tile, click on the **** icon to restart the Podman container engine.\\n1. In the **\\"Kind Kind** tile, click on the **Create new** button.\\n 1. **Name**: enter `kind-cluster`.\\n 1. **Provider Type**: select `podman`.\\n 1. **HTTP Port**: select `9090`.\\n 1. **HTTPS Port**: select `9443`.\\n 1. **Setup an ingress controller**: `Enabled`\\n 1. Click the **Create** button.\\n ![Create a Kind cluster screen](img/running-a-local-kubernetes-cluster-with-podman-desktop/create-a-kind-cluster.png)\\n1. After successful creation, click on the **Go back to resources** button\\n\\n#### Verification\\n\\n1. In ** Settings > Resources** your Kind cluster is running/\\n\\n ![Kind cluster is running](img/running-a-local-kubernetes-cluster-with-podman-desktop/kind-cluster-is-running.png)\\n\\n1. In the **Podman Desktop** tray, open the **Kubernetes** menu: you can set the context to your Kind cluster: `kind-kind-cluster`.\\n\\n ![Kind cluster Kubernetes context in the tray](img/running-a-local-kubernetes-cluster-with-podman-desktop/kind-cluster-context-in-the-tray.png)\\n\\n At this point, you can start working with containers, and your local Kubernetes cluster.\\n\\n#### Additional resources\\n\\n- [Creating a local Kind-powered Kubernetes cluster](/docs/kubernetes/kind/creating-a-kind-cluster)\\n\\n## Starting the Redis leader\\n\\nThe Guestbook application uses Redis to store its data.\\n\\nWith Podman Desktop, you can prepare the Redis leader image and container on your local container engine, and deploy the results to a Kubernetes pod and service.\\nThis is functionally equal to the `redis-leader` deployment that the Kubernetes example propose.\\n\\n#### Procedure\\n\\n1. Open ** Images > Pull an image**.\\n 1. **Image to Pull**: enter `docker.io/redis:6.0.5`\\n 1. Click **Pull image** to pull the image to your container engine local image registry.\\n 1. Click **Done** to get back to the images list.\\n1. ** Search images**: enter `redis:6.0.5` to find the image.\\n1. Click **** to open the **Create a container from image** dialog.\\n 1. **Container name**: enter `leader`,\\n 1. **Local port for `6379/tcp`**: `6379`.\\n 1. Click ** Start Container** to start the container in your container engine.\\n1. ** Search containers**: enter `leader` to find the running container.\\n1. Click **** to stop the container, and leave the `6379` port available for the Redis follower container.\\n\\n1. Click ** > Deploy to Kubernetes** to open the **Deploy generated pod to Kubernetes** screen.\\n\\n 1. **Pod Name**: enter `redis-leader`.\\n 1. **Use Kubernetes Services**: select **Replace `hostPort` exposure on containers by Services. It is the recommended way to expose ports, as a cluster policy might prevent to use `hostPort`.**\\n 1. **Expose service locally using Kubernetes Ingress**: deselect **Create a Kubernetes ingress to get access to the ports that this pod exposes, at the default ingress controller location. Example: on a default Kind cluster created with Podman Desktop: `http://localhost:9090`. Requirements: your cluster has an ingress controller`**.\\n 1. **Kubernetes namespaces**: select `default`.\\n 1. Click ** Deploy**.\\n ![Deploy generated leader pod to Kubernetes screen](img/running-a-local-kubernetes-cluster-with-podman-desktop/deploy-generated-leader-pod-to-kubernetes.png)\\n 1. Wait for the pod to reach the state: **Phase: Running**.\\n 1. Click **Done**.\\n\\n#### Verification\\n\\n- The ** Pods** screen lists the running `redis-leader` pod.\\n\\n ![leader pod is running](img/running-a-local-kubernetes-cluster-with-podman-desktop/leader-pod-is-running.png)\\n\\n## Starting the Redis followers\\n\\nAlthough the Redis leader is a single Pod, you can make it highly available and meet traffic demands by adding a few Redis followers, or replicas.\\n\\n**With Podman Desktop, you can prepare the Redis follower image and container on your local container engine, and deploy the results to Kubernetes pods and services.**\\nThis is functionally equal to the `redis-follower` deployment that the Kubernetes example propose.\\n\\n#### Procedure\\n\\n1. Open ** Images > Pull an image**.\\n 1. **Image to Pull**: enter `gcr.io/google_samples/gb-redis-follower:v2`\\n 1. Click **Pull image** to pull the image to your container engine local image registry.\\n 1. Click **Done** to get back to the images list.\\n1. ** Search images**: enter `gb-redis-follower:v2` to find the image.\\n1. Click **** to open the **Create a container from image** dialog.\\n 1. **Container name**: enter `follower`,\\n 1. **Local port for `6379/tcp`**: `6379`.\\n 1. Click ** Start Container** to start the container in your container engine.\\n1. ** Search containers**: enter `follower` to find the running container.\\n1. Click **** to stop the container: you do not need it to run in the container engine.\\n1. Click ** > Deploy to Kubernetes** to open the **Deploy generated pod to Kubernetes** screen.\\n 1. **Pod Name**: enter `redis-follower`.\\n 1. **Use Kubernetes Services**: select **Replace `hostPort` exposure on containers by Services. It is the recommended way to expose ports, as a cluster policy might prevent to use `hostPort`.**\\n 1. **Expose service locally using Kubernetes Ingress**: deselect **Create a Kubernetes ingress to get access to the ports that this pod exposes, at the default ingress controller location. Example: on a default Kind cluster created with Podman Desktop: `http://localhost:9090`. Requirements: your cluster has an ingress controller`**.\\n 1. **Kubernetes namespaces**: select `default`.\\n 1. Click ** Deploy**.\\n ![Deploy generated follower pod to Kubernetes screen](img/running-a-local-kubernetes-cluster-with-podman-desktop/deploy-generated-follower-pod-to-kubernetes.png)\\n 1. Wait for the pod to reach the state: **Phase: Running**.\\n 1. Click **Done**.\\n1. To add replicas, repeat the last step with another **Pod Name** value.\\n\\n#### Verification\\n\\n- The ** Pods** screen lists the running `redis-follower` pods.\\n\\n ![follower pods are running](img/running-a-local-kubernetes-cluster-with-podman-desktop/follower-pods-are-running.png)\\n\\n## Starting the default frontend\\n\\nNow that you have the Redis storage of your Guestbook up and running, start the Guestbook web servers.\\nLike the Redis followers, deploy the frontend using Kubernetes pods and services.\\n\\nThe Guestbook app uses a PHP frontend.\\nIt is configured to communicate with either the Redis follower or leader Services, depending on whether the request is a read or a write.\\nThe frontend exposes a JSON interface, and serves a jQuery-Ajax-based UX.\\n\\nWith Podman Desktop, you can prepare the Guestbook frontend image and container on your local container engine, and deploy the results to Kubernetes pods and services.\\nThis is functionally equal to the `frontend` deployment that the Kubernetes example propose.\\n\\n#### Procedure\\n\\n1. Open ** Images > Pull an image**.\\n 1. **Image to Pull**: enter `gcr.io/google_samples/gb-frontend:v5`\\n 1. Click **Pull image** to pull the image to your container engine local image registry.\\n 1. Wait for the pull to complete.\\n 1. Click **Done** to get back to the images list.\\n1. ** Search images**: enter `gb-frontend:v5` to find the image.\\n1. Click **** to open the **Create a container from image** dialog.\\n 1. **Container name**: enter `frontend`,\\n 1. **Local port for `80/tcp`**: `9000`.\\n 1. Click ** Start Container** to start the container in your container engine.\\n1. ** Search containers**: enter `frontend` to find the running container.\\n1. Click **** to stop the container: you do not need it to run in the container engine.\\n1. Click ** > Deploy to Kubernetes** to open the **Deploy generated pod to Kubernetes** screen.\\n 1. **Pod Name**: enter `frontend`.\\n 1. **Use Kubernetes Services**: select **Replace `hostPort` exposure on containers by Services. It is the recommended way to expose ports, as a cluster policy might prevent to use `hostPort`.**\\n 1. **Expose service locally using Kubernetes Ingress**: select **Create a Kubernetes ingress to get access to the ports that this pod exposes, at the default ingress controller location. Example: on a default Kind cluster created with Podman Desktop: `http://localhost:9090`. Requirements: your cluster has an ingress controller`**.\\n 1. **Kubernetes namespaces**: select `default`.\\n 1. Click ** Deploy**.\\n ![Deploy generated frontend pod to Kubernetes screen](img/running-a-local-kubernetes-cluster-with-podman-desktop/deploy-generated-frontend-pod-to-kubernetes.png)\\n 1. Wait for the pod to reach the state: **Phase: Running**.\\n 1. Click **Done**.\\n\\n#### Verification\\n\\n1. The ** Pods** screen lists the running `frontend` pod.\\n\\n ![`frontend` pod is running](img/running-a-local-kubernetes-cluster-with-podman-desktop/frontend-pod-is-running.png)\\n\\n1. Go to `http://localhost:9090`: the Guestbook application is running."},{"id":"podman-desktop-release-0.14","metadata":{"permalink":"/blog/podman-desktop-release-0.14","source":"@site/blog/2023-04-14-release-0.14.md","title":"Release Notes - Podman Desktop 0.14","description":"Podman Desktop 0.14 has been released!","date":"2023-04-14T00:00:00.000Z","formattedDate":"April 14, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"kind","permalink":"/blog/tags/kind"}],"readingTime":4.025,"hasTruncateMarker":true,"authors":[{"name":"Tim deBoer","title":"Architect","url":"https://github.com/deboer-tim","imageURL":"https://github.com/deboer-tim.png","key":"deboer"}],"frontMatter":{"title":"Release Notes - Podman Desktop 0.14","description":"Podman Desktop 0.14 has been released!","slug":"podman-desktop-release-0.14","authors":["deboer"],"tags":["podman-desktop","release","kubernetes","kind"],"hide_table_of_contents":false},"prevItem":{"title":"Setting up and running a Kubernetes cluster locally with Podman Desktop","permalink":"/blog/running-a-local-kubernetes-cluster-with-podman-desktop"},"nextItem":{"title":"Release Notes - Podman Desktop 0.13","permalink":"/blog/podman-desktop-release-0.13"}},"content":"import ReactPlayer from \'react-player\'\\n\\nPodman Desktop 0.14 - Our Kind-est release yet!\\n\\nWe have been working on a Kind extension for a while now, and decided it is time to promote it\\ninto a release just in time for KubeCon and CloudNativeCon Europe!\\n\\nWe\'re especially excited about releasing Kind because it finally shows the full purpose\\nof Podman Desktop: not just local container engines, but Kubernetes too. More importantly,\\nproviding tools that allow you to manage both environments and seamlessly move between them.\\n\\nSome of these features were available in development mode over the last few releases,\\nbut since they are now in the release build, we will do a full roundup and talk about\\nall the Kind features.\\n\\n\x3c!--Main Features--\x3e\\n\\n- **Kind Installation**: Install Kind from the status bar\\n- **Manage Kind Clusters**: Create and manage Kind clusters from ** Settings > Resources**\\n- **Using Kind**: Deploying YAML and sharing images to a cluster\\n- **Kind Ingress**: Install a Contour ingress controller\\n- **UX and UI Improvements**: Updated preferences and telemetry prompt\\n\\nPodman Desktop 0.14 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-0-14-hero](img/podman-desktop-release-0.14/podman-desktop-release-0.14.png)\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release details\\n\\n### Kind Installation\\n\\nGet Kind up and running in seconds! The Kind extension is now bundled as part of Podman Desktop\\n[1421](https://github.com/containers/podman-desktop/issues/1421)\\nand allows you to easily [install Kind directly from the status bar](/docs/kubernetes/kind/installing-kind)\\n[1257](https://github.com/containers/podman-desktop/issues/1257).\\n\\nThe installed `kind` CLI is available from the system shell [1516](https://github.com/containers/podman-desktop/issues/1516),\\nallowing you to open a terminal window to `kind get clusters` or work with other tools.\\n\\n### Manage Kind Clusters\\n\\nOnce Kind is installed (or if you already had it), you can manage your clusters in ** Settings > Resources**.\\nFrom here you can [create Kind clusters](/docs/kubernetes/kind/creating-a-kind-cluster),\\nstart/stop [1953](https://github.com/containers/podman-desktop/issues/1953)\\nor delete [1977](https://github.com/containers/podman-desktop/issues/1977) them.\\n\\n![kind-clusters](img/podman-desktop-release-0.14/kind-clusters.png)\\n\\nThe Kind control plane runs as a container. You will see this container\\nin the **Container** list and can also start or stop it from there.\\n\\n### Using Kind\\n\\nNow that you have Kind installed and running, what can you do with it?\\nIf you like terminals, you can always open one up and use the Kind CLI to\\n[interact with your cluster](https://kind.sigs.k8s.io/docs/user/quick-start/#interacting-with-your-cluster).\\n\\nWithin Podman Desktop we have started with two ways to interact with the cluster.\\nThe first is the ability to play local YAML files on your Kind (or any other Kubernetes!) cluster [1261](https://github.com/containers/podman-desktop/issues/1261). This allows you to take existing Kubernetes YAML definitons -\\nyour deployments, services, or other objects - and deploy it to the cluster.\\n\\n\\n\\nAs you deploy pods, they will automatically appear in the list of **Pods** [1263](https://github.com/containers/podman-desktop/issues/1263), allowing you to start, stop, and interact them just like pods running on Podman.\\n\\nOne of the most common uses is to deploy a container that you have been running on Podman, and this will fail\\nif the image is not available in Kind. To solve this we have made it easy to push images from\\nPodman to Kind [1448](https://github.com/containers/podman-desktop/issues/1448).\\n\\n![push-image-kind](img/podman-desktop-release-0.14/push-image-kind.png)\\n\\n### Kind Ingress\\n\\nIf you deploy a pod to Kind, you are also going to want to reach it! To do this you will need to install a load balancer or\\ningress controller so that the pod is accessible from outside the cluster. We made it easy to install the Contour ingress\\ncontroller while creating a Kind cluster [1675](https://github.com/containers/podman-desktop/issues/1675),\\nso if you created your cluster with Podman Desktop it is already there!\\n\\n![kind-ingress](img/podman-desktop-release-0.14/kind-ingress.png)\\n\\nWe have several other Kind and Kubernetes features planned to expand the supported scenarios, but hopefully this\\nmakes it easy to get started with Kind and shows where we\'re headed. As always, feedback is appreciated!\\n\\n### UI and UX improvements\\n\\n#### Updated Preferences\\n\\nThe ** Settings > Preferences** page has been updated with a new design [1913](https://github.com/containers/podman-desktop/pull/1913),\\nmaking it easier to see and change preferences. Changes are live, no more Update button.\\n\\n![preferences](https://user-images.githubusercontent.com/49404737/229498507-e754b55c-dcbd-486d-9ee3-a1fe3bed7271.gif)\\n\\n#### Telemetry Prompt\\n\\nThe prompt to enable or disable telemetry has been moved from its own dialog into the **Welcome** screen.\\n[1927](https://github.com/containers/podman-desktop/pull/1927)\\nThis is more usable, one less prompt, and solves a window-layering issue for some users!\\n\\n![telemetry prompt](https://user-images.githubusercontent.com/19958075/229577331-365a9a01-0426-4482-a95d-f5dfe39af90a.png)\\n\\n---\\n\\n## Other notable enhancements\\n\\n- Extension support for opening an external URL [2028](https://github.com/containers/podman-desktop/pull/2028) and\\n accessing the clipboard [2023](https://github.com/containers/podman-desktop/pull/2023)\\n\\n---\\n\\n## Documentation\\n\\nNaturally, we have a section in the documentation just for [Kind](https://podman-desktop.io/docs/kubernetes/kind).\\n\\n---\\n\\n## Notable bug fixes\\n\\n- Avoid a dialog box if unable to check for updates [2062](https://github.com/containers/podman-desktop/pull/2062)\\n- Unable to get to the Dashboard if Kind (or Kubernetes) cluster was not running [2052](https://github.com/containers/podman-desktop/issues/2052)\\n\\n---\\n\\n## Final notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.14.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-0.13","metadata":{"permalink":"/blog/podman-desktop-release-0.13","source":"@site/blog/2023-03-29-release-0.13.md","title":"Release Notes - Podman Desktop 0.13","description":"Podman Desktop 0.13 has been released!","date":"2023-03-29T00:00:00.000Z","formattedDate":"March 29, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"},{"label":"compose","permalink":"/blog/tags/compose"}],"readingTime":3.155,"hasTruncateMarker":true,"authors":[{"name":"Tim deBoer","title":"Architect","url":"https://github.com/deboer-tim","imageURL":"https://github.com/deboer-tim.png","key":"deboer"}],"frontMatter":{"title":"Release Notes - Podman Desktop 0.13","description":"Podman Desktop 0.13 has been released!","slug":"podman-desktop-release-0.13","authors":["deboer"],"tags":["podman-desktop","release","kubernetes","compose"],"hide_table_of_contents":false},"prevItem":{"title":"Release Notes - Podman Desktop 0.14","permalink":"/blog/podman-desktop-release-0.14"},"nextItem":{"title":"5 things to know about Podman Desktop for a Docker user","permalink":"/blog/5-things-to-know-for-a-docker-user"}},"content":"import ReactPlayer from \'react-player\'\\n\\nThis release note covers Podman Desktop 0.13 release changes.\\n\\n\x3c!--Main Features--\x3e\\n\\n- **Podman Version**: Podman 4.4.4 now included in Windows and Mac installers.\\n- **Compose**: Support for installing Docker Compose.\\n- **Extensions**: Improved extension support for Podman Desktop with additional capabilities.\\n- **UX and UI Improvements**: Welcome page, task manager, resources, and update alerts.\\n\\nPodman Desktop 0.13 is now available. [Click here to download it](/downloads)!\\n\\n![Podman-desktop-0-13-hero](img/podman-desktop-release-0.13/podman-desktop-release-0.13.png)\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release details\\n\\n### Update to Podman v4.4.4\\n\\nPodman Desktop 0.13 embeds [Podman 4.4.4](https://github.com/containers/podman/releases/tag/v4.4.4) in\\nWindows and macOS installers [#1456](https://github.com/containers/podman-desktop/pull/1456).\\n\\n### Compose support\\n\\nYou can install Docker Compose from the Podman Desktop UI [#1578](https://github.com/containers/podman-desktop/pull/1578). This will allow you use Compose workflows using Podman.\\n\\n### Extensions\\n\\nTo make it easier to extend Podman Desktop we have:\\n\\n- Published the [Podman Desktop Extension API](https://www.npmjs.com/package/@podman-desktop/api) to npmjs [#1727](https://github.com/containers/podman-desktop/pull/1727)\\n- Documented [how to create, publish, and install your own extensions](https://podman-desktop.io/docs/extensions)\\n- Expanded the API for `QuickPickInput` [#1839](https://github.com/containers/podman-desktop/pull/1839)\\n\\n### UI and UX improvements\\n\\n#### Welcome page [#1726](https://github.com/containers/podman-desktop/pull/1726)\\n\\nThe first time every user starts Podman Desktop, they will see a welcome page:\\n\\n![welcome-page](https://user-images.githubusercontent.com/19958075/225682776-e016ba31-5bb9-41d5-87ed-f93caeb3fb84.png)\\n\\nNote that the Welcome page will only appear the first time you run Podman Desktop 0.13.0, and none of your settings or assets in Podman Desktop will be affected by it.\\nOver time, this page will be expanded to help with initial setup and configuration.\\n\\n#### New Task Manager [#1724](https://github.com/containers/podman-desktop/pull/1724)\\n\\nA new Task Manager has been added to the status bar to see the progress (or return to) long running tasks. To start with, building images [#1725](https://github.com/containers/podman-desktop/pull/1725) and Podman machine [#1742](https://github.com/containers/podman-desktop/pull/1742) are using the task manager.\\n\\n![task-manager](img/podman-desktop-release-0.13/task-manager.png)\\n\\n#### Updated Resources Settings [#1582](https://github.com/containers/podman-desktop/pull/1582)\\n\\nThe ** Settings > Resources** page has been updated with a new design, making it easier to see and control your providers from a single place.\\n\\n![resources](https://user-images.githubusercontent.com/49404737/221908815-595715fe-4c95-4087-89e0-45e5544ed5c9.gif)\\n\\nThe other settings pages have been updated for consistency with this new design.\\n\\n#### Update Alerts [#1827](https://github.com/containers/podman-desktop/pull/1827)\\n\\nA new alert button will appear in the status bar when future updates are available.\\n\\n\\n\\n#### Prune buttons [#1481](https://github.com/containers/podman-desktop/pull/1481), [#1482](https://github.com/containers/podman-desktop/pull/1482), [#1484](https://github.com/containers/podman-desktop/pull/1484)\\n\\nWe\'ve added buttons to prune unused volumes [#1481](https://github.com/containers/podman-desktop/pull/1481), images [#1482](https://github.com/containers/podman-desktop/pull/1482) and pods [#1484](https://github.com/containers/podman-desktop/pull/1484).\\n\\n![prune-image](img/podman-desktop-release-0.13/prune-image.png)\\n\\n---\\n\\n## Other notable enhancements\\n\\n- Kubernetes pods are now shown in the Pods view [#1312](https://github.com/containers/podman-desktop/pull/1312)\\n- Easy button to fix Docker compatibility mode on macOS [#1697](https://github.com/containers/podman-desktop/pull/1697)\\n- Display extension icons [#1058](https://github.com/containers/podman-desktop/pull/1058)\\n- API to cancel long running tasks [#1777](https://github.com/containers/podman-desktop/pull/1777)\\n\\n---\\n\\n## Documentation\\n\\nThe documentation has new content:\\n\\n- [How to create, publish, and install your own Podman Desktop extensions](https://podman-desktop.io/docs/extensions)\\n- [Using Compose](https://podman-desktop.io/docs/compose/podman-compose)\\n- [Restarting Kind](https://podman-desktop.io/docs/kubernetes/kind)\\n\\n---\\n\\n## Notable bug fixes\\n\\n- Periodically check and refresh Podman connection on Windows and Mac [#1662](https://github.com/containers/podman-desktop/pull/1662)\\n- Fix inconsistent Log view behaviour [#1710](https://github.com/containers/podman-desktop/pull/1710)\\n- Don\'t create route for regular Kubernetes clusters [#1707](https://github.com/containers/podman-desktop/pull/1707)\\n- Fix copy button on empty screen [#1804](https://github.com/containers/podman-desktop/pull/1804)\\n- Register extension tray items correctly [#1778](https://github.com/containers/podman-desktop/pull/1778) and handle updates [#1800](https://github.com/containers/podman-desktop/pull/1800)\\n\\n---\\n\\n## Community thank you\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop 0.13 even better:\\n\\n- [`Tony Soloveyv`](https://github.com/Tony-Sol) in [#1605 - Fix directories inconsistency in `~/.local/share/`](https://github.com/containers/podman-desktop/pull/1605)\\n- [`Oleg`](https://github.com/RobotSail) in [#1567 - Check for Flatpak when calling command from exec](https://github.com/containers/podman-desktop/pull/1567)\\n- [`Christoph Blecker`](https://github.com/cblecker) in [#1556 - Fix: Hide dock icon on macOS if starting minimized](https://github.com/containers/podman-desktop/pull/1556)\\n- [`Paul Wright`](https://github.com/pwright) in [#1604 - Docs: correct syntax of kind doc](https://github.com/containers/podman-desktop/pull/1604)\\n- [`Denis Golovin`](https://github.com/dgolovin) in [#1790 - Feat: add EventEmitter class to extension API](https://github.com/containers/podman-desktop/pull/1790)\\n- [`Christophe Fergeau`](https://github.com/cfergeau) in [#1642 - Fix: Pod list \\"an pod\\" typing error](https://github.com/containers/podman-desktop/pull/1642)\\n\\n## Final notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.13.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"5-things-to-know-for-a-docker-user","metadata":{"permalink":"/blog/5-things-to-know-for-a-docker-user","source":"@site/blog/2023-03-24-5-things-to-know-for-a-docker-user.md","title":"5 things to know about Podman Desktop for a Docker user","description":"Important things to know when switching from Docker Desktop to Podman Desktop","date":"2023-03-24T00:00:00.000Z","formattedDate":"March 24, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"docker","permalink":"/blog/tags/docker"},{"label":"migrating","permalink":"/blog/tags/migrating"}],"readingTime":4.275,"hasTruncateMarker":true,"authors":[{"name":"Florent Benoit","title":"Maintainer of Podman Desktop","url":"https://github.com/benoitf","imageURL":"https://github.com/benoitf.png","key":"benoitf"}],"frontMatter":{"title":"5 things to know about Podman Desktop for a Docker user","description":"Important things to know when switching from Docker Desktop to Podman Desktop","slug":"5-things-to-know-for-a-docker-user","authors":["benoitf"],"tags":["podman-desktop","docker","migrating"],"hide_table_of_contents":false},"prevItem":{"title":"Release Notes - Podman Desktop 0.13","permalink":"/blog/podman-desktop-release-0.13"},"nextItem":{"title":"Release Notes - Podman Desktop 0.12","permalink":"/blog/podman-desktop-release-0.12"}},"content":"The 5 things to know being a Docker user by using Podman Desktop:\\n\\n- **Use a single UI**: Podman Desktop works with several container engines, including Docker.\\n- The **compatibility mode**: How to ensure tools are working with Podman instead of Docker.\\n- **Compose** support: How to work with Compose files and Podman.\\n- **Kubernetes** support: How to use Kubernetes with Podman.\\n- **Security**: Use `rootless` mode or containers without root privileges.\\n\\n![5-things-to-know-for-a-docker-user-hero](img/5-things-to-know-for-a-docker-user/5-things-to-know-for-a-docker-user-hero.png)\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Use Podman Desktop to interact with containers running in Docker\\n\\nDocker Desktop provides a UI to interact with containers and images. But the UI depends on Docker API and it is not possible to use the UI with Docker and Podman at the same time.\\n\\nPodman Desktop is a multi-engine UI tool. The UI is compatible with the API of Docker and Podman. It means all containers and images from all the engines at the same time are visible in the UI.\\n\\nWhen migrating from Docker to Podman, you can use Podman Desktop to interact with containers running in Docker. Explore all commands and features of Podman Desktop and see all the resources from Docker.\\n\\n![Many container engines at the same time](img/5-things-to-know-for-a-docker-user/multiple-container-engines.png)\\n\\n## Docker compatibility mode\\n\\nUsing Podman with Podman Desktop or with the Podman CLI is straightforward. But some tools expect to find `docker` CLI or `docker.sock` socket. In this case, you have to use the compatibility mode of Podman.\\n\\n### Socket file compatibility\\n\\nThe socket compatibility mode is a feature of Podman that allows to bind the Podman socket under the Docker socket path.\\n\\nOn Windows the socket compatibility mode is always enabled by default. On macOS, by using the `.pkg installer` it is active by default. But when installing with `brew`, it will not be there because it requires some admin permissions.\\n\\nThat is not an issue because you can enable it by [invoking a CLI tool](https://podman-desktop.io/docs/migrating-from-docker/using-podman-mac-helper) that will setup the compatibility mode.\\n\\nFor example if you use [`TestContainers`](https://www.testcontainers.org/) in your Java project, you can use the compatibility mode to ensure that the tool will use Podman instead of Docker.\\n\\n### CLI compatibility\\n\\nIf you have scripts relying on `docker` CLI, you can use the compatibility mode to ensure that the tool is working with Podman instead of Docker.\\n\\nIf you have the `docker` CLI installed on your computer, you can use the socket file compatibility of docker to ensure that the tool is working with Podman engine instead of Docker.\\n\\nIf you do not have the `docker` CLI installed on your computer, you can [Create a script](https://podman-desktop.io/docs/migrating-from-docker/emulating-docker-cli-with-podman) called `docker` that will call the `podman` CLI\\n\\n**_NOTE:_** creating a shell prompt alias, for example `alias docker=podman`, will not work inside scripts that you call.\\n\\n## Compose\\n\\nAs a user of Docker, you might use `docker compose` (or `docker-compose`) to run some of your applications.\\n\\nFor now Podman does not include a `Compose` support directly in the CLI with a command `podman compose`.\\n\\n`Compose` can work with the Podman socket.\\n\\nBased on the compatibility mode (see [section about Docker compatibility mode](#docker-compatibility-mode)):\\n\\n- Enabled: you can use the `compose` binary to run your applications.\\n- Disabled: you need to [export the environment variable DOCKER_HOST](https://podman-desktop.io/docs/migrating-from-docker/using-the-docker_host-environment-variable) before running compose.\\n\\nYou can now use the `compose` binary to run your applications and it will use Podman engine.\\n\\nPodman Desktop has a `compose` extension that can fetch `compose` binary if not already available on the filesystem.\\n\\nPodman Desktop UI displays the containers created by `Compose` are in the same group.\\n\\n![Compose support in the UI](img/5-things-to-know-for-a-docker-user/compose-containers-in-ui.png)\\n\\n## Kubernetes\\n\\nIt is possible to start a Kubernetes cluster with Docker.\\n\\nPodman supports directly a subset of Kubernetes resources that you can use with `.yaml` files.\\n\\nFor example if you only want to create a `Pod` resource, you can use the `Play Kubernetes YAML` button from the `Containers` list screen with your `.yaml` file. No need to install or start a Kubernetes cluster.\\n\\n![Play Kubernetes YAML](img/5-things-to-know-for-a-docker-user/play-kubernetes-yaml.png)\\n\\nIt is possible to do the counter-part. Export the definition of a container or pod to a Kubernetes resource. You can use the `Generate kube` button from the kebab menu of a given container or pod.\\n\\n![Kubernetes generate](img/5-things-to-know-for-a-docker-user/kube-generate.png)\\n\\nPodman handles pods and in the Podman Desktop UI, you can see all the pods inside a Pod section. All containers inside the pod are in the same group.\\n\\n![Pods in the UI](img/5-things-to-know-for-a-docker-user/pods-in-ui.png)\\n\\n![Containers from pod](img/5-things-to-know-for-a-docker-user/containers-from-pod.png)\\n\\nAn experimental `kind` extension is bringing the creation of full-blown Kubernetes cluster with Podman.\\n\\n## Rootless mode\\n\\nOne of the difference of Docker and Podman is the way they handle containers. Docker requires root privileges to run containers by default. Podman can run containers without root privileges by default.\\n\\nIt means that for example, starting a container with a port < 1024 will not work. You need to use a port > 1024.\\n\\nIf you still need to create containers with a port < 1024, you can change the Podman machine configuration of the Podman Machine if you are on Windows or macOS.\\n\\nThe command is `podman machine --rootful` to enable the execution with root privileges or `podman machine --rootful=false` to switch back to rootless mode."},{"id":"podman-desktop-release-0.12","metadata":{"permalink":"/blog/podman-desktop-release-0.12","source":"@site/blog/2023-02-15-release-0.12.md","title":"Release Notes - Podman Desktop 0.12","description":"Podman Desktop 0.12 has been released!","date":"2023-02-15T00:00:00.000Z","formattedDate":"February 15, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"}],"readingTime":4.505,"hasTruncateMarker":true,"authors":[{"name":"Stevan Le Meur","title":"Product Manager","url":"https://github.com/slemeur","imageURL":"https://github.com/slemeur.png","key":"slemeur"}],"frontMatter":{"title":"Release Notes - Podman Desktop 0.12","description":"Podman Desktop 0.12 has been released!","slug":"podman-desktop-release-0.12","authors":["slemeur"],"tags":["podman-desktop","release","kubernetes"],"hide_table_of_contents":false},"prevItem":{"title":"5 things to know about Podman Desktop for a Docker user","permalink":"/blog/5-things-to-know-for-a-docker-user"},"nextItem":{"title":"Release Notes - Podman Desktop 0.11","permalink":"/blog/podman-desktop-release-0.11"}},"content":"import ReactPlayer from \'react-player\'\\n\\nThis release note covers Podman Desktop 0.12 release changes.\\n\\n\x3c!--Main Features--\x3e\\n\\n- **Podman Version**: Podman 4.4.1 now included in Windows and Mac installers.\\n- **Containers Configuration**: Configure port mappings for an image without exported ports.\\n- **Windows Home Support**: Podman Desktop now supports Windows Home Edition.\\n- **Start minimized**: Option to start Podman Desktop minimized to system tray.\\n- **UX and UI Improvements**: Consistent actions, placeholder for logs, unified icons and others.\\n\\nPodman Desktop 0.12 is now available. [Click here to download it](/downloads)!\\n\\n![podman-desktop-0-12-hero](img/podman-desktop-release-0.12/podman-desktop-release-0.12.png)\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release Details\\n\\n### Update to Podman v4.4.1 [#1456](https://github.com/containers/podman-desktop/pull/1456)\\n\\nPodman Desktop 0.12 embeds [Podman 4.4.1](https://github.com/containers/podman/releases/tag/v4.4.1) in Windows and macOS installers. Make sure to upgrade to benefit from the latest Podman features and bug fixes.\\n\\n### Configuring port mappings when an image has no exported port [#1265](https://github.com/containers/podman-desktop/pull/1265)\\n\\nWith the latest update, users can now add multiple local-to-remote port mappings when starting a container from an image that has no exported ports. This feature provides users with the flexibility to specify which ports on their local machine should map to which ports on the container, even if the container does not have any exported ports by default.\\n\\n![port-mapping](https://user-images.githubusercontent.com/49404737/215112797-86dcf3f0-121a-487e-a71f-ad41e91f93da.gif)\\n\\n### Installing Podman Dekstop on Windows Home Edition [#1268](https://github.com/containers/podman-desktop/pull/1268)\\n\\nPodman Desktop 0.12 offers the ability to be installed on Windows Home Edition. The mechanism uses Virtual Machine Platform detection, instead of hyper-v. WSL2 is still requires but can be installed along with the installation process.\\n\\n![install-windows-home-edition-2](https://user-images.githubusercontent.com/436777/215121429-7c757aaa-a838-43db-98a2-78ad368f407e.png)\\n\\n### Option to automatically minimize Podman Desktop on login [#1374](https://github.com/containers/podman-desktop/pull/1374)\\n\\nPodman Desktop now provides a \\"start minimized\\" option when users log in onto the laptop. This option, available from the application\'s settings, can be useful if users want to automatically launch Podman Desktop at log in, but prefer not to have the window visible on the screen. With this feature, you can ensure that Podman Desktop is up and running in the background without any interruption to your workflows.\\n\\n- Go to ** Settings > Preferences > Login: Minimize** to activate the option.\\n\\n![minimize-on-login](https://user-images.githubusercontent.com/6422176/216651424-bcf756fd-7554-4b24-a838-e3e2f798fe6e.png)\\n\\n### UI and UX Improvements\\n\\n#### Improved actions consistency [#1225](https://github.com/containers/podman-desktop/pull/1225)\\n\\nActions displayed in the list pages for Images and Containers have been reviewed and made consistent between other pages.\\n\\n![action-consistency-1](https://user-images.githubusercontent.com/19958075/214104678-2d4148d7-484e-41f9-9da9-aecee328ae2b.png)\\n\\nActions displayed in the header of the container\'s details page have been improved so that the actions are always displayed in the same order.\\n\\n![action-consistency-2](https://user-images.githubusercontent.com/19958075/214104663-64fa0601-bb79-49bf-8226-6a78a88d3622.png)\\n\\n#### Consistent status icons for Pods, Containers, Images and Volumes [#1326](https://github.com/containers/podman-desktop/pull/1326), [#1377](https://github.com/containers/podman-desktop/pull/1377), [#1459](https://github.com/containers/podman-desktop/pull/1459) and [#1245](https://github.com/containers/podman-desktop/pull/1245)\\n\\nThe status icons for Pods, Containers, Images, and Volumes have been unified and use consistent states.\\n\\n![pods-status-icon](https://user-images.githubusercontent.com/19958075/216671859-bdd8dca4-56b7-40a8-961a-dcb6e01be61e.png)\\n\\nIcons in empty screens have been updated to use the same consistent SVG icon as the status icons.\\n\\n![empty-screen-2](https://user-images.githubusercontent.com/436777/214577726-f4cfde7b-017a-499d-a2a9-e50d455ffaf0.png)\\n\\n#### Placeholder when logs for containers are being fetched [#1353](https://github.com/containers/podman-desktop/pull/1353)\\n\\nA placeholder is now displayed when logs are being fetched.\\n![placeholder-loading-logs](https://user-images.githubusercontent.com/49404737/216952505-899308ae-183e-487a-b6e5-28832a0b6452.gif)\\n\\n#### Fixed alignement in badges from the navigation sidebar [#1357](https://github.com/containers/podman-desktop/pull/1357)\\n\\nBadges in the sidebar are now aligned with the title of the section.\\n\\n![alignement-badges](https://user-images.githubusercontent.com/49404737/216336502-2a34dea3-fd41-4184-8cfe-9226d70da070.png)\\n\\n#### Enable/disable open browser action based on container state [#1395](https://github.com/containers/podman-desktop/pull/1395) and [#1397](https://github.com/containers/podman-desktop/pull/1397)\\n\\nThe action to open the browser if a port is opened in a container, is now disabled when the container is stopped. It is also hidden in the kebab menu.\\n\\n![enable-disable-container-actions](https://user-images.githubusercontent.com/49404737/217284414-1bdc820b-30a8-485e-b0f9-485229026696.gif)\\n\\n---\\n\\n## Other Notable Enhancements\\n\\n- Display extension icons [#1058](https://github.com/containers/podman-desktop/pull/1058)\\n- Solid Icons [#1267](https://github.com/containers/podman-desktop/pull/1276)\\n- Differentiate icons compared to status icons [#1268](https://github.com/containers/podman-desktop/pull/1298)\\n- Refactors window initializing [#1309](https://github.com/containers/podman-desktop/pull/1309)\\n- Change window creation background color to dark [#1310](https://github.com/containers/podman-desktop/pull/1310)\\n- Use Podman `machine inspect` to read the address to connect to the Podman machine [#1364](https://github.com/containers/podman-desktop/pull/1364)\\n- Update the editor content when the pod name changes, and disable the deploy button when empty [#1403](https://github.com/containers/podman-desktop/pull/1403)\\n- Ability to manually set color of tray icon for Windows and Linux [#1243](https://github.com/containers/podman-desktop/pull/1243)\\n- Better UI feedback when starting pods [#1242](https://github.com/containers/podman-desktop/pull/1242)\\n\\n---\\n\\n## Documentation\\n\\nThe documentation had many editorial reviews, and new content.\\n\\n- [Link to simple WSL2 installation instructions](/docs/installation/windows-install)\\n- [Refresh Windows Installation](/docs/installation/windows-install)\\n- [Revamped installation introduction](/docs/installation)\\n- [Reorganized Linux installation](/docs/installation/linux-install)\\n- [Installing Podman with OpenShift Local](/docs/onboarding/containers/installing-podman-with-openshift-local-on-windows)\\n- [Installing Podman Desktop on Windows in a restricted environment](/docs/installation/windows-install/installing-podman-desktop-and-podman-in-a-restricted-environment)\\n- [Fixed documentation on `podman-mac-helper` setup](/docs/migrating-from-docker/using-podman-mac-helper)\\n\\n---\\n\\n## Notable bug fixes\\n\\n- Fixed handling path with spaces on Windows when installing Podman [#1270](https://github.com/containers/podman-desktop/pull/1270)\\n- Removed padding from SVG icons [#1253](https://github.com/containers/podman-desktop/pull/1253)\\n- Website: fixed download links for Windows and macOS binaries [#1255](https://github.com/containers/podman-desktop/pull/1255)\\n- Fixed prettier commands on Windows [#1266](https://github.com/containers/podman-desktop/pull/1267)\\n- Fixed new xterm instance spawn when clicking the logs route [#1344](https://github.com/containers/podman-desktop/pull/1344)\\n- Fixed need to wait that telemetry has been initilized before proceeding [#1373](https://github.com/containers/podman-desktop/pull/1373)\\n- Fixed new xterm instance spawn when clicking the logs route in pod details[#1393](https://github.com/containers/podman-desktop/pull/1393)\\n- Fixed stop spinner if image cannot be retrieved [#1394](https://github.com/containers/podman-desktop/pull/1394)\\n- Fixed escape command with quotes only for Windows [#1462](https://github.com/containers/podman-desktop/pull/1462)\\n- Fixed random CRC status change [#1420](https://github.com/containers/podman-desktop/pull/1420)\\n\\n---\\n\\n## Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop 0.12 even better:\\n\\n- [Philipp Wagner](https://github.com/imphil) in [#1274 - Link to simple WSL2 installation instructions](https://github.com/containers/podman-desktop/pull/1274)\\n- [Arthur S](https://github.com/arixmkii) in [#1364 - Get podman machine socketPath from podman machine inspect first](https://github.com/containers/podman-desktop/pull/1364)\\n- [Mitch West](https://github.com/Mitch9378) in [#1428 - Fix old documentation for \'podman-mac-helper setup\'](https://github.com/containers/podman-desktop/pull/1428)\\n\\n## Final Notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.12.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-0.11","metadata":{"permalink":"/blog/podman-desktop-release-0.11","source":"@site/blog/2023-01-18-release-0.11.md","title":"Release Notes - Podman Desktop 0.11","description":"Podman Desktop 0.11 has been released!","date":"2023-01-18T00:00:00.000Z","formattedDate":"January 18, 2023","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"}],"readingTime":9.43,"hasTruncateMarker":true,"authors":[{"name":"Stevan Le Meur","title":"Product Manager","url":"https://github.com/slemeur","imageURL":"https://github.com/slemeur.png","key":"slemeur"}],"frontMatter":{"title":"Release Notes - Podman Desktop 0.11","description":"Podman Desktop 0.11 has been released!","slug":"podman-desktop-release-0.11","authors":["slemeur"],"tags":["podman-desktop","release","kubernetes"],"hide_table_of_contents":false},"prevItem":{"title":"Release Notes - Podman Desktop 0.12","permalink":"/blog/podman-desktop-release-0.12"},"nextItem":{"title":"Release Notes - Podman Desktop 0.10","permalink":"/blog/podman-desktop-release-0.10"}},"content":"import ReactPlayer from \'react-player\'\\n\\nThis release note covers Podman Desktop 0.11 release changes.\\n\\n- **Air-Gapped Installation**: New all-in-one binaries for air-gapped installation.\\n- **Feedback**: Submit feedback directly from Podman Desktop.\\n- **Docker Compatibility Mode**: Information about the Docker compatibility mode.\\n- **Proxy Setting**: Toggle on/off the proxy setting.\\n- **Deploy to Kubernetes**: Select the namespace to deploy to Kubernetes.\\n- **Registry Configuration**: Simplified registry configuration for well known registries.\\n- **UX/UI Improvements**: View pod\'s container logs, better visual feedback, configurable editor font size, and more.\\n\\nPodman Desktop 0.11 is now available. [Click here to download it](/downloads)!\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release Details\\n\\n### Air-Gapped installation [#1104](https://github.com/containers/podman-desktop/pull/1104) [#1120](https://github.com/containers/podman-desktop/pull/1120)\\n\\nFor users who are not able to connect to the internet, a new all-in-one (airgap) binary that includes the Podman Desktop application and the Podman binaries is now available for both Mac and Windows. When initializing a new Podman machine using all-in-one binaries, it\'ll use the embedded files and not grab them from internet:\\n\\n- on Mac, it embeds the qemu FCOS binaries.\\n- on Windows, it embeds the WSL binary.\\n\\nTo differentiate the air-gapped binaries from the regular ones, you can check the artifactname, they\'re containing \'airgap\' and are bigger.\\nPlease note, that those binaries are available only on releases and not the pre-releases.\\n\\nThere is also an optional way to provide a custom Podman machine image in the create machine form. By providing the path to the image you want, Podman Desktop will create a machine with that image. Leaving the field empty will use the default image (the one included in the binary).\\n\\n\\n\\n### Feedback within Podman Desktop [#1078](https://github.com/containers/podman-desktop/pull/1078)\\n\\nSubmitting feedback on Podman Desktop is getting easier as it is possible directly within the tool. This will help to get more information about the issues you are facing and will help us to improve the tool.\\n\\n\\n\\nPlease feel free to submit any feedback you have, we are looking forward to hearing from you!\\n\\n### Docker compatibility mode [#1047](https://github.com/containers/podman-desktop/pull/1047)\\n\\nThe Docker compatibility mode is a feature that allows to use Podman as a drop-in replacement for Docker. It relies on the Docker socket helper provided with Podman and automatically handle the local setup of Podman path to the Docker socket. Tools like [Testcontainers](https://www.testcontainers.org/) or others are relying on this to communicate to the container engine.\\n\\nIn this new version of Podman Desktop, we are now providing information to the user about the status of this compatibility mode directly on the dashboard page. The way it works is the following:\\n\\n- When Docker is running: the socket is pointing to Docker.\\n- When Podman is starting and Docker is not running: the docker API socket will use Podman.\\n\\nIn case the compatibility mode is not activated, new documentation on how to activate it and how to easily switch between Docker and Podman is available here: [https://podman-desktop.io/docs/migrating-from-docker](https://podman-desktop.io/docs/migrating-from-docker).\\n\\nThis is a warning displayed for Windows users:\\n![windows-docker-compatibility](https://user-images.githubusercontent.com/436777/209305744-9056addd-f122-4f75-9e03-ad27a0109375.png)\\n\\nThis is the warning for Mac users:\\n![mac-docker-compatibility](https://user-images.githubusercontent.com/6422176/207964861-a9c1f72c-89d6-4816-beab-397af4125620.png)\\n\\n### Allow to toggle on/off the proxy setting [#983](https://github.com/containers/podman-desktop/pull/983)\\n\\nIn some context, users need the ability to disable and re-enable the proxy configuration very quickly, without having to entirely reconfigure it. This is now possible from the Podman Desktop settings page, where a toggle to enable/disable the proxy configuration has been added.\\n\\n\\n\\nNote: extensions can read this information and then update the proxy configuration.\\n\\n### Namespace selection for deploy to Kubernetes [#1008](https://github.com/containers/podman-desktop/pull/1008)\\n\\nA new dropdown menu has been added to the deploy to Kubernetes screen to allow selecting the namespace to deploy to. Defaults to defaultnamespace, if unable to get any from kube_client module.\\n\\nIf the user have set `kubectl config set-context --current --namespace=NAMESPACE` it honors that as the chosen value.\\n\\n![deploy-kubernetes-namespace](https://user-images.githubusercontent.com/7339809/206688886-095e4f15-42ae-4a0a-b1c6-ae4b547fcdfb.gif)\\n\\n### Configure Podman binary path [#941](https://github.com/containers/podman-desktop/pull/941)\\n\\nUsers may use a custom path to the podman binary. An option within settings (Settings -> Preferences) to allow providing an additional path to Podman binary has been added. This is useful for users who have installed Podman using a package manager and want to use the binary provided by the package manager. Additional information is available in the documentation for Mac users: [http://podman-desktop.io/docs/troubleshooting#unable-to-set-custom-binary-path-for-podman-on-macos](http://podman-desktop.io/docs/troubleshooting#unable-to-set-custom-binary-path-for-podman-on-macos)\\n\\n![custom-path](https://user-images.githubusercontent.com/6422176/204832063-5858065a-2fc3-49de-8d23-3b99b7d10dbf.png)\\n\\n### Provide pre-defined registries [#1201](https://github.com/containers/podman-desktop/pull/1201)\\n\\nThe experience of configuring a registry is getting simplified for the most popular ones. The user will be able to select a registry from a pre-defined list and will only have to provide the username and password. The following registries will be pre-defined:\\n\\n- Dockerhub\\n- Red Hat Quay\\n- GitHub\\n- IBM Container Registry\\n- Google Container Registry\\n\\n\\n\\n### UI/UX Improvements\\n\\n#### View Pods logs [#1122](https://github.com/containers/podman-desktop/pull/1122)\\n\\nThe pods details view provides the ability to view the logs of each containers that might be running in a pod. Moreover, as it can also be hard to scan and identify which container is producing which output, we appended the container name at the beginning of each output and differentiate each container with a different color.\\n\\n![pods-logs](https://user-images.githubusercontent.com/6422176/211024673-eee9bad8-1b0c-4446-b8d1-97a226282c4d.png)\\n\\n#### Improved feedback when clicking on container list action icons [#1150](https://github.com/containers/podman-desktop/pull/1150) [#1161](https://github.com/containers/podman-desktop/pull/1161)\\n\\nWhen starting/stopping or deleting a container, a spinner is now displayed. In case of error, a message indicating that the action failed will also be better indicated.\\n\\n\\n\\nFor containers that exit immediately or short-lived containers, the feedback is also improved and include report of error now provide a better feedback to the user [#1161](https://github.com/containers/podman-desktop/pull/1161).\\n\\n\\n\\n#### Allows to change the default font size for the editor [#1160](https://github.com/containers/podman-desktop/pull/1160)\\n\\nAn editor is used in several screens of Podman Desktop, from the inspect screen to container\'s outputs and Kubernetes YAML. The default font size is 10 pixels. It\'s now possible to adjust the font size to the one the one you prefer. This setting is persisted and will be used for all the editors of Podman Desktop and available from the preferences page (Settings -> Preferences).\\n\\n\\n\\n#### Keep expanded state of pods when refreshing containers [#1042](https://github.com/containers/podman-desktop/pull/1042)\\n\\nWhen switching from different screens of the application or simply refreshing the list of containers, the expanded state of each item in the list is now persisted and will be properly restored.\\n\\n\\n\\n#### Click on the Pod name redirects to the Pod details page [#1159](https://github.com/containers/podman-desktop/pull/1159)\\n\\nThe list of containers also displays pods, now clicking on the pod name directly redirects to the Pod details page.\\n\\n\\n\\n#### Improved styles of buttons for actions [#984](https://github.com/containers/podman-desktop/pull/984)\\n\\nThe style of the buttons for actions on item in the list of in details pages have been improved. The background has been removed, but to make the hover state more visible, the \\"hover\\" circle is visble and the icon\'s color is also changing.\\n\\nOn lists:\\n![list-actions](https://user-images.githubusercontent.com/6422176/205979121-b49a0ddf-03bb-4a4d-8d12-bc8d0bd52387.png)\\n\\nOn details pages:\\n![details-actions](https://user-images.githubusercontent.com/6422176/205979123-ea420b17-e834-4029-82eb-22949889eee9.png)\\n\\n#### Improved alignments in pages with lists [#1182](https://github.com/containers/podman-desktop/pull/1182)\\n\\nThe alignment of the items in the list of containers and pods have been improved. The header of each columns are now aligned with the text. and the actions icons are now aligned with the top of the text.\\n\\n![list-actions](https://user-images.githubusercontent.com/19958075/212712580-096fd090-0beb-40a4-8dc6-b3fdc5e81e35.png)\\n\\n---\\n\\n## Other Notable Enhancements\\n\\n- Statistics area in container details are always shown. ([#1131](https://github.com/containers/podman-desktop/pull/1131))\\n- Add more descriptive wording and more information to extensions. ([#985](https://github.com/containers/podman-desktop/pull/985))\\n- Allow to install on-the fly Podman Desktop extensions using an OCI image. ([#1187](https://github.com/containers/podman-desktop/pull/1187))\\n- Display correctly non-multiplexed stream in logs (when using non interactive mode). ([#1197](https://github.com/containers/podman-desktop/pull/1197))\\n- Font changed from white to gray for non-name sections (creation date, size). ([#1206](https://github.com/containers/podman-desktop/pull/1206))\\n- Add Help/about menu for macOS/Windows/Linux. ([#1207](https://github.com/containers/podman-desktop/pull/1207))\\n\\n---\\n\\n## Documentation\\n\\nComing with this new version of Podman Desktop, the documentation has been getting attention (with number of editorial reviews) and new content have been added.\\n\\nContent for helping users to migrate from Docker to Podman has been added:\\n\\n- [Using the `podman-mac-helper` tool to migrate from Docker to Podman on macOS](https://github.com/containers/podman-desktop/pull/1088)\\n- [better identify podman-mac-helper verification steps](https://github.com/containers/podman-desktop/pull/1129)\\n- [Emulating Docker CLI using Podman to migrate from Docker to Podman](https://github.com/containers/podman-desktop/pull/1143)\\n- [Migrating from Docker section](https://github.com/containers/podman-desktop/pull/1146)\\n- [Verifying that your tools are using Podman](https://github.com/containers/podman-desktop/pull/1152)\\n- [Importing saved containers](https://github.com/containers/podman-desktop/pull/1144)\\n\\nSeveral of other improvements have been made to the documentation and the website:\\n\\n- [Troubleshooting for Apple Silicon and brew x86_64 installs](https://github.com/containers/podman-desktop/pull/962)\\n- [Change text of custom binary location, add docs](https://github.com/containers/podman-desktop/pull/972)\\n- [Silent install option for windows](https://github.com/containers/podman-desktop/pull/974)\\n- [Upgrade to vite v4 and rollup v3](https://github.com/containers/podman-desktop/pull/1079)\\n- [Refreshing documentation on installing on Linux](https://github.com/containers/podman-desktop/pull/1118)\\n- [Identify the shell sessions in Installing on Linux](https://github.com/containers/podman-desktop/pull/1130)\\n- [Website: the linux binary is not a source, it should be promoted as a binary](https://github.com/containers/podman-desktop/pull/1133)\\n- [Introducing tabs for operatings systems and container engines](https://github.com/containers/podman-desktop/pull/1162)\\n- [website: In the landing page, update plugins and container engines lists](https://github.com/containers/podman-desktop/pull/1165)\\n- [Document where code is located within Podman Desktop](https://github.com/containers/podman-desktop/pull/1163)\\n- [(extension-api): Documentation on how to write an extension and use the api](https://github.com/containers/podman-desktop/pull/1172)\\n\\n---\\n\\n## Notable bug fixes\\n\\n- Update to v0.3.2 Docker Desktop API for extensions - [#1070](https://github.com/containers/podman-desktop/pull/1070)\\n- Updated link to the Matrix room - [#1076](https://github.com/containers/podman-desktop/pull/1076)\\n- Report error when container name already exists - [#1142](https://github.com/containers/podman-desktop/pull/1142)\\n- Fixed connectivity to the Podman machine when the generated socket length is greater than 104 characters in MacOS - [#1145](https://github.com/containers/podman-desktop/pull/1145)\\n- Do not use long calls for external clients - [#1151](https://github.com/containers/podman-desktop/pull/1151)\\n- Invalid name/tag for images with registries using a different port - [#1127](https://github.com/containers/podman-desktop/pull/1127)\\n- Invalid badge count for images when two images have the same tag - [#1124](https://github.com/containers/podman-desktop/pull/1124)\\n- Fixed detection of WSL2 - [#981](https://github.com/containers/podman-desktop/pull/981)\\n- Handle invalid kubeconfig files instead of crashing - [#953](https://github.com/containers/podman-desktop/pull/953)\\n- Removed redundant actions from details pages - [#1200](https://github.com/containers/podman-desktop/pull/1200)\\n- Fixed registry URL not aligned with header - [#1205](https://github.com/containers/podman-desktop/pull/1205)\\n- Moved SVGs to reusable components - [#1211](https://github.com/containers/podman-desktop/pull/1211)\\n\\n**Extensions API has also been improved in this new release:**\\n\\n- (extension-api): Allows to register a factory for kubernetes connection objects (like for container connections) - [#1040](https://github.com/containers/podman-desktop/pull/1040)\\n- (extension-api): List or inspect containers, be notified on events - [#1041](https://github.com/containers/podman-desktop/pull/1041)\\n- (extension-api): Allows to get provider notification - [#1045](https://github.com/containers/podman-desktop/pull/1045)\\n- (dd-extension-api): Implement toast API - [#1154](https://github.com/containers/podman-desktop/pull/1154)\\n- (extension-api): Moved extension properties to preferences - [#948](https://github.com/containers/podman-desktop/pull/948)\\n- (dd-extension-api): Added open dev console on dd webview in development mode - [#1071](https://github.com/containers/podman-desktop/pull/1071)\\n- (extension-api): Added notes on extension and frameworks/tooling of Podman Desktop - [#1166](https://github.com/containers/podman-desktop/pull/1166)\\n- (extension-api): Documentation on how to write an extension and use the api - [#1172](https://github.com/containers/podman-desktop/pull/1172)\\n- (dd-extension-api): DD extensions should see only minimal information on containers - [#1191](https://github.com/containers/podman-desktop/pull/1191)\\n\\n---\\n\\n## Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop 0.11 even better:\\n\\n- [Emmanuel Bernard](https://github.com/emmanuelbernard) in [#962 - Troubleshooting for Apple Silicon](https://github.com/containers/podman-desktop/pull/962)\\n- [Michael Prankl](https://github.com/eidottermihi) in [#974 - Silent install option for windows](https://github.com/containers/podman-desktop/pull/974)\\n- [Endre Lervik](https://github.com/elervik) in [#1008 - Namespace selection for deploy to kubernetes](https://github.com/containers/podman-desktop/pull/1008)\\n- [Evan FP](https://github.com/evanfpearson) in [#1145 - fixed socket path length error](https://github.com/containers/podman-desktop/pull/1145)\\n- [Lokesh Mandvekar](https://github.com/lsm5) in [#956 - add repository key to package.json](https://github.com/containers/podman-desktop/pull/956)\\n- [Jean Fran\xe7ois Maury](https://github.com/jeffmaury) in [#1194 - Cannot create Kind cluster on Windows](https://github.com/containers/podman-desktop/pull/1194)\\n\\n## Final Notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.11.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"podman-desktop-release-0.10","metadata":{"permalink":"/blog/podman-desktop-release-0.10","source":"@site/blog/2022-12-01-release-0.10-blog.md","title":"Release Notes - Podman Desktop 0.10","description":"Podman Desktop 0.10 has been released! New Create Container Wizard, improved Kubernetes workflows, revamped registries configuration, and more!","date":"2022-12-01T00:00:00.000Z","formattedDate":"December 1, 2022","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"release","permalink":"/blog/tags/release"},{"label":"kubernetes","permalink":"/blog/tags/kubernetes"}],"readingTime":4.115,"hasTruncateMarker":true,"authors":[{"name":"Dev Kumar","title":"Technical PMM Intern","url":"https://github.com/deekay2310","imageURL":"https://github.com/deekay2310.png","key":"deekay2310"}],"frontMatter":{"title":"Release Notes - Podman Desktop 0.10","description":"Podman Desktop 0.10 has been released! New Create Container Wizard, improved Kubernetes workflows, revamped registries configuration, and more!","slug":"podman-desktop-release-0.10","authors":["deekay2310"],"tags":["podman-desktop","release","kubernetes"],"hide_table_of_contents":false},"prevItem":{"title":"Release Notes - Podman Desktop 0.11","permalink":"/blog/podman-desktop-release-0.11"},"nextItem":{"title":"Build & run Podman Desktop in a DevContainer","permalink":"/blog/develop-using-devcontainer"}},"content":"This release note covers Podman Desktop 0.10 release changes.\\n\\n- **Containers Configuration**: Container creation wizzard allowing to define environment variables, networking and more configuration options.\\n- **Kubernetes Improvements**: Play Kubernetes YAML, custom Kubeconfig path support, reload of kube context.\\n- **Registries Configuration**: Revamped registries configuration UI.\\n- **Podman Version**: Podman 4.3.1 now included in Windows and Mac installers.\\n- **UX/UI Improvements**: Improved lists, better contrast, and more.\\n\\nPodman Desktop 0.10 is now available. [Click here to download it](/downloads)!\\n\\n\x3c!--truncate--\x3e\\n\\n---\\n\\n## Release Details\\n\\n### New configuration wizzard to create containers ([#773](https://github.com/containers/podman-desktop/pull/773))\\n\\nUntil now, we could only specify port binding when building images to start containers. The create container wizzard now includes several options enabling configuring volumes, environment variables, restart policy and settings on networking and security. It is also possible to reuse an existing (and already configured) a network when creating containers.\\n\\n![new container creation wizard](img/podman-desktop-release-0.10/new_container_creation_wizard.gif)\\n\\n### Kubernetes Capabilities Improvements\\n\\n**Custom Kubeconfig file path ([#780](https://github.com/containers/podman-desktop/pull/780))**\\n\\nKubeconfig path location is now configurable from ** Settings > Preferences > Kubernetes: Kubeconfig** and can be set to a custom path. By default, Podman Desktop use the path `$HOME/.kube/config` for the Kubeconfig file.\\n\\n![custom kubeconfig file path](img/podman-desktop-release-0.10/custom-kubeconfig.png)\\n\\n**Play Kubernetes YAML from the Pods list ([#739](https://github.com/containers/podman-desktop/pull/739))**\\n\\nPodman Desktop enables to play existing Kubernetes YAML files. This is now available from `Play Kubernetes YAML` button added to the Pods list, in addition to the Containers list.\\n\\n![play k8s yaml](img/podman-desktop-release-0.10/play_k8s_yaml.gif)\\n\\n**Kube context automatically reloaded when updated ([#813](https://github.com/containers/podman-desktop/pull/813))**\\n\\nAny change to the kube context will now be detected by Podman Desktop in its running state. The system tray, allowing to select which Kubernetes environment to work with, will now reload the kube context without restarting Podman Desktop.\\n\\n### Revamped Container Registries UI ([#446](https://github.com/containers/podman-desktop/issues/446))\\n\\nThe registries configuration UI has been revamped. Instead of using tiles for displaying the registries, now it uses a list where each registry can be added or edited directly in the list. The kebab menu provides options to edit or remove a registry from the list.\\n\\n![registries](img/podman-desktop-release-0.10/registries.png)\\n\\n### Update to Podman 4.3.1 ([#913](https://github.com/containers/podman-desktop/issues/913))\\n\\nPodman Desktop 0.10 is now embedding [Podman 4.3.1](https://github.com/containers/podman/releases/tag/v4.3.1) in Windows and macOS installers.\\n\\n### UI/UX Improvements\\n\\n**Improved lists UX ([#877](https://github.com/containers/podman-desktop/pull/877))**\\n\\nTo reduce the width used in the lists when displaying all the icons, main actions icons are now always displayed (before it was on hover) and the secondary actions are displayed in a kebab menu. For example Start/Stop and delete are primary actions while open the browser, inspect, generate kube yaml, etc. are secondary options.\\n\\n![kebab menu](img/podman-desktop-release-0.10/kebab-menu.png)\\n\\n**Delay appearance of text in navbar ([#767](https://github.com/containers/podman-desktop/pull/767))**\\n\\nWhen minimizing or expanding the navbar, the text was overlapping for a few second the page. Now it\'s displayed with a fading animation.\\n\\n**Selected state: better text color contrast ([#802](https://github.com/containers/podman-desktop/pull/802))**\\n\\nIn the `Images` page, on hover for both the image and the name column, the text contrast has been increased for better visibility: violet indicates that you have selected it.\\n\\n![text color when hover](img/podman-desktop-release-0.10/text-color.gif)\\n\\n**On Linux and Windows, the menu bar is now hidden by default ([#668](https://github.com/containers/podman-desktop/pull/668))**\\n\\nWith this change, the menu bar looks more integrated to the Operating System. The menu can appear if you hit the `Alt` key. Thanks to [Dylan M. Taylor](https://github.com/dylanmtaylor) for contributing to fix this.\\n\\n**Exit when clicking on the close icon of the dashboard on Linux ([#671](https://github.com/containers/podman-desktop/pull/671))**\\n\\nFor most users on Linux, there is no tray icon support. In this situation, when closed, Podman Desktop continues to run in background. [Dylan M. Taylor](https://github.com/dylanmtaylor) added a property to exit the app by default when clicking on the close icon. For people having tray icon support or with the desire of a different behavior, it is possible to disable it from the Settings.\\n\\n---\\n\\n## Other Notable Enhancements\\n\\n- Rename `Started` into `Age` in Containers list.([#878](https://github.com/containers/podman-desktop/pull/878))\\n- Added domain validation when adding a registry. ([#838](https://github.com/containers/podman-desktop/pull/838))\\n- Provided a consistent behavior with Podman CLI, `podman-machine-default` is now the default name when creating a Podman machine from Podman Desktop. ([#775](https://github.com/containers/podman-desktop/pull/775))\\n\\n---\\n\\n## Notable bug fixes\\n\\n- Fixed error handling when pulling images of Desktop Extensions. ([#782](https://github.com/containers/podman-desktop/pull/782))\\n- Fixed use of the full height of the screen when displaying log in the details of a container. ([#946](https://github.com/containers/podman-desktop/discussions/946))\\n- Fixed First start of Podman Desktop on flatpak was not seeing the podman engine ([#860](https://github.com/containers/podman-desktop/pull/860))\\n\\n## Community Thank You\\n\\n\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop 0.10 even better:\\n\\n- [Dylan M. Taylor](https://github.com/dylanmtaylor) in [#671](https://github.com/containers/podman-desktop/pull/671)\\n- [Fionn Kelleher](https://github.com/osslate) in [#713](https://github.com/containers/podman-desktop/pull/713)\\n- [Rostislav Svoboda](https://github.com/rsvoboda) in [#737](https://github.com/containers/podman-desktop/pull/737)\\n- [Denis Shemanaev](https://github.com/shemanaev) in [#783](https://github.com/containers/podman-desktop/pull/783)\\n- [Fabrice Flore-Th\xe9bault](https://github.com/themr0c) in [#856](https://github.com/containers/podman-desktop/pull/856)\\n- [Kevin](https://github.com/KevinAtSesam) in [#864](https://github.com/containers/podman-desktop/pull/864)\\n- [@sfrunza13](https://github.com/sfrunza13) in [#872](https://github.com/containers/podman-desktop/pull/872)\\n- [Anjan Nath](https://github.com/anjannath) in [#918](https://github.com/containers/podman-desktop/pull/918)\\n\\n## Final Notes\\n\\nThe complete list of issues fixed in this release is available [here](https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.10.0).\\n\\nGet the latest release from the [Downloads](/downloads) section of the website and boost your development journey with Podman Desktop. Additionally, visit the [GitHub repository](https://github.com/containers/podman-desktop) and see how you can help us make Podman Desktop better."},{"id":"develop-using-devcontainer","metadata":{"permalink":"/blog/develop-using-devcontainer","source":"@site/blog/2022-11-17-develop-podman-using-codespaces.md","title":"Build & run Podman Desktop in a DevContainer","description":"Develop Podman Desktop using a DevContainer locally or using GitHub Codespaces.","date":"2022-11-17T00:00:00.000Z","formattedDate":"November 17, 2022","tags":[{"label":"podman-desktop","permalink":"/blog/tags/podman-desktop"},{"label":"devcontainer","permalink":"/blog/tags/devcontainer"},{"label":"codespaces","permalink":"/blog/tags/codespaces"}],"readingTime":6.985,"hasTruncateMarker":true,"authors":[{"name":"Florent Benoit","title":"Maintainer of Podman Desktop","url":"https://github.com/benoitf","imageURL":"https://github.com/benoitf.png","key":"benoitf"}],"frontMatter":{"title":"Build & run Podman Desktop in a DevContainer","description":"Develop Podman Desktop using a DevContainer locally or using GitHub Codespaces.","slug":"develop-using-devcontainer","authors":["benoitf"],"tags":["podman-desktop","devcontainer","codespaces"],"hide_table_of_contents":false},"prevItem":{"title":"Release Notes - Podman Desktop 0.10","permalink":"/blog/podman-desktop-release-0.10"}},"content":"GitHub [announced last week](https://github.blog/changelog/2022-11-09-codespaces-for-free-and-pro-accounts/) that Codespaces is available for everyone and it includes free minutes.\\n\\nLet see how we can use a [Development Container](https://containers.dev/) having all the tools to build and run Podman Desktop. The Development Container works locally using Visual Studio Code but in this blog post we will see how it works directly with a simple click from GitHub.\\n\\nThe challenges are to run a desktop tool (Podman Desktop) and running a container engine (Podman) inside this Development Container without using too many memory !\\n\\n\x3c!--truncate--\x3e\\n\\n## Defining image of the container\\n\\nThe first thing is in the choice of the image for the container. It is possible to pick-up a default image and add some features but there is no existing feature for Podman at and most of the features are expecting to run on top of Debian/Ubuntu\\n\\nIf you are not interested in how to setup the image, jump to the [next section](#configure-the-devcontainer-using-devcontainerjson).\\n\\nPodman binaries are available quickly after the releases for Fedora. I decided then to use `Fedora 37` as the base image.\\n\\nLet start the Containerfile using:\\n\\n```docker\\nFROM quay.io/fedora/fedora:37\\n```\\n\\nThen I install Node.js 16 from official nodejs.org repository. It\'s easier to switch to the version that we need.\\n\\n```docker\\n# install Node.js + yarn\\nENV NODE_VERSION 16.18.1\\nRUN curl -SLO \\"https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz\\" && \\\\\\n tar -xzf \\"node-v$NODE_VERSION-linux-x64.tar.gz\\" -C /usr/local --strip-components=1 && \\\\\\n rm \\"node-v$NODE_VERSION-linux-x64.tar.gz\\" && \\\\\\n npm install -g yarn\\n```\\n\\nNow, all system dependencies used to run an Electron application needs to be installed.\\n\\nPodman is also installed so we can run some containers inside this container.\\n\\nAnd of course, we need to install VNC (I choose [tigervnc](https://tigervnc.org/)) with a light Window Manager ([fluxbox](http://fluxbox.org/)).\\n\\nTo connect to the display of the container, we need to expose VNC over HTML/websocket using [noVNC](https://novnc.com/)\\n\\nxterm is installed to start a terminal from the VNC side.\\n\\n```docker\\nRUN dnf -y update && \\\\\\n yum -y reinstall shadow-utils && \\\\\\n yum install -y git \\\\\\n # dependencies for Podman Desktop\\n nss \\\\\\n atk \\\\\\n at-spi2-atk \\\\\\n cups-libs \\\\\\n gtk3 \\\\\\n # for remote Display\\n fluxbox \\\\\\n tigervnc-server \\\\\\n xorg-x11-fonts-Type1 \\\\\\n novnc \\\\\\n supervisor \\\\\\n xdpyinfo \\\\\\n # for podman\\n podman \\\\\\n fuse-overlayfs --exclude container-selinux \\\\\\n xterm && \\\\\\n rm -rf /var/cache /var/log/dnf* /var/log/yum.*\\n```\\n\\nSupervisord setup the launch of the VNC server and the Window manager\\n\\n```docker\\nCOPY supervisord.conf /etc/supervisord.conf\\n```\\n\\nA custom theme for fluxbox:\\n\\n```docker\\nCOPY fluxbox /usr/share/fluxbox/init\\n```\\n\\nThen we need a special configuration to allow to have Podman working inside the container\\n\\nWe add the `podman-desktop` user with correct range on subuid and subgid when running containers. I used the [tutorial](https://github.com/containers/podman/blob/main/docs/tutorials/rootless_tutorial.md#etcsubuid-and-etcsubgid-configuration).\\n\\n```docker\\nRUN useradd -u 1000 podman-desktop && echo podman-desktop:10000:5000 > /etc/subuid && echo podman-desktop:10000:5000 > /etc/subgid\\n```\\n\\nThen use some default configuration files\\n\\n```docker\\n# initialize conf files\\nADD https://raw.githubusercontent.com/containers/libpod/master/contrib/podmanimage/stable/containers.conf /etc/containers/containers.conf\\nADD https://raw.githubusercontent.com/containers/libpod/master/contrib/podmanimage/stable/podman-containers.conf /home/podman-desktop/.config/containers/containers.conf\\n```\\n\\nand make sure that all permissions are correct following the guide [https://www.redhat.com/sysadmin/podman-inside-container](https://www.redhat.com/sysadmin/podman-inside-container)\\n\\n```docker\\n# set permissions\\nRUN chown podman-desktop:podman-desktop -R /home/podman-desktop && chmod 644 /etc/containers/containers.conf && \\\\\\n mkdir -p /var/lib/shared/overlay-images /var/lib/shared/overlay-layers /var/lib/shared/vfs-images /var/lib/shared/vfs-layers; touch /var/lib/shared/overlay-images/images.lock; touch /var/lib/shared/overlay-layers/layers.lock; touch /var/lib/shared/vfs-images/images.lock; touch /var/lib/shared/vfs-layers/layers.lock && \\\\\\n mkdir -p /run/user/1000 && chown podman-desktop:podman-desktop /run/user/1000\\n```\\n\\nplus define an empty user namespace.\\n\\n```docker\\nENV _CONTAINERS_USERNS_CONFIGURED=\\"\\"\\n```\\n\\nMake sure Podman will create the socket in an expected directory:\\n\\n```docker\\n# socket path for podman\\nENV XDG_RUNTIME_DIR=/run/user/1000\\n```\\n\\nOK ! we have a custom Containerfile providing all the tools to build and run Podman Desktop (using VNC for the display), run Podman and run Electron.\\n\\nThe current file is available at \\n\\nLet\'s configure the DevContainer.\\n\\n## Configure the DevContainer using devcontainer.json\\n\\nDevContainer definition is stored at `.devcontainer/devcontainer.json` file.\\n\\nWe need to reuse the image of the previous step. For that let\'s use the build section of the `devcontainer.json` file.\\n\\n```json\\n\\"build\\": {\\n \\"dockerfile\\": \\"Containerfile\\"\\n},\\n```\\n\\nIn order to avoid to redo all the build steps each time we open a workspace using this dev container, we published the image to quay.io at [quay.io/podman-desktop/devcontainer-parent:next\\n](https://quay.io/repository/podman-desktop/devcontainer-parent?tab=tags&tag=next). This parent image is not changing much so it\'s better to use is as a parent one.\\n\\nInside `.devcontainer` directory there is a `.parent` directory with everything related to the parent image.\\n\\nAnd in the `.devcontainer/Containerfile` file we reference this image\\n\\n```docker\\nFROM quay.io/podman-desktop/devcontainer-parent:next\\n```\\n\\nBy default, we will be `root` in the container and this is probably not what we expect. Let\'s change that.\\n\\n```json\\n\\"containerUser\\": \\"podman-desktop\\"\\n```\\n\\nSome Visual Studio Code extensions are nice to use and we can add them\\n\\n```json\\n \\"extensions\\": [\\"svelte.svelte-vscode\\", \\"bradlc.vscode-tailwindcss\\"]\\n```\\n\\nThen here is the tricky part, how to run our container allowing to run again inside the container some containers with podman.\\n\\nWe specify the arguments to make it possible. It\'s possible to use `--privileged` flag but I prefer to list the subset of permissions.\\nUsing `--privileged` we don\'t really know what are the privilege that are required while specifying all of them, people are aware of what is granted/denied.\\n\\n```json\\n\\"runArgs\\": [\\n \\"--cap-add=sys_admin\\",\\n \\"--security-opt\\",\\n \\"seccomp=unconfined\\",\\n \\"--device\\",\\n \\"/dev/fuse\\",\\n \\"--security-opt\\",\\n \\"label=disable\\",\\n \\"--security-opt\\",\\n \\"apparmor=unconfined\\"\\n ],\\n```\\n\\nSource code of Podman Desktop needs to be editable within the DevContainer so it needs to be mounted.\\n\\n```json\\n\\"workspaceMount\\": \\"source=${localWorkspaceFolder},target=/workspace,type=bind\\",\\n\\"workspaceFolder\\": \\"/workspace\\",\\n```\\n\\nThen we need a command to build Podman Desktop.\\n\\nFor that, we use `onCreateCommand` hook with a custom command\\n\\n```json\\n\\"onCreateCommand\\": \\"${containerWorkspaceFolder}/.devcontainer/onCreateCommand.sh\\",\\n```\\n\\nand in the `.devcontainer` folder the `onCreateCommand.sh` script is the following\\n\\n```shell\\n#!/bin/sh\\nyarn\\n\\nMODE=production yarn run build && yarn run electron-builder build --linux --dir --config .electron-builder.config.cjs\\n```\\n\\nTwo instructions:\\n\\n1. Fetch all Node.js dependencies.\\n2. build Podman Desktop in the `dist` folder using `Linux` as target Operating System.\\n\\nAfter the start of the container, how to launch Podman Desktop, the website and VNC, etc ?\\n\\nJust use `postStartCommand` hook.\\n\\n```json\\n\\"postStartCommand\\": \\"${containerWorkspaceFolder}/.devcontainer/postStartCommand.sh\\",\\n```\\n\\nand in the `.devcontainer` folder the `postStartCommand.sh` script is the following:\\n\\n```shell\\n#!/bin/sh\\n\\n# Start all services\\n/usr/bin/supervisord -c /etc/supervisord.conf &\\n\\n# wait X server to be ready or after 2mn exit\\necho \\"Waiting for X server to be ready\\"\\ntimeout 120 bash -c \'until xdpyinfo -display :0 &> /dev/null; do printf \\".\\"; sleep 1; done\'\\n\\n# launch podman desktop\\necho \\"Launching Podman Desktop\\"\\ncd dist/linux-unpacked/&& ./podman-desktop &\\n\\n# Launch the 9000 redirect after 20 seconds\\nsleep 20\\nwebsockify --web=/usr/share/novnc localhost:9000 localhost:5900 &\\n\\n# launch the website rendering\\necho \\"Launching Website\\"\\ncd website && yarn start\\n```\\n\\nIt starts VNC and noVNC, start precompiled Podman Desktop and start the documentation rendering.\\n\\nIt is not launching the Watch mode/development mode of Podman Desktop as it requires a container having more than 8GB of memory.\\n\\nPicking up a larger instace with for example 16GB, it\'s possible to use development mode.\\n\\nOf course, to make VNC happy, we need to specify the `DISPLAY` environment variable.\\n\\n```json\\n\\"remoteEnv\\": {\\n \\"DISPLAY\\": \\":0\\"\\n}\\n```\\n\\nWhen the DevContainer is fully available, we want to have a way to quickly open the `Website rendering URL` and `noVNC`\\n\\nLet\'s tweak the `devcontainer.json` file by adding the `portsAttributes` section\\n\\n```json\\n\\"portsAttributes\\": {\\n \\"9000\\": {\\n \\"label\\": \\"vnc\\",\\n \\"onAutoForward\\": \\"openPreview\\"\\n },\\n \\"3000\\": {\\n \\"label\\": \\"website\\"\\n }\\n}\\n```\\n\\nAfter all post-creation steps, the `Preview` browser inside the VS Code editor will open a window to VNC. And another port (`3000`) is flagged for the website.\\n\\n## Using the DevContainer.json on Github Codespace\\n\\nAs a user, opening a workspace with all what we configured is done using a single click.\\n\\nGo to then click on the `< > Code` dropdown and click on `Create codespace on main` button.\\n\\n![Open Codespace](img/develop-podman-using-codespaces/codespaces-click-repository.png)\\n\\nOnce you click on the button, the codespace is setting up:\\n\\n![Preparing Codepace](img/develop-podman-using-codespaces/codespaces-preparing-codespace.png)\\n\\nAfter few minutes, as there is not yet [prebuilt codespaces](https://docs.github.com/en/codespaces/prebuilding-your-codespaces/about-github-codespaces-prebuilds), the codespace is opening.\\n\\nThe simple Browser displays the noVNC window:\\n![Opening Codespace](img/develop-podman-using-codespaces/codespaces-open-novnc.png)\\n\\nClick on the connect button. Then on the terminal you can enter `podman run quay.io/podman/hello` and the container is detected in Podman Desktop.\\n![Testing Codespace](img/develop-podman-using-codespaces/codespaces-testing-podman-desktop.png)\\n\\nIt\'s also possible using the port widget to get on `3000` port by clicking on the world icon a preview of the website in another tab. Changing source code of the website will refresh the content of the window.\\n\\nDepending on the usecase, it\'s also possible to open documentation in the preview browser.\\n\\n![Edit website Codespace](img/develop-podman-using-codespaces/codespaces-edit-website.png)\\n\\n## Conclusion\\n\\nThe DevContainer image for Podman Desktop is recent so it\'ll probably evolve over time by adding new capabilities but it allows you to easily build/run/experiment and **contribute** to the tool or the website."}]}')}}]); \ No newline at end of file diff --git a/assets/js/ff38b1ce.2aa92837.js b/assets/js/ff38b1ce.2aa92837.js new file mode 100644 index 00000000000..ac9c47af4e4 --- /dev/null +++ b/assets/js/ff38b1ce.2aa92837.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7759],{35318:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>h});var n=a(27378);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=p(a),h=o,c=d["".concat(s,".").concat(h)]||d[h]||u[h]||r;return a?n.createElement(c,i(i({ref:t},m),{},{components:a})):n.createElement(c,i({ref:t},m))}));function h(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var n=a(25773),o=(a(27378),a(35318));const r={title:"Release Notes - Podman Desktop 1.4",description:"Podman Desktop 1.4 has been released!",slug:"podman-desktop-release-1.4",authors:["jeffmaury"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/blog/img/podman-desktop-release-1.4/juggling.png"},i=void 0,l={permalink:"/blog/podman-desktop-release-1.4",source:"@site/blog/2023-09-18-release-1.4.md",title:"Release Notes - Podman Desktop 1.4",description:"Podman Desktop 1.4 has been released!",date:"2023-09-18T00:00:00.000Z",formattedDate:"September 18, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"}],readingTime:3.415,hasTruncateMarker:!1,authors:[{name:"Jeff Maury",title:"Engineering Manager",url:"https://github.com/jeffmaury",imageURL:"https://github.com/jeffmaury.png",key:"jeffmaury"}],frontMatter:{title:"Release Notes - Podman Desktop 1.4",description:"Podman Desktop 1.4 has been released!",slug:"podman-desktop-release-1.4",authors:["jeffmaury"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/blog/img/podman-desktop-release-1.4/juggling.png"},nextItem:{title:"Release Notes - Podman Desktop 1.3",permalink:"/blog/podman-desktop-release-1.3"}},s={authorsImageUrls:[void 0]},p=[{value:"Release Details",id:"release-details",level:2},{value:"Port range mapping #3654",id:"port-range-mapping-3654",level:3},{value:"Terminal lifetime #3725",id:"terminal-lifetime-3725",level:3},{value:"Create volume #3742",id:"create-volume-3742",level:3},{value:"bash support #3750",id:"bash-support-3750",level:3},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:3},{value:"Community Thank You",id:"community-thank-you",level:3},{value:"Final Notes",id:"final-notes",level:3}],m={toc:p};function u(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Podman Desktop 1.4 Release! \ud83c\udf89"),(0,o.kt)("p",null,"This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Podman 4.6.2"),": Podman 4.6.2 included with Podman Desktop 1.4"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Windows Arm64"),": Native Windows on Arm64 installers and binaries"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Port range mapping"),": Start containers and map a range of ports"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Terminal UX Improvement"),": Persistent terminal sessions when SSH'ing in a container"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Volume Creation"),": Create volume from the ",(0,o.kt)("inlineCode",{parentName:"li"},"Volumes")," page"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Bash support"),": Terminals are now using ",(0,o.kt)("inlineCode",{parentName:"li"},"bash")," if available.")),(0,o.kt)("p",null,"Podman Desktop 1.4 is now available. ",(0,o.kt)("a",{parentName:"p",href:"/downloads"},"Click here to download it"),"!"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Podman-desktop-1-4-juggling",src:a(91617).Z,width:"1920",height:"1080"})),(0,o.kt)("hr",null),(0,o.kt)("h2",{id:"release-details"},"Release Details"),(0,o.kt)("h3",{id:"port-range-mapping-3654"},"Port range mapping ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3654"},"#3654")),(0,o.kt)("p",null,"When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised."),(0,o.kt)("p",null,(0,o.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/49404737/262927546-da66b67a-0884-40b1-85bd-a9c3ea2f3f9e.gif",alt:"Range mapping"})),(0,o.kt)("h3",{id:"terminal-lifetime-3725"},"Terminal lifetime ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3725"},"#3725")),(0,o.kt)("p",null,"When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"terminal lifetime",src:a(79019).Z,width:"1316",height:"879"})),(0,o.kt)("h3",{id:"create-volume-3742"},"Create volume ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3742"},"#3742")),(0,o.kt)("p",null,"The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create volume",src:a(83022).Z,width:"1316",height:"879"})),(0,o.kt)("h3",{id:"bash-support-3750"},"bash support ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3750"},"#3750")),(0,o.kt)("p",null,"When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"bash sh",src:a(41834).Z,width:"1316",height:"879"})),(0,o.kt)("h3",{id:"notable-bug-fixes"},"Notable Bug Fixes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Reduce API calls when listing containers by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3489"},"#3489")),(0,o.kt)("li",{parentName:"ul"},"Removing a connection(podman machine) should redirect to previous page by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3576"},"#3576")),(0,o.kt)("li",{parentName:"ul"},"Enhance error message when image is not there by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3587"},"#3587")),(0,o.kt)("li",{parentName:"ul"},"Dispose kind install button when extension is deactivated (#3586) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3610"},"#3610")),(0,o.kt)("li",{parentName:"ul"},"Replace backslash/slash on windows when building image (#3465) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3618"},"#3618")),(0,o.kt)("li",{parentName:"ul"},"Handle null value in container command (#3620) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3625"},"#3625")),(0,o.kt)("li",{parentName:"ul"},"Add maximum activation time for extensions by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3446"},"#3446")),(0,o.kt)("li",{parentName:"ul"},"Handle single non-spread arguments by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3641"},"#3641")),(0,o.kt)("li",{parentName:"ul"},"Grab usage data of volumes only on-demand by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3635"},"#3635")),(0,o.kt)("li",{parentName:"ul"},"Add arm64 binaries for Windows by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3643"},"#3643")),(0,o.kt)("li",{parentName:"ul"},"Include right airgap file for Windows and arm64 by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3651"},"#3651")),(0,o.kt)("li",{parentName:"ul"},"Redirect to previous page when removing a kubernetes connection by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3650"},"#3650")),(0,o.kt)("li",{parentName:"ul"},"Support port ranges when starting a container (#3204) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3654"},"#3654")),(0,o.kt)("li",{parentName:"ul"},"Add a strict undefined check to messagebox result (#3692) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3699"},"#3699")),(0,o.kt)("li",{parentName:"ul"},"Only restart if a machine is running by @cdrage ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3491"},"#3491")),(0,o.kt)("li",{parentName:"ul"},"Session to the terminal is reused by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3725"},"#3725")),(0,o.kt)("li",{parentName:"ul"},"Disable next button and show try again when onboarding failed (#3616) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3711"},"#3711")),(0,o.kt)("li",{parentName:"ul"},"Add podman in PATH after updating process environment PATH (#3729) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3730"},"#3730")),(0,o.kt)("li",{parentName:"ul"},"Allow to create a volume by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3742"},"#3742")),(0,o.kt)("li",{parentName:"ul"},"Using bash if available otherwise sh in terminal by @axel7083 ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3750"},"#3750")),(0,o.kt)("li",{parentName:"ul"},"Allow to embed existing component to onboarding (#3755) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3763"},"#3763")),(0,o.kt)("li",{parentName:"ul"},"Some containers never return logs, do not wait for them by @dgolovin ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3784"},"#3784")),(0,o.kt)("li",{parentName:"ul"},"Remove cancel button when on final onboarding step (#3771) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3802"},"#3802")),(0,o.kt)("li",{parentName:"ul"},"Onboarding add link micromark for commands by @cdrage ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3747"},"#3747")),(0,o.kt)("li",{parentName:"ul"},"Mounts can be null when using older podman by @afbjorklund ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3806"},"#3806")),(0,o.kt)("li",{parentName:"ul"},"Remove redundant step completion check when onboarding gets started by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3798"},"#3798")),(0,o.kt)("li",{parentName:"ul"},"Ability to click enter in pull image name input by @deboer-tim ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3850"},"#3850")),(0,o.kt)("li",{parentName:"ul"},"Set proxy environment variable when launching process by @jeffmaury ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3838"},"#3838")),(0,o.kt)("li",{parentName:"ul"},"The socket location was moved for new podman by @afbjorklund ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3853"},"#3853")),(0,o.kt)("li",{parentName:"ul"},"Don't log console errors when activating lima extension by @afbjorklund ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3852"},"#3852"))),(0,o.kt)("h3",{id:"community-thank-you"},"Community Thank You"),(0,o.kt)("p",null,"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better."),(0,o.kt)("p",null,"A warm welcome to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/tomgoren"},"@tomgoren"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/Julian"},"@Julian"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/Gelob"},"@Gelob")," and ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/cedricclyburn"},"@cedricclyburn")," who made their first contribution to the project in this release."),(0,o.kt)("h3",{id:"final-notes"},"Final Notes"),(0,o.kt)("p",null,"The complete list of issues fixed in this release is available ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.4.0"},"here"),"."),(0,o.kt)("p",null,"Get the latest release from the ",(0,o.kt)("a",{parentName:"p",href:"/downloads"},"Downloads")," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/containers/podman-desktop"},"GitHub repository")," and see how you can help us make Podman Desktop better."))}u.isMDXComponent=!0},41834:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/bash-sh-640dea579335def1a54ad3d2fb668a13.gif"},83022:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/create-volume-b826557a9841c4f92311a2b5833ec247.gif"},91617:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/juggling-bfd34fcfc3b63b29752c5f16a53e36ad.png"},79019:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/terminal-dc078da2d12869ee9e148c38afe530da.gif"}}]); \ No newline at end of file diff --git a/assets/js/ff38b1ce.315bf772.js b/assets/js/ff38b1ce.315bf772.js deleted file mode 100644 index cf552893110..00000000000 --- a/assets/js/ff38b1ce.315bf772.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7759],{35318:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>h});var n=a(27378);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=p(a),h=o,c=d["".concat(s,".").concat(h)]||d[h]||u[h]||r;return a?n.createElement(c,i(i({ref:t},m),{},{components:a})):n.createElement(c,i({ref:t},m))}));function h(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var n=a(25773),o=(a(27378),a(35318));const r={title:"Release Notes - Podman Desktop 1.4",description:"Podman Desktop 1.4 has been released!",slug:"podman-desktop-release-1.4",authors:["jeffmaury"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.4.webp"},i=void 0,l={permalink:"/blog/podman-desktop-release-1.4",source:"@site/blog/2023-09-18-release-1.4.md",title:"Release Notes - Podman Desktop 1.4",description:"Podman Desktop 1.4 has been released!",date:"2023-09-18T00:00:00.000Z",formattedDate:"September 18, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"}],readingTime:3.415,hasTruncateMarker:!1,authors:[{name:"Jeff Maury",title:"Engineering Manager",url:"https://github.com/jeffmaury",imageURL:"https://github.com/jeffmaury.png",key:"jeffmaury"}],frontMatter:{title:"Release Notes - Podman Desktop 1.4",description:"Podman Desktop 1.4 has been released!",slug:"podman-desktop-release-1.4",authors:["jeffmaury"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.4.webp"},nextItem:{title:"Release Notes - Podman Desktop 1.3",permalink:"/blog/podman-desktop-release-1.3"}},s={authorsImageUrls:[void 0]},p=[{value:"Release Details",id:"release-details",level:2},{value:"Port range mapping #3654",id:"port-range-mapping-3654",level:3},{value:"Terminal lifetime #3725",id:"terminal-lifetime-3725",level:3},{value:"Create volume #3742",id:"create-volume-3742",level:3},{value:"bash support #3750",id:"bash-support-3750",level:3},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:3},{value:"Community Thank You",id:"community-thank-you",level:3},{value:"Final Notes",id:"final-notes",level:3}],m={toc:p};function u(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Podman Desktop 1.4 Release! \ud83c\udf89"),(0,o.kt)("p",null,"This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Podman 4.6.2"),": Podman 4.6.2 included with Podman Desktop 1.4"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Windows Arm64"),": Native Windows on Arm64 installers and binaries"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Port range mapping"),": Start containers and map a range of ports"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Terminal UX Improvement"),": Persistent terminal sessions when SSH'ing in a container"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Volume Creation"),": Create volume from the ",(0,o.kt)("inlineCode",{parentName:"li"},"Volumes")," page"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Bash support"),": Terminals are now using ",(0,o.kt)("inlineCode",{parentName:"li"},"bash")," if available.")),(0,o.kt)("p",null,"Podman Desktop 1.4 is now available. ",(0,o.kt)("a",{parentName:"p",href:"/downloads"},"Click here to download it"),"!"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Podman-desktop-1-4-juggling",src:a(91617).Z,width:"1920",height:"1080"})),(0,o.kt)("hr",null),(0,o.kt)("h2",{id:"release-details"},"Release Details"),(0,o.kt)("h3",{id:"port-range-mapping-3654"},"Port range mapping ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3654"},"#3654")),(0,o.kt)("p",null,"When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised."),(0,o.kt)("p",null,(0,o.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/49404737/262927546-da66b67a-0884-40b1-85bd-a9c3ea2f3f9e.gif",alt:"Range mapping"})),(0,o.kt)("h3",{id:"terminal-lifetime-3725"},"Terminal lifetime ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3725"},"#3725")),(0,o.kt)("p",null,"When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"terminal lifetime",src:a(79019).Z,width:"1316",height:"879"})),(0,o.kt)("h3",{id:"create-volume-3742"},"Create volume ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3742"},"#3742")),(0,o.kt)("p",null,"The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create volume",src:a(83022).Z,width:"1316",height:"879"})),(0,o.kt)("h3",{id:"bash-support-3750"},"bash support ",(0,o.kt)("a",{parentName:"h3",href:"https://github.com/containers/podman-desktop/pull/3750"},"#3750")),(0,o.kt)("p",null,"When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"bash sh",src:a(41834).Z,width:"1316",height:"879"})),(0,o.kt)("h3",{id:"notable-bug-fixes"},"Notable Bug Fixes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Reduce API calls when listing containers by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3489"},"#3489")),(0,o.kt)("li",{parentName:"ul"},"Removing a connection(podman machine) should redirect to previous page by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3576"},"#3576")),(0,o.kt)("li",{parentName:"ul"},"Enhance error message when image is not there by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3587"},"#3587")),(0,o.kt)("li",{parentName:"ul"},"Dispose kind install button when extension is deactivated (#3586) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3610"},"#3610")),(0,o.kt)("li",{parentName:"ul"},"Replace backslash/slash on windows when building image (#3465) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3618"},"#3618")),(0,o.kt)("li",{parentName:"ul"},"Handle null value in container command (#3620) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3625"},"#3625")),(0,o.kt)("li",{parentName:"ul"},"Add maximum activation time for extensions by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3446"},"#3446")),(0,o.kt)("li",{parentName:"ul"},"Handle single non-spread arguments by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3641"},"#3641")),(0,o.kt)("li",{parentName:"ul"},"Grab usage data of volumes only on-demand by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3635"},"#3635")),(0,o.kt)("li",{parentName:"ul"},"Add arm64 binaries for Windows by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3643"},"#3643")),(0,o.kt)("li",{parentName:"ul"},"Include right airgap file for Windows and arm64 by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3651"},"#3651")),(0,o.kt)("li",{parentName:"ul"},"Redirect to previous page when removing a kubernetes connection by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3650"},"#3650")),(0,o.kt)("li",{parentName:"ul"},"Support port ranges when starting a container (#3204) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3654"},"#3654")),(0,o.kt)("li",{parentName:"ul"},"Add a strict undefined check to messagebox result (#3692) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3699"},"#3699")),(0,o.kt)("li",{parentName:"ul"},"Only restart if a machine is running by @cdrage ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3491"},"#3491")),(0,o.kt)("li",{parentName:"ul"},"Session to the terminal is reused by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3725"},"#3725")),(0,o.kt)("li",{parentName:"ul"},"Disable next button and show try again when onboarding failed (#3616) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3711"},"#3711")),(0,o.kt)("li",{parentName:"ul"},"Add podman in PATH after updating process environment PATH (#3729) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3730"},"#3730")),(0,o.kt)("li",{parentName:"ul"},"Allow to create a volume by @benoitf ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3742"},"#3742")),(0,o.kt)("li",{parentName:"ul"},"Using bash if available otherwise sh in terminal by @axel7083 ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3750"},"#3750")),(0,o.kt)("li",{parentName:"ul"},"Allow to embed existing component to onboarding (#3755) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3763"},"#3763")),(0,o.kt)("li",{parentName:"ul"},"Some containers never return logs, do not wait for them by @dgolovin ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3784"},"#3784")),(0,o.kt)("li",{parentName:"ul"},"Remove cancel button when on final onboarding step (#3771) by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3802"},"#3802")),(0,o.kt)("li",{parentName:"ul"},"Onboarding add link micromark for commands by @cdrage ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3747"},"#3747")),(0,o.kt)("li",{parentName:"ul"},"Mounts can be null when using older podman by @afbjorklund ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3806"},"#3806")),(0,o.kt)("li",{parentName:"ul"},"Remove redundant step completion check when onboarding gets started by @lstocchi ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3798"},"#3798")),(0,o.kt)("li",{parentName:"ul"},"Ability to click enter in pull image name input by @deboer-tim ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3850"},"#3850")),(0,o.kt)("li",{parentName:"ul"},"Set proxy environment variable when launching process by @jeffmaury ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3838"},"#3838")),(0,o.kt)("li",{parentName:"ul"},"The socket location was moved for new podman by @afbjorklund ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3853"},"#3853")),(0,o.kt)("li",{parentName:"ul"},"Don't log console errors when activating lima extension by @afbjorklund ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/containers/podman-desktop/pull/3852"},"#3852"))),(0,o.kt)("h3",{id:"community-thank-you"},"Community Thank You"),(0,o.kt)("p",null,"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better."),(0,o.kt)("p",null,"A warm welcome to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/tomgoren"},"@tomgoren"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/Julian"},"@Julian"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/Gelob"},"@Gelob")," and ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/cedricclyburn"},"@cedricclyburn")," who made their first contribution to the project in this release."),(0,o.kt)("h3",{id:"final-notes"},"Final Notes"),(0,o.kt)("p",null,"The complete list of issues fixed in this release is available ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.4.0"},"here"),"."),(0,o.kt)("p",null,"Get the latest release from the ",(0,o.kt)("a",{parentName:"p",href:"/downloads"},"Downloads")," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/containers/podman-desktop"},"GitHub repository")," and see how you can help us make Podman Desktop better."))}u.isMDXComponent=!0},41834:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/bash-sh-640dea579335def1a54ad3d2fb668a13.gif"},83022:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/create-volume-b826557a9841c4f92311a2b5833ec247.gif"},91617:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/juggling-bfd34fcfc3b63b29752c5f16a53e36ad.png"},79019:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/terminal-dc078da2d12869ee9e148c38afe530da.gif"}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.a7a03ce0.js b/assets/js/runtime~main.42552359.js similarity index 98% rename from assets/js/runtime~main.a7a03ce0.js rename to assets/js/runtime~main.42552359.js index 07e79942816..0df55261aef 100644 --- a/assets/js/runtime~main.a7a03ce0.js +++ b/assets/js/runtime~main.42552359.js @@ -1 +1 @@ -(()=>{"use strict";var e,f,a,c,b,d={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var a=t[e]={exports:{}};return d[e].call(a.exports,a,a.exports,r),a.exports}r.m=d,e=[],r.O=(f,a,c,b)=>{if(!a){var d=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[a,c,b]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};f=f||[null,a({}),a([]),a(a)];for(var t=2&c&&e;"object"==typeof t&&!~f.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((f=>d[f]=()=>e[f]));return d.default=()=>e,r.d(b,d),b},r.d=(e,f)=>{for(var a in f)r.o(f,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:f[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,a)=>(r.f[a](e,f),f)),[])),r.u=e=>"assets/js/"+({10:"33942509",24:"902d9f40",53:"935f2afb",70:"86f2a982",114:"e665718d",138:"54590fd2",182:"c276ecb2",205:"83d480e9",397:"6194ac84",465:"f7b7f9b7",506:"9aa62c0e",522:"308aae28",533:"b2b675dd",563:"c685778b",592:"b39cdcf9",628:"2c93bfff",649:"512fbd77",692:"6b600968",743:"61d4c13a",759:"e5878f42",809:"840a98fb",873:"cabda5f8",899:"b985118d",921:"c37b4a03",944:"b2e1a0c8",945:"df322e14",1021:"1a0737b6",1032:"a67ca768",1074:"9e8f4e9c",1297:"34cf6fc7",1335:"7327116e",1342:"a766a857",1441:"382c5d2b",1476:"44f02f2c",1477:"b2f554cd",1625:"de311ed4",1676:"819ef483",1705:"94fb813f",1713:"a7023ddc",1724:"5087625a",1830:"b00bc883",1981:"b799648a",2079:"1a16e8bf",2082:"e85ba0e6",2173:"36eac8b2",2178:"ba322490",2217:"d7fbbe43",2284:"4117ac4b",2323:"6c80b6fe",2364:"8cdb21e1",2385:"8f92bc29",2472:"65a10ffa",2535:"814f3328",2549:"5c63ba15",2557:"28726be2",2609:"6269f1c0",2667:"368cce37",2778:"608238a8",2896:"abc85917",2938:"c95aa39f",2965:"4384f6ba",3010:"56c3a9b2",3089:"a6aa9e1f",3154:"c6346fcf",3163:"232c546d",3207:"6603ef13",3232:"1f35373c",3237:"1df93b7f",3259:"03ccf92d",3296:"181ef600",3317:"846a5e19",3324:"1ce91f4c",3414:"35a7a45c",3505:"72486833",3584:"ed75cfcb",3608:"9e4087bc",3636:"8b4dd820",3691:"7be672a3",3714:"894e67a6",3751:"3720c009",3820:"a5e1f61e",3870:"5df556a2",3879:"2d629ea6",3952:"1b710012",3973:"f523fb3f",4013:"01a85c17",4059:"9cb03f5d",4112:"9f02b2b5",4121:"55960ee5",4157:"83e10f72",4356:"a9a76bf7",4386:"ae79aff5",4551:"3b161fd7",4617:"95366386",4735:"0c1dc3b8",4781:"12f1535e",4929:"330dfcdb",5018:"cd509849",5076:"b4561fd7",5240:"22de4147",5248:"6101b3fc",5375:"97615df2",5376:"bebbf51e",5468:"b9bde34b",5478:"df1d8f19",5591:"c9181a9f",5625:"657ac0bc",5708:"f0057c03",5776:"f0e3a130",5803:"ff8f5ed0",5974:"f20fb67e",6026:"51dec273",6038:"c9c860ee",6049:"f213dd13",6082:"a233b66e",6088:"88efc5aa",6103:"ccc49370",6120:"d4840880",6308:"e8dc4d98",6328:"c0d19596",6536:"3ed6e2e9",6608:"5099f3e0",6623:"b104dd1e",6690:"4816649b",6692:"2ae2e7fe",6719:"2e0c1e3c",6766:"e5638e51",6843:"9f97f9d1",7007:"8593ff01",7034:"3e03f778",7134:"0b40a488",7138:"38a042e4",7141:"b5abacaa",7149:"822c343e",7220:"7591d420",7239:"d9e85037",7251:"ba5b9f11",7274:"be315de3",7350:"8bedf5f0",7363:"583db3ef",7365:"652d909c",7366:"75281220",7370:"dba48714",7377:"708d858d",7438:"9c021584",7480:"eb17771c",7526:"016d7603",7536:"f6e0e63c",7573:"48b6ff5f",7622:"dbbb982f",7653:"31de1779",7679:"83245ae6",7698:"cd23aec9",7714:"7bdcd7a7",7739:"3ede2625",7741:"7d88b63f",7759:"ff38b1ce",7847:"43b416ef",7881:"2658ced2",7918:"17896441",7920:"1a4e3797",8065:"53f302bb",8145:"006e489c",8215:"1cfced13",8221:"6af14956",8242:"cbe6e75d",8262:"059d1c6a",8290:"3fe48f60",8445:"99245987",8502:"b4657d81",8514:"d651e2ee",8533:"f3d54061",8566:"9dce5486",8610:"6875c492",8800:"e6fb1369",8811:"3289a752",8860:"0d040286",8893:"ba1dc56d",8970:"68b843fc",8989:"d4bf7e47",9019:"771d7520",9043:"473de3ed",9106:"72dd8f7e",9133:"02e265ea",9179:"79551407",9209:"d2117a98",9341:"a35cf155",9372:"07f59c2a",9387:"b0f1c099",9395:"415c4e0e",9469:"3b85f227",9514:"1be78505",9671:"0e384e19",9817:"4f561e31",9924:"df203c0f",9944:"08570680"}[e]||e)+"."+{10:"b3b53e4f",24:"c9c02d31",53:"3ed5b938",70:"6082feaf",114:"22a38c18",138:"01cf4745",182:"c229eebf",205:"7ed9f2aa",397:"727a973d",465:"1cbd3a08",506:"3f0bed63",522:"d7cd5912",533:"b092fb30",563:"4744a638",592:"20325692",628:"7140d154",649:"10a887e2",692:"99e3d625",743:"89c00deb",759:"721f9cf0",809:"06decfd8",873:"919ad21c",899:"7e8cb215",921:"f0615854",944:"a49ec1c2",945:"faae8bea",1021:"4ab01d95",1032:"22c424dc",1074:"ead1b706",1297:"dee27ee5",1335:"b2b0cf3e",1342:"478736f2",1441:"dfb53e35",1476:"3a468864",1477:"47f0780c",1625:"35d33fff",1676:"8a2bafc1",1705:"fa2462b2",1713:"e07968c5",1724:"2461c2e7",1830:"740a117d",1947:"bda1afcc",1981:"4e218966",2079:"e37eaeb3",2082:"bc14e954",2173:"10c12339",2178:"13069292",2217:"60800c25",2284:"21e267ca",2323:"f0b907ab",2364:"9cad35d4",2385:"07336b58",2472:"afc2f917",2535:"5cc4827f",2549:"f76e17c6",2557:"9fd5df8f",2609:"dbc29b18",2667:"88023070",2778:"04ce1efb",2896:"eab98cda",2938:"3c5797b2",2965:"a212fb0d",3010:"d11d7eb3",3089:"cf7d6632",3154:"a51fa70f",3163:"4913f1cb",3207:"a9afbcd8",3232:"9528760d",3237:"3f010daa",3259:"d48e5470",3296:"b7616ae4",3317:"7ce74ef2",3324:"3cf78b95",3414:"f68026ae",3505:"6cbf58b2",3584:"4a5a7db3",3608:"6b194cc3",3636:"bac4874d",3691:"09a183f0",3714:"176b91ec",3751:"e6a1ff2c",3820:"75a6ed57",3866:"6f22f670",3870:"045cc138",3879:"b182e077",3893:"43838999",3952:"271e9a6e",3973:"9a8bb6e1",4013:"17c10467",4059:"2e148b4d",4112:"1b206455",4121:"47f9361b",4157:"b189e4c1",4178:"a197f856",4356:"982cf786",4386:"194fc2a2",4551:"b79d0bd2",4617:"61371bc1",4670:"c6602195",4735:"f27330d3",4781:"007e12d4",4929:"a0707feb",5018:"9d824327",5076:"9abee33b",5240:"641ec7fc",5248:"e7820b8e",5375:"f19ca62b",5376:"106682fc",5468:"f089dbbd",5478:"e9e824b5",5591:"9621308b",5625:"c4b6a5f2",5708:"9e67218b",5776:"9289db31",5803:"7724e22b",5974:"5ef63543",6026:"6c6a5338",6038:"f7180e21",6049:"2f6bc428",6082:"3694c963",6088:"0e41b8ce",6103:"0a9a510b",6120:"11c2c21b",6308:"326b3a51",6328:"0458dc90",6536:"e236509f",6608:"5cf78b44",6623:"3c07d980",6690:"0738083d",6692:"9034be99",6719:"56f34a53",6766:"90588983",6843:"efcf1441",7007:"e073c454",7034:"e478b99c",7134:"0d536e2b",7138:"66534a1a",7141:"aa741b27",7149:"663ec94f",7171:"ed520d1e",7220:"ab5b2baa",7239:"4f656480",7251:"75e3d1b3",7274:"c42d9b9e",7350:"9b125618",7363:"9fcc6d04",7365:"9acd3eb7",7366:"b9ad9349",7370:"f73e8663",7377:"b821d601",7438:"a0f3d6c3",7480:"d849bbc6",7526:"61e556ee",7536:"3a66b423",7573:"f26b658c",7622:"b17356bb",7653:"ee3ea3e0",7679:"f15da8d9",7698:"a0fbf744",7714:"2f0eeee5",7735:"b12007f7",7739:"9cc24e77",7741:"ff546f54",7759:"315bf772",7847:"2c70676d",7849:"bb1a7e66",7881:"883d256b",7918:"e15ec73f",7920:"a7306422",8065:"546ab956",8145:"16412c4f",8215:"bcf97e6c",8221:"82e37ffd",8242:"b4cf6364",8262:"c004698d",8290:"c415179d",8306:"5f30899d",8445:"4fc783d0",8502:"7b175b26",8514:"e4ec655c",8533:"9a7a6392",8566:"a926ad29",8610:"51bd3ba5",8777:"e2ef1f93",8800:"a0bdbe06",8811:"f2b0882a",8860:"b24be5ae",8893:"3281bcfc",8970:"4c411332",8989:"17f0efbe",9019:"5add45ab",9043:"c48512f7",9106:"3d077178",9127:"02f87f8d",9133:"7057011c",9179:"b5281c34",9209:"79b158ec",9341:"dc82cf1a",9372:"7bc1a408",9387:"f0f7a6a7",9395:"aac52386",9469:"14c4eb5c",9514:"0e6e9a66",9671:"cab46598",9817:"5036f126",9924:"dc218f14",9944:"91801d8b"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),c={},b="docs:",r.l=(e,f,a,d)=>{if(c[e])c[e].push(f);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(a))),f)return f(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918",33942509:"10",72486833:"3505",75281220:"7366",79551407:"9179",95366386:"4617",99245987:"8445","902d9f40":"24","935f2afb":"53","86f2a982":"70",e665718d:"114","54590fd2":"138",c276ecb2:"182","83d480e9":"205","6194ac84":"397",f7b7f9b7:"465","9aa62c0e":"506","308aae28":"522",b2b675dd:"533",c685778b:"563",b39cdcf9:"592","2c93bfff":"628","512fbd77":"649","6b600968":"692","61d4c13a":"743",e5878f42:"759","840a98fb":"809",cabda5f8:"873",b985118d:"899",c37b4a03:"921",b2e1a0c8:"944",df322e14:"945","1a0737b6":"1021",a67ca768:"1032","9e8f4e9c":"1074","34cf6fc7":"1297","7327116e":"1335",a766a857:"1342","382c5d2b":"1441","44f02f2c":"1476",b2f554cd:"1477",de311ed4:"1625","819ef483":"1676","94fb813f":"1705",a7023ddc:"1713","5087625a":"1724",b00bc883:"1830",b799648a:"1981","1a16e8bf":"2079",e85ba0e6:"2082","36eac8b2":"2173",ba322490:"2178",d7fbbe43:"2217","4117ac4b":"2284","6c80b6fe":"2323","8cdb21e1":"2364","8f92bc29":"2385","65a10ffa":"2472","814f3328":"2535","5c63ba15":"2549","28726be2":"2557","6269f1c0":"2609","368cce37":"2667","608238a8":"2778",abc85917:"2896",c95aa39f:"2938","4384f6ba":"2965","56c3a9b2":"3010",a6aa9e1f:"3089",c6346fcf:"3154","232c546d":"3163","6603ef13":"3207","1f35373c":"3232","1df93b7f":"3237","03ccf92d":"3259","181ef600":"3296","846a5e19":"3317","1ce91f4c":"3324","35a7a45c":"3414",ed75cfcb:"3584","9e4087bc":"3608","8b4dd820":"3636","7be672a3":"3691","894e67a6":"3714","3720c009":"3751",a5e1f61e:"3820","5df556a2":"3870","2d629ea6":"3879","1b710012":"3952",f523fb3f:"3973","01a85c17":"4013","9cb03f5d":"4059","9f02b2b5":"4112","55960ee5":"4121","83e10f72":"4157",a9a76bf7:"4356",ae79aff5:"4386","3b161fd7":"4551","0c1dc3b8":"4735","12f1535e":"4781","330dfcdb":"4929",cd509849:"5018",b4561fd7:"5076","22de4147":"5240","6101b3fc":"5248","97615df2":"5375",bebbf51e:"5376",b9bde34b:"5468",df1d8f19:"5478",c9181a9f:"5591","657ac0bc":"5625",f0057c03:"5708",f0e3a130:"5776",ff8f5ed0:"5803",f20fb67e:"5974","51dec273":"6026",c9c860ee:"6038",f213dd13:"6049",a233b66e:"6082","88efc5aa":"6088",ccc49370:"6103",d4840880:"6120",e8dc4d98:"6308",c0d19596:"6328","3ed6e2e9":"6536","5099f3e0":"6608",b104dd1e:"6623","4816649b":"6690","2ae2e7fe":"6692","2e0c1e3c":"6719",e5638e51:"6766","9f97f9d1":"6843","8593ff01":"7007","3e03f778":"7034","0b40a488":"7134","38a042e4":"7138",b5abacaa:"7141","822c343e":"7149","7591d420":"7220",d9e85037:"7239",ba5b9f11:"7251",be315de3:"7274","8bedf5f0":"7350","583db3ef":"7363","652d909c":"7365",dba48714:"7370","708d858d":"7377","9c021584":"7438",eb17771c:"7480","016d7603":"7526",f6e0e63c:"7536","48b6ff5f":"7573",dbbb982f:"7622","31de1779":"7653","83245ae6":"7679",cd23aec9:"7698","7bdcd7a7":"7714","3ede2625":"7739","7d88b63f":"7741",ff38b1ce:"7759","43b416ef":"7847","2658ced2":"7881","1a4e3797":"7920","53f302bb":"8065","006e489c":"8145","1cfced13":"8215","6af14956":"8221",cbe6e75d:"8242","059d1c6a":"8262","3fe48f60":"8290",b4657d81:"8502",d651e2ee:"8514",f3d54061:"8533","9dce5486":"8566","6875c492":"8610",e6fb1369:"8800","3289a752":"8811","0d040286":"8860",ba1dc56d:"8893","68b843fc":"8970",d4bf7e47:"8989","771d7520":"9019","473de3ed":"9043","72dd8f7e":"9106","02e265ea":"9133",d2117a98:"9209",a35cf155:"9341","07f59c2a":"9372",b0f1c099:"9387","415c4e0e":"9395","3b85f227":"9469","1be78505":"9514","0e384e19":"9671","4f561e31":"9817",df203c0f:"9924","08570680":"9944"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,a)=>{var c=r.o(e,f)?e[f]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var b=new Promise(((a,b)=>c=e[f]=[a,b]));a.push(c[2]=b);var d=r.p+r.u(f),t=new Error;r.l(d,(a=>{if(r.o(e,f)&&(0!==(c=e[f])&&(e[f]=void 0),c)){var b=a&&("load"===a.type?"missing":a.type),d=a&&a.target&&a.target.src;t.message="Loading chunk "+f+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,c[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,a)=>{var c,b,d=a[0],t=a[1],o=a[2],n=0;if(d.some((f=>0!==e[f]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(f&&f(a);n{"use strict";var e,f,a,c,b,d={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var a=t[e]={exports:{}};return d[e].call(a.exports,a,a.exports,r),a.exports}r.m=d,e=[],r.O=(f,a,c,b)=>{if(!a){var d=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[a,c,b]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};f=f||[null,a({}),a([]),a(a)];for(var t=2&c&&e;"object"==typeof t&&!~f.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((f=>d[f]=()=>e[f]));return d.default=()=>e,r.d(b,d),b},r.d=(e,f)=>{for(var a in f)r.o(f,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:f[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,a)=>(r.f[a](e,f),f)),[])),r.u=e=>"assets/js/"+({10:"33942509",24:"902d9f40",53:"935f2afb",70:"86f2a982",114:"e665718d",138:"54590fd2",182:"c276ecb2",205:"83d480e9",397:"6194ac84",465:"f7b7f9b7",506:"9aa62c0e",522:"308aae28",533:"b2b675dd",563:"c685778b",592:"b39cdcf9",628:"2c93bfff",649:"512fbd77",692:"6b600968",743:"61d4c13a",759:"e5878f42",809:"840a98fb",873:"cabda5f8",899:"b985118d",921:"c37b4a03",944:"b2e1a0c8",945:"df322e14",1021:"1a0737b6",1032:"a67ca768",1074:"9e8f4e9c",1297:"34cf6fc7",1335:"7327116e",1342:"a766a857",1441:"382c5d2b",1476:"44f02f2c",1477:"b2f554cd",1625:"de311ed4",1676:"819ef483",1705:"94fb813f",1713:"a7023ddc",1724:"5087625a",1830:"b00bc883",1981:"b799648a",2079:"1a16e8bf",2082:"e85ba0e6",2173:"36eac8b2",2178:"ba322490",2217:"d7fbbe43",2284:"4117ac4b",2323:"6c80b6fe",2364:"8cdb21e1",2385:"8f92bc29",2472:"65a10ffa",2535:"814f3328",2549:"5c63ba15",2557:"28726be2",2609:"6269f1c0",2667:"368cce37",2778:"608238a8",2896:"abc85917",2938:"c95aa39f",2965:"4384f6ba",3010:"56c3a9b2",3089:"a6aa9e1f",3154:"c6346fcf",3163:"232c546d",3207:"6603ef13",3232:"1f35373c",3237:"1df93b7f",3259:"03ccf92d",3296:"181ef600",3317:"846a5e19",3324:"1ce91f4c",3414:"35a7a45c",3505:"72486833",3584:"ed75cfcb",3608:"9e4087bc",3636:"8b4dd820",3691:"7be672a3",3714:"894e67a6",3751:"3720c009",3820:"a5e1f61e",3870:"5df556a2",3879:"2d629ea6",3952:"1b710012",3973:"f523fb3f",4013:"01a85c17",4059:"9cb03f5d",4112:"9f02b2b5",4121:"55960ee5",4157:"83e10f72",4356:"a9a76bf7",4386:"ae79aff5",4551:"3b161fd7",4617:"95366386",4735:"0c1dc3b8",4781:"12f1535e",4929:"330dfcdb",5018:"cd509849",5076:"b4561fd7",5240:"22de4147",5248:"6101b3fc",5375:"97615df2",5376:"bebbf51e",5468:"b9bde34b",5478:"df1d8f19",5591:"c9181a9f",5625:"657ac0bc",5708:"f0057c03",5776:"f0e3a130",5803:"ff8f5ed0",5974:"f20fb67e",6026:"51dec273",6038:"c9c860ee",6049:"f213dd13",6082:"a233b66e",6088:"88efc5aa",6103:"ccc49370",6120:"d4840880",6308:"e8dc4d98",6328:"c0d19596",6536:"3ed6e2e9",6608:"5099f3e0",6623:"b104dd1e",6690:"4816649b",6692:"2ae2e7fe",6719:"2e0c1e3c",6766:"e5638e51",6843:"9f97f9d1",7007:"8593ff01",7034:"3e03f778",7134:"0b40a488",7138:"38a042e4",7141:"b5abacaa",7149:"822c343e",7220:"7591d420",7239:"d9e85037",7251:"ba5b9f11",7274:"be315de3",7350:"8bedf5f0",7363:"583db3ef",7365:"652d909c",7366:"75281220",7370:"dba48714",7377:"708d858d",7438:"9c021584",7480:"eb17771c",7526:"016d7603",7536:"f6e0e63c",7573:"48b6ff5f",7622:"dbbb982f",7653:"31de1779",7679:"83245ae6",7698:"cd23aec9",7714:"7bdcd7a7",7739:"3ede2625",7741:"7d88b63f",7759:"ff38b1ce",7847:"43b416ef",7881:"2658ced2",7918:"17896441",7920:"1a4e3797",8065:"53f302bb",8145:"006e489c",8215:"1cfced13",8221:"6af14956",8242:"cbe6e75d",8262:"059d1c6a",8290:"3fe48f60",8445:"99245987",8502:"b4657d81",8514:"d651e2ee",8533:"f3d54061",8566:"9dce5486",8610:"6875c492",8800:"e6fb1369",8811:"3289a752",8860:"0d040286",8893:"ba1dc56d",8970:"68b843fc",8989:"d4bf7e47",9019:"771d7520",9043:"473de3ed",9106:"72dd8f7e",9133:"02e265ea",9179:"79551407",9209:"d2117a98",9341:"a35cf155",9372:"07f59c2a",9387:"b0f1c099",9395:"415c4e0e",9469:"3b85f227",9514:"1be78505",9671:"0e384e19",9817:"4f561e31",9924:"df203c0f",9944:"08570680"}[e]||e)+"."+{10:"b3b53e4f",24:"c9c02d31",53:"3ed5b938",70:"6082feaf",114:"22a38c18",138:"01cf4745",182:"c229eebf",205:"7ed9f2aa",397:"727a973d",465:"1cbd3a08",506:"3f0bed63",522:"d7cd5912",533:"b092fb30",563:"4744a638",592:"20325692",628:"7140d154",649:"10a887e2",692:"99e3d625",743:"89c00deb",759:"721f9cf0",809:"06decfd8",873:"919ad21c",899:"7e8cb215",921:"f0615854",944:"a49ec1c2",945:"faae8bea",1021:"4ab01d95",1032:"22c424dc",1074:"ead1b706",1297:"dee27ee5",1335:"b2b0cf3e",1342:"478736f2",1441:"dfb53e35",1476:"3a468864",1477:"d126abe1",1625:"35d33fff",1676:"8a2bafc1",1705:"fa2462b2",1713:"e07968c5",1724:"2461c2e7",1830:"740a117d",1947:"bda1afcc",1981:"4e218966",2079:"e37eaeb3",2082:"bc14e954",2173:"10c12339",2178:"13069292",2217:"60800c25",2284:"21e267ca",2323:"f0b907ab",2364:"9cad35d4",2385:"07336b58",2472:"afc2f917",2535:"5cc4827f",2549:"f76e17c6",2557:"9fd5df8f",2609:"dbc29b18",2667:"88023070",2778:"04ce1efb",2896:"eab98cda",2938:"3c5797b2",2965:"a212fb0d",3010:"d11d7eb3",3089:"cf7d6632",3154:"a51fa70f",3163:"4913f1cb",3207:"a9afbcd8",3232:"9528760d",3237:"3f010daa",3259:"d48e5470",3296:"b7616ae4",3317:"7ce74ef2",3324:"3cf78b95",3414:"f68026ae",3505:"6cbf58b2",3584:"4a5a7db3",3608:"6b194cc3",3636:"bac4874d",3691:"09a183f0",3714:"71b063cd",3751:"e6a1ff2c",3820:"75a6ed57",3866:"6f22f670",3870:"045cc138",3879:"b182e077",3893:"43838999",3952:"271e9a6e",3973:"9a8bb6e1",4013:"17c10467",4059:"2e148b4d",4112:"1b206455",4121:"47f9361b",4157:"b189e4c1",4178:"a197f856",4356:"982cf786",4386:"194fc2a2",4551:"b79d0bd2",4617:"61371bc1",4670:"c6602195",4735:"f27330d3",4781:"007e12d4",4929:"a0707feb",5018:"9d824327",5076:"9abee33b",5240:"641ec7fc",5248:"e7820b8e",5375:"f19ca62b",5376:"106682fc",5468:"f089dbbd",5478:"e9e824b5",5591:"9621308b",5625:"c4b6a5f2",5708:"9e67218b",5776:"9289db31",5803:"7724e22b",5974:"5ef63543",6026:"6c6a5338",6038:"f7180e21",6049:"2f6bc428",6082:"3694c963",6088:"0e41b8ce",6103:"0a9a510b",6120:"11c2c21b",6308:"326b3a51",6328:"0458dc90",6536:"e236509f",6608:"5cf78b44",6623:"3c07d980",6690:"0738083d",6692:"9034be99",6719:"56f34a53",6766:"90588983",6843:"efcf1441",7007:"e073c454",7034:"e478b99c",7134:"0d536e2b",7138:"66534a1a",7141:"aa741b27",7149:"663ec94f",7171:"ed520d1e",7220:"ab5b2baa",7239:"4f656480",7251:"75e3d1b3",7274:"c42d9b9e",7350:"9b125618",7363:"9fcc6d04",7365:"9acd3eb7",7366:"b9ad9349",7370:"f73e8663",7377:"b821d601",7438:"a0f3d6c3",7480:"d849bbc6",7526:"61e556ee",7536:"3a66b423",7573:"f26b658c",7622:"b17356bb",7653:"ee3ea3e0",7679:"f15da8d9",7698:"a0fbf744",7714:"2f0eeee5",7735:"b12007f7",7739:"9cc24e77",7741:"ff546f54",7759:"2aa92837",7847:"2c70676d",7849:"bb1a7e66",7881:"883d256b",7918:"e15ec73f",7920:"a7306422",8065:"546ab956",8145:"16412c4f",8215:"bcf97e6c",8221:"82e37ffd",8242:"b4cf6364",8262:"c004698d",8290:"c415179d",8306:"5f30899d",8445:"4fc783d0",8502:"7b175b26",8514:"e4ec655c",8533:"9a7a6392",8566:"a926ad29",8610:"51bd3ba5",8777:"e2ef1f93",8800:"a0bdbe06",8811:"f2b0882a",8860:"b24be5ae",8893:"3281bcfc",8970:"4c411332",8989:"17f0efbe",9019:"5add45ab",9043:"c48512f7",9106:"3d077178",9127:"02f87f8d",9133:"7057011c",9179:"b5281c34",9209:"79b158ec",9341:"dc82cf1a",9372:"7bc1a408",9387:"f0f7a6a7",9395:"aac52386",9469:"14c4eb5c",9514:"0e6e9a66",9671:"cab46598",9817:"5036f126",9924:"dc218f14",9944:"91801d8b"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),c={},b="docs:",r.l=(e,f,a,d)=>{if(c[e])c[e].push(f);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(a))),f)return f(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918",33942509:"10",72486833:"3505",75281220:"7366",79551407:"9179",95366386:"4617",99245987:"8445","902d9f40":"24","935f2afb":"53","86f2a982":"70",e665718d:"114","54590fd2":"138",c276ecb2:"182","83d480e9":"205","6194ac84":"397",f7b7f9b7:"465","9aa62c0e":"506","308aae28":"522",b2b675dd:"533",c685778b:"563",b39cdcf9:"592","2c93bfff":"628","512fbd77":"649","6b600968":"692","61d4c13a":"743",e5878f42:"759","840a98fb":"809",cabda5f8:"873",b985118d:"899",c37b4a03:"921",b2e1a0c8:"944",df322e14:"945","1a0737b6":"1021",a67ca768:"1032","9e8f4e9c":"1074","34cf6fc7":"1297","7327116e":"1335",a766a857:"1342","382c5d2b":"1441","44f02f2c":"1476",b2f554cd:"1477",de311ed4:"1625","819ef483":"1676","94fb813f":"1705",a7023ddc:"1713","5087625a":"1724",b00bc883:"1830",b799648a:"1981","1a16e8bf":"2079",e85ba0e6:"2082","36eac8b2":"2173",ba322490:"2178",d7fbbe43:"2217","4117ac4b":"2284","6c80b6fe":"2323","8cdb21e1":"2364","8f92bc29":"2385","65a10ffa":"2472","814f3328":"2535","5c63ba15":"2549","28726be2":"2557","6269f1c0":"2609","368cce37":"2667","608238a8":"2778",abc85917:"2896",c95aa39f:"2938","4384f6ba":"2965","56c3a9b2":"3010",a6aa9e1f:"3089",c6346fcf:"3154","232c546d":"3163","6603ef13":"3207","1f35373c":"3232","1df93b7f":"3237","03ccf92d":"3259","181ef600":"3296","846a5e19":"3317","1ce91f4c":"3324","35a7a45c":"3414",ed75cfcb:"3584","9e4087bc":"3608","8b4dd820":"3636","7be672a3":"3691","894e67a6":"3714","3720c009":"3751",a5e1f61e:"3820","5df556a2":"3870","2d629ea6":"3879","1b710012":"3952",f523fb3f:"3973","01a85c17":"4013","9cb03f5d":"4059","9f02b2b5":"4112","55960ee5":"4121","83e10f72":"4157",a9a76bf7:"4356",ae79aff5:"4386","3b161fd7":"4551","0c1dc3b8":"4735","12f1535e":"4781","330dfcdb":"4929",cd509849:"5018",b4561fd7:"5076","22de4147":"5240","6101b3fc":"5248","97615df2":"5375",bebbf51e:"5376",b9bde34b:"5468",df1d8f19:"5478",c9181a9f:"5591","657ac0bc":"5625",f0057c03:"5708",f0e3a130:"5776",ff8f5ed0:"5803",f20fb67e:"5974","51dec273":"6026",c9c860ee:"6038",f213dd13:"6049",a233b66e:"6082","88efc5aa":"6088",ccc49370:"6103",d4840880:"6120",e8dc4d98:"6308",c0d19596:"6328","3ed6e2e9":"6536","5099f3e0":"6608",b104dd1e:"6623","4816649b":"6690","2ae2e7fe":"6692","2e0c1e3c":"6719",e5638e51:"6766","9f97f9d1":"6843","8593ff01":"7007","3e03f778":"7034","0b40a488":"7134","38a042e4":"7138",b5abacaa:"7141","822c343e":"7149","7591d420":"7220",d9e85037:"7239",ba5b9f11:"7251",be315de3:"7274","8bedf5f0":"7350","583db3ef":"7363","652d909c":"7365",dba48714:"7370","708d858d":"7377","9c021584":"7438",eb17771c:"7480","016d7603":"7526",f6e0e63c:"7536","48b6ff5f":"7573",dbbb982f:"7622","31de1779":"7653","83245ae6":"7679",cd23aec9:"7698","7bdcd7a7":"7714","3ede2625":"7739","7d88b63f":"7741",ff38b1ce:"7759","43b416ef":"7847","2658ced2":"7881","1a4e3797":"7920","53f302bb":"8065","006e489c":"8145","1cfced13":"8215","6af14956":"8221",cbe6e75d:"8242","059d1c6a":"8262","3fe48f60":"8290",b4657d81:"8502",d651e2ee:"8514",f3d54061:"8533","9dce5486":"8566","6875c492":"8610",e6fb1369:"8800","3289a752":"8811","0d040286":"8860",ba1dc56d:"8893","68b843fc":"8970",d4bf7e47:"8989","771d7520":"9019","473de3ed":"9043","72dd8f7e":"9106","02e265ea":"9133",d2117a98:"9209",a35cf155:"9341","07f59c2a":"9372",b0f1c099:"9387","415c4e0e":"9395","3b85f227":"9469","1be78505":"9514","0e384e19":"9671","4f561e31":"9817",df203c0f:"9924","08570680":"9944"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,a)=>{var c=r.o(e,f)?e[f]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var b=new Promise(((a,b)=>c=e[f]=[a,b]));a.push(c[2]=b);var d=r.p+r.u(f),t=new Error;r.l(d,(a=>{if(r.o(e,f)&&(0!==(c=e[f])&&(e[f]=void 0),c)){var b=a&&("load"===a.type?"missing":a.type),d=a&&a.target&&a.target.src;t.message="Loading chunk "+f+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,c[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,a)=>{var c,b,d=a[0],t=a[1],o=a[2],n=0;if(d.some((f=>0!==e[f]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(f&&f(a);n - +
-

· 4 min read
Jeff Maury

Podman Desktop 1.4 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features.

  • Podman 4.6.2: Podman 4.6.2 included with Podman Desktop 1.4
  • Windows Arm64: Native Windows on Arm64 installers and binaries
  • Port range mapping: Start containers and map a range of ports
  • Terminal UX Improvement: Persistent terminal sessions when SSH'ing in a container
  • Volume Creation: Create volume from the Volumes page
  • Bash support: Terminals are now using bash if available.

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

Podman-desktop-1-4-juggling


Release Details

Port range mapping #3654

When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised.

Range mapping

Terminal lifetime #3725

When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI.

terminal lifetime

Create volume #3742

The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name.

create volume

bash support #3750

When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used.

bash sh

Notable Bug Fixes

  • Reduce API calls when listing containers by @benoitf #3489
  • Removing a connection(podman machine) should redirect to previous page by @benoitf #3576
  • Enhance error message when image is not there by @benoitf #3587
  • Dispose kind install button when extension is deactivated (#3586) by @lstocchi #3610
  • Replace backslash/slash on windows when building image (#3465) by @lstocchi #3618
  • Handle null value in container command (#3620) by @lstocchi #3625
  • Add maximum activation time for extensions by @benoitf #3446
  • Handle single non-spread arguments by @benoitf #3641
  • Grab usage data of volumes only on-demand by @benoitf #3635
  • Add arm64 binaries for Windows by @benoitf #3643
  • Include right airgap file for Windows and arm64 by @benoitf #3651
  • Redirect to previous page when removing a kubernetes connection by @benoitf #3650
  • Support port ranges when starting a container (#3204) by @lstocchi #3654
  • Add a strict undefined check to messagebox result (#3692) by @lstocchi #3699
  • Only restart if a machine is running by @cdrage #3491
  • Session to the terminal is reused by @benoitf #3725
  • Disable next button and show try again when onboarding failed (#3616) by @lstocchi #3711
  • Add podman in PATH after updating process environment PATH (#3729) by @lstocchi #3730
  • Allow to create a volume by @benoitf #3742
  • Using bash if available otherwise sh in terminal by @axel7083 #3750
  • Allow to embed existing component to onboarding (#3755) by @lstocchi #3763
  • Some containers never return logs, do not wait for them by @dgolovin #3784
  • Remove cancel button when on final onboarding step (#3771) by @lstocchi #3802
  • Onboarding add link micromark for commands by @cdrage #3747
  • Mounts can be null when using older podman by @afbjorklund #3806
  • Remove redundant step completion check when onboarding gets started by @lstocchi #3798
  • Ability to click enter in pull image name input by @deboer-tim #3850
  • Set proxy environment variable when launching process by @jeffmaury #3838
  • The socket location was moved for new podman by @afbjorklund #3853
  • Don't log console errors when activating lima extension by @afbjorklund #3852

Community Thank You

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

A warm welcome to @tomgoren, @Julian, @Gelob and @cedricclyburn who made their first contribution to the project in this release.

Final Notes

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

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.

· 6 min read
Denis Golovin

Podman Desktop 1.3 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features.

  • Podman 4.6.1: Podman 4.6.1 included in Windows and Mac installers
  • Podman user-mode networking support to Windows/WSL: A new switch `User mode networking' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations
  • Compose group new UI elements: You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs
  • Extension packs and extension dependencies: Install group of extensions in one click
  • Resource details page update: See summary and log for resource
  • Create Kind cluster form update: A new Node's container image field can be used to specify the Kubernetes version used for the control-planed
  • Support Docker Desktop extensions using a backend: When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension's descriptor
  • Podman Initial Onboarding (preview): Install and configure podman using included installer

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

Podman-desktop-1-3-bug-swatting


Release Details

Compose group Logs tab #3176

When clicking on the group of containers, you can now view the logs of the entire group of compose containers and don't need to open +

· 4 min read
Jeff Maury

Podman Desktop 1.4 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features.

  • Podman 4.6.2: Podman 4.6.2 included with Podman Desktop 1.4
  • Windows Arm64: Native Windows on Arm64 installers and binaries
  • Port range mapping: Start containers and map a range of ports
  • Terminal UX Improvement: Persistent terminal sessions when SSH'ing in a container
  • Volume Creation: Create volume from the Volumes page
  • Bash support: Terminals are now using bash if available.

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

Podman-desktop-1-4-juggling


Release Details

Port range mapping #3654

When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised.

Range mapping

Terminal lifetime #3725

When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI.

terminal lifetime

Create volume #3742

The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name.

create volume

bash support #3750

When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used.

bash sh

Notable Bug Fixes

  • Reduce API calls when listing containers by @benoitf #3489
  • Removing a connection(podman machine) should redirect to previous page by @benoitf #3576
  • Enhance error message when image is not there by @benoitf #3587
  • Dispose kind install button when extension is deactivated (#3586) by @lstocchi #3610
  • Replace backslash/slash on windows when building image (#3465) by @lstocchi #3618
  • Handle null value in container command (#3620) by @lstocchi #3625
  • Add maximum activation time for extensions by @benoitf #3446
  • Handle single non-spread arguments by @benoitf #3641
  • Grab usage data of volumes only on-demand by @benoitf #3635
  • Add arm64 binaries for Windows by @benoitf #3643
  • Include right airgap file for Windows and arm64 by @benoitf #3651
  • Redirect to previous page when removing a kubernetes connection by @benoitf #3650
  • Support port ranges when starting a container (#3204) by @lstocchi #3654
  • Add a strict undefined check to messagebox result (#3692) by @lstocchi #3699
  • Only restart if a machine is running by @cdrage #3491
  • Session to the terminal is reused by @benoitf #3725
  • Disable next button and show try again when onboarding failed (#3616) by @lstocchi #3711
  • Add podman in PATH after updating process environment PATH (#3729) by @lstocchi #3730
  • Allow to create a volume by @benoitf #3742
  • Using bash if available otherwise sh in terminal by @axel7083 #3750
  • Allow to embed existing component to onboarding (#3755) by @lstocchi #3763
  • Some containers never return logs, do not wait for them by @dgolovin #3784
  • Remove cancel button when on final onboarding step (#3771) by @lstocchi #3802
  • Onboarding add link micromark for commands by @cdrage #3747
  • Mounts can be null when using older podman by @afbjorklund #3806
  • Remove redundant step completion check when onboarding gets started by @lstocchi #3798
  • Ability to click enter in pull image name input by @deboer-tim #3850
  • Set proxy environment variable when launching process by @jeffmaury #3838
  • The socket location was moved for new podman by @afbjorklund #3853
  • Don't log console errors when activating lima extension by @afbjorklund #3852

Community Thank You

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

A warm welcome to @tomgoren, @Julian, @Gelob and @cedricclyburn who made their first contribution to the project in this release.

Final Notes

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

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.

· 6 min read
Denis Golovin

Podman Desktop 1.3 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features.

  • Podman 4.6.1: Podman 4.6.1 included in Windows and Mac installers
  • Podman user-mode networking support to Windows/WSL: A new switch `User mode networking' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations
  • Compose group new UI elements: You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs
  • Extension packs and extension dependencies: Install group of extensions in one click
  • Resource details page update: See summary and log for resource
  • Create Kind cluster form update: A new Node's container image field can be used to specify the Kubernetes version used for the control-planed
  • Support Docker Desktop extensions using a backend: When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension's descriptor
  • Podman Initial Onboarding (preview): Install and configure podman using included installer

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

Podman-desktop-1-3-bug-swatting


Release Details

Compose group Logs tab #3176

When clicking on the group of containers, you can now view the logs of the entire group of compose containers and don't need to open log for every component individually.

Screenshot 2023-07-11 at 12 48 47 PM

Podman user-mode networking support to Windows/WSL #3251

Certain VPN setups or other specialized networking configs will block traffic from the virtual WSL networking device, resulting in the podman WSL backend from being unable to contact systems on the VPN, and potentially losing internet access altogether. The new switch allows you to create a podman VM machine configured to work correctly in mentioned above networking environments.

user

Compose group Summary tab #3317,

Compose group Summary tab shows all containers in the group and let you navigate to Details page for specific container.

Compose group Inspect tab #3316

Compose group Inspect tab shows an array of "container inspect" from docker / podman.

Deploy to kubernetes in compose actions #3299

A button to deploy to kubernetes added to Compose group.

Generate Kube in Compose actions and Kube tab in compose details #3253

Generate Kube item added to Compose actions and "Kube" tab is now available in Compose details view.

Install multiple extensions using extension pack #3150

An Extension pack introduced in Extension engine is a way to declare set of extensions to install them all at once.

Customize icons from extension #3131

Extensions now can customize icons for list elements using when clause.

image

Resource details page update #1923

If you click on the arrow icon next to a resource name it will open up a details page (similarly to how clicking on a container in the container list opens up a details page).

image

Node's container image field added to Create a Kind cluster form #3508

The new Node's container image field can be used to specify the Kubernetes version used for the control-planed.

image

Support Docker Desktop extensions using a backend #3435

Podman Desktop now loads the containers in the backend as described in the vm section of extension descriptor the same way as Docker Desktop does.

Initial onboarding implementation for podman (experimental) #3308

This is the initial implementation for the onboarding feature. It only covers a simple onboarding for podman. Check system requirements -> install podman -> yay! Done!

Notable Bug Fixes

  • Updating videos to be adaptive for mobile by @mairin #3229
  • Consistent max width and padding in settings by @deboer-tim #3232
  • Settings navigation bar resizing by @deboer-tim in #3231
  • Move new registry button to header by @deboer-tim #3245
  • Bigger lima logo by @afbjorklund #3248
  • Horizontal docker logo by @afbjorklund #3236
  • Respect LIMA_HOME environment variable by @afbjorklund #3254
  • Add check before writing to terminal by @lstocchi #3263
  • Wait until remote side has fully initialized the extensions by @benoitf #3257
  • Fix loader not centered horizontally by @benoitf #3270
  • Troubleshooting still waiting after failure by @deboer-tim #3354
  • Store error for build by @cdrage #3365
  • Missing checkbox tooltips by @deboer-tim #3380
  • Load compose logs async not await by @cdrage #3377
  • Set rootful connection when starting rootful machine by @lstocchi #3364
  • Default last page by @deboer-tim #3388
  • Avoid dashboard displaying providers starting while they don't by @benoitf #3451
  • Do not use extensionInfo until it is defined by @benoitf #V
  • Allow BASIC authentication (all caps) by @cdrage #3471
  • Allow single domain registry such as localhost:5000 by @cdrage #3468
  • Create /usr/local/bin directory if it does not exist on binary install by @cdrage #3425
  • Only delete selected pods by @deboer-tim #
  • Add back 'Done' text on the button by @benoitf #3487
  • Do not wait for more than 5s when checking for podman ping by @benoitf #3497
  • Add proxy support for extension using patching get and request approach by @dgolovin #2825
  • Refresh component when field is updated by @benoitf #3525
  • Higher-res icons for featured extensions list by @mairin #3511
  • Main nav selection by @deboer-tim #3510
  • kube event error when switching context by @jeffmaury #3494
  • Reset error message each time we pull image by @benoitf #3550

Community Thank You

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

A warm welcome to @rostalan and @axel7083 who made their first contribution to the project in this release.

Final Notes

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

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.

· 7 min read
Charlie Drage

Podman Desktop 1.2 Release! 🎉

We're excited to announce the release of Podman Desktop version 1.2.0! This release includes many new features (Kubernetes, Compose and extension support!), bug fixes, and improvements to enhance your container management experience. Here's a summary of the key changes in this release:

  • Added start/stop/delete/restart buttons for Compose: You can now make changes to an entire Compose group of containers
  • Kubernetes context on the status bar: Choose from multiple Kubernetes contexts more easily all from the status bar
  • Rename images: Rename an image with a click of a button
  • Protocol handler support: Added support for protocol handlers such as open podman-desktop:extension/redhat.openshift-local
  • Troubleshooting page: A troubleshooting page for helping diagnose Podman Desktop related development issues

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

Podman-desktop-1-2-hero


Release Details

Added start/stop/delete/restart buttons for Compose

In the last month we've been addind support for more Compose features. Before you were only able to control a group of containers if they were in a Pod. Now we have added the ability to control a group of Compose containers. You can now start, stop, delete and restart a group of containers launched by either docker-compose or podman-compose.

Stay tuned as we add even more features to Compose! If you have any feedback or feature requests, feel free to open an issue or start a discussion on GitHub.

Kubernetes context on the status bar

With Kubernetes context on the status bar, you can switch from one context to another in just a couple of clicks. Easily switch to a different cluster all together. If there are multiple contexts available, you can now click and pick which one to use.

Rename images

Deployed an image but now you need to rename it / add a new tag? Podman Desktop allows you to edit an image now. Thanks to an awesome contributor @tuckerrc who added the new feature.

Troubleshooting page

Developing an extension for Podman Desktop? Want to view the logs of Podman Desktop as well as ping your container connection? We now have a troubleshooting page!

Click on the lightbulb button on the bottom right to access the page.

Protocol handler support

Podman Desktop now supports protocol handling when using the terminal! Want to access your favourite extension directly from a script or the terminal? If you type in open podman-desktop:extension/redhat.openshift-local in the terminal, Podman Desktop will automatically load up to the correct extension.


Other Notable Features

  • Background colors and FormPage (PR #2977)
  • Add ability to add insecure registry / skipping cert verify (PR #2896)
  • Add support for icon contribution (PR #2984)
  • Add warning dialog message that virtual machine has low memory limit (PR #2822)
  • Propose indexed name for new pod (PR #3028)
  • Add restart button after enabling / disabling mac os compatibility (PR #2841)
  • Add environment related helper constants (PR #3079)
  • Allow entrypoint and cmd when starting container (PR #3031)
  • Add a way to debug stores in troubleshooting page (PR #3121)
  • Add custompick component (#2855) (PR #3012)
  • Dynamic breadcrumbs (PR #3119)
  • Icons on form pages (PR #3155)
  • Switch more pages to formpage (PR #3162)
  • Add rename image button (PR #2588)
  • Fixed headers, improved scrollbars (PR #2863)
  • Reports warnings on failed kube deploy, fixes error out (PR #3050)
  • Kube context on statusbar (PR #2755)
  • Install provider if not installed when clicking on create new button (#2706) (PR #2817)
  • Add tag and authenticated push capacity to the extension API (PR #2876)
  • Add navigation bar e2e tests (PR #2950)

Documentation Updates

  • Fix documentation for building image of extensions (PR #2873)
  • Add Minikube install docs (PR #2824)
  • Add Minikube documentation (PR #2694)
  • Updated Building an image procedure (PR #2964)
  • Starting a container (PR #2958)
  • Pulling an image (PR #2956)
  • Updated selecting containers to run in a pod (PR #2970)
  • Pushing an image to a registry (PR #2969)
  • How to add an insecure registry (PR #2953)
  • Add documentation for lima (PR #2995)
  • Replace broken link to podman.io (PR #2994)
  • Authenticating to a pre-configured registry (PR #2965)
  • Lima is not a container engine (PR #3051)
  • Using the Troubleshooting page (PR #3083)
  • View and select your current Kubernetes context in the status bar (PR #3090)

Notable Bug Fixes

  • Deleting a running pod generates an error (PR #2827)
  • If kubeconfig is empty, does not try to do things, cancel (PR #2874)
  • Async telemetry startup (PR #2885)
  • Do not block startup while waiting for kube resource refresh (PR #2884)
  • Images list too wide (PR #2918)
  • Compose deactivate function never called (PR #2922)
  • Auto-scrolling on form pages, layout issues (PR #2927)
  • Show current context in quick pick (PR #2920)
  • Remove sticky position of loader in dashboard UI (#2535) (PR #2959)
  • Undo change that broke the website (PR #2992)
  • Detailspage, resizing & consistency (PR #2987)
  • Quick pick click to close and over nav bar (PR #2758)
  • Only show empty screen when no pods (PR #2929)
  • Do not redirect to /pods when deleting pod in containerlist (PR #2963)
  • Bulk delete on pods should call the pod deletion (PR #2979)
  • Update nodejs version to 18 in .nvmrc to fix yarn install failure (PR #2989)
  • Website check targets (PR #2996)
  • Don't show exception to user (PR #3034)
  • Interpret arguments given to info command for example (PR #3015)
  • Change defaults for Podman machine (PR #3061)
  • Normalize development/production folders path (PR #3113)
  • Calculate machine socket path for linux (PR #3070)
  • Replace backslash with slash so to support rendering on Windows (#3120) (PR #3122)
  • Keep stdout and stderr in the error object for Docker Desktop extensions (PR #3014)
  • Mark task completed if there's a failure (PR #3016)
  • Handle invalid kubeconfig file (PR #3129)
  • Do not remove registries when podman extension is stopping (PR #3136)
  • Warning should be amber (PR #3153)
  • Load user extensions from plugins as removable (PR #3152)
  • Images with spaces in entrypoints or commands fail to start (PR #3161)
  • Scrolling offscreen when clicking checkbox (PR #3178)
  • Avoid messagebox expanding offscreen (PR #2778)
  • Release-notes-generator run failure (PR #2752)
  • Unable to do a new build if the previous one failed (PR #2721)

Community Thank You

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

A big shoutout to @afbjorklund, @tuckerrc and @evanshortiss who contributed to this release!


Final notes

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

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.

· 3 min read
Tim deBoer

Podman Desktop 1.1 Release! 🎉

This is primarily a bug-fix release to fix a few important issues, but we've managed to squeeze in a few enhancements along the way.

  • Podman 4.5.1: Podman 4.5.1 now included in Windows and Mac installers.
  • Extensions: Update extensions from within Podman Desktop.
  • Lima Support: Choose engine type and override its name from the settings.
  • UX and UI Improvements: New loading screen.

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

Podman-desktop-1-1-hero

· 5 min read
Tim deBoer

Podman Desktop 1.0 Release! 🎉

We still have many things planned, but with a little polish and a few more bug fixes we felt we've reached a level of maturity and it is now time to declare our 1.0 release.

Thank you to everyone who has been with us on this journey so far! Please keep the @@ -29,7 +29,7 @@ of Podman Desktop: not just local container engines, but Kubernetes too. More im providing tools that allow you to manage both environments and seamlessly move between them.

Some of these features were available in development mode over the last few releases, but since they are now in the release build, we will do a full roundup and talk about all the Kind features.

  • Kind Installation: Install Kind from the status bar
  • Manage Kind Clusters: Create and manage Kind clusters from Settings > Resources
  • Using Kind: Deploying YAML and sharing images to a cluster
  • Kind Ingress: Install a Contour ingress controller
  • UX and UI Improvements: Updated preferences and telemetry prompt

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

Podman-desktop-0-14-hero

· 4 min read
Tim deBoer

This release note covers Podman Desktop 0.13 release changes.

  • Podman Version: Podman 4.4.4 now included in Windows and Mac installers.
  • Compose: Support for installing Docker Compose.
  • Extensions: Improved extension support for Podman Desktop with additional capabilities.
  • UX and UI Improvements: Welcome page, task manager, resources, and update alerts.

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

Podman-desktop-0-13-hero

· 5 min read
Florent Benoit

The 5 things to know being a Docker user by using Podman Desktop:

  • Use a single UI: Podman Desktop works with several container engines, including Docker.
  • The compatibility mode: How to ensure tools are working with Podman instead of Docker.
  • Compose support: How to work with Compose files and Podman.
  • Kubernetes support: How to use Kubernetes with Podman.
  • Security: Use rootless mode or containers without root privileges.

5-things-to-know-for-a-docker-user-hero

· 5 min read
Stevan Le Meur

This release note covers Podman Desktop 0.12 release changes.

  • Podman Version: Podman 4.4.1 now included in Windows and Mac installers.
  • Containers Configuration: Configure port mappings for an image without exported ports.
  • Windows Home Support: Podman Desktop now supports Windows Home Edition.
  • Start minimized: Option to start Podman Desktop minimized to system tray.
  • UX and UI Improvements: Consistent actions, placeholder for logs, unified icons and others.

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

podman-desktop-0-12-hero

· 10 min read
Stevan Le Meur

This release note covers Podman Desktop 0.11 release changes.

  • Air-Gapped Installation: New all-in-one binaries for air-gapped installation.
  • Feedback: Submit feedback directly from Podman Desktop.
  • Docker Compatibility Mode: Information about the Docker compatibility mode.
  • Proxy Setting: Toggle on/off the proxy setting.
  • Deploy to Kubernetes: Select the namespace to deploy to Kubernetes.
  • Registry Configuration: Simplified registry configuration for well known registries.
  • UX/UI Improvements: View pod's container logs, better visual feedback, configurable editor font size, and more.

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

· 5 min read
Dev Kumar

This release note covers Podman Desktop 0.10 release changes.

  • Containers Configuration: Container creation wizzard allowing to define environment variables, networking and more configuration options.
  • Kubernetes Improvements: Play Kubernetes YAML, custom Kubeconfig path support, reload of kube context.
  • Registries Configuration: Revamped registries configuration UI.
  • Podman Version: Podman 4.3.1 now included in Windows and Mac installers.
  • UX/UI Improvements: Improved lists, better contrast, and more.

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

· 7 min read
Florent Benoit

GitHub announced last week that Codespaces is available for everyone and it includes free minutes.

Let see how we can use a Development Container having all the tools to build and run Podman Desktop. The Development Container works locally using Visual Studio Code but in this blog post we will see how it works directly with a simple click from GitHub.

The challenges are to run a desktop tool (Podman Desktop) and running a container engine (Podman) inside this Development Container without using too many memory !

- + \ No newline at end of file diff --git a/blog/5-things-to-know-for-a-docker-user.html b/blog/5-things-to-know-for-a-docker-user.html index 1ffda669a0b..20dd97d61b9 100644 --- a/blog/5-things-to-know-for-a-docker-user.html +++ b/blog/5-things-to-know-for-a-docker-user.html @@ -13,13 +13,13 @@ - +

5 things to know about Podman Desktop for a Docker user

· 5 min read
Florent Benoit

The 5 things to know being a Docker user by using Podman Desktop:

  • Use a single UI: Podman Desktop works with several container engines, including Docker.
  • The compatibility mode: How to ensure tools are working with Podman instead of Docker.
  • Compose support: How to work with Compose files and Podman.
  • Kubernetes support: How to use Kubernetes with Podman.
  • Security: Use rootless mode or containers without root privileges.

5-things-to-know-for-a-docker-user-hero


Use Podman Desktop to interact with containers running in Docker

Docker Desktop provides a UI to interact with containers and images. But the UI depends on Docker API and it is not possible to use the UI with Docker and Podman at the same time.

Podman Desktop is a multi-engine UI tool. The UI is compatible with the API of Docker and Podman. It means all containers and images from all the engines at the same time are visible in the UI.

When migrating from Docker to Podman, you can use Podman Desktop to interact with containers running in Docker. Explore all commands and features of Podman Desktop and see all the resources from Docker.

Many container engines at the same time

Docker compatibility mode

Using Podman with Podman Desktop or with the Podman CLI is straightforward. But some tools expect to find docker CLI or docker.sock socket. In this case, you have to use the compatibility mode of Podman.

Socket file compatibility

The socket compatibility mode is a feature of Podman that allows to bind the Podman socket under the Docker socket path.

On Windows the socket compatibility mode is always enabled by default. On macOS, by using the .pkg installer it is active by default. But when installing with brew, it will not be there because it requires some admin permissions.

That is not an issue because you can enable it by invoking a CLI tool that will setup the compatibility mode.

For example if you use TestContainers in your Java project, you can use the compatibility mode to ensure that the tool will use Podman instead of Docker.

CLI compatibility

If you have scripts relying on docker CLI, you can use the compatibility mode to ensure that the tool is working with Podman instead of Docker.

If you have the docker CLI installed on your computer, you can use the socket file compatibility of docker to ensure that the tool is working with Podman engine instead of Docker.

If you do not have the docker CLI installed on your computer, you can Create a script called docker that will call the podman CLI

NOTE: creating a shell prompt alias, for example alias docker=podman, will not work inside scripts that you call.

Compose

As a user of Docker, you might use docker compose (or docker-compose) to run some of your applications.

For now Podman does not include a Compose support directly in the CLI with a command podman compose.

Compose can work with the Podman socket.

Based on the compatibility mode (see section about Docker compatibility mode):

You can now use the compose binary to run your applications and it will use Podman engine.

Podman Desktop has a compose extension that can fetch compose binary if not already available on the filesystem.

Podman Desktop UI displays the containers created by Compose are in the same group.

Compose support in the UI

Kubernetes

It is possible to start a Kubernetes cluster with Docker.

Podman supports directly a subset of Kubernetes resources that you can use with .yaml files.

For example if you only want to create a Pod resource, you can use the Play Kubernetes YAML button from the Containers list screen with your .yaml file. No need to install or start a Kubernetes cluster.

Play Kubernetes YAML

It is possible to do the counter-part. Export the definition of a container or pod to a Kubernetes resource. You can use the Generate kube button from the kebab menu of a given container or pod.

Kubernetes generate

Podman handles pods and in the Podman Desktop UI, you can see all the pods inside a Pod section. All containers inside the pod are in the same group.

Pods in the UI

Containers from pod

An experimental kind extension is bringing the creation of full-blown Kubernetes cluster with Podman.

Rootless mode

One of the difference of Docker and Podman is the way they handle containers. Docker requires root privileges to run containers by default. Podman can run containers without root privileges by default.

It means that for example, starting a container with a port < 1024 will not work. You need to use a port > 1024.

If you still need to create containers with a port < 1024, you can change the Podman machine configuration of the Podman Machine if you are on Windows or macOS.

The command is podman machine --rootful to enable the execution with root privileges or podman machine --rootful=false to switch back to rootless mode.

- + \ No newline at end of file diff --git a/blog/archive.html b/blog/archive.html index fcfad7d5dec..4fcb78155dd 100644 --- a/blog/archive.html +++ b/blog/archive.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/blog/develop-using-devcontainer.html b/blog/develop-using-devcontainer.html index bd6e48f1642..a265d7a45e3 100644 --- a/blog/develop-using-devcontainer.html +++ b/blog/develop-using-devcontainer.html @@ -13,7 +13,7 @@ - + @@ -23,7 +23,7 @@ Using --privileged we don't really know what are the privilege that are required while specifying all of them, people are aware of what is granted/denied.

"runArgs": [
"--cap-add=sys_admin",
"--security-opt",
"seccomp=unconfined",
"--device",
"/dev/fuse",
"--security-opt",
"label=disable",
"--security-opt",
"apparmor=unconfined"
],

Source code of Podman Desktop needs to be editable within the DevContainer so it needs to be mounted.

"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind",
"workspaceFolder": "/workspace",

Then we need a command to build Podman Desktop.

For that, we use onCreateCommand hook with a custom command

"onCreateCommand": "${containerWorkspaceFolder}/.devcontainer/onCreateCommand.sh",

and in the .devcontainer folder the onCreateCommand.sh script is the following

#!/bin/sh
yarn

MODE=production yarn run build && yarn run electron-builder build --linux --dir --config .electron-builder.config.cjs

Two instructions:

  1. Fetch all Node.js dependencies.
  2. build Podman Desktop in the dist folder using Linux as target Operating System.

After the start of the container, how to launch Podman Desktop, the website and VNC, etc ?

Just use postStartCommand hook.

"postStartCommand": "${containerWorkspaceFolder}/.devcontainer/postStartCommand.sh",

and in the .devcontainer folder the postStartCommand.sh script is the following:

#!/bin/sh

# Start all services
/usr/bin/supervisord -c /etc/supervisord.conf &

# wait X server to be ready or after 2mn exit
echo "Waiting for X server to be ready"
timeout 120 bash -c 'until xdpyinfo -display :0 &> /dev/null; do printf "."; sleep 1; done'

# launch podman desktop
echo "Launching Podman Desktop"
cd dist/linux-unpacked/&& ./podman-desktop &

# Launch the 9000 redirect after 20 seconds
sleep 20
websockify --web=/usr/share/novnc localhost:9000 localhost:5900 &

# launch the website rendering
echo "Launching Website"
cd website && yarn start

It starts VNC and noVNC, start precompiled Podman Desktop and start the documentation rendering.

It is not launching the Watch mode/development mode of Podman Desktop as it requires a container having more than 8GB of memory.

Picking up a larger instace with for example 16GB, it's possible to use development mode.

Of course, to make VNC happy, we need to specify the DISPLAY environment variable.

"remoteEnv": {
"DISPLAY": ":0"
}

When the DevContainer is fully available, we want to have a way to quickly open the Website rendering URL and noVNC

Let's tweak the devcontainer.json file by adding the portsAttributes section

"portsAttributes": {
"9000": {
"label": "vnc",
"onAutoForward": "openPreview"
},
"3000": {
"label": "website"
}
}

After all post-creation steps, the Preview browser inside the VS Code editor will open a window to VNC. And another port (3000) is flagged for the website.

Using the DevContainer.json on Github Codespace

As a user, opening a workspace with all what we configured is done using a single click.

Go to https://github.com/containers/podman-desktop then click on the < > Code dropdown and click on Create codespace on main button.

Open Codespace

Once you click on the button, the codespace is setting up:

Preparing Codepace

After few minutes, as there is not yet prebuilt codespaces, the codespace is opening.

The simple Browser displays the noVNC window: Opening Codespace

Click on the connect button. Then on the terminal you can enter podman run quay.io/podman/hello and the container is detected in Podman Desktop. Testing Codespace

It's also possible using the port widget to get on 3000 port by clicking on the world icon a preview of the website in another tab. Changing source code of the website will refresh the content of the window.

Depending on the usecase, it's also possible to open documentation in the preview browser.

Edit website Codespace

Conclusion

The DevContainer image for Podman Desktop is recent so it'll probably evolve over time by adding new capabilities but it allows you to easily build/run/experiment and contribute to the tool or the website.

- + \ No newline at end of file diff --git a/blog/podman-desktop-release-0.10.html b/blog/podman-desktop-release-0.10.html index a32053beda7..e8e41ef5542 100644 --- a/blog/podman-desktop-release-0.10.html +++ b/blog/podman-desktop-release-0.10.html @@ -13,13 +13,13 @@ - +

Release Notes - Podman Desktop 0.10

· 5 min read
Dev Kumar

This release note covers Podman Desktop 0.10 release changes.

  • Containers Configuration: Container creation wizzard allowing to define environment variables, networking and more configuration options.
  • Kubernetes Improvements: Play Kubernetes YAML, custom Kubeconfig path support, reload of kube context.
  • Registries Configuration: Revamped registries configuration UI.
  • Podman Version: Podman 4.3.1 now included in Windows and Mac installers.
  • UX/UI Improvements: Improved lists, better contrast, and more.

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


Release Details

New configuration wizzard to create containers (#773)

Until now, we could only specify port binding when building images to start containers. The create container wizzard now includes several options enabling configuring volumes, environment variables, restart policy and settings on networking and security. It is also possible to reuse an existing (and already configured) a network when creating containers.

new container creation wizard

Kubernetes Capabilities Improvements

Custom Kubeconfig file path (#780)

Kubeconfig path location is now configurable from Settings > Preferences > Kubernetes: Kubeconfig and can be set to a custom path. By default, Podman Desktop use the path $HOME/.kube/config for the Kubeconfig file.

custom kubeconfig file path

Play Kubernetes YAML from the Pods list (#739)

Podman Desktop enables to play existing Kubernetes YAML files. This is now available from Play Kubernetes YAML button added to the Pods list, in addition to the Containers list.

play k8s yaml

Kube context automatically reloaded when updated (#813)

Any change to the kube context will now be detected by Podman Desktop in its running state. The system tray, allowing to select which Kubernetes environment to work with, will now reload the kube context without restarting Podman Desktop.

Revamped Container Registries UI (#446)

The registries configuration UI has been revamped. Instead of using tiles for displaying the registries, now it uses a list where each registry can be added or edited directly in the list. The kebab menu provides options to edit or remove a registry from the list.

registries

Update to Podman 4.3.1 (#913)

Podman Desktop 0.10 is now embedding Podman 4.3.1 in Windows and macOS installers.

UI/UX Improvements

Improved lists UX (#877)

To reduce the width used in the lists when displaying all the icons, main actions icons are now always displayed (before it was on hover) and the secondary actions are displayed in a kebab menu. For example Start/Stop and delete are primary actions while open the browser, inspect, generate kube yaml, etc. are secondary options.

kebab menu

Delay appearance of text in navbar (#767)

When minimizing or expanding the navbar, the text was overlapping for a few second the page. Now it's displayed with a fading animation.

Selected state: better text color contrast (#802)

In the Images page, on hover for both the image and the name column, the text contrast has been increased for better visibility: violet indicates that you have selected it.

text color when hover

On Linux and Windows, the menu bar is now hidden by default (#668)

With this change, the menu bar looks more integrated to the Operating System. The menu can appear if you hit the Alt key. Thanks to Dylan M. Taylor for contributing to fix this.

Exit when clicking on the close icon of the dashboard on Linux (#671)

For most users on Linux, there is no tray icon support. In this situation, when closed, Podman Desktop continues to run in background. Dylan M. Taylor added a property to exit the app by default when clicking on the close icon. For people having tray icon support or with the desire of a different behavior, it is possible to disable it from the Settings.


Other Notable Enhancements

  • Rename Started into Age in Containers list.(#878)
  • Added domain validation when adding a registry. (#838)
  • Provided a consistent behavior with Podman CLI, podman-machine-default is now the default name when creating a Podman machine from Podman Desktop. (#775)

Notable bug fixes

  • Fixed error handling when pulling images of Desktop Extensions. (#782)
  • Fixed use of the full height of the screen when displaying log in the details of a container. (#946)
  • Fixed First start of Podman Desktop on flatpak was not seeing the podman engine (#860)

Community Thank You

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

Final Notes

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

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.

- + \ No newline at end of file diff --git a/blog/podman-desktop-release-0.11.html b/blog/podman-desktop-release-0.11.html index d37bf954e85..986cd74fb6e 100644 --- a/blog/podman-desktop-release-0.11.html +++ b/blog/podman-desktop-release-0.11.html @@ -13,7 +13,7 @@ - + @@ -24,7 +24,7 @@ Please note, that those binaries are available only on releases and not the pre- mac-docker-compatibility

Allow to toggle on/off the proxy setting #983

In some context, users need the ability to disable and re-enable the proxy configuration very quickly, without having to entirely reconfigure it. This is now possible from the Podman Desktop settings page, where a toggle to enable/disable the proxy configuration has been added.

Note: extensions can read this information and then update the proxy configuration.

Namespace selection for deploy to Kubernetes #1008

A new dropdown menu has been added to the deploy to Kubernetes screen to allow selecting the namespace to deploy to. Defaults to defaultnamespace, if unable to get any from kube_client module.

If the user have set kubectl config set-context --current --namespace=NAMESPACE it honors that as the chosen value.

deploy-kubernetes-namespace

Configure Podman binary path #941

Users may use a custom path to the podman binary. An option within settings (Settings -> Preferences) to allow providing an additional path to Podman binary has been added. This is useful for users who have installed Podman using a package manager and want to use the binary provided by the package manager. Additional information is available in the documentation for Mac users: http://podman-desktop.io/docs/troubleshooting#unable-to-set-custom-binary-path-for-podman-on-macos

custom-path

Provide pre-defined registries #1201

The experience of configuring a registry is getting simplified for the most popular ones. The user will be able to select a registry from a pre-defined list and will only have to provide the username and password. The following registries will be pre-defined:

  • Dockerhub
  • Red Hat Quay
  • GitHub
  • IBM Container Registry
  • Google Container Registry

UI/UX Improvements

View Pods logs #1122

The pods details view provides the ability to view the logs of each containers that might be running in a pod. Moreover, as it can also be hard to scan and identify which container is producing which output, we appended the container name at the beginning of each output and differentiate each container with a different color.

pods-logs

Improved feedback when clicking on container list action icons #1150 #1161

When starting/stopping or deleting a container, a spinner is now displayed. In case of error, a message indicating that the action failed will also be better indicated.

For containers that exit immediately or short-lived containers, the feedback is also improved and include report of error now provide a better feedback to the user #1161.

Allows to change the default font size for the editor #1160

An editor is used in several screens of Podman Desktop, from the inspect screen to container's outputs and Kubernetes YAML. The default font size is 10 pixels. It's now possible to adjust the font size to the one the one you prefer. This setting is persisted and will be used for all the editors of Podman Desktop and available from the preferences page (Settings -> Preferences).

Keep expanded state of pods when refreshing containers #1042

When switching from different screens of the application or simply refreshing the list of containers, the expanded state of each item in the list is now persisted and will be properly restored.

Click on the Pod name redirects to the Pod details page #1159

The list of containers also displays pods, now clicking on the pod name directly redirects to the Pod details page.

Improved styles of buttons for actions #984

The style of the buttons for actions on item in the list of in details pages have been improved. The background has been removed, but to make the hover state more visible, the "hover" circle is visble and the icon's color is also changing.

On lists: list-actions

On details pages: details-actions

Improved alignments in pages with lists #1182

The alignment of the items in the list of containers and pods have been improved. The header of each columns are now aligned with the text. and the actions icons are now aligned with the top of the text.

list-actions


Other Notable Enhancements

  • Statistics area in container details are always shown. (#1131)
  • Add more descriptive wording and more information to extensions. (#985)
  • Allow to install on-the fly Podman Desktop extensions using an OCI image. (#1187)
  • Display correctly non-multiplexed stream in logs (when using non interactive mode). (#1197)
  • Font changed from white to gray for non-name sections (creation date, size). (#1206)
  • Add Help/about menu for macOS/Windows/Linux. (#1207)

Documentation

Coming with this new version of Podman Desktop, the documentation has been getting attention (with number of editorial reviews) and new content have been added.

Content for helping users to migrate from Docker to Podman has been added:

Several of other improvements have been made to the documentation and the website:


Notable bug fixes

  • Update to v0.3.2 Docker Desktop API for extensions - #1070
  • Updated link to the Matrix room - #1076
  • Report error when container name already exists - #1142
  • Fixed connectivity to the Podman machine when the generated socket length is greater than 104 characters in MacOS - #1145
  • Do not use long calls for external clients - #1151
  • Invalid name/tag for images with registries using a different port - #1127
  • Invalid badge count for images when two images have the same tag - #1124
  • Fixed detection of WSL2 - #981
  • Handle invalid kubeconfig files instead of crashing - #953
  • Removed redundant actions from details pages - #1200
  • Fixed registry URL not aligned with header - #1205
  • Moved SVGs to reusable components - #1211

Extensions API has also been improved in this new release:

  • (extension-api): Allows to register a factory for kubernetes connection objects (like for container connections) - #1040
  • (extension-api): List or inspect containers, be notified on events - #1041
  • (extension-api): Allows to get provider notification - #1045
  • (dd-extension-api): Implement toast API - #1154
  • (extension-api): Moved extension properties to preferences - #948
  • (dd-extension-api): Added open dev console on dd webview in development mode - #1071
  • (extension-api): Added notes on extension and frameworks/tooling of Podman Desktop - #1166
  • (extension-api): Documentation on how to write an extension and use the api - #1172
  • (dd-extension-api): DD extensions should see only minimal information on containers - #1191

Community Thank You

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

Final Notes

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

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.

- + \ No newline at end of file diff --git a/blog/podman-desktop-release-0.12.html b/blog/podman-desktop-release-0.12.html index fc566ec5805..1b1dc2b91b1 100644 --- a/blog/podman-desktop-release-0.12.html +++ b/blog/podman-desktop-release-0.12.html @@ -13,14 +13,14 @@ - +

Release Notes - Podman Desktop 0.12

· 5 min read
Stevan Le Meur

This release note covers Podman Desktop 0.12 release changes.

  • Podman Version: Podman 4.4.1 now included in Windows and Mac installers.
  • Containers Configuration: Configure port mappings for an image without exported ports.
  • Windows Home Support: Podman Desktop now supports Windows Home Edition.
  • Start minimized: Option to start Podman Desktop minimized to system tray.
  • UX and UI Improvements: Consistent actions, placeholder for logs, unified icons and others.

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

podman-desktop-0-12-hero


Release Details

Update to Podman v4.4.1 #1456

Podman Desktop 0.12 embeds Podman 4.4.1 in Windows and macOS installers. Make sure to upgrade to benefit from the latest Podman features and bug fixes.

Configuring port mappings when an image has no exported port #1265

With the latest update, users can now add multiple local-to-remote port mappings when starting a container from an image that has no exported ports. This feature provides users with the flexibility to specify which ports on their local machine should map to which ports on the container, even if the container does not have any exported ports by default.

port-mapping

Installing Podman Dekstop on Windows Home Edition #1268

Podman Desktop 0.12 offers the ability to be installed on Windows Home Edition. The mechanism uses Virtual Machine Platform detection, instead of hyper-v. WSL2 is still requires but can be installed along with the installation process.

install-windows-home-edition-2

Option to automatically minimize Podman Desktop on login #1374

Podman Desktop now provides a "start minimized" option when users log in onto the laptop. This option, available from the application's settings, can be useful if users want to automatically launch Podman Desktop at log in, but prefer not to have the window visible on the screen. With this feature, you can ensure that Podman Desktop is up and running in the background without any interruption to your workflows.

  • Go to Settings > Preferences > Login: Minimize to activate the option.

minimize-on-login

UI and UX Improvements

Improved actions consistency #1225

Actions displayed in the list pages for Images and Containers have been reviewed and made consistent between other pages.

action-consistency-1

Actions displayed in the header of the container's details page have been improved so that the actions are always displayed in the same order.

action-consistency-2

Consistent status icons for Pods, Containers, Images and Volumes #1326, #1377, #1459 and #1245

The status icons for Pods, Containers, Images, and Volumes have been unified and use consistent states.

pods-status-icon

Icons in empty screens have been updated to use the same consistent SVG icon as the status icons.

empty-screen-2

Placeholder when logs for containers are being fetched #1353

A placeholder is now displayed when logs are being fetched. placeholder-loading-logs

Fixed alignement in badges from the navigation sidebar #1357

Badges in the sidebar are now aligned with the title of the section.

alignement-badges

Enable/disable open browser action based on container state #1395 and #1397

The action to open the browser if a port is opened in a container, is now disabled when the container is stopped. It is also hidden in the kebab menu.

enable-disable-container-actions


Other Notable Enhancements

  • Display extension icons #1058
  • Solid Icons #1267
  • Differentiate icons compared to status icons #1268
  • Refactors window initializing #1309
  • Change window creation background color to dark #1310
  • Use Podman machine inspect to read the address to connect to the Podman machine #1364
  • Update the editor content when the pod name changes, and disable the deploy button when empty #1403
  • Ability to manually set color of tray icon for Windows and Linux #1243
  • Better UI feedback when starting pods #1242

Documentation

The documentation had many editorial reviews, and new content.


Notable bug fixes

  • Fixed handling path with spaces on Windows when installing Podman #1270
  • Removed padding from SVG icons #1253
  • Website: fixed download links for Windows and macOS binaries #1255
  • Fixed prettier commands on Windows #1266
  • Fixed new xterm instance spawn when clicking the logs route #1344
  • Fixed need to wait that telemetry has been initilized before proceeding #1373
  • Fixed new xterm instance spawn when clicking the logs route in pod details#1393
  • Fixed stop spinner if image cannot be retrieved #1394
  • Fixed escape command with quotes only for Windows #1462
  • Fixed random CRC status change #1420

Community Thank You

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

Final Notes

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

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.

- + \ No newline at end of file diff --git a/blog/podman-desktop-release-0.13.html b/blog/podman-desktop-release-0.13.html index f3c7692e9b0..49f40a007fc 100644 --- a/blog/podman-desktop-release-0.13.html +++ b/blog/podman-desktop-release-0.13.html @@ -13,7 +13,7 @@ - + @@ -21,7 +21,7 @@

Release Notes - Podman Desktop 0.13

· 4 min read
Tim deBoer

This release note covers Podman Desktop 0.13 release changes.

  • Podman Version: Podman 4.4.4 now included in Windows and Mac installers.
  • Compose: Support for installing Docker Compose.
  • Extensions: Improved extension support for Podman Desktop with additional capabilities.
  • UX and UI Improvements: Welcome page, task manager, resources, and update alerts.

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

Podman-desktop-0-13-hero


Release details

Update to Podman v4.4.4

Podman Desktop 0.13 embeds Podman 4.4.4 in Windows and macOS installers #1456.

Compose support

You can install Docker Compose from the Podman Desktop UI #1578. This will allow you use Compose workflows using Podman.

Extensions

To make it easier to extend Podman Desktop we have:

UI and UX improvements

Welcome page #1726

The first time every user starts Podman Desktop, they will see a welcome page:

welcome-page

Note that the Welcome page will only appear the first time you run Podman Desktop 0.13.0, and none of your settings or assets in Podman Desktop will be affected by it. Over time, this page will be expanded to help with initial setup and configuration.

New Task Manager #1724

A new Task Manager has been added to the status bar to see the progress (or return to) long running tasks. To start with, building images #1725 and Podman machine #1742 are using the task manager.

task-manager

Updated Resources Settings #1582

The Settings > Resources page has been updated with a new design, making it easier to see and control your providers from a single place.

resources

The other settings pages have been updated for consistency with this new design.

Update Alerts #1827

A new alert button will appear in the status bar when future updates are available.

Prune buttons #1481, #1482, #1484

We've added buttons to prune unused volumes #1481, images #1482 and pods #1484.

prune-image


Other notable enhancements

  • Kubernetes pods are now shown in the Pods view #1312
  • Easy button to fix Docker compatibility mode on macOS #1697
  • Display extension icons #1058
  • API to cancel long running tasks #1777

Documentation

The documentation has new content:


Notable bug fixes

  • Periodically check and refresh Podman connection on Windows and Mac #1662
  • Fix inconsistent Log view behaviour #1710
  • Don't create route for regular Kubernetes clusters #1707
  • Fix copy button on empty screen #1804
  • Register extension tray items correctly #1778 and handle updates #1800

Community thank you

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

Final notes

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

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.

- + \ No newline at end of file diff --git a/blog/podman-desktop-release-0.14.html b/blog/podman-desktop-release-0.14.html index 967dcf8670d..1f302c9434f 100644 --- a/blog/podman-desktop-release-0.14.html +++ b/blog/podman-desktop-release-0.14.html @@ -13,7 +13,7 @@ - + @@ -46,7 +46,7 @@ making it easier to see and change preferences. Changes are live, no more Update 1927 This is more usable, one less prompt, and solves a window-layering issue for some users!

telemetry prompt


Other notable enhancements

  • Extension support for opening an external URL 2028 and accessing the clipboard 2023

Documentation

Naturally, we have a section in the documentation just for Kind.


Notable bug fixes

  • Avoid a dialog box if unable to check for updates 2062
  • Unable to get to the Dashboard if Kind (or Kubernetes) cluster was not running 2052

Final notes

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

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.

- + \ No newline at end of file diff --git a/blog/podman-desktop-release-0.15.html b/blog/podman-desktop-release-0.15.html index 7c5ab1fa1a3..1e4a2db3132 100644 --- a/blog/podman-desktop-release-0.15.html +++ b/blog/podman-desktop-release-0.15.html @@ -13,7 +13,7 @@ - + @@ -41,7 +41,7 @@ provider properties/creation pages


Other Notable Enhancements

  • We know which Settings page is used the most often, so now it's the default: Settings > Resources #2105.

  • Extensions can now use the Tasks API to let long running tasks continue in the background #2019 and the existing withProgress API also uses the task manager now #2187.

Task API

  • Images are now sorted by age #2311.

  • When you start/stop a container or pod, the button is now animated instead of having an separate spinner #2101.

  • The Settings > Preferences page now has a search bar #2128.

Search preferences

  • The Help page has been updated #431.

Updated Help


Notable Bug Fixes

  • There was no way to see log or outcome if you leave the Kind cluster creation page #2079.
  • Kind image load doesn't show a notification #2225.
  • Fix odd selection in Settings > Extensions #2130.
  • Menus are now cleaned up properly when extensions are stopped #2188.
  • Kind clusters are now cleaned up when Podman machine is stopped #2306.

Final notes

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

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.

- + \ No newline at end of file diff --git a/blog/podman-desktop-release-1.0.html b/blog/podman-desktop-release-1.0.html index 9a876cea323..4b91a52a51a 100644 --- a/blog/podman-desktop-release-1.0.html +++ b/blog/podman-desktop-release-1.0.html @@ -13,7 +13,7 @@ - + @@ -94,7 +94,7 @@ to get us here:

ucomesdag, xbabalov, zezo2019.


Final notes

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

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.

- + \ No newline at end of file diff --git a/blog/podman-desktop-release-1.1.html b/blog/podman-desktop-release-1.1.html index 175523308f4..2d0cd68daa3 100644 --- a/blog/podman-desktop-release-1.1.html +++ b/blog/podman-desktop-release-1.1.html @@ -13,7 +13,7 @@ - + @@ -26,7 +26,7 @@ automatically check for and install extension updates.

- + \ No newline at end of file diff --git a/blog/podman-desktop-release-1.2.html b/blog/podman-desktop-release-1.2.html index 348bebfaa6d..fb4a5860c53 100644 --- a/blog/podman-desktop-release-1.2.html +++ b/blog/podman-desktop-release-1.2.html @@ -13,13 +13,13 @@ - +

Release Notes - Podman Desktop 1.2

· 7 min read
Charlie Drage

Podman Desktop 1.2 Release! 🎉

We're excited to announce the release of Podman Desktop version 1.2.0! This release includes many new features (Kubernetes, Compose and extension support!), bug fixes, and improvements to enhance your container management experience. Here's a summary of the key changes in this release:

  • Added start/stop/delete/restart buttons for Compose: You can now make changes to an entire Compose group of containers
  • Kubernetes context on the status bar: Choose from multiple Kubernetes contexts more easily all from the status bar
  • Rename images: Rename an image with a click of a button
  • Protocol handler support: Added support for protocol handlers such as open podman-desktop:extension/redhat.openshift-local
  • Troubleshooting page: A troubleshooting page for helping diagnose Podman Desktop related development issues

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

Podman-desktop-1-2-hero


Release Details

Added start/stop/delete/restart buttons for Compose

In the last month we've been addind support for more Compose features. Before you were only able to control a group of containers if they were in a Pod. Now we have added the ability to control a group of Compose containers. You can now start, stop, delete and restart a group of containers launched by either docker-compose or podman-compose.

Stay tuned as we add even more features to Compose! If you have any feedback or feature requests, feel free to open an issue or start a discussion on GitHub.

Kubernetes context on the status bar

With Kubernetes context on the status bar, you can switch from one context to another in just a couple of clicks. Easily switch to a different cluster all together. If there are multiple contexts available, you can now click and pick which one to use.

Rename images

Deployed an image but now you need to rename it / add a new tag? Podman Desktop allows you to edit an image now. Thanks to an awesome contributor @tuckerrc who added the new feature.

Troubleshooting page

Developing an extension for Podman Desktop? Want to view the logs of Podman Desktop as well as ping your container connection? We now have a troubleshooting page!

Click on the lightbulb button on the bottom right to access the page.

Protocol handler support

Podman Desktop now supports protocol handling when using the terminal! Want to access your favourite extension directly from a script or the terminal? If you type in open podman-desktop:extension/redhat.openshift-local in the terminal, Podman Desktop will automatically load up to the correct extension.


Other Notable Features

  • Background colors and FormPage (PR #2977)
  • Add ability to add insecure registry / skipping cert verify (PR #2896)
  • Add support for icon contribution (PR #2984)
  • Add warning dialog message that virtual machine has low memory limit (PR #2822)
  • Propose indexed name for new pod (PR #3028)
  • Add restart button after enabling / disabling mac os compatibility (PR #2841)
  • Add environment related helper constants (PR #3079)
  • Allow entrypoint and cmd when starting container (PR #3031)
  • Add a way to debug stores in troubleshooting page (PR #3121)
  • Add custompick component (#2855) (PR #3012)
  • Dynamic breadcrumbs (PR #3119)
  • Icons on form pages (PR #3155)
  • Switch more pages to formpage (PR #3162)
  • Add rename image button (PR #2588)
  • Fixed headers, improved scrollbars (PR #2863)
  • Reports warnings on failed kube deploy, fixes error out (PR #3050)
  • Kube context on statusbar (PR #2755)
  • Install provider if not installed when clicking on create new button (#2706) (PR #2817)
  • Add tag and authenticated push capacity to the extension API (PR #2876)
  • Add navigation bar e2e tests (PR #2950)

Documentation Updates

  • Fix documentation for building image of extensions (PR #2873)
  • Add Minikube install docs (PR #2824)
  • Add Minikube documentation (PR #2694)
  • Updated Building an image procedure (PR #2964)
  • Starting a container (PR #2958)
  • Pulling an image (PR #2956)
  • Updated selecting containers to run in a pod (PR #2970)
  • Pushing an image to a registry (PR #2969)
  • How to add an insecure registry (PR #2953)
  • Add documentation for lima (PR #2995)
  • Replace broken link to podman.io (PR #2994)
  • Authenticating to a pre-configured registry (PR #2965)
  • Lima is not a container engine (PR #3051)
  • Using the Troubleshooting page (PR #3083)
  • View and select your current Kubernetes context in the status bar (PR #3090)

Notable Bug Fixes

  • Deleting a running pod generates an error (PR #2827)
  • If kubeconfig is empty, does not try to do things, cancel (PR #2874)
  • Async telemetry startup (PR #2885)
  • Do not block startup while waiting for kube resource refresh (PR #2884)
  • Images list too wide (PR #2918)
  • Compose deactivate function never called (PR #2922)
  • Auto-scrolling on form pages, layout issues (PR #2927)
  • Show current context in quick pick (PR #2920)
  • Remove sticky position of loader in dashboard UI (#2535) (PR #2959)
  • Undo change that broke the website (PR #2992)
  • Detailspage, resizing & consistency (PR #2987)
  • Quick pick click to close and over nav bar (PR #2758)
  • Only show empty screen when no pods (PR #2929)
  • Do not redirect to /pods when deleting pod in containerlist (PR #2963)
  • Bulk delete on pods should call the pod deletion (PR #2979)
  • Update nodejs version to 18 in .nvmrc to fix yarn install failure (PR #2989)
  • Website check targets (PR #2996)
  • Don't show exception to user (PR #3034)
  • Interpret arguments given to info command for example (PR #3015)
  • Change defaults for Podman machine (PR #3061)
  • Normalize development/production folders path (PR #3113)
  • Calculate machine socket path for linux (PR #3070)
  • Replace backslash with slash so to support rendering on Windows (#3120) (PR #3122)
  • Keep stdout and stderr in the error object for Docker Desktop extensions (PR #3014)
  • Mark task completed if there's a failure (PR #3016)
  • Handle invalid kubeconfig file (PR #3129)
  • Do not remove registries when podman extension is stopping (PR #3136)
  • Warning should be amber (PR #3153)
  • Load user extensions from plugins as removable (PR #3152)
  • Images with spaces in entrypoints or commands fail to start (PR #3161)
  • Scrolling offscreen when clicking checkbox (PR #3178)
  • Avoid messagebox expanding offscreen (PR #2778)
  • Release-notes-generator run failure (PR #2752)
  • Unable to do a new build if the previous one failed (PR #2721)

Community Thank You

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

A big shoutout to @afbjorklund, @tuckerrc and @evanshortiss who contributed to this release!


Final notes

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

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.

- + \ No newline at end of file diff --git a/blog/podman-desktop-release-1.3.html b/blog/podman-desktop-release-1.3.html index 5edea247a43..ebc5ab1af69 100644 --- a/blog/podman-desktop-release-1.3.html +++ b/blog/podman-desktop-release-1.3.html @@ -13,14 +13,14 @@ - +

Release Notes - Podman Desktop 1.3

· 6 min read
Denis Golovin

Podman Desktop 1.3 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features.

  • Podman 4.6.1: Podman 4.6.1 included in Windows and Mac installers
  • Podman user-mode networking support to Windows/WSL: A new switch `User mode networking' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations
  • Compose group new UI elements: You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs
  • Extension packs and extension dependencies: Install group of extensions in one click
  • Resource details page update: See summary and log for resource
  • Create Kind cluster form update: A new Node's container image field can be used to specify the Kubernetes version used for the control-planed
  • Support Docker Desktop extensions using a backend: When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension's descriptor
  • Podman Initial Onboarding (preview): Install and configure podman using included installer

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

Podman-desktop-1-3-bug-swatting


Release Details

Compose group Logs tab #3176

When clicking on the group of containers, you can now view the logs of the entire group of compose containers and don't need to open log for every component individually.

Screenshot 2023-07-11 at 12 48 47 PM

Podman user-mode networking support to Windows/WSL #3251

Certain VPN setups or other specialized networking configs will block traffic from the virtual WSL networking device, resulting in the podman WSL backend from being unable to contact systems on the VPN, and potentially losing internet access altogether. The new switch allows you to create a podman VM machine configured to work correctly in mentioned above networking environments.

user

Compose group Summary tab #3317,

Compose group Summary tab shows all containers in the group and let you navigate to Details page for specific container.

Compose group Inspect tab #3316

Compose group Inspect tab shows an array of "container inspect" from docker / podman.

Deploy to kubernetes in compose actions #3299

A button to deploy to kubernetes added to Compose group.

Generate Kube in Compose actions and Kube tab in compose details #3253

Generate Kube item added to Compose actions and "Kube" tab is now available in Compose details view.

Install multiple extensions using extension pack #3150

An Extension pack introduced in Extension engine is a way to declare set of extensions to install them all at once.

Customize icons from extension #3131

Extensions now can customize icons for list elements using when clause.

image

Resource details page update #1923

If you click on the arrow icon next to a resource name it will open up a details page (similarly to how clicking on a container in the container list opens up a details page).

image

Node's container image field added to Create a Kind cluster form #3508

The new Node's container image field can be used to specify the Kubernetes version used for the control-planed.

image

Support Docker Desktop extensions using a backend #3435

Podman Desktop now loads the containers in the backend as described in the vm section of extension descriptor the same way as Docker Desktop does.

Initial onboarding implementation for podman (experimental) #3308

This is the initial implementation for the onboarding feature. It only covers a simple onboarding for podman. Check system requirements -> install podman -> yay! Done!

Notable Bug Fixes

  • Updating videos to be adaptive for mobile by @mairin #3229
  • Consistent max width and padding in settings by @deboer-tim #3232
  • Settings navigation bar resizing by @deboer-tim in #3231
  • Move new registry button to header by @deboer-tim #3245
  • Bigger lima logo by @afbjorklund #3248
  • Horizontal docker logo by @afbjorklund #3236
  • Respect LIMA_HOME environment variable by @afbjorklund #3254
  • Add check before writing to terminal by @lstocchi #3263
  • Wait until remote side has fully initialized the extensions by @benoitf #3257
  • Fix loader not centered horizontally by @benoitf #3270
  • Troubleshooting still waiting after failure by @deboer-tim #3354
  • Store error for build by @cdrage #3365
  • Missing checkbox tooltips by @deboer-tim #3380
  • Load compose logs async not await by @cdrage #3377
  • Set rootful connection when starting rootful machine by @lstocchi #3364
  • Default last page by @deboer-tim #3388
  • Avoid dashboard displaying providers starting while they don't by @benoitf #3451
  • Do not use extensionInfo until it is defined by @benoitf #V
  • Allow BASIC authentication (all caps) by @cdrage #3471
  • Allow single domain registry such as localhost:5000 by @cdrage #3468
  • Create /usr/local/bin directory if it does not exist on binary install by @cdrage #3425
  • Only delete selected pods by @deboer-tim #
  • Add back 'Done' text on the button by @benoitf #3487
  • Do not wait for more than 5s when checking for podman ping by @benoitf #3497
  • Add proxy support for extension using patching get and request approach by @dgolovin #2825
  • Refresh component when field is updated by @benoitf #3525
  • Higher-res icons for featured extensions list by @mairin #3511
  • Main nav selection by @deboer-tim #3510
  • kube event error when switching context by @jeffmaury #3494
  • Reset error message each time we pull image by @benoitf #3550

Community Thank You

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

A warm welcome to @rostalan and @axel7083 who made their first contribution to the project in this release.

Final Notes

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

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.

- + \ No newline at end of file diff --git a/blog/podman-desktop-release-1.4.html b/blog/podman-desktop-release-1.4.html index a64a1af186f..37590bf15a0 100644 --- a/blog/podman-desktop-release-1.4.html +++ b/blog/podman-desktop-release-1.4.html @@ -3,7 +3,7 @@ -Release Notes - Podman Desktop 1.4 | Podman Desktop +Release Notes - Podman Desktop 1.4 | Podman Desktop @@ -13,13 +13,13 @@ - +
-

Release Notes - Podman Desktop 1.4

· 4 min read
Jeff Maury

Podman Desktop 1.4 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features.

  • Podman 4.6.2: Podman 4.6.2 included with Podman Desktop 1.4
  • Windows Arm64: Native Windows on Arm64 installers and binaries
  • Port range mapping: Start containers and map a range of ports
  • Terminal UX Improvement: Persistent terminal sessions when SSH'ing in a container
  • Volume Creation: Create volume from the Volumes page
  • Bash support: Terminals are now using bash if available.

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

Podman-desktop-1-4-juggling


Release Details

Port range mapping #3654

When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised.

Range mapping

Terminal lifetime #3725

When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI.

terminal lifetime

Create volume #3742

The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name.

create volume

bash support #3750

When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used.

bash sh

Notable Bug Fixes

  • Reduce API calls when listing containers by @benoitf #3489
  • Removing a connection(podman machine) should redirect to previous page by @benoitf #3576
  • Enhance error message when image is not there by @benoitf #3587
  • Dispose kind install button when extension is deactivated (#3586) by @lstocchi #3610
  • Replace backslash/slash on windows when building image (#3465) by @lstocchi #3618
  • Handle null value in container command (#3620) by @lstocchi #3625
  • Add maximum activation time for extensions by @benoitf #3446
  • Handle single non-spread arguments by @benoitf #3641
  • Grab usage data of volumes only on-demand by @benoitf #3635
  • Add arm64 binaries for Windows by @benoitf #3643
  • Include right airgap file for Windows and arm64 by @benoitf #3651
  • Redirect to previous page when removing a kubernetes connection by @benoitf #3650
  • Support port ranges when starting a container (#3204) by @lstocchi #3654
  • Add a strict undefined check to messagebox result (#3692) by @lstocchi #3699
  • Only restart if a machine is running by @cdrage #3491
  • Session to the terminal is reused by @benoitf #3725
  • Disable next button and show try again when onboarding failed (#3616) by @lstocchi #3711
  • Add podman in PATH after updating process environment PATH (#3729) by @lstocchi #3730
  • Allow to create a volume by @benoitf #3742
  • Using bash if available otherwise sh in terminal by @axel7083 #3750
  • Allow to embed existing component to onboarding (#3755) by @lstocchi #3763
  • Some containers never return logs, do not wait for them by @dgolovin #3784
  • Remove cancel button when on final onboarding step (#3771) by @lstocchi #3802
  • Onboarding add link micromark for commands by @cdrage #3747
  • Mounts can be null when using older podman by @afbjorklund #3806
  • Remove redundant step completion check when onboarding gets started by @lstocchi #3798
  • Ability to click enter in pull image name input by @deboer-tim #3850
  • Set proxy environment variable when launching process by @jeffmaury #3838
  • The socket location was moved for new podman by @afbjorklund #3853
  • Don't log console errors when activating lima extension by @afbjorklund #3852

Community Thank You

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

A warm welcome to @tomgoren, @Julian, @Gelob and @cedricclyburn who made their first contribution to the project in this release.

Final Notes

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

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.

- +

Release Notes - Podman Desktop 1.4

· 4 min read
Jeff Maury

Podman Desktop 1.4 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features.

  • Podman 4.6.2: Podman 4.6.2 included with Podman Desktop 1.4
  • Windows Arm64: Native Windows on Arm64 installers and binaries
  • Port range mapping: Start containers and map a range of ports
  • Terminal UX Improvement: Persistent terminal sessions when SSH'ing in a container
  • Volume Creation: Create volume from the Volumes page
  • Bash support: Terminals are now using bash if available.

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

Podman-desktop-1-4-juggling


Release Details

Port range mapping #3654

When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised.

Range mapping

Terminal lifetime #3725

When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI.

terminal lifetime

Create volume #3742

The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name.

create volume

bash support #3750

When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used.

bash sh

Notable Bug Fixes

  • Reduce API calls when listing containers by @benoitf #3489
  • Removing a connection(podman machine) should redirect to previous page by @benoitf #3576
  • Enhance error message when image is not there by @benoitf #3587
  • Dispose kind install button when extension is deactivated (#3586) by @lstocchi #3610
  • Replace backslash/slash on windows when building image (#3465) by @lstocchi #3618
  • Handle null value in container command (#3620) by @lstocchi #3625
  • Add maximum activation time for extensions by @benoitf #3446
  • Handle single non-spread arguments by @benoitf #3641
  • Grab usage data of volumes only on-demand by @benoitf #3635
  • Add arm64 binaries for Windows by @benoitf #3643
  • Include right airgap file for Windows and arm64 by @benoitf #3651
  • Redirect to previous page when removing a kubernetes connection by @benoitf #3650
  • Support port ranges when starting a container (#3204) by @lstocchi #3654
  • Add a strict undefined check to messagebox result (#3692) by @lstocchi #3699
  • Only restart if a machine is running by @cdrage #3491
  • Session to the terminal is reused by @benoitf #3725
  • Disable next button and show try again when onboarding failed (#3616) by @lstocchi #3711
  • Add podman in PATH after updating process environment PATH (#3729) by @lstocchi #3730
  • Allow to create a volume by @benoitf #3742
  • Using bash if available otherwise sh in terminal by @axel7083 #3750
  • Allow to embed existing component to onboarding (#3755) by @lstocchi #3763
  • Some containers never return logs, do not wait for them by @dgolovin #3784
  • Remove cancel button when on final onboarding step (#3771) by @lstocchi #3802
  • Onboarding add link micromark for commands by @cdrage #3747
  • Mounts can be null when using older podman by @afbjorklund #3806
  • Remove redundant step completion check when onboarding gets started by @lstocchi #3798
  • Ability to click enter in pull image name input by @deboer-tim #3850
  • Set proxy environment variable when launching process by @jeffmaury #3838
  • The socket location was moved for new podman by @afbjorklund #3853
  • Don't log console errors when activating lima extension by @afbjorklund #3852

Community Thank You

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

A warm welcome to @tomgoren, @Julian, @Gelob and @cedricclyburn who made their first contribution to the project in this release.

Final Notes

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

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.

+ \ No newline at end of file diff --git a/blog/running-a-local-kubernetes-cluster-with-podman-desktop.html b/blog/running-a-local-kubernetes-cluster-with-podman-desktop.html index e76f9ecc6da..95a41b84e99 100644 --- a/blog/running-a-local-kubernetes-cluster-with-podman-desktop.html +++ b/blog/running-a-local-kubernetes-cluster-with-podman-desktop.html @@ -13,7 +13,7 @@ - + @@ -31,7 +31,7 @@ It is configured to communicate with either the Redis follower or leader Service The frontend exposes a JSON interface, and serves a jQuery-Ajax-based UX.

With Podman Desktop, you can prepare the Guestbook frontend image and container on your local container engine, and deploy the results to Kubernetes pods and services. This is functionally equal to the frontend deployment that the Kubernetes example propose.

Procedure

  1. Open Images > Pull an image.
    1. Image to Pull: enter gcr.io/google_samples/gb-frontend:v5
    2. Click Pull image to pull the image to your container engine local image registry.
    3. Wait for the pull to complete.
    4. Click Done to get back to the images list.
  2. Search images: enter gb-frontend:v5 to find the image.
  3. Click to open the Create a container from image dialog.
    1. Container name: enter frontend,
    2. Local port for 80/tcp: 9000.
    3. Click Start Container to start the container in your container engine.
  4. Search containers: enter frontend to find the running container.
  5. Click to stop the container: you do not need it to run in the container engine.
  6. Click > Deploy to Kubernetes to open the Deploy generated pod to Kubernetes screen.
    1. Pod Name: enter frontend.
    2. Use Kubernetes Services: select Replace hostPort exposure on containers by Services. It is the recommended way to expose ports, as a cluster policy might prevent to use hostPort.
    3. Expose service locally using Kubernetes Ingress: select Create a Kubernetes ingress to get access to the ports that this pod exposes, at the default ingress controller location. Example: on a default Kind cluster created with Podman Desktop: http://localhost:9090. Requirements: your cluster has an ingress controller`.
    4. Kubernetes namespaces: select default.
    5. Click Deploy. Deploy generated frontend pod to Kubernetes screen
    6. Wait for the pod to reach the state: Phase: Running.
    7. Click Done.

Verification

  1. The Pods screen lists the running frontend pod.

    `frontend` pod is running

  2. Go to http://localhost:9090: the Guestbook application is running.

- + \ No newline at end of file diff --git a/blog/tags.html b/blog/tags.html index 7873fd68b61..126070bed70 100644 --- a/blog/tags.html +++ b/blog/tags.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/blog/tags/codespaces.html b/blog/tags/codespaces.html index aae6d52ac79..4e23c3d8ca1 100644 --- a/blog/tags/codespaces.html +++ b/blog/tags/codespaces.html @@ -13,13 +13,13 @@ - +

One post tagged with "codespaces"

View All Tags

· 7 min read
Florent Benoit

GitHub announced last week that Codespaces is available for everyone and it includes free minutes.

Let see how we can use a Development Container having all the tools to build and run Podman Desktop. The Development Container works locally using Visual Studio Code but in this blog post we will see how it works directly with a simple click from GitHub.

The challenges are to run a desktop tool (Podman Desktop) and running a container engine (Podman) inside this Development Container without using too many memory !

- + \ No newline at end of file diff --git a/blog/tags/compose.html b/blog/tags/compose.html index 9c7e3345e9a..7ff5b79be26 100644 --- a/blog/tags/compose.html +++ b/blog/tags/compose.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/blog/tags/devcontainer.html b/blog/tags/devcontainer.html index 390cee1ea0b..756c4f7ff1f 100644 --- a/blog/tags/devcontainer.html +++ b/blog/tags/devcontainer.html @@ -13,13 +13,13 @@ - +

One post tagged with "devcontainer"

View All Tags

· 7 min read
Florent Benoit

GitHub announced last week that Codespaces is available for everyone and it includes free minutes.

Let see how we can use a Development Container having all the tools to build and run Podman Desktop. The Development Container works locally using Visual Studio Code but in this blog post we will see how it works directly with a simple click from GitHub.

The challenges are to run a desktop tool (Podman Desktop) and running a container engine (Podman) inside this Development Container without using too many memory !

- + \ No newline at end of file diff --git a/blog/tags/docker.html b/blog/tags/docker.html index 390fd8c1b72..c495faf5865 100644 --- a/blog/tags/docker.html +++ b/blog/tags/docker.html @@ -13,13 +13,13 @@ - +

One post tagged with "docker"

View All Tags

· 5 min read
Florent Benoit

The 5 things to know being a Docker user by using Podman Desktop:

  • Use a single UI: Podman Desktop works with several container engines, including Docker.
  • The compatibility mode: How to ensure tools are working with Podman instead of Docker.
  • Compose support: How to work with Compose files and Podman.
  • Kubernetes support: How to use Kubernetes with Podman.
  • Security: Use rootless mode or containers without root privileges.

5-things-to-know-for-a-docker-user-hero

- + \ No newline at end of file diff --git a/blog/tags/kind.html b/blog/tags/kind.html index b41d6b16ad6..4856d37891e 100644 --- a/blog/tags/kind.html +++ b/blog/tags/kind.html @@ -13,7 +13,7 @@ - + @@ -27,7 +27,7 @@ of Podman Desktop: not just local container engines, but Kubernetes too. More im providing tools that allow you to manage both environments and seamlessly move between them.

Some of these features were available in development mode over the last few releases, but since they are now in the release build, we will do a full roundup and talk about all the Kind features.

  • Kind Installation: Install Kind from the status bar
  • Manage Kind Clusters: Create and manage Kind clusters from Settings > Resources
  • Using Kind: Deploying YAML and sharing images to a cluster
  • Kind Ingress: Install a Contour ingress controller
  • UX and UI Improvements: Updated preferences and telemetry prompt

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

Podman-desktop-0-14-hero

- + \ No newline at end of file diff --git a/blog/tags/kubernetes.html b/blog/tags/kubernetes.html index d60f664d27c..f26a253115f 100644 --- a/blog/tags/kubernetes.html +++ b/blog/tags/kubernetes.html @@ -13,12 +13,12 @@ - +
-

12 posts tagged with "kubernetes"

View All Tags

· 4 min read
Jeff Maury

Podman Desktop 1.4 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features.

  • Podman 4.6.2: Podman 4.6.2 included with Podman Desktop 1.4
  • Windows Arm64: Native Windows on Arm64 installers and binaries
  • Port range mapping: Start containers and map a range of ports
  • Terminal UX Improvement: Persistent terminal sessions when SSH'ing in a container
  • Volume Creation: Create volume from the Volumes page
  • Bash support: Terminals are now using bash if available.

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

Podman-desktop-1-4-juggling


Release Details

Port range mapping #3654

When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised.

Range mapping

Terminal lifetime #3725

When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI.

terminal lifetime

Create volume #3742

The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name.

create volume

bash support #3750

When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used.

bash sh

Notable Bug Fixes

  • Reduce API calls when listing containers by @benoitf #3489
  • Removing a connection(podman machine) should redirect to previous page by @benoitf #3576
  • Enhance error message when image is not there by @benoitf #3587
  • Dispose kind install button when extension is deactivated (#3586) by @lstocchi #3610
  • Replace backslash/slash on windows when building image (#3465) by @lstocchi #3618
  • Handle null value in container command (#3620) by @lstocchi #3625
  • Add maximum activation time for extensions by @benoitf #3446
  • Handle single non-spread arguments by @benoitf #3641
  • Grab usage data of volumes only on-demand by @benoitf #3635
  • Add arm64 binaries for Windows by @benoitf #3643
  • Include right airgap file for Windows and arm64 by @benoitf #3651
  • Redirect to previous page when removing a kubernetes connection by @benoitf #3650
  • Support port ranges when starting a container (#3204) by @lstocchi #3654
  • Add a strict undefined check to messagebox result (#3692) by @lstocchi #3699
  • Only restart if a machine is running by @cdrage #3491
  • Session to the terminal is reused by @benoitf #3725
  • Disable next button and show try again when onboarding failed (#3616) by @lstocchi #3711
  • Add podman in PATH after updating process environment PATH (#3729) by @lstocchi #3730
  • Allow to create a volume by @benoitf #3742
  • Using bash if available otherwise sh in terminal by @axel7083 #3750
  • Allow to embed existing component to onboarding (#3755) by @lstocchi #3763
  • Some containers never return logs, do not wait for them by @dgolovin #3784
  • Remove cancel button when on final onboarding step (#3771) by @lstocchi #3802
  • Onboarding add link micromark for commands by @cdrage #3747
  • Mounts can be null when using older podman by @afbjorklund #3806
  • Remove redundant step completion check when onboarding gets started by @lstocchi #3798
  • Ability to click enter in pull image name input by @deboer-tim #3850
  • Set proxy environment variable when launching process by @jeffmaury #3838
  • The socket location was moved for new podman by @afbjorklund #3853
  • Don't log console errors when activating lima extension by @afbjorklund #3852

Community Thank You

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

A warm welcome to @tomgoren, @Julian, @Gelob and @cedricclyburn who made their first contribution to the project in this release.

Final Notes

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

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.

· 6 min read
Denis Golovin

Podman Desktop 1.3 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features.

  • Podman 4.6.1: Podman 4.6.1 included in Windows and Mac installers
  • Podman user-mode networking support to Windows/WSL: A new switch `User mode networking' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations
  • Compose group new UI elements: You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs
  • Extension packs and extension dependencies: Install group of extensions in one click
  • Resource details page update: See summary and log for resource
  • Create Kind cluster form update: A new Node's container image field can be used to specify the Kubernetes version used for the control-planed
  • Support Docker Desktop extensions using a backend: When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension's descriptor
  • Podman Initial Onboarding (preview): Install and configure podman using included installer

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

Podman-desktop-1-3-bug-swatting


Release Details

Compose group Logs tab #3176

When clicking on the group of containers, you can now view the logs of the entire group of compose containers and don't need to open +

12 posts tagged with "kubernetes"

View All Tags

· 4 min read
Jeff Maury

Podman Desktop 1.4 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features.

  • Podman 4.6.2: Podman 4.6.2 included with Podman Desktop 1.4
  • Windows Arm64: Native Windows on Arm64 installers and binaries
  • Port range mapping: Start containers and map a range of ports
  • Terminal UX Improvement: Persistent terminal sessions when SSH'ing in a container
  • Volume Creation: Create volume from the Volumes page
  • Bash support: Terminals are now using bash if available.

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

Podman-desktop-1-4-juggling


Release Details

Port range mapping #3654

When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised.

Range mapping

Terminal lifetime #3725

When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI.

terminal lifetime

Create volume #3742

The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name.

create volume

bash support #3750

When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used.

bash sh

Notable Bug Fixes

  • Reduce API calls when listing containers by @benoitf #3489
  • Removing a connection(podman machine) should redirect to previous page by @benoitf #3576
  • Enhance error message when image is not there by @benoitf #3587
  • Dispose kind install button when extension is deactivated (#3586) by @lstocchi #3610
  • Replace backslash/slash on windows when building image (#3465) by @lstocchi #3618
  • Handle null value in container command (#3620) by @lstocchi #3625
  • Add maximum activation time for extensions by @benoitf #3446
  • Handle single non-spread arguments by @benoitf #3641
  • Grab usage data of volumes only on-demand by @benoitf #3635
  • Add arm64 binaries for Windows by @benoitf #3643
  • Include right airgap file for Windows and arm64 by @benoitf #3651
  • Redirect to previous page when removing a kubernetes connection by @benoitf #3650
  • Support port ranges when starting a container (#3204) by @lstocchi #3654
  • Add a strict undefined check to messagebox result (#3692) by @lstocchi #3699
  • Only restart if a machine is running by @cdrage #3491
  • Session to the terminal is reused by @benoitf #3725
  • Disable next button and show try again when onboarding failed (#3616) by @lstocchi #3711
  • Add podman in PATH after updating process environment PATH (#3729) by @lstocchi #3730
  • Allow to create a volume by @benoitf #3742
  • Using bash if available otherwise sh in terminal by @axel7083 #3750
  • Allow to embed existing component to onboarding (#3755) by @lstocchi #3763
  • Some containers never return logs, do not wait for them by @dgolovin #3784
  • Remove cancel button when on final onboarding step (#3771) by @lstocchi #3802
  • Onboarding add link micromark for commands by @cdrage #3747
  • Mounts can be null when using older podman by @afbjorklund #3806
  • Remove redundant step completion check when onboarding gets started by @lstocchi #3798
  • Ability to click enter in pull image name input by @deboer-tim #3850
  • Set proxy environment variable when launching process by @jeffmaury #3838
  • The socket location was moved for new podman by @afbjorklund #3853
  • Don't log console errors when activating lima extension by @afbjorklund #3852

Community Thank You

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

A warm welcome to @tomgoren, @Julian, @Gelob and @cedricclyburn who made their first contribution to the project in this release.

Final Notes

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

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.

· 6 min read
Denis Golovin

Podman Desktop 1.3 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features.

  • Podman 4.6.1: Podman 4.6.1 included in Windows and Mac installers
  • Podman user-mode networking support to Windows/WSL: A new switch `User mode networking' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations
  • Compose group new UI elements: You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs
  • Extension packs and extension dependencies: Install group of extensions in one click
  • Resource details page update: See summary and log for resource
  • Create Kind cluster form update: A new Node's container image field can be used to specify the Kubernetes version used for the control-planed
  • Support Docker Desktop extensions using a backend: When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension's descriptor
  • Podman Initial Onboarding (preview): Install and configure podman using included installer

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

Podman-desktop-1-3-bug-swatting


Release Details

Compose group Logs tab #3176

When clicking on the group of containers, you can now view the logs of the entire group of compose containers and don't need to open log for every component individually.

Screenshot 2023-07-11 at 12 48 47 PM

Podman user-mode networking support to Windows/WSL #3251

Certain VPN setups or other specialized networking configs will block traffic from the virtual WSL networking device, resulting in the podman WSL backend from being unable to contact systems on the VPN, and potentially losing internet access altogether. The new switch allows you to create a podman VM machine configured to work correctly in mentioned above networking environments.

user

Compose group Summary tab #3317,

Compose group Summary tab shows all containers in the group and let you navigate to Details page for specific container.

Compose group Inspect tab #3316

Compose group Inspect tab shows an array of "container inspect" from docker / podman.

Deploy to kubernetes in compose actions #3299

A button to deploy to kubernetes added to Compose group.

Generate Kube in Compose actions and Kube tab in compose details #3253

Generate Kube item added to Compose actions and "Kube" tab is now available in Compose details view.

Install multiple extensions using extension pack #3150

An Extension pack introduced in Extension engine is a way to declare set of extensions to install them all at once.

Customize icons from extension #3131

Extensions now can customize icons for list elements using when clause.

image

Resource details page update #1923

If you click on the arrow icon next to a resource name it will open up a details page (similarly to how clicking on a container in the container list opens up a details page).

image

Node's container image field added to Create a Kind cluster form #3508

The new Node's container image field can be used to specify the Kubernetes version used for the control-planed.

image

Support Docker Desktop extensions using a backend #3435

Podman Desktop now loads the containers in the backend as described in the vm section of extension descriptor the same way as Docker Desktop does.

Initial onboarding implementation for podman (experimental) #3308

This is the initial implementation for the onboarding feature. It only covers a simple onboarding for podman. Check system requirements -> install podman -> yay! Done!

Notable Bug Fixes

  • Updating videos to be adaptive for mobile by @mairin #3229
  • Consistent max width and padding in settings by @deboer-tim #3232
  • Settings navigation bar resizing by @deboer-tim in #3231
  • Move new registry button to header by @deboer-tim #3245
  • Bigger lima logo by @afbjorklund #3248
  • Horizontal docker logo by @afbjorklund #3236
  • Respect LIMA_HOME environment variable by @afbjorklund #3254
  • Add check before writing to terminal by @lstocchi #3263
  • Wait until remote side has fully initialized the extensions by @benoitf #3257
  • Fix loader not centered horizontally by @benoitf #3270
  • Troubleshooting still waiting after failure by @deboer-tim #3354
  • Store error for build by @cdrage #3365
  • Missing checkbox tooltips by @deboer-tim #3380
  • Load compose logs async not await by @cdrage #3377
  • Set rootful connection when starting rootful machine by @lstocchi #3364
  • Default last page by @deboer-tim #3388
  • Avoid dashboard displaying providers starting while they don't by @benoitf #3451
  • Do not use extensionInfo until it is defined by @benoitf #V
  • Allow BASIC authentication (all caps) by @cdrage #3471
  • Allow single domain registry such as localhost:5000 by @cdrage #3468
  • Create /usr/local/bin directory if it does not exist on binary install by @cdrage #3425
  • Only delete selected pods by @deboer-tim #
  • Add back 'Done' text on the button by @benoitf #3487
  • Do not wait for more than 5s when checking for podman ping by @benoitf #3497
  • Add proxy support for extension using patching get and request approach by @dgolovin #2825
  • Refresh component when field is updated by @benoitf #3525
  • Higher-res icons for featured extensions list by @mairin #3511
  • Main nav selection by @deboer-tim #3510
  • kube event error when switching context by @jeffmaury #3494
  • Reset error message each time we pull image by @benoitf #3550

Community Thank You

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

A warm welcome to @rostalan and @axel7083 who made their first contribution to the project in this release.

Final Notes

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

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.

· 7 min read
Charlie Drage

Podman Desktop 1.2 Release! 🎉

We're excited to announce the release of Podman Desktop version 1.2.0! This release includes many new features (Kubernetes, Compose and extension support!), bug fixes, and improvements to enhance your container management experience. Here's a summary of the key changes in this release:

  • Added start/stop/delete/restart buttons for Compose: You can now make changes to an entire Compose group of containers
  • Kubernetes context on the status bar: Choose from multiple Kubernetes contexts more easily all from the status bar
  • Rename images: Rename an image with a click of a button
  • Protocol handler support: Added support for protocol handlers such as open podman-desktop:extension/redhat.openshift-local
  • Troubleshooting page: A troubleshooting page for helping diagnose Podman Desktop related development issues

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

Podman-desktop-1-2-hero


Release Details

Added start/stop/delete/restart buttons for Compose

In the last month we've been addind support for more Compose features. Before you were only able to control a group of containers if they were in a Pod. Now we have added the ability to control a group of Compose containers. You can now start, stop, delete and restart a group of containers launched by either docker-compose or podman-compose.

Stay tuned as we add even more features to Compose! If you have any feedback or feature requests, feel free to open an issue or start a discussion on GitHub.

Kubernetes context on the status bar

With Kubernetes context on the status bar, you can switch from one context to another in just a couple of clicks. Easily switch to a different cluster all together. If there are multiple contexts available, you can now click and pick which one to use.

Rename images

Deployed an image but now you need to rename it / add a new tag? Podman Desktop allows you to edit an image now. Thanks to an awesome contributor @tuckerrc who added the new feature.

Troubleshooting page

Developing an extension for Podman Desktop? Want to view the logs of Podman Desktop as well as ping your container connection? We now have a troubleshooting page!

Click on the lightbulb button on the bottom right to access the page.

Protocol handler support

Podman Desktop now supports protocol handling when using the terminal! Want to access your favourite extension directly from a script or the terminal? If you type in open podman-desktop:extension/redhat.openshift-local in the terminal, Podman Desktop will automatically load up to the correct extension.


Other Notable Features

  • Background colors and FormPage (PR #2977)
  • Add ability to add insecure registry / skipping cert verify (PR #2896)
  • Add support for icon contribution (PR #2984)
  • Add warning dialog message that virtual machine has low memory limit (PR #2822)
  • Propose indexed name for new pod (PR #3028)
  • Add restart button after enabling / disabling mac os compatibility (PR #2841)
  • Add environment related helper constants (PR #3079)
  • Allow entrypoint and cmd when starting container (PR #3031)
  • Add a way to debug stores in troubleshooting page (PR #3121)
  • Add custompick component (#2855) (PR #3012)
  • Dynamic breadcrumbs (PR #3119)
  • Icons on form pages (PR #3155)
  • Switch more pages to formpage (PR #3162)
  • Add rename image button (PR #2588)
  • Fixed headers, improved scrollbars (PR #2863)
  • Reports warnings on failed kube deploy, fixes error out (PR #3050)
  • Kube context on statusbar (PR #2755)
  • Install provider if not installed when clicking on create new button (#2706) (PR #2817)
  • Add tag and authenticated push capacity to the extension API (PR #2876)
  • Add navigation bar e2e tests (PR #2950)

Documentation Updates

  • Fix documentation for building image of extensions (PR #2873)
  • Add Minikube install docs (PR #2824)
  • Add Minikube documentation (PR #2694)
  • Updated Building an image procedure (PR #2964)
  • Starting a container (PR #2958)
  • Pulling an image (PR #2956)
  • Updated selecting containers to run in a pod (PR #2970)
  • Pushing an image to a registry (PR #2969)
  • How to add an insecure registry (PR #2953)
  • Add documentation for lima (PR #2995)
  • Replace broken link to podman.io (PR #2994)
  • Authenticating to a pre-configured registry (PR #2965)
  • Lima is not a container engine (PR #3051)
  • Using the Troubleshooting page (PR #3083)
  • View and select your current Kubernetes context in the status bar (PR #3090)

Notable Bug Fixes

  • Deleting a running pod generates an error (PR #2827)
  • If kubeconfig is empty, does not try to do things, cancel (PR #2874)
  • Async telemetry startup (PR #2885)
  • Do not block startup while waiting for kube resource refresh (PR #2884)
  • Images list too wide (PR #2918)
  • Compose deactivate function never called (PR #2922)
  • Auto-scrolling on form pages, layout issues (PR #2927)
  • Show current context in quick pick (PR #2920)
  • Remove sticky position of loader in dashboard UI (#2535) (PR #2959)
  • Undo change that broke the website (PR #2992)
  • Detailspage, resizing & consistency (PR #2987)
  • Quick pick click to close and over nav bar (PR #2758)
  • Only show empty screen when no pods (PR #2929)
  • Do not redirect to /pods when deleting pod in containerlist (PR #2963)
  • Bulk delete on pods should call the pod deletion (PR #2979)
  • Update nodejs version to 18 in .nvmrc to fix yarn install failure (PR #2989)
  • Website check targets (PR #2996)
  • Don't show exception to user (PR #3034)
  • Interpret arguments given to info command for example (PR #3015)
  • Change defaults for Podman machine (PR #3061)
  • Normalize development/production folders path (PR #3113)
  • Calculate machine socket path for linux (PR #3070)
  • Replace backslash with slash so to support rendering on Windows (#3120) (PR #3122)
  • Keep stdout and stderr in the error object for Docker Desktop extensions (PR #3014)
  • Mark task completed if there's a failure (PR #3016)
  • Handle invalid kubeconfig file (PR #3129)
  • Do not remove registries when podman extension is stopping (PR #3136)
  • Warning should be amber (PR #3153)
  • Load user extensions from plugins as removable (PR #3152)
  • Images with spaces in entrypoints or commands fail to start (PR #3161)
  • Scrolling offscreen when clicking checkbox (PR #3178)
  • Avoid messagebox expanding offscreen (PR #2778)
  • Release-notes-generator run failure (PR #2752)
  • Unable to do a new build if the previous one failed (PR #2721)

Community Thank You

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

A big shoutout to @afbjorklund, @tuckerrc and @evanshortiss who contributed to this release!


Final notes

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

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.

· 3 min read
Tim deBoer

Podman Desktop 1.1 Release! 🎉

This is primarily a bug-fix release to fix a few important issues, but we've managed to squeeze in a few enhancements along the way.

  • Podman 4.5.1: Podman 4.5.1 now included in Windows and Mac installers.
  • Extensions: Update extensions from within Podman Desktop.
  • Lima Support: Choose engine type and override its name from the settings.
  • UX and UI Improvements: New loading screen.

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

Podman-desktop-1-1-hero

· 5 min read
Tim deBoer

Podman Desktop 1.0 Release! 🎉

We still have many things planned, but with a little polish and a few more bug fixes we felt we've reached a level of maturity and it is now time to declare our 1.0 release.

Thank you to everyone who has been with us on this journey so far! Please keep the @@ -29,7 +29,7 @@ of Podman Desktop: not just local container engines, but Kubernetes too. More im providing tools that allow you to manage both environments and seamlessly move between them.

Some of these features were available in development mode over the last few releases, but since they are now in the release build, we will do a full roundup and talk about all the Kind features.

  • Kind Installation: Install Kind from the status bar
  • Manage Kind Clusters: Create and manage Kind clusters from Settings > Resources
  • Using Kind: Deploying YAML and sharing images to a cluster
  • Kind Ingress: Install a Contour ingress controller
  • UX and UI Improvements: Updated preferences and telemetry prompt

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

Podman-desktop-0-14-hero

· 4 min read
Tim deBoer

This release note covers Podman Desktop 0.13 release changes.

  • Podman Version: Podman 4.4.4 now included in Windows and Mac installers.
  • Compose: Support for installing Docker Compose.
  • Extensions: Improved extension support for Podman Desktop with additional capabilities.
  • UX and UI Improvements: Welcome page, task manager, resources, and update alerts.

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

Podman-desktop-0-13-hero

· 5 min read
Stevan Le Meur

This release note covers Podman Desktop 0.12 release changes.

  • Podman Version: Podman 4.4.1 now included in Windows and Mac installers.
  • Containers Configuration: Configure port mappings for an image without exported ports.
  • Windows Home Support: Podman Desktop now supports Windows Home Edition.
  • Start minimized: Option to start Podman Desktop minimized to system tray.
  • UX and UI Improvements: Consistent actions, placeholder for logs, unified icons and others.

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

podman-desktop-0-12-hero

· 10 min read
Stevan Le Meur

This release note covers Podman Desktop 0.11 release changes.

  • Air-Gapped Installation: New all-in-one binaries for air-gapped installation.
  • Feedback: Submit feedback directly from Podman Desktop.
  • Docker Compatibility Mode: Information about the Docker compatibility mode.
  • Proxy Setting: Toggle on/off the proxy setting.
  • Deploy to Kubernetes: Select the namespace to deploy to Kubernetes.
  • Registry Configuration: Simplified registry configuration for well known registries.
  • UX/UI Improvements: View pod's container logs, better visual feedback, configurable editor font size, and more.

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

· 5 min read
Dev Kumar

This release note covers Podman Desktop 0.10 release changes.

  • Containers Configuration: Container creation wizzard allowing to define environment variables, networking and more configuration options.
  • Kubernetes Improvements: Play Kubernetes YAML, custom Kubeconfig path support, reload of kube context.
  • Registries Configuration: Revamped registries configuration UI.
  • Podman Version: Podman 4.3.1 now included in Windows and Mac installers.
  • UX/UI Improvements: Improved lists, better contrast, and more.

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

- + \ No newline at end of file diff --git a/blog/tags/migrating.html b/blog/tags/migrating.html index 30cd3b36693..50bf5559ef5 100644 --- a/blog/tags/migrating.html +++ b/blog/tags/migrating.html @@ -13,13 +13,13 @@ - +

One post tagged with "migrating"

View All Tags

· 5 min read
Florent Benoit

The 5 things to know being a Docker user by using Podman Desktop:

  • Use a single UI: Podman Desktop works with several container engines, including Docker.
  • The compatibility mode: How to ensure tools are working with Podman instead of Docker.
  • Compose support: How to work with Compose files and Podman.
  • Kubernetes support: How to use Kubernetes with Podman.
  • Security: Use rootless mode or containers without root privileges.

5-things-to-know-for-a-docker-user-hero

- + \ No newline at end of file diff --git a/blog/tags/openshift.html b/blog/tags/openshift.html index c1c6d525e1e..11d48d5b16e 100644 --- a/blog/tags/openshift.html +++ b/blog/tags/openshift.html @@ -13,17 +13,17 @@ - +
-

5 posts tagged with "openshift"

View All Tags

· 4 min read
Jeff Maury

Podman Desktop 1.4 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features.

  • Podman 4.6.2: Podman 4.6.2 included with Podman Desktop 1.4
  • Windows Arm64: Native Windows on Arm64 installers and binaries
  • Port range mapping: Start containers and map a range of ports
  • Terminal UX Improvement: Persistent terminal sessions when SSH'ing in a container
  • Volume Creation: Create volume from the Volumes page
  • Bash support: Terminals are now using bash if available.

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

Podman-desktop-1-4-juggling


Release Details

Port range mapping #3654

When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised.

Range mapping

Terminal lifetime #3725

When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI.

terminal lifetime

Create volume #3742

The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name.

create volume

bash support #3750

When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used.

bash sh

Notable Bug Fixes

  • Reduce API calls when listing containers by @benoitf #3489
  • Removing a connection(podman machine) should redirect to previous page by @benoitf #3576
  • Enhance error message when image is not there by @benoitf #3587
  • Dispose kind install button when extension is deactivated (#3586) by @lstocchi #3610
  • Replace backslash/slash on windows when building image (#3465) by @lstocchi #3618
  • Handle null value in container command (#3620) by @lstocchi #3625
  • Add maximum activation time for extensions by @benoitf #3446
  • Handle single non-spread arguments by @benoitf #3641
  • Grab usage data of volumes only on-demand by @benoitf #3635
  • Add arm64 binaries for Windows by @benoitf #3643
  • Include right airgap file for Windows and arm64 by @benoitf #3651
  • Redirect to previous page when removing a kubernetes connection by @benoitf #3650
  • Support port ranges when starting a container (#3204) by @lstocchi #3654
  • Add a strict undefined check to messagebox result (#3692) by @lstocchi #3699
  • Only restart if a machine is running by @cdrage #3491
  • Session to the terminal is reused by @benoitf #3725
  • Disable next button and show try again when onboarding failed (#3616) by @lstocchi #3711
  • Add podman in PATH after updating process environment PATH (#3729) by @lstocchi #3730
  • Allow to create a volume by @benoitf #3742
  • Using bash if available otherwise sh in terminal by @axel7083 #3750
  • Allow to embed existing component to onboarding (#3755) by @lstocchi #3763
  • Some containers never return logs, do not wait for them by @dgolovin #3784
  • Remove cancel button when on final onboarding step (#3771) by @lstocchi #3802
  • Onboarding add link micromark for commands by @cdrage #3747
  • Mounts can be null when using older podman by @afbjorklund #3806
  • Remove redundant step completion check when onboarding gets started by @lstocchi #3798
  • Ability to click enter in pull image name input by @deboer-tim #3850
  • Set proxy environment variable when launching process by @jeffmaury #3838
  • The socket location was moved for new podman by @afbjorklund #3853
  • Don't log console errors when activating lima extension by @afbjorklund #3852

Community Thank You

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

A warm welcome to @tomgoren, @Julian, @Gelob and @cedricclyburn who made their first contribution to the project in this release.

Final Notes

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

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.

· 6 min read
Denis Golovin

Podman Desktop 1.3 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features.

  • Podman 4.6.1: Podman 4.6.1 included in Windows and Mac installers
  • Podman user-mode networking support to Windows/WSL: A new switch `User mode networking' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations
  • Compose group new UI elements: You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs
  • Extension packs and extension dependencies: Install group of extensions in one click
  • Resource details page update: See summary and log for resource
  • Create Kind cluster form update: A new Node's container image field can be used to specify the Kubernetes version used for the control-planed
  • Support Docker Desktop extensions using a backend: When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension's descriptor
  • Podman Initial Onboarding (preview): Install and configure podman using included installer

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

Podman-desktop-1-3-bug-swatting


Release Details

Compose group Logs tab #3176

When clicking on the group of containers, you can now view the logs of the entire group of compose containers and don't need to open +

5 posts tagged with "openshift"

View All Tags

· 4 min read
Jeff Maury

Podman Desktop 1.4 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features.

  • Podman 4.6.2: Podman 4.6.2 included with Podman Desktop 1.4
  • Windows Arm64: Native Windows on Arm64 installers and binaries
  • Port range mapping: Start containers and map a range of ports
  • Terminal UX Improvement: Persistent terminal sessions when SSH'ing in a container
  • Volume Creation: Create volume from the Volumes page
  • Bash support: Terminals are now using bash if available.

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

Podman-desktop-1-4-juggling


Release Details

Port range mapping #3654

When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised.

Range mapping

Terminal lifetime #3725

When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI.

terminal lifetime

Create volume #3742

The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name.

create volume

bash support #3750

When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used.

bash sh

Notable Bug Fixes

  • Reduce API calls when listing containers by @benoitf #3489
  • Removing a connection(podman machine) should redirect to previous page by @benoitf #3576
  • Enhance error message when image is not there by @benoitf #3587
  • Dispose kind install button when extension is deactivated (#3586) by @lstocchi #3610
  • Replace backslash/slash on windows when building image (#3465) by @lstocchi #3618
  • Handle null value in container command (#3620) by @lstocchi #3625
  • Add maximum activation time for extensions by @benoitf #3446
  • Handle single non-spread arguments by @benoitf #3641
  • Grab usage data of volumes only on-demand by @benoitf #3635
  • Add arm64 binaries for Windows by @benoitf #3643
  • Include right airgap file for Windows and arm64 by @benoitf #3651
  • Redirect to previous page when removing a kubernetes connection by @benoitf #3650
  • Support port ranges when starting a container (#3204) by @lstocchi #3654
  • Add a strict undefined check to messagebox result (#3692) by @lstocchi #3699
  • Only restart if a machine is running by @cdrage #3491
  • Session to the terminal is reused by @benoitf #3725
  • Disable next button and show try again when onboarding failed (#3616) by @lstocchi #3711
  • Add podman in PATH after updating process environment PATH (#3729) by @lstocchi #3730
  • Allow to create a volume by @benoitf #3742
  • Using bash if available otherwise sh in terminal by @axel7083 #3750
  • Allow to embed existing component to onboarding (#3755) by @lstocchi #3763
  • Some containers never return logs, do not wait for them by @dgolovin #3784
  • Remove cancel button when on final onboarding step (#3771) by @lstocchi #3802
  • Onboarding add link micromark for commands by @cdrage #3747
  • Mounts can be null when using older podman by @afbjorklund #3806
  • Remove redundant step completion check when onboarding gets started by @lstocchi #3798
  • Ability to click enter in pull image name input by @deboer-tim #3850
  • Set proxy environment variable when launching process by @jeffmaury #3838
  • The socket location was moved for new podman by @afbjorklund #3853
  • Don't log console errors when activating lima extension by @afbjorklund #3852

Community Thank You

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

A warm welcome to @tomgoren, @Julian, @Gelob and @cedricclyburn who made their first contribution to the project in this release.

Final Notes

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

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.

· 6 min read
Denis Golovin

Podman Desktop 1.3 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features.

  • Podman 4.6.1: Podman 4.6.1 included in Windows and Mac installers
  • Podman user-mode networking support to Windows/WSL: A new switch `User mode networking' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations
  • Compose group new UI elements: You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs
  • Extension packs and extension dependencies: Install group of extensions in one click
  • Resource details page update: See summary and log for resource
  • Create Kind cluster form update: A new Node's container image field can be used to specify the Kubernetes version used for the control-planed
  • Support Docker Desktop extensions using a backend: When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension's descriptor
  • Podman Initial Onboarding (preview): Install and configure podman using included installer

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

Podman-desktop-1-3-bug-swatting


Release Details

Compose group Logs tab #3176

When clicking on the group of containers, you can now view the logs of the entire group of compose containers and don't need to open log for every component individually.

Screenshot 2023-07-11 at 12 48 47 PM

Podman user-mode networking support to Windows/WSL #3251

Certain VPN setups or other specialized networking configs will block traffic from the virtual WSL networking device, resulting in the podman WSL backend from being unable to contact systems on the VPN, and potentially losing internet access altogether. The new switch allows you to create a podman VM machine configured to work correctly in mentioned above networking environments.

user

Compose group Summary tab #3317,

Compose group Summary tab shows all containers in the group and let you navigate to Details page for specific container.

Compose group Inspect tab #3316

Compose group Inspect tab shows an array of "container inspect" from docker / podman.

Deploy to kubernetes in compose actions #3299

A button to deploy to kubernetes added to Compose group.

Generate Kube in Compose actions and Kube tab in compose details #3253

Generate Kube item added to Compose actions and "Kube" tab is now available in Compose details view.

Install multiple extensions using extension pack #3150

An Extension pack introduced in Extension engine is a way to declare set of extensions to install them all at once.

Customize icons from extension #3131

Extensions now can customize icons for list elements using when clause.

image

Resource details page update #1923

If you click on the arrow icon next to a resource name it will open up a details page (similarly to how clicking on a container in the container list opens up a details page).

image

Node's container image field added to Create a Kind cluster form #3508

The new Node's container image field can be used to specify the Kubernetes version used for the control-planed.

image

Support Docker Desktop extensions using a backend #3435

Podman Desktop now loads the containers in the backend as described in the vm section of extension descriptor the same way as Docker Desktop does.

Initial onboarding implementation for podman (experimental) #3308

This is the initial implementation for the onboarding feature. It only covers a simple onboarding for podman. Check system requirements -> install podman -> yay! Done!

Notable Bug Fixes

  • Updating videos to be adaptive for mobile by @mairin #3229
  • Consistent max width and padding in settings by @deboer-tim #3232
  • Settings navigation bar resizing by @deboer-tim in #3231
  • Move new registry button to header by @deboer-tim #3245
  • Bigger lima logo by @afbjorklund #3248
  • Horizontal docker logo by @afbjorklund #3236
  • Respect LIMA_HOME environment variable by @afbjorklund #3254
  • Add check before writing to terminal by @lstocchi #3263
  • Wait until remote side has fully initialized the extensions by @benoitf #3257
  • Fix loader not centered horizontally by @benoitf #3270
  • Troubleshooting still waiting after failure by @deboer-tim #3354
  • Store error for build by @cdrage #3365
  • Missing checkbox tooltips by @deboer-tim #3380
  • Load compose logs async not await by @cdrage #3377
  • Set rootful connection when starting rootful machine by @lstocchi #3364
  • Default last page by @deboer-tim #3388
  • Avoid dashboard displaying providers starting while they don't by @benoitf #3451
  • Do not use extensionInfo until it is defined by @benoitf #V
  • Allow BASIC authentication (all caps) by @cdrage #3471
  • Allow single domain registry such as localhost:5000 by @cdrage #3468
  • Create /usr/local/bin directory if it does not exist on binary install by @cdrage #3425
  • Only delete selected pods by @deboer-tim #
  • Add back 'Done' text on the button by @benoitf #3487
  • Do not wait for more than 5s when checking for podman ping by @benoitf #3497
  • Add proxy support for extension using patching get and request approach by @dgolovin #2825
  • Refresh component when field is updated by @benoitf #3525
  • Higher-res icons for featured extensions list by @mairin #3511
  • Main nav selection by @deboer-tim #3510
  • kube event error when switching context by @jeffmaury #3494
  • Reset error message each time we pull image by @benoitf #3550

Community Thank You

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

A warm welcome to @rostalan and @axel7083 who made their first contribution to the project in this release.

Final Notes

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

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.

· 7 min read
Charlie Drage

Podman Desktop 1.2 Release! 🎉

We're excited to announce the release of Podman Desktop version 1.2.0! This release includes many new features (Kubernetes, Compose and extension support!), bug fixes, and improvements to enhance your container management experience. Here's a summary of the key changes in this release:

  • Added start/stop/delete/restart buttons for Compose: You can now make changes to an entire Compose group of containers
  • Kubernetes context on the status bar: Choose from multiple Kubernetes contexts more easily all from the status bar
  • Rename images: Rename an image with a click of a button
  • Protocol handler support: Added support for protocol handlers such as open podman-desktop:extension/redhat.openshift-local
  • Troubleshooting page: A troubleshooting page for helping diagnose Podman Desktop related development issues

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

Podman-desktop-1-2-hero


Release Details

Added start/stop/delete/restart buttons for Compose

In the last month we've been addind support for more Compose features. Before you were only able to control a group of containers if they were in a Pod. Now we have added the ability to control a group of Compose containers. You can now start, stop, delete and restart a group of containers launched by either docker-compose or podman-compose.

Stay tuned as we add even more features to Compose! If you have any feedback or feature requests, feel free to open an issue or start a discussion on GitHub.

Kubernetes context on the status bar

With Kubernetes context on the status bar, you can switch from one context to another in just a couple of clicks. Easily switch to a different cluster all together. If there are multiple contexts available, you can now click and pick which one to use.

Rename images

Deployed an image but now you need to rename it / add a new tag? Podman Desktop allows you to edit an image now. Thanks to an awesome contributor @tuckerrc who added the new feature.

Troubleshooting page

Developing an extension for Podman Desktop? Want to view the logs of Podman Desktop as well as ping your container connection? We now have a troubleshooting page!

Click on the lightbulb button on the bottom right to access the page.

Protocol handler support

Podman Desktop now supports protocol handling when using the terminal! Want to access your favourite extension directly from a script or the terminal? If you type in open podman-desktop:extension/redhat.openshift-local in the terminal, Podman Desktop will automatically load up to the correct extension.


Other Notable Features

  • Background colors and FormPage (PR #2977)
  • Add ability to add insecure registry / skipping cert verify (PR #2896)
  • Add support for icon contribution (PR #2984)
  • Add warning dialog message that virtual machine has low memory limit (PR #2822)
  • Propose indexed name for new pod (PR #3028)
  • Add restart button after enabling / disabling mac os compatibility (PR #2841)
  • Add environment related helper constants (PR #3079)
  • Allow entrypoint and cmd when starting container (PR #3031)
  • Add a way to debug stores in troubleshooting page (PR #3121)
  • Add custompick component (#2855) (PR #3012)
  • Dynamic breadcrumbs (PR #3119)
  • Icons on form pages (PR #3155)
  • Switch more pages to formpage (PR #3162)
  • Add rename image button (PR #2588)
  • Fixed headers, improved scrollbars (PR #2863)
  • Reports warnings on failed kube deploy, fixes error out (PR #3050)
  • Kube context on statusbar (PR #2755)
  • Install provider if not installed when clicking on create new button (#2706) (PR #2817)
  • Add tag and authenticated push capacity to the extension API (PR #2876)
  • Add navigation bar e2e tests (PR #2950)

Documentation Updates

  • Fix documentation for building image of extensions (PR #2873)
  • Add Minikube install docs (PR #2824)
  • Add Minikube documentation (PR #2694)
  • Updated Building an image procedure (PR #2964)
  • Starting a container (PR #2958)
  • Pulling an image (PR #2956)
  • Updated selecting containers to run in a pod (PR #2970)
  • Pushing an image to a registry (PR #2969)
  • How to add an insecure registry (PR #2953)
  • Add documentation for lima (PR #2995)
  • Replace broken link to podman.io (PR #2994)
  • Authenticating to a pre-configured registry (PR #2965)
  • Lima is not a container engine (PR #3051)
  • Using the Troubleshooting page (PR #3083)
  • View and select your current Kubernetes context in the status bar (PR #3090)

Notable Bug Fixes

  • Deleting a running pod generates an error (PR #2827)
  • If kubeconfig is empty, does not try to do things, cancel (PR #2874)
  • Async telemetry startup (PR #2885)
  • Do not block startup while waiting for kube resource refresh (PR #2884)
  • Images list too wide (PR #2918)
  • Compose deactivate function never called (PR #2922)
  • Auto-scrolling on form pages, layout issues (PR #2927)
  • Show current context in quick pick (PR #2920)
  • Remove sticky position of loader in dashboard UI (#2535) (PR #2959)
  • Undo change that broke the website (PR #2992)
  • Detailspage, resizing & consistency (PR #2987)
  • Quick pick click to close and over nav bar (PR #2758)
  • Only show empty screen when no pods (PR #2929)
  • Do not redirect to /pods when deleting pod in containerlist (PR #2963)
  • Bulk delete on pods should call the pod deletion (PR #2979)
  • Update nodejs version to 18 in .nvmrc to fix yarn install failure (PR #2989)
  • Website check targets (PR #2996)
  • Don't show exception to user (PR #3034)
  • Interpret arguments given to info command for example (PR #3015)
  • Change defaults for Podman machine (PR #3061)
  • Normalize development/production folders path (PR #3113)
  • Calculate machine socket path for linux (PR #3070)
  • Replace backslash with slash so to support rendering on Windows (#3120) (PR #3122)
  • Keep stdout and stderr in the error object for Docker Desktop extensions (PR #3014)
  • Mark task completed if there's a failure (PR #3016)
  • Handle invalid kubeconfig file (PR #3129)
  • Do not remove registries when podman extension is stopping (PR #3136)
  • Warning should be amber (PR #3153)
  • Load user extensions from plugins as removable (PR #3152)
  • Images with spaces in entrypoints or commands fail to start (PR #3161)
  • Scrolling offscreen when clicking checkbox (PR #3178)
  • Avoid messagebox expanding offscreen (PR #2778)
  • Release-notes-generator run failure (PR #2752)
  • Unable to do a new build if the previous one failed (PR #2721)

Community Thank You

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

A big shoutout to @afbjorklund, @tuckerrc and @evanshortiss who contributed to this release!


Final notes

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

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.

· 3 min read
Tim deBoer

Podman Desktop 1.1 Release! 🎉

This is primarily a bug-fix release to fix a few important issues, but we've managed to squeeze in a few enhancements along the way.

  • Podman 4.5.1: Podman 4.5.1 now included in Windows and Mac installers.
  • Extensions: Update extensions from within Podman Desktop.
  • Lima Support: Choose engine type and override its name from the settings.
  • UX and UI Improvements: New loading screen.

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

Podman-desktop-1-1-hero

· 5 min read
Tim deBoer

Podman Desktop 1.0 Release! 🎉

We still have many things planned, but with a little polish and a few more bug fixes we felt we've reached a level of maturity and it is now time to declare our 1.0 release.

Thank you to everyone who has been with us on this journey so far! Please keep the feedback coming!

  • Highlighting Featured Extensions: Easily find and install new extensions.
  • Featured Extensions: Two new extensions supporting OpenShift.
  • Podman Machine as Root: Ability to run a Podman machine as root.
  • UX and UI Improvements: Opening external websites, editing numbers, and tooltips.

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

Podman-desktop-1-0-hero

- + \ No newline at end of file diff --git a/blog/tags/podman-desktop.html b/blog/tags/podman-desktop.html index c8214d29044..6d16c39134e 100644 --- a/blog/tags/podman-desktop.html +++ b/blog/tags/podman-desktop.html @@ -13,12 +13,12 @@ - +
-

14 posts tagged with "podman-desktop"

View All Tags

· 4 min read
Jeff Maury

Podman Desktop 1.4 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features.

  • Podman 4.6.2: Podman 4.6.2 included with Podman Desktop 1.4
  • Windows Arm64: Native Windows on Arm64 installers and binaries
  • Port range mapping: Start containers and map a range of ports
  • Terminal UX Improvement: Persistent terminal sessions when SSH'ing in a container
  • Volume Creation: Create volume from the Volumes page
  • Bash support: Terminals are now using bash if available.

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

Podman-desktop-1-4-juggling


Release Details

Port range mapping #3654

When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised.

Range mapping

Terminal lifetime #3725

When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI.

terminal lifetime

Create volume #3742

The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name.

create volume

bash support #3750

When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used.

bash sh

Notable Bug Fixes

  • Reduce API calls when listing containers by @benoitf #3489
  • Removing a connection(podman machine) should redirect to previous page by @benoitf #3576
  • Enhance error message when image is not there by @benoitf #3587
  • Dispose kind install button when extension is deactivated (#3586) by @lstocchi #3610
  • Replace backslash/slash on windows when building image (#3465) by @lstocchi #3618
  • Handle null value in container command (#3620) by @lstocchi #3625
  • Add maximum activation time for extensions by @benoitf #3446
  • Handle single non-spread arguments by @benoitf #3641
  • Grab usage data of volumes only on-demand by @benoitf #3635
  • Add arm64 binaries for Windows by @benoitf #3643
  • Include right airgap file for Windows and arm64 by @benoitf #3651
  • Redirect to previous page when removing a kubernetes connection by @benoitf #3650
  • Support port ranges when starting a container (#3204) by @lstocchi #3654
  • Add a strict undefined check to messagebox result (#3692) by @lstocchi #3699
  • Only restart if a machine is running by @cdrage #3491
  • Session to the terminal is reused by @benoitf #3725
  • Disable next button and show try again when onboarding failed (#3616) by @lstocchi #3711
  • Add podman in PATH after updating process environment PATH (#3729) by @lstocchi #3730
  • Allow to create a volume by @benoitf #3742
  • Using bash if available otherwise sh in terminal by @axel7083 #3750
  • Allow to embed existing component to onboarding (#3755) by @lstocchi #3763
  • Some containers never return logs, do not wait for them by @dgolovin #3784
  • Remove cancel button when on final onboarding step (#3771) by @lstocchi #3802
  • Onboarding add link micromark for commands by @cdrage #3747
  • Mounts can be null when using older podman by @afbjorklund #3806
  • Remove redundant step completion check when onboarding gets started by @lstocchi #3798
  • Ability to click enter in pull image name input by @deboer-tim #3850
  • Set proxy environment variable when launching process by @jeffmaury #3838
  • The socket location was moved for new podman by @afbjorklund #3853
  • Don't log console errors when activating lima extension by @afbjorklund #3852

Community Thank You

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

A warm welcome to @tomgoren, @Julian, @Gelob and @cedricclyburn who made their first contribution to the project in this release.

Final Notes

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

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.

· 6 min read
Denis Golovin

Podman Desktop 1.3 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features.

  • Podman 4.6.1: Podman 4.6.1 included in Windows and Mac installers
  • Podman user-mode networking support to Windows/WSL: A new switch `User mode networking' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations
  • Compose group new UI elements: You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs
  • Extension packs and extension dependencies: Install group of extensions in one click
  • Resource details page update: See summary and log for resource
  • Create Kind cluster form update: A new Node's container image field can be used to specify the Kubernetes version used for the control-planed
  • Support Docker Desktop extensions using a backend: When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension's descriptor
  • Podman Initial Onboarding (preview): Install and configure podman using included installer

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

Podman-desktop-1-3-bug-swatting


Release Details

Compose group Logs tab #3176

When clicking on the group of containers, you can now view the logs of the entire group of compose containers and don't need to open +

14 posts tagged with "podman-desktop"

View All Tags

· 4 min read
Jeff Maury

Podman Desktop 1.4 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features.

  • Podman 4.6.2: Podman 4.6.2 included with Podman Desktop 1.4
  • Windows Arm64: Native Windows on Arm64 installers and binaries
  • Port range mapping: Start containers and map a range of ports
  • Terminal UX Improvement: Persistent terminal sessions when SSH'ing in a container
  • Volume Creation: Create volume from the Volumes page
  • Bash support: Terminals are now using bash if available.

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

Podman-desktop-1-4-juggling


Release Details

Port range mapping #3654

When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised.

Range mapping

Terminal lifetime #3725

When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI.

terminal lifetime

Create volume #3742

The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name.

create volume

bash support #3750

When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used.

bash sh

Notable Bug Fixes

  • Reduce API calls when listing containers by @benoitf #3489
  • Removing a connection(podman machine) should redirect to previous page by @benoitf #3576
  • Enhance error message when image is not there by @benoitf #3587
  • Dispose kind install button when extension is deactivated (#3586) by @lstocchi #3610
  • Replace backslash/slash on windows when building image (#3465) by @lstocchi #3618
  • Handle null value in container command (#3620) by @lstocchi #3625
  • Add maximum activation time for extensions by @benoitf #3446
  • Handle single non-spread arguments by @benoitf #3641
  • Grab usage data of volumes only on-demand by @benoitf #3635
  • Add arm64 binaries for Windows by @benoitf #3643
  • Include right airgap file for Windows and arm64 by @benoitf #3651
  • Redirect to previous page when removing a kubernetes connection by @benoitf #3650
  • Support port ranges when starting a container (#3204) by @lstocchi #3654
  • Add a strict undefined check to messagebox result (#3692) by @lstocchi #3699
  • Only restart if a machine is running by @cdrage #3491
  • Session to the terminal is reused by @benoitf #3725
  • Disable next button and show try again when onboarding failed (#3616) by @lstocchi #3711
  • Add podman in PATH after updating process environment PATH (#3729) by @lstocchi #3730
  • Allow to create a volume by @benoitf #3742
  • Using bash if available otherwise sh in terminal by @axel7083 #3750
  • Allow to embed existing component to onboarding (#3755) by @lstocchi #3763
  • Some containers never return logs, do not wait for them by @dgolovin #3784
  • Remove cancel button when on final onboarding step (#3771) by @lstocchi #3802
  • Onboarding add link micromark for commands by @cdrage #3747
  • Mounts can be null when using older podman by @afbjorklund #3806
  • Remove redundant step completion check when onboarding gets started by @lstocchi #3798
  • Ability to click enter in pull image name input by @deboer-tim #3850
  • Set proxy environment variable when launching process by @jeffmaury #3838
  • The socket location was moved for new podman by @afbjorklund #3853
  • Don't log console errors when activating lima extension by @afbjorklund #3852

Community Thank You

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

A warm welcome to @tomgoren, @Julian, @Gelob and @cedricclyburn who made their first contribution to the project in this release.

Final Notes

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

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.

· 6 min read
Denis Golovin

Podman Desktop 1.3 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features.

  • Podman 4.6.1: Podman 4.6.1 included in Windows and Mac installers
  • Podman user-mode networking support to Windows/WSL: A new switch `User mode networking' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations
  • Compose group new UI elements: You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs
  • Extension packs and extension dependencies: Install group of extensions in one click
  • Resource details page update: See summary and log for resource
  • Create Kind cluster form update: A new Node's container image field can be used to specify the Kubernetes version used for the control-planed
  • Support Docker Desktop extensions using a backend: When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension's descriptor
  • Podman Initial Onboarding (preview): Install and configure podman using included installer

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

Podman-desktop-1-3-bug-swatting


Release Details

Compose group Logs tab #3176

When clicking on the group of containers, you can now view the logs of the entire group of compose containers and don't need to open log for every component individually.

Screenshot 2023-07-11 at 12 48 47 PM

Podman user-mode networking support to Windows/WSL #3251

Certain VPN setups or other specialized networking configs will block traffic from the virtual WSL networking device, resulting in the podman WSL backend from being unable to contact systems on the VPN, and potentially losing internet access altogether. The new switch allows you to create a podman VM machine configured to work correctly in mentioned above networking environments.

user

Compose group Summary tab #3317,

Compose group Summary tab shows all containers in the group and let you navigate to Details page for specific container.

Compose group Inspect tab #3316

Compose group Inspect tab shows an array of "container inspect" from docker / podman.

Deploy to kubernetes in compose actions #3299

A button to deploy to kubernetes added to Compose group.

Generate Kube in Compose actions and Kube tab in compose details #3253

Generate Kube item added to Compose actions and "Kube" tab is now available in Compose details view.

Install multiple extensions using extension pack #3150

An Extension pack introduced in Extension engine is a way to declare set of extensions to install them all at once.

Customize icons from extension #3131

Extensions now can customize icons for list elements using when clause.

image

Resource details page update #1923

If you click on the arrow icon next to a resource name it will open up a details page (similarly to how clicking on a container in the container list opens up a details page).

image

Node's container image field added to Create a Kind cluster form #3508

The new Node's container image field can be used to specify the Kubernetes version used for the control-planed.

image

Support Docker Desktop extensions using a backend #3435

Podman Desktop now loads the containers in the backend as described in the vm section of extension descriptor the same way as Docker Desktop does.

Initial onboarding implementation for podman (experimental) #3308

This is the initial implementation for the onboarding feature. It only covers a simple onboarding for podman. Check system requirements -> install podman -> yay! Done!

Notable Bug Fixes

  • Updating videos to be adaptive for mobile by @mairin #3229
  • Consistent max width and padding in settings by @deboer-tim #3232
  • Settings navigation bar resizing by @deboer-tim in #3231
  • Move new registry button to header by @deboer-tim #3245
  • Bigger lima logo by @afbjorklund #3248
  • Horizontal docker logo by @afbjorklund #3236
  • Respect LIMA_HOME environment variable by @afbjorklund #3254
  • Add check before writing to terminal by @lstocchi #3263
  • Wait until remote side has fully initialized the extensions by @benoitf #3257
  • Fix loader not centered horizontally by @benoitf #3270
  • Troubleshooting still waiting after failure by @deboer-tim #3354
  • Store error for build by @cdrage #3365
  • Missing checkbox tooltips by @deboer-tim #3380
  • Load compose logs async not await by @cdrage #3377
  • Set rootful connection when starting rootful machine by @lstocchi #3364
  • Default last page by @deboer-tim #3388
  • Avoid dashboard displaying providers starting while they don't by @benoitf #3451
  • Do not use extensionInfo until it is defined by @benoitf #V
  • Allow BASIC authentication (all caps) by @cdrage #3471
  • Allow single domain registry such as localhost:5000 by @cdrage #3468
  • Create /usr/local/bin directory if it does not exist on binary install by @cdrage #3425
  • Only delete selected pods by @deboer-tim #
  • Add back 'Done' text on the button by @benoitf #3487
  • Do not wait for more than 5s when checking for podman ping by @benoitf #3497
  • Add proxy support for extension using patching get and request approach by @dgolovin #2825
  • Refresh component when field is updated by @benoitf #3525
  • Higher-res icons for featured extensions list by @mairin #3511
  • Main nav selection by @deboer-tim #3510
  • kube event error when switching context by @jeffmaury #3494
  • Reset error message each time we pull image by @benoitf #3550

Community Thank You

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

A warm welcome to @rostalan and @axel7083 who made their first contribution to the project in this release.

Final Notes

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

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.

· 7 min read
Charlie Drage

Podman Desktop 1.2 Release! 🎉

We're excited to announce the release of Podman Desktop version 1.2.0! This release includes many new features (Kubernetes, Compose and extension support!), bug fixes, and improvements to enhance your container management experience. Here's a summary of the key changes in this release:

  • Added start/stop/delete/restart buttons for Compose: You can now make changes to an entire Compose group of containers
  • Kubernetes context on the status bar: Choose from multiple Kubernetes contexts more easily all from the status bar
  • Rename images: Rename an image with a click of a button
  • Protocol handler support: Added support for protocol handlers such as open podman-desktop:extension/redhat.openshift-local
  • Troubleshooting page: A troubleshooting page for helping diagnose Podman Desktop related development issues

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

Podman-desktop-1-2-hero


Release Details

Added start/stop/delete/restart buttons for Compose

In the last month we've been addind support for more Compose features. Before you were only able to control a group of containers if they were in a Pod. Now we have added the ability to control a group of Compose containers. You can now start, stop, delete and restart a group of containers launched by either docker-compose or podman-compose.

Stay tuned as we add even more features to Compose! If you have any feedback or feature requests, feel free to open an issue or start a discussion on GitHub.

Kubernetes context on the status bar

With Kubernetes context on the status bar, you can switch from one context to another in just a couple of clicks. Easily switch to a different cluster all together. If there are multiple contexts available, you can now click and pick which one to use.

Rename images

Deployed an image but now you need to rename it / add a new tag? Podman Desktop allows you to edit an image now. Thanks to an awesome contributor @tuckerrc who added the new feature.

Troubleshooting page

Developing an extension for Podman Desktop? Want to view the logs of Podman Desktop as well as ping your container connection? We now have a troubleshooting page!

Click on the lightbulb button on the bottom right to access the page.

Protocol handler support

Podman Desktop now supports protocol handling when using the terminal! Want to access your favourite extension directly from a script or the terminal? If you type in open podman-desktop:extension/redhat.openshift-local in the terminal, Podman Desktop will automatically load up to the correct extension.


Other Notable Features

  • Background colors and FormPage (PR #2977)
  • Add ability to add insecure registry / skipping cert verify (PR #2896)
  • Add support for icon contribution (PR #2984)
  • Add warning dialog message that virtual machine has low memory limit (PR #2822)
  • Propose indexed name for new pod (PR #3028)
  • Add restart button after enabling / disabling mac os compatibility (PR #2841)
  • Add environment related helper constants (PR #3079)
  • Allow entrypoint and cmd when starting container (PR #3031)
  • Add a way to debug stores in troubleshooting page (PR #3121)
  • Add custompick component (#2855) (PR #3012)
  • Dynamic breadcrumbs (PR #3119)
  • Icons on form pages (PR #3155)
  • Switch more pages to formpage (PR #3162)
  • Add rename image button (PR #2588)
  • Fixed headers, improved scrollbars (PR #2863)
  • Reports warnings on failed kube deploy, fixes error out (PR #3050)
  • Kube context on statusbar (PR #2755)
  • Install provider if not installed when clicking on create new button (#2706) (PR #2817)
  • Add tag and authenticated push capacity to the extension API (PR #2876)
  • Add navigation bar e2e tests (PR #2950)

Documentation Updates

  • Fix documentation for building image of extensions (PR #2873)
  • Add Minikube install docs (PR #2824)
  • Add Minikube documentation (PR #2694)
  • Updated Building an image procedure (PR #2964)
  • Starting a container (PR #2958)
  • Pulling an image (PR #2956)
  • Updated selecting containers to run in a pod (PR #2970)
  • Pushing an image to a registry (PR #2969)
  • How to add an insecure registry (PR #2953)
  • Add documentation for lima (PR #2995)
  • Replace broken link to podman.io (PR #2994)
  • Authenticating to a pre-configured registry (PR #2965)
  • Lima is not a container engine (PR #3051)
  • Using the Troubleshooting page (PR #3083)
  • View and select your current Kubernetes context in the status bar (PR #3090)

Notable Bug Fixes

  • Deleting a running pod generates an error (PR #2827)
  • If kubeconfig is empty, does not try to do things, cancel (PR #2874)
  • Async telemetry startup (PR #2885)
  • Do not block startup while waiting for kube resource refresh (PR #2884)
  • Images list too wide (PR #2918)
  • Compose deactivate function never called (PR #2922)
  • Auto-scrolling on form pages, layout issues (PR #2927)
  • Show current context in quick pick (PR #2920)
  • Remove sticky position of loader in dashboard UI (#2535) (PR #2959)
  • Undo change that broke the website (PR #2992)
  • Detailspage, resizing & consistency (PR #2987)
  • Quick pick click to close and over nav bar (PR #2758)
  • Only show empty screen when no pods (PR #2929)
  • Do not redirect to /pods when deleting pod in containerlist (PR #2963)
  • Bulk delete on pods should call the pod deletion (PR #2979)
  • Update nodejs version to 18 in .nvmrc to fix yarn install failure (PR #2989)
  • Website check targets (PR #2996)
  • Don't show exception to user (PR #3034)
  • Interpret arguments given to info command for example (PR #3015)
  • Change defaults for Podman machine (PR #3061)
  • Normalize development/production folders path (PR #3113)
  • Calculate machine socket path for linux (PR #3070)
  • Replace backslash with slash so to support rendering on Windows (#3120) (PR #3122)
  • Keep stdout and stderr in the error object for Docker Desktop extensions (PR #3014)
  • Mark task completed if there's a failure (PR #3016)
  • Handle invalid kubeconfig file (PR #3129)
  • Do not remove registries when podman extension is stopping (PR #3136)
  • Warning should be amber (PR #3153)
  • Load user extensions from plugins as removable (PR #3152)
  • Images with spaces in entrypoints or commands fail to start (PR #3161)
  • Scrolling offscreen when clicking checkbox (PR #3178)
  • Avoid messagebox expanding offscreen (PR #2778)
  • Release-notes-generator run failure (PR #2752)
  • Unable to do a new build if the previous one failed (PR #2721)

Community Thank You

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

A big shoutout to @afbjorklund, @tuckerrc and @evanshortiss who contributed to this release!


Final notes

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

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.

· 3 min read
Tim deBoer

Podman Desktop 1.1 Release! 🎉

This is primarily a bug-fix release to fix a few important issues, but we've managed to squeeze in a few enhancements along the way.

  • Podman 4.5.1: Podman 4.5.1 now included in Windows and Mac installers.
  • Extensions: Update extensions from within Podman Desktop.
  • Lima Support: Choose engine type and override its name from the settings.
  • UX and UI Improvements: New loading screen.

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

Podman-desktop-1-1-hero

· 5 min read
Tim deBoer

Podman Desktop 1.0 Release! 🎉

We still have many things planned, but with a little polish and a few more bug fixes we felt we've reached a level of maturity and it is now time to declare our 1.0 release.

Thank you to everyone who has been with us on this journey so far! Please keep the @@ -29,7 +29,7 @@ of Podman Desktop: not just local container engines, but Kubernetes too. More im providing tools that allow you to manage both environments and seamlessly move between them.

Some of these features were available in development mode over the last few releases, but since they are now in the release build, we will do a full roundup and talk about all the Kind features.

  • Kind Installation: Install Kind from the status bar
  • Manage Kind Clusters: Create and manage Kind clusters from Settings > Resources
  • Using Kind: Deploying YAML and sharing images to a cluster
  • Kind Ingress: Install a Contour ingress controller
  • UX and UI Improvements: Updated preferences and telemetry prompt

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

Podman-desktop-0-14-hero

· 4 min read
Tim deBoer

This release note covers Podman Desktop 0.13 release changes.

  • Podman Version: Podman 4.4.4 now included in Windows and Mac installers.
  • Compose: Support for installing Docker Compose.
  • Extensions: Improved extension support for Podman Desktop with additional capabilities.
  • UX and UI Improvements: Welcome page, task manager, resources, and update alerts.

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

Podman-desktop-0-13-hero

· 5 min read
Florent Benoit

The 5 things to know being a Docker user by using Podman Desktop:

  • Use a single UI: Podman Desktop works with several container engines, including Docker.
  • The compatibility mode: How to ensure tools are working with Podman instead of Docker.
  • Compose support: How to work with Compose files and Podman.
  • Kubernetes support: How to use Kubernetes with Podman.
  • Security: Use rootless mode or containers without root privileges.

5-things-to-know-for-a-docker-user-hero

· 5 min read
Stevan Le Meur

This release note covers Podman Desktop 0.12 release changes.

  • Podman Version: Podman 4.4.1 now included in Windows and Mac installers.
  • Containers Configuration: Configure port mappings for an image without exported ports.
  • Windows Home Support: Podman Desktop now supports Windows Home Edition.
  • Start minimized: Option to start Podman Desktop minimized to system tray.
  • UX and UI Improvements: Consistent actions, placeholder for logs, unified icons and others.

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

podman-desktop-0-12-hero

· 10 min read
Stevan Le Meur

This release note covers Podman Desktop 0.11 release changes.

  • Air-Gapped Installation: New all-in-one binaries for air-gapped installation.
  • Feedback: Submit feedback directly from Podman Desktop.
  • Docker Compatibility Mode: Information about the Docker compatibility mode.
  • Proxy Setting: Toggle on/off the proxy setting.
  • Deploy to Kubernetes: Select the namespace to deploy to Kubernetes.
  • Registry Configuration: Simplified registry configuration for well known registries.
  • UX/UI Improvements: View pod's container logs, better visual feedback, configurable editor font size, and more.

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

· 5 min read
Dev Kumar

This release note covers Podman Desktop 0.10 release changes.

  • Containers Configuration: Container creation wizzard allowing to define environment variables, networking and more configuration options.
  • Kubernetes Improvements: Play Kubernetes YAML, custom Kubeconfig path support, reload of kube context.
  • Registries Configuration: Revamped registries configuration UI.
  • Podman Version: Podman 4.3.1 now included in Windows and Mac installers.
  • UX/UI Improvements: Improved lists, better contrast, and more.

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

· 7 min read
Florent Benoit

GitHub announced last week that Codespaces is available for everyone and it includes free minutes.

Let see how we can use a Development Container having all the tools to build and run Podman Desktop. The Development Container works locally using Visual Studio Code but in this blog post we will see how it works directly with a simple click from GitHub.

The challenges are to run a desktop tool (Podman Desktop) and running a container engine (Podman) inside this Development Container without using too many memory !

- + \ No newline at end of file diff --git a/blog/tags/release.html b/blog/tags/release.html index 8dca6eeb76f..77e89778239 100644 --- a/blog/tags/release.html +++ b/blog/tags/release.html @@ -13,12 +13,12 @@ - +
-

11 posts tagged with "release"

View All Tags

· 4 min read
Jeff Maury

Podman Desktop 1.4 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features.

  • Podman 4.6.2: Podman 4.6.2 included with Podman Desktop 1.4
  • Windows Arm64: Native Windows on Arm64 installers and binaries
  • Port range mapping: Start containers and map a range of ports
  • Terminal UX Improvement: Persistent terminal sessions when SSH'ing in a container
  • Volume Creation: Create volume from the Volumes page
  • Bash support: Terminals are now using bash if available.

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

Podman-desktop-1-4-juggling


Release Details

Port range mapping #3654

When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised.

Range mapping

Terminal lifetime #3725

When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI.

terminal lifetime

Create volume #3742

The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name.

create volume

bash support #3750

When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used.

bash sh

Notable Bug Fixes

  • Reduce API calls when listing containers by @benoitf #3489
  • Removing a connection(podman machine) should redirect to previous page by @benoitf #3576
  • Enhance error message when image is not there by @benoitf #3587
  • Dispose kind install button when extension is deactivated (#3586) by @lstocchi #3610
  • Replace backslash/slash on windows when building image (#3465) by @lstocchi #3618
  • Handle null value in container command (#3620) by @lstocchi #3625
  • Add maximum activation time for extensions by @benoitf #3446
  • Handle single non-spread arguments by @benoitf #3641
  • Grab usage data of volumes only on-demand by @benoitf #3635
  • Add arm64 binaries for Windows by @benoitf #3643
  • Include right airgap file for Windows and arm64 by @benoitf #3651
  • Redirect to previous page when removing a kubernetes connection by @benoitf #3650
  • Support port ranges when starting a container (#3204) by @lstocchi #3654
  • Add a strict undefined check to messagebox result (#3692) by @lstocchi #3699
  • Only restart if a machine is running by @cdrage #3491
  • Session to the terminal is reused by @benoitf #3725
  • Disable next button and show try again when onboarding failed (#3616) by @lstocchi #3711
  • Add podman in PATH after updating process environment PATH (#3729) by @lstocchi #3730
  • Allow to create a volume by @benoitf #3742
  • Using bash if available otherwise sh in terminal by @axel7083 #3750
  • Allow to embed existing component to onboarding (#3755) by @lstocchi #3763
  • Some containers never return logs, do not wait for them by @dgolovin #3784
  • Remove cancel button when on final onboarding step (#3771) by @lstocchi #3802
  • Onboarding add link micromark for commands by @cdrage #3747
  • Mounts can be null when using older podman by @afbjorklund #3806
  • Remove redundant step completion check when onboarding gets started by @lstocchi #3798
  • Ability to click enter in pull image name input by @deboer-tim #3850
  • Set proxy environment variable when launching process by @jeffmaury #3838
  • The socket location was moved for new podman by @afbjorklund #3853
  • Don't log console errors when activating lima extension by @afbjorklund #3852

Community Thank You

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

A warm welcome to @tomgoren, @Julian, @Gelob and @cedricclyburn who made their first contribution to the project in this release.

Final Notes

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

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.

· 6 min read
Denis Golovin

Podman Desktop 1.3 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features.

  • Podman 4.6.1: Podman 4.6.1 included in Windows and Mac installers
  • Podman user-mode networking support to Windows/WSL: A new switch `User mode networking' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations
  • Compose group new UI elements: You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs
  • Extension packs and extension dependencies: Install group of extensions in one click
  • Resource details page update: See summary and log for resource
  • Create Kind cluster form update: A new Node's container image field can be used to specify the Kubernetes version used for the control-planed
  • Support Docker Desktop extensions using a backend: When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension's descriptor
  • Podman Initial Onboarding (preview): Install and configure podman using included installer

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

Podman-desktop-1-3-bug-swatting


Release Details

Compose group Logs tab #3176

When clicking on the group of containers, you can now view the logs of the entire group of compose containers and don't need to open +

11 posts tagged with "release"

View All Tags

· 4 min read
Jeff Maury

Podman Desktop 1.4 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, but as usual we also added a few new features.

  • Podman 4.6.2: Podman 4.6.2 included with Podman Desktop 1.4
  • Windows Arm64: Native Windows on Arm64 installers and binaries
  • Port range mapping: Start containers and map a range of ports
  • Terminal UX Improvement: Persistent terminal sessions when SSH'ing in a container
  • Volume Creation: Create volume from the Volumes page
  • Bash support: Terminals are now using bash if available.

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

Podman-desktop-1-4-juggling


Release Details

Port range mapping #3654

When starting a new container, you can now map a port range between host and container. If the range is not valid between host and container, an error is raised.

Range mapping

Terminal lifetime #3725

When a terminal is opened for a container, it can now be reused after you switched to another part of the Podman Desktop UI.

terminal lifetime

Create volume #3742

The Volumes tab now has a Create volume button. The Create volume UI has a single field for the volume name.

create volume

bash support #3750

When a terminal is opened for a container, if bash is available within the container, it will be used. Otherwise, sh will be used.

bash sh

Notable Bug Fixes

  • Reduce API calls when listing containers by @benoitf #3489
  • Removing a connection(podman machine) should redirect to previous page by @benoitf #3576
  • Enhance error message when image is not there by @benoitf #3587
  • Dispose kind install button when extension is deactivated (#3586) by @lstocchi #3610
  • Replace backslash/slash on windows when building image (#3465) by @lstocchi #3618
  • Handle null value in container command (#3620) by @lstocchi #3625
  • Add maximum activation time for extensions by @benoitf #3446
  • Handle single non-spread arguments by @benoitf #3641
  • Grab usage data of volumes only on-demand by @benoitf #3635
  • Add arm64 binaries for Windows by @benoitf #3643
  • Include right airgap file for Windows and arm64 by @benoitf #3651
  • Redirect to previous page when removing a kubernetes connection by @benoitf #3650
  • Support port ranges when starting a container (#3204) by @lstocchi #3654
  • Add a strict undefined check to messagebox result (#3692) by @lstocchi #3699
  • Only restart if a machine is running by @cdrage #3491
  • Session to the terminal is reused by @benoitf #3725
  • Disable next button and show try again when onboarding failed (#3616) by @lstocchi #3711
  • Add podman in PATH after updating process environment PATH (#3729) by @lstocchi #3730
  • Allow to create a volume by @benoitf #3742
  • Using bash if available otherwise sh in terminal by @axel7083 #3750
  • Allow to embed existing component to onboarding (#3755) by @lstocchi #3763
  • Some containers never return logs, do not wait for them by @dgolovin #3784
  • Remove cancel button when on final onboarding step (#3771) by @lstocchi #3802
  • Onboarding add link micromark for commands by @cdrage #3747
  • Mounts can be null when using older podman by @afbjorklund #3806
  • Remove redundant step completion check when onboarding gets started by @lstocchi #3798
  • Ability to click enter in pull image name input by @deboer-tim #3850
  • Set proxy environment variable when launching process by @jeffmaury #3838
  • The socket location was moved for new podman by @afbjorklund #3853
  • Don't log console errors when activating lima extension by @afbjorklund #3852

Community Thank You

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

A warm welcome to @tomgoren, @Julian, @Gelob and @cedricclyburn who made their first contribution to the project in this release.

Final Notes

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

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.

· 6 min read
Denis Golovin

Podman Desktop 1.3 Release! 🎉

This is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features.

  • Podman 4.6.1: Podman 4.6.1 included in Windows and Mac installers
  • Podman user-mode networking support to Windows/WSL: A new switch `User mode networking' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations
  • Compose group new UI elements: You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs
  • Extension packs and extension dependencies: Install group of extensions in one click
  • Resource details page update: See summary and log for resource
  • Create Kind cluster form update: A new Node's container image field can be used to specify the Kubernetes version used for the control-planed
  • Support Docker Desktop extensions using a backend: When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension's descriptor
  • Podman Initial Onboarding (preview): Install and configure podman using included installer

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

Podman-desktop-1-3-bug-swatting


Release Details

Compose group Logs tab #3176

When clicking on the group of containers, you can now view the logs of the entire group of compose containers and don't need to open log for every component individually.

Screenshot 2023-07-11 at 12 48 47 PM

Podman user-mode networking support to Windows/WSL #3251

Certain VPN setups or other specialized networking configs will block traffic from the virtual WSL networking device, resulting in the podman WSL backend from being unable to contact systems on the VPN, and potentially losing internet access altogether. The new switch allows you to create a podman VM machine configured to work correctly in mentioned above networking environments.

user

Compose group Summary tab #3317,

Compose group Summary tab shows all containers in the group and let you navigate to Details page for specific container.

Compose group Inspect tab #3316

Compose group Inspect tab shows an array of "container inspect" from docker / podman.

Deploy to kubernetes in compose actions #3299

A button to deploy to kubernetes added to Compose group.

Generate Kube in Compose actions and Kube tab in compose details #3253

Generate Kube item added to Compose actions and "Kube" tab is now available in Compose details view.

Install multiple extensions using extension pack #3150

An Extension pack introduced in Extension engine is a way to declare set of extensions to install them all at once.

Customize icons from extension #3131

Extensions now can customize icons for list elements using when clause.

image

Resource details page update #1923

If you click on the arrow icon next to a resource name it will open up a details page (similarly to how clicking on a container in the container list opens up a details page).

image

Node's container image field added to Create a Kind cluster form #3508

The new Node's container image field can be used to specify the Kubernetes version used for the control-planed.

image

Support Docker Desktop extensions using a backend #3435

Podman Desktop now loads the containers in the backend as described in the vm section of extension descriptor the same way as Docker Desktop does.

Initial onboarding implementation for podman (experimental) #3308

This is the initial implementation for the onboarding feature. It only covers a simple onboarding for podman. Check system requirements -> install podman -> yay! Done!

Notable Bug Fixes

  • Updating videos to be adaptive for mobile by @mairin #3229
  • Consistent max width and padding in settings by @deboer-tim #3232
  • Settings navigation bar resizing by @deboer-tim in #3231
  • Move new registry button to header by @deboer-tim #3245
  • Bigger lima logo by @afbjorklund #3248
  • Horizontal docker logo by @afbjorklund #3236
  • Respect LIMA_HOME environment variable by @afbjorklund #3254
  • Add check before writing to terminal by @lstocchi #3263
  • Wait until remote side has fully initialized the extensions by @benoitf #3257
  • Fix loader not centered horizontally by @benoitf #3270
  • Troubleshooting still waiting after failure by @deboer-tim #3354
  • Store error for build by @cdrage #3365
  • Missing checkbox tooltips by @deboer-tim #3380
  • Load compose logs async not await by @cdrage #3377
  • Set rootful connection when starting rootful machine by @lstocchi #3364
  • Default last page by @deboer-tim #3388
  • Avoid dashboard displaying providers starting while they don't by @benoitf #3451
  • Do not use extensionInfo until it is defined by @benoitf #V
  • Allow BASIC authentication (all caps) by @cdrage #3471
  • Allow single domain registry such as localhost:5000 by @cdrage #3468
  • Create /usr/local/bin directory if it does not exist on binary install by @cdrage #3425
  • Only delete selected pods by @deboer-tim #
  • Add back 'Done' text on the button by @benoitf #3487
  • Do not wait for more than 5s when checking for podman ping by @benoitf #3497
  • Add proxy support for extension using patching get and request approach by @dgolovin #2825
  • Refresh component when field is updated by @benoitf #3525
  • Higher-res icons for featured extensions list by @mairin #3511
  • Main nav selection by @deboer-tim #3510
  • kube event error when switching context by @jeffmaury #3494
  • Reset error message each time we pull image by @benoitf #3550

Community Thank You

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

A warm welcome to @rostalan and @axel7083 who made their first contribution to the project in this release.

Final Notes

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

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.

· 7 min read
Charlie Drage

Podman Desktop 1.2 Release! 🎉

We're excited to announce the release of Podman Desktop version 1.2.0! This release includes many new features (Kubernetes, Compose and extension support!), bug fixes, and improvements to enhance your container management experience. Here's a summary of the key changes in this release:

  • Added start/stop/delete/restart buttons for Compose: You can now make changes to an entire Compose group of containers
  • Kubernetes context on the status bar: Choose from multiple Kubernetes contexts more easily all from the status bar
  • Rename images: Rename an image with a click of a button
  • Protocol handler support: Added support for protocol handlers such as open podman-desktop:extension/redhat.openshift-local
  • Troubleshooting page: A troubleshooting page for helping diagnose Podman Desktop related development issues

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

Podman-desktop-1-2-hero


Release Details

Added start/stop/delete/restart buttons for Compose

In the last month we've been addind support for more Compose features. Before you were only able to control a group of containers if they were in a Pod. Now we have added the ability to control a group of Compose containers. You can now start, stop, delete and restart a group of containers launched by either docker-compose or podman-compose.

Stay tuned as we add even more features to Compose! If you have any feedback or feature requests, feel free to open an issue or start a discussion on GitHub.

Kubernetes context on the status bar

With Kubernetes context on the status bar, you can switch from one context to another in just a couple of clicks. Easily switch to a different cluster all together. If there are multiple contexts available, you can now click and pick which one to use.

Rename images

Deployed an image but now you need to rename it / add a new tag? Podman Desktop allows you to edit an image now. Thanks to an awesome contributor @tuckerrc who added the new feature.

Troubleshooting page

Developing an extension for Podman Desktop? Want to view the logs of Podman Desktop as well as ping your container connection? We now have a troubleshooting page!

Click on the lightbulb button on the bottom right to access the page.

Protocol handler support

Podman Desktop now supports protocol handling when using the terminal! Want to access your favourite extension directly from a script or the terminal? If you type in open podman-desktop:extension/redhat.openshift-local in the terminal, Podman Desktop will automatically load up to the correct extension.


Other Notable Features

  • Background colors and FormPage (PR #2977)
  • Add ability to add insecure registry / skipping cert verify (PR #2896)
  • Add support for icon contribution (PR #2984)
  • Add warning dialog message that virtual machine has low memory limit (PR #2822)
  • Propose indexed name for new pod (PR #3028)
  • Add restart button after enabling / disabling mac os compatibility (PR #2841)
  • Add environment related helper constants (PR #3079)
  • Allow entrypoint and cmd when starting container (PR #3031)
  • Add a way to debug stores in troubleshooting page (PR #3121)
  • Add custompick component (#2855) (PR #3012)
  • Dynamic breadcrumbs (PR #3119)
  • Icons on form pages (PR #3155)
  • Switch more pages to formpage (PR #3162)
  • Add rename image button (PR #2588)
  • Fixed headers, improved scrollbars (PR #2863)
  • Reports warnings on failed kube deploy, fixes error out (PR #3050)
  • Kube context on statusbar (PR #2755)
  • Install provider if not installed when clicking on create new button (#2706) (PR #2817)
  • Add tag and authenticated push capacity to the extension API (PR #2876)
  • Add navigation bar e2e tests (PR #2950)

Documentation Updates

  • Fix documentation for building image of extensions (PR #2873)
  • Add Minikube install docs (PR #2824)
  • Add Minikube documentation (PR #2694)
  • Updated Building an image procedure (PR #2964)
  • Starting a container (PR #2958)
  • Pulling an image (PR #2956)
  • Updated selecting containers to run in a pod (PR #2970)
  • Pushing an image to a registry (PR #2969)
  • How to add an insecure registry (PR #2953)
  • Add documentation for lima (PR #2995)
  • Replace broken link to podman.io (PR #2994)
  • Authenticating to a pre-configured registry (PR #2965)
  • Lima is not a container engine (PR #3051)
  • Using the Troubleshooting page (PR #3083)
  • View and select your current Kubernetes context in the status bar (PR #3090)

Notable Bug Fixes

  • Deleting a running pod generates an error (PR #2827)
  • If kubeconfig is empty, does not try to do things, cancel (PR #2874)
  • Async telemetry startup (PR #2885)
  • Do not block startup while waiting for kube resource refresh (PR #2884)
  • Images list too wide (PR #2918)
  • Compose deactivate function never called (PR #2922)
  • Auto-scrolling on form pages, layout issues (PR #2927)
  • Show current context in quick pick (PR #2920)
  • Remove sticky position of loader in dashboard UI (#2535) (PR #2959)
  • Undo change that broke the website (PR #2992)
  • Detailspage, resizing & consistency (PR #2987)
  • Quick pick click to close and over nav bar (PR #2758)
  • Only show empty screen when no pods (PR #2929)
  • Do not redirect to /pods when deleting pod in containerlist (PR #2963)
  • Bulk delete on pods should call the pod deletion (PR #2979)
  • Update nodejs version to 18 in .nvmrc to fix yarn install failure (PR #2989)
  • Website check targets (PR #2996)
  • Don't show exception to user (PR #3034)
  • Interpret arguments given to info command for example (PR #3015)
  • Change defaults for Podman machine (PR #3061)
  • Normalize development/production folders path (PR #3113)
  • Calculate machine socket path for linux (PR #3070)
  • Replace backslash with slash so to support rendering on Windows (#3120) (PR #3122)
  • Keep stdout and stderr in the error object for Docker Desktop extensions (PR #3014)
  • Mark task completed if there's a failure (PR #3016)
  • Handle invalid kubeconfig file (PR #3129)
  • Do not remove registries when podman extension is stopping (PR #3136)
  • Warning should be amber (PR #3153)
  • Load user extensions from plugins as removable (PR #3152)
  • Images with spaces in entrypoints or commands fail to start (PR #3161)
  • Scrolling offscreen when clicking checkbox (PR #3178)
  • Avoid messagebox expanding offscreen (PR #2778)
  • Release-notes-generator run failure (PR #2752)
  • Unable to do a new build if the previous one failed (PR #2721)

Community Thank You

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

A big shoutout to @afbjorklund, @tuckerrc and @evanshortiss who contributed to this release!


Final notes

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

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.

· 3 min read
Tim deBoer

Podman Desktop 1.1 Release! 🎉

This is primarily a bug-fix release to fix a few important issues, but we've managed to squeeze in a few enhancements along the way.

  • Podman 4.5.1: Podman 4.5.1 now included in Windows and Mac installers.
  • Extensions: Update extensions from within Podman Desktop.
  • Lima Support: Choose engine type and override its name from the settings.
  • UX and UI Improvements: New loading screen.

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

Podman-desktop-1-1-hero

· 5 min read
Tim deBoer

Podman Desktop 1.0 Release! 🎉

We still have many things planned, but with a little polish and a few more bug fixes we felt we've reached a level of maturity and it is now time to declare our 1.0 release.

Thank you to everyone who has been with us on this journey so far! Please keep the @@ -29,7 +29,7 @@ of Podman Desktop: not just local container engines, but Kubernetes too. More im providing tools that allow you to manage both environments and seamlessly move between them.

Some of these features were available in development mode over the last few releases, but since they are now in the release build, we will do a full roundup and talk about all the Kind features.

  • Kind Installation: Install Kind from the status bar
  • Manage Kind Clusters: Create and manage Kind clusters from Settings > Resources
  • Using Kind: Deploying YAML and sharing images to a cluster
  • Kind Ingress: Install a Contour ingress controller
  • UX and UI Improvements: Updated preferences and telemetry prompt

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

Podman-desktop-0-14-hero

· 4 min read
Tim deBoer

This release note covers Podman Desktop 0.13 release changes.

  • Podman Version: Podman 4.4.4 now included in Windows and Mac installers.
  • Compose: Support for installing Docker Compose.
  • Extensions: Improved extension support for Podman Desktop with additional capabilities.
  • UX and UI Improvements: Welcome page, task manager, resources, and update alerts.

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

Podman-desktop-0-13-hero

· 5 min read
Stevan Le Meur

This release note covers Podman Desktop 0.12 release changes.

  • Podman Version: Podman 4.4.1 now included in Windows and Mac installers.
  • Containers Configuration: Configure port mappings for an image without exported ports.
  • Windows Home Support: Podman Desktop now supports Windows Home Edition.
  • Start minimized: Option to start Podman Desktop minimized to system tray.
  • UX and UI Improvements: Consistent actions, placeholder for logs, unified icons and others.

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

podman-desktop-0-12-hero

· 10 min read
Stevan Le Meur

This release note covers Podman Desktop 0.11 release changes.

  • Air-Gapped Installation: New all-in-one binaries for air-gapped installation.
  • Feedback: Submit feedback directly from Podman Desktop.
  • Docker Compatibility Mode: Information about the Docker compatibility mode.
  • Proxy Setting: Toggle on/off the proxy setting.
  • Deploy to Kubernetes: Select the namespace to deploy to Kubernetes.
  • Registry Configuration: Simplified registry configuration for well known registries.
  • UX/UI Improvements: View pod's container logs, better visual feedback, configurable editor font size, and more.

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

· 5 min read
Dev Kumar

This release note covers Podman Desktop 0.10 release changes.

  • Containers Configuration: Container creation wizzard allowing to define environment variables, networking and more configuration options.
  • Kubernetes Improvements: Play Kubernetes YAML, custom Kubeconfig path support, reload of kube context.
  • Registries Configuration: Revamped registries configuration UI.
  • Podman Version: Podman 4.3.1 now included in Windows and Mac installers.
  • UX/UI Improvements: Improved lists, better contrast, and more.

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

- + \ No newline at end of file diff --git a/blog/tags/story.html b/blog/tags/story.html index e2f12e66717..7e69c51a623 100644 --- a/blog/tags/story.html +++ b/blog/tags/story.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/core-values.html b/core-values.html index ffc782a4793..7969f342696 100644 --- a/core-values.html +++ b/core-values.html @@ -13,13 +13,13 @@ - +

Podman Desktop: Core Values

Podman Desktop is designed and built with the following core values in mind.

Fast and Light

Daemon-less and using the fastest technologies to make Podman Desktop fast to use.

Reactive and light on resources utilized from your environment.

Open

While focusing on Podman as a container engine packaged by default, Podman Desktop also enables other container engines.

This gives the end-user a single tool to manage all their containers independently from the engine used.

Simple

Managing a container engine locally can be hard.

Running Kubernetes in a local environment requires knowledge.

Podman Desktop takes care of this complexity and enables developers to focus on their code.

Extensible Workflow

Podman Desktop provides extensions points to enable the community to build more features.

This allows more in-deep integrations with other tools and technologies to extend workflows and capabilities of the tool.

Thus giving the developer a single tool to manage all their containers independently from the engine used.

- + \ No newline at end of file diff --git a/docs/compose.html b/docs/compose.html index 5039511d795..bf5d4b38a71 100644 --- a/docs/compose.html +++ b/docs/compose.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/compose/running-compose.html b/docs/compose/running-compose.html index a0a7bf64344..922a222e7bb 100644 --- a/docs/compose/running-compose.html +++ b/docs/compose/running-compose.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/compose/setting-up-compose.html b/docs/compose/setting-up-compose.html index 75c66d9c3d4..8f3566a7d76 100644 --- a/docs/compose/setting-up-compose.html +++ b/docs/compose/setting-up-compose.html @@ -13,13 +13,13 @@ - +

Setting up Compose

Podman Desktop can install the Compose engine.

Procedure

  1. Install the Compose engine: in the Podman Desktop status bar, click Compose, and follow the prompts.
  2. To use the Compose engine from your terminal, set the DOCKER_HOST variable.

Verification

  1. Open a terminal.

  2. The Compose reference implementation is in your PATH, therefore, you can display the Compose engine version:

    $ docker-compose version
  3. The DOCKER_HOST variable is set:

    $ env | grep DOCKER_HOST

Additional resources

- + \ No newline at end of file diff --git a/docs/extensions.html b/docs/extensions.html index b62f76bd6c1..0dffa50c180 100644 --- a/docs/extensions.html +++ b/docs/extensions.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/extensions/install.html b/docs/extensions/install.html index 0919d514aab..4a96a154576 100644 --- a/docs/extensions/install.html +++ b/docs/extensions/install.html @@ -13,13 +13,13 @@ - +

Installing a Podman Desktop extension

Consider installing Podman Desktop extensions to enrich the default capabilities of Podman Desktop.

Prerequisites

Procedure

  1. Go to the Settings > Extensions.

  2. In the Name of the Image field, write the extension OCI image name.

  3. Click the Install extension from the OCI image button.

Verification

  • If Podman Desktop satisfies the minimum required version of the extension, the extension activates.

  • Depending on the extension, items can appear in the status bar, tray menu, or other contributions.

- + \ No newline at end of file diff --git a/docs/extensions/publish.html b/docs/extensions/publish.html index 9c6948713ab..14ca6e60672 100644 --- a/docs/extensions/publish.html +++ b/docs/extensions/publish.html @@ -13,7 +13,7 @@ - + @@ -21,7 +21,7 @@

Packaging and publishing a Podman Desktop extension

To enable users to install your extension, consider publishing your extension to an Open Container Initiative (OCI) image registry.

Prerequisites

  • The extension builds successfully. See Writing a Podman Desktop extension.

  • All runtime dependencies are inside the final binary.

  • An OCI image registry to publish to, such as quay.io/fbenoit/my-first-extension.

  • (Optional) The OCI image registry is public to enable anybody to fetch the image.

Procedure

  1. Create and edit a Containerfile file.

  2. Use a scratch image. The extension requires no runtime:

    FROM scratch
  3. Apply mandatory Podman Desktop metadata on the OCI image:

    LABEL org.opencontainers.image.title="My first extension" \
    org.opencontainers.image.description="Example of extension" \
    org.opencontainers.image.vendor="podman-desktop" \
    io.podman-desktop.api.version=">= 0.12.0"

    io.podman-desktop.api.version=">= 0.12.0" sets the minimal Podman Desktop version that the extension requires to run.

  4. Copy the extension assembly, including the metadata, icon, and production binary, to the /extension folder inside the image:

    COPY package.json /extension/
    COPY icon.png /extension/
    COPY dist /extension/dist
  5. Build an image:

    $ podman build -t quay.io/fbenoit/my-first-extension .
  6. Push the image and manifest to the OCI image registry:

    $ podman push quay.io/fbenoit/my-first-extension

Next steps

- + \ No newline at end of file diff --git a/docs/extensions/write.html b/docs/extensions/write.html index 88730d56dda..facb01d87a0 100644 --- a/docs/extensions/write.html +++ b/docs/extensions/write.html @@ -13,13 +13,13 @@ - +

Writing a Podman Desktop extension

To write a Podman Desktop extension, start a Node.js or TypeScript project calling the Podman Desktop API, and ensure all runtime dependencies are inside the final binary.

Initializing a Podman Desktop extension

Write the Podman Desktop extension Node.js package metadata.

Prerequisites

  • JavaScript or TypeScript

Procedure

  1. Create and edit a package.json file.

    {}
  2. Add TypeScript and Podman Desktop API to the development dependencies:

     "devDependencies": {
    "@podman-desktop/api": "latest",
    "typescript": "latest"
    },
  3. Add the required metadata:

      "name": "my-extension",
    "displayName": "My Hello World extension",
    "description": "How to write my first extension",
    "version": "0.0.1",
    "icon": "icon.png",
    "publisher": "benoitf",
  4. Add the Podman Desktop version that might run this extension:

      "engines": {
    "podman-desktop": "latest"
    },
  5. Add the main entry point:

     "main": "./dist/extension.js"
  6. Add a Hello World command contribution

      "contributes": {
    "commands": [
    {
    "command": "my.first.command",
    "title": "My First Extension: Hello World"
    }
    ]
    }
  7. Add an icon.png file to the project.

Verification

  • Full package.json example:

    {
    "devDependencies": {
    "@podman-desktop/api": "latest",
    "typescript": "latest"
    },
    "name": "my-extension",
    "displayName": "My Hello World extension",
    "description": "How to write my first extension",
    "version": "0.0.1",
    "icon": "icon.png",
    "publisher": "benoitf",
    "engines": {
    "podman-desktop": "latest"
    },
    "main": "./dist/extension.js",
    "contributes": {
    "commands": [
    {
    "command": "my.first.command",
    "title": "My First Extension: Hello World"
    }
    ]
    }
    }

Writing a Podman Desktop extension entry point

Write the extension features.

Prerequisites

  • JavaScript or TypeScript

Procedure

  1. Create and edit a dist/extension.js file.

  2. Import the Podman Desktop API

    import * as podmanDesktopAPI from '@podman-desktop/api';
  3. Expose the activate function to call on activation.

    The signature of the function can be:

    • Synchronous

      export function activate(): void;
    • Asynchronous

      export async function activate(): Promise<void>;
  4. (Optional) Add an extension context to the activate function enabling the extension to register disposable resources:

    export async function activate(extensionContext: podmanDesktopAPI.ExtensionContext): Promise<void> {}
  5. Register the command and the callback

    import * as podmanDesktopAPI from '@podman-desktop/api';
    export async function activate(extensionContext: podmanDesktopAPI.ExtensionContext): Promise<void> {
    // register the command referenced in package.json file
    const myFirstCommand = podmanDesktopAPI.commands.registerCommand('my.first.command', async () => {
    // display a choice to the user for selecting some values
    const result = await podmanDesktopAPI.window.showQuickPick(['un', 'deux', 'trois'], {
    canPickMany: true, // user can select more than one choice
    });

    // display an information message with the user choice
    await podmanDesktopAPI.window.showInformationMessage(`The choice was: ${result}`);
    });

    // create an item in the status bar to run our command
    // it will stick on the left of the status bar
    const item = podmanDesktopAPI.window.createStatusBarItem(podmanDesktopAPI.StatusBarAlignLeft, 100);
    item.text = 'My first command';
    item.command = 'my.first.command';
    item.show();

    // register disposable resources to it's removed when we deactivte the extension
    extensionContext.subscriptions.push(myFirstCommand);
    extensionContext.subscriptions.push(item);
    }
  6. (Optional) Expose the deactivate function to call on deactivation.

    The signature of the function can be:

    • Synchronous

      export function deactivate(): void;
    • Asynchronous

      export async function deactivate(): Promise<void>;

Verification

  • The extension compiles and produces the output in the dist folder.

  • All runtime dependencies are inside the final binary.

Additional resources

  • Consider a packer such as Rollup or Webpack to shrink the size of the artifact.

Next steps

- + \ No newline at end of file diff --git a/docs/extensions/write/when-clause-context.html b/docs/extensions/write/when-clause-context.html index 9e112816bc6..04c356198e9 100644 --- a/docs/extensions/write/when-clause-context.html +++ b/docs/extensions/write/when-clause-context.html @@ -13,13 +13,13 @@ - +

When clause contexts

Podman Desktop uses when clauses to enable or disable extensions command and UI customizations, such as views.

For example, the Kind extension adds a custom icon to a container that has a label equals to io.x-k8s.kind.cluster by using the following instruction.

"views": {
"icons/containersList": [
{
"when": "io.x-k8s.kind.cluster in containerLabelKeys",
"icon": "${kind-icon}"
}
]
}

A when clause can consist of a context key (such as isLinux) or complex expressions to define a specific state.

Available context keys

Podman Desktop has a set of context keys that are evaluated to Boolean true/false.

Context keyTrue when
Operating system contexts
isLinuxTrue when the OS is Linux.
isWindowsTrue when the OS is Windows.
isMacTrue when the OS is macOS.

Podman Desktop also provides context keys that return values that can be used to create meaningful expressions

Context keyValue in it
containerLabelKeysA list of all labels belonging to the current container. Example: "value in containerLabelKeys"

Add a custom when clause context

If you are creating your own extension and none of the existing keys suit your needs, you can set your own context key by calling the function setValue(key: string, value: any, scope?: 'onboarding') provided by the context namespace in the Podman Desktop API.

The scope, if specified, triggers a custom behavior to avoid any type of collisions between different extensions for that specific scope. Podman Desktop is responsible for handling its state and cleans it accordingly when necessary.

If omitted, the key/value is set globally. For this reason it is recommended to use the extension id as part of the key to avoid unexpected collisions with other extensions.

The first example below sets the key "podmanIsInstalled" to true globally while the second example sets the key "toolInstalled" to oc.exe using the onboarding scope.

   extensionsAPI.context.setValue('podmanIsInstalled', true);

extensionsAPI.context.setValue('toolInstalled', 'oc.exe', 'onboarding');

After setting the toolInstalled to oc.exe, you could use this information in the when clause to enable something

{
"when": "onboardingContext:toolInstalled == oc.exe"
}

Conditional operators

To create when clauses a bit more complex Podman Desktop offers a set of operators that can be combined with each other.

Logical operators

Logical operators allow combining simple context keys or when-clause expressions that include other operators

OperatorSymbolExample
Not!!podmanIsInstalled or !(podmanIsInstalled && isWindows)
And&&podmanIsInstalled && isWindows
Or\|\|isLinux \|\| isWindows

Equality operators

Equality operators allow checking for equality of a context key's value againt a specified value.

Note: the right side is a value and not considered as a context key, so no value is searched in the context. If it contains whitespaces, it must be wrapped in single-quotes (for example 'my tool.exe')

OperatorSymbolExample
Equality==onboardingContext:toolInstalled == oc.exe
Inequality!=onboardingContext:toolInstalled != oc.exe

Comparison operators

Comparison operator allow comparing a context key's value against a number.

Note: the left and right side of the operator must be separated by whitespace - bar < 2, but not bar<2

OperatorSymbolExample
Greater than>, >=onboardingContext:toolInstalled > 2
Less than<, <=onboardingContext:toolInstalled <= 3

In and not in

The in/not in operators allow checking if a value exists/not exists within the other. The right should be a context key, which value is retrieved in the context. The left can be a value or a context key.

OperatorSymbolExample
Ininlabel in containerLabelKeys
Notnot inlabel not in containerLabelKeys

Match operator

The match operator allow treating the right side item as a regular expression literal to match against the left side.

OperatorSymbolExample
Matches=~label =~ /podman$/
- + \ No newline at end of file diff --git a/docs/installation.html b/docs/installation.html index a615ca55b7a..d59ae40327c 100644 --- a/docs/installation.html +++ b/docs/installation.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/installation/linux-install.html b/docs/installation/linux-install.html index ef5fa0549c6..7016729109b 100644 --- a/docs/installation/linux-install.html +++ b/docs/installation/linux-install.html @@ -13,13 +13,13 @@ - +

Installing Podman Desktop on Linux

Consider installing the Podman Desktop from Flathub to have:

  • One command installation
  • Package updates

Alternatively, you can install Podman Desktop from:

Prerequisites

Procedure

  1. Verify the Flathub repository is enabled, and add it if required:

    $ flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
  2. Install Podman Desktop from Flathub:

    $ flatpak install --user flathub io.podman_desktop.PodmanDesktop

Verification

  • Open Podman Desktop from a terminal:

    $ flatpak run io.podman_desktop.PodmanDesktop

Update

  • Update Podman Desktop from Flathub:

    $ flatpak update --user io.podman_desktop.PodmanDesktop

Additional resources

Next steps

- + \ No newline at end of file diff --git a/docs/installation/linux-install/installing-podman-desktop-from-a-compressed-tar-file.html b/docs/installation/linux-install/installing-podman-desktop-from-a-compressed-tar-file.html index 09e249e6953..d8c350bd5a5 100644 --- a/docs/installation/linux-install/installing-podman-desktop-from-a-compressed-tar-file.html +++ b/docs/installation/linux-install/installing-podman-desktop-from-a-compressed-tar-file.html @@ -13,14 +13,14 @@ - +

Installing Podman Desktop from a compressed tar file

Consider installing from an archive rather than from Flathub, or from a Flatpak bundle when:

  • You cannot use Flatpak.
  • You install in a restricted environment.

Prerequisites

Procedure

  1. Download the podman-desktop-<version>.tar.gz archive from the Git repository release assets.
  2. Extract the content.
  3. Go to the extracted directory.
  4. Double-click on the podman-desktop executable file.

Next steps

- + \ No newline at end of file diff --git a/docs/installation/linux-install/installing-podman-desktop-from-a-flatpak-bundle.html b/docs/installation/linux-install/installing-podman-desktop-from-a-flatpak-bundle.html index 27609eb5666..a1a0178cf9f 100644 --- a/docs/installation/linux-install/installing-podman-desktop-from-a-flatpak-bundle.html +++ b/docs/installation/linux-install/installing-podman-desktop-from-a-flatpak-bundle.html @@ -13,13 +13,13 @@ - +

Installing Podman Desktop from a Flatpak bundle

Consider installing a Flatpak bundle rather than from Flathub when:

  • You cannot use Flathub.
  • You want to install an unreleased version.

Prerequisites

Procedure

  1. Download the Flatpak bundle to a $HOME/Downloads/podman-desktop-<version>.flatpak file from:

  2. Install Podman Desktop from the downloaded Flatpak bundle:

    $ flatpak install --user $HOME/Downloads/podman-desktop-<version>.flatpak

Verification

  • Open Podman Desktop from a terminal:

    $ flatpak run io.podman_desktop.PodmanDesktop

Additional resources

Next steps

- + \ No newline at end of file diff --git a/docs/installation/macos-install.html b/docs/installation/macos-install.html index a3c161106e9..e3859a54e96 100644 --- a/docs/installation/macos-install.html +++ b/docs/installation/macos-install.html @@ -13,14 +13,14 @@ - +

MacOS

This page contains information regarding installation of Podman Desktop on MacOS.

You can install Podman Desktop on Mac:

  1. Using the .dmg file
  2. Using Brew
Prerequisite

Podman Desktop requires Podman Engine. If you don't have Podman Engine installed, Podman Desktop will prompt you to do so at a later stage.

Installing Podman Desktop on MacOS using .dmg file

  1. Download the .dmg file from the Downloads section of this website.

    While we recommend getting the "universal" binary file which will work irrespective of the chip architecture your Mac possesses, you also have the option to get the applicable .dmg file depending on your Mac Hardware Architecture (that is Intel or Apple M1).

  2. Locate the downloaded file, and double-click on it. (Usually, you will find the downloaded file in the Downloads folder)

    img0

  3. Drag Podman Desktop icon to the Applications folder.

    img1

  4. Start Podman Desktop from the 'Launchpad' or Mac's Applications directory.

    img2

  5. Install Podman from Podman Desktop, if not yet installed.

    When you open Podman Desktop for the first time, click on the "View detection checks" button to scan if all the prerequisites to use Podman Desktop are met. If it says ❌ podman cli was not found in the PATH, then you need to install the Podman CLI/Engine which can be done within the application.

    img3

  6. Click on the "Install" button next to the "View detection checks" button, and follow the instructions on screen.

  7. You will be redirected to the Podman Installer. Follow the instructions on screen and enter your system password when asked.

    img4

  8. After the installation is complete, close the installation program. Podman Engine has been installed and you are now ready to use Podman Desktop.

Installing Podman Desktop on MacOS using brew

Prerequisite

Installation steps

  1. Open a terminal on your Mac.

  2. Run the command mentioned below.

    brew install podman-desktop

    Brew will also install the Podman Engine along with the Podman Desktop application, in case you don't have it installed yet.

    After the command is executed, you can find the Podman Desktop Application within the Applications directory of the MacOS.

Getting Started

Learn more on how to get started with Podman Desktop by clicking here.

- + \ No newline at end of file diff --git a/docs/installation/windows-install.html b/docs/installation/windows-install.html index b4dbba2c0ea..aa84b51d099 100644 --- a/docs/installation/windows-install.html +++ b/docs/installation/windows-install.html @@ -13,13 +13,13 @@ - +
- + \ No newline at end of file diff --git a/docs/installation/windows-install/installing-podman-desktop-and-podman-in-a-restricted-environment.html b/docs/installation/windows-install/installing-podman-desktop-and-podman-in-a-restricted-environment.html index 9e239b142d6..112fff68763 100644 --- a/docs/installation/windows-install/installing-podman-desktop-and-podman-in-a-restricted-environment.html +++ b/docs/installation/windows-install/installing-podman-desktop-and-podman-in-a-restricted-environment.html @@ -13,13 +13,13 @@ - +

Installing Podman Desktop and Podman in a restricted environment

Consider using the Windows installer for restricted environments to install the Podman Desktop and Podman in a restricted environment.

The Windows installer for restricted environments:

  • Has all artifacts required to install Podman Desktop and Podman.
  • Does not require Internet access to download resources during installation.
  • Does not contain additional utilities such as Compose or Kind.

Prerequisites

Procedure

  1. Download the Windows installer for restricted environments, and copy the downloaded file to the Windows host in a restricted environment.
  2. Run the Windows installer for restricted environments to install Podman Desktop.
  3. Open Podman Desktop and click the Install button to install Podman.
  4. (Optionally) Configure Podman Desktop to run behind your proxy.
  5. (Optionally) Configure Podman to run behind your VPN.
  6. Create and start a Podman machine

Next steps

- + \ No newline at end of file diff --git a/docs/installation/windows-install/installing-podman-desktop-silently-with-the-windows-installer.html b/docs/installation/windows-install/installing-podman-desktop-silently-with-the-windows-installer.html index 3e085cb39f2..800284e27a2 100644 --- a/docs/installation/windows-install/installing-podman-desktop-silently-with-the-windows-installer.html +++ b/docs/installation/windows-install/installing-podman-desktop-silently-with-the-windows-installer.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/installation/windows-install/installing-podman-desktop-with-chocolatey.html b/docs/installation/windows-install/installing-podman-desktop-with-chocolatey.html index ea113df9b63..8f8325803dc 100644 --- a/docs/installation/windows-install/installing-podman-desktop-with-chocolatey.html +++ b/docs/installation/windows-install/installing-podman-desktop-with-chocolatey.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/installation/windows-install/installing-podman-desktop-with-scoop.html b/docs/installation/windows-install/installing-podman-desktop-with-scoop.html index 9329c124643..a6d8be4894e 100644 --- a/docs/installation/windows-install/installing-podman-desktop-with-scoop.html +++ b/docs/installation/windows-install/installing-podman-desktop-with-scoop.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/installation/windows-install/installing-podman-desktop-with-winget.html b/docs/installation/windows-install/installing-podman-desktop-with-winget.html index 7d56a9a5b20..c68b2e5121b 100644 --- a/docs/installation/windows-install/installing-podman-desktop-with-winget.html +++ b/docs/installation/windows-install/installing-podman-desktop-with-winget.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/intro.html b/docs/intro.html index abd81efc66a..140a8fe5158 100644 --- a/docs/intro.html +++ b/docs/intro.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/kubernetes.html b/docs/kubernetes.html index 3945135885a..732dc8228b4 100644 --- a/docs/kubernetes.html +++ b/docs/kubernetes.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/kubernetes/configuring-access-to-a-kubernetes-cluster.html b/docs/kubernetes/configuring-access-to-a-kubernetes-cluster.html index 984cbd1acb6..961059e0c1f 100644 --- a/docs/kubernetes/configuring-access-to-a-kubernetes-cluster.html +++ b/docs/kubernetes/configuring-access-to-a-kubernetes-cluster.html @@ -13,13 +13,13 @@ - +

Configuring access to a Kubernetes cluster

Podman Desktop configures the access to Kubernetes clusters automatically when:

You can also use the Kubernetes CLI to configure access to your Kubernetes cluster:

Prerequisites

  • You have credentials for your Kubernetes cluster.

Procedure

  1. (Optionally) Go to Settings > Preferences > Path to the kubeconfig file to adapt your kubeconfig file location, when different from the default $HOME/.kube/config.

  2. Register your <my_kubernetes> Kubernetes cluster:

    $ kubectl config set-cluster <my_kubernetes> --server=<my_kubernetes_url>

Verification

Additional resopurces

- + \ No newline at end of file diff --git a/docs/kubernetes/deploying-a-container-to-kubernetes.html b/docs/kubernetes/deploying-a-container-to-kubernetes.html index 0eb9df3fb85..95c24bb2bd1 100644 --- a/docs/kubernetes/deploying-a-container-to-kubernetes.html +++ b/docs/kubernetes/deploying-a-container-to-kubernetes.html @@ -13,13 +13,13 @@ - +

Deploying a container to Kubernetes

With Podman Desktop, you can deploy a container to your Kubernetes cluster.

Prerequisites

  • Your are using the Podman container engine.
  • Your container, running or stopped, is available on the Containers page: <your_container>.
  • You registered the Kubernetes cluster in your kubeconfig file: <your_kubernetes_cluster>. For example, Creating a kind cluster.
  • The Kubernetes namespace to deploy to already exists.

Procedure

  1. Click Podman Desktop tray > Kubernetes > Context > <your_kubernetes_cluster> to set your Kubernetes context.
  2. Open Podman Desktop dashboard > Containers > <your_container> to see the Container Details page.
  3. Click to generate a Kubernetes pod.
  4. On the Deploy generated pod to Kubernetes screen, choose your options:
    1. Pod Name: edit the proposed name.
    2. Use Kubernetes Services: enable or disable Replace hostPort exposure on containers by Services. It is the recommended way to expose ports, as a cluster policy might prevent to use hostPort.
    3. Kubernetes namespace: select in the list the namespace to deploy the pod to.
  5. Click the Deploy button.

Verification

  • On the Deploy generated pod to Kubernetes screen, the created pod status is Phase: Running

    Deploying a container

  • Go to Containers: your pod is in the list.

- + \ No newline at end of file diff --git a/docs/kubernetes/deploying-a-pod-to-kubernetes.html b/docs/kubernetes/deploying-a-pod-to-kubernetes.html index d1d55215c25..4c0d8b505ea 100644 --- a/docs/kubernetes/deploying-a-pod-to-kubernetes.html +++ b/docs/kubernetes/deploying-a-pod-to-kubernetes.html @@ -13,13 +13,13 @@ - +

Deploying a pod to Kubernetes

With Podman Desktop, you can deploy a pod to your Kubernetes cluster.

Prerequisites

  • Your are using the Podman container engine.
  • Your pod, running or stopped, is available on the Pods page: <your_pod>.
  • You registered the Kubernetes cluster in your kubeconfig file: <your_kubernetes_cluster>. For example, Creating a kind cluster.
  • The Kubernetes namespace to deploy to already exists.

Procedure

  1. Click Podman Desktop tray > Kubernetes > Context > <your_kubernetes_cluster> to set your Kubernetes context.
  2. Open Podman Desktop dashboard > Pods > <your_pod> to see the Pod Details page.
  3. Click to generate a Kubernetes pod.
  4. On the Deploy generated pod to Kubernetes screen, choose your options:
    1. Pod Name: edit the proposed name.
    2. Use Kubernetes Services: enable or disable Replace hostPort exposure on containers by Services. It is the recommended way to expose ports, as a cluster policy might prevent to use hostPort.
    3. Kubernetes namespace: select in the list the namespace to deploy the pod to.
  5. Click the Deploy button.

Verification

  • On the Deploy generated pod to Kubernetes screen, the created pod status is Phase: Running

    Deplying a pod

  • Go to Pods: your pod is in the list.

- + \ No newline at end of file diff --git a/docs/kubernetes/kind.html b/docs/kubernetes/kind.html index 3203492ac9e..812f3850e0c 100644 --- a/docs/kubernetes/kind.html +++ b/docs/kubernetes/kind.html @@ -13,13 +13,13 @@ - +
- + \ No newline at end of file diff --git a/docs/kubernetes/kind/building-an-image-and-testing-it-in-kind.html b/docs/kubernetes/kind/building-an-image-and-testing-it-in-kind.html index 63fb730fff6..b047422bb6f 100644 --- a/docs/kubernetes/kind/building-an-image-and-testing-it-in-kind.html +++ b/docs/kubernetes/kind/building-an-image-and-testing-it-in-kind.html @@ -13,13 +13,13 @@ - +

Building an image and testing it in Kind

With Podman Desktop, you can build an image with your container engine, and test it in your local Kind-powered Kubernetes cluster.

Prerequisites

Procedure

  1. Build your image:

    1. Open Images > Build an image.
    2. Containerfile path: select your Containerfile or Dockerfile.
    3. Build context directory: optionally, select a directory different from the directory containing your Containerfile or Dockerfile.
    4. Image Name: enter your image name my-custom-image.
    5. Click Build.
    6. Wait for the image build to finish.
    7. Click Done to get back to the images list.
  2. Push your image to your Kind cluster:

    1. Search images: enter your image name my-custom-image to find the image.
    2. Click > Push image to Kind cluster.
  3. Test your image by creating a container:

    1. Click to open the Create a container from image dialog.
    2. Container name: enter my-custom-image-container.
    3. Review the parameters that Podman Desktop has detected from your image definition.
    4. Click Start Container to start the container in your container engine.
  4. Test your image and container on your Kind cluster:

    1. Search containers: enter my-custom-image-container to find the running container.
    2. Click > Deploy to Kubernetes to open the Deploy generated pod to Kubernetes screen.
    3. Pod Name: keep the proposed value my-custom-image-container-pod.
    4. Use Kubernetes Services: select Replace hostPort exposure on containers by Services. It is the recommended way to expose ports, as a cluster policy might prevent to use hostPort.
    5. Expose service locally using Kubernetes Ingress: if your container is exposing at a port, select Create a Kubernetes ingress to get access to the ports that this pod exposes, at the default ingress controller location. Example: on a default Kind cluster created with Podman Desktop: http://localhost:9090. Requirements: your cluster has an ingress controller`.
    6. Optionally, if your container is exposing more than one port, select the port to expose.
    7. Kubernetes namespaces: select default.
    8. Click Deploy.
    9. Wait for the pod to reach the state: Phase: Running.
    10. Click Done.

Verification

  1. The Pods screen lists the running my-image-container-pod pod.
  2. Click on the pod name to view details and logs.
  3. Optionally, if your container is exposing a port, go to http://localhost:9090: your application is running.
- + \ No newline at end of file diff --git a/docs/kubernetes/kind/pushing-an-image-to-kind.html b/docs/kubernetes/kind/pushing-an-image-to-kind.html index b23ddb2b8c4..72cfc04fc2b 100644 --- a/docs/kubernetes/kind/pushing-an-image-to-kind.html +++ b/docs/kubernetes/kind/pushing-an-image-to-kind.html @@ -13,7 +13,7 @@ - + @@ -21,7 +21,7 @@

Pushing an image to your local Kind-powered Kubernetes cluster

With Podman Desktop, you can push an image to your local Kind-powered Kubernetes cluster.

Prerequisites

Procedure

  1. Open Podman Desktop dashboard > Images.
  2. Search images: <your_image>:<your_tag>.
  3. Click > Push image to Kind cluster.
  4. If you created many Kind clusters, select your Kind cluster from the list.

Verification

Kind does not enable you to list loaded images. Therefore, create a Pod that uses the loaded image.

  1. Create a verify_my_image.yaml Kubernetes YAML file on your workstation. Replace the placeholders:

    • Pod name and container name value must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character.
    • Container image value is the image you pushed.
    apiVersion: v1
    kind: Pod
    metadata:
    name: <verify-my-image>
    spec:
    containers:
    - name: <my-image>
    image: <my_image>:<my_tag>
    imagePullPolicy: Never
  2. Open Pods > Play Kubernetes YAML.

    1. Kubernetes YAML file: select your verify_my_image.yaml file.
    2. Select Runtime: Using a Kubernetes cluster.
    3. Click Play.
    4. Clik Done
  3. Open Pods.

  4. Search pods: <verify-my-image>.

  5. The pod Status is Running.

- + \ No newline at end of file diff --git a/docs/kubernetes/kind/working-with-your-local-kind-cluster.html b/docs/kubernetes/kind/working-with-your-local-kind-cluster.html index cd38cbe8041..12b0144faf9 100644 --- a/docs/kubernetes/kind/working-with-your-local-kind-cluster.html +++ b/docs/kubernetes/kind/working-with-your-local-kind-cluster.html @@ -13,13 +13,13 @@ - +
- + \ No newline at end of file diff --git a/docs/kubernetes/lima.html b/docs/kubernetes/lima.html index b95d2f4b0fe..ac2f8dd0f72 100644 --- a/docs/kubernetes/lima.html +++ b/docs/kubernetes/lima.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/kubernetes/minikube.html b/docs/kubernetes/minikube.html index 44cf31503fe..45b5fe4e1e1 100644 --- a/docs/kubernetes/minikube.html +++ b/docs/kubernetes/minikube.html @@ -13,13 +13,13 @@ - +
- + \ No newline at end of file diff --git a/docs/kubernetes/minikube/building-an-image-and-testing-it-in-minikube.html b/docs/kubernetes/minikube/building-an-image-and-testing-it-in-minikube.html index 2dc6cc94d9b..2e0c40a9c5d 100644 --- a/docs/kubernetes/minikube/building-an-image-and-testing-it-in-minikube.html +++ b/docs/kubernetes/minikube/building-an-image-and-testing-it-in-minikube.html @@ -13,13 +13,13 @@ - +

Building an image and testing it in Minikube

With Podman Desktop, you can build an image with your container engine, and test it in your local Minikube-powered Kubernetes cluster.

Prerequisites

  • Podman Desktop has access to:
    • A running container engine.
    • A running Minikube cluster.
  • A container definition file: Containerfile or Dockerfile.

Procedure

  1. Build your image:

    1. Open Images > Build an image.
    2. Containerfile path: select your Containerfile or Dockerfile.
    3. Build context directory: optionally, select a directory different from the directory containing your Containerfile or Dockerfile.
    4. Image Name: enter your image name my-custom-image.
    5. Click Build.
    6. Wait for the image build to finish.
    7. Click Done to get back to the images list.
  2. Push your image to your Minikube cluster:

    1. Search images: enter your image name my-custom-image to find the image.
    2. Click > Push image to Minikube cluster.
  3. Test your image by creating a container:

    1. Click to open the Create a container from image dialog.
    2. Container name: enter my-custom-image-container.
    3. Review the parameters that Podman Desktop has detected from your image definition.
    4. Click Start Container to start the container in your container engine.
  4. Test your image and container on your Minikube cluster:

    1. Search containers: enter my-custom-image-container to find the running container.
    2. Click > Deploy to Kubernetes to open the Deploy generated pod to Kubernetes screen.
    3. Pod Name: keep the proposed value my-custom-image-container-pod.
    4. Use Kubernetes Services: select Replace hostPort exposure on containers by Services. It is the recommended way to expose ports, as a cluster policy might prevent to use hostPort.
    5. Expose service locally using Kubernetes LoadBalancer: if your container is exposing a service, you can use minikube service to get a web browser or an URL to use.
    6. Optionally, if your container is exposing more than one port, select the port to expose.
    7. Kubernetes namespaces: select default.
    8. Click Deploy.
    9. Wait for the pod to reach the state: Phase: Running.
    10. Click Done.

Verification

  1. The Pods screen lists the running my-image-container-pod pod.
  2. Click on the pod name to view details and logs.
  3. Optionally, if your container is exposing a service, go to the server URL: your application is running.
- + \ No newline at end of file diff --git a/docs/kubernetes/minikube/configuring-podman-for-minikube-on-windows.html b/docs/kubernetes/minikube/configuring-podman-for-minikube-on-windows.html index f3dc50aa257..d138d39c0c7 100644 --- a/docs/kubernetes/minikube/configuring-podman-for-minikube-on-windows.html +++ b/docs/kubernetes/minikube/configuring-podman-for-minikube-on-windows.html @@ -13,13 +13,13 @@ - +

Configuring Podman for Minikube on Windows Subsystem for Linux (WSL)

When you create a Podman machine, Podman creates the machine in rootless mode.

With a Podman machine running on WSL, Minikube:

  • Requires a rootful machine.

Therefore, set the Podman machine to rootful mode.

Procedure

  1. Stop the Podman machine:

    $ podman machine stop
  2. Set the Podman machine in rooful mode:

    $ podman machine set --rootful
  3. Start the Podman machine:

    $ podman machine start
- + \ No newline at end of file diff --git a/docs/kubernetes/minikube/creating-a-minikube-cluster.html b/docs/kubernetes/minikube/creating-a-minikube-cluster.html index 53028a52db1..31a83bf67ad 100644 --- a/docs/kubernetes/minikube/creating-a-minikube-cluster.html +++ b/docs/kubernetes/minikube/creating-a-minikube-cluster.html @@ -13,13 +13,13 @@ - +

Creating a local Minikube-powered Kubernetes cluster

You can create multiple local Minikube-powered Kubernetes clusters.

Prerequisites

Procedure

  1. Go to Settings > Resources

  2. In the Minikube tile, click on the Create new ... button.

  3. Choose your options, and click the Create button.

    The defaults are:

    • Name: minikube
    • Driver: podman
    • Container runtime: cri-o
  4. (Optionally) Click the Show logs button to display the logs.

  5. After successful creation, click on the Go back to resources button

Verification

  1. In Settings > Resources, in the Minikube tile, your <minikube> instance is running.
  2. In the Podman Desktop tray, open the Kubernetes menu, you can set the context to your Minikube cluster: minikube.
- + \ No newline at end of file diff --git a/docs/kubernetes/minikube/deleting-your-minikube-cluster.html b/docs/kubernetes/minikube/deleting-your-minikube-cluster.html index 3c7aee17432..cec9d8a2047 100644 --- a/docs/kubernetes/minikube/deleting-your-minikube-cluster.html +++ b/docs/kubernetes/minikube/deleting-your-minikube-cluster.html @@ -13,13 +13,13 @@ - +
- + \ No newline at end of file diff --git a/docs/kubernetes/minikube/installing-minikube.html b/docs/kubernetes/minikube/installing-minikube.html index e4d1c9b9eff..69bc8897539 100644 --- a/docs/kubernetes/minikube/installing-minikube.html +++ b/docs/kubernetes/minikube/installing-minikube.html @@ -13,7 +13,7 @@ - + @@ -21,7 +21,7 @@
- + \ No newline at end of file diff --git a/docs/kubernetes/minikube/pushing-an-image-to-minikube.html b/docs/kubernetes/minikube/pushing-an-image-to-minikube.html index 8e8beb73327..c262097c90d 100644 --- a/docs/kubernetes/minikube/pushing-an-image-to-minikube.html +++ b/docs/kubernetes/minikube/pushing-an-image-to-minikube.html @@ -13,14 +13,14 @@ - +

Pushing an image to your local Minikube-powered Kubernetes cluster

With Podman Desktop, you can push an image to your local Minikube-powered Kubernetes cluster.

Prerequisites

Procedure

  1. Open Podman Desktop dashboard > Images.
  2. Search images: <your_image>:<your_tag>.
  3. Click > Push image to Minikube cluster.
  4. If you created many Minikube clusters, select your Minikube cluster from the list.

Verification

Minikube enables you to list loaded images, using:

$ minikube image list

You can also create a Pod that uses the loaded image:

  1. Create a verify_my_image.yaml Kubernetes YAML file on your workstation. Replace the placeholders:

    • Pod name and container name value must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character.
    • Container image value is the image you pushed.
    apiVersion: v1
    kind: Pod
    metadata:
    name: <verify-my-image>
    spec:
    containers:
    - name: <my-image>
    image: <my_image>:<my_tag>
    imagePullPolicy: Never
  2. Open Pods > Play Kubernetes YAML.

    1. Kubernetes YAML file: select your verify_my_image.yaml file.
    2. Select Runtime: Using a Kubernetes cluster.
    3. Click Play.
    4. Clik Done
  3. Open Pods.

  4. Search pods: <verify-my-image>.

  5. The pod Status is Running.

- + \ No newline at end of file diff --git a/docs/kubernetes/minikube/restarting-your-minikube-cluster.html b/docs/kubernetes/minikube/restarting-your-minikube-cluster.html index c0f5be6b34f..ddf1dc93e3f 100644 --- a/docs/kubernetes/minikube/restarting-your-minikube-cluster.html +++ b/docs/kubernetes/minikube/restarting-your-minikube-cluster.html @@ -13,7 +13,7 @@ - + @@ -22,7 +22,7 @@ Therefore, Podman Desktop stops the Minikube cluster, and starts it again. The Minikube cluster might not restart successfully. In that case:

- + \ No newline at end of file diff --git a/docs/kubernetes/minikube/working-with-your-local-minikube-cluster.html b/docs/kubernetes/minikube/working-with-your-local-minikube-cluster.html index 2b6e8f0ef05..c2cf7829802 100644 --- a/docs/kubernetes/minikube/working-with-your-local-minikube-cluster.html +++ b/docs/kubernetes/minikube/working-with-your-local-minikube-cluster.html @@ -13,13 +13,13 @@ - +
- + \ No newline at end of file diff --git a/docs/kubernetes/openshift.html b/docs/kubernetes/openshift.html index 3407a3278bb..d998dd3f4f7 100644 --- a/docs/kubernetes/openshift.html +++ b/docs/kubernetes/openshift.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/kubernetes/openshift/configuring-access-to-a-developer-sandbox.html b/docs/kubernetes/openshift/configuring-access-to-a-developer-sandbox.html index 599159a3dbb..e9dd46e0764 100644 --- a/docs/kubernetes/openshift/configuring-access-to-a-developer-sandbox.html +++ b/docs/kubernetes/openshift/configuring-access-to-a-developer-sandbox.html @@ -13,14 +13,14 @@ - +

Configuring access to a Developer Sandbox

The Developer Sandbox is a free, private OpenShift environment including one project and a resource quota of 14 GB RAM, and 40 GB storage. It lasts 30 days.

With Podman Desktop, you can configure access to your Developer Sandbox instances.

Prerequisites

Procedure

  1. Install the Developer Sandbox extension: go to Dashboard, and click Developer Sandbox .
  2. Go to Settings > Resources.
  3. In the Developer Sandbox tile, click Create new.
  4. In the Create a Developer Sandbox screen, click Log into Developer Sandbox.
  5. In the Open external website dialog, click Yes.
  6. In the Developer Sandbox website:
    1. Click Start your sandbox for free
    2. If you never used this service, you might get through a verification workflow.
    3. In the Login with... screen, click DevSandbox.
    4. In your Developer Sandbox Console, click on your login name > Copy login command from the menu.
    5. In the Login with... screen, click DevSandbox.
    6. Click Display Token.
    7. Copy the Log in with this token full login command, similar to: oc login --token=sha256~<token> --server=https://api.sandbox-m2.<sandbox_id>.openshiftapps.com:6443.
  7. Get back to Podman Desktop Create a Developer Sandbox screen.
    1. Context name: Enter a name such as Developer Sandbox.
    2. Login command: Paste the oc login command that you copied previously.
  8. The Creation screen displays Successful operation. Click Go back to Resources.

Verification

  1. On the Settings > Resources screen, your Developer Sandbox is running.

    Developer Sandbox is running

  2. Select your Developer Sandbox in the Podman Desktop tray

  3. Run basic tasks such as:

- + \ No newline at end of file diff --git a/docs/kubernetes/openshift/creating-an-openshift-local-cluster.html b/docs/kubernetes/openshift/creating-an-openshift-local-cluster.html index fe321f0f761..dd1d3c80604 100644 --- a/docs/kubernetes/openshift/creating-an-openshift-local-cluster.html +++ b/docs/kubernetes/openshift/creating-an-openshift-local-cluster.html @@ -13,13 +13,13 @@ - +

Creating an OpenShift Local instance

Red Hat OpenShift Local manages a minimal OpenShift or MicroShift cluster on your workstation for local development and testing.

With Podman Desktop and the OpenShift Local extension, you can manage your OpenShift Local instances.

Prerequisites

Procedure

  1. Install the OpenShift Local extension: on to Dashboard, click OpenShift Local .

  2. Install the OpenShift Local binaries, when on the Dashboard, you see Podman Desktop was not able to find an installation of OpenShift Local.

    1. In the OpenShift Local tile, click Install.
    2. When prerequisites are missing, follow the instructions.
    3. In the Red Hat OpenShift Local screen, click Yes to start the installation.
    4. Follow the installation program instructions.
    5. Reboot to finalize system changes.
  3. (Optionally) Review the extension settings in Settings > Preferences > Extension: Red Hat OpenShift Local.

  4. On the Dashboard, click Initialize and start.

    1. Select your OpenShift Local Virtual machine preset, if not set in Settings > Preferences > Extension: Red Hat OpenShift Local > Preset.

      • MicroShift (experimental): provides a lightweight and optimized environment with a limited set of services.
      • OpenShift: provides a single node OpenShift cluster with a fuller set of services, including a web console (requires more resources).
    2. Provide a pull secret, required to pull container images from the registry:

      1. Open the Red Hat OpenShift Local download page.
      2. Click Copy pull secret.
      3. Get back to Podman Desktop.
      4. Paste the pull secret, and press Enter.

Verification

  1. On the Dashboard screen, OpenShift Local is running.

  2. On the Settings > Resources screen, your OpenShift Local instance is running.

    Developer Sandbox is running

  3. Select your OpenShift Local instance the Podman Desktop tray.

  4. Run basic tasks such as:

Additional resources

- + \ No newline at end of file diff --git a/docs/kubernetes/viewing-and-selecting-current-kubernete-context-in-the-status-bar.html b/docs/kubernetes/viewing-and-selecting-current-kubernete-context-in-the-status-bar.html index 6eedfab5184..87fc9dcd2b4 100644 --- a/docs/kubernetes/viewing-and-selecting-current-kubernete-context-in-the-status-bar.html +++ b/docs/kubernetes/viewing-and-selecting-current-kubernete-context-in-the-status-bar.html @@ -13,14 +13,14 @@ - +

Viewing and selecting the current Kubernetes context

With Podman Desktop, you can view and select your current Kubernetes context in the status bar.

Prerequisites

  • You have a Kubernetes context in your kubeconfig file: <your_kubernetes_cluster>. For example, Creating a kind cluster.

Procedure

  1. To view your current Kubernetes context, in the Podman Desktop main window status bar, see the name next to the icon.

  2. (Optionally) To change your Kubernetes context:

    1. Click .
    2. In the drop-down menu, click the context name to activate.
- + \ No newline at end of file diff --git a/docs/kubernetes/viewing-and-selecting-current-kubernete-context.html b/docs/kubernetes/viewing-and-selecting-current-kubernete-context.html index d649ab029e8..1b512471a2e 100644 --- a/docs/kubernetes/viewing-and-selecting-current-kubernete-context.html +++ b/docs/kubernetes/viewing-and-selecting-current-kubernete-context.html @@ -13,14 +13,14 @@ - +

Viewing and selecting the current Kubernetes context

With Podman Desktop, you can view and select your current Kubernetes context.

Prerequisites

  • You have a Kubernetes context in your kubeconfig file: <your_kubernetes_cluster>. For example, Creating a kind cluster.

Procedure

  1. Open the Podman Desktop tray menu.

    In the task bar, click Show hidden icons.

    Podman Desktop tray

    Right-click the Podman Desktop tray icon to open the menu.

    Podman Desktop tray

  2. Click Kubernetes to see your current Kubernetes context.

    Podman Desktop tray

  3. (Optionally) To change your Kubernetes context, click on the context name to activate.

- + \ No newline at end of file diff --git a/docs/migrating-from-docker.html b/docs/migrating-from-docker.html index 8003bde5251..c9a2859faac 100644 --- a/docs/migrating-from-docker.html +++ b/docs/migrating-from-docker.html @@ -13,13 +13,13 @@ - +
- + \ No newline at end of file diff --git a/docs/migrating-from-docker/emulating-docker-cli-with-podman.html b/docs/migrating-from-docker/emulating-docker-cli-with-podman.html index 7d89fcef419..c1db8fad27e 100644 --- a/docs/migrating-from-docker/emulating-docker-cli-with-podman.html +++ b/docs/migrating-from-docker/emulating-docker-cli-with-podman.html @@ -13,14 +13,14 @@ - +

Emulating Docker CLI with Podman

Consider emulating Docker CLI with Podman to migrate transparently to Podman.

  • Continue using familiar Docker commands.
  • Take advantage of the benefits of Podman on macOS.
  • Your tools, such as Maven or Testcontainers, communicate with Podman without reconfiguration.

Prerequisites

  • Podman

Procedure

  1. Create a /usr/local/bin/docker script:

    #!/usr/bin/sh
    [ -e /etc/containers/nodocker ] || \
    echo "Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg." >&2
    exec podman "$@"
  2. (Optional) Create an empty /etc/containers/nodocker file to avoid the Emulate Docker CLI using podman. message when running the script.

    # touch /etc/containers/nodocker
  3. Make the script executable:

    # chmod +x /usr/local/bin/docker

Verification

  • Use the docker script to run commands. Example:

    $ docker run -it docker.io/hello-world
- + \ No newline at end of file diff --git a/docs/migrating-from-docker/importing-saved-containers.html b/docs/migrating-from-docker/importing-saved-containers.html index 380e9b9e565..d3070c2b338 100644 --- a/docs/migrating-from-docker/importing-saved-containers.html +++ b/docs/migrating-from-docker/importing-saved-containers.html @@ -13,14 +13,14 @@ - +

Importing saved containers to Podman

Consider importing saved containers to continue using familiar containers.

Prerequisites

  • Podman

  • You saved your existing containers by running the command:

    $ podman save <your_container> > <your_container_archive>.tar

Procedure

  • Import your existing containers into Podman. Run the command for each container archive:

    $ podman import <your_container_archive>.tar

Verification

  • Your imported containers appear in the Podman Desktop Images section.

Additional resources

- + \ No newline at end of file diff --git a/docs/migrating-from-docker/using-podman-mac-helper.html b/docs/migrating-from-docker/using-podman-mac-helper.html index 1917a77121c..cdff97125dd 100644 --- a/docs/migrating-from-docker/using-podman-mac-helper.html +++ b/docs/migrating-from-docker/using-podman-mac-helper.html @@ -13,14 +13,14 @@ - +

Using the podman-mac-helper tool to migrate from Docker to Podman on macOS

Consider using podman-mac-help to migrate transparently to Podman on macOS.

  • Continue using familiar Docker commands.
  • Take advantage of the benefits of Podman on macOS.
  • Your tools, such as Maven or Testcontainers, communicate with Podman without reconfiguration.

The podman-mac-helper tool provides a compatibility layer that allows you to use most Docker commands with Podman on macOS. The service redirects /var/run/docker to the fixed user-assigned UNIX socket location.

Prerequisites

Procedure

  1. Set up the podman-mac-helper service: run the command in a terminal:

    sudo podman-mac-helper install
  2. Restart your Podman machine: go to Settings > Resources, and in the Podman tile, click .

Verification

  1. The Docker socket is a symbolic link for the Podman socket:

    $ ls -la /var/run/docker.sock

    The output points to a podman.sock file such as:

    /var/run/docker.sock -> /Users/username/.local/share/containers/podman/machine/podman.sock
  2. When you query the Docker socket, you receive replies from Podman rather than Docker.

    For instance, this command outputs Podman version rather that Docker version:

    $ curl -s --unix-socket /var/run/docker.sock "http://v1.41/info"  | jq -r .ServerVersion
  3. Your tools communicating to the Docker socket, such as Maven or Testcontainers, communicate with Podman without reconfiguration.

  4. (Optionally, if the docker CLI is installed) The docker CLI context is set to the default value unix:///var/run/docker.sock:

    $ docker context list
    NAME TYPE DESCRIPTION DOCKER ENDPOINT KUBERNETES ENDPOINT ORCHESTRATOR
    default * moby Current DOCKER_HOST based configuration unix:///var/run/docker.sock
  5. (Optionally, if the docker CLI is installed) The docker CLI communicates with the Podman socket.

    Therefore this command outputs Podman version rather that Docker version:

    $ docker info --format=json | jq -r .ServerVersion

Additional resources

- + \ No newline at end of file diff --git a/docs/migrating-from-docker/using-the-docker_host-environment-variable.html b/docs/migrating-from-docker/using-the-docker_host-environment-variable.html index 1055718fef2..8cbd8af40cb 100644 --- a/docs/migrating-from-docker/using-the-docker_host-environment-variable.html +++ b/docs/migrating-from-docker/using-the-docker_host-environment-variable.html @@ -13,13 +13,13 @@ - +

Using the DOCKER_HOST environment variable

Consider using the DOCKER_HOST environment variable to migrate transparently from Docker to Podman Desktop on all platforms.

  • Continue using familiar Docker commands.
  • Take advantage of the benefits of Podman.
  • Your tools, such as Gradle or Testcontainers, communicate with Podman without reconfiguration.

Prerequisites

  • Podman

Procedure

  1. Identify the location of your Podman socket

    $ podman machine inspect --format '{{.ConnectionInfo.PodmanSocket.Path}}'
  2. Set the DOCKER_HOST environment variable to your Podman socket location. Be sure to add the unix:// scheme to the path retrieved previously:

    $ export DOCKER_HOST=unix://<your_podman_socket_location>

Verification

  • Your tools using the DOCKER_HOST environment variable, such as Gradle or Testcontainers, communicate with Podman without reconfiguration.
- + \ No newline at end of file diff --git a/docs/migrating-from-docker/verifying-your-tools-are-using-podman.html b/docs/migrating-from-docker/verifying-your-tools-are-using-podman.html index 95f6f086960..39a8b446438 100644 --- a/docs/migrating-from-docker/verifying-your-tools-are-using-podman.html +++ b/docs/migrating-from-docker/verifying-your-tools-are-using-podman.html @@ -13,13 +13,13 @@ - +

Verifying that your tools are using Podman

When you have configured your host to use Podman rather then Docker, consider verifying your setup works as intended.

Prerequisites

Procedure

  1. The Docker socket replies successfully for listing all containers:

    $ curl --unix-socket npipe:////./pipe/docker_engine "http:/v1.41/containers/json?all=true"
  2. Podman commands run successfully when redirected to the Docker socket:

    $ CONTAINER_HOST=npipe:////./pipe/docker_engine podman ps
- + \ No newline at end of file diff --git a/docs/onboarding.html b/docs/onboarding.html index 023ce6c9f56..a079dc7d7a9 100644 --- a/docs/onboarding.html +++ b/docs/onboarding.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/onboarding/containers.html b/docs/onboarding/containers.html index 939686eaf18..7f3c5bef9bd 100644 --- a/docs/onboarding/containers.html +++ b/docs/onboarding/containers.html @@ -13,13 +13,13 @@ - +

Onboarding for container workloads

To run container workloads, set up at least one container engine.

Podman Desktop does not automatically set up container engine resources that you might not need.

Procedure

  1. Select a container engine supporting your workload.

    WorkloadPodmanNative DockerDocker Desktop
    Rootless containers✅ yes✅ yes❌ no
    Rootful containers✅ yes✅ yes✅ yes
    Compose✅ yes✅ yes✅ yes
    Pods✅ yes❌ no❌ no

    Podman supports rootless container and pods, in addition to rootful containers and Compose.

  2. Select an execution environment supporting your container engine and your operating system.

    • Select a Podman execution environment:

      Host operating systemNative containersPodman machineLima machine
      Windows❌ no✅ yes❌ experimental
      macOS❌ no✅ yes✅ yes
      Linux✅ yes❌ disabled in Podman Desktop✅ yes
    • Select a Docker execution environment:

      Host operating systemNative containersLima machineDocker Desktop
      Windows❌ no❌ no✅ yes
      macOS❌ no✅ yes✅ yes
      Linux✅ yes❌ no✅ yes
  3. Setup your container engine.

- + \ No newline at end of file diff --git a/docs/onboarding/containers/creating-a-lima-instance-with-podman-desktop.html b/docs/onboarding/containers/creating-a-lima-instance-with-podman-desktop.html index d036bec9463..7dba50827bf 100644 --- a/docs/onboarding/containers/creating-a-lima-instance-with-podman-desktop.html +++ b/docs/onboarding/containers/creating-a-lima-instance-with-podman-desktop.html @@ -13,13 +13,13 @@ - +

Creating a Lima instance with Podman Desktop

To use the Lima provider you need a Lima instance running a Linux virtual machine.

In the future, Podman Desktop might be able to create Lima instances.

Consider creating a custom Lima instance to:

  • Control the assigned resources: CPUs, memory, and disk size.
  • Use the rootful connection by default, for example to run Kind.

Prerequisites

  • The limactl executable is installed.
brew install lima

See https://lima-vm.io

Procedure

Currently you need to use the console, to create a new Lima instance.

After the instance is started, you need to restart the Lima extension.

Examples:

To create an instance "podman" from a template "podman":

$ limactl start --name=podman template://podman

To create an instance "docker" from a template "docker":

$ limactl start --name=docker template://docker

To select the number of CPUs and the memory or disk size:

$ limactl start --set='.cpus = 2 | .memory = "2GiB" | .disk = "50GiB"' ...

To create a rootful instance, use the rootful template:

$ limactl start --name=podman template://podman-rootful

Verification

To verify the connection to a running "podman" instance:

$ podman.lima version

To verify the connection to a running "docker" instance:

$ docker.lima version

Kubernetes

To create a single-node Kubernetes cluster running k3s:

$ limactl start template://k3s

To create a single-node Kubernetes cluster running k8s:

$ limactl start template://k8s

When the installation is done, the location of the KUBECONFIG file is printed:

You can also use the kubectl.lima wrapper script, to connect to the cluster:

$ kubectl.lima version
- + \ No newline at end of file diff --git a/docs/onboarding/containers/creating-a-podman-machine-with-podman-desktop.html b/docs/onboarding/containers/creating-a-podman-machine-with-podman-desktop.html index d71047f7524..29cf912719b 100644 --- a/docs/onboarding/containers/creating-a-podman-machine-with-podman-desktop.html +++ b/docs/onboarding/containers/creating-a-podman-machine-with-podman-desktop.html @@ -13,7 +13,7 @@ - + @@ -28,7 +28,7 @@ Enable to use the rootful connection by default. Required to use Kind on Windows.
  • (On Windows) User mode networking (traffic relayed by a user process): Enable to route the traffic through the network connection from your Windows session. Required to access resources behind your VPN connection.
  • Click Create
  • Create a Podman machine

    - + \ No newline at end of file diff --git a/docs/onboarding/containers/installing-podman-with-openshift-local-on-windows.html b/docs/onboarding/containers/installing-podman-with-openshift-local-on-windows.html index 7e24a735662..8e96194aba8 100644 --- a/docs/onboarding/containers/installing-podman-with-openshift-local-on-windows.html +++ b/docs/onboarding/containers/installing-podman-with-openshift-local-on-windows.html @@ -13,13 +13,13 @@ - +

    Installing the Podman Preset with OpenShift Local on Windows

    On Windows, running the Podman container engine requires running a Linux distribution on a virtual machine.

    Consider installing the Podman Preset in OpenShift Local rather than installing Podman with Podman Desktop when you require one of following:

    • No WSL 2
    • Full control on the HyperV virtual machine
    • User without administrator privileges
    • VPN
    • Windows 10

    Prerequisites

    • The user is a member of the Hyper-V Administrators group. The user can add a virtual machine, start or stop this virtual machine, and access the resources related to this virtual machine.
    • Windows 10 version 1709 or later, Enterprise or Professional edition, or Windows 11, Enterprise or Professional edition

    Procedure

    1. Install the OpenShift Local extension.

    2. Install OpenShift Local.

    3. Select the Podman container runtime preset:

      $ crc config set preset podman
    4. Set up your host machine for Red Hat OpenShift Local:

      $ crc setup
    5. Start the Red Hat OpenShift instance:

      $ crc start

    Additional resources

    Next steps

    - + \ No newline at end of file diff --git a/docs/onboarding/containers/installing-podman-with-podman-desktop-on-windows.html b/docs/onboarding/containers/installing-podman-with-podman-desktop-on-windows.html index 3d66381030a..5b4022f4e14 100644 --- a/docs/onboarding/containers/installing-podman-with-podman-desktop-on-windows.html +++ b/docs/onboarding/containers/installing-podman-with-podman-desktop-on-windows.html @@ -13,14 +13,14 @@ - +

    Installing Podman on Windows with Podman Desktop

    On Windows, running the Podman container engine requires running a Linux distribution on a virtual machine.

    Podman Desktop can assist you to install the Podman container engine in a Fedora distribution of Linux, on the Windows Subsystem for Linux version 2 (WSL 2). Main benefits are:

    • Ease of use
    • Windows native virtualization performance

    Consider rather installing Podman with OpenShift Local if:

    • You prefer working with a RHEL distribution of Linux
    • Your environment doesn't allow you to meet the prerequisites

    Prerequisites

    • 6 GB RAM
    • No VPN
    • WSL prerequisites
      • User with administrator privileges
      • Windows 64bit
      • Windows 10 Build 18362 or greater, or Windows 11
      • On a virtual machine: Nested Virtualization enabled
    • Podman is not installed
    • No WSL 2 Linux virtual machine is running

    Procedure

    1. Enable the WSL feature without installing the default Ubuntu distribution of Linux. See Enabling WSL 2 and WSL basic commands:

      wsl --install --no-distribution
    2. The Home screen displays Podman Desktop was not able to find an installation of Podman. Click on Install.

      img1

    3. Podman Desktop checks the prerequites to install Podman Engine. When necessary, follow the instructions to install prerequisites.

    4. Podman displays the dialog: Podman is not installed on this system, would you like to install Podman?. Click on Yes to install Podman.

    5. Click on Initialize Podman.

    Additional resources

    Next steps

    - + \ No newline at end of file diff --git a/docs/onboarding/kubernetes.html b/docs/onboarding/kubernetes.html index e48af322790..51617c80664 100644 --- a/docs/onboarding/kubernetes.html +++ b/docs/onboarding/kubernetes.html @@ -13,13 +13,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/onboarding/kubernetes/kind.html b/docs/onboarding/kubernetes/kind.html index 1f976a664ea..effb144c57b 100644 --- a/docs/onboarding/kubernetes/kind.html +++ b/docs/onboarding/kubernetes/kind.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/onboarding/kubernetes/kind/configuring-podman-for-kind-on-windows.html b/docs/onboarding/kubernetes/kind/configuring-podman-for-kind-on-windows.html index 4f55ea75204..7e5856cc5e5 100644 --- a/docs/onboarding/kubernetes/kind/configuring-podman-for-kind-on-windows.html +++ b/docs/onboarding/kubernetes/kind/configuring-podman-for-kind-on-windows.html @@ -13,13 +13,13 @@ - +

    Configuring Podman for Kind on Windows Subsystem for Linux (WSL)

    When you create a Podman machine, Podman creates the machine in rootless mode.

    With a Podman machine running on WSL, Kind:

    • Requires the rootful machine.

    Therefore, set the Podman machine to rootful mode.

    Procedure

    1. Stop the Podman machine:

      $ podman machine stop
    2. Set the Podman machine in rootful mode:

      $ podman machine set --rootful
    3. Start the Podman machine:

      $ podman machine start
    - + \ No newline at end of file diff --git a/docs/onboarding/kubernetes/kind/creating-a-kind-cluster.html b/docs/onboarding/kubernetes/kind/creating-a-kind-cluster.html index 85eee7e2f08..8587b401c24 100644 --- a/docs/onboarding/kubernetes/kind/creating-a-kind-cluster.html +++ b/docs/onboarding/kubernetes/kind/creating-a-kind-cluster.html @@ -13,13 +13,13 @@ - +

    Creating a local Kind-powered Kubernetes cluster

    You can create multiple local Kind-powered Kubernetes clusters.

    Prerequisites

    Procedure

    1. Go to Settings > Resources

    2. In the Kind tile, click on the Create new ... button.

    3. Choose your options, and click the Create button.

      The defaults are:

      • Name: kind-cluster
      • Provider type: podman
      • HTTP port: 9090
      • HTTPS port: 9443
    4. (Optionally) Click the Show logs button to display the logs.

    5. After successful creation, click on the Go back to resources button

    Verification

    1. In Settings > Resources, in the Kind tile, your <kind-cluster> instance is running.
    2. In the Podman Desktop tray, open the Kubernetes menu, you can set the context to your Kind cluster: kind-<kind-cluster>.
    - + \ No newline at end of file diff --git a/docs/onboarding/kubernetes/kind/deleting-your-kind-cluster.html b/docs/onboarding/kubernetes/kind/deleting-your-kind-cluster.html index 3c4ccfda777..f53008c2046 100644 --- a/docs/onboarding/kubernetes/kind/deleting-your-kind-cluster.html +++ b/docs/onboarding/kubernetes/kind/deleting-your-kind-cluster.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/onboarding/kubernetes/kind/installing-kind.html b/docs/onboarding/kubernetes/kind/installing-kind.html index a27777e74a7..91de3577b12 100644 --- a/docs/onboarding/kubernetes/kind/installing-kind.html +++ b/docs/onboarding/kubernetes/kind/installing-kind.html @@ -13,7 +13,7 @@ - + @@ -21,7 +21,7 @@ - + \ No newline at end of file diff --git a/docs/onboarding/kubernetes/kind/restarting-your-kind-cluster.html b/docs/onboarding/kubernetes/kind/restarting-your-kind-cluster.html index 92038af6a7d..7c87cb38d02 100644 --- a/docs/onboarding/kubernetes/kind/restarting-your-kind-cluster.html +++ b/docs/onboarding/kubernetes/kind/restarting-your-kind-cluster.html @@ -13,7 +13,7 @@ - + @@ -22,7 +22,7 @@ Therefore, Podman Desktop stops the Kind cluster, starts it again, and hopes for the best. The Kind cluster might not restart successfully. In that case:

    - + \ No newline at end of file diff --git a/docs/proxy.html b/docs/proxy.html index 726ad737718..31f59f3bb45 100644 --- a/docs/proxy.html +++ b/docs/proxy.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/proxy/using-a-proxy-in-your-containers.html b/docs/proxy/using-a-proxy-in-your-containers.html index b24a4422607..b9aebba4346 100644 --- a/docs/proxy/using-a-proxy-in-your-containers.html +++ b/docs/proxy/using-a-proxy-in-your-containers.html @@ -13,13 +13,13 @@ - +

    Using a proxy in your containers on macOS and Windows

    You can configure your Podman machine to use a proxy for your containers.

    Prerequisites

    • <your.proxy.tld:port>: Your proxy URL.

    Procedure

    1. Open a shell prompt on the Podman machine:

      $ podman machine ssh
    2. Edit the containers.conf file to pass the proxy environment variables to Podman CLI.

      The file location depends on your connection mode:

      • rootless: $HOME/.config/containers/containers.conf

      • rootful: /etc/containers/containers.conf

    3. Set the proxy environment variables to pass into the containers:

      [containers]
      http_proxy = true
      env = ["http_proxy=<your.proxy.tld:port>", "https_proxy=<your.proxy.tld:port>"]
    4. Go to Settings > Resources and restart the Podman machine.

    - + \ No newline at end of file diff --git a/docs/proxy/using-a-proxy-on-linux.html b/docs/proxy/using-a-proxy-on-linux.html index 5fb7a461751..d66b53cc868 100644 --- a/docs/proxy/using-a-proxy-on-linux.html +++ b/docs/proxy/using-a-proxy-on-linux.html @@ -13,13 +13,13 @@ - +

    Using Podman Desktop behind a proxy on Linux

    You can configure Podman to run behind a proxy.

    Prerequisites

    • <proxy_ca.pem>: Your proxy Certificate Authorities (CA), in Privacy-Enhanced Mail (PEM) format.
    • <your.proxy.tld:port>: Your proxy URL.

    Procedure

    1. Edit the containers.conf file to pass the proxy environment variables to Podman CLI.

      The file location depends on your connection mode:

      • rootless: $HOME/.config/containers/containers.conf

      • rootful: /etc/containers/containers.conf

    2. Set the proxy environment variables to pass into the containers:

      [containers]
      http_proxy = true
      env = ["http_proxy=<your.proxy.tld:port>", "https_proxy=<your.proxy.tld:port>"]
    3. Set the proxy environment variables to pass into the Podman engine:

      [engine]
      env = ["http_proxy=<your.proxy.tld:port>", "https_proxy=<your.proxy.tld:port>"]
    4. Add the custom Certificate Authorities (CA) for your proxy:

      $ sudo cp <proxy_ca.pem> /etc/pki/ca-trust/source/anchors/
      $ sudo update-ca-trust
    5. Restart all podman processes.

      $ pkill podman
    6. Restart Podman Desktop: Ctrl + q.

    Verification

    1. Go to Images.
    2. Click Pull an image.
    3. Image to Pull: bash
    4. Click Pull image.
    5. Podman Desktop reports Download complete.
    - + \ No newline at end of file diff --git a/docs/proxy/using-a-proxy-requiring-a-custom-ca.html b/docs/proxy/using-a-proxy-requiring-a-custom-ca.html index 25275ef7b52..36dceedb8bc 100644 --- a/docs/proxy/using-a-proxy-requiring-a-custom-ca.html +++ b/docs/proxy/using-a-proxy-requiring-a-custom-ca.html @@ -13,14 +13,14 @@ - +

    Using Podman Desktop behind a proxy requiring custom Certificate Authorities (CA) on macOS and Windows

    You can configure Podman Desktop to run behind a proxy requiring custom Certificate Authorities (CA), such as self-signed certificates. The configuration applies to the Podman engine, but not to your containers.

    Prerequisites

    • Your proxy URL: <your.proxy.tld:port>
    • Your proxy Certificate Authorities (CA) is stored in your home directory, in the proxy_ca.pem file, in Privacy-Enhanced Mail (PEM) format.

    Procedure

    1. Go to Settings > Proxy, and set your proxy URL:

      1. Proxy configuration enabled: yes
      2. Web Proxy (HTTP): <your.proxy.tld:port>
      3. Secure Web Proxy (HTTPS): <your.proxy.tld:port>
      4. Click the Update button
    2. Copy the certificate to the Podman machine:

      $ cat proxy_ca.pem | podman machine ssh podman-machine-default "cat > proxy_ca.pem"
    3. Open a shell prompt on the Podman machine:

      $ podman machine ssh podman-machine-default
    4. Add the custom Certificate Authorities (CA) for your proxy:

      $ sudo cp proxy_ca.pem /etc/pki/ca-trust/source/anchors/
      $ sudo update-ca-trust
    5. Go to Settings > Resources and restart the Podman machine.

    Verification

    1. Go to Images.
    2. Click Pull an image.
    3. Image to Pull: bash
    4. Click Pull image.
    5. Podman Desktop reports Download complete.
    - + \ No newline at end of file diff --git a/docs/proxy/using-a-proxy.html b/docs/proxy/using-a-proxy.html index 07eac5850ac..18c7d510b14 100644 --- a/docs/proxy/using-a-proxy.html +++ b/docs/proxy/using-a-proxy.html @@ -13,13 +13,13 @@ - +

    Using Podman Desktop behind a proxy on macOS and Windows

    You can configure Podman Desktop to run behind a proxy.

    The configuration applies to:

    • Processes that Podman Desktop started, such as downloading Podman, Compose, or Kind installers.
    • Podman engine.

    The configuration does not apply to:

    • Your Podman containers.
    • Command line tools that Podman Desktop did not start.

    Prerequisites

    Procedure

    1. Go to Settings > Proxy, and set your proxy URL:

      1. Proxy configuration enabled: yes
      2. Web Proxy (HTTP): <your.proxy.tld:port>
      3. Secure Web Proxy (HTTPS): <your.proxy.tld:port>
      4. Click the Update button
    2. Go to Settings > Resources and restart the Podman machine.

    Verification

    1. You can install extensions such as:

    2. Podman can pull images.

      1. Go to Images.
      2. Click Pull an image.
      3. Image to Pull: bash
      4. Click Pull image.
      5. Podman Desktop reports Download complete.

    Additional resources

    - + \ No newline at end of file diff --git a/docs/proxy/using-a-vpn-on-windows.html b/docs/proxy/using-a-vpn-on-windows.html index af8dab24791..927d0e7dc77 100644 --- a/docs/proxy/using-a-vpn-on-windows.html +++ b/docs/proxy/using-a-vpn-on-windows.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags.html b/docs/tags.html index ca9dfe13b38..ab8643e9394 100644 --- a/docs/tags.html +++ b/docs/tags.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/chocolatey.html b/docs/tags/chocolatey.html index 6bcdc11c3ad..0615a7e0f54 100644 --- a/docs/tags/chocolatey.html +++ b/docs/tags/chocolatey.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/compose.html b/docs/tags/compose.html index 64d1f6a3ffe..4cebf7aa8a7 100644 --- a/docs/tags/compose.html +++ b/docs/tags/compose.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/containers.html b/docs/tags/containers.html index e8a1847c65c..3e328c3143a 100644 --- a/docs/tags/containers.html +++ b/docs/tags/containers.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/extension.html b/docs/tags/extension.html index a272ba19584..a179a9cffee 100644 --- a/docs/tags/extension.html +++ b/docs/tags/extension.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/flathub.html b/docs/tags/flathub.html index 92e30f256d1..865be1bc389 100644 --- a/docs/tags/flathub.html +++ b/docs/tags/flathub.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/flatpak.html b/docs/tags/flatpak.html index c046094faa1..fb013c328b5 100644 --- a/docs/tags/flatpak.html +++ b/docs/tags/flatpak.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/images.html b/docs/tags/images.html index ac22327977b..13248a7a22a 100644 --- a/docs/tags/images.html +++ b/docs/tags/images.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/installing.html b/docs/tags/installing.html index 7473be29bc7..5eb30066dbc 100644 --- a/docs/tags/installing.html +++ b/docs/tags/installing.html @@ -13,13 +13,13 @@ - +

    17 docs tagged with "installing"

    View All Tags

    Custom Lima instance

    Podman Desktop can assist you to create custom Lima instance on Linux and macOS.

    In your containers

    Using Podman Desktop behind a proxy requiring custom Certificate Authorities (CA).

    Linux

    You can install Podman Desktop on Linux from Flathub, a Flatpak bundle, or a ZIP archive.

    Using behind a proxy

    Using Podman Desktop behind a proxy requiring custom Certificate Authorities (CA).

    Windows

    How to install Podman on Windows.

    - + \ No newline at end of file diff --git a/docs/tags/kind.html b/docs/tags/kind.html index 884a6cd5b52..af813deb2ea 100644 --- a/docs/tags/kind.html +++ b/docs/tags/kind.html @@ -13,13 +13,13 @@ - +

    8 docs tagged with "kind"

    View All Tags

    Onboarding Kind

    Kind is one way to get Kubernetes running on your workstation.

    - + \ No newline at end of file diff --git a/docs/tags/lima.html b/docs/tags/lima.html index 6e7c759100b..ee3ebe483fe 100644 --- a/docs/tags/lima.html +++ b/docs/tags/lima.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/linux.html b/docs/tags/linux.html index 0eb73cc1c24..df1e8bd5983 100644 --- a/docs/tags/linux.html +++ b/docs/tags/linux.html @@ -13,13 +13,13 @@ - +

    8 docs tagged with "linux"

    View All Tags

    Custom Lima instance

    Podman Desktop can assist you to create custom Lima instance on Linux and macOS.

    In your containers

    Using Podman Desktop behind a proxy requiring custom Certificate Authorities (CA).

    Linux

    You can install Podman Desktop on Linux from Flathub, a Flatpak bundle, or a ZIP archive.

    Linux

    Using Podman Desktop behind a proxy on Linux.

    Using behind a proxy

    Using Podman Desktop behind a proxy requiring custom Certificate Authorities (CA).

    - + \ No newline at end of file diff --git a/docs/tags/mac-0-s.html b/docs/tags/mac-0-s.html index 62b4867295e..0e3319504d9 100644 --- a/docs/tags/mac-0-s.html +++ b/docs/tags/mac-0-s.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/mac-os.html b/docs/tags/mac-os.html index 248e38c919f..2f016ef8b03 100644 --- a/docs/tags/mac-os.html +++ b/docs/tags/mac-os.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/macos.html b/docs/tags/macos.html index 876fa1a1b95..b5333d32655 100644 --- a/docs/tags/macos.html +++ b/docs/tags/macos.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/migrating-from-docker.html b/docs/tags/migrating-from-docker.html index 3ad9ae6c6da..24a02be0d2a 100644 --- a/docs/tags/migrating-from-docker.html +++ b/docs/tags/migrating-from-docker.html @@ -13,13 +13,13 @@ - +

    6 docs tagged with "migrating-from-docker"

    View All Tags

    Emulating Docker CLI with Podman

    Emulation Docker CLI with Podman can make it easier to migrate from Docker to Podman, as it allows you to continue using familiar Docker commands while taking advantage of the benefits of Podman.

    Using `podman-mac-helper` on macOS

    Using the `podman-mac-helper` tool can make it easier to migrate from Docker to Podman on macOS, as it allows you to continue using familiar Docker commands while taking advantage of the benefits of Podman.

    Using the `DOCKER_HOST` environment variable

    Using the `DOCKER_HOST` environment variable can make it easier to migrate from Docker to Podman Desktop, as it allows you to continue using familiar Docker commands while taking advantage of the benefits of Podman.

    - + \ No newline at end of file diff --git a/docs/tags/migrating-to-kubernetes.html b/docs/tags/migrating-to-kubernetes.html index 2f26a94022e..9e18861ab09 100644 --- a/docs/tags/migrating-to-kubernetes.html +++ b/docs/tags/migrating-to-kubernetes.html @@ -13,13 +13,13 @@ - +

    30 docs tagged with "migrating-to-kubernetes"

    View All Tags

    Kubernetes

    Migrate transparently from Podman to Kubernetes, and continue using familiar workflows.

    Onboarding Kind

    Kind is one way to get Kubernetes running on your workstation.

    - + \ No newline at end of file diff --git a/docs/tags/minikube.html b/docs/tags/minikube.html index 0160e8c3f4b..447d853c590 100644 --- a/docs/tags/minikube.html +++ b/docs/tags/minikube.html @@ -13,13 +13,13 @@ - +

    7 docs tagged with "minikube"

    View All Tags
    - + \ No newline at end of file diff --git a/docs/tags/onboarding.html b/docs/tags/onboarding.html index 00a22125a96..be89ef54294 100644 --- a/docs/tags/onboarding.html +++ b/docs/tags/onboarding.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/openshift-local.html b/docs/tags/openshift-local.html index 4a81efad9f8..41d08facb93 100644 --- a/docs/tags/openshift-local.html +++ b/docs/tags/openshift-local.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/openshift.html b/docs/tags/openshift.html index e8d98502d4b..1b812518bbc 100644 --- a/docs/tags/openshift.html +++ b/docs/tags/openshift.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/podman-desktop.html b/docs/tags/podman-desktop.html index 573e2d227f2..19d1e68bc0e 100644 --- a/docs/tags/podman-desktop.html +++ b/docs/tags/podman-desktop.html @@ -13,13 +13,13 @@ - +

    28 docs tagged with "podman-desktop"

    View All Tags

    Containers

    To run container workloads with Podman Desktop, set up at least one container engine.

    Custom Lima instance

    Podman Desktop can assist you to create custom Lima instance on Linux and macOS.

    Images

    Working with container images

    In your containers

    Using Podman Desktop behind a proxy requiring custom Certificate Authorities (CA).

    Linux

    You can install Podman Desktop on Linux from Flathub, a Flatpak bundle, or a ZIP archive.

    Linux

    Using Podman Desktop behind a proxy on Linux.

    Onboarding

    You can install Podman Desktop on Windows, macOS, and Linux.

    Using behind a proxy

    Using Podman Desktop behind a proxy requiring custom Certificate Authorities (CA).

    Windows

    How to install Podman on Windows.

    Writing

    Writing a Podman Desktop extension

    - + \ No newline at end of file diff --git a/docs/tags/podman.html b/docs/tags/podman.html index e92a4624348..95951f6214d 100644 --- a/docs/tags/podman.html +++ b/docs/tags/podman.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/pods.html b/docs/tags/pods.html index cb1cb187739..fa1d2347057 100644 --- a/docs/tags/pods.html +++ b/docs/tags/pods.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/proxy.html b/docs/tags/proxy.html index 48fac235fa2..b4128a113ba 100644 --- a/docs/tags/proxy.html +++ b/docs/tags/proxy.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/publishing.html b/docs/tags/publishing.html index b05934d9c5f..ab31086c69c 100644 --- a/docs/tags/publishing.html +++ b/docs/tags/publishing.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/registries.html b/docs/tags/registries.html index b503c2c8e88..5182e229e9e 100644 --- a/docs/tags/registries.html +++ b/docs/tags/registries.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/restricted-environment.html b/docs/tags/restricted-environment.html index cec5a45565e..9c9f778c0de 100644 --- a/docs/tags/restricted-environment.html +++ b/docs/tags/restricted-environment.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/scoop.html b/docs/tags/scoop.html index 2acb522ac3b..75783fa1f29 100644 --- a/docs/tags/scoop.html +++ b/docs/tags/scoop.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/vpn.html b/docs/tags/vpn.html index 6a0141c3c4c..691d75595a0 100644 --- a/docs/tags/vpn.html +++ b/docs/tags/vpn.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/when-clause.html b/docs/tags/when-clause.html index 79013864233..ea758e10c3a 100644 --- a/docs/tags/when-clause.html +++ b/docs/tags/when-clause.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/windows.html b/docs/tags/windows.html index fbcc40cf551..bd75c05f1f1 100644 --- a/docs/tags/windows.html +++ b/docs/tags/windows.html @@ -13,13 +13,13 @@ - +

    14 docs tagged with "windows"

    View All Tags

    In your containers

    Using Podman Desktop behind a proxy requiring custom Certificate Authorities (CA).

    Using behind a proxy

    Using Podman Desktop behind a proxy requiring custom Certificate Authorities (CA).

    Windows

    How to install Podman on Windows.

    - + \ No newline at end of file diff --git a/docs/tags/winget.html b/docs/tags/winget.html index 5530ebe7d56..799ccef7d1c 100644 --- a/docs/tags/winget.html +++ b/docs/tags/winget.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/tags/writing.html b/docs/tags/writing.html index 2a39bf9f501..d03fbd00eb8 100644 --- a/docs/tags/writing.html +++ b/docs/tags/writing.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/troubleshooting.html b/docs/troubleshooting.html index c6ce702189c..423ec1450e0 100644 --- a/docs/troubleshooting.html +++ b/docs/troubleshooting.html @@ -13,13 +13,13 @@ - +

    Troubleshooting

    If you cannot find your issue here or in the documentation, please fill an issue on our repository. You can also explore the discussions and do a search on similar issues on the repository.

    Using the Troubleshooting page

    Podman Desktop has a Troubleshooting page to help identify and fix most common errors.

    Procedure

    1. To open the Troubleshooting page, click the icon.

    2. To test the connection to the container engine, click the Ping button.

      Expect a reply such as: Responded: 79,75 (9.10ms).

    3. To test Click the Check containers button.

      Expect a reply such as: Responded: 16 containers (108.70ms).

    4. When connection to the container engine failed, to recreate connections to the sockets, click the Reconnect providers button.

      Expect a reply such as: Done in (5.00ms).

    5. Search for errors in the Logs section.

    Additional resources

    - + \ No newline at end of file diff --git a/docs/troubleshooting/troubleshooting-openshift-local.html b/docs/troubleshooting/troubleshooting-openshift-local.html index e12c0945709..1c6d6016b90 100644 --- a/docs/troubleshooting/troubleshooting-openshift-local.html +++ b/docs/troubleshooting/troubleshooting-openshift-local.html @@ -13,13 +13,13 @@ - +

    Troubleshooting OpenShift Local

    You can find here troubleshooting help for issues specific to OpenShift Local.

    1. To verify that your user can run crc, verify that the crc binary is available in the user PATH (/usr/local/bin/crc on macOS and Linux).

    2. To verify that the host is ready to run OpenShift Local, in a terminal, run this command and verify the output has no errors:

      $ crc setup --check-only

      Sample output:

      INFO Using bundle path <bundle_path>
      INFO Checking if running as non-root
      INFO Checking if running inside WSL2
      INFO Checking if crc-admin-helper executable is cached
      crc-admin-helper executable is not cached
    3. To verify the configured preset, in a terminal, run:

      $ crc config get preset
    - + \ No newline at end of file diff --git a/docs/troubleshooting/troubleshooting-podman-on-linux.html b/docs/troubleshooting/troubleshooting-podman-on-linux.html index c5fa8f83ab8..7f6c305e6d0 100644 --- a/docs/troubleshooting/troubleshooting-podman-on-linux.html +++ b/docs/troubleshooting/troubleshooting-podman-on-linux.html @@ -13,14 +13,14 @@ - +

    Troubleshooting Podman on Linux

    Podman Desktop does not manage native Podman

    On Linux, Podman usually runs natively on the host. Podman might also run in a virtual machine.

    Podman Desktop does only connect to the native rootless podman connection.

    Podman Desktop does not manage podman native configuration or podman machine (create, configure, start, stop, delete).

    Podman Desktop might manage configuration relative to connections to registries and proxies.

    - + \ No newline at end of file diff --git a/docs/troubleshooting/troubleshooting-podman-on-macos.html b/docs/troubleshooting/troubleshooting-podman-on-macos.html index c1e637eae2e..413ba3587ac 100644 --- a/docs/troubleshooting/troubleshooting-podman-on-macos.html +++ b/docs/troubleshooting/troubleshooting-podman-on-macos.html @@ -13,7 +13,7 @@ - + @@ -23,7 +23,7 @@ or any similar error denoting that Podman Engine does not exist.

    Explanation

    The Podman Installer and Homebrew use different locations to store the Podman Engine files in the file system. For example, Podman Installer installs Podman Engine in the path /opt/podman whereas Homebrew uses the path /usr/local for macOS Intel, /opt/homebrew for Apple Silicon and /home/linuxbrew/.linuxbrew for Linux.

    Solution

    To check where exactly is your Podman Engine installed, run the command-

    which podman

    This returns the path where the Podman Engine would be installed. This would help determine further action.

    For example, if you’re looking to completely uninstall Podman Engine from your system for a fresh installation, running which podman returns the exact path where Podman still exists. This could be the path where Podman Installer stores Podman Engine, such as /opt/podman. Once you know the path, run:

    sudo rm -rf /opt/podman

    Or

    sudo rm -rf path-where-podman-exists

    Here, you would replace path-where-podman-exists with the output of which podman.

    You can now proceed for a fresh installation of Podman Desktop

    Podman machine on Apple Silicon

    Issue

    If you are using an Apple Silicon and brew, you might encounter the following error when starting Podman from Podman Desktop

    Error: qemu exited unexpectedly with exit code 1, stderr: qemu-system-x86_64: invalid accelerator hvf
    qemu-system-x86_64: falling back to tcg
    qemu-system-x86_64: unable to find CPU model 'host'

    Explanation

    Podman machine is running as a x86_64 process and it could be due to a dual install of homebrew: one for x86_64 and one for arm64.

    Solution

    You can

    1. Uninstall Podman machine on your x86_64 brew install (for example from a terminal running under rosetta) brew uninstall podman
    2. or uninstall brew x86_64 as most brew receipe have now arm64 support: follow these instructions from a terminal running under rosetta

    Then run a terminal in native mode (default) and install Podman machine brew install podman

    Finally clean the Podman machine VMs that had been previously created, and create new ones.

    $ podman machine rm podman-machine-default
    $ podman machine init

    You should be a happy camper from here.

    Recovering from a failed start

    After a failed start, the Podman machine might be unable to start because a QEMU process is still running and the PID file is in use.

    Workaround

    1. Kill the remaining QEMU process and stop the Podman machine:

      $ ps -edf | grep qemu-system | grep -v grep | awk '{print $2}' | xargs -I{} kill -9 {}; podman machine stop
    2. Start the Podman machine.

    Solution

    Use Podman 4.6.1 or greater.

    Podman machine not starting with QEMU 8.1.0 from brew

    When you installed Podman and QEMU with brew, and QEMU version is 8.1.0, Podman machine might fail to start with an error such as: Error: qemu exited unexpectedly with exit code -1, stderr: qemu-system-x86_64: Error: HV_DENIED

    Solution

    Workaround

    Keep your brew-based installation and apply one of these workarounds:

    • Rollback the QEMU brew package to v8.0.3.

      $ brew uninstall qemu
      $ curl -OSL https://raw.githubusercontent.com/Homebrew/homebrew-core/dc0669eca9479e9eeb495397ba3a7480aaa45c2e/Formula/qemu.rb
      $ brew install ./qemu.rb
    • Alternatively, sign the QEMU brew binary locally:

      $ cat >entitlements.xml <<EOF
      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
      <plist version="1.0">
      <dict>
      <key>com.apple.security.hypervisor</key>
      <true/>
      </dict>
      </plist>
      EOF
      $ codesign --sign - --entitlements entitlements.xml --force /usr/local/bin/qemu-system-$(uname -m | sed -e s/arm64/aarch64/)

    Additional resources

    - + \ No newline at end of file diff --git a/docs/troubleshooting/troubleshooting-podman-on-windows.html b/docs/troubleshooting/troubleshooting-podman-on-windows.html index 9852637cf74..2b3e4fa799b 100644 --- a/docs/troubleshooting/troubleshooting-podman-on-windows.html +++ b/docs/troubleshooting/troubleshooting-podman-on-windows.html @@ -13,14 +13,14 @@ - +

    Troubleshooting Podman on Windows

    You can find here troubleshooting help for issues specific to Windows.

    Deleting a corrupted Podman Machine

    Issue

    1. You are not able to stop your Podman Machine.

      $podman machine stop
    2. The Logs contain this error:

      Error: Error stopping sysd: exit status 1

    Workaround

    1. To display the active Windows Subsystem for Linux (WSL) distribution list: in the terminal, run:

      $ wsl --list
    2. The command returns the list of active WSL distributions. Identify your Podman Machine in the list, such as podman-machine-default.

    3. To stop, and uninstall your Podman Machine: in the terminal, replace podman-machine-default by your Podman machine name, and run:

      $ wsl --unregister podman-machine-default

    Additional resources

    The terminal session attaches to Podman Desktop when launching it from the command line

    Issue

    1. When you start Podman Desktop from the command line in Windows the terminal session attaches to it.
    2. When you quit the terminal, it kills Podman Desktop.

    Workaround

    • Set the environment variable ELECTRON_NO_ATTACH_CONSOLE to true before launching Podman Desktop.

    When the host is behind a VPN, Podman cannot access network resources

    When the host is behind a VPN, Podman might fail to access network resources, and display errors such as Temporary failure in name resolution.

    Solution

    See Accessing resources behind a VPN with Podman on Windows.

    Older WSL versions might lead to networking issues

    Older versions of WSL might cause networking issues, such as the Get-NetTCPConnection error, indicating that the WSL loopback forwarding facility is not functioning correctly. Recent versions of WSL do not have this issue Recent WSL versions do not have the issue.

    Solution

    1. Update Windows to either the 21H1, 21H2, or 22H2 version of Windows 10, or to the 21H1 version of Windows 11, or greater.

    2. Update WSL:

      wsl --update
    3. Optionally, delete your Podman machine, and create a new one.

    - + \ No newline at end of file diff --git a/docs/troubleshooting/troubleshooting-podman.html b/docs/troubleshooting/troubleshooting-podman.html index 06b86a74dfe..7d9436eb1d9 100644 --- a/docs/troubleshooting/troubleshooting-podman.html +++ b/docs/troubleshooting/troubleshooting-podman.html @@ -13,7 +13,7 @@ - + @@ -23,7 +23,7 @@ After each step, quit and restart Podman Desktop to ensure that it can detect yo img

    Solution

    1. Stop and restart Podman Desktop.

    2. In Podman Desktop, restart the Podman machine.

    3. In a terminal, restart the Podman machine:

      $ podman machine stop
      $ podman machine start
    4. If the previous step did not work for you, delete your Podman machine, and create a new one:

      $ podman machine rm
      $ podman machine init
    5. If the previous steps did not work for you, delete your Podman configuration files, and create a new Podman machine:

      $ rm -rf ~/.local/share/containers/podman
      $ rm -rf ~/.config/containers/
      $ podman machine init

    Podman Desktop is failing to display the images or containers from a rootful Podman machine

    The rootful configuration for a Podman machine depends on the Podman machine default connection. The default connection can be modified by external events, or when creating a new Podman machine. Podman Desktop might then reconnect in rootless mode, and fail to display the images or containers.

    Workaround

    1. Verify that the Podman default connection is the rootful connection to your Podman machine:

      $ podman system connection ls

      The default connection has true at the end of the line.

      The rootful connection has a -root name suffix, and a ssh://root@ URI prefix.

      Example default rootful connection:

      Name                        URI                                                         Identity                                      Default
      podman-machine-default ssh://user@127.0.0.1:54826/run/user/1000/podman/podman.sock c:\Users\username\.ssh\podman-machine-default false
      podman-machine-default-root ssh://root@127.0.0.1:54826/run/podman/podman.sock c:\Users\username\.ssh\podman-machine-default true

      Example default rootless connection:

      Name                        URI                                                         Identity                                      Default
      podman-machine-default ssh://user@127.0.0.1:54826/run/user/1000/podman/podman.sock c:\Users\username\.ssh\podman-machine-default true
      podman-machine-default-root ssh://root@127.0.0.1:54826/run/podman/podman.sock c:\Users\username\.ssh\podman-machine-default false

      Continue with the next steps only if the default connection is not the rootful connection to your Podman machine.

    2. Set the Podman machine in rootful mode:

      $ podman machine set --rootful
    3. Restart the Podman machine:

      $ podman machine stop
      $ podman machine start
    4. Verify that Podman default connection points to the rootful connection:

      $ podman system connection ls

      Continue with the next steps only if the default connection is not the rootful connection to your Podman machine.

    5. Set the Podman machine, such as podman-machine-default in rootful mode:

      $ podman system connection default podman-machine-default-root
    6. Restart the Podman machine:

      $ podman machine stop
      $ podman machine start

    Verification

    1. The Podman default connection is the rootful connection to your Podman machine:

      $ podman system connection ls

    Warning about Docker compatibility mode

    Issue

    When running the Podman provider, a warning shows regarding Docker compatibility mode on the dashboard:

    ⚠️ Docker Socket Compatibility: Podman is not emulating the default Docker socket path: '/var/run/docker.sock'. Docker-specific tools may not work. See troubleshooting page on podman-desktop.io for more information.

    This might appear when either:

    • The Docker socket is not mounted correctly.
    • Docker Desktop is also being ran at the same time.

    Solution

    1. Stop Docker Desktop (if installed).

    2. On macOS, Run the podman-mac-helper binary:

      $ sudo podman-mac-helper install
    3. Restart the Podman machine to recreate and activate the default Docker socket path.

    Note: If Docker Desktop is started again, it will automatically re-alias the default Docker socket location and the Podman compatibilty warning will re-appear.

    - + \ No newline at end of file diff --git a/docs/working-with-containers.html b/docs/working-with-containers.html index 70490baa1a2..5b6030c99c3 100644 --- a/docs/working-with-containers.html +++ b/docs/working-with-containers.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/working-with-containers/creating-a-pod.html b/docs/working-with-containers/creating-a-pod.html index 7d72c0a3803..802f64adc6a 100644 --- a/docs/working-with-containers/creating-a-pod.html +++ b/docs/working-with-containers/creating-a-pod.html @@ -13,13 +13,13 @@ - +

    Creating a pod from selected containers

    With Podman Desktop, you can create a pod from your selected containers, and run the pod on the Podman container engine.

    Consider running containers in a pod to:

    1. Expose your frontend application to the public network.
    2. Protect your database container in a private network.

    Prerequisites

    • You are using the Podman container engine.
    • Your containers, such as database and frontend, running or stopped, are available on the Containers page.
    • The frontend container is configured to access the service exposed by the database container on localhost, such as localhost:6379.

    Procedure

    1. Go to Containers.
    2. Click the checkbox in the container line for your containers, such as database and frontend.
    3. Click .
    4. In the Copy containers to a pod screen:
      1. Name of the pod: enter your pod name, such as my-pod.
      2. All selected ports will be exposed:
        1. Select frontend.
        2. Clear database.
    5. Click Create Pod.

    Verification

    1. Go to Pods.
    2. Click your pod, such as my-pod.
    3. Go to Logs: see the combined logs from the two containers.
    4. Go to Summary: see the containers.
    5. Click frontend-podified.
    6. Click .
    7. Your browser opens the service exposed by your frontend-podified container.
    8. Go to Containers: see the running containers.
    - + \ No newline at end of file diff --git a/docs/working-with-containers/images.html b/docs/working-with-containers/images.html index 242e1cbc161..b7040714f93 100644 --- a/docs/working-with-containers/images.html +++ b/docs/working-with-containers/images.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/working-with-containers/images/building-an-image.html b/docs/working-with-containers/images/building-an-image.html index 25d6d8d6fca..886aa9c29b6 100644 --- a/docs/working-with-containers/images/building-an-image.html +++ b/docs/working-with-containers/images/building-an-image.html @@ -13,13 +13,13 @@ - +

    Building an image on your container engine

    With Podman Desktop, you can build an image from a Containerfile on your container engine.

    Prerequisites

    • Your Containerfile: Containerfile or Dockerfile.

    Procedure

    1. Go to Images.
    2. Click Build an image.
    3. On the Build Image from Containerfile screen
      1. Containerfile path: select the Containerfile or Dockerfile to build.
      2. Image Name: enter your image name, such as my-image. If you want to push the image to a registry, use the fully qualified image name that your registry requires, such as quay.io/my-repository/my-image, ghcr.io/my-repository/my-image, or docker.io/my-repository/my-image.
      3. Click Build.
      4. Click Done.

    Verification

    1. Go to Images.
    2. : Enter your image name, such as quay.io/my-repository/my-image, ghcr.io/my-repository/my-image, or docker.io/my-repository/my-image.
    3. Click the line with your image name.
    4. Go to History.
      1. Click the content area to activate it.
      2. Enter Ctrl + F on Windows and Linux, or + F on macOS to start searching in the content.
    5. Go to Inspect.
      1. Click the content area to activate it.
      2. Enter Ctrl + F on Windows and Linux, or + F on macOS to start searching in the content.
    6. Click ..
      1. You see the Create a container screen.
    - + \ No newline at end of file diff --git a/docs/working-with-containers/images/pulling-an-image.html b/docs/working-with-containers/images/pulling-an-image.html index 40aefaa0d3f..856058cc23b 100644 --- a/docs/working-with-containers/images/pulling-an-image.html +++ b/docs/working-with-containers/images/pulling-an-image.html @@ -13,13 +13,13 @@ - +

    Pulling an image to your container engine

    With Podman Desktop, you can pull an image from a registry, to your container engine.

    Prerequisites

    • The image is available in a registry.
    • If the registry or the image are not publicly available, you configured access to the registry on Podman Desktop in Settings > Registries.

    Procedure

    1. Go to Images.
    2. Click Pull an image.
    3. On the Image to Pull screen:
      1. Image to pull: enter the image name, such as quay.io/podman/hello. Prefer the fully qualified image name that specifies the registry, to the short name that might lead to registry resolution mistakes.
      2. Click Pull image.
    4. Click Done.

    Verification

    1. Go to Images.
    2. Click the image name you pulled, such as quay.io/podman/hello. Podman Desktop always displays the fully qualified image name.
    3. Go to Summary.
    4. Go to History.
      1. Click the output area.
      2. Enter Ctrl + F on Windows and Linux, or + F on macOS to start searching in the content.
    5. Go to Inspect.
      1. Click the output area.
      2. Enter Ctrl + F on Windows and Linux, or + F on macOS to start searching in the content.
    - + \ No newline at end of file diff --git a/docs/working-with-containers/images/pushing-an-image-to-a-registry.html b/docs/working-with-containers/images/pushing-an-image-to-a-registry.html index 2689c95b32a..a03a9befdc4 100644 --- a/docs/working-with-containers/images/pushing-an-image-to-a-registry.html +++ b/docs/working-with-containers/images/pushing-an-image-to-a-registry.html @@ -13,14 +13,14 @@ - +

    Pushing an image to a registry

    With Podman Desktop, you can push an image to registries.

    Prerequisites

    • You have configured your registry Settings > Registries.
    • You have built an image, which name is the fully qualified name required for your registry, such as quay.io/my-repository/my-image, ghcr.io/my-repository/my-image, or docker.io/my-repository/my-image. Ensure that the image name includes the registry where to publish the image. To publish on quay.io/repository the image my-image, the FQN image name should be quay.io/repository/my-image.

    Procedure

    1. Go to Images.
    2. On your image line, click > Push Image.
    3. Select the Image tag for your registry.
    4. Click Push Image.
    5. Click Done.

    Verification

    1. Go to your container registry.
    2. Find your image.
    - + \ No newline at end of file diff --git a/docs/working-with-containers/registries.html b/docs/working-with-containers/registries.html index c7aebc0f2df..0a9e88682e1 100644 --- a/docs/working-with-containers/registries.html +++ b/docs/working-with-containers/registries.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/docs/working-with-containers/registries/authenticating-to-a-preconfigured-registry.html b/docs/working-with-containers/registries/authenticating-to-a-preconfigured-registry.html index be577c643a8..097fafd47b1 100644 --- a/docs/working-with-containers/registries/authenticating-to-a-preconfigured-registry.html +++ b/docs/working-with-containers/registries/authenticating-to-a-preconfigured-registry.html @@ -13,13 +13,13 @@ - +

    Authenticating to a pre-configured registry

    With Podman Desktop, you can authenticate to a set of pre-configured registries:

    • Red Hat Quay
    • Docker Hub
    • GitHub
    • Google Container registry

    Prerequisites

    • You have credentials on a pre-configured image registry.

    Procedure

    1. Go to Settings > Registries.

    2. On your registry line, click Configure.

      1. User name: Enter your user name.
      2. Password: Enter your password or OAuth secret.

    Verification

    1. Go to Images.
    2. You can pull a private image from the registry.
    3. You can push an image to the registry:
      1. Build an image the fully qualified name required for your registry, such as quay.io/my-repository/my-image, ghcr.io/my-repository/my-image, or docker.io/my-repository/my-image.
      2. On your image line, click .
      3. The contextual menu has a Push Image entry.
    - + \ No newline at end of file diff --git a/docs/working-with-containers/registries/insecure-registry.html b/docs/working-with-containers/registries/insecure-registry.html index 013435165a0..8736af9b34e 100644 --- a/docs/working-with-containers/registries/insecure-registry.html +++ b/docs/working-with-containers/registries/insecure-registry.html @@ -13,13 +13,13 @@ - +

    Adding an Insecure Registry to Podman Desktop

    In this guide, you will learn how to add an insecure registry to Podman Desktop. An insecure registry allows you to pull and push container images either over an unencrypted HTTP connection, or a HTTPS connection with a self-signed unverified certificate. Please note that using an insecure registry can expose your data to security risks, so it's recommended to use secure connections with a verifiable certificate whenever possible.

    Prerequisites

    • Podman installed and running (VM if on macOS or Windows).

    Procedure

    1. Add your insecure registry within Settings > Registries.

    2. Click "Yes" to the insecure registry warning.

    Podman Desktop Registry Warning

    1. SSH into the Podman Machine to edit registries.conf.
    $ podman machine ssh [optional-machine-name]
    1. Open registries.conf.
    $ sudo vi /etc/containers/registries.conf
    1. Add the insecure registry: Add a new [[registry]] section for the URL of the insecure registry you want to use. For example, if your insecure registry is located at http://registry.example.com, add the following lines:
    [[registry]]
    location = registry.example.com
    insecure = true

    If you have multiple registries, you can add one [[registry]] block per registry.

    1. Save and exit the file.

    2. Restart Podman by the CLI or through Podman Desktop.

    $ podman machine stop
    $ podman machine start
    1. Pull or push container images: You can now use Podman Desktop to pull or push container images from/to the insecure registry you added.
    - + \ No newline at end of file diff --git a/docs/working-with-containers/starting-a-container.html b/docs/working-with-containers/starting-a-container.html index de920dcc0bc..238db4b7ac8 100644 --- a/docs/working-with-containers/starting-a-container.html +++ b/docs/working-with-containers/starting-a-container.html @@ -13,14 +13,14 @@ - +

    Starting a container on your container engine

    With Podman Desktop, you can start a container from an image on your container engine. You can interact with the running container by using the terminal in Podman Desktop, or by opening your browser to the exposed ports.

    Prerequisites

    • The Images list has your image, such as quay.io/podman/hello.

    Procedure

    1. Go to Images.
    2. On the line with your image name, such as quay.io/podman/hello, click .
    3. On the Create a container screen, review the configuration.
    4. Click Start Container.

    Verification

    1. Go to Containers.
    2. : Enter your image name, such as quay.io/podman/hello, to find your running container.
    3. Click your running container name.
    4. To view logs:
      1. Go to Logs.
      2. Browse the content.
    5. To inspect the container:
      1. Go to Inspect.
      2. Click the content area to activate it.
      3. Enter Ctrl + F on Windows and Linux, or + F on macOS to start searching in the content.
    6. To generate Kubernetes YAML, when your container engine is Podman:
      1. Go to Kube.
      2. Click the content area to activate it.
      3. Enter Ctrl + F on Windows and Linux, or + F on macOS to start searching in the content.
      4. Copy the content to a YAML file.
      5. Later, you can reuse this file to start a container in Podman from Kubernetes YAML, or to start a pod in Kubernetes.
    7. To interact with the container terminal:
      1. Go to Terminal.
      2. Click the content area to activate the terminal.
      3. Enter your commands.
    8. To interact with the exposed ports:
      1. Click .
      2. Your browser opens a page to the first exposed port on localhost.
    9. To deploy to your current Kubernetes context, when you container engine is Podman:
      1. Click .
      2. Review the Deploy generated pod to Kubernetes screen.
      3. Click .
    10. To stop the container:
    11. Click .
    12. To delete the container:
    13. Click .
    - + \ No newline at end of file diff --git a/docs/working-with-containers/switching-podman-machine-default-connection.html b/docs/working-with-containers/switching-podman-machine-default-connection.html index 233e21b72f0..6aa53c89a03 100644 --- a/docs/working-with-containers/switching-podman-machine-default-connection.html +++ b/docs/working-with-containers/switching-podman-machine-default-connection.html @@ -13,13 +13,13 @@ - +

    Setting Podman machine default connection

    Each Podman machine exposes two connections:

    • rootless
    • rootful

    Podman has one default connection.

    Podman Desktop, and other tools, such as Kind, connect to the default connection.

    After an event that might have changed the default Podman machine connection, such as creating another Podman machine, consider verifying and setting the default connection.

    Procedure

    1. List Podman machine connections, in a terminal:

      $ podman system connection ls
    2. Set the Podman machine default connection to your desired connection, such as podman-machine-default-root, in a terminal:

      $ podman system connection default podman-machine-default-root
    3. List Podman machine connections, to verify which is the default, in a terminal:

      $ podman system connection ls
    4. Restart the Podman machine that has the default connection:

      $ podman mahine stop
      $ podman machine start
    5. Refresh Podman Desktop connection to Podman: click the icon to open the Troubleshooting page, and click the Reconnect providers button.

    Verification

    • Podman Desktop lists images, containers, and pods that are accessible via the desired Podman machine connection.
    - + \ No newline at end of file diff --git a/downloads.html b/downloads.html index 4f4f34f23b9..2aa9bbf1848 100644 --- a/downloads.html +++ b/downloads.html @@ -13,13 +13,13 @@ - +

    Downloads

    Windows

    Podman Desktop for Windows

    Download NowWindows installer x64, version
    Other Windows downloads:
    Installer:
    Portable binary:
    Installer for restricted environments:
    Package Managers Guide

    Using winget? Install in one command:

    winget install -e --id RedHat.Podman-Desktop

    macOS

    Podman Desktop for macOS

    Download NowUniversal *.dmg, version

    Using Brew? Install in one command:

    brew install podman-desktop

    Linux

    Podman Desktop for Linux

    Download NowLinux *.flatpak, version
    Other Linux downloads:
    AMD64 binary (tar.gz)

    Using Flathub ? Install in one command:

    flatpak install flathub io.podman_desktop.PodmanDesktop
    - + \ No newline at end of file diff --git a/downloads/linux.html b/downloads/linux.html index 2a00825cdef..718b4ffecb1 100644 --- a/downloads/linux.html +++ b/downloads/linux.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/downloads/macos.html b/downloads/macos.html index ab62679c8b4..c8a1bbf6402 100644 --- a/downloads/macos.html +++ b/downloads/macos.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/downloads/windows.html b/downloads/windows.html index 69a65094210..747f4ad47ba 100644 --- a/downloads/windows.html +++ b/downloads/windows.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/extend.html b/extend.html index 237430878b3..1225533604f 100644 --- a/extend.html +++ b/extend.html @@ -13,13 +13,13 @@ - +

    Extend capabilities with Docker Desktop extensions.

    Podman Desktop is able to use Docker Desktop UI plug-ins by adding a wrapper to intercept the API calls.

    By adding a Docker Desktop extension, you can extend the capabilities of Podman Desktop.

    Extend with Docker Desktop extensionsExtend with Docker Desktop extensionsReuse Docker Desktop extensionsReuse Docker Desktop extensions

    Extend capabilities with Podman Desktop plug-ins.

    Podman Desktop is using plug-ins under the hood to manage the different container engine.

    By adding a new plugin, you can extend the capabilities of Podman Desktop.

    For example plug a new container engine like Podman, Docker, or use Lima.

    Extensibility diagramExtensibility diagram

    Extensions are written in JavaScript/Typescript
    It consumes a TypeScript definition of the extension model.

    More extension points

    Several extension points exists in addition to adding a Provider connection.

    User interaction, dialogs, launching commands are among the possible ways to extend Podman Desktop

    - + \ No newline at end of file diff --git a/features.html b/features.html index e76fa3e696d..b5b4b83954e 100644 --- a/features.html +++ b/features.html @@ -13,13 +13,13 @@ - +

    Manage containers

    List, Search, Inspect, Connect, Run and Stop containers.

    Manage containersManage containers
    Pull image and manage registriesPull image and manage registries

    Build, Pull and Push images

    Build images from the tool.

    Pull and push images by managing registries.

    Run containers from these images

    Management from the tray icon

    Check status and start/stop container engines.

    Create new machine if needed as well as start or stop Podman machines directly from the tray icon.

    Quickly check activity status and stay updated without losing focus from other tasks.

    Manage Podman MachineManage Podman Machine
    Manage Podman MachineManage Podman Machine

    Manage Podman resources

    View allocated memory, CPU and storage.

    Create new machine if needed

    Create and start Pods with Podman

    Select containers to run as a Pod.

    Play Kubernetes YAML locally without Kubernetes.

    Generate Kubernetes YAML from Pods.

    Manage PodsManage Pods
    Pull image and manage registriesPull image and manage registries

    Import Docker Desktop extensions

    Specify OCI image of a Docker Desktop extension to import it.

    For example: security scanner or deploy to OpenShift extensions.

    - + \ No newline at end of file diff --git a/img/blog/podman-desktop-release-1.4/juggling.png b/img/blog/podman-desktop-release-1.4/juggling.png new file mode 100644 index 0000000000000000000000000000000000000000..be9a616d33f66451627febb3f9d9e9029c0be88f GIT binary patch literal 597226 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�`Le_eICpmI>HCa0uo*%) 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

    wE8ixcgL6@x?SrAa$8$mhx=9Gj35umu+4H|em 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

    e&l|Y49Ral%O#|XtwNVqE1ewM)|j-AY54 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

    sOhUqB0!$`Gl3oQSb(Lq& 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�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≧fk2|K?Y$^;KBO(^^{z!8R48Wtp?8S}&t` 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 m7hz-0YND?>e zUH>Rr3&bp~L+zRzR8QNAg=3CAL8wm9eVp`}dkuP5Ihz%(>iKyFpD5hoR+X~?$r974 z7mC`65SfflJO$+Zcvi}jcrfCoo$da#Uw?VuDq7lR)yD&riX^~b7;<84eD_vWJgIP= zekBo4uUjhdCiw@$DMT5FkZs~gI~Y#jF?hY;Hvi%%@;=59Z*pWq5QTQMxpHOjI%s{K z@Ou*wbl=e|U+?Cu=gW`oiQV6xYrhi;!HFBQHgnAH znI4F&_PO-(IqX70BNK#!w%`=6E86?uv&o*5jqad|CECOnQr|lkZD9Nxq@l4rF}!2Ki~8 z@ptx?Rioxhka#U?&HVkO@RD0JEOHM%Pd;9_f5R7^&6MeHsj*p*hra2#hP5(q1lI8u zG&CciM5rkI+U$sKFV`}PKwTZ3dYctC5VhFbS11t`pOX{Q9|S{=9Yv`ic3`SttK*rY zfQOHNy^FxSo3-@@?fbYTG<2wtrHbAQh}T^wWG8y&rCPTaBAdZE`AnW<=QPL5nT5a? za?WyWX8hO&bI$@(8qr{A-h!I|`GM^;qSz5?3R=NS>NzqZ+v@Fg`wo-3EJ!t+wg`c^ z{J6h0g+h^DkBT5iFOst_)4!uWKd_|7)&fz{)<0sXm069!E1<0tNG7FzG1*67$&NiF zN$}oN>LxFH3O|7`o7Y?Xdb>S%bDtK_lXtK1Wx3r7ZX6U)BhpF~n=N)?lX!n5{LDxC zzf`2CjF>DCaUh-E?sqNWT7&&Zl-4g}D3EVl0_L!6Tpx1G zo%14BEAB=zYDy2yDrk8u6KF-r#ED_^f-w#VvRl0ZJlH~#`d`$rE6@tT4XQMq*}uU_ z{+2WobS^STSgR#nWu^5rG{BjR#B!1_k}g>2**h*8%0-(disxM@qLntXkp);jpr*@e z_5@~O@|Y1L)Hs>@((5d`n3`<+X?^lJ+Xy8k_Q2bh7E{nOZ$02g*SHxyP3t`$7schT z#oVs~(P*mGh5~{4FvIQg zlpqm^4}O}-O4pX*$KKW;pVB8RpC*%}$y7x038;HWXE|b;^w~c;=6-<}H(mkAw?n+o zx~QeoC@X)5%?BxcKp1TzaTP*RZF@Ve7&Hpp_7R5xt;|-@0|r{SWZ@%6r4VGCG#5OW z@ggf%v-wk92a$9fi9^*I5^c3>R54V$Nm9EFY5%>)`MDcp6Ja+xe<+7vw{HV@fo&xl z1s_*OjVt3=?=ZD2eCMH2%X(vkp&IpLn_WWRBs-fv4?aK1`KxTBq~l@Ph^J^ipG`R% zZDVI6X+UYAVB6iLm;KzgG^4Fef#ps&yK#%ll_nVG?tAoH?^~IFhb$IK3jfL=uX@LR;(E8=j>*YSQVxIM%k-tv7VP-LzIwVcx1XHRZl4=UB}*K*-sHl59&6!y*p}=QvNv_k}oN=Z_E z4v9DrK=OfUA(?h7zLq??|G|o~$;Ut%1CR#Dcre=9!TFB{!DbVo6kVJ#a9U5Ri%6`P`XH>~Zcpkh_XtFdHsj*$bAR-g#re^7} zorpm2C@~)Ww3!FmhOIe!Ag8DHvyMy~i?r1D*h*eor$mTe9ZuA5n&%3TrMGgdkK3m5J{>c8Iz{d=6-rZ%;i z+x^#(Ny!W6p(Xw8-a<7!!lGEH6LLWO2J@7Ex=lo|+z1WiVj2PUJ*ak;KiQcnS3IE7 zd7g-(J73sG&rUJKi^G4oQtfqPfeT!LzvlF*;!u9W%1UME>#sTM($a>k2OTy}e*}(I z*HieUz3bx~QfISzi)LVN?`|i*TP&o!D;m%$@Y!GdQg~6+=OY{?K=`BCL}bN>@-*{j zIDe56OiA)^^kviaQEbfwjf7<h9>zNGQ_ToMM`q zdSEU&v#6p9H((R(Ic@6+OD)e^#CY**GOWfO^!#7pC3#bR(=*nI9y}!({A)!?))!rY zT!w3TF=Hn*l>lXr1ew_NXxRLg4@hjm2Z(?3F13iP*=X{F!%MecSWi(|G2xjLt*R^t z-&49-{QLksP8$Gl1c2DDfHwix-7|KR46r z3VGur_yJAM^?D~ggoKz;x;-DnCA4v0A5UV4HacO5Vq45k!iaZ@4(RWnl)Qmoa6HDc z=T6;d3bNzaYV3?gDE+}A7K2eLnA64KaPorip=ySdL+*&UX6F_Av2lnrY1Q(w0ln;T2?wbP01I22!MD#3 zXq{swLooR)E{N7m&#D3roM(A|Xe9Ax{TE0W!@gjW(JFr49pTBu>2_P8`z8@Bf`HbGd6S90j`ew&LbTquhHO~ zI5xY#eMD?&V&p;^E-71-nv9YMyO3tNRPbGh(41xm zDjrYc@X>%{X=?ADI}H&wS}CKVFT(CZVz!JL*SIm87LFvg5Pu{TZS0KYqX$T%=9bDH@NGLn4PqSjh6@S`&=#l_OLKb2#|naASpE9F8PY%D z7pt|CTzN?$9XpZ>k47y=na)Lr1q|mw`k(DVIh?O$en-mS>5ILYC;*LCQ60~Z<-sMD zeP;Ky8I)fQXoJh#Of#<1c*)K8Z&A)ZGQ>R){xtq3or@-*&Ish$HnA3Mc7=xFa8vUM zQ^eFsG^3@l>SE7T(%yr8N8|;0w&^?L;debxZ$HwScOUx(eJl*%(w9Ew%=%oYhLJWX z6X)-fC%rbrjp)5w!4*)#E6n&fv<2}(n!dN3)n34oWY$q;rlCnbp*Y&5t*G<20q22X zJ=p(K0g8T&qd0jz1lN5&*J_8o5&-hJ*6N)1;YOR9nH5xPDyb)@6%|$^VjY-;OTKso zr+HtKrq*ax^lm-X{V^P!*ES!207)+FOm((I!=?Bbzz_%b{4t^1?%PN#ebKB3Q!iIb zqQe7ZX;upTOn>`h!9Ops-AI038!a`D@lXluJa@6;8_r7=;3KqWfuulr*I)+tzI z{H!SI8~O&pOF>2=n?BG53D&1D1?SL6cHz4}wgOt8z=}P)pWeDT_#Ak`I2Qzj{7J9dw{L zt8vDvS&sV19Dn{!NfI8cS|8PN5GWst6hKkqi==~>n7Pol)$I&fgL|q>;ASXR72h+56$~W(4k-)h1<7GAV`5!NLuf&c@57fLPIwYor(1D z0TE7DzpFp*kOmu_MCf8$$d`DK;{~@7YLt3{IK{wu{)TnSMZ99Tf17YtbiQ}E2}g%24LW^NdjPrWjZ`^%h`3(Amo=G>#~Xk_&6e*W2& zck4s5&2&AAmdK(EllE?PK0k;a@I`^dVQca1XUe@opIf-B#yQlvx@Q;O;=4JLd2eHE z&ewhdwj57ENI0#H)|}U0Le8%HuJh{>bE@Q%T$B-nFR(_dZjE|<9C5JzkxZ=jW0r$w z%pXKb0uPv6wyViM1_e$)x+JE~b4U3+RtWYVlj05z4w5H-e$6i~?iR%f4g%%Uj8A4u zmOEVJBu_@-^86!3$Qw>9AdK5XiZ?t>WGK-4Q$C-pL8P>yX{B3Xc-_$wx32XIC}NL# z`MdBUStLN?;Z*;r{FmZAcuvrd-)p5e+V%oM5Y%Aj^c8sy4K(#0J96$%86)=2SHHMS zbhTzN_Ub-xsJ`DhfPnpGh4&^(uO+|WFTU3#mB{C=o5YSYDQy?{LQ<)oR~e_tVBlIc zUus-}bWoH9ti5HU092g)!PR0&V2CDLt(_o!RM+h@H>izXOuiW%V;*>}5(=&0-io{Q z2`k1Q2Gv@X>{QuUk6S>sW&ym|+!JvP#4J6J5+fykrG-qZ;i7mly6&3x^$VNv7 z-FEZ|&DvSsyw@40W1+`g_7m5#q+;uA`x_^bC?&vEifvVHWOHu{Ww9G3N50=&B5_Yo zA~;)rJ(8~)L>cDjJ|9Q4LQ~b!ZxtGMV@C%<2wQQmBIl8xeUx`<-@zK-aY$eJE5Ko3 zrR9nLA5Y&H-gdbEo!Yjo)wXS|w$^sFyV|R*)wXSSU2SuE#ga9A2G3p9Aw6AA04YFU$cF21Dtnxa3`%Jb9J?swjMfSp$$HKv zXv#8jvXf9zCySCL1|wKn<{AnnA_={p1+*otlg-sxc1-%7xJ^OYQS<`Y1iUY=0e6gc z7DxbrjUPPU&%Vci!69a`U{HM1Kl4?LdTVA9=X3$RrG&@LrNBT;cK3#r9UQ2YLl_sa zguuYy!l_U($V8=zYw(>777eqYVy-DKSy9IHklE5*%SxeL6Lo%5Pz|ZBu^cs%?3y{? zG|>BD3xXTI8>ZBCSqMu0YFB~VNiBh{O8?|%c%H}L(fL7IZ0}Ut)Akbe87Z2?1Ys=0 z2(U%u1{VGHVNau^3NSg6mbb zwERMjF1f9m#A>_NjO#P1zwb^@v)6K(E5Rd&B<^+nSII;26Pzk`6cwLT_B&`>-Owv! zwkv+f2^$E9L2ddHjmPI3KnMgLU+R+uYHK3$3VAYX@RDl3u>W{-QB%YD7H!LoSN;2j zGNh&ggT^F>>{))~yGvXu5+zd;Qot&d;yCq>pYhP*BZBOQucM%ELsrKG5YwrYdiw&f1n|rq=pV=rv7bJ{={eQc_PQh z$4`XZWK58O1jYRPe!AIXb=sAP&Se1ueUzefzTA>^yxsx(r~N!zsu`Xuman(pTx*K! z)=bRJjXSI9Mbp~w!RbK8jiJeT;zcGAf&|pT?KF@Tvi`X2?po!8HSVmxK0vIsS%V3k zu90(monRt!X(qP$+23NWgvt5^edcUfguv8yQxQ;k!%0tG@AOw*`)Pf|(e~=0$#lzm zNFw@|FT2!K7xHlTOHs<9tNi4wxaXb!CsL)+XCtRJ9^Q`=VB2#-E-CsX+v4bNPJVX~ zx2bq)Y{M@Bu-^ z{(W~5P{{S$6qX4BoE=q?DlY)xIW3=dq6Eypzsgy}dN@ef_-O3W6%i5=lrD6AJ!m8@ zD%wK=W#Vp1pv943@62A`OprnzmlAxE)JGX}MFHh|G1nhiJeFD00j2n-p=IXKJ;LZG z*ue59Ii%XbF5l(qG2Z&WKT!T|!O0f7spme2nWDE0@(rpdM8KqzM`R7tC3h#%d;~_O zS7mbJ3pot?k4|$w_+ZQudtOvL4y8DWdt1kVWa){gYVU?R4lG`xW4vz)Gsd{p1Y+l2 z`_&50Z;js})W|NrAtq7QEbyvP;&bJ%m68X97CwDw50YuIdBOtJNWYwG7cpnwjGWc` z^4FPuT-AX#m<1n0^~oLo#!dH;ZR1*4LJ4nb8y(mD-y5Rd*;MUHil(H=D zYb2#QlEk!z{p)PF2**~49Z6Rpr-M+O-T0Q$i{G9?aaj}2OKeVLU=q_vUsR2Rrm6>} zd63BzfB}5PzR6sGtkv~-HE+@*{zPWBMrOC|Ve;rbd$VE?ZgU!>B)fdwe+LEh0Dmg- zDc|yj)?i3TkO~V6^9I^r6ElD;V)u+XMuchByKOKQm>L%EKa9OHruL7i3pEh!>?zV) z$C+lKZXyu%!A#dPK4UysUR+5nb~~(;?+@9C_)k11BaAt#DxSq+uD#kUTIMJMdC`ze zN6hh?Ox9TG=q8Qco5R1IRw_O;P!zgtSda=e5!Q!G^w#JcW7+j(G7JAa%JD|N>iz6_ z{1WLd1M(>ZB_>3Q2E&-mE0L~EE0Pzc#n6H3oR5b-)xqdi)mpI-8W&@;l^ zN4y9oIswiH)RoYy8R2?s;RXD4vCkiE#7sZVfBVQS3hL||vx2zuwP+NhH!RKW51Jvp zjHJ`awmpP&VBetM8)TLJG`KjNZX*{k6!F^2fZ*?5uovnwu99hPRXfDPA}$#tsDW?# ztUo*^>jG(AOo3U%|U&0`192ZeVw`_*uXhsCG|1szOj~VQ(RL+x8?*zV{5m zNFtV>oz3`T;#vn!+{?OsOAboC_L+;^dJGT@3&5p8%>NdkDk`FTKurNi*04yzBG&&2 z9*N&H+b`<7sM_@+ydA1QiKvadbGxc#e3`{dX=>b86$=M3*bgv7!K4OC1iD8-mRQKk zfzR`xw)71}7EqoNJ8aprt%TKUbCxhqVqfCE? zfo3@<;$+5|Oe;vD4q9s>-99%%c~AG^8s+Ji!tD1owbO*WYYe_L;z@b@6!Y5Od1k6s zj9IzfGOBm}Xk6*O6kk%#B8U8~@5ImKyF;R?t$SFh2U!i#)$GAV#Xs6#R6pWmYV=y* zO5`0*qAJ%1TSBXrG9a5A;C%} zopg17aB`BB>-xxCjjiRyRhtOj@FV#s;XK^>Bi3~9XPxU?Wc}{%Gl`X+M6UvplL&^E z<9fY0`mceg4X$wcoz0nDi>eL3Ox$a`{%V_g8=#u4?(G-ktCe^) zVVYi4m!5my=nOZEAK^2i00{FkPOl7r`$U|I(Zx+@H^$Jt$>?cx-0TMF4FwjMt?Xjp z=D$v$?r;+1(pVBV+~9IOL!wDmnn!Cpi=5TqX{1`t`92Hj%#$&(^;-yf?XCueqeFw07XWFFXcUuY55%d7g;tQ=PW zE*sd4X;X_+A`mQm3Wmf*OKH7t1m`-B`N(wvBJS>7#D4pgAV1rpnLw~^Mv-Mn@XSXr zOF8h&T~%Qu<8S!EHr$S=jBx1v)E{pdGH&d}@$TvSEeLP z@S>0O;!(FP1?_2L$U08!$`DWshB_Fue&qG7%S~{`45ROU0bYg_9Rvq;{RD(S>Sms) z8u?-(anhj149BOa17Jxz^AH;DqR9SE_B(Ait+pd`2_bM{gJuABclungZy{6aLC3Nt zI%IC(BR*G|y6rnCJgV(RucB}}SsR2K-d8jU+1bN?q%f?7l1MA~h^)gRh|*};2;KOe?^hvkj5}f`dk?YKm2oyX z=t0V5FyOJ?A*H)lk&b{Dv8Gy=kh*@UP&3L{X#DWqbDs_1L`lUH35wrxl= z-oR87pWwloTAFt2M?NrOVvvgV(zgl3siz07@s^L>p`U<%!o<}4T?rdrSgQSBX3}&j zd8AC;0#~#S@*wM$s90ILnRvl$&x4z{0bsVpaBDE+1DTb`wz{!#hHpl;`uFglC57EW zs$PTh?LU-Q?hAAt2n^WA!ltM#BXEw21d%A0ycCg|LAX&&SjLwHO(My~{!N}12mbGI zS|!<9xd};5^THpv2IH^Z7Q9K2EXQw5GPcFD^VSmpV~jrYm)oARhZQccs{N;rY|qb7 zn)(-@aAA8sHpMr?pZvYRaaS?yf5kXaUkyd@e-PBs+}9()@E@*MT!fpQL?aJ&BeUK7 zj=R@FAReZ;ziwzy&E|A-W`33#TpEI%JgA2R3&Ti42@s2B6v8G(-A&3~x-y$2lY6?7 z!#WIe*oMQZ;1J4FVnW@SgOSFB6%*lvf2rF;l>G$@Z5voSH-|Q%Wyn>jfGEQjLJC+Q z5{_Q>e-`{avCHodmuKq4-lnNW$Kr~WGE&&3xBe$4? zrz~SAZQcdKTIc9tQ&21w+(Jy#d#RgpNrQs>QG@dw>&oXDxu!;sm!bQ!^xo-h+!D#J z&g>rTA1lo{8zaVq(RRBSnPOEpU)RAtFH!xRgMpj&qORdId(1Klnsixqr6Je*|DOC9cX{L`9?!NqhUDT(V)K(~ia!bg@L%)MHoa-y$0t)B)sE89-uH zezim(kt8UC?5Fj7iP@VZJB#ZZ$IzYp%*^+1aNQvkH&6jcXUl&>aSX2=PO)nG%oSp(&*QRf;&dv$BS5h)IZAHTTlT1h=U@eq^Y8qBJ zV9Y1eT5eGrn&~*NV3Yng=tI)$T3*P>!@VOL>SYL1K{m`U%(!i=pi=LiKH3w!lkcBvZ;qnYZ<%derc}o6$P@k z=$xMYMuvjMx;gW8u(urw0}?dlu&p|rOA0-o8MUff+>R`>OmzlG$$hZJN4U~gmVw=B z9n=z_K+%R`!Cd2775ee3q~Ur>2C4)?QVNsnFV-uaoyofycu3f>=kM08)QMwAxF5`O60xd7a(XO z+;_=&wYNVTj0e&p9vKf6bMNl*_XH$v1)s27SeW>d<|9DILL2J(+X=oJHcYqlKrnc$ zE!z^Dh!D#u#2d`z*yVyl1ZV#wil_W|X(AR z7(pk^qDj3gwm_`e7#-$BMY|hu|B%ndvQD3?O2af!{vZ=7clf@!0}D&Gz0zf&m|4Pj z2eWmrJN$uwA+2FF&|os6=E0cFd{s&MgKbtGQix*awZ^r>fe#^S!GdB- z(8Z-=hQnp&6V!DBlN7hS@-$)dQgApNLu#1mHLFOsJq1&fQAA8yFPDl;PvFD=VuF{$ zKP|n>G%unBLFPKm&UYQr8pIw}u40?9NgF6Fg?YMsX8LSKx)|uRw7*x*u11P7g+lkd zTaD*;pI4f!`gv)B?;<-)$0l=sCua)BYz)+>*sv+ZBRuq_Y;rBEq%cr3$#T1&=*#n6 zteJ`6V|ck6l9g=Ti^ygF*L^|kq;AeSFj0lCx+pj$1U=qLlMAHna;n(`^`A;q^|3-D zszJjL;^&r2@BASg`3tBcy2m+&!yzhb3+GH6$h4TKA)bdJjNyWlnI}H)2#G#RAKHFv zd3uFm~FHhdW>KHMLi|hI(_;`woP_VudF_~_;vj%Su$1lz+R1dKfNhG5r z?jMOooInIqc@g8uj72MJYwANP@_L4QV%CT*`B?DZC5iewq?=Htr_*2aaP*XrWo|=> z$^PU?EvCLBF3!&1d&(-QVWc(Lc@01PA$FNrbyi!oxiq98w?`$K`=G?bXo`(M0cy>8 zpHo<$qYkkyUMuQEvzIUf2Eb3@c&t2luH$FBpNVJ6U;qY2hy4Hz4#&*3DCfuv(Mkuu0j@)1}=#Iiu^7GN%5h+tBDD9PBE;~~y z1-vgjgxcGb2)F!gR4=p>)aq~r7P|!sjay9SoEJnT<17i9oSZ~`{OmC+F`X}fn)Xxn%7+2COx# z(G)jG9)WDJ@wVUF)6t2+)U*XR_Q?HznNer^wf)9(;Fn^%p1f!Lj12ij1Kb%~)~xUe z`vXM}A!w+t3^Bm;6F5m8x2YJQKbsG`)T~2}7sNH=3M7=Pk@bGxyIty)S~C1XQXx$o z1z%+MJ))2ana~~;&_QlO9eIR3Og~m@)Rg((6sr;;T*lg(ZftB!RnssG>>bAVPq^wazd0pHD<t$vi%f1o` z$98)^Qg&}!E|?c_XRNi)f`aLhcFwp2X=LcLi};ulmbT4J&x&~iPXqbdh5XwBMgl(O z5&^oqPMARA=%~vlJ%!JqG!^xB6#mri;Oxp&j?Kh>7gT{*;`iqWA?8O4 z9$gIi3xKZn_fagV+0~Lg&zNQ+W86H%wQ7?K8b;uU)~DOF(D=$tzt;wUkN>JP6{{QnGo9%W)aM3-|%!?8S{1cF~b* ztjcTLY)`fgik?A|sqn4X9g2KOYtobXd@r4z-@ZhS)Yf-t>{$TP{t3-$R7I7*N zQ7Rri@+Od3c~TeUm*9g)1^FOB?y2(E{FYPL3X}^;;NR}8ZEy#9-NP$ErltFj&gX2=6!R zDR@GKIxP?8OZ>v@=9r`f5{%PysT`YBcdZHm=8)uTDD`B%tlx(Y((#l2#DP8QfU~Yf zW>gfGmGebb6sGVPx)F}V5d|ls1A#y*Yda`FmVgs@eHHHQ9fHc&uOS;7`uhim`E_Nm z&yohS)mpqAK-!+ zY+%{ibMAT!etr+2u$le(qcp{`qD!2Y-#HfN)KYsO6?1Gg^{!Jo^na_)Fm$HhOackn z0RU(pR3@<7%(TSf*i`u^tQX`(z@V5cUeN82H=Iq?vm_>b7F!CV#7t^SS~wp<@_HPAZ8gG4v~bk_{vdZzac1Ce z!S*rn>!jSNT=*vh0(v`N<9A>%!7JbL7R?23R zzmh^-A$E!)So$V*PA?q&CAG?!u$oZ(nc7oU^=U4&q21F^&lmN) z-^KS+3&PU3v+~M+n`wH2CAymJ4&3ETWR($rxg&)s^>KLWxR#p4{xM`#7c~zF)8+19ou>PI(7My$9UTVsoDaaxPJ?Gy4DP>UG{20h zs$zYJ9@f9Vd9}907V9xHL4D5%OkxaLP(=i{5NTzTkP9>fr^P_m8E|3#0$K3!?M-5U zpPC1mH0S#8E@Zo;B2>hULS*^s)TF|EYrWA@ZyDrr<7SgYBB{@6D^O5xdkk#1m*>!~ zp=PLtG3c+9^i4aB`ysP%!Z4~{EoGH^_Y$rv`1JWwi)L)u@I-QQ7IcE2*us$5oWiY) zbG^Kn`waf|Q?ako0dPF$O&jTrGI&fcj7$~~j#^eL6nQG%sp4jga;iiqF0RN4qAJa5 zdxJ-K>Ss=mjfxwl)%>A94SOr7p*__JOpFYqWjcc)EBK%nOME)|PTC@L!&^*r)^W){ zT7sfwIORtyca%`qBgVV#eCbD$g9PXOmG($%>dNqcHOLYjj&uo6QzGcY>H!XiF}Yb4 zpgaKjS-)q^&?tg=y;VZXr@X^T3ZGa83wf@p6)0Ls)A`%^w3bof{!_GH3*WVXgxg^trzaM)vU zIFa?Xsxy}g?~~K!Vv-Pxlfbmp9Lct}TUVfm*4D4nY-C=dmMln+190c^&MZiD3Ax^C@q7bdDNOl%7B>v_`uHD~ZcvS@(h6 z55;k;i+x_1vFq|HEqY{1<9d%=-TS3zWb6iDSP|`l3ByR zeyc&UcYI~B@-;RivHg8sSRkw6S{?hmw+51}dc~_H_%2b#N!cI!(%Z>jhcZE=sSI*6 zN^Zt%1rq@0iLz8)Ol&|O{~*6)2q$QG?bJV|j&Rlr(1R{P`x#v`3(Qe)LJIid7_w|& zte5Hki0-)*UGH3qUZ4#-}X1o^0d@d^tRF zyQm#Z9M0fv-?vQi(;bvv7F>(1UnfY{tFmonVD{AUxUdgB>Sb$NBRqRMJ(5d$hy}W4afqRlC_ClR&=0~P)?SE zpY6}negI~oV~vX)OjU2}=2?rm7l)e^tNh`&$bu@}cD9r5f;l$K$Mfv+Q4Y#^CyF1L z!h!{Sp0B?}N$=_z8G}|&TN#-B->CrI^J|9V)T|&+^Rc7(mCrdGU}l+FjrdfEK5nr< zFgkRd!Q3zZVpmu=2v1@;p7apsmV-AEnE^wrf4xPoR<`gQ9jx&f)Jb6=)C#g_A>Fey zoOn8FiKLpK?+BFY>-PuNnH~`QJK;`F5RiECdbPB;3`Eu_cDMi!Tl*^$MdS8&lF1mn zZ2;WsjYADqs>}=TRq9>1J#-kCekht6H$*+AI#`e#atE@42 z@|QZb<+y;g7`eEOrfnp|>b=hK%B7WpAF6EWUn)63-AoB$1()J^vbY*nBE_a7M(<&n z7?| zv=V%=R8rqkqyB0I8Ig7)&pW|w^;*qBro*RRES6hONb2Dxj8zd|(sK{9S9ymkwU&3G zRGW-GFtYSDv&2cmB&n$9T_F2`P>AJ5nl(&+uD^eYyPl6AG07;s#hwydJdL<})~pZq z9+w9mq=%G<6D?HPXhcDcIEFD+yBIswckW3p+>;#+hg)fNvY6XE`p3~YNSjt#H?--( z;{C&GaOq|xo0%*yjF@;Sfo-n1Cs#{SL*XCcQL~q=-VM`gaJ61+VO>~7=dqO|W^6#M zJU){XmhklkM4St>`Q_}hftJ705zS~$iC0(5NuzAKe3>nK^+@2Yy0)70(Bt-Ht|wA% zH~eKb%!Pk3yM+yp_fc}}+9bRwWI+eCR&-vY)IZ5B2mzbW9#DP5q(a>JLHkz(eXKqH z&YK0!TjMA}2?XSAl}`}L?FuV#{-A<8mcFOmE{`+OgbYGBBQvjgv4tg=uK5~*NfDHs zXxc){FDKIuXg8~AH0Xn`BmFq>h(tHqAdR{iL>&$q9{!-GWbt`vUTOXgw>znr!6HwI z?zuO~?YL~&0qWGDssYC+!blF(m~LmT=l z8dvE{hDh?8TEI2%a%JRLl`R#$w}NmB8N*ah?ki$$xRqvXd(C=%@LS3u$gVQ&o^C*X z4ayu+kjiS&JA5@^>Lmm0?=NDFyS*bDu)IzKS)2KT{LVyKo8`|LQgS#QdD9fkt6Lw7 zR+(?IasJ=veD?4IihQT@rSVLKW16xl4@{)j2BTs|$Nb~!Ds3&TTkI8OB<{M1`c{90 zg6O@XhE8<1ovxrJ#-8?c_MbI`xRVYE=Huy45NA7F!n9+fiTP7_hV-gkH=!C zuQE>!Rb%FuCfjSdt>R`i&=e!trx=yfD`2J?-hkisc@EC!8QpkrztMFPPvn(yP7p z68EpXzOocqc0?CGEqbqMw->S2b3LPSIsb>n~^t6?@Z&%3*RE^ zW8z7>+(icYn%Q>j7d^T5`#<;;z-xyWlMXZg4$k!@Q0}y)h1xi6X^xIwg?G(TYOFs~ zcG1O)0@soI1q=33L)3pqm^mf5pBL)MECG1(PiIdYGPpx`Dg*tL$&HMcfs{)*C7w#Z zDbGe|DA-o*rC+rwAX-$0bd@*sdN9_}$&0KLke%lO{aCUSB{%%-;iB z|HUis++_9Q)MRF7LMTSC;XjA_Sf(>Y^7X*?WyLTx|UqcJ(BNiydT!dk1C>_D^Lf>+2ax`NPL z{I}odbx-G{kH<}EPA~_nn&$cYcW}6-6|=uS54zbofUeAP~NGW7{=+h zM>^{&NEz-c(}n1g+4=9-xU~YM$_Qn*Gh7o2aM{g{tBV&3Kyk=-lX}(Rf|#_!O1?A| zH1kpgnBOqkS1|6#(sI*22mFEzw23dI<&lu&Xj;&giba?pK%Sh~%juu;AK!Hmrn~d^ ze&dO~H_I$LdC{(tTUutf%{w7Nb`&7pv$Mp;D|_>iAlCcz&_ALYM9%p;(*jiLMUQ}7 zsx^v>Vv_SO{dW_s&Q@W@mM|aghsM%e0OibA9)fJjIPR0ERBQm8G;>K`{$vf21mAV<-(&0|;W%ZPu+~jVSlVoZo z%1i1SeJ825rX@QDS3U^jER*UE|7$(Qo8;V6bv#ubA_}^IfRl7`xP5mj8@=EZ7o2V_ zpIXY}@&V2~Lo~8NujC6T+EzizyPvI(HRGv7BfnNaIp0?LaNwk&{9s_DA^>vIEvfyX z=)sJHDp-EPy>Pf!I_kIe>A$^xfS-f0b(C|rDv3nMaYgm8jv@B?vOx=|+==2U@wD-P zj%l3}l1jF_@hV-LE8mw5e1lch?nlEE(92DarZ=T|X#Y5{L(Mnj&SAH5XL@3fl%57; zD5VGkwNH8&z04MHx-j24A%Oq>9iR;K)iR)796$9iBpWTMomegv%d4<@U6{GMn)ZKx zbo>}l+_{$d1?hiFvn>bEcC8*@hCxjSWB(}sai~dqO+ixGXG)sBR+vgRL;>f+V9%^= zKw5ewP{N_4u6}Mnjy;1RWuapz3YjhL1abOpVfmsY;h+(jx$Ans*5B#+vF4Se-_B!G zef$*y!W1K<4?8wz(cKQ|lI-6>#Sr zpoO*Tb{rnla^{q4VLdzARGjh44zA0f1N%PBLg?KTh0Cou;#IyJW$Ec-EeOZvfxpR4 zIjH407h@4dd(oQi%R`cc@XKG6n{lI$LDLU$W&aDv=Jq9PPhw~!KKn7D=maUgOAad# zXD%3;h&%hi&|{JY&wAPQCEGn5k`NgngmwA?P5A*oTV)p#{*kp>6nPQIWojHP5-54H zcw9^=2itGE`?l#3`wgaI;j?WrF@Oejhnh)CJNK~M&b_1oqs35Nq!qxuA+_y%=!c76ud54D9I!^XmbJC17) z_sJIDNq1o8U#X<8wHO#ASuRX*tp|VovHeNpcV9>{r=0^OaIe>kfnQh~1C)A=zkj4# zmU9zG3yK(FDIyR#MPVK)%$>il=yEYyT(%gDy$%!h>_buWjB@pR4n_>pnR;W9@Bx5Q zWrT+M_BMkcs~N#(dCgsvV6sr0`~V>|PGp6c@XQTngo=Pw3j&e$dgF}VfivV3GLdz+ znJ#3b+75O(X}B6 zuT^APTkpQ0oJ{C%9sVZ=Mk(*^Ma4viMOGO~W_En-$3}oQ&zs@lF1@Qa1|i>R@jH~0 zqAj-)yC;i4;d$y0J98qOPp3b83Y+U=yojGBu6zui|NiuBGQP-S=b{96MG(OmA9NC& z=B%$=ekyt|&vC8u%`URi^apCSfN58CJ!!pa^!19xxck(cnUQ`wK-u{cEYd%^LOvwg zxZ9`pShg0xuLWq17izYhM>aVRw_pztxD&qN@BN9;x@8D-MB9Gbb1+Rj`69ZrnyOi8 zNYTmHDGjg*iPNlugcM&ZGlmGR+@KQS`Lmknbsz{Y+d0rZZ=bo_#|*qdj7R8s9YAn- zb*+JO+*54b-5SXW6XYS~aEI>$G{iBGq0Ses^YU>b&3+LF(@ZpphICi+kMa++Oe)+g z?!1}nf<+t5w_6M085wwWK)Y70V4o^x>W$sWu*`F-b`~SzmlXY$PwVqk4pyR6UJ4n0 z!n+7BNgiHPDGi}yv))EbtCDkC{qiekErx z6|sMX*e7i|mFbFY28x|B>_&ZT(55ztPw&Tdm5HgWdZXToVRsDDa)e&zHh6encC<)# zK;C}Z6aL31wZx-*^nEAQ%QSK{+dp$<)__ubf9xluI%?+scNQ+FoQlqv|8o$UMZBdO zkFzI)lSgeT0jqBYwMuq)@6;G7#)Ry3Y>Tje#;8=G!%@H?Dh_Ygyxg4O2py|`%C4)n zr8M78_hiAr>rT;HrbG=H>E|q6C`~^Tl_6go15KZ6XsCVx`c_CFIa?~FRU z1+GfFc|B%(INt0=!S+3Bk~(_P7}4&H?1}9r%&1_{p)z3c6w8sLDm3JYunh2WEO&-Z^xde*P^q2Dc>+QV*D9_Nw-3z6Q-|Jo9T-biE7O?NGTyC~`r(IO+m3-(P zZMknxg2FqhmOR8?8K=m|N-4~wX9R?*>LmHm^IGZ^i*vcDgvM)cuRaIT@Virlo^~MK zj-`bwPHmz4A08jia$HhK*Rfr@-Z~+gLYE#lM4)BGS$Q1S^lJCKgVl-VmWsV=w-8ox zV!KLP9x1wXA9CR$?Y0r^AMJXupL-X*6I&;YqWBD}UeiyEb@{1%Llb>7rxm$)$vRwb z5`#BnOS`*W+CC$Wu*Y+rR5vXX-oie=F5-e7f3%qvZjgbW>sRZ4HDL-h`yr8M4wwe2 z7KjG?(jtS|)>QiH8Kt5E&>1u^yaf2Y5H74ntg2p$GRZS2svl$Qp~nK*W$0T}0(TP! z0{HPe8)^)R)7{C<3Rc@2)MP65b6m>}jSA3N_ue;L<%aOY*gM?4Z_`fe2Dysv=x@27 zBe^>}I{^0mk>d?~Sp7mJaS~NL)t?tt9t21Xn&w!rzipMFg3|hS5EnS}>ZtLFHltm6 z`3mUep?qHRu6z^&jqElmYr8^>e6K6NNR49(JWVVQuzZW}#qm8zncrwyjw8zDzVqdkk1c0LdI^&k-M%Y>|k3Vs!(0GT~O2S2zQ#- z174{8Z*oEV~nP1;_f3fb#^=zzad3WLPEzQn$ zD{fw1Je|jEv28VHNEjB_QmJk@HzXAHPVtsm{4a{@8qHUOo{d$!}*^kAvVsu zC_#zrKNkdE{=6ZwbjJg_V>MVGRQ$jf^@%D87&C5sr6+a&nNGLWtIa6r5dN=Fqt=qM zOy@g$kD+3GY&vOT9d$XE#S*VQ^Ex#r>f^L46~=_?5XAScg{#?Q5} zimJ!$PyV+>qc;n-(lgyQcsAwo9fpZ#Ig5(w)WX21zj5~9teGzND6p_o#&v0CBHE&B zTi!nH;b`|3z|MA`3_2`3y; z_UQc`_n_^@V7lCgu3OOm%c{)hub>*QaQth;C}oW^o>_)htpoiDp#4bNpzh= zur?cnP>%cSy@Y3^h+hR&8mI5NjTtK+iQTtVc6~F0ChJ}C=OJYrFjl*`xR)<^kqNT1 zYY9FFy3V(fY9`JM?^~@Y1`G_(gbV?%+9V93=Y`zNVAmpoAMLH3WWKGZ z@;Xyzsq|4le4neCMiRQF-c%}8w$w6H@4S4pD$UeQ#78=Fnda!uW8@dSNnU@cIsT_L zMdG95yUZ+0kQ)2XwGx%x-+VA-i6Yz!tAATbg={K;0;(j#pD2{<^GjTVo>%!a)7}6y8V_8u?KNCP?q3e7x(vyyED{jtcA;?j&kg~eS$@{ALYOs`t zAM-HT=ir4ZM}HpB+jTIpT;6gY8H{LU87$MFGh(h2Q29-#yt%=|r&`5%n)LeX1FLgWB>)hvJ80Yg_!quVjW<)3P)8yut4b2F4$scx;Hd7{6%ibwO z%ZfvS&t>SSdfhEYByOAhG#%3`LZhd?(=zKZ37`)6KX+MP_HmPgu~di9e4a7`(JX&} zvO5EO-A)%y9;Skt|G3ZO-KvS+*eP(?vIOji#c}$*!Vmdsl|D;h0_@(jq&HZU)%2vRS@4g z;e_6XWaDw7~-xJ2-1m(|E%*#G$@d4u0K;7!;}d;CfD(KEp6eUsn#O zlY}jOgf1Cs`dw=50PwMqu){dfGtR3;{-YM~dA*5q>WOBvGnw0gk?Xr3(f-&ZY~w%D zg1vGxa=u^UCqg95(N%}|LC)HN^o>`eWuJ9Fd!y~dD*AvGVs5q`(a(}K&xJy0h>TjV zcH}3EOph zjilvW@I+#m2vvh6WzB??zV~cd^4WRvV$mD2H7a{KKcOFC^iCei$!+?&Tl=xx;<|Mn zc?Lq$8gT2?8`Yg52-q^(6f!tvj(GbK!ZCY<-~(_Q1Sf&80XRDD0P0);hs|ExM8A5* zn+-AFbyw|{-i`d9$a+5Cub2;opYFA=MS-M#osymi)Zc{VKDK(s_8yOcyx41on@JeW z)W-@NmHRy;e&h`;|HlPzZKecuRRjOIzWyD#V-?pmZdMAS^~t}@IAHp6;I=y+9quFa zoRuoP)6OGl>C1}p61-ovPc1&Dfv`XX@7p>|sB_iUn`0emcGR(Iu{N63@Q6>#hDBt%zBNYh zy;>P#sw55S`fWb5+ZCC@D*@oX!S%`%rye;JLPS=6w-VgzYz;Gd7^#K+ojDFEQZG&V zd`DfAKTPU>vQ^|5kgi4EW$kcDEQBnV1)&F(DQ9~E&P52~7AN0g#5o*Lo$L%Iw|nNY zUAw-}Tv0c>>R*&8E1%Cba~fN4RygHfR<8}c**wQQX@0ybe{elaW$Q6~j*T;W96V-S zyu!S?@mt?5krQ$Q%U%5#R)wVJ9$pF&9-xVZe&w^xxf23ri_Budk-K&c2!ZF4;NAva z)9lRIRqAcO8oVL4#CdmHF<1P`=X^sdOoo4&=*;zEj79_Zs(vuSb#WMa=}qYRmrWQF zZ3@=Xcjk64ibEhgE6j6L*R1-1eO#_OIG{WVKT|Pe zhofEwSD{9Gxag|6GR~gBPx_5Kd!332#r*w#Diqn!?lUG|YfFnX9ma=%%ytHA{6PLtBK2R8#bHm_{S-U1LLQ?4m_j`ppMojTe_*wM38Oxh)%Len3;R%P8#Bpw=Qp2d9E!kiV7tZptEh8+pj2<6tJK{Hv3jZ0mSJ{AmV9^}|hNkyt&?oRJa?Fzy4RKGWa;%odyAIhK|()tQ4cyn7dWx)N%xP}l~Y52aP?fCsKGeU zgGSg#4y9~WL<<7hVXzl^;=XT%bH`Ger3L2UVFkE`FSQn9tbZ(@TgtxaIM3Mj`j-a# z?7bhQCvKd?zpISI8(1pKqL_3>*eAQZSVI-4$WM95NO$797~5GH!!ubX>1kENMZSzC zYOs}Nawj6=i~!D`EAb?G7v%~pCN>2|*iUSTunc~a{^DeZO8kYRBHd%RfueZ<1;CF2Wrm;U2}6@Qg^Gzi${HBY=hrms;_sJwPb^G@ z9JcK|wt}T|UQ28IHJ*ii{$E#b!4(DAwT%urgaRVnQYtA@(jh4z(j5Xycju6TA|N0k zFdz-mNY_x(9WyXPcMn6yFnm1E`+nz~b$-IV)?WMGSM7b->bDJU6fo&ou4u%?wzcJ7 zNt8Ao!?L^V6<5*dmp3rGV(bdNtk){5H7weFfZ;83e%tVuF5=i6(QK(N)G?X`?>QfN>gt*PIj+eAH%XRw8tf2 z4e#?#!korxF|zm={p7jy6UT#+i}jLr62i#`7D)Sy-%O1iUebNz%g`otamvLex5^$1 zMlFzzR0SOx)CM2)PZwnipVrUXEr<9X{Df!-xtsoJlrnC@@F4(48xy3m9cm4;dRY(= zmJ`DJFQF9?`-ogXCnD)W_`2rq9Wu~&DRX)zC+KA&>Zu2b6d#v?-kUv)q`v8et zf5>Guws=aH;sKgGK0zu9ahint#njf6P5Xr)FRAx(>#M7ZmXSZFhE1#3>T+@Y1;TxI z{kECXzYSr}hHopoQd=dtFxElpP4w44U zjyEoc&_n!?+p(L>SKS5;smmd+4_n-keUSZ9y0R0AJ>WI*I`?taLdn^;;i)E>NHpJl z<%L)ukfh-$#NWx;_?fc!u2(Qx!kIgv_rL$Iw7(aedtU`+@$d~B7yYO3KCe+03`kui zBYlE>WHLP4Mv(YlHfu%-OC-dV8b>6Pp~aF9wx=JJ2MgRsp~`XCRDfjhO%)4#9Ex(! z_TDo&w^&87`Wm_`Nx{U54-OPoJ`J|?be&~BS^gcz;~4G*w^i)6uuk@HSIi_c@cA+w zfs@0mQZHL>JHKgmXS=Ue(Z(q_hCDN-%#VJ@KjhgHWONn1}7Cc#Uq2?anq$%G7G6iWHAvC6b0?bo1ZZcB! zDisHZi-Iqcv7S&v!s3%8+igI}-j zsdm{_Qo+BaD1)TtMz(dSu5Tz^k83&Q;*$NW6&+6k{aa6}-05$g$l%@Wi)f~ucwU=r z@^1$Y2V57vWWJi-repEiFGlt;UP{)b-|v<2za`S-_y?@iX{j`5<51^vt&R80{GpYsH4Qr~VbcS`~82w z$Jt=sw7H)01M<+C6vhJBa(yDTtX8Q)hze9!U~n_zNQg)(xqU)wbodzV)Z^VxtK6j1 zh~o`X6HBm7@of_GKj`@?|Nf?#m}o2ldlJum7*R_SG$Amyb)b7Yvh31!?jw1j88VL0 zi$nL3E_XUswXKDgbu#2s-z>;ZzK%Me%@5NGn`U@?5DeUDwVu}+(ds&QBd9F+s{=2J z?NytJ2d&i!2b8&QdO?xsMCu-W3Z=#lBXAooKI(gTdlO>nKmcLW{iqvQCGtzXyz0*= zF^^7y6u#mJT_17M`q80LRW~W&Zz<0C){ht=G0ZmYGpxgi$0F1SAbmHg{|4{{+Ap5O z5V#`$IU;jwfdmKm`ICmLA3cM`=77fgYb*)}(m0%3{q$wQk&Pi&Yo*&?u$1bF*(z~; zk{UD9!=o9s7beGUcl1}&V)2E~Wg4TdI8OKbr-awi%DK^USiA<}u(Lp;DaSq2^#%=R z^TrBr1Mg5j{&mA@Zv*e3#mLjE9^%pqKA8#DN8LtJ$TNJh5<$u%&`D$K3D$}M$tJzUL{d`yZ4dZtdEk8Zb z+0QRDcSQdN(>cnozdXp{W2@s{km*Bh=5g%3tT8W&zyaO6+73M{f2mql#B2Izqd~W0 zO!4n^IJqOhQ`1nctDhMZ2{R9Dx1bFLW@FwN{*CO2+~lo)TQEwjI$=JoYjxZDkQ(Is z#4U|5SIt?<3~OvJs%_vjw@E#DdPt|&nk?P9cQHjhj(2m)9U>CjRYX)NpYtDhd}A}U z79uwFvT%QW+1|vzAnU*IC0S9qUfetr;D&eEEns<|Gh`6}y3!BrZH(DaUES{`#m)*Z z|G>Y?X$;w84P_^Y22Xdr{X@-RVr{5YkKSG}vRr70TAL&v51pr{Wzd^2V zA&$<5{$zu$ltD3f+ygHIkIP$i2ZPwXzT;PBjF8Odc_+fCutSuq#p2Z5Tk&7L zNfHa2_LdS4xMjy$(K&4lb+wnZsJ~9(W?o+_q<#ixo;4>8M&jxHQT+%xv>J=7uDF-V#6S*+ysKr5QI3{Q>{dw*PlvapTUJc6)5v z;mG#Xog%5WU5c>GW7q((M`g4J)9z;d8wkegmwd**OR^rBQOvn7O2wb0y_m*Uv^izx zvQqpqYlHjTZaY%aJ@8o?Z`8rkAn{%8gb3YjRzHm+->@?RTGO#NQ7q}Z<9o&9x_Q^! z?r3i@TB|?&c?eJu3hmSt@lo*{?eyi--K0En1LSldpDdtDC2qX|e%FO*@__+yFT79T z%gf4jF7UrkWLlrJ+*l&W$v8XW`INC5WnJ(;a|~L45`0C2)olzpW zi+ch^a1V%)o#B$nK zcb#Qt)DOTcwd_YaQ^~P_75jXH%KSe8uQv5a^!oLmlQV%t&+{@NG>;dIY{Ex5f^dzJ z1oy@bEQ0ZFZw&&t@_vQ`JB~RZ4MHI5O5SjUDpceopcvcfMYU0v^Qpvok%_t$A|UVu zsCctu@!@`;)&e)+IPi75V`_n>48)z-HCNLKSsR>sI5^Xn0Z*02o|_|8?FiEF!$ex5 zN9P)<#pj)K=FWN{6C_Q&($Sy8@px@}9E8a^&I!2?bbZO|Sel!z;8rbjew)%M%KhuM zx6YJMK(Ckw3p+B`OkWMpzD-}u9$49CZyAY+`mL-ca?aKvA71>6T`jbowr<&CCg&m! zn!*q~vR;UFea)v{tiqIFoPn=9@pnpyk$n+yz48P}+#m~l#VK)ik%)0e)^spAXZoVn z6vtIOFOQ;``ZXFC!?uL*j2Eahm3JnK?mkX0{oF*>ihgWAVoUMHJ-N+LnyAA7xwGjPnZ=m2RvY0{_XV~|DmW)aaTfgNANu1Ur+g z!vD&uC5Gh$pV?-S(`JulckQC?GnjEPz96NA5d zZ-xoMj*hA(zNYA>X!D?FkoFEo#9CH<)uJPw#<*>xE=OT zkFNmI)xP*bGNyk(G{pBck4LF{WxC7O^E&cB?D?lhT@erRmLT^jwx4_jmAJ-Z`xLw4 z_D6CV_;`#Mvkl~P*EqQ`y#~NGivMI>V*M3N{{xj@5b@s9mwG1_&5v0Esm=W}JCOqcUG`WHPc{Lk?Dd+);X_XjY${0%K$m3_E`eHIviK3fwG>v)tbUmS&xv26x;{B$ z2ibzoOpn37OMR`#j<@f|U=PZP=mcJfx7(hdu5zPyR6HJI8%H=qq{*83#RH7Fh}o`R zK`u};P(owHw^5wAQY0h*c2Oy(E-h!;0kYZmc@gj}F@ADfd_q)Fk#R(YU$$v4JEtt- z`v*-orLr+e8Ms5P`uzLyDp3uUgd(+Z{P`=Hg14Ytkp8LXHREH?xt$ue#QJ!?E*T{<}ZVaeVZkSw2XopTE+AZX0EKfe^H^afHVw z5>7_-rwXpG{MvKF+h15F#EfWlngXkGX}`xhC|5Veot;Iy)xPie-CJ9Vj|xuCVSN1~ z6?%fb?VKOhZc25#GXEQ)a7k{e_$Ttq`#6m)Co|YP zw<`3kW-7<*cN!i`Lgrx}=(Am@Bm(gP>APQ1j6_LO$j>?6o5P?Y)kh>OkmxaVz<1^RxO{*Ho-5Sih3c-TeaLZv z$>fzS$*=q@Qtb>CJ|#q7qVpRx2Ie{3qIq_0bDky57iIUcC=3L2k3=15EFnUe5iPuL|;)OUJs)!ud+RaK;?CeB)WMxVLF(u!9-4_zCT3 z;`rX#XOHKiC~b3Q^!fbLNZBq64+{RaOW1xMkgg6HPPfKr8@$if2cB)e-haLJmcd0L z_(ufexia0Iqw`L=@Zc-4n?{I8q4)C;F`XH^`ndI^%Ja_3`dX=#@O_uzi^?aE0>@wc z`b#If+Rc&vXD#G2@$dhkt~{o^2bp-;{Sj{(X>H){Y zsYZgo%y8*>SBgcf-~>iGmxM)wHMnL z@QYltD*A~QM|2cgp_D!&fNJ;>I$^#j47vo?ri!L3LHiItQ(AmemY>!;EN`|~1Uj#p zzn$n;FP;h?bDZNMml-BiP5s26icx_nhzokbztHU7sQv#+)a$%10QbyZ^JFx(^PtTM z^P_>16}y${%5>=a-!Y#0tSeu+J8J}KNBz^GaK~>94Z1o%vDA$rF=6h;#cMyQM717- zyC!SMix@MN2H~=`UU`ymtCl}mMxfF;4~kcE4()5779!1=0Z$TsVBtc}`7y#{U9yJmW}UJitVT%Mjf0n8qpluLCc3)S|#a9SyoH z?`wEO^GIz^N&U^}?Z3_7Doo zyw?Vq@iFl;*9iBsDhZIUccm*SyHgV6uV=9GcKfGKfrH`ZsgNyG3m1@V&(yy;CRGa# zGuXNL&Gnn^N%z_VwxakUc2Oblxpf#-<;|2%W!Ba|ubV6rpngwak|S9sSc?P1X; z=l&(@Cr_&oh>fFdu6TWdZXG-tu@Rh|7xH8q3!#5og*8Ke41@hHM6LMD8t)|g)$vZ1 zaesgQtXa1K=!A0PWF#fIpbsvWk#PK0AbvvgDVT08#L!44sMK!TVVs0x{-_>i@$UhK zFVva+V)ok`hIVr<)81~b1}C33lTv+afKkb+08nzd&KrdS40ay_4ci)^@xovUSU@1$ zc;1CVY}45cDZf}2m2li)oq3`K^$CjRf3?FiU4*!Ku<7o3ecq{iEbu=q)r-{&t`l6a zFBm+vlMxI&RzLbMW076B$l(U?-g0QsmX)-Uv_k7rgo;flZ z@$@rzC1q$|&(#=!BhVP-kSfOf0ft0J0J$UGT@rxtSJ)? ztKCbaQ088Y2oO3xF!o-4saON8#UkJn;4=Jk@=&492Be<3N)4)E3xzYh{Yx9TR{_0K z<%ng|peM}1Xe~Sm+t!0aa1V|qh;oJnxkb*bM8H<8#JC@Uzt?pUO>!m|$yIBZA|CmQ zc3}JtOMSNsi#xf#Tdac**T>>=>&8x+fDhEhPPLQ~eUS8HPSC}XKq zQunS=7btzVrJ1=#eEsOpEjA36d)v`I>*I3;8{(Ob%YaQYhogT)s1hA|V!}DZ%BfMl z8{8l)s^#SY(iiDLs^=T~=w7n1SRAF5ib)Q0rAR0k~>FpK>m$eKfSj9#m6;lK8zkB=mee^=+N|hnLW8WNhJP zy~nxi%5kO1A5kauJQK6k2XEhF(x9+UU44d=K01HBM~?N4uUhVUs7gJE%+wGvj>zY+ zAN+3)8?eq5Uk6VkwJ%=-XKq*cyNj1OQGTxZ9zBwCLeO^`=Q{W$>bB+0-{0twUTlL6 zFDsUMSTtIlUVDPeT{$zD!KPTV^u>Qt)VSO~E7Q55{!!C2o}d25C(oPH;V1whu0yO% zI)=Ucn>Fk2_8fi4#_cb5Pk=QvTe2RHPW~o-lxl$|0Xs3iE^E0cVCI-;DJ$2*F!m$= zqxd`-RAB?V{oe+x{(l>A$jojAe&~6x62V%ap zzYoWM9WHwH(VIMNsO*sJN!u}ads>OF>GG?s`)Vp8sECS&N-tw+GNdxt)#rmP7{m|# zWj=!Ck)mR)5?#?Gm=2yP4>K4JjfC>*;R!GuK1YsTSt<%{&3t^v{Lfqz0HCE-Rglw- zw_~Op+ZIq(m##VOp~QYuVxEuia!_%8I2nAdSf_iSwfBMpu;jF=GYYWJWzwD3R&Kd^ zvppUmr{l~^X9G+w1)}5&1Nq2lYq?htuEsq z%ZlK{gs|&fM9Kca9Re$)RI@FiX*rVXV`u7cGjBId5e9(Uj+wdW#l+q@eA_i(vK`8l zW~)Ms`juoyL~xgqFMXXhrLK(`EncEy%Z+cMnGx@9i}&PJ7Kru-`?1>+9G_k;^|T_V z_SKUdE@jRsy-NQ!M78lGA|~wD^B#*kesKj<1l=(jY+^E=o*G>I#<*zzg$^BZIT~oS zQX1lX_I2)qzg4~)j|u^jF`t-RZJ?Ll7`OepTm_T4ME zNDd}h(SdUXR}m*a5B57xo8dl)p_Y-K2cI507S2rT;T;?&FsZ}=4ivjP8D!-D%@NXo zq3`6EOMWy&ferPl%YJ3q4r=AYuc@aRs`F+@JROuowQvSzOKMN4UAm|5uOZkH-HM?W zZI{I8*89tQ_Zk-k3G627#|u(a@T?r7CyC}a`9p5ct1hyY3A-Eyo^(H<(T_godnx{l z@xc4ld#)dQ@dpXgXabq*!PccvhuHC86g{-5BGkf8YS#Q?)~q`mrJ4bb%v1hqQTB%J zm^zo5NSQ8QFsD2HaFo^~<`joCG(j)3hy16@wysxD3)o+p(fy2HtlS@-+IOUzAl#W@ z8$d)zHh3Za$x1Mzf{Nj5ZIbe4#8rII_^_Q4--L?E*sj<`;K|D>t;P#5yVe))DLQ5) z?TUVL3t9iC#w!cVG%w^xhVkBczH5#vB+vg~1O$&`s<9b<^LO~dO{+^Q{tAq#l{$WC zG@VM=kJ_6bgtdLWk*I@ANE`3B`En3lJ?t9|Y&+jFsbox8hugx@s(V@!pS5)Qi=-`p zyCaj$lDf12qQudhq;GU-0Cm_jMz`Jj<&jMHh>R=Fp z@t=|2DoeBEAWwz`pYz zuzYBrd-(=>%aa2#2NPM|o7WD>hxOeUY*f`jxIty8y*d&VW^j2(*y0@Ue|dn2O6sJC zX=3$%rwP4cM{#VLP>JzK(74U-Z!7`oI|-}i6t5&2XIEeRbXFdOhO;sRQLHj+S|Pc< z4C0M2a#TvB{Q{$y%t}_`0YBsuU9hK2!qY|>(7o#y$pCUgiu^E@Q*V&6z;J26*Ogpb zNW26R)ce@j^Zr2d{?Yx_u!S+ANv&>GL#SFzY}I@NfIDvNu3J4MVwZKh_{JmK%t;D1GC!?p@ z{&)qMfqrj?ql5@ASfxgx3;aG(Dbs5O(X-R#*19TdX@3tO$><0$`mx164Qc$0lQ?`$sGbzL*sc%Mkfs=g?O zh*{{vAI%s%Jv$(3l)$2uH@Yd@wKi*cH+HNUXz*g({;820?7S9*knR3US%g9l#pjw4n`)|h*31g8fDZjd6d+M)Kfx#n7Kj^zvOvOveMF>_UbYx%C z(Wj0NSr8q@etJq{>hC3mZ#5;A4Jxp)&@oD*MpCw&3&2Hp$UeMTrWb=RKwVqMCr|3e zi3Z~94h)$RzP8z3+?rIpD23?7&u3ifgv5O7OO0$f>C72sU^sX?sS)qeFxaibJF+dG z^G9bU;?lk{*`AOhwJ5&sdvoZO2`=#V*6(~ajT-jvHrtP6dn|`|UrwSp`QVLdmU8rv z!Y}e^r=@h;&|0ER$DhyPz@Ul{{-4yTy$w4J&%FU-k{?1S1`25Zom?gCZ>ffC>PZkzxJ!?KV<1&R3|H1@4dYRnZ#T(1Y8qq__xe)YzEArdx2!qz-)|YGu}hyMoB?nf6FZ;9hSXh0 z8&YY>)aNK^*77~oaF{msE_crSO&VP?R%cqug97s4cFvsEO!ZK^JdKm&Sq*zM-Rjp{ zG+X}+EW~&(5G(BZ&!{<*%~NWq6+co?m;yc?C z$hNr4We`M*LkVmAc2Y>=P5KEfbS8~ZH`daGf%IA4GW0jby;E|8hJvE33wiE&+7uoGtC3BG3?OAff`bV*I5Hr`xeTDhbe(=z|F=GeV@nVK#LL zLHBa)jjzioSyy*`q7q!}|E>E6D~s+9JOQ9@g=9@s#v%r+t;*DnYB?F?5%gUQa~mRAQG(6cwNot}}!Az#3hvYpXcwDcdUEGqNu@EZTp(aZVG%!$+DdT4)3G zB;byB-VkxG+XjH)Oz`;j2o+y|2!=tdINm2r?L>u>w;%cE zJI0}gpv~dfsNrGr?-*ejCljG#5tq=GlT)ApEkw*FC04TjAxfhY9E#)Q#Nx<5?w_H6 z?Q!Ui%daR7+$4%se2CXa#h90c`Qbr#$O;z*W*hvQSBmll7|$#L!||>_hVn8cSEe1q zBC}x8XwAVVW3Ws#^hxCqeuzTI?q*uZokQ6NQg6+&=TN!xjmXEL)?=Ccd#i{I>f8vN`Y!bV^8$0@@pJb46&*YG>G6qw; z0xXCQN>gOUj>wq%Zx+5vQ3cQ81Jd{{iWFH;N!cM_n4zlk*H5|q34 z-sn-x4uVtO+5kNT}Naoc)!G&*>-gN4^&J~WQK_Et7Y zp*`@CBk5=;BI#7^hL?CVBh|}m@Fq%$udyt%_&U~k>_kFb=!@&+Cl{kkkpon%Zl$2^ z4%0-^kMivAc-L)6QU3)dXA7eVEfr|Px#0bmiv%G%Hn0yc&g-u5|FPi90i>~zfb1}` zc>IDAvCb^aYQoZ5s2t`kE%xt;*3iMkxDQp*sQ1eET)$a*_d8@g2!1?;>^vF9wGslg zwMHyYzDg-+KB}^*33- zu|KhcO`ESAn80(!SUkFI2Ti_~({>nU!K|AO%!fT&drQvuHj;7pTxV0`l|dOy^CX2| z-42Qv7WO9d_?+mHywABR_uYZt;+2)zxngC*mfP#V5A#D7MdiyQ1*BdhuP=;$DW}AL zbAlgj5sbaZq{D{BHw%&>`;!ysW7&Kqk2l=Ol|Dx1xYH+ev)IH&kVv&I{#qf-cT19O zL?H>milab^lJah#~z^?HJa?_Wj~_Ddo|Q;2-9a@t!XIJ>Ee;YjiJ>`jtZ8B$>nJ4jwV-r1rq9SN}PxC ziy|@Ja!|Q%7~SWXqUO`rCRH2^%57z=I!a*o{0KT2TuUYh4~}33x924@zaLS#ZVw1J zsmMO+Aei!h=DM40oe1J}H84^xhW)W>Jwb9gPO$!$>!7O(d*2$N)Pni1#NFxmxVT?(1Pthq&Dqqpo20#JE+J zBeL7Rn47BA6=BPP7e8+Dx1wWMXZyk|y>Bw_6!L86Z$8tK#iMuz3Cp?o+KS6mN=teB zd;euAAICnx<|@!#nIY(9)B0ahc{z<>LreTKqqna63tnHV)XTPxQE%?k{kiN|>+jCt z-ych)ljmIUFTJ9Fhj|sQ{9@D_RTDNO!<_$!2EdpF*K3Aj(PcG^7$g@hY!I|BNmQ$>CHJ@8ACk`!WNESM8_k!2{1jAAbn>Ay3~I zWOrp2B5;jgdrf=qoY~CSRry}=U0rT1aeYE%Y5DO=uROhEt;{^Y>W=pX3O(sCe>{oz zZSQh`j^1>?u4Di=YvFby%@j07)`h`HcU-o^?3mYDX8FXa!-msj-UG~W`4tcvEZJ4m zkG@5Hj{4+aK=uald2IT;R}=l=xAvvJu%6D?1#mInJMbL~7hAE^t2gI{&k!~r-W)XI zlkso+`V-Y_&9aeyWMUZ;)A*Ne-OFEb3YdQiJ^E1kMn>kK==5v8qw|0R2>SZ)$y&o` z5|gxhpmKcUitB;6ohA2SeG0)z!Y?Fe#e0K~EKA`AJrG7)m(HWNQjN0;o~YP;>FE_?!qtwZ)`hDb=C z`oLKhzrQFObmfG;GaoQ^^rWPqS~11i=0`NODj#EJf0~p)U}=jd;DCT@M^f5@1wdqZ=54p>QBfU` z%H4~L*<+j&ks7vv1IIS=>KXKe_r`CqN%Ejs#GRDa?%qi}Lj0$30D@J$ch2R0B=`+z zwdh9YPx*$S9%%>${Kp0uPr;M`?_VJIrBY@WBd*Zv?y}ft)-pO+_%a$tgLU+N>w2-p z_@2j>>n1q0&)eRpNoeR~{qt<1v-iGf>3RCK9m8JW*SEJ$l1Usy^FOxVr!aR4S(E>j zdPjKW@?$JML_YZE;<@iH_?Y&Ee*dPuR=Nok#H*Q$6w~A->kEJQC6fHJPSXj{!l3!p z_g~(xBbHt1hDWXAhf?0?)7#A2IWvFTTzgnA8$97t{HTyo_YZjlxZ<7AmNp`|z4$4g zJi7s*BcWZ@(=ym*`oE{nU zS$|gt{OrNRMQMRv`+JHRMLcYmIm!)>hzNe5^<%9m3tT4e#@XJio0q|;GfaXWubo_| zwp<5b1%4iaQlPxcOGcZ_wT+!OFNxYds5UYATUz&pzzByC-Za!-e`*f9GD~d->bdHF z5i1NJy#Ig~l!cOtuSejU*EEQ3&YhN{T9mx(Yc)o1^3Kn&2t>}ds=RSlpLuBGq%7b2B zR9xWAA}Z_7$|6x)!A1z%;3W2fb|razNwb&QglN3_Dz7$z%b1}(E|5@GrRHxH_!gzvN0V~P5wI|%>1Cs=&!dtvzi0js5RsKpmr%R&Gm|4idw5vDYF8^#? zr9epqAK}X;R8b~sMCKMJ=oW-#R`-~fh`zkMIDUSAdLIcob;Se{gbo5yn$Os^Fzl}* zX0}vvSU!!1Y@@GzoyLWl=|92WmaJQTtIV=C>lfD|cEw!DWE86kH?Ma@4_;@s#kOKY z_ICcJF$Ws?DzzAl-zkLm(e3F``gql_Q3J@E-Y!``T$2ZkY0DFOntFIyx&RnRl3WSd;3p2QTY0Fl_ZGtu1tKb)ieMRdI&9}r_DOZrRSM7Nn6KF{0choPxUXqyG^7_MY=);!Z>Kgr^FHWSmJ>}z; z)ek<$7de%#b}BZ{tW(g>LXT7l#dGsn<(MlLn1k4UG<@jK!$D7xE~ZlcoQ}p%ix0v- zFH4JE=lEGuvpi`ud(6RJS91&qD+rXL8BZBb3r^VVoAgu3n|w>eSj}hd{2~k5*lB`I zTxIj>VU@Mw`*a=9poqSW^Fq$^o>7xcn)WuhPEdOt#SDsgt?B! zStK!HqkD`dZxFi6es`y@^Qr - +

    Containers and Kubernetes for application developers

    Podman Desktop is an open source graphical tool enabling you to seamlessly work with containers and Kubernetes from your local environment.

    Podman Desktop home page

    Available on Windows, Mac and Linux

    Use the same UI across different operating systems

    features

    Build, run and manage containers.

    Build

    Build images from Containerfile or Dockerfile

    Run

    Pull images from remote registries

    Start / Stop / Restart containers

    Inspect

    Get a terminal in your container

    Inspect logs

    Push

    Push images to OCI registries

    Deploy & Test images on Kubernetes

    features

    Work with Pods and Kubernetes

    Working with pods

    Create Pods from existing containers

    Create, start, inspect and manage pods

    Working with Kubernetes

    Play Kubernetes YAML directly with Podman Engine

    Generate Kubernetes YAML from pods

    Deploy to existing Kubernetes environments

    Running Kubernetes on your workstation with Kind and Podman

    Configure

    Multiple configuration options

    Registries

    Manage OCI registries. Add/edit/delete registries.

    Proxy

    Configure your proxy settings.

    Resources Utilization

    Configure CPU/Memory/Disk of Podman machines.

    Container Engines

    Handle multiple container engines at the same time: Podman, Docker.

    extensibility

    Bring new features with Podman Desktop plug-ins or Docker Desktop Extensions.

    • Container engines are plugged through extension points
    • JavaScript extensions can contribute new behaviour
    • Reuse existing extensions such as Trivy and OpenShift directly in Podman Desktop

    Current Podman Desktop plugins: Podman, Docker, Lima, Kubernetes, and OpenShift Local with the Podman preset.

    Reuse Docker Desktop extensionsReuse Docker Desktop extensions

    update

    Install and keep up to date Podman

    Install Podman and other dependencies directly from Podman Desktop if not yet installed.

    Check for updates and get notified about new changes.

    Available on Windows and macOS!

    enterprise

    Enterprise ready

    Match configuration options.

    Code signing

    Signed binaries for both macOS and Windows

    Proxy

    Configure proxy within the tool. Avoid any painful files to edit.

    Registries

    Manage OCI registries. Add/edit/delete registries.

    - + \ No newline at end of file diff --git a/search.html b/search.html index 2981543ff5e..ecbb3e4da06 100644 --- a/search.html +++ b/search.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file