Skip to main content

6 posts tagged with "extensions"

View All Tags

Using CNCF projects with Podman Desktop

· 3 min read
Charlie Drage
Software Engineer

plane

Podman Desktop serves as a powerful tool for managing and visualizing cloud-native applications and can interact seamlessly with a range of CNCF (Cloud Native Computing Foundation) projects.

It's an accessible platform for developers working with single-container applications, multi-container configurations with Compose files, and complex, distributed applications on Kubernetes clusters.

Key features of Podman Desktop for CNCF projects

Podman Desktop brings together three powerful features for managing small to large-scale projects:

  • Container Management: Supports creating, running, and monitoring containers.
  • Compose Support: Allows you to deploy applications defined in Compose files. This is particularly useful for managing applications that require multiple services, such as web servers, databases, and caches.
  • Kubernetes Integration: Offers tools to manage multi-node Kubernetes clusters, making it ideal for handling more complex distributed applications that need orchestration across several pods and services. You can setup your own development cluster with Podman Desktop using our Minikube or Kind extensions.

Minikube

Minikube is a local Kubernetes development cluster which allows for an easy way to learn and develop for Kubernetes.

Minikube can be seamlessly integrated with Podman Desktop, enabling Kubernetes development workflows within Podman’s environment. This is made possible by installing the Minikube extension, which allows creating, managing, and deploying clusters directly from the Podman Desktop.

The following video provides a complete guide from installation to cluster creation:

Backstage

Backstage is an open-source platform for building developer portals, designed by Spotify. It empowers engineering teams to create customized, centralized hubs for managing and documenting their services, applications, and infrastructure. Backstage’s extensible architecture includes features for cataloging software components, organizing documentation, managing cloud resources, and tracking workflows.

A popular method for deploying Backstage is through a Helm chart. Once deployed, you can view Backstage’s services in the Kubernetes Dashboard to monitor components and ensure proper configuration:

backstage services

You can also access your deployed Backstage instance by using Podman Desktop's port forwarding feature. This feature allows you to securely forward a local port to the Backstage service running on your Kubernetes cluster, making it easy to access the instance from a local browser.

backstage port forward

Dapr

Dapr (Distributed Application Runtime) is an open-source, event-driven runtime designed to help developers build resilient, stateless, and stateful applications that can run seamlessly on cloud or edge environments.

Dapr abstracts the complexities of distributed systems, offering building blocks for service invocation, state management, publish/subscribe messaging, and resource bindings, which simplify the development of microservices and cloud-native applications.

Dapr can be deployed in a local environment using Podman by following their self-hosted podman setup.

To initialize Dapr with Podman after installing the Dapr CLI, execute the following command:

$ dapr init --container-runtime podman

Once initialized, you can manage and interact with Dapr directly within Podman Desktop:

dapr

Additionally, Podman Desktop provides a "Launch Browser" button, allowing quick and convenient access to the Dapr UI for monitoring and management:

dapr browser

Conclusion

Whether you’re managing Kubernetes clusters, harnessing the power of Backstage for developer portals, or deploying microservices with Dapr, Podman Desktop provides a unified environment to streamline your workflows.

Check out the list of graduate and incubating projects to discover even more possibilities with Podman Desktop.

Creating a MicroShift bootable image with Podman Desktop

· 7 min read
Charlie Drage
Software Engineer

banner

If you're unfamiliar with BootC, it offers an impressive method for deploying applications directly to bare metal from either a single Containerfile or a pre-existing bootc-supported image.

A "bootable" image, known as a BootC container image, allows you to use a simple container image to create a full bootable operating system, whether it's a raw virtual machine image or an iso for USB installation!

This capability is ideal for a variety of uses, from a simple HTTP server to an OS powering a full-stack application.

In this tutorial, we'll deploy an OpenShift derivative called MicroShift, an edge-optimized version of OpenShift designed for single-node setups on resource-constrained configurations. Think of it as a compact version of OpenShift!

This entire process is carried out using a single Containerfile (or Dockerfile).

Requirements

Before starting the tutorial, ensure you have:

Building the BootC container image

First, we'll build the initial BootC container image from which we'll later create a bootable OS.

Logging into Red Hat registry

Before proceeding, download the Red Hat Authentication extension from the catalog to enable access to Red Hat registries:

red hat login

Then log into your account:

red hat login sign in

Download your OpenShift Hybrid Cloud pull secret

Download your pull secret.

This is downloaded as pull-secret.txt. Put it in a secure location.

Creating the Containerfile (or Dockerfile)

The Containerfile is crucial for creating the bootable image.

It's important to note that we will be providing one argument during the build and that is the PASSWORD in order to access the Virtual Machine that will be logged in via the redhat username.

We will be using the Containerfile from the MicroShift image mode GitHub documentation.

Copy the Containerfile from the above link to a new file which we will be building with Podman Desktop:

$ curl https://raw.githubusercontent.com/openshift/microshift/main/docs/config/Containerfile.bootc-rhel9 -o Containerfile

Build with Podman Desktop

Select the Containerfile and build it within Podman Desktop.

You will need to provide:

  • A password for the redhat user that will be created in the Containerfile.

Pass the argument as USER_PASSWD in the build page arguments.

build

Build the bootable image with BootC Podman Desktop extension

Install

Install the BootC Podman Desktop extension from the extensions catalog:

install

Build the image

Now, create the bootable image from our container image!

Click the new BootC icon on the navigation bar and go to build:

build_button

Once the build is complete, you'll see a confirmation on the dashboard.

Next, select the image we built and choose an appropriate output format for testing the bootable image. RAW is a common choice for local testing with QEMU and other VM software like libvirt.

Testing the image

Explore various ways to test your image, using local software or cloud platforms. Here are some common steps for using the RAW output bootable image.

Running the Virtual Machine

This guide doesn't cover all methods for running a virtual machine, but here are the most common:

When using Hyper-V, create a .vhd image with BootC:

  1. When building, select the .vhd option.
  2. Install Hyper-V
  3. Import the virtual machine

Configuring and verifying MicroShift

After you boot your virtual machine, you can now configure MicroShift as well as verify the connection.

Copying over the OpenShift pull secret

Before proceeding with verifying OpenShift, the OpenShift pull secret must be copied over so that MicroShift can download Red Hat registry-authenticated container images.

Below we will copy the OpenShift secret you had previously downloaded to the virtual machine.

  1. Download your OpenShift pull secret which is downloaded as pull-secret.txt

  2. Use scp to copy over to the virtual machine:

$ scp -P 2222 pull-secret.txt redhat@localhost:~/
  1. SSH into the VM:
$ ssh redhat@localhost -p 2222
  1. Move the secret to /etc/crio/openshift-pull-secret:
$ sudo mv pull-secret.txt /etc/crio/openshift-pull-secret
  1. Restart the microshift service:
$ sudo systemctl restart microshift

Listing pods

Below we will SSH into the virtual machine and confirm that MicroShift is deploying Pods correctly:

  1. SSH into the VM:
$ ssh redhat@localhost -p 2222
  1. Copy the generated kubeconfig file to ~/.kube/config:
$ mkdir -p ~/.kube
$ sudo cp /var/lib/microshift/resources/kubeadmin/kubeconfig ~/.kube/config
$ sudo chown redhat ~/.kube/config
  1. Verify Pods are running by using oc or kubectl:
$ kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system csi-snapshot-controller-856bb8b9bc-9n7lj 1/1 Running 1 3d23h
kube-system csi-snapshot-webhook-7c64d4d4d7-98v6l 1/1 Running 1 3d23h
openshift-dns dns-default-n2td4 2/2 Running 2 3d23h
openshift-dns node-resolver-7cslg 1/1 Running 1 3d23h
openshift-ingress router-default-7cbc67954b-nqqc6 1/1 Running 1 3d23h
openshift-ovn-kubernetes ovnkube-master-zcqw5 4/4 Running 5 3d23h
openshift-ovn-kubernetes ovnkube-node-crnn9 1/1 Running 2 3d23h
openshift-service-ca service-ca-6799f567-k7lsc 1/1 Running 1 3d23h

Using Podman Desktop to verify MicroShift

Alternatively, you can copy the MicroShift configuration file to your local machine and test it remotely on Podman Desktop.

  1. On your local machine, create the .kube directory if it does not exist already:
$ mkdir ~/.kube
  1. Copy the remote kubeconfig file to a local configuration file:

Within MicroShift, a kubeconfig file is automatically created at /var/lib/microshift/resources/kubeadmin/kubeconfig.

Copy the file over to your local system:

scp -P 2222 redhat@localhost:/var/lib/microshift/resources/kubeadmin/kubeconfig ~/config

If you already have a ~/.kube/config, copy the contents of config to the ~/.kube/config file.

  1. Use Podman Desktop to verify the MicroShift cluster:

Podman Desktop will automatically detect your .kube/config file.

Note: You may need to modify your .kube/config file to reflect the correct domain or IP address of your cluster.

cluster

Storage configuration

By default, storage configuration requires an LVM partition and LVMS storage manager will not be deployed. This is due to a limitation when building a RAW image. An alternative non-local storage solution is required to use OpenShift artifacts with storage capabilities. The feature to add LVM support is tracked in this pull request.

Conclusion

This tutorial provided a step-by-step guide on deploying a bootable MicroShift image using Podman Desktop and the BootC extension. By leveraging tools such as BootC and Podman, we've streamlined the process of creating a lightweight, yet fully functional, OpenShift environment suitable for single-node edge computing scenarios.

Thank you for following along, and happy deploying!

Podman Desktop 1.8 Release

· 8 min read
Tim deBoer
Architect

Podman Desktop 1.8 Release! 🎉

Podman-desktop-1-8-hero

We've got a new release with a ton of seal appeal! This release introduces:

  • Podman 4.9.3: Podman 4.9.3 is now included in both Windows and Mac installers.
  • Kubernetes Explorer: Advanced UI and new tools for working with Kubernetes clusters.
  • Global Onboarding: Configure and set up your environment without any hassle, with a set of guided workflows.
  • Learning Center: Discover new use cases and capabilities for developers.
  • Extension API Improvements: Another big update to the extension API enabling more goodness for 🦭 Podman Desktop's extensions.
  • Enhanced Builds, Pods List, and Troubleshooting Pages: Build for different platforms, an upgraded pods view, and more.

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


Release Details

Podman 4.9.3

🦭 Podman 4.9.3 includes key fixes for stability and reliability issues reported by our users - especially if you are using Apple silicon architecture. If you've been floundering we highly recommend updating!

Kubernetes Explorer

Progressively introduced in past releases as an experimental feature, we're ready to expand our capabilities to help developers transition from containers to Kubernetes. In this release we are introducing a new set of features that enable the developers to work with more Kubernetes resources, offering more granular and interactive control over your applications.

Now available in 🦭 Podman Desktop is a new Kubernetes Explorer with the ability to work with Deployments, Services, Ingresses, and Routes, in addition to the existing support for Pods. For each of those resources, 🦭 Podman Desktop provides real-time information about the status of resources on the cluster. From the top right of this overview page you can also click Apply YAML to create or update resources on the cluster similar to 'kubectl apply -f', and see the current connection status.

Deployments Overview

Just like with local containers or images, you can click for more details on Summary, Inspect, and Kube (YAML) pages.

Deployment Summary

See a problem? You can edit and apply changes direct from the Kube tab.

Deployment Kube YAML

🦭 Podman Desktop continues to bridge the gap and discrepancies to empower developers working with containers with efficient workflows to target Kubernetes from their local workstation. This is all in addition to some of the great features already available:

  • Native Kubernetes support with Podman
  • Podify - transition containers into Pods
  • Setting up local Kubernetes environments with Minikube and Kind extensions
  • Deploy to Kubernetes and push local image from Podman to a Kubernetes environments
  • Managing Kubernetes contexts
  • Connecting to remote Kubernetes clusters

Global Onboarding

Configuring and setting up a local environment is now easier with the introduction of a new wizard-based onboarding flow. In this flow developers can pick the different tools that they need, and 🦭 Podman Desktop will walk them through the configuration and setup of each of these tools.

The global onboarding flow allows developers to configure Podman, Compose, and kubectl (needed for working with Kind and Minikube or remote Kubernetes environments). This makes the transition to 🦭 Podman Desktop becomes simpler, as any needed dependencies are automatically configured.

Global Onboarding

Learning Center

In this release, we've added a Learning Center on the Dashboardm enabling developers to discover, learn, and expand their knowledge on related topics to containerization. These guides are handy and easily accessible, and cover topics from learning how to containerize an existing application to discovering the latest features of 🦭 Podman Desktop and how to best use them.

Learning Center

Extension API Improvements

We continued spent a lot of time adding new extension API to give upcoming extensions more capabilites and even better integration into 🦭 Podman Desktop:

  • Split getMatchingPodmanEngine #6160
  • Add HealthCheck parameter when creating container #5981
  • Expose listPods to extensions #5864
  • Labels for createPod #5862
  • Allow to create containers within a pod #5848
  • OpenPod should redirect to the pod's view #5846
  • Enhance createContainer API with missing parameters #6011
  • Allow extensions to use openDialog/saveDialog #6009
  • Allow customized icons in contributed actions #5995
  • Adding missing types #6213
  • Allow to navigate to a specific webview from extensions #5899
  • Expose stopPod and removePod to extensions #5898
  • Use new API for open/save dialog #6051, #6050, #6049
  • Extend Podman Desktop API Build Image parameters #5882
  • Allow extension to stats container #6211

Other Notable Enhancements

We've added over 40 features this release, here are some other highlights:

  • Improve Podman Desktop update alert #6068
  • Add gather & download logs button in troubleshooting #5119
  • Enable podman machine for Linux #5902
  • Multi-delete animation #5717
  • Image deletion animation #5709
  • Volume deletion animation #5707
  • Open OpenShift routes #5560
  • Add open created pod details #4499
  • Use https when deploying to kubernetes cluster #5824
  • Getting started carousel on dashboard page #5142
  • Add confirmation dialog when deleting objects #5445

We've also made some significant progress on implementing light mode:

  • Use theme colors for invert content #6029
  • Use theme colors for secondary nav #6028
  • Apply theme colors for global nav #6027
  • Apply theme colors for the titlebar #6025
  • Consistent close button #6060
  • Use components in quickpick #6057
  • Provide css colors to webviews #5963
  • Publish colors to the style of the app #5962
  • Allow extensions to contribute themes with set of colors #5961
  • Store for colors #5960
  • Include a color registry #5958
  • Add utility method to get the value of the theme #5947
  • Send event when operating system change the colors #5946
  • Cleanup dark: prefix colors #5944
  • Extract color palette to its own file #5931
  • Input component #5904
  • Input errors, use input component in run image #5988
  • Use input when building image #5986
  • Use input for proxy settings #5943
  • Use input for registries #5939
  • Use input when creating pod from containers #5935
  • Use input component in extension pages #5934
  • Use input in create volume #5933
  • Use input when renaming image #5964
  • Use checkbox component in deploy to kube #6030

Notable Bug Fixes

We squashed a lot of bugs this release, including the following:

  • Copy volume mounted when copying container to pod #5640
  • Change order of "Create" button on Volumes and Containers list #6092
  • Refresh onboarding item when context value gets updated (#4597) #6173
  • Better log on informer connection error #6158
  • Website: replace broken links #6111
  • Center empty screens #6077
  • Do not ask confirmation to open local folder/files #5743
  • Force breadcrumbs to be vertically aligned #5741
  • Long usernames in auth page #5737
  • Message property used to update task name #5731
  • Nav item UI fixes #5886
  • Display back the icons of registries #5843
  • Check route tls to use either http or https #5825
  • White tooltips #5887
  • Limit registry username column width #5718
  • Remove docker compatibility warning & button on Linux #5903
  • Image usage by containers #5663
  • Current context should be changed/updated when deleting it #5819
  • Do not collapse categories on sidebar #5727
  • Make localhost a valid domain for env.openExternal calls #5716

Documentation

Along with this new version of 🦭 Podman Desktop the documentation has had the following improvements:

  • Container and image related methods of containerEngine api #5891
  • Removed installing podman with openshift local #6070
  • Document image checker provider API #5813
  • Adding withProgress api docs #5736
  • Added link to the troubleshooting page #5734
  • Troubleshooting installation on macOS M1/M2/M3 #5708
  • Volume deletion #5707
  • Added Accessing Podman from another WSL instance (config, verify) #5706
  • Using typedoc to generate api documentation #5705

Community Thank You

🎉 We’d like to say a big thank you to everyone who helped make 🦭 Podman Desktop even better. In this release we received pull requests from the following people:


Final notes

Fixed Issues

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

Where to Download

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.

Podman Desktop 1.7 Release

· 6 min read
Tim deBoer
Architect

Podman Desktop 1.7 Release! 🎉

Podman-desktop-1-7-hero

We've got a new release with a ton of seal appeal! This release introduces:

  • Podman 4.9.0: Podman 4.9.0 is now included in both Windows and Mac installers.
  • Extension API Improvements: A big update to the extension API enabling more goodness for 🦭 Podman Desktop's extensions.
  • Experimental Kubernetes UI: Get a sneak peek at the more advanced UI for working with Kubernetes clusters.
  • Enhanced Builds, Pods List, and Troubleshooting Pages: Build for different platforms, an upgraded pods view, and more.

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


Release Details

Podman 4.9

🦭 Podman 4.9 includes key fixes for stability and reliability issues reported by our users. If you've been floundering we highly recommend updating!

If you are on a Mac M3, we are aware of a critical issue in Podman and expect to update very soon to pick up this fix: #21353 - Update to new QEMU (based on #1990 - QEMU issue on M3). If you are hitting this problem there is a workaround here and there.

Extension API Improvements

We have spent a lot of time this release adding new extension API to give upcoming extensions more capability and even better integration into 🦭 Podman Desktop. We have added support for full page webviews, image badges, icons, a navigation API, and API access to more function from the container engine:

  • Webview in the UI #5594
  • Add webview API for extensions #5592
  • Allow extensions to list webviews #5628
  • Create container without starting it #5643
  • Expose create/start Pod and replicatePodmanContainer #5648
  • Expose create/list/delete volumes for extensions #5598
  • Add getImageInspect to API #5596
  • New contribution points for icon of image #5543
  • Add BuildOption #5533
  • Add platform parameter to image build method #5501
  • Expose build image method #5500
  • Navigation api #5558
  • Register badges by extensions for image list/details #5557
  • Install extensions from private registries #5473

Experimental Kubernetes UI

We have been working the last couple months to expand our support for Kubernetes. This support isn't ready to set sail yet, but if you're working with a Kubernetes cluster we'd love to start getting your feedback on the direction!

To 'break the seal' and try it out, go to Settings > Preferences > Kubernetes, and enable the Experimental option:

Kubernetes Preference

This will add three new items to the main navigation, allowing you to view Deployments, Services, and Ingress & Routes:

Kubernetes Deployments Kubernetes Services Kubernetes Ingresses & Routes

In this release you can click on deployments and services to view additional details (like the Summary, Inspect, and YAML tabs), but not yet for ingresses or routes.

We hope things go swimmingly for you, but please open Github issues to let us know what else you'd like to see.

Enhanced Builds, Pods List, and Troubleshooting Pages

When building an image you can now chose which platform(s) to build the image for:

Build platform

We've upgraded the Pods view to use the same table component as images and volumes. This allowing sorting and better column scaling:

Pods table

Having trouble and want a fresh start? The Troubleshooting page has switched to tabs and there is an option to purge your existing install:

Troubleshooting Purge


Other Notable Enhancements

We added over 40 features this release, here are some of the other highlights:

  • Pressing esc exits onboarding #5612
  • Quick pick case-insensitive filtering #5582
  • Add UI badge component #5522
  • Extend connection input type in build image #5499
  • Nav sections #5449
  • Improve Authentication Providers page #5424
  • Adding groupContributions logic #5415
  • Add option to select how to open devtools in dev mode #5274
  • Form progress #5253
  • Improved provider cards #5013

Notable Bug Fixes

We squashed over 25 bugs this release, including the following:

  • Copy volume mounted when copying container to pod #5640
  • Adding missing Labels property #5632
  • Fix UI not being refreshed if container is only created #5619
  • Quick pick filter removes selection #5613
  • Add missing types for createContainer API #5504
  • Use window.showMessageBox instead of custom modal #5421
  • Add cleanupSupport property #5309
  • Empty screen reset filter by default #5307
  • Do not fetch pre-releases of compose #5296
  • providerinfo badge #5268
  • Don't refresh image list when age updates #5267
  • Rename kubectl extension #5255
  • Try to search kubectl on the user path first #5248
  • Dispose the wsl2 command when unregistering extension #5246
  • Handle event when loading images from archives #5240
  • Edit Podman machine support for MacOS only #5239
  • Improve default contribution action icon #5236
  • Color of primary/secondary buttons should be white #5232
  • Disable notification when updating podman (#5228) #5229
  • Allow table columns to specify overflow #5222
  • ProgressImpl properly middleware tasks to set the proper result status #4342

Documentation

Along with this new version of 🦭 Podman Desktop the documentation has had the following improvements:

  • Update compose blog post link #5547
  • Message when the app terminates because another instance exists #5348
  • Document onboarding id rules #5211
  • Multi-platform extension #5205
  • Blog post on Compose guestbook application #5033
  • Refactored setting up container registries #4965

Community Thank You

🎉 We’d like to say a big thank you to everyone (yes, that means you, Anders!) who helped make 🦭 Podman Desktop even better. In this release we received pull requests from the following people:


Final notes

Fixed Issues

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

Where to Download

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.

Podman Desktop 1.6 Release

· 11 min read
Stevan Le Meur
Product Manager

Podman Desktop 1.6 Release! 🎉

Podman-desktop-1-6-hero

This release introduces:

  • Minikube Featured Extension: Minikube extension to create local Kubernetes clusters in containers.
  • Podman 4.8.2: Podman 4.8.2 is now included in Windows and Mac installers.
  • Setting Page for Command-Line Tools: Manage and update your CLI tools.
  • Kubernetes Contexts Manager: Browse all your kubernetes contexts, set default and remove unused ones.
  • Editable Podman Machine for MacOS: Easy resize and reconfiguration of the Podman runtime environment.
  • Filters for Containers and Pods Lists: Focus on the containers and Pods you are working with.
  • Sorting on Volumes and Images List: Sort volumes or images with your prefered criterias.
  • Environment Colums on Containers and Pods lists: Easy catch of the environment on which a container or a pod is running on.
  • Extension API Improvements: Another set of improvements to the extension API enabling more goodness for 🦭 Podman Desktop's extensions.

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


Release Details

For developers who need to run Kubernetes locally and reproduce an environment close to production for development and experimentation purposes, Podman Desktop allows users to easily set up that environment on a local machine. There are two extensions providing the capability to configure a open source Kubernetes cluster locally, you can either choose between Kind or Minikube.

The Minikube extension allows you to install Minikube on your workstation and also to setup a Kubernetes cluster locally running in a container! Yes, you read that correctly - in a container similar to how Kind works. The advantage is that it's lighter and faster to start. With Minikube, one of the advantage, is that you can build your images locally with Podman and get them automatically available in your local Kubernetes cluster - which will speed up your turnarounds when you want to test your application. If you want to learn more this, read the following blog post.

Minikube-feature-extension

Command-Line Tools Configuration: Compose and Kubectl

Configuring and managing your setup is getting easier with the addition of a new section in the Settings to manage command-line tools. In Podman Desktop, extensions can list command-line tools that are helpful to their users or required to make use of the installed extensions.

There are two command-line tools within Podman Desktop that allows you to view whether they are installed or require an update:

  • Compose binary for running 'podman compose' commands.
  • kubectl for interacting with Kubernetes clusters.

cli-tools

From the settings you can see the command-line tools that are installed, and you can see the version - and when a new version is available, you'll get a small notification to allow you easily update to that version.

Compose-Update

Kubernetes Contexts Manager

We are introducing a new screen available from the Settings which allows you to easily manage your Kubernetes contexts. Podman Desktop was already providing the handy context switcher available from the status bar, but when you get to work with multiple Kubernetes environments, it's not uncommon to end with a big and long list of Kubernetes contexts.

The new Kubernetes Contexts screen allows you to easily see all your registered Kubernetes contexts. You can use the screen to clean up your registered contexts, or set the current (default) context.

Kubernetes Contexts List

Editable Podman Machine

A Podman machine is a virtual environment specifically designed to run Podman containers on Mac and Windows. It allows users to manage and operate containerized applications in an isolated and controlled setting. When creating a Podman machine, you configure its settings: memory, CPU(s) and disk size.

We've received the feedback regarding the ability to reconfigure your Podman machine on the go. This is now possible for macOS users, and particularly useful when you start with an environment and need to scale it up based on new needs and containers you would like to run in your Podman environment.

Editable podman machine

You'll notice we improved the sliders to configure the Podman machine's options - and also introduced a way to enter numeric values directly.

Tabs/Filters for Containers and Pods

Being able to quickly identify the containers and the pods you are working with is critical when you are iterating on the development of your application. For this reason, we added filters at the top of the lists of Containers and Pods that allow you to easily view all the containers/pods, only those that are running, or only those that are stopped.

Filters for containers and pods

Sorting for Volumes and Images lists

The lists of Volumes and Images have improved and are now have the ability to be sorted by the criteria of your choice. You can for example filter images by their size - which can be convenient when you want to clean up your environment.

Sorting for Volumes and Images

Environment columns on Containers and Pods lists

Podman Desktop is able to work with multiple providers: it could work with multiple container engines and multiple Kubernetes environments too. In order to make it easier to identify the containers and the pods and differentiate them depending on which environment they are running onto, we are introducing a new environment column in the list of Containers and Pods to display a badge.

Environment Column

Better visibility to the containers running in Pods

The list of Pods has been refined to provide easier visibility and access to the containers running within each of them. Each of the containers now have one dot and you can hover each dot to display the info about the container - and if you click on it you'll be able to access the details of the container.

Visibility for containers in Pods

Extension API improvements

The 🦭 Podman Desktop extension API received many improvements, including:

  • Documentation explaining how to create an onboarding workflow for an extension #4837
  • Documented how extensions hook into UI #4633
  • Documented how to implement api client #4636
  • Image checker extension API #4662
  • Added api to register cli updater #5064

Other Notable Enhancements

  • Show container connection type and endpoint #5098
  • Environment column to pods/containers #4583
  • Displaying extension icons in the list of extensions #5101
  • Introduced UI icon image component #5117
  • Added icon to extensionInfo #5089
  • Added encoding option on RunOptions #4942
  • Introduced property for appearance but for now only dark is supported #4887
  • Default table sorting #4860
  • Display notification for completed onboarding in task manager #4811
  • Added purple dot when new content is available in dashboard #4782
  • Argos CI: Introduce Argos CI to track and detect visual regressions on the website
  • Added command palette: add enablement property #4630
  • Added documentation for telemetry and usage data #4618
  • Introduced table component #4545
  • Added ability to abort build image #4538
  • Added support in command palette for category #4531
  • Upgraded flatpak to org.freedesktop.Platform version 23.08 #3968
  • Added open exposed url to pod details #3762

Notable Bug Fixes

  • Fix reconnect to /events if disconnected #4809
  • fix: reset loggerhandlerKey after restarting machine #5168
  • fix: fix: podman machine created with wrong flags #5178
  • fix: avoid to crash if configuration is invalid #5182
  • fix: extension installation checks architecture and os #5191
  • fix: use URL for proxy specification and add validation #4825
  • fix: do not change color and underline of markdown buttons #5138
  • fix: do not reconnect when connection is removed #5131
  • fix: table headers shouldn't allow text selection #5118
  • fix: add style to link #5108
  • fix: launch.json references wrong script #5094
  • fix: don't link to k8s cluster server 5087
  • fix: pass the complete imageInfo to the check function #5069
  • fix: container tabs should match pods #5057
  • fix: revert styling of disabled buttons #5056
  • fix: update current context reactively #5055
  • fix: make ProviderResultPage do not change input values #5030
  • fix: add rowgroup to tables #5005
  • fix: add path prop for route object #4981
  • fix: remove errant hash mark #4971
  • fix: check extension folder contains package.json #4964
  • fix: refactor List UI components #4953
  • fix: succeeded/completed state for Compose onboarding #4947
  • fix: remove flex class from markdown button rendering #4934
  • fix: unable to read wsl version when using chinese as syslang on Windows #4918
  • fix: retain autostart setting #4879
  • fix: use vi.waitUtnil instead of cycles with awaiting promises #4861
  • fix: docker host on windows when executing compose command #4855
  • fix: merged compose deploy to kube page in UI #4827
  • fix: use URL for proxy specification and add validation #4825
  • fix: reconnect to /events if disconnected #4809
  • fix: remove fixed height after patternfly removal #4804
  • fix background colours after patternfly removal #4803
  • fix: report metrics for stopped machines #4787
  • chore: update to docusaurus v3.0.0 #4764
  • chore: drop patternfly #4762
  • fix: avoid to send telemetry usage as this method is called every 5s #4692
  • fix: location of roots.exe in devmode #4654
  • fix: disable create/start container if any port is busy #4637
  • fix: fix setup in build image tests #4625
  • fix: find a free port #4616
  • fix: reduce size of provider cards on the dashboard #4615
  • fix: shorter doc nav section titles #4613
  • fix: report error if container engine action fails in details page #4556
  • fix: remove prev/next bar #4548
  • fix: reduce website footer #4546
  • fix: handle compose format json that is no longer a JSON array object #4540
  • fix: disable push to kind menu item if pushing is in progress #4530
  • fix: check for self signed cert message and use insecure param when editing registry password #4523
  • fix: add autoscroll to summary pages #4504
  • fix: report errors when analyzing extensions #4380
  • fix: allow editing of build containerfile #4471
  • refactor: updated compose onboarding installation #4479
  • refactor: remove compose from the status bar #4492

Documentation

Coming with this new version of 🦭 Podman Desktop, the documentation has been getting the following improvements:

  • Reorganize doc navigation by provider #4558
  • Added vsc runtime dependency for Windows development #5091
  • Show location of lima podman socket #5090
  • Fixed typo in URI for releases #4909
  • Explain how to create an onboarding workflow for an extension #4837
  • Make it possible for lima to provide both #4789
  • Blog post about minikube/sharing images #4735
  • Remove duplicate text from windows troubleshooting #4652
  • Add step to implement api client #4636
  • Fixed the main lima command for limactl #4623
  • Lima provider cleanup after the improvements in the implementation #4622
  • Update documentation regarding auto merge #4519
  • Using standard OS tabs for registries docs #4497
  • Fixed mahine -> machine #4495
  • Added screenshots and fixed formatting to the registries section #4472

Community Thank You

🎉 We’d like to say a big thank you to everyone who helped to make 🦭 Podman Desktop even better. In this release we received pull requests from the following people:


Final notes

Fixed Issues

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

Where to Download

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.

Podman Desktop 1.5 Release

· 9 min read
Máirín Duffy
User Experience Designer

Podman Desktop 1.5 Release! 🎉

With this release of Podman Desktop, we're introducing a new onboarding feature that we hope will earn your 🦭 seal of approval! But wait... there's so much more!

  • Onboarding: Guided setup and configuration of Podman and Compose
  • Podman 4.7.2: Podman 4.7.2 is now included in Windows and Mac installers
  • Command Palette: Gain easy access to various commands via a new keyboard-driven command palette
  • Expanded "Summary" tab for Kubernetes pods: Go deep with extended details on Kubernetes pods in the pod "Summary" tab
  • Environment file support: Chart out environment variables for new containers to access on creation
  • Enhancements to the Settings area: Get your bearings with improved Docker compatibility mode controls
  • Improved user experience for state changes: No more dead reckoning on container state with improved visual indication of status
  • Extension API improvements: A boatload of improvements to the extension API enabling more goodness from 🦭 Podman Desktop's extensions

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

Podman-desktop-1-5-hero


Release Details

Onboarding

We are introducing a new feature providing guided flows for the initial setup of specific 🦭 Podman Desktop extensions. Release 1.5 features two new onboarding flows: Podman and Compose.

To start the Podman onboarding flow, you can start from the dashboard notification by clicking the "Set up" button: podman-onboarding-start podman-onboarding

Visit Settings > Resources screen and click the Compose "Setup ..." button in order to start Compose onboarding: compose-onboarding-start compose-onboarding

Command Palette

A new, search-driven command palette is now available to enable quick access to various commands available across 🦭 Podman Desktop. You can try this new tool out by hitting the F1 key. #4081 && #3979

Expanded "Summary" tab for Kubernetes pods

Kubernetes pods now offer a more comprehensive set of information under the "Summary" tab, including networking, volumes, environment variables, and other key metadata.

Environment file support

When creating a container from the Images list, there's now an option to provide an environment file to set env variables for the new container. #4026 && #4025

Enhancements to the Settings area

The user experience for enabling or disabling Docker compatibility is improved, with a new entry in the Settings > Preferences screen that includes contextual guidance. #4093

Improved user experience for state changes

The user experience around state changes for containers, pods, and other objects in the UI is improved, with clear status messages and improved animated visual indicator of state changes. #4056

Extension API improvements

The 🦭 Podman Desktop extension API received many improvements, including:

  • In addition to pushing and listing image from an extension, it's now possible to pull images from a 🦭 Podman Desktop extension #4155

  • The 🦭 Podman Desktop extension API has been enhanced with both the ability to list images & networks and the ability to create containers & networks. #4172

  • 🦭 Podman Desktop extensions now have a consistent way to run administrative tasks. #4049

  • Extensions now have the ability to register a custom Kubernetes config generator. #3970

  • The ability of extensions to add commands to UI menus has been extended; previously for action menus it was only available in the Image list screen. It is now possible for extensions to add commands to the action menus of items listed on the Containers list screen as well. #3947 & #3963

  • Extensions have gained the ability to contribute menu items in the UI based on specific conditions. #3959

  • Enhanced logic for displaying or hiding properties listed under the Settings > Preferences screens is now available. #4159


Other Notable Enhancements

  • The progress of loading an image into Kind is now visible as a task in the task manager. #4061

kind-progress-task

  • It's now possible to start a new Podman machine right after creation, or you can create it and wait to start it later. It's up to you! #4046

podman-start-now-or-later

  • The Podman machine and Kubernetes provider creation forms have an updated look & feel consisted with other forms in the user interface, along with minor bug fixes. #4317

Updated provider creation forms

  • The empty screen message shown when a search filter results in no matches now provides a message specific to filter matching, including the specific filter terms and an explicit button for clearing the filter. Previously, the screen displayed a generic message about how to create new objects of the type displayed on the screen, which led to some confusion about the status of the system. #3988
  • New support for adding spin animations to icons is now available. #4188

  • There is a new indeterminate progress bar type available for the task manager; this is meant for providing limited status for actions whose APIs do not provide detailed status information. #4016

  • For authenticating as admin to perform administrative tasks, 🦭 Podman Desktop now provides touchID support for macOS. #4050

touchID-support

  • Support for connecting to interactive terminals for containers via tty was added. #3900

  • It's now more clear which container/pod providers will autostart when 🦭 Podman Desktop starts. Previously autostart had both a global and a per-provider setting. It has been simplified by removing the global setting. #3840

  • The "Working with containers" section of the documentation has been reworked and improved. #3951


Notable Bug Fixes

  • The disable registry command was not blocking subsequent pulls from disabled registries. This has been corrected. #4183

  • Some users behind network proxies were unable to complete workflow involving the download of online resources. The mechanism for fetching these resources has been fixed to be proxy compatible to address this issue. #3994

  • The status of pods running in Kubernetes that are undergoing the deletion process is now accurately reflected in the 🦭 Podman Desktop UI. #3877

  • The image details page always listed the image as being "not used" even when it was. This has been corrected. #3985

  • Previously, deleting a specific image tag would cause all tags with the same Image ID to be deleted. This has been fixed so only the selected image tag will be deleted. #3837

  • Could not view the pod details for some remote Kubernetes cluster pods due to an encoding error. #4371

  • Error logs were being tracked separately from the actions they applied to. This has been addressed for kind cluster creation failure #4427 and Compose installation failure #4407.

  • For Linux users, 🦭 Podman Desktop previously did not appear under the "Development" menu when installed via Flatpak; it appeared under "Utilities." 🦭 Podman Desktop now appears under the "Development" menu. #3911

  • Podman Machine names are no longer prefixed with the "Podman Machine" string. #3878

touchID-support

  • The initial action state of pods and containers was being displayed as "STARTING" regardless of actual state; this has been corrected. #3889

  • Resizing the application window no longer makes the last lines of a container's terminal invisible. #3993

  • An issue with incorrect terminal behavior in response to long lines in the terminal attached to a container has been resolved. #3955

  • A spacing issue on the run image form has been corrected. #4089

  • The "podify" icon & button on the Containers list was unusually large in release 1.4. That regression has been corrected in this release. #4122

  • An error in the instructions for Windows users on migrating from Docker has been corrected. #4157


Community Thank You

🎉 We’d like to say a big thank you to everyone who helped to make 🦭 Podman Desktop even better. In this release we received pull requests from the following people:


Final notes

Known Issues

We have a discussion board topic where we have posted known issues with this release. If you run into problems, please check this list before filing a bug - if we already have an issue open for it, it saves you the time and trouble of filing, and there may be a workaround posted in the issue.

Known Issues: Podman Desktop 1.5.2

Fixed Issues

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

Where to Download

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.