diff --git a/.markdownlint-cli2.yaml b/.markdownlint-cli2.yaml
new file mode 100644
index 00000000000..5120c0a6b84
--- /dev/null
+++ b/.markdownlint-cli2.yaml
@@ -0,0 +1,4 @@
+# only show filenames, at the top level
+outputFormatters:
+ - - markdownlint-cli2-formatter-summarize
+ - byFile: true
diff --git a/.markdownlint.yaml b/.markdownlint.yaml
index c60ccfdff88..cad79dc945a 100644
--- a/.markdownlint.yaml
+++ b/.markdownlint.yaml
@@ -8,5 +8,9 @@ MD014: false
MD024: false
# We have multiple top-level headings in the same document to set different page title and navigation title:
MD025: false
+# Allow actual numbers in ordered lists:
+MD029: false
+# Allow spaces after marker in ordered lists:
+MD030: false
# We allow inline HTML (icon):
MD033: false
diff --git a/package.json b/package.json
index 5af0e830f1f..c0cc8469cac 100644
--- a/package.json
+++ b/package.json
@@ -75,7 +75,7 @@
"format:check": "biome format",
"format:fix": "biome format --write",
"markdownlint:check": "markdownlint-cli2 \"website/**/*.md\" \"#website/node_modules\" \"#website/api\"",
- "markdownlint:fix": "markdownlint-cli2-fix \"website/**/*.md\" \"#website/node_modules\"",
+ "markdownlint:fix": "markdownlint-cli2 --fix \"website/**/*.md\" \"#website/node_modules\"",
"lint:clean": "rimraf .eslintcache",
"lint:fix": "node --max-old-space-size=6144 node_modules/eslint/bin/eslint.js --cache . --cache-strategy content --fix",
"lint:check": "node --max-old-space-size=6144 node_modules/eslint/bin/eslint.js --cache . --cache-strategy content",
diff --git a/packages/extension-api/src/extension-api.d.ts b/packages/extension-api/src/extension-api.d.ts
index 2907e1163f0..2ede9d3a509 100644
--- a/packages/extension-api/src/extension-api.d.ts
+++ b/packages/extension-api/src/extension-api.d.ts
@@ -3122,7 +3122,7 @@ declare module '@podman-desktop/api' {
*
* If the option is not set, the host's native OS and Architecture are used to look up the image in the image cache. However, if no platform is passed and the given image does exist in the local image cache, but its OS or architecture does not match, the container is created with the available image, and a warning is added to the `Warnings` field in the response, for example;
*
- * ```
+ * ```text
* WARNING: The requested image's platform (linux/arm64/v8) does not
* match the detected host platform (linux/amd64) and no
* specific platform was requested
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 7d707137f41..ae64590fe27 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -986,6 +986,9 @@ importers:
markdownlint-cli2:
specifier: ^0.17.0
version: 0.17.0
+ markdownlint-cli2-formatter-summarize:
+ specifier: ^0.0.7
+ version: 0.0.7(markdownlint-cli2@0.17.0)
postcss:
specifier: ^8.4.49
version: 8.4.49
@@ -7872,6 +7875,11 @@ packages:
peerDependencies:
markdownlint-cli2: '>=0.0.4'
+ markdownlint-cli2-formatter-summarize@0.0.7:
+ resolution: {integrity: sha512-WYIuEen9A7B+OkTeAF8peRWysHKYUGYZQ8EIGAIXUm21S+UnPwxgz1EgUDpkvGlcbD/XS4474v8cnOI5so2MvQ==}
+ peerDependencies:
+ markdownlint-cli2: '>=0.0.4'
+
markdownlint-cli2@0.17.0:
resolution: {integrity: sha512-8Xz7wkkkV4wJTf+pvryU3J/fT3BZWD3ZykcjYBR0GuH0GHvrCbswaCdurbuUuAPDGFZy4cxBGYCJSAOW8jM4aQ==}
engines: {node: '>=18'}
@@ -20044,6 +20052,10 @@ snapshots:
dependencies:
markdownlint-cli2: 0.17.0
+ markdownlint-cli2-formatter-summarize@0.0.7(markdownlint-cli2@0.17.0):
+ dependencies:
+ markdownlint-cli2: 0.17.0
+
markdownlint-cli2@0.17.0:
dependencies:
globby: 14.0.2
diff --git a/website/blog/2022-11-17-develop-podman-using-codespaces.md b/website/blog/2022-11-17-develop-podman-using-codespaces.md
index b26e61f3d37..ca996bae36e 100644
--- a/website/blog/2022-11-17-develop-podman-using-codespaces.md
+++ b/website/blog/2022-11-17-develop-podman-using-codespaces.md
@@ -144,8 +144,7 @@ We need to reuse the image of the previous step. For that let's use the build se
},
```
-In 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
-](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.
+In 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](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.
Inside `.devcontainer` directory there is a `.parent` directory with everything related to the parent image.
diff --git a/website/blog/2024-08-01-using-rhel-wsl-podman-machine.md b/website/blog/2024-08-01-using-rhel-wsl-podman-machine.md
index 9dcde3c2a4a..1c46abcc08e 100644
--- a/website/blog/2024-08-01-using-rhel-wsl-podman-machine.md
+++ b/website/blog/2024-08-01-using-rhel-wsl-podman-machine.md
@@ -85,8 +85,8 @@ Click **Add repositories**
On the **Add custom repositories** page, select the following:
- In the **Name** list, enter EPEL 9.
-- In the **URL** field, enter https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/
-- In the **GPG key** field, enter https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-9
+- In the **URL** field, enter `https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/`
+- In the **GPG key** field, enter `https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-9`
- Click **Save**.
Close the tab and switch back to the previous one
@@ -165,4 +165,4 @@ Start the image by clicking on the **Run image** icon

-Once the container is started, the Apache server can be accessed on http://localhost:9000
+Once the container is started, the Apache server can be accessed on [localhost:9000](http://localhost:9000)
diff --git a/website/blog/2024-08-08-release-1.12.md b/website/blog/2024-08-08-release-1.12.md
index fbea4c5c16a..0841456aa2a 100644
--- a/website/blog/2024-08-08-release-1.12.md
+++ b/website/blog/2024-08-08-release-1.12.md
@@ -58,11 +58,11 @@ Which will output information regarding your GPU:
```sh
- GPU id = 0 (Virtio-GPU Venus (Apple M1 Pro))
- GPU id = 1 (llvmpipe (LLVM 17.0.6, 128 bits))
+ GPU id = 0 (Virtio-GPU Venus (Apple M1 Pro))
+ GPU id = 1 (llvmpipe (LLVM 17.0.6, 128 bits))
GPU0:
- deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
- deviceName = Virtio-GPU Venus (Apple M1 Pro)
+ deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
+ deviceName = Virtio-GPU Venus (Apple M1 Pro)
GPU1:
```
diff --git a/website/blog/2024-10-05-kubernetes-blog.md b/website/blog/2024-10-05-kubernetes-blog.md
index 1d4ef47a434..854ec114a9a 100644
--- a/website/blog/2024-10-05-kubernetes-blog.md
+++ b/website/blog/2024-10-05-kubernetes-blog.md
@@ -12,25 +12,27 @@ hide_table_of_contents: false
The integration of Podman Desktop with Kubernetes helps you to run your application on a Kubernetes cluster, such as Kind or Minikube.
This blog covers the following aspects:
+
- Build a containerized application from registry images
- Create a pod
- Set up a local Kubernetes cluster
- Deploy the application to Kubernetes
- Verify the running service
-## Building a containerized application
+## Building a containerized application
With this blog, you will build a containerized application that uses:
+
- a back-end Redis server container
- a front-end Python application container
To do so, you can pull the relevant images from the `quay.io` registry.
1. Go to the **Images** component page.
-2. Click **Pull**.
+2. Click **Pull**.

3. Start the first container:
- 1. Enter the image name to pull from a registry. For example, `quay.io/podman-desktop-demo/podify-demo-backend`.
+ 1. Enter the image name to pull from a registry. For example, `quay.io/podman-desktop-demo/podify-demo-backend`.

2. Click **Pull image**. A download complete notification opens.
3. Click **Done**.
@@ -43,12 +45,12 @@ To do so, you can pull the relevant images from the `quay.io` registry.

4. Start the second container:
- 1. Enter the image name to pull from a registry. For example, `quay.io/podman-desktop-demo/podify-demo-frontend`.
+ 1. Enter the image name to pull from a registry. For example, `quay.io/podman-desktop-demo/podify-demo-frontend`.
2. Click **Pull image** and then **Done**.
3. Click the `Run Image` icon corresponding to the new image added.
4. Enter the container name `python-app`.

-
+
:::note
If the default port is already in use, you can specify a different port in the `Port mapping` field.
@@ -59,11 +61,11 @@ To do so, you can pull the relevant images from the `quay.io` registry.
:::note
- You can find the IP address in the **Inspect** tab of the `redis-server` Container Details page.
+ You can find the IP address in the **Inspect** tab of the `redis-server` Container Details page.
:::
- 6. Click **Start Container**.
+ 6. Click **Start Container**.

7. Click the **Logs** tab to view that the application is running on port `5000`.

@@ -71,8 +73,8 @@ To do so, you can pull the relevant images from the `quay.io` registry.
9. View the running front-end application.

-
## Creating a pod
+
You can use both the containers to create a pod. This way both the front-end and back end container applications can share resources, such as storage and network.
**_Pod creation with existing containers_**
@@ -87,10 +89,9 @@ You can use both the containers to create a pod. This way both the front-end and
6. Click the name of the pod and then click the **Summary** tab to view its summary.

-
**_Alternative: Pod creation with Kubernetes YAML_**
-You can generate a Kubernetes manifest for any existing pod or container and use it to create a local Kubernetes YAML file. Then, you can customize that file and create a pod from it.
+You can generate a Kubernetes manifest for any existing pod or container and use it to create a local Kubernetes YAML file. Then, you can customize that file and create a pod from it.
At the time of pod creation, you can select a runtime to indicate whether you want to run the pod on a Podman engine or a Kubernetes cluster. Based on the selection, you get to see the newly created pod running in that environment on the Pods component page.
@@ -109,16 +110,17 @@ The following procedure creates a pod that runs on a Podman engine.

9. Select the YAML file from your machine.
10. Check that the **Runtime** field is set to `Podman container engine`.
-11. Click **Play** and then **Done**.
+11. Click **Play** and then **Done**.
13. View the newly created pod on the same page.
After creating the pod, set up a local Kubernetes cluster to deploy the pod.
## Setting up a local Kubernetes cluster
-You can set up a local Kubernetes cluster. Once the cluster is connected and running, you can deploy your application on it.
+You can set up a local Kubernetes cluster. Once the cluster is connected and running, you can deploy your application on it.
Based on your preference, use the Kind or Minikube extension:
+
1. [Install the extension](/docs/extensions/install) from the Extensions catalog.
2. Create a Kubernetes cluster. See [Kind cluster creation](/docs/kind/installing-extension) or [Minikube cluster creation](/docs/minikube/installing-extension).
@@ -132,20 +134,19 @@ You can deploy the application pod to a Kubernetes cluster that has an active co
2. Go to the **Pods** component page.
3. Click the overflow menu icon corresponding to the pod.

-4. Select the **Deploy to Kubernetes** option from the dropdown list.
+4. Select the **Deploy to Kubernetes** option from the dropdown list.
5. Select the checkbox to expose the service locally using the ingress controller.

:::note
- When you configure custom port mapping while running an image, you get the option to select an Ingress host port from the dropdown list.
+ When you configure custom port mapping while running an image, you get the option to select an Ingress host port from the dropdown list.

- Otherwise, you do not see the option.
+ Otherwise, you do not see the option.
:::
6. Click **Deploy** and then **Done**.
-
## Verifying the running service
1. Go the **Kubernetes** component page.
@@ -157,6 +158,6 @@ You can deploy the application pod to a Kubernetes cluster that has an active co
:::note
- Use the **Apply YAML** button to directly apply a Kubernetes YAML file to create a resource.
+ Use the **Apply YAML** button to directly apply a Kubernetes YAML file to create a resource.
:::
diff --git a/website/blog/2024-10-29-creating-an-extension.md b/website/blog/2024-10-29-creating-an-extension.md
index e669701f46b..fe2105b7b65 100644
--- a/website/blog/2024-10-29-creating-an-extension.md
+++ b/website/blog/2024-10-29-creating-an-extension.md
@@ -11,7 +11,7 @@ hide_table_of_contents: false
# How to create your first extension
-Extensions are a powerful tool to customize and extend the functionality of Podman Desktop. Whether you want to add new container management features, streamline current workflows, or create custom UI elements specific to your tech stack, building extensions allows you to tailor the Podman Desktop experience to your specific needs.
+Extensions are a powerful tool to customize and extend the functionality of Podman Desktop. Whether you want to add new container management features, streamline current workflows, or create custom UI elements specific to your tech stack, building extensions allows you to tailor the Podman Desktop experience to your specific needs.
In this guide, we'll introduce how you can build your own Podman Desktop extension, with links to detailed documentation that covers each part of the process.
@@ -53,7 +53,7 @@ Below is an example of how the [bootc extension](https://github.com/containers/p
## Adding and configuring commands
-Commands are the backbone of most extensions, allowing users to interact with the application and trigger specific actions.
+Commands are the backbone of most extensions, allowing users to interact with the application and trigger specific actions.
If you need to define and register custom commands, the **[Commands](/docs/extensions/developing/commands)** guide will show you how to create commands that respond to user actions or input, and tie them into your extension’s workflow.
@@ -87,4 +87,4 @@ Creating an extension opens up endless possibilities to customize Podman Desktop
It is also easy to package and publish your extension for others to use.
-Have fun exploring our documentation on how to create an extension and happy coding!
\ No newline at end of file
+Have fun exploring our documentation on how to create an extension and happy coding!
diff --git a/website/blog/2024-10-31-release-1.14.md b/website/blog/2024-10-31-release-1.14.md
index 752ade0d14f..c2c507d7dcf 100644
--- a/website/blog/2024-10-31-release-1.14.md
+++ b/website/blog/2024-10-31-release-1.14.md
@@ -18,7 +18,7 @@ Podman Desktop 1.14 Release! 🎉
Podman Desktop 1.14 is now available. [Click here to download it](/downloads)!
-This release includes:
+This release includes:
- **Kubernetes improvements with a new dashboard**: A new landing screen for Kubernetes has been added with UI changes that gives an overview of your entire cluster.
- **Port forwarding for pods**: This new feature allows users to configure port forwarding in their Kubernetes environment.
@@ -28,7 +28,6 @@ This release includes:
### Kubernetes improvements
-
### Kubernetes improvements with a new dashboard
We have updated the Kubernetes dashboard page to provide a quick overview of a user's Kubernetes cluster, alongside with multiple changes to Kubernetes backend.
@@ -37,7 +36,7 @@ We have updated the Kubernetes dashboard page to provide a quick overview of a u
### Port forwarding for pods
-Podman Desktop now supports port forwarding for pods in Kubernetes environments. Port forwarding can be done from the pod detail page and then visible in the Port forwarding page.
+Podman Desktop now supports port forwarding for pods in Kubernetes environments. Port forwarding can be done from the pod detail page and then visible in the Port forwarding page.

@@ -67,11 +66,13 @@ Get the latest release from the [Downloads](/downloads) section of the website a
## Detailed release changelog
### ci 🔁
+
- chore: validate also the title of the PR to be semantic by @benoitf in [#9438](https://github.com/containers/podman-desktop/pull/9438)
- chore: allow merge commits in semantic check by @benoitf in [#9581](https://github.com/containers/podman-desktop/pull/9581)
- fix: publish @podman-extension/api package by @dgolovin in [#9061](https://github.com/containers/podman-desktop/pull/9061)
### dashboard 📊
+
- feat(dashboard): new guides added to learning center by @slemeur in [#9638](https://github.com/containers/podman-desktop/pull/9638)
- chore: redirect to dashboard when clicking on release notes button in statusbar by @SoniaSandler in [#9623](https://github.com/containers/podman-desktop/pull/9623)
- feat: navigation to the dashboard by @deboer-tim in [#9333](https://github.com/containers/podman-desktop/pull/9333)
@@ -80,6 +81,7 @@ Get the latest release from the [Downloads](/downloads) section of the website a
- fix: next version check by @SoniaSandler in [#9595](https://github.com/containers/podman-desktop/pull/9595)
### documentation 📖
+
- docs: add kind video by @cdrage in [#9444](https://github.com/containers/podman-desktop/pull/9444)
- docs: add minikube video by @cdrage in [#9391](https://github.com/containers/podman-desktop/pull/9391)
- docs: add 1.13 release notes by @SoniaSandler in [#9261](https://github.com/containers/podman-desktop/pull/9261)
@@ -87,9 +89,11 @@ Get the latest release from the [Downloads](/downloads) section of the website a
- chore: update DD extension image by @deboer-tim in [#9346](https://github.com/containers/podman-desktop/pull/9346)
### extension/kind 🍾
+
- fix: add implementation for kind update by @dgolovin in [#9258](https://github.com/containers/podman-desktop/pull/9258)
### extension/podman 🦭
+
- fix: cannot create machine with WSL provider without administrator ri… by @jeffmaury in [#9644](https://github.com/containers/podman-desktop/pull/9644)
- chore: fix version of the podman extension by @benoitf in [#9567](https://github.com/containers/podman-desktop/pull/9567)
- chore: fix the release workflow to properly update podman ext version by @benoitf in [#9566](https://github.com/containers/podman-desktop/pull/9566)
@@ -99,12 +103,14 @@ Get the latest release from the [Downloads](/downloads) section of the website a
- feat: provide ability to easily get a shell in a machine - backend changes - additional changes by @gastoner in [#9550](https://github.com/containers/podman-desktop/pull/9550)
### extensions 🧩
+
- fix: add implementation for compose update by @dgolovin in [#9402](https://github.com/containers/podman-desktop/pull/9402)
- fix: check if newly installed extensions dependencies are already installed by @SoniaSandler in [#9596](https://github.com/containers/podman-desktop/pull/9596)
- chore: prefer method of the extension over system to get OS by @benoitf in [#9612](https://github.com/containers/podman-desktop/pull/9612)
- fix: update embedded image extension by @benoitf in [#9547](https://github.com/containers/podman-desktop/pull/9547)
### install 🎁
+
- chore: fix broken pnpm lock file by @benoitf in [#9437](https://github.com/containers/podman-desktop/pull/9437)
- chore: update electron-builder to v25.1.8 by @benoitf in [#9421](https://github.com/containers/podman-desktop/pull/9421)
- fix: avoid to have proxy arguments when calling the status bar entry command by @benoitf in [#9394](https://github.com/containers/podman-desktop/pull/9394)
@@ -123,6 +129,7 @@ Get the latest release from the [Downloads](/downloads) section of the website a
- fix: replace node-fetch by native Node.js fetch by @jeffmaury in [#9489](https://github.com/containers/podman-desktop/pull/9489)
### Kubernetes ☸️
+
- feat: initial Kubernetes dashboard by @deboer-tim in [#9588](https://github.com/containers/podman-desktop/pull/9588)
- feat(ui): adding KubernetesCurrentContextPortForwards store by @axel7083 in [#9642](https://github.com/containers/podman-desktop/pull/9642)
- fix: add Kubernetes port forward IPCs and events by @jeffmaury in [#9505](https://github.com/containers/podman-desktop/pull/9505)
@@ -141,17 +148,21 @@ Get the latest release from the [Downloads](/downloads) section of the website a
- refactor: context checking state as derived store by @feloy in [#9504](https://github.com/containers/podman-desktop/pull/9504)
### podman-upstream 🦭
+
- feat: update podman to v5.2.5 by @benoitf in [#9563](https://github.com/containers/podman-desktop/pull/9563)
### settings ⚙️
+
- fix: incorrect system proxy format on Windows by @Indekkusu545 in [#9626](https://github.com/containers/podman-desktop/pull/9626)
- chore: introduce a new property scope for docker compatibility by @benoitf in [#9604](https://github.com/containers/podman-desktop/pull/9604)
- chore: properties can be part of a group by @benoitf in [#9602](https://github.com/containers/podman-desktop/pull/9602)
### telemetry 📈
+
- chore: remove podmanListImages telemetry by @deboer-tim in [#9466](https://github.com/containers/podman-desktop/pull/9466)
### tests 🚦
+
- chore(test): initial draft for test.step by @cbr7 in [#9613](https://github.com/containers/podman-desktop/pull/9613)
- chore: refactor test to use a mock of the utility by @benoitf in [#9611](https://github.com/containers/podman-desktop/pull/9611)
- chore(test): minor fixes and robustness improvements by @cbr7 in [#9609](https://github.com/containers/podman-desktop/pull/9609)
@@ -169,8 +180,8 @@ Get the latest release from the [Downloads](/downloads) section of the website a
- fix: button name in update-install E2E test by @SoniaSandler in [#9509](https://github.com/containers/podman-desktop/pull/9509)
- fix: suppress `HTMLCanvasElement.prototype.getContext not implemented` error by @dgolovin in [#9287](https://github.com/containers/podman-desktop/pull/9287)
-
### ui
+
- chore: change no update release notes button in status bar by @SoniaSandler in [#9621](https://github.com/containers/podman-desktop/pull/9621)
- fix: invalid condition for the display of the button by @benoitf in [#9618](https://github.com/containers/podman-desktop/pull/9618)
- feat: display a spinner when connectivity is being checked in Kubernetes pages by @feloy in [#9535](https://github.com/containers/podman-desktop/pull/9535)
@@ -208,12 +219,14 @@ Get the latest release from the [Downloads](/downloads) section of the website a
- feat: display deployments and nodes conditions in a table by @feloy in [#9548](https://github.com/containers/podman-desktop/pull/9548)
### website 🌐
+
- docs(website): added a troubleshooting section by @shipsing in [#9459](https://github.com/containers/podman-desktop/pull/9459)
- docs(website): updated the screenshot by @shipsing in [#9316](https://github.com/containers/podman-desktop/pull/9316)
- docs(website): created a discover Podman Desktop page by @shipsing in [#9315](https://github.com/containers/podman-desktop/pull/9315)
- docs(website): added a tutorial for interacting with a database server by @shipsing in [#9238](https://github.com/containers/podman-desktop/pull/9238)
### other
+
- chore: include 1.13.2 and 1.13.3 in bug template by @benoitf in [#9615](https://github.com/containers/podman-desktop/pull/9615)
- fix: skip output folder during format actions by @jeffmaury in [#9580](https://github.com/containers/podman-desktop/pull/9580)
- chore: move the file to the correct directory by @benoitf in [#9546](https://github.com/containers/podman-desktop/pull/9546)
diff --git a/website/blog/2024-11-14-podman-desktop-cncf.md b/website/blog/2024-11-14-podman-desktop-cncf.md
index f7592492919..8b85f7a0ae1 100644
--- a/website/blog/2024-11-14-podman-desktop-cncf.md
+++ b/website/blog/2024-11-14-podman-desktop-cncf.md
@@ -28,20 +28,20 @@ Podman Desktop enables developers to run Kubernetes locally, mirroring their pro
### Open source and the CNCF: A perfect match for developer tools
-We believe in the power of open source. Open source software fosters transparency, encourages collaboration, and drives innovation. By donating Podman Desktop to the CNCF, we're ensuring it remains open and accessible to all, fostering a vibrant community around it. The CNCF is the perfect home for Podman Desktop because it champions open source values and provides a neutral ground for collaborative development. This ensures that Podman Desktop remains vendor-neutral and driven by the needs of its users, keeping options open and avoiding vendor lock-in.
+We believe in the power of open source. Open source software fosters transparency, encourages collaboration, and drives innovation. By donating Podman Desktop to the CNCF, we're ensuring it remains open and accessible to all, fostering a vibrant community around it. The CNCF is the perfect home for Podman Desktop because it champions open source values and provides a neutral ground for collaborative development. This ensures that Podman Desktop remains vendor-neutral and driven by the needs of its users, keeping options open and avoiding vendor lock-in.
Furthermore, while the CNCF has fostered incredible innovation and many developers profit from the number of projects available through the CNCF, there's a recognized need for more developer-focused tooling. Podman Desktop fills this gap perfectly by providing a developer-centric, streamlined, and intuitive experience for containerizing, managing, and deploying cloud-native applications.
Podman Desktop has a natural affinity to Kubernetes due to its design and features that seamlessly bridge the gap between local container development and Kubernetes deployments. This close relationship aligns perfectly with the CNCF's mission to drive the adoption of cloud-native technologies.
### Join the growing Podman Desktop community
-As a CNCF project, we have the opportunity to open our doors to a wider community of contributors and users. We believe that open source thrives on collaboration and diverse perspectives. By broadening our contributor base, we can accelerate innovation, improve the quality of Podman Desktop, and ensure it meets the needs of a diverse range of users.
+As a CNCF project, we have the opportunity to open our doors to a wider community of contributors and users. We believe that open source thrives on collaboration and diverse perspectives. By broadening our contributor base, we can accelerate innovation, improve the quality of Podman Desktop, and ensure it meets the needs of a diverse range of users.
-### You can contribute in various ways:
+### You can contribute in various ways
- Reporting issues: If you encounter bugs or have suggestions for improvements, you can report them on the [GitHub issue tracker](https://github.com/podman-desktop/podman-desktop/issues). Be sure to provide detailed information and steps to reproduce the issue.
-- Working on issues: You can browse the [issue tracker](https://github.com/podman-desktop/podman-desktop/issues) and contribute by fixing bugs or implementing new features. This involves forking the repository, making changes, and submitting pull requests.
+- Working on issues: You can browse the [issue tracker](https://github.com/podman-desktop/podman-desktop/issues) and contribute by fixing bugs or implementing new features. This involves forking the repository, making changes, and submitting pull requests.
- Contributing code: Beyond addressing existing issues, you can propose and contribute entirely new features or enhancements to Podman Desktop's functionality, user interface, or integrations with other tools. Learn more about [how to contribute](https://github.com/podman-desktop/podman-desktop/blob/main/CONTRIBUTING.md).
@@ -70,4 +70,3 @@ We're incredibly excited about this new chapter for Podman Desktop and can't wai
- Contribute to the project: [https://github.com/podman-desktop/podman-desktop/](https://github.com/podman-desktop/podman-desktop/)
- Read [10 Reasons Why Developers Should Consider Podman Desktop](https://developers.redhat.com/e-books/infographic-10-reasons-why-developer-should-consider-podman-desktop)
-
diff --git a/website/blog/2024-11-26-ai-lab-first-app.md b/website/blog/2024-11-26-ai-lab-first-app.md
index 89d116c16ed..a95f1e538a5 100644
--- a/website/blog/2024-11-26-ai-lab-first-app.md
+++ b/website/blog/2024-11-26-ai-lab-first-app.md
@@ -23,7 +23,7 @@ For our first experiment, we will work on a micro-service for the podman-desktop
If you haven't done it yet, first [install Podman Desktop and its extension Podman AI Lab](https://podman-desktop.io/docs/ai-lab/installing).
-To have a better experience, it is recommended to use the GPU acceleration to serve the model. If you have such a GPU on your machine, you will need to create a Podman machine with the LibKrun provider (on MacOS). More details on [the GPU support for Podman AI Lab](https://developers.redhat.com/articles/2024/09/10/gpu-support-podman-ai-lab).
+To have a better experience, it is recommended to use the GPU acceleration to serve the model. If you have such a GPU on your machine, you will need to create a Podman machine with the LibKrun provider (on MacOS). More details on [the GPU support for Podman AI Lab](https://developers.redhat.com/articles/2024/09/10/gpu-support-podman-ai-lab).
At the time of writing, the GPU support is still experimental on Podman AI Lab. You will need to enable the option on the Preferences to enable it.
@@ -41,7 +41,7 @@ Once a model is downloaded, we can test and interact with this model to try to f
Let's start a new playground (from the `Models > Playgrounds` menu), and send our first prompt:
-```
+```text
Give me a list of pages in the website podman-desktop.io related to "build an image"
```
@@ -49,11 +49,11 @@ The model should reply with some list of pages, in a human-readable form (see th

-The problem is that the response is in human-readable form, but we don't want the API to return this response as is. We want to have the name and the url of the pages, and send them to the website, so the website can display these pages with its preferred format.
+The problem is that the response is in human-readable form, but we don't want the API to return this response as is. We want to have the name and the url of the pages, and send them to the website, so the website can display these pages with its preferred format.
For this, we can try to ask the model to reply with a structured response, with the following prompt:
-```
+```text
Give me a list of pages in the website podman-desktop.io related to "build an image" as JSON output as an array of objects with 2 fields name and url
```
@@ -65,7 +65,7 @@ We don't expect the user to ask such a precise question, and we would prefer to
Podman AI Lab supports this feature, let's restart a Playground session with the following system prompt:
-```
+```text
Give me a list of pages in the website podman-desktop.io related to the request as JSON output as an array of objects with 2 fields name and url
```
@@ -79,7 +79,7 @@ We can see in the screenshot below that the model still returns a response suita
## Testing a recipe
-Now that we have a suitable prompt to use for our application, it is time to start our application itself.
+Now that we have a suitable prompt to use for our application, it is time to start our application itself.
Many developers prefer to have a working example of application to start with, and Podman AI Lab provides such examples with a catalog of recipes, visible in the page `AI Apps > Recipe Catalog`.
@@ -95,12 +95,11 @@ Back to the recipe's details page, we can access the sources of the recipe by cl
### Structure of a recipe
-The entrypoint of a recipe is the file `ai-lab.yaml` present in the repository of the recipe.
+The entrypoint of a recipe is the file `ai-lab.yaml` present in the repository of the recipe.
Let's examine the content of this file (the syntax of the file is specified in [this documentation](https://github.com/containers/podman-desktop-extension-ai-lab/blob/main/PACKAGING-GUIDE.md#recipe-configuration-file)) for the chatbot example.
-
-```
+```yaml
version: v1.0
application:
type: language
@@ -142,7 +141,7 @@ We can adapt this source code, by replacing the UI part with a framework to make
An interesting part of the source code is that the recipe does not expose to the user the system prompt, but defines one internally (`You are world class technical advisor`):
-```
+```python
prompt = ChatPromptTemplate.from_messages([
("system", "You are world class technical advisor."),
MessagesPlaceholder(variable_name="history"),
@@ -160,7 +159,7 @@ As discussed in the previous section, we have replaced the `streamlit` part with
We have also indicated our own system prompt:
-```
+```python
prompt = ChatPromptTemplate.from_messages([
("system", """
reply in JSON format with an array of objects with 2 fields name and url
@@ -192,7 +191,7 @@ The last step is to add this application to the Podman AI Lab recipe catalog.
Podman AI Lab provides a way for a user to extend the provided catalog with its own recipes. This can be done by adding a file in a specific directory, as described [in this documentation](https://github.com/containers/podman-desktop-extension-ai-lab/tree/main?tab=readme-ov-file#-providing-a-custom-catalog).
-```
+```json
{
"version": "1.0",
"recipes": [
diff --git a/website/blog/2024-12-12-release-1.15.md b/website/blog/2024-12-12-release-1.15.md
index 1fc8e331e3d..d5e495366a1 100644
--- a/website/blog/2024-12-12-release-1.15.md
+++ b/website/blog/2024-12-12-release-1.15.md
@@ -27,12 +27,11 @@ This release brings exciting new features and improvements:
---
-
## Release Details 🔍
### Improved Feedback Form 📝
-In the 1.15 release, we introduced a redesigned feedback form to streamline issue reporting. With our growing user base,
+In the 1.15 release, we introduced a redesigned feedback form to streamline issue reporting. With our growing user base,
it’s vital to provide a convenient way to submit feedback directly to GitHub via our main repository: [podman-desktop/podman-desktop/issues](https://github.com/podman-desktop/podman-desktop/issues).
While retaining our internal anonymous feedback system, this update also enables users to preview their issues on GitHub, ensuring better communication.
@@ -95,8 +94,8 @@ Key changes include:
### Kubernetes Events 📜
-This year, we’ve been steadily adding Kubernetes capabilities to Podman Desktop. While this effort is ongoing,
-version 1.15 introduces support for [Kubernetes Events](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/event-v1/).
+This year, we’ve been steadily adding Kubernetes capabilities to Podman Desktop. While this effort is ongoing,
+version 1.15 introduces support for [Kubernetes Events](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/event-v1/).
These events are now available for resources like Nodes, Services, and Pods.
@@ -43,14 +43,13 @@ A popular method for deploying Backstage is through a [Helm chart](https://githu

-
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.

## Dapr
-[Dapr](https://docs.dapr.io/) (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](https://docs.dapr.io/) (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.
@@ -74,4 +73,4 @@ Additionally, Podman Desktop provides a "Launch Browser" button, allowing quick
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](https://www.cncf.io/projects/) to discover even more possibilities with Podman Desktop.
\ No newline at end of file
+Check out the [list of graduate and incubating projects](https://www.cncf.io/projects/) to discover even more possibilities with Podman Desktop.
diff --git a/website/docs/discover-podman-desktop.md b/website/docs/discover-podman-desktop.md
index 2ba933dd9d0..9037826629b 100644
--- a/website/docs/discover-podman-desktop.md
+++ b/website/docs/discover-podman-desktop.md
@@ -94,7 +94,7 @@ Docker compatibility is a way to configure an environment in which you can run y
Podman Desktop provides a wide range of extensions that can be used to integrate your local tools with Podman Desktop. After installing the required extension, you can do development tasks like creating a Kubernetes cluster, creating an AI application, or creating a bootable container. List of extensions available:
-_Built-in extensions_
+#### Built-in extensions
- Compose
- Podman
@@ -106,7 +106,7 @@ _Built-in extensions_
- Kubectl CLI
- Registries
-_Other extensions_
+#### Other extensions
- Bootable containers
- Image Layers Explorer
@@ -114,6 +114,8 @@ _Other extensions_
- Podman AI Lab
- Red Hat extensions
+#### Manage extensions
+
You can enable or disable an extension, if needed. You can also create your own custom extensions to add icons, UI components, or menus to your application front-end page.
For more details, refer to [Extensions](/docs/extensions).
diff --git a/website/docs/extensions/index.md b/website/docs/extensions/index.md
index ff84f6dc7ab..fabb424be58 100644
--- a/website/docs/extensions/index.md
+++ b/website/docs/extensions/index.md
@@ -42,7 +42,7 @@ To help you get started, we've provided templates ranging from a minimal "Hello
Here are some examples from [our templates documentation](/docs/extensions/templates):
-- [Basic "Hello World" example.](https://github.com/podman-desktop/extension-template-minimal)
+- [Basic "Hello World" example.](https://github.com/podman-desktop/extension-template-minimal)
- [Simple webview template.](https://github.com/podman-desktop/extension-template-webview)
- [Full-stack webview template.](https://github.com/podman-desktop/extension-template-full)
diff --git a/website/docs/extensions/install/using-extension.md b/website/docs/extensions/install/using-extension.md
index ca3d1dfeb11..e8e88817ed6 100644
--- a/website/docs/extensions/install/using-extension.md
+++ b/website/docs/extensions/install/using-extension.md
@@ -36,17 +36,17 @@ Podman Desktop provides a wide range of extensions that can be used to integrate
- Kubectl CLI: Enables setting up `kubectl` binary so that you can run `kubectl` commands. See [Managing your CLI tools](/tutorial/managing-your-application-resources#managing-other-resources).
-
**_Red Hat extensions_**
Red Hat extension pack is a set of the following extensions that a developer can use for authentication and development purposes:
+
- Podman AI Lab: Enables working and experimenting with Large Language Models (LLMs) in your local development environment. See [Running LLMs locally](/docs/ai-lab) and [Tutorial- Running an AI application](/tutorial/running-an-ai-application).
- Bootable containers: Enables building a bootable disk image from your container image. For more details, click the **More details** link in the **Catalog** tab of the Extensions page.
- Red Hat Account Extension: Enables you to sign in with Red Hat Single Sign-On (SSO). You can consume Red Hat content, such as RHEL container images and RPM packages without any cost. For more details, click the **More details** link in the **Catalog** tab of the Extensions page.
-- OpenShift Local: Enables running a Red Hat OpenShift Local cluster. You can manage the cluster configuration and run an application on the cluster from the UI. See [Creating an OpenShift Local instance](/docs/openshift/openshift-local).
+- OpenShift Local: Enables running a Red Hat OpenShift Local cluster. You can manage the cluster configuration and run an application on the cluster from the UI. See [Creating an OpenShift Local instance](/docs/openshift/openshift-local).
- Developer Sandbox: Enables deploying your application to a shared-OpenShift Container Platform (OCP) cluster for 30 days without any cost. After configuring a sandbox environment, you can switch to the developer sandbox context and perform tasks, such as deploying a pod or container from the UI. See [Configuring access to a developer sandbox](/docs/openshift/developer-sandbox).
@@ -60,10 +60,10 @@ Red Hat extension pack is a set of the following extensions that a developer can
**_Other extensions_**
-- Registries: Provides some default registries so that you can connect to them with your credentials. See [Managing registries](/docs/containers/registries).
+- Registries: Provides some default registries so that you can connect to them with your credentials. See [Managing registries](/docs/containers/registries).
- Image Layers Explorer: Use this extension to explore and analyze different layers of the container image. For more details, click the **More details** link in the **Catalog** tab of the Extensions page.
**_Custom extensions_**
-You can also create your own customized extension using [these templates](/docs/extensions/templates). For more details, see [Developing a Podman Desktop extension](/docs/extensions/developing) and [Publishing a Podman Desktop extension](/docs/extensions/publish).
\ No newline at end of file
+You can also create your own customized extension using [these templates](/docs/extensions/templates). For more details, see [Developing a Podman Desktop extension](/docs/extensions/developing) and [Publishing a Podman Desktop extension](/docs/extensions/publish).
diff --git a/website/docs/extensions/templates/index.md b/website/docs/extensions/templates/index.md
index 23fdea38dd4..2a503632a0a 100644
--- a/website/docs/extensions/templates/index.md
+++ b/website/docs/extensions/templates/index.md
@@ -14,7 +14,7 @@ Below are a list of officially maintained templates to be used for Podman Deskto

-**Link:** https://github.com/podman-desktop/podman-desktop-extension-minimal-template
+**Link:** [podman-desktop-extension-minimal-template](https://github.com/podman-desktop/podman-desktop-extension-minimal-template)
This template provides a minimal template on how to build a Podman Desktop extension. More information can be found on our official extension documentation on how to further expand your extension.
@@ -24,7 +24,7 @@ With this template, on activating a "Hello World!" dialog will appear.

-**Link:** https://github.com/podman-desktop/podman-desktop-extension-webview-template
+**Link:** [podman-desktop-extension-webview-template](https://github.com/podman-desktop/podman-desktop-extension-webview-template)
This template provides a webview template on how to build a Podman Desktop extension showcasing a frontend.
@@ -36,7 +36,7 @@ With this template, you will see a new button on the navbar that says "Hello Wor

-**Link:** https://github.com/podman-desktop/podman-desktop-extension-full-template
+**Link:** [podman-desktop-extension-full-template](https://github.com/podman-desktop/podman-desktop-extension-full-template)
This template provides a "full" example of creating an extension with a webview that utilizes multiple packages. Within this template, we use three separate packages to distinguish between the frontend, backend, and shared code that connects the frontend and backend.
diff --git a/website/docs/installation/macos-install.md b/website/docs/installation/macos-install.md
index 345a29352fa..bc66e7efb07 100644
--- a/website/docs/installation/macos-install.md
+++ b/website/docs/installation/macos-install.md
@@ -70,6 +70,7 @@ Podman Desktop requires [Podman Engine](https://docs.podman.io/en/latest/index.h
## Using `libkrun` as machine provider
By default, Podman uses the `Apple HyperVisor` provider type. If you are already running an `Apple HyperVisor` Podman machine and want to create a `GPU enabled (LibKrun)` machine, reset the Podman machine to avoid any port conflicts:
+
- Using the UI: Click the **Troubleshooting** icon in the status bar and then **Cleanup / Purge data**.
- Using the CLI: Run the `podman machine reset` command.
@@ -87,7 +88,7 @@ To use `podman machine` CLI commands with the `libkrun` provider type, configure
**_Configuring the `containers.conf` file_**
-1. Open the `containers.conf` file, which is placed in the `$HOME/.config/containers` directory.
+1. Open the `containers.conf` file, which is placed in the `$HOME/.config/containers` directory.
1. Add the `provider` attribute and set its value to `libkrun` in the file.
```vim
diff --git a/website/docs/installation/windows-install/index.md b/website/docs/installation/windows-install/index.md
index 5029cb6f691..4e0bd98cf64 100644
--- a/website/docs/installation/windows-install/index.md
+++ b/website/docs/installation/windows-install/index.md
@@ -102,6 +102,7 @@ To install the Podman Machine:
> wsl --update
> wsl --install --no-distribution
```
+
:::note
If you run the Podman Desktop setup on a Windows 10 LTSC version, you require to install a specific WSL distribution. See [Troubleshooting Podman on Windows](/docs/troubleshooting/troubleshooting-podman-on-windows#windows-10-enterprise-ltsc-version-21h2-podman-desktop-is-unable-to-detect-wsl2-machine)
@@ -138,6 +139,7 @@ Before creating a Podman machine, you can use one of the following ways to enabl
```shell-session
> $env:CONTAINERS_MACHINE_PROVIDER = 'hyperv'
```
+
- As an admin user, set the following variable at system level:
```shell-session
@@ -148,7 +150,7 @@ Before creating a Podman machine, you can use one of the following ways to enabl
**_Configuring the `containers.conf` file_**
-1. Open the `containers.conf` file on your machine. The file is usually placed at `C:\Users\myuser\AppData\Roaming\containers\`.
+1. Open the `containers.conf` file on your machine. The file is usually placed at `C:\Users\myuser\AppData\Roaming\containers\`.
1. Add the `provider` attribute and set its value to `hyperv` in the file.
```vim
@@ -162,13 +164,14 @@ Before creating a Podman machine, you can use one of the following ways to enabl
1. [Create and start a Podman machine](/docs/podman/creating-a-podman-machine) using the UI.
#### Verification
+
After configuration, you can confirm whether you are using a Podman machine with Hyper-V virtualization provider.
1. Go to **Settings > Resources**.
1. Click the **Podman details** icon in the Podman tile.
1. Select the **Logs** tab to view the following notification message:
- ```
+ ```text
time="2023-05-09T21:16:08+03:00" level=debug msg="Using Podman machine with `hyperv` virtualization provider"
```
diff --git a/website/docs/kind/installing-extension.md b/website/docs/kind/installing-extension.md
index 9bbd6e28c97..534bc3e2f69 100644
--- a/website/docs/kind/installing-extension.md
+++ b/website/docs/kind/installing-extension.md
@@ -16,7 +16,7 @@ Kind is a *built-in* extension to Podman Desktop and no installation is necessar
:::
-The Kind extension provides the capability of creating a local Kubernetes cluster using only containers rather than a Virtual Machine.
+The Kind extension provides the capability of creating a local Kubernetes cluster using only containers rather than a Virtual Machine.
#### Procedure
@@ -26,4 +26,4 @@ The Kind extension provides the capability of creating a local Kubernetes cluste
The following video provides a complete guide on creating a single-node cluster:
-
\ No newline at end of file
+
diff --git a/website/docs/kubernetes/applying-a-yaml-manifest.md b/website/docs/kubernetes/applying-a-yaml-manifest.md
index 3962db81fa3..c0243cf6133 100644
--- a/website/docs/kubernetes/applying-a-yaml-manifest.md
+++ b/website/docs/kubernetes/applying-a-yaml-manifest.md
@@ -39,18 +39,18 @@ spec:
ports:
- containerPort: 80
```
+
This YAML manifest creates three pods that run the NGINX web server.
#### Procedure: Applying a YAML manifest to create a `Deployment` object
-1. Go to the **Kubernetes** component page.
+1. Go to the **Kubernetes** component page.
1. Click **Deployments** in the left navigation pane.
1. Click **Apply YAML** and select the YAML manifest file. A confirmation notification opens.

1. Click **OK**.

-
#### Verification
1. View the newly created `my-nginx` deployment on the same page.
@@ -63,5 +63,3 @@ This YAML manifest creates three pods that run the NGINX web server.
When you apply any other YAML manifest, you can view the newly created object on the corresponding component page.
:::
-
-
diff --git a/website/docs/kubernetes/configuring-editing-kube-object.md b/website/docs/kubernetes/configuring-editing-kube-object.md
index 0d9cf8bb4d2..6efbb2081b8 100644
--- a/website/docs/kubernetes/configuring-editing-kube-object.md
+++ b/website/docs/kubernetes/configuring-editing-kube-object.md
@@ -46,7 +46,7 @@ spec:
#### Procedure: Creating an object
-1. Go to the **Kubernetes** component page.
+1. Go to the **Kubernetes** component page.
2. Click one of the options to open the object page.

diff --git a/website/docs/kubernetes/deploying-a-pod-to-kubernetes.md b/website/docs/kubernetes/deploying-a-pod-to-kubernetes.md
index 525fe8a591e..6d41bc7fa70 100644
--- a/website/docs/kubernetes/deploying-a-pod-to-kubernetes.md
+++ b/website/docs/kubernetes/deploying-a-pod-to-kubernetes.md
@@ -20,11 +20,11 @@ With Podman Desktop, you can deploy a pod to your Kubernetes cluster with an act
#### Procedure
-1. Select your [Kubernetes context](/docs/kubernetes/viewing-and-selecting-current-kubernetes-context).
+1. Select your [Kubernetes context](/docs/kubernetes/viewing-and-selecting-current-kubernetes-context).
:::note
- Your pod or container is deployed to the `default` namespace of the Kubernetes cluster. To switch to a different namespace, use this command: `kubectl config set-context --current --namespace=`.
+ Your pod or container is deployed to the `default` namespace of the Kubernetes cluster. To switch to a different namespace, use this command: `kubectl config set-context --current --namespace=`.
:::
@@ -34,9 +34,9 @@ With Podman Desktop, you can deploy a pod to your Kubernetes cluster with an act
1. Select the **Deploy to Kubernetes** option from the dropdown list.
1. Select the checkbox to expose the service locally by using the default ingress controller.

-1. Conditional: When you configure custom port mapping while running an image, you have the option to select an Ingress host port from the dropdown list.
+1. Conditional: When you configure custom port mapping while running an image, you have the option to select an Ingress host port from the dropdown list.

- Otherwise, you do not see the option.
+ Otherwise, you do not see the option.
1. Click **Deploy** and then **Done**.
@@ -49,4 +49,4 @@ With Podman Desktop, you can deploy a pod to your Kubernetes cluster with an act

1. Optional: Check the running service on the **Kubernetes > Services** page.
- 
\ No newline at end of file
+ 
diff --git a/website/docs/kubernetes/port-forwarding.md b/website/docs/kubernetes/port-forwarding.md
index 2dcac3323e1..4e59f2f0c08 100644
--- a/website/docs/kubernetes/port-forwarding.md
+++ b/website/docs/kubernetes/port-forwarding.md
@@ -15,6 +15,7 @@ You can use the port forwarding feature for the pods and services running on a K
#### Prerequisites
Make sure you have:
+
- A [running Podman machine](/docs/podman/creating-a-podman-machine).
- A running Kubernetes cluster, such as [Kind](/docs/kind/creating-a-kind-cluster) or [Minikube](/docs/minikube/creating-a-minikube-cluster).
- Created a YAML configuration file with an exposed port:
@@ -56,7 +57,7 @@ spec:
:::note
You can also start port forwarding from the **Kubernetes > Services** component page. After creating a service, click the name of the service and configure port forwarding in the **Summary** tab.
-
+
:::
#### Procedure: Stop port forwarding
@@ -64,6 +65,7 @@ spec:
You can stop port forwarding by using one of the following ways:
**_Use the component page_**
+
1. Go to the **Pods** or **Kubernetes > Services** page.
1. Click the name of the Kubernetes pod or service for which you want to stop port fowarding.
1. Click **Remove** in the Summary tab. The entry is removed from the **Kubernetes > Port Forwarding** page.
diff --git a/website/docs/migrating-from-docker/index.md b/website/docs/migrating-from-docker/index.md
index 0a455849124..ebeddb2eb74 100644
--- a/website/docs/migrating-from-docker/index.md
+++ b/website/docs/migrating-from-docker/index.md
@@ -11,7 +11,6 @@ tags: [migrating-from-docker]
If you have used Docker in the past, you can continue using familiar workflows with the Docker compatibility feature of Podman Desktop.
Docker compatibility is a way to configure an environment in which you can run your Docker applications, commands, and tools on a Podman engine without reconfiguration. It encompasses two stages:
-- [Import your saved containers](/docs/migrating-from-docker/importing-saved-containers) into Podman Desktop using CLI.
+
+- [Import your saved containers](/docs/migrating-from-docker/importing-saved-containers) into Podman Desktop using CLI.
- [Access the Docker Compatibility settings](/docs/migrating-from-docker/managing-docker-compatibility) to configure a Docker-compatible environment based on your needs.
-
-
diff --git a/website/docs/migrating-from-docker/using-the-docker_host-environment-variable.md b/website/docs/migrating-from-docker/using-the-docker_host-environment-variable.md
index 6f1eff73574..59be87a7559 100644
--- a/website/docs/migrating-from-docker/using-the-docker_host-environment-variable.md
+++ b/website/docs/migrating-from-docker/using-the-docker_host-environment-variable.md
@@ -21,11 +21,12 @@ Using the `DOCKER_HOST` environment variable, you can connect your Docker CLI to
:::note
-Alternatively, you can add a `podman` context by using the `docker context create` command.
+Alternatively, you can add a `podman` context by using the `docker context create` command.
+
- For example, set the value of the context in this pattern on a macOS machine:
- `docker context create podman --docker "host=unix://$HOME.local/share/containers/podman/machine/podman.sock"`
-
+ `docker context create podman --docker "host=unix://$HOME.local/share/containers/podman/machine/podman.sock"`
+
Where, the path specified after the `unix://` scheme denotes the `DOCKER_HOST` value.
Then, you can run the `docker context use podman` command to switch to that context. This way you can use your Docker CLI to run your tasks on a remote Podman engine. When you run the `docker ps` command, it queries the Podman socket specified in the current context.
@@ -57,19 +58,19 @@ $ podman machine inspect --format '{{.ConnectionInfo.PodmanPipe.Path}}'
Depending on your terminal emulator of preference, there is a little variation between the commands to set a session level environment variable:
- ##### cmd - Command Prompt
+ ##### cmd - Command Prompt
```cmd
set DOCKER_HOST=npipe://
```
- ##### Git Bash
+ ##### Git Bash
```bash
export DOCKER_HOST=npipe://
```
- ##### Powershell
+ ##### Powershell
Don't miss the quotes used with the value. Otherwise, powershell will interpret it as a separate command instead of a value.
@@ -83,7 +84,7 @@ $ podman machine inspect --format '{{.ConnectionInfo.PodmanPipe.Path}}'
Setting the `DOCKER_HOST` environment variable isn't necessary on Windows because Podman also listens to the default `docker_engine` pipe. But, it might be necessary if you get the following error: **Error: socket of machine is not set**, while trying to use the `podman compose` command.
-:::
+:::
diff --git a/website/docs/minikube/installing-extension.md b/website/docs/minikube/installing-extension.md
index 311747288a4..662c4c4c80b 100644
--- a/website/docs/minikube/installing-extension.md
+++ b/website/docs/minikube/installing-extension.md
@@ -12,7 +12,6 @@ import ReactPlayer from 'react-player'
The Minikube extension provides the capability of creating a local Kubernetes cluster. This extension can be installed and used as a one-click deployment for a test cluster.
-
#### Procedure
If you have Podman Desktop already installed, **click to launch the installation** of Minikube in Podman Desktop.
@@ -23,4 +22,4 @@ If not, please [install Podman Desktop](/docs/installation) first.
The following video provides a complete guide from installation to cluster creation:
-
\ No newline at end of file
+
diff --git a/website/docs/podman/creating-a-podman-machine.md b/website/docs/podman/creating-a-podman-machine.md
index 606c41ba22b..1a252bf85a3 100644
--- a/website/docs/podman/creating-a-podman-machine.md
+++ b/website/docs/podman/creating-a-podman-machine.md
@@ -43,9 +43,9 @@ Consider creating a custom Podman machine to:
1. **Machine with root privileges**:
Enable to use the rootful connection by default.
Required to use Kind on Windows.
- 1. Additional settings based on your operating system:
+ 1. Additional settings based on your operating system:
- (On Windows) **User mode networking (traffic relayed by a user process)**: Enable to route the traffic through the network connection from your Windows session. This setting is required to access resources behind your VPN connection.
- - (On macOS) **Provider Type**: The default value is `Apple HyperVisor`. Before switching to `GPU enabled (LibKrun)`, ensure that you have [configured the machine provider](/docs/installation/macos-install#using-libkrun-as-machine-provider) manually.
+ - (On macOS) **Provider Type**: The default value is `Apple HyperVisor`. Before switching to `GPU enabled (LibKrun)`, ensure that you have [configured the machine provider](/docs/installation/macos-install#using-libkrun-as-machine-provider) manually.
1. Click **Create**.

diff --git a/website/docs/podman/gpu.md b/website/docs/podman/gpu.md
index 9218d1c067b..274b3e8405c 100644
--- a/website/docs/podman/gpu.md
+++ b/website/docs/podman/gpu.md
@@ -97,7 +97,7 @@ Fri Aug 16 18:58:14 2024
You might encounter the following error inside the containers:
-```
+```console
# nvidia-smi
Failed to initialize NVML: N/A
```
@@ -106,7 +106,7 @@ This problem is related to a mismatch between the Container Device Interface (CD
To fix this problem, generate a new CDI specification by running the following inside the Podman machine:
-```
+```shell
nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
```
@@ -166,11 +166,11 @@ Example output:
```sh
$ podman run --rm -it --device /dev/dri --name gpu-info quay.io/slopezpa/fedora-vgpu vulkaninfo | grep "GPU"
- GPU id = 0 (Virtio-GPU Venus (Apple M1 Pro))
- GPU id = 1 (llvmpipe (LLVM 17.0.6, 128 bits))
+ GPU id = 0 (Virtio-GPU Venus (Apple M1 Pro))
+ GPU id = 1 (llvmpipe (LLVM 17.0.6, 128 bits))
GPU0:
- deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
- deviceName = Virtio-GPU Venus (Apple M1 Pro)
+ deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
+ deviceName = Virtio-GPU Venus (Apple M1 Pro)
GPU1:
```
diff --git a/website/docs/podman/podman-remote.md b/website/docs/podman/podman-remote.md
index fd7c102359b..150c9800423 100644
--- a/website/docs/podman/podman-remote.md
+++ b/website/docs/podman/podman-remote.md
@@ -117,4 +117,4 @@ $ podman ps
#### Additional resources
-- https://github.com/containers/podman/blob/main/docs/tutorials/remote_client.md
+- [podman:docs/tutorials/remote_client.md](https://github.com/containers/podman/blob/main/docs/tutorials/remote_client.md)
diff --git a/website/docs/troubleshooting/access-logs.md b/website/docs/troubleshooting/access-logs.md
index cff70e299f5..3367736628d 100644
--- a/website/docs/troubleshooting/access-logs.md
+++ b/website/docs/troubleshooting/access-logs.md
@@ -6,7 +6,7 @@ keywords: [podman desktop, podman, access logs, troubleshoot]
tags: [acessing-podman-desktop-logs, troubleshooting-podman-desktop]
---
-# Access Podman Desktop logs
+# Access Podman Desktop logs
When you face any connection issues or any other problems with your task execution, you can access the Podman Desktop logs to troubleshoot. In addition, you can also resolve those issues using the **Repair & Connections** and **Stores** tabs.
@@ -34,7 +34,6 @@ If you do not want to track the previous event logs, you can remove them from th
1. Click **Check containers** to view the response time of the available containers.
1. Optional: Click **Reconnect Providers** to reconnect to the container engine socket.
-
#### Procedure: Resolve event-related issues
1. Click the **Troubleshooting** icon in the status bar.
@@ -44,4 +43,4 @@ If you do not want to track the previous event logs, you can remove them from th
1. Click **Refresh** to refresh the event logs.

1. Optional: Click **Clear** to delete the event logs.
-1. Click **OK**.
\ No newline at end of file
+1. Click **OK**.
diff --git a/website/docs/troubleshooting/troubleshooting-extension-issues.md b/website/docs/troubleshooting/troubleshooting-extension-issues.md
index 3dc90fecc29..3d76894c4cb 100644
--- a/website/docs/troubleshooting/troubleshooting-extension-issues.md
+++ b/website/docs/troubleshooting/troubleshooting-extension-issues.md
@@ -18,7 +18,9 @@ You might get this error message `Failed to create minikube cluster. E0125 05:58
#### Solution
1. Run the following command to delete the Minikube cluster.
+
```shell-session
$ minikube delete
```
-2. Create a new [Minikube cluster](/docs/minikube/installing-extension) using the Podman Desktop UI.
\ No newline at end of file
+
+2. Create a new [Minikube cluster](/docs/minikube/installing-extension) using the Podman Desktop UI.
diff --git a/website/docs/troubleshooting/troubleshooting-podman-on-macos.md b/website/docs/troubleshooting/troubleshooting-podman-on-macos.md
index 99310a07841..ab3c6bc2ee9 100644
--- a/website/docs/troubleshooting/troubleshooting-podman-on-macos.md
+++ b/website/docs/troubleshooting/troubleshooting-podman-on-macos.md
@@ -246,15 +246,17 @@ For M3 processors:
## `podman machine` CLI commands do not work with `libkrun` provider type without manual configuration
-When you create a Podman machine with the `GPU enabled (LibKrun)` provider type, all the `podman machine` CLI commands stop working.
+When you create a Podman machine with the `GPU enabled (LibKrun)` provider type, all the `podman machine` CLI commands stop working.
**_Podman machine is not listed_**
+
```shell-session
$ podman machine list
NAME VM TYPE CREATED LAST UP CPUS MEMORY DISK SIZE
```
**_Error: interacting with the default Podman machine_**
+
```shell-session
$ podman machine ssh
Error: vm podman-machine-default not found: podman-machine-default: VM does not exist
@@ -263,9 +265,9 @@ Error: vm podman-machine-default not found: podman-machine-default: VM does not
#### Workaround
- Prefix each `podman machine` command with
-`CONTAINERS_MACHINE_PROVIDER=libkrun`. For example, `CONTAINERS_MACHINE_PROVIDER=libkrun podman machine ls`.
+`CONTAINERS_MACHINE_PROVIDER=libkrun`. For example, `CONTAINERS_MACHINE_PROVIDER=libkrun podman machine ls`.
- Manually configure the `containers.conf` file or the `CONTAINERS_MACHINE_PROVIDER` environment variable. See [Using `libkrun` as machine provider](/docs/installation/macos-install#using-libkrun-as-machine-provider).
#### Additional resources
-- [Issue #9860](https://github.com/podman-desktop/podman-desktop/issues/9860)
\ No newline at end of file
+- [Issue #9860](https://github.com/podman-desktop/podman-desktop/issues/9860)
diff --git a/website/docs/troubleshooting/troubleshooting-podman-on-windows.md b/website/docs/troubleshooting/troubleshooting-podman-on-windows.md
index 2917152aac6..9877ff3f902 100644
--- a/website/docs/troubleshooting/troubleshooting-podman-on-windows.md
+++ b/website/docs/troubleshooting/troubleshooting-podman-on-windows.md
@@ -88,14 +88,15 @@ You must install a specific Windows Subsystem for Linux (WSL) distribution to ma
#### Solution: Enable Podman Desktop setup to run smoothly
**_Windows 11 or later version_**
+
1. Run the `wsl --update` command to update the WSL kernel.
-1. Run the `wsl --install --no-distribution` command to not install any WSL distribution.
+1. Run the `wsl --install --no-distribution` command to not install any WSL distribution.
1. Restart your machine.
-**_Windows 10 LTSC version_**
+**_Windows 10 LTSC version_**
1. Run the `wsl --update` command.
-1. Run the `wsl --install -d ` command to install a specific WSL distribution.
+1. Run the `wsl --install -d ` command to install a specific WSL distribution.
- Replace `distro` with any official WSL distribution, such as `ubuntu-24.04`.
1. Restart your machine.
-1. (Optional): Run the `wsl --unregister ` to uninstall the WSL distribution.
\ No newline at end of file
+1. (Optional): Run the `wsl --unregister ` to uninstall the WSL distribution.
diff --git a/website/docs/troubleshooting/troubleshooting-podman.md b/website/docs/troubleshooting/troubleshooting-podman.md
index e35096080e5..41dfe458c1f 100644
--- a/website/docs/troubleshooting/troubleshooting-podman.md
+++ b/website/docs/troubleshooting/troubleshooting-podman.md
@@ -240,7 +240,6 @@ _Note:_ If Docker Desktop is started again, it will automatically re-alias the d
After uninstalling Podman Desktop, the configuration data persists even though it is not needed for a fresh installation.
-
#### Solution
**_Deleting Podman Desktop configuration_**
@@ -248,11 +247,12 @@ After uninstalling Podman Desktop, the configuration data persists even though i
1. Go to the `$HOME/.local/share/containers` directory, where `$HOME` denotes the home folder of the current user.
1. Delete the `podman-desktop` folder.
-**_Deleting Podman configuration_**
+**_Deleting Podman configuration_**
+
+Podman stores its configuration files in the `$HOME/.config/containers` directory. Options available to delete Podman configuration:
-Podman stores its configuration files in the `$HOME/.config/containers` directory. Options available to delete Podman configuration:
- Using CLI
- - Run the `podman machine reset` command.
+ - Run the `podman machine reset` command.
- Using UI
1. Click the **Troubleshooting** icon in the status bar.
1. Click the **Cleanup/Purge data** button to delete all resources from the engine.
@@ -269,5 +269,4 @@ Kubernetes clusters from cloud providers require an executable installed on the
1. Move the binary located in your `.kube/config` file to a system bin directory, such as `/usr/local/bin/`.
-1. Set the value of the `command` parameter to the full path of the executable in your Kubernetes configuration file. For example, `command: /usr/local/bin/`, where `cloud-provider-binary` denotes the binary name, such as `aws` or `oci`.
-
+1. Set the value of the `command` parameter to the full path of the executable in your Kubernetes configuration file. For example, `command: /usr/local/bin/`, where `cloud-provider-binary` denotes the binary name, such as `aws` or `oci`.
diff --git a/website/package.json b/website/package.json
index f9f12902538..9cc9c74dcaf 100644
--- a/website/package.json
+++ b/website/package.json
@@ -15,8 +15,8 @@
"typecheck": "tsc",
"format:check": "biome format",
"format:fix": "biome format --write",
- "markdownlint:check": "markdownlint-cli2 --config ../.markdownlint.yaml \"**/*.md\" \"#node_modules\"",
- "markdownlint:fix": "markdownlint-cli2-fix --config ../.markdownlint.yaml \"**/*.md\" \"#node_modules\"",
+ "markdownlint:check": "markdownlint-cli2 --config ../.markdownlint.yaml \"**/*.md\" \"#node_modules\" \"#api\" ",
+ "markdownlint:fix": "markdownlint-cli2 --fix --config ../.markdownlint.yaml \"**/*.md\" \"#node_modules\"",
"vale": "vale sync && vale --config ../.vale.ini .",
"lint:check": "cd .. && eslint --cache --cache-location website/.eslintcache website --ext js,ts,tsx",
"lint:fix": "cd .. && eslint --cache --cache-location website/.eslintcache website --fix --ext js,ts,tsx",
@@ -48,6 +48,7 @@
"autoprefixer": "^10.4.20",
"markdownlint": "^0.37.2",
"markdownlint-cli2": "^0.17.0",
+ "markdownlint-cli2-formatter-summarize": "^0.0.7",
"postcss": "^8.4.49",
"tailwindcss": "^3.4.17",
"typedoc": "^0.27.6",
diff --git a/website/tutorial/deploying-a-kubernetes-application.md b/website/tutorial/deploying-a-kubernetes-application.md
index 0ab2a493ece..41f59eb602e 100644
--- a/website/tutorial/deploying-a-kubernetes-application.md
+++ b/website/tutorial/deploying-a-kubernetes-application.md
@@ -107,7 +107,7 @@ This YAML configuration creates a service named `my-nginx` to expose the Nginx d
## Verifying the service: port forwarding
-1. In the Kubernetes explorer, go to **Services**.
+1. In the Kubernetes explorer, go to **Services**.
1. Click the name of the `my-nginx` service.
1. Click **Forward...**.
