fix: use prettier for formatting markdown (#10486)

* fix: use prettier for checking markdown

Since biome doesn't handle markdown yet, only svelte and code.

Restore the previous config, but skip "prettier-plugin-svelte".

Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>
This commit is contained in:
Anders Björklund 2024-12-30 13:41:13 +01:00 committed by GitHub
parent effc6f84e8
commit 3e8445e5b8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
30 changed files with 320 additions and 293 deletions

3
.prettierignore Normal file
View file

@ -0,0 +1,3 @@
website/api/
website/build/
website/node_modules/

7
.prettierrc Normal file
View file

@ -0,0 +1,7 @@
{
"bracketSameLine": true,
"singleQuote": true,
"arrowParens": "avoid",
"printWidth": 120,
"trailingComma": "all",
}

View file

@ -216,7 +216,7 @@ When contributing the new code, you should consider not lowering overall code co
### Step 7. Code formatter / linter
We use `@biomejs/biome` as a formatter and `eslint` for linting.
We use `@biomejs/biome` (and `prettier` for markdown) as formatter and `eslint` for linting.
Check that your code is properly formatted with the linter and formatter:
@ -316,7 +316,6 @@ Legal name must be used (no pseudonyms or anonymous contributions)
If you set your `user.name` and `user.email` git configs, you can sign your
commit automatically with `git commit -s`.
### Skipping Jobs for Draft Pull Requests on GitHub
When creating a pull request in **draft mode** on GitHub, all CI/CD jobs are **skipped by default**. This behavior is intentional to avoid triggering unnecessary workflows while the pull request is still in progress.

View file

@ -72,8 +72,8 @@
"test:watch": "vitest watch",
"test:website": "vitest run -r website --passWithNoTests --coverage",
"watch": "node scripts/watch.mjs",
"format:check": "biome format",
"format:fix": "biome format --write",
"format:check": "biome format && prettier --cache --check \"website/**/*.md\"",
"format:fix": "biome format --write && prettier --cache --write \"website/**/*.md\"",
"markdownlint:check": "markdownlint-cli2 \"website/**/*.md\" \"#website/node_modules\" \"#website/api\"",
"markdownlint:fix": "markdownlint-cli2 --fix \"website/**/*.md\" \"#website/node_modules\"",
"lint:clean": "rimraf .eslintcache",
@ -112,7 +112,8 @@
"node --max-old-space-size=6144 node_modules/eslint/bin/eslint.js --cache --fix",
"biome format --write"
],
"*.{md,css,json}": "biome format --write"
"*.md": "prettier --cache --write",
"*.{css,json}": "biome format --write"
},
"devDependencies": {
"@biomejs/biome": "^1.9.4",
@ -167,6 +168,7 @@
"minimist": "^1.2.8",
"msw": "^2.7.0",
"postcss-import": "^16.1.0",
"prettier": "^3.3.3",
"proxy": "^2.2.0",
"typescript": "5.6.3",
"typescript-eslint": "^8.18.2",

View file

@ -267,6 +267,9 @@ importers:
postcss-import:
specifier: ^16.1.0
version: 16.1.0(postcss@8.4.49)
prettier:
specifier: ^3.3.3
version: 3.4.2
proxy:
specifier: ^2.2.0
version: 2.2.0
@ -803,28 +806,28 @@ importers:
devDependencies:
'@storybook/addon-essentials':
specifier: ^8.4.7
version: 8.4.7(@types/react@18.3.12)(storybook@8.4.4)
version: 8.4.7(@types/react@18.3.12)(storybook@8.4.4(prettier@3.4.2))
'@storybook/addon-interactions':
specifier: ^8.4.7
version: 8.4.7(storybook@8.4.4)
version: 8.4.7(storybook@8.4.4(prettier@3.4.2))
'@storybook/addon-links':
specifier: ^8.4.7
version: 8.4.7(react@18.2.0)(storybook@8.4.4)
version: 8.4.7(react@18.2.0)(storybook@8.4.4(prettier@3.4.2))
'@storybook/addon-svelte-csf':
specifier: 5.0.0-next.11
version: 5.0.0-next.11(@storybook/svelte@8.4.7(storybook@8.4.4)(svelte@5.16.0))(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1)))(storybook@8.4.4)(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1))
version: 5.0.0-next.11(@storybook/svelte@8.4.7(storybook@8.4.4(prettier@3.4.2))(svelte@5.16.0))(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1)))(storybook@8.4.4(prettier@3.4.2))(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1))
'@storybook/blocks':
specifier: ^8.4.7
version: 8.4.7(react-dom@18.3.1(react@18.2.0))(react@18.2.0)(storybook@8.4.4)
version: 8.4.7(react-dom@18.3.1(react@18.2.0))(react@18.2.0)(storybook@8.4.4(prettier@3.4.2))
'@storybook/svelte':
specifier: ^8.4.7
version: 8.4.7(storybook@8.4.4)(svelte@5.16.0)
version: 8.4.7(storybook@8.4.4(prettier@3.4.2))(svelte@5.16.0)
'@storybook/svelte-vite':
specifier: ^8.4.7
version: 8.4.7(@babel/core@7.26.0)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1)))(postcss-load-config@6.0.1(jiti@2.4.1)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.6.1))(postcss@8.4.49)(storybook@8.4.4)(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1))
version: 8.4.7(@babel/core@7.26.0)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1)))(postcss-load-config@6.0.1(jiti@2.4.1)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.6.1))(postcss@8.4.49)(storybook@8.4.4(prettier@3.4.2))(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1))
'@storybook/test':
specifier: ^8.4.7
version: 8.4.7(storybook@8.4.4)
version: 8.4.7(storybook@8.4.4(prettier@3.4.2))
'@sveltejs/package':
specifier: ^2.3.7
version: 2.3.7(svelte@5.16.0)(typescript@5.6.3)
@ -860,10 +863,10 @@ importers:
version: 18.3.1(react@18.2.0)
storybook:
specifier: ^8.2.9
version: 8.4.4
version: 8.4.4(prettier@3.4.2)
storybook-dark-mode:
specifier: ^4.0.2
version: 4.0.2(react-dom@18.3.1(react@18.2.0))(react@18.2.0)(storybook@8.4.4)
version: 4.0.2(react-dom@18.3.1(react@18.2.0))(react@18.2.0)(storybook@8.4.4(prettier@3.4.2))
svelte:
specifier: 5.16.0
version: 5.16.0
@ -9314,6 +9317,11 @@ packages:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
prettier@3.4.2:
resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==}
engines: {node: '>=14'}
hasBin: true
pretty-error@4.0.0:
resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
@ -14642,100 +14650,100 @@ snapshots:
micromark-util-character: 1.2.0
micromark-util-symbol: 1.1.0
'@storybook/addon-actions@8.4.7(storybook@8.4.4)':
'@storybook/addon-actions@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
'@storybook/global': 5.0.0
'@types/uuid': 9.0.8
dequal: 2.0.3
polished: 4.3.1
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
uuid: 9.0.1
'@storybook/addon-backgrounds@8.4.7(storybook@8.4.4)':
'@storybook/addon-backgrounds@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
'@storybook/global': 5.0.0
memoizerific: 1.11.3
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
ts-dedent: 2.2.0
'@storybook/addon-controls@8.4.7(storybook@8.4.4)':
'@storybook/addon-controls@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
'@storybook/global': 5.0.0
dequal: 2.0.3
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
ts-dedent: 2.2.0
'@storybook/addon-docs@8.4.7(@types/react@18.3.12)(storybook@8.4.4)':
'@storybook/addon-docs@8.4.7(@types/react@18.3.12)(storybook@8.4.4(prettier@3.4.2))':
dependencies:
'@mdx-js/react': 3.1.0(@types/react@18.3.12)(react@18.2.0)
'@storybook/blocks': 8.4.7(react-dom@18.3.1(react@18.2.0))(react@18.2.0)(storybook@8.4.4)
'@storybook/csf-plugin': 8.4.7(storybook@8.4.4)
'@storybook/react-dom-shim': 8.4.7(react-dom@18.3.1(react@18.2.0))(react@18.2.0)(storybook@8.4.4)
'@storybook/blocks': 8.4.7(react-dom@18.3.1(react@18.2.0))(react@18.2.0)(storybook@8.4.4(prettier@3.4.2))
'@storybook/csf-plugin': 8.4.7(storybook@8.4.4(prettier@3.4.2))
'@storybook/react-dom-shim': 8.4.7(react-dom@18.3.1(react@18.2.0))(react@18.2.0)(storybook@8.4.4(prettier@3.4.2))
react: 18.2.0
react-dom: 18.3.1(react@18.2.0)
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
ts-dedent: 2.2.0
transitivePeerDependencies:
- '@types/react'
'@storybook/addon-essentials@8.4.7(@types/react@18.3.12)(storybook@8.4.4)':
'@storybook/addon-essentials@8.4.7(@types/react@18.3.12)(storybook@8.4.4(prettier@3.4.2))':
dependencies:
'@storybook/addon-actions': 8.4.7(storybook@8.4.4)
'@storybook/addon-backgrounds': 8.4.7(storybook@8.4.4)
'@storybook/addon-controls': 8.4.7(storybook@8.4.4)
'@storybook/addon-docs': 8.4.7(@types/react@18.3.12)(storybook@8.4.4)
'@storybook/addon-highlight': 8.4.7(storybook@8.4.4)
'@storybook/addon-measure': 8.4.7(storybook@8.4.4)
'@storybook/addon-outline': 8.4.7(storybook@8.4.4)
'@storybook/addon-toolbars': 8.4.7(storybook@8.4.4)
'@storybook/addon-viewport': 8.4.7(storybook@8.4.4)
storybook: 8.4.4
'@storybook/addon-actions': 8.4.7(storybook@8.4.4(prettier@3.4.2))
'@storybook/addon-backgrounds': 8.4.7(storybook@8.4.4(prettier@3.4.2))
'@storybook/addon-controls': 8.4.7(storybook@8.4.4(prettier@3.4.2))
'@storybook/addon-docs': 8.4.7(@types/react@18.3.12)(storybook@8.4.4(prettier@3.4.2))
'@storybook/addon-highlight': 8.4.7(storybook@8.4.4(prettier@3.4.2))
'@storybook/addon-measure': 8.4.7(storybook@8.4.4(prettier@3.4.2))
'@storybook/addon-outline': 8.4.7(storybook@8.4.4(prettier@3.4.2))
'@storybook/addon-toolbars': 8.4.7(storybook@8.4.4(prettier@3.4.2))
'@storybook/addon-viewport': 8.4.7(storybook@8.4.4(prettier@3.4.2))
storybook: 8.4.4(prettier@3.4.2)
ts-dedent: 2.2.0
transitivePeerDependencies:
- '@types/react'
'@storybook/addon-highlight@8.4.7(storybook@8.4.4)':
'@storybook/addon-highlight@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
'@storybook/global': 5.0.0
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/addon-interactions@8.4.7(storybook@8.4.4)':
'@storybook/addon-interactions@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
'@storybook/global': 5.0.0
'@storybook/instrumenter': 8.4.7(storybook@8.4.4)
'@storybook/test': 8.4.7(storybook@8.4.4)
'@storybook/instrumenter': 8.4.7(storybook@8.4.4(prettier@3.4.2))
'@storybook/test': 8.4.7(storybook@8.4.4(prettier@3.4.2))
polished: 4.3.1
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
ts-dedent: 2.2.0
'@storybook/addon-links@8.4.7(react@18.2.0)(storybook@8.4.4)':
'@storybook/addon-links@8.4.7(react@18.2.0)(storybook@8.4.4(prettier@3.4.2))':
dependencies:
'@storybook/csf': 0.1.11
'@storybook/global': 5.0.0
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
ts-dedent: 2.2.0
optionalDependencies:
react: 18.2.0
'@storybook/addon-measure@8.4.7(storybook@8.4.4)':
'@storybook/addon-measure@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
'@storybook/global': 5.0.0
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
tiny-invariant: 1.3.3
'@storybook/addon-outline@8.4.7(storybook@8.4.4)':
'@storybook/addon-outline@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
'@storybook/global': 5.0.0
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
ts-dedent: 2.2.0
'@storybook/addon-svelte-csf@5.0.0-next.11(@storybook/svelte@8.4.7(storybook@8.4.4)(svelte@5.16.0))(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1)))(storybook@8.4.4)(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1))':
'@storybook/addon-svelte-csf@5.0.0-next.11(@storybook/svelte@8.4.7(storybook@8.4.4(prettier@3.4.2))(svelte@5.16.0))(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1)))(storybook@8.4.4(prettier@3.4.2))(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1))':
dependencies:
'@storybook/csf': 0.1.11
'@storybook/docs-tools': 8.4.4(storybook@8.4.4)
'@storybook/node-logger': 8.4.4(storybook@8.4.4)
'@storybook/svelte': 8.4.7(storybook@8.4.4)(svelte@5.16.0)
'@storybook/types': 8.4.4(storybook@8.4.4)
'@storybook/docs-tools': 8.4.4(storybook@8.4.4(prettier@3.4.2))
'@storybook/node-logger': 8.4.4(storybook@8.4.4(prettier@3.4.2))
'@storybook/svelte': 8.4.7(storybook@8.4.4(prettier@3.4.2))(svelte@5.16.0)
'@storybook/types': 8.4.4(storybook@8.4.4(prettier@3.4.2))
'@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1))
dedent: 1.5.3
es-toolkit: 1.27.0
@ -14749,46 +14757,46 @@ snapshots:
- babel-plugin-macros
- storybook
'@storybook/addon-toolbars@8.4.7(storybook@8.4.4)':
'@storybook/addon-toolbars@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/addon-viewport@8.4.7(storybook@8.4.4)':
'@storybook/addon-viewport@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
memoizerific: 1.11.3
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/blocks@8.4.7(react-dom@18.3.1(react@18.2.0))(react@18.2.0)(storybook@8.4.4)':
'@storybook/blocks@8.4.7(react-dom@18.3.1(react@18.2.0))(react@18.2.0)(storybook@8.4.4(prettier@3.4.2))':
dependencies:
'@storybook/csf': 0.1.11
'@storybook/icons': 1.2.12(react-dom@18.3.1(react@18.2.0))(react@18.2.0)
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
ts-dedent: 2.2.0
optionalDependencies:
react: 18.2.0
react-dom: 18.3.1(react@18.2.0)
'@storybook/builder-vite@8.4.7(storybook@8.4.4)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1))':
'@storybook/builder-vite@8.4.7(storybook@8.4.4(prettier@3.4.2))(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1))':
dependencies:
'@storybook/csf-plugin': 8.4.7(storybook@8.4.4)
'@storybook/csf-plugin': 8.4.7(storybook@8.4.4(prettier@3.4.2))
browser-assert: 1.2.1
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
ts-dedent: 2.2.0
vite: 6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1)
'@storybook/components@8.4.4(storybook@8.4.4)':
'@storybook/components@8.4.4(storybook@8.4.4(prettier@3.4.2))':
dependencies:
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/components@8.4.7(storybook@8.4.4)':
'@storybook/components@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/core-events@8.4.4(storybook@8.4.4)':
'@storybook/core-events@8.4.4(storybook@8.4.4(prettier@3.4.2))':
dependencies:
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/core@8.4.4':
'@storybook/core@8.4.4(prettier@3.4.2)':
dependencies:
'@storybook/csf': 0.1.11
better-opn: 3.0.2
@ -14801,23 +14809,25 @@ snapshots:
semver: 7.6.3
util: 0.12.5
ws: 8.18.0
optionalDependencies:
prettier: 3.4.2
transitivePeerDependencies:
- bufferutil
- supports-color
- utf-8-validate
'@storybook/csf-plugin@8.4.7(storybook@8.4.4)':
'@storybook/csf-plugin@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
unplugin: 1.16.0
'@storybook/csf@0.1.11':
dependencies:
type-fest: 2.19.0
'@storybook/docs-tools@8.4.4(storybook@8.4.4)':
'@storybook/docs-tools@8.4.4(storybook@8.4.4(prettier@3.4.2))':
dependencies:
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/global@5.0.0': {}
@ -14826,41 +14836,41 @@ snapshots:
react: 18.2.0
react-dom: 18.3.1(react@18.2.0)
'@storybook/instrumenter@8.4.7(storybook@8.4.4)':
'@storybook/instrumenter@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
'@storybook/global': 5.0.0
'@vitest/utils': 2.1.6
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/manager-api@8.4.4(storybook@8.4.4)':
'@storybook/manager-api@8.4.4(storybook@8.4.4(prettier@3.4.2))':
dependencies:
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/manager-api@8.4.7(storybook@8.4.4)':
'@storybook/manager-api@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/node-logger@8.4.4(storybook@8.4.4)':
'@storybook/node-logger@8.4.4(storybook@8.4.4(prettier@3.4.2))':
dependencies:
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/preview-api@8.4.7(storybook@8.4.4)':
'@storybook/preview-api@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/react-dom-shim@8.4.7(react-dom@18.3.1(react@18.2.0))(react@18.2.0)(storybook@8.4.4)':
'@storybook/react-dom-shim@8.4.7(react-dom@18.3.1(react@18.2.0))(react@18.2.0)(storybook@8.4.4(prettier@3.4.2))':
dependencies:
react: 18.2.0
react-dom: 18.3.1(react@18.2.0)
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/svelte-vite@8.4.7(@babel/core@7.26.0)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1)))(postcss-load-config@6.0.1(jiti@2.4.1)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.6.1))(postcss@8.4.49)(storybook@8.4.4)(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1))':
'@storybook/svelte-vite@8.4.7(@babel/core@7.26.0)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1)))(postcss-load-config@6.0.1(jiti@2.4.1)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.6.1))(postcss@8.4.49)(storybook@8.4.4(prettier@3.4.2))(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1))':
dependencies:
'@storybook/builder-vite': 8.4.7(storybook@8.4.4)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1))
'@storybook/svelte': 8.4.7(storybook@8.4.4)(svelte@5.16.0)
'@storybook/builder-vite': 8.4.7(storybook@8.4.4(prettier@3.4.2))(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1))
'@storybook/svelte': 8.4.7(storybook@8.4.4(prettier@3.4.2))(svelte@5.16.0)
'@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.16.0)(vite@6.0.5(@types/node@22.9.1)(jiti@2.4.1)(terser@5.36.0)(tsx@4.19.2)(yaml@2.6.1))
magic-string: 0.30.13
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
svelte: 5.16.0
svelte-preprocess: 5.1.4(@babel/core@7.26.0)(postcss-load-config@6.0.1(jiti@2.4.1)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.6.1))(postcss@8.4.49)(svelte@5.16.0)(typescript@5.6.3)
svelte2tsx: 0.7.26(svelte@5.16.0)(typescript@5.6.3)
@ -14880,14 +14890,14 @@ snapshots:
- sugarss
- supports-color
'@storybook/svelte@8.4.7(storybook@8.4.4)(svelte@5.16.0)':
'@storybook/svelte@8.4.7(storybook@8.4.4(prettier@3.4.2))(svelte@5.16.0)':
dependencies:
'@storybook/components': 8.4.7(storybook@8.4.4)
'@storybook/components': 8.4.7(storybook@8.4.4(prettier@3.4.2))
'@storybook/global': 5.0.0
'@storybook/manager-api': 8.4.7(storybook@8.4.4)
'@storybook/preview-api': 8.4.7(storybook@8.4.4)
'@storybook/theming': 8.4.7(storybook@8.4.4)
storybook: 8.4.4
'@storybook/manager-api': 8.4.7(storybook@8.4.4(prettier@3.4.2))
'@storybook/preview-api': 8.4.7(storybook@8.4.4(prettier@3.4.2))
'@storybook/theming': 8.4.7(storybook@8.4.4(prettier@3.4.2))
storybook: 8.4.4(prettier@3.4.2)
svelte: 5.16.0
sveltedoc-parser: 4.2.1
ts-dedent: 2.2.0
@ -14895,29 +14905,29 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@storybook/test@8.4.7(storybook@8.4.4)':
'@storybook/test@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
'@storybook/csf': 0.1.11
'@storybook/global': 5.0.0
'@storybook/instrumenter': 8.4.7(storybook@8.4.4)
'@storybook/instrumenter': 8.4.7(storybook@8.4.4(prettier@3.4.2))
'@testing-library/dom': 10.4.0
'@testing-library/jest-dom': 6.5.0
'@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0)
'@vitest/expect': 2.0.5
'@vitest/spy': 2.0.5
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/theming@8.4.4(storybook@8.4.4)':
'@storybook/theming@8.4.4(storybook@8.4.4(prettier@3.4.2))':
dependencies:
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/theming@8.4.7(storybook@8.4.4)':
'@storybook/theming@8.4.7(storybook@8.4.4(prettier@3.4.2))':
dependencies:
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@storybook/types@8.4.4(storybook@8.4.4)':
'@storybook/types@8.4.4(storybook@8.4.4(prettier@3.4.2))':
dependencies:
storybook: 8.4.4
storybook: 8.4.4(prettier@3.4.2)
'@sveltejs/package@2.3.7(svelte@5.16.0)(typescript@5.6.3)':
dependencies:
@ -21976,6 +21986,8 @@ snapshots:
prelude-ls@1.2.1: {}
prettier@3.4.2: {}
pretty-error@4.0.0:
dependencies:
lodash: 4.17.21
@ -23043,14 +23055,14 @@ snapshots:
stdin-discarder@0.2.2: {}
storybook-dark-mode@4.0.2(react-dom@18.3.1(react@18.2.0))(react@18.2.0)(storybook@8.4.4):
storybook-dark-mode@4.0.2(react-dom@18.3.1(react@18.2.0))(react@18.2.0)(storybook@8.4.4(prettier@3.4.2)):
dependencies:
'@storybook/components': 8.4.4(storybook@8.4.4)
'@storybook/core-events': 8.4.4(storybook@8.4.4)
'@storybook/components': 8.4.4(storybook@8.4.4(prettier@3.4.2))
'@storybook/core-events': 8.4.4(storybook@8.4.4(prettier@3.4.2))
'@storybook/global': 5.0.0
'@storybook/icons': 1.2.12(react-dom@18.3.1(react@18.2.0))(react@18.2.0)
'@storybook/manager-api': 8.4.4(storybook@8.4.4)
'@storybook/theming': 8.4.4(storybook@8.4.4)
'@storybook/manager-api': 8.4.4(storybook@8.4.4(prettier@3.4.2))
'@storybook/theming': 8.4.4(storybook@8.4.4(prettier@3.4.2))
fast-deep-equal: 3.1.3
memoizerific: 1.11.3
transitivePeerDependencies:
@ -23058,9 +23070,11 @@ snapshots:
- react-dom
- storybook
storybook@8.4.4:
storybook@8.4.4(prettier@3.4.2):
dependencies:
'@storybook/core': 8.4.4
'@storybook/core': 8.4.4(prettier@3.4.2)
optionalDependencies:
prettier: 3.4.2
transitivePeerDependencies:
- bufferutil
- supports-color

View file

@ -1,2 +1,4 @@
.docusaurus
/api/
/build/
/node_modules/

View file

@ -6,7 +6,6 @@ tags: [podman-desktop, podman, Kubernetes-application, deployment]
hide_table_of_contents: false
---
# Using Podman Desktop to create a Kubernetes application
The integration of Podman Desktop with Kubernetes helps you to run your application on a Kubernetes cluster, such as Kind or Minikube.
@ -28,36 +27,38 @@ With this blog, you will build a containerized application that uses:
To do so, you can pull the relevant images from the `quay.io` registry.
1. Go to the **Images** component page.
2. Click **Pull**.
![pull from registry](img/building-a-kubernetes-application/pulling-from-registry.png)
3. Start the first container:
1. Go to the **Images** component page.
2. Click **Pull**.
![pull from registry](img/building-a-kubernetes-application/pulling-from-registry.png)
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`.
![enter image name](img/building-a-kubernetes-application/enter-image-name.png)
![enter image name](img/building-a-kubernetes-application/enter-image-name.png)
2. Click **Pull image**. A download complete notification opens.
3. Click **Done**.
4. Click the **Run Image** icon corresponding to the new image added.
![running an image](img/building-a-kubernetes-application/running-an-image.png)
![running an image](img/building-a-kubernetes-application/running-an-image.png)
5. Enter the container name `redis-server`.
6. Click **Start Container**.
![start a back-end container](img/building-a-kubernetes-application/starting-a-backend-container.png)
![start a back-end container](img/building-a-kubernetes-application/starting-a-backend-container.png)
7. Click the **Logs** tab to view that the Redis server is running in standalone mode.
![view Logs tab](img/building-a-kubernetes-application/redis-running-in-logs.png)
![view Logs tab](img/building-a-kubernetes-application/redis-running-in-logs.png)
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`.
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`.
![enter image name](img/building-a-kubernetes-application/python-app-image.png)
4. Start the second container:
:::note
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`.
![enter image name](img/building-a-kubernetes-application/python-app-image.png)
If the default port is already in use, you can specify a different port in the `Port mapping` field.
:::note
:::
If the default port is already in use, you can specify a different port in the `Port mapping` field.
5. Select the **Networking** tab and enter hostname as `redis-server` and IP address as `10.88.0.2` to enable communication with the Redis server.
:::
5. Select the **Networking** tab and enter hostname as `redis-server` and IP address as `10.88.0.2` to enable communication with the Redis server.
:::note
@ -65,13 +66,13 @@ To do so, you can pull the relevant images from the `quay.io` registry.
:::
6. Click **Start Container**.
![start a front-end container](img/building-a-kubernetes-application/starting-a-frontend-container.png)
7. Click the **Logs** tab to view that the application is running on port `5000`.
![front-end app running](img/building-a-kubernetes-application/frontend-app-running.png)
8. Click the **Open browser** icon on the right side of the page.
9. View the running front-end application.
![running front-end application](img/building-a-kubernetes-application/running-application-locally.png)
6. Click **Start Container**.
![start a front-end container](img/building-a-kubernetes-application/starting-a-frontend-container.png)
7. Click the **Logs** tab to view that the application is running on port `5000`.
![front-end app running](img/building-a-kubernetes-application/frontend-app-running.png)
8. Click the **Open browser** icon on the right side of the page.
9. View the running front-end application.
![running front-end application](img/building-a-kubernetes-application/running-application-locally.png)
## Creating a pod
@ -82,12 +83,12 @@ You can use both the containers to create a pod. This way both the front-end and
1. Go to the **Containers** page.
2. Select both the front-end and back-end containers.
3. Click the **Create Pod** button.
![create a pod from containers](img/building-a-kubernetes-application/creating-pod-from-containers.png)
![create a pod from containers](img/building-a-kubernetes-application/creating-pod-from-containers.png)
4. Click **Create Pod**.
![copying containers to a pod](img/building-a-kubernetes-application/copying-containers-to-a-pod.png)
![copying containers to a pod](img/building-a-kubernetes-application/copying-containers-to-a-pod.png)
5. View the newly created pod on the Pods page.
6. Click the name of the pod and then click the **Summary** tab to view its summary.
![viewing pod details](img/building-a-kubernetes-application/viewing-pod-details.png)
![viewing pod details](img/building-a-kubernetes-application/viewing-pod-details.png)
**_Alternative: Pod creation with Kubernetes YAML_**
@ -99,19 +100,19 @@ The following procedure creates a pod that runs on a Podman engine.
1. Go to the **Pods** page.
2. Click the overflow menu icon corresponding to the pod.
![overflow menu icon](img/building-a-kubernetes-application/overflow-menu-icon.png)
![overflow menu icon](img/building-a-kubernetes-application/overflow-menu-icon.png)
3. Select the **Generate Kube** option from the dropdown list.
4. View the Kubernetes YAML configuration in the **Kube** tab.
![kube manifest](img/building-a-kubernetes-application/kube-manifest.png)
![kube manifest](img/building-a-kubernetes-application/kube-manifest.png)
5. Copy the configuration and paste it into a YAML file on your machine.
6. Edit the YAML configuration and save it.
7. Go to the **Pods** component page.
8. Click **Play Kubernetes YAML**.
![play kubernetes yaml](img/building-a-kubernetes-application/play-kubernetes-yaml.png)
![play kubernetes yaml](img/building-a-kubernetes-application/play-kubernetes-yaml.png)
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**.
13. View the newly created pod on the same page.
12. View the newly created pod on the same page.
After creating the pod, set up a local Kubernetes cluster to deploy the pod.
@ -133,17 +134,17 @@ You can deploy the application pod to a Kubernetes cluster that has an active co
1. Select your [Kubernetes context](/docs/kubernetes/viewing-and-selecting-current-kubernetes-context).
2. Go to the **Pods** component page.
3. Click the overflow menu icon corresponding to the pod.
![overflow menu icon](img/building-a-kubernetes-application/overflow-menu-icon.png)
![overflow menu icon](img/building-a-kubernetes-application/overflow-menu-icon.png)
4. Select the **Deploy to Kubernetes** option from the dropdown list.
5. Select the checkbox to expose the service locally using the ingress controller.
![expose the service locally](img/building-a-kubernetes-application/expose-the-service-locally.png)
![expose the service locally](img/building-a-kubernetes-application/expose-the-service-locally.png)
:::note
:::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.
![ingress-host-port](img/building-a-kubernetes-application/ingress-host-port.png)
Otherwise, you do not see the option.
:::
When you configure custom port mapping while running an image, you get the option to select an Ingress host port from the dropdown list.
![ingress-host-port](img/building-a-kubernetes-application/ingress-host-port.png)
Otherwise, you do not see the option.
:::
6. Click **Deploy** and then **Done**.
@ -151,13 +152,14 @@ You can deploy the application pod to a Kubernetes cluster that has an active co
1. Go the **Kubernetes** component page.
2. Perform the following steps:
1. Click the **Services** option to view the newly created service, `my-pod-5000`.
![service created](img/building-a-kubernetes-application/service-created.png)
2. Click the **Ingresses and Routes** option to view the newly created ingress, `my-pod`.
![ingress created](img/building-a-kubernetes-application/ingress-created.png)
:::note
1. Click the **Services** option to view the newly created service, `my-pod-5000`.
![service created](img/building-a-kubernetes-application/service-created.png)
2. Click the **Ingresses and Routes** option to view the newly created ingress, `my-pod`.
![ingress created](img/building-a-kubernetes-application/ingress-created.png)
Use the **Apply YAML** button to directly apply a Kubernetes YAML file to create a resource.
:::note
:::
Use the **Apply YAML** button to directly apply a Kubernetes YAML file to create a resource.
:::

View file

@ -9,7 +9,6 @@ hide_table_of_contents: false
image: /img/blog/podman-desktop-release-1.14/banner.png
---
import ReactPlayer from 'react-player'
Podman Desktop 1.14 Release! 🎉
@ -97,7 +96,7 @@ Get the latest release from the [Downloads](/downloads) section of the website a
- 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)
- feat: allow to ssh to podman virtual machine - backend changes by @gastoner in [#9384](https://github.com/containers/podman-desktop/pull/9384)
- feat: allow to ssh to podman virtual machine - backend changes by @gastoner in [#9384](https://github.com/containers/podman-desktop/pull/9384)
- feat: allow to ssh to podman virtual machine - podman changes by @gastoner in [#9383](https://github.com/containers/podman-desktop/pull/9383)
- feat: allow to ssh to podman virtual machine - api.d.ts changes by @gastoner in [#9382](https://github.com/containers/podman-desktop/pull/9382)
- 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)
@ -184,7 +183,7 @@ Get the latest release from the [Downloads](/downloads) section of the website a
- 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)
- feat: display a spinner when connectivity is being checked in Kubernetes pages by @feloy in [#9535](https://github.com/containers/podman-desktop/pull/9535)
- fix(ui): quick-pick handle overflow by @axel7083 in [#9527](https://github.com/containers/podman-desktop/pull/9527)
- fix: proxy settings page stuck by @jeffmaury in [#9524](https://github.com/containers/podman-desktop/pull/9524)
- chore: use dropdown component in proxy settings by @deboer-tim in [#9511](https://github.com/containers/podman-desktop/pull/9511)
@ -209,7 +208,7 @@ Get the latest release from the [Downloads](/downloads) section of the website a
- fix: Done button in DeployPodToKube by @SoniaSandler in [#9306](https://github.com/containers/podman-desktop/pull/9306)
- fix: correct selection borders for Kube Play by @deboer-tim in [#9277](https://github.com/containers/podman-desktop/pull/9277)
- fix: enable 'Update' for kubectl CLI by @dgolovin in [#9205](https://github.com/containers/podman-desktop/pull/9205)
- feat(UI): task indicator by @axel7083 in [#9186](https://github.com/containers/podman-desktop/pull/9186)
- feat(UI): task indicator by @axel7083 in [#9186](https://github.com/containers/podman-desktop/pull/9186)
- feat: dropdown component by @deboer-tim in [#9157](https://github.com/containers/podman-desktop/pull/9157)
- chore: add warning for users about short image names by @SoniaSandler in [#9116](https://github.com/containers/podman-desktop/pull/9116)
- fix: show correct empty screens when filtering catalog by @deboer-tim in [#9108](https://github.com/containers/podman-desktop/pull/9108)

View file

@ -19,7 +19,7 @@ Podman Desktop builds upon the innovations brought by Podman, offering a powerfu
### Why the CNCF?
The CNCF is a vital organization for the cloud-native world, supporting collaboration and driving innovation for critical projects like Kubernetes, Prometheus, and Envoy. As a CNCF project, Podman Desktop will benefit from increased visibility, a neutral home for open governance, and access to a wealth of resources and expertise. CNCF projects will take a renewed interest in collaborating with us. This move will help us grow our community, ensure the project's long-term sustainability, and accelerate its development.
The CNCF is a vital organization for the cloud-native world, supporting collaboration and driving innovation for critical projects like Kubernetes, Prometheus, and Envoy. As a CNCF project, Podman Desktop will benefit from increased visibility, a neutral home for open governance, and access to a wealth of resources and expertise. CNCF projects will take a renewed interest in collaborating with us. This move will help us grow our community, ensure the project's long-term sustainability, and accelerate its development.
### How Podman Desktop simplifies containers and Kubernetes
@ -35,7 +35,7 @@ Podman Desktop has a natural affinity to Kubernetes due to its design and featur
### 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
@ -51,9 +51,9 @@ As a CNCF project, we have the opportunity to open our doors to a wider communi
- Providing website contributions: The [Podman Desktop website](https://podman-desktop.io/) is also open source. You can contribute to its content, design, or translations.
- Becoming an Adopter: If you are a happy user, wed love to know and share the word. Consider adding yourself or your organization to [the list of adopters](https://github.com/podman-desktop/podman-desktop/blob/main/ADOPTERS.md) with a pull request.
- Becoming an Adopter: If you are a happy user, wed love to know and share the word. Consider adding yourself or your organization to [the list of adopters](https://github.com/podman-desktop/podman-desktop/blob/main/ADOPTERS.md) with a pull request.
Before you start contributing, it's helpful to familiarize yourself with the [project's contribution guidelines](https://github.com/podman-desktop/podman-desktop/blob/main/CONTRIBUTING.md) and code architecture. These resources provide valuable information on coding style, testing procedures, and the overall development process. You can also join #podman-desktop on the Kubernetes Slack to connect with other contributors and get help.
Before you start contributing, it's helpful to familiarize yourself with the [project's contribution guidelines](https://github.com/podman-desktop/podman-desktop/blob/main/CONTRIBUTING.md) and code architecture. These resources provide valuable information on coding style, testing procedures, and the overall development process. You can also join #podman-desktop on the Kubernetes Slack to connect with other contributors and get help.
### KubeCon 2024 and beyond

View file

@ -197,19 +197,15 @@ Podman AI Lab provides a way for a user to extend the provided catalog with its
"recipes": [
{
"id": "search-podman-desktop-io",
"description" : "Search on Podman-desktop.io website",
"name" : "Search Podman-desktop.io",
"description": "Search on Podman-desktop.io website",
"name": "Search Podman-desktop.io",
"repository": "https://github.com/redhat-developer/podman-desktop-demo",
"ref": "main",
"icon": "natural-language-processing",
"categories": [
"natural-language-processing"
],
"categories": ["natural-language-processing"],
"basedir": "ai-lab-demo/recipe",
"readme": "",
"recommended": [
"hf.TheBloke.mistral-7b-instruct-v0.2.Q4_K_M"
],
"recommended": ["hf.TheBloke.mistral-7b-instruct-v0.2.Q4_K_M"],
"backend": "llama-cpp"
}
]

View file

@ -37,8 +37,8 @@ its vital to provide a convenient way to submit feedback directly to GitHub v
While retaining our internal anonymous feedback system, this update also enables users to preview their issues on GitHub, ensuring better communication.
<ThemedImage
alt="Feedback Form"
sources={{
alt="Feedback Form"
sources={{
light: require('./img/podman-desktop-release-1.15/feedback-form-light.png').default,
dark: require('./img/podman-desktop-release-1.15/feedback-form-dark.png').default,
}}
@ -53,8 +53,8 @@ We now offer three distinct feedback categories:
- **Bug**: Allows users to report bugs directly on GitHub.
<ThemedImage
alt="Feedback categories"
sources={{
alt="Feedback categories"
sources={{
light: require('./img/podman-desktop-release-1.15/feedback-categories-light.png').default,
dark: require('./img/podman-desktop-release-1.15/feedback-categories-dark.png').default,
}}
@ -69,8 +69,8 @@ Back in the [0.13 release](/blog/podman-desktop-release-0.13#new-task-manager-17
To try it out, go to `Settings > Preferences > Tasks` and enable the `Manager` option.
<ThemedImage
alt="task manager experimental preference"
sources={{
alt="task manager experimental preference"
sources={{
light: require('./img/podman-desktop-release-1.15/experimental-task-manager-preference-light.png').default,
dark: require('./img/podman-desktop-release-1.15/experimental-task-manager-preference-dark.png').default,
}}
@ -85,8 +85,8 @@ Key changes include:
- Additional capabilities for managing individual tasks.
<ThemedImage
alt="task manager experimental preference"
sources={{
alt="task manager experimental preference"
sources={{
light: require('./img/podman-desktop-release-1.15/experimental-task-manager-opened-light.png').default,
dark: require('./img/podman-desktop-release-1.15/experimental-task-manager-opened-dark.png').default,
}}
@ -99,8 +99,8 @@ version 1.15 introduces support for [Kubernetes Events](https://kubernetes.io/do
These events are now available for resources like Nodes, Services, and Pods.
<ThemedImage
alt="task manager experimental preference"
sources={{
alt="task manager experimental preference"
sources={{
light: require('./img/podman-desktop-release-1.15/kubernetes-node-events-light.png').default,
dark: require('./img/podman-desktop-release-1.15/kubernetes-node-events-dark.png').default,
}}
@ -112,8 +112,8 @@ A frequent user request has been the ability to establish an SSH connection to a
In this release, you can now directly connect to your Podman machine from its details page.
<ThemedImage
alt="task manager experimental preference"
sources={{
alt="task manager experimental preference"
sources={{
light: require('./img/podman-desktop-release-1.15/podman-machine-ssh-light.png').default,
dark: require('./img/podman-desktop-release-1.15/podman-machine-ssh-dark.png').default,
}}

View file

@ -21,9 +21,9 @@ It's an accessible platform for developers working with single-container applica
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](https://www.compose-spec.io/). 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](/docs/minikube/installing-extension) or [Kind](/docs/kind/installing-extension) extensions.
- **Container Management**: Supports creating, running, and monitoring containers.
- **Compose Support**: Allows you to deploy applications defined in [Compose files](https://www.compose-spec.io/). 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](/docs/minikube/installing-extension) or [Kind](/docs/kind/installing-extension) extensions.
## Minikube

View file

@ -28,7 +28,7 @@ Podman Desktop provides a wide range of extensions that can be used to integrate
- Headlamp: Enables creating an extensible Kubernetes web UI. For more details, click the **More details** link in the **Catalog** tab of the Extensions page.
![more details link](../img/more-details-link.png)
![more details link](../img/more-details-link.png)
**_CLI extensions_**
@ -52,11 +52,11 @@ Red Hat extension pack is a set of the following extensions that a developer can
- OpenShift Checker: Analyzes a Containerfile and highlights the directives and commands that could cause an unexpected behavior when you run it on an OCP cluster. After identifying issues, you can update your Containerfile to make it OpenShift-compliant. For more details, click the **More details** link in the **Catalog** tab of the Extensions page.
:::note
:::note
You can also install the above extensions individually from the catalog rather than installing the entire pack.
You can also install the above extensions individually from the catalog rather than installing the entire pack.
:::
:::
**_Other extensions_**

View file

@ -134,17 +134,18 @@ Before creating a Podman machine, you can use one of the following ways to enabl
**_Configuring an environment variable_**
1. Perform one of the following steps:
- As a normal user, set the following variable at session level:
```shell-session
> $env:CONTAINERS_MACHINE_PROVIDER = 'hyperv'
```
```shell-session
> $env:CONTAINERS_MACHINE_PROVIDER = 'hyperv'
```
- As an admin user, set the following variable at system level:
```shell-session
# [System.Environment]::SetEnvironmentVariable('CONTAINERS_MACHINE_PROVIDER','hyperv')
```
```shell-session
# [System.Environment]::SetEnvironmentVariable('CONTAINERS_MACHINE_PROVIDER','hyperv')
```
1. [Create and start a Podman machine](/docs/podman/creating-a-podman-machine) using the UI.

View file

@ -12,7 +12,7 @@ import ReactPlayer from 'react-player'
:::note
Kind is a *built-in* extension to Podman Desktop and no installation is necessary.
Kind is a _built-in_ extension to Podman Desktop and no installation is necessary.
:::

View file

@ -47,19 +47,19 @@ This YAML manifest creates three pods that run the NGINX web server.
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.
![applying a yaml manifest](img/applying-a-yaml-manifest.png)
![applying a yaml manifest](img/applying-a-yaml-manifest.png)
1. Click **OK**.
![confirmation notification](img/confirmation-notification.png)
![confirmation notification](img/confirmation-notification.png)
#### Verification
1. View the newly created `my-nginx` deployment on the same page.
![nginx deployment](img/my-nginx-deployment.png)
![nginx deployment](img/my-nginx-deployment.png)
1. Go to the **Pods** component page to view three instances of the NGINX web server running.
![nginx pods running](img/nginx-pods-running.png)
![nginx pods running](img/nginx-pods-running.png)
:::note
:::note
When you apply any other YAML manifest, you can view the newly created object on the corresponding component page.
When you apply any other YAML manifest, you can view the newly created object on the corresponding component page.
:::
:::

View file

@ -67,8 +67,9 @@ spec:
#### Verification
1. View the created object:
- View the `Pod` object on the **Pods** component page.
- View the other Kubernetes objects on the related object page. For example, if you have created a `Node` object, you can view it on the **Kubernetes > Nodes** page.
- View the `Pod` object on the **Pods** component page.
- View the other Kubernetes objects on the related object page. For example, if you have created a `Node` object, you can view it on the **Kubernetes > Nodes** page.
2. Optional: Click the name of the object to view its detailed summary.
![summary tab](img/summary-tab.png)

View file

@ -22,31 +22,31 @@ With Podman Desktop, you can deploy a pod to your Kubernetes cluster with an act
1. Select your [Kubernetes context](/docs/kubernetes/viewing-and-selecting-current-kubernetes-context).
:::note
:::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=<name-of-the-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=<name-of-the-namespace>`.
:::
:::
1. Go to the **Pods** or **Containers** component page.
1. Click the overflow menu icon corresponding to the pod or container.
![overflow menu icon](img/overflow-menu-icon.png)
![overflow menu icon](img/overflow-menu-icon.png)
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.
![expose the service locally](img/expose-the-service-locally.png)
![expose the service locally](img/expose-the-service-locally.png)
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.
![ingress-host-port](img/ingress-host-port.png)
Otherwise, you do not see the option.
![ingress-host-port](img/ingress-host-port.png)
Otherwise, you do not see the option.
1. Click **Deploy** and then **Done**.
#### Verification
1. On the **Deploy generated pod to Kubernetes** screen, the created pod status is _Phase: Running_
![Deploying a pod](img/deploying-a-pod.png)
![Deploying a pod](img/deploying-a-pod.png)
1. Go to **Pods**: your Kubernetes pod is in the list.
![kube pod in the list](img/kube-pod-in-the-list.png)
![kube pod in the list](img/kube-pod-in-the-list.png)
1. Optional: Check the running service on the **Kubernetes > Services** page.
![running service](img/running-service.png)
![running service](img/running-service.png)

View file

@ -38,27 +38,28 @@ spec:
#### Procedure: Start port forwarding
1. Create a Kubernetes pod:
1. Go to the **Pods** component page.
1. Click **Play Kubernetes YAML**.
1. Go to the **Pods** component page.
1. Click **Play Kubernetes YAML**.
![play kubernetes yaml](img/play-kubernetes-yaml.png)
1. Select a Kubernetes YAML file, such as `pod.yaml` from your local machine.
1. Set the **Runtime** field to `Kubernetes cluster`.
![set runtime field](img/play-a-yaml-file.png)
1. Click **Play** and then **Done**.
1. View the newly created pod that runs on a Kubernetes cluster on the same page.
![view the newly created pod](img/new-kubernetes-pod.png)
1. Click the name of the pod and select the **Summary** tab.
1. Select a Kubernetes YAML file, such as `pod.yaml` from your local machine.
1. Set the **Runtime** field to `Kubernetes cluster`.
![set runtime field](img/play-a-yaml-file.png)
1. Click **Play** and then **Done**.
1. View the newly created pod that runs on a Kubernetes cluster on the same page.
![view the newly created pod](img/new-kubernetes-pod.png)
1. Click the name of the pod and select the **Summary** tab.
1. Click the **Forward...** button corresponding to the port you want to use for port forwarding.
![forward button](img/forward-button.png)
![forward button](img/forward-button.png)
1. Click the **Open** button to view the running application in a web browser.
![open button](img/open-button.png)
![open button](img/open-button.png)
:::note
:::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.
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
@ -69,16 +70,16 @@ You can stop port forwarding by using one of the following ways:
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.
![using component page](img/stop-port-forwarding-pod.png)
![using component page](img/stop-port-forwarding-pod.png)
**_Use the Port Forwarding page_**
1. Go to the **Kubernetes > Port Forwarding** page.
1. Click the **Delete** icon corresponding to the pod or servivce for which you want to stop port forwarding. The entry is removed from the page.
![using port forwarding page](img/delete-icon-on-port-forwarding-page.png)
![using port forwarding page](img/delete-icon-on-port-forwarding-page.png)
#### Verification
1. Go to the **Kubernetes > Port Forwarding** page.
1. View the port forwarding details for Kubernetes pods and services.
![verifying port forwarding details](img/verifying-the-port-forwarding-details.png)
![verifying port forwarding details](img/verifying-the-port-forwarding-details.png)

View file

@ -44,10 +44,10 @@ As a developer, you can:
2. **System socket status** setting: View the socket mapping status to check whether the socket is reachable.
3. **Docker CLI Context** setting: Select a socket context to work with from the dropdown list.
4. **Podman Compose CLI Support** setting: Check whether the Podman Compose CLI is supported. If not, use the **Setup...** button to install and set up the CLI.
![Docker compatibility page on Windows](img/docker-compatibility-page-on-windows.png)
![Docker compatibility page on Windows](img/docker-compatibility-page-on-windows.png)
</TabItem>
<TabItem value="macOS" label="macOS" className="markdown">
<TabItem value="macOS" label="macOS" className="markdown">
#### Procedure
@ -56,9 +56,10 @@ As a developer, you can:
3. **Docker CLI Context** setting: Select a socket context to work with from the dropdown list.
4. **Podman Compose CLI Support** setting: Check whether the Podman Compose CLI is supported. If not, use the **Setup...** button to install and set up the CLI.
5. **Third-Party Docker Tool Compatibility** setting: Customize the setting, if needed. When enabled, you can use third-party Docker tools with Podman.
![Docker compatibility page on macOS](img/docker-compatibility-page-on-macOS.png)
![Docker compatibility page on macOS](img/docker-compatibility-page-on-macOS.png)
</TabItem>
<TabItem value="linux" label="Linux" className="markdown">
<TabItem value="linux" label="Linux" className="markdown">
#### Procedure
@ -66,7 +67,7 @@ As a developer, you can:
2. **System socket status** setting: View the socket mapping status to check whether the socket is reachable.
3. **Docker CLI Context** setting: Select a socket context to work with from the dropdown list.
4. **Podman Compose CLI Support** setting: Check whether the Podman Compose CLI is supported. If not, use the **Setup...** button to install and set up the CLI.
![Docker compatibility page on Linux](img/docker-compatibility-page-on-linux.png)
![Docker compatibility page on Linux](img/docker-compatibility-page-on-linux.png)
</TabItem>
</Tabs>

View file

@ -25,9 +25,9 @@ Alternatively, you can add a `podman` context by using the `docker context creat
- 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.
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.
@ -50,35 +50,35 @@ $ podman machine inspect --format '{{.ConnectionInfo.PodmanPipe.Path}}'
2. Set the `DOCKER_HOST` environment variable to your Podman pipe location. You'll need to replace back slashes with forward slashes and add the `npipe://` scheme to the path retrieved previously: <!-- markdownlint-disable MD029 -->
> Example:
>
> **prefix**podman-pipe
>
> **npipe://**//./pipe/podman-machine-default
> Example:
>
> **prefix**podman-pipe
>
> **npipe://**//./pipe/podman-machine-default
Depending on your terminal emulator of preference, there is a little variation between the commands to set a session level environment variable:
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
set DOCKER_HOST=npipe://<inspect_command_output>
```
```cmd
set DOCKER_HOST=npipe://<inspect_command_output>
```
##### Git Bash
```bash
export DOCKER_HOST=npipe://<inspect_command_output>
```
```bash
export DOCKER_HOST=npipe://<inspect_command_output>
```
##### Powershell
Don't miss the quotes used with the value. Otherwise, powershell will interpret it as a separate command instead of a value.
Don't miss the quotes used with the value. Otherwise, powershell will interpret it as a separate command instead of a value.
```powershell
$env:DOCKER_HOST="npipe://<inspect_command_output>"
```
```powershell
$env:DOCKER_HOST="npipe://<inspect_command_output>"
```
Ideally, you should set `DOCKER_HOST` at the system or user level environment variables (or even load it in your CL emulator init script of choice).
Ideally, you should set `DOCKER_HOST` at the system or user level environment variables (or even load it in your CL emulator init script of choice).
:::note

View file

@ -44,8 +44,8 @@ Consider creating a custom Podman machine to:
Enable to use the rootful connection by default.
Required to use Kind on Windows.
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 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.
1. Click **Create**.
![Create a Podman machine](img/create-a-podman-machine.png)

View file

@ -18,29 +18,29 @@ If you do not want to track the previous event logs, you can remove them from th
1. Click the **Troubleshooting** icon in the status bar.
1. Select the **Logs** tab to view the logs.
![accessing logs](img/access-logs.png)
![accessing logs](img/access-logs.png)
1. Optional: Select the **Gather Logs** tab to save all the logs into a .zip file.
1. Click **collect and save logs as .zip**.
1. Browse the location where you want to save the logs.
1. Click **Save**. You get a successful operation notification.
1. Click **collect and save logs as .zip**.
1. Browse the location where you want to save the logs.
1. Click **Save**. You get a successful operation notification.
#### Procedure: Resolve connection issues
1. Click the **Troubleshooting** icon in the status bar.
1. Optional: Click **Cleanup/Purge data** to delete all resources from the engine.
![Repair & Connections tab](img/repair-and-connections-tab.png)
![Repair & Connections tab](img/repair-and-connections-tab.png)
1. Optional: Check container connections:
1. Click **Ping** to view the response time of the container engine.
1. Click **Check containers** to view the response time of the available containers.
1. Click **Ping** to view the response time of the container engine.
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.
1. Select the **Stores** tab to view the stores associated with Podman Desktop.
![store tab](img/stores-tab.png)
![store tab](img/stores-tab.png)
1. Click a store link.
1. Click **Refresh** to refresh the event logs.
![refresh the event logs](img/refresh-event-logs.png)
![refresh the event logs](img/refresh-event-logs.png)
1. Optional: Click **Clear** to delete the event logs.
1. Click **OK**.

View file

@ -6,7 +6,6 @@ keywords: [podman desktop, podman, extensions, troubleshoot]
tags: [troubleshooting-extension-issues]
---
# Troubleshooting extension-related issues
## Podman Desktop failed to create a Minikube cluster

View file

@ -265,7 +265,7 @@ 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

View file

@ -97,6 +97,6 @@ You must install a specific Windows Subsystem for Linux (WSL) distribution to ma
1. Run the `wsl --update` command.
1. Run the `wsl --install -d <distro>` command to install a specific WSL distribution.
- Replace `distro` with any official WSL distribution, such as `ubuntu-24.04`.
- Replace `distro` with any official WSL distribution, such as `ubuntu-24.04`.
1. Restart your machine.
1. (Optional): Run the `wsl --unregister <distro>` to uninstall the WSL distribution.

View file

@ -254,8 +254,8 @@ Podman stores its configuration files in the `$HOME/.config/containers` director
- Using CLI
- 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.
1. Click the **Troubleshooting** icon in the status bar.
1. Click the **Cleanup/Purge data** button to delete all resources from the engine.
## Kubernetes clusters are not reachable from Podman Desktop

View file

@ -13,8 +13,8 @@
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids",
"typecheck": "tsc",
"format:check": "biome format",
"format:fix": "biome format --write",
"format:check": "biome format && prettier --cache --check '**/*.md'",
"format:fix": "biome format --write && prettier --cache --write --check '**/*.md'",
"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 .",

View file

@ -110,6 +110,6 @@ This YAML configuration creates a service named `my-nginx` to expose the Nginx d
1. In the Kubernetes explorer, go to **Services**.
1. Click the name of the `my-nginx` service.
1. Click **Forward...**.
![forward button](img/forward-button.png)
![forward button](img/forward-button.png)
1. Click **Open** to view the Nginx welcome page in a web browser.
![welcome page](img/welcome-page.png)