Commit Graph

2634 Commits

Author SHA1 Message Date
Matt Heon
d420fbfde3 Add migration code for BoltDB to SQLite
This is gated behind a new option in `podman system migrate`,
`--migrate-db`, or by a system restart being performed.

BoltDB support was removed in Podman 6, so we are certain that,
when we start Podman, a SQLite state is in use. However, if we
also detect a valid BoltDB state, we will attempt a migration.

Migration is performed by retrieving all volumes, pods, and
containers (in that order, to ensure there are no dependency
conflicts) from the Bolt database, when adding them to the SQLite
database. If there is a conflict - IE, a container exists in both
SQLite and Bolt - we skip migration for that object. The old DB
is then renamed so we do not try to migrate it again.

Our ability to test complex migration scenarios is limited, but
this should handle simple migrations easily.

This is a heavily adapted version of #27660 rebuilt to work with
Podman 6.0. Substantial changes were required to throw errors
when a BoltDB database is detected and no migration is being
performed. Firstly, for automatic on-reboot migrations, we need
to have a deferred error returned by getDBState (very early in
runtime initialization) that is only acted on much later (once we
know for certain a state refresh is/is not being performed).
The `system migrate --migrate-db` command was much more
problematic. Conceptually, it's not terrible - add a flag to the
runtime to suppress errors, set that flag only when calling the
`system migrate` command with `--migrate-db` - but it unveiled a
serious problem with how we do runtime init (special flags to the
runtime were being ignored because the image runtime set the
Libpod runtime first and had none of the proper handling) which
took a genuinely annoying amount of time to identify and fix.

This cannot be tested automatically, as the ability to create Bolt
databases has been entirely removed with Podman 6.

This also includes 9b810aed3a from
the v5.8 branch by Luap99, which I have had to squash into this
commit to satisfy the build-each-commit check. It was just a
simplification of the SQLite path check.

Signed-off-by: Matt Heon <matthew.heon@pm.me>
2026-05-08 14:07:17 -04:00
Paul Holzinger
a267230118 docs: fix incorrect page name
The syntax used here was wrong, see all the other existing pages.

Like this the man page gets rendered as "podman-container.unit(5)()" and
the HTML web page title will just be "NAME — Podman documentation"
instead of the proper man page name.

Fix this by using the right syntax.

Fixes: 7612af4c0e ("Rewrite the Quadlet documentation")

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-05-05 13:00:53 +02:00
Jan Kaluza
7612af4c0e Rewrite the Quadlet documentation
This commit does the following:

- Splits the podman-systemd.unit.5.md into multiple files - one for each quadlet file type.
- Adds the podman-quadlet-basic-usage.7.md for quadlet examples.
- Majority of the text in the new files is copied from the podman-systemd.unit.5.md
- Adds support for very simple condditional in the markdown_preprocess.
- Uses new logic in markdown_preprocess in options/*.md to use a single .md file for both
  podman subcommands man-pages and quadlet man-pages. This deduplicates the Quadlet man-pages a lot.
- Adds new `@@option quadlet:source.md`` preprocess command to import such .md files from options directory.

Signed-off-by: Jan Kaluza <jkaluza@redhat.com>
2026-05-04 10:53:36 +02:00
Tom Sweeney
3ce0e3e17c Merge pull request #28624 from Honny1/labels
`ps`, `pod ps`, `volume ls`: format labels as comma-separated `key=value` for Docker compatibility
2026-04-30 13:37:14 -04:00
Matt Heon
99b2fe252e Merge pull request #28455 from simonbrauner/fix-filtering-with-negated-labels
Fix filtering with negated labels
2026-04-30 12:08:31 -04:00
Jan Rodák
f460bc0ae5 ps: format labels as comma separated key=value for Docker compatibility
Fixes: https://github.com/containers/podman/issues/21847

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-04-30 18:04:49 +02:00
Mario Loriedo
15c9ca130f Add command podman system hyperv-prep
Introducing a new `podmand system` subcommand to prepare a Windows host
to run Hyper-V based Podman machines: `hyperv-prep`.

When executed it:
- creates of the registry keys for VSocks
- adds the current user to the Hyper-V administrators group

This command requires an administrator terminal.

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2026-04-29 23:00:29 +02:00
Šimon Brauner
fdd8cc17fa Fix filtering with negated labels
Signed-off-by: Šimon Brauner <sbrauner@redhat.com>
2026-04-29 11:18:03 +02:00
Matt Heon
3bd7bbc0dc Merge pull request #28413 from simonbrauner/issue-26786
Use AND to combine different volume filter keys
2026-04-28 13:59:42 -04:00
Ashley Cui
bb02e49080 Adjust error messages for new netavark create
c/common uses the new netavark create command, so some of the error messages have slightly changed. Adjust the tests so they pass.

Signed-off-by: Ashley Cui <acui@redhat.com>
2026-04-28 12:43:48 -04:00
Šimon Brauner
09b7f59f99 Improve docs on passing multiple --filter flags
Signed-off-by: Šimon Brauner <sbrauner@redhat.com>
2026-04-28 14:33:54 +02:00
Matt Heon
3279767614 Merge pull request #28336 from l0rd/import_native_ca
Import host trusted certificates into the guest machine - Windows part
2026-04-22 13:04:55 -04:00
Jan Kaluza
54d61c2f02 trust: switch policy.json lookup to configfile
Use shared configfile instead of custom policy.json path handling.
This updates ocipull to rely on signature.DefaultPolicy(), removes
explicit SignaturePolicyPath, and replaces trust's custom default-policy
path logic with common configfile code.

Replace hidden `--policypath` with --signature-policy` and require
it for `trust set` command instead of path resolution based on
configfile.

For `trust get`, the `--signature-policy` is optional.

Signed-off-by: Jan Kaluza <jkaluza@redhat.com>
2026-04-20 15:11:22 +02:00
Paul Holzinger
34a4633d5f Merge pull request #28275 from mheon/ordered_networks
Move to deterministic network setup order
2026-04-20 12:33:13 +02:00
Matthew Heon
efba9996f6 Implement --save-stages/--stage-labels for build
These are two new Buildah flags that we need to wire into Podman
(both local and remote) and document, with the interesting note
that one requires the other and a check needed to be added for
that.

Also: secret parsing was tightened up in Buildah, and was
breaking the remote build tests. Rewire it to use the new parser
Buildah made, which ends up simplifying the code considerably.
Tests are back to passing afterwards.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2026-04-17 10:00:32 -04:00
Nicola Sella
d92cc360f1 Add Pod to quadlet list
Fixes: https://redhat.atlassian.net/browse/RUN-3835

Signed-off-by: Nicola Sella <nsella@redhat.com>
2026-04-17 13:42:16 +02:00
Ashley Cui
f2314270e9 Merge pull request #28381 from readefries/feat/remove-help-reference-from-artifact-man-pages
feat: remove reference to `--help` from artifact man pages. Resolves:…
2026-04-15 10:35:01 -04:00
Ashley Cui
c3d7c2fca7 Merge pull request #28506 from Honny1/fix-mount-docs-anonymous-volume
Fix docs --mount source not mandatory for type=volume
2026-04-15 10:01:46 -04:00
Jan Rodák
111b4cf3f5 Fix docs --mount source not mandatory for type=volume
Folow up: https://github.com/containers/podman/issues/28497

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-04-14 11:43:02 +02:00
Matt Baker
30cfafe39c Clarify specific pasta parameters passed by default
Closes #28433

Signed-off-by: Matt Baker <matt.baker@agd-systems.com>
2026-04-14 10:17:15 +01:00
Paul Holzinger
05ff49a103 Merge pull request #27828 from lsm5/podman6-no-slirp-new
Podman6: Remove slirp
2026-04-13 19:24:28 +02:00
Matt Heon
f8e87e8d30 Merge pull request #28461 from isti115/patch-1
docs: fix parameter name for podman-network-create
2026-04-13 09:26:10 -04:00
Lokesh Mandvekar
a61147184d Remove misleading configurable reference in podman-network docs
Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
2026-04-13 09:05:09 -04:00
Lokesh Mandvekar
6859a9e512 Remove slirp4netns from documentation
Update all documentation files to remove slirp4netns references
and update to pasta as the only rootless networking backend.

Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
2026-04-13 09:04:41 -04:00
Nicola Sella
8dd7ac5756 Fix: set Swappiness when no mem limits
This hard codes -1 on inspect for Docker's API to return `null` and be compatible

Fixes: https://github.com/containers/podman/issues/23824

Signed-off-by: Nicola Sella <nsella@redhat.com>
2026-04-08 15:10:11 +02:00
István Donkó
5b60355fee docs: fix parameter name for podman-network-create
Signed-off-by: István Donkó <istvan.donko@gmail.com>
2026-04-08 00:37:02 +02:00
Šimon Brauner
98abcdcb19 Use AND to combine different volume filter keys
Fixes: https://github.com/containers/podman/issues/26786

Signed-off-by: Šimon Brauner <sbrauner@redhat.com>
2026-04-07 09:23:22 +02:00
Matt Heon
8ca8362c64 Merge pull request #28397 from Jessicaward/main
Fixes: #28374 de-deuplicated quiet option (docs)
2026-04-02 13:10:08 -04:00
Jessica Ward
2e66f1c38e Update quiet.md
Co-authored-by: Tom Sweeney <tsweeney@redhat.com>
Signed-off-by: Jessica Ward <Jessicawardiom@gmail.com>
2026-04-02 17:52:43 +01:00
Jan Rodák
4d71279d2e Merge pull request #28343 from jude-ruben/improve-quadlet-doc
Docs: improve readability of quadlet documentation
2026-04-02 10:50:08 +02:00
Fernando
1bf1c95f95 Docs: improve readability of quadlet documentation
Fixes: #28426

- Improved sentence structure and readability
- Added proper spacing between punctuation and words
- Enhanced clarity of quadlet functionality explanation

Signed-off-by: Jude Ruben Fernando <fernanj9@risk.regn.net>
2026-04-02 14:03:27 +05:30
Mario Loriedo
24ee5aec48 Add new flag --import-native-ca for machine init/set
Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2026-04-01 14:12:30 +02:00
Jan Rodák
f1ebd8260e Merge pull request #28383 from readefries/feat/add-list-as-alias-for-artifact-ls
feat: add list as ls alias for artifact command. Resolves #28372
2026-03-31 12:09:46 +02:00
Himanshu Jaiswal
04935fe867 Add a Status filter to podman quadlet list
Adds --filter status=<value> support to podman quadlet list.
Also adds shell completion for the status filter values.

Signed-off-by: Himanshu Jaiswal <himanshu.bw5@gmail.com>
2026-03-28 12:05:46 +00:00
jessica
6f286ef52f #28374 de-duplicated --quiet option from docs
Signed-off-by: jessica <jessicawardiom@gmail.com>
2026-03-28 09:50:41 +00:00
Hendrik Bruinsma
0cb862ec35 feat: add list as ls alias for artifact command. Resolved ##28372
Signed-off-by: Hendrik Bruinsma <hbruinsma@xs4some.nl>
2026-03-27 08:08:19 +01:00
Hendrik Bruinsma
047aae4116 feat: remove reference to --help from artifact man pages. Resolves: #28373
Signed-off-by: Hendrik Bruinsma <hbruinsma@xs4some.nl>
2026-03-26 11:23:45 +01:00
Jan Rodák
fc76b778af Merge pull request #26267 from PhrozenByte/docs-subidname
Explain using `--subuidname` with `--uidmap`
2026-03-25 15:10:03 +01:00
Paul Holzinger
07aa62f82f Merge pull request #28232 from nickjwhite/distro-user-dir
Look for rootless quadlets in /usr/share/containers/systemd/users
2026-03-24 13:28:09 +01:00
Paul Holzinger
46502be750 Merge pull request #28234 from Honny1/add-format-for-scp
Add `--format` to `podman image scp`
2026-03-19 19:50:16 +01:00
Jan Rodák
da3c4aa21a Add --format to image scp
Add --format (oci-archive, docker-archive) to pass through to podman save.
Default is unchanged (no --format) so podman save uses its own default.
Document that scp is not storage-to-storage and only archive formats
are supported.

Fixes: https://github.com/containers/podman/issues/28183
Fixes: https://issues.redhat.com/browse/RUN-4403

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-03-19 17:42:33 +01:00
Jan Rodák
339acf880c volume prune: match Docker default and add --all
Fixes: https://github.com/containers/podman/issues/24597
Fixes: https://issues.redhat.com/browse/RUN-4404

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-03-19 13:40:45 +01:00
Jan Rodák
6acfd58026 Add multi-IP container support
Add tests for multiple static IPs per container across single and multi-subnet networks.
Document --network option for comma-separated IPs and subnet-based IP ordering.

Fixes: https://issues.redhat.com/browse/RHEL-98277

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-03-16 13:47:01 +01:00
Bruce Fan
ffeb0d103b Improve OOMKilled visibility in podman events and in podman inspect docs
Signed-off-by: Bruce Fan <brucexfan@gmail.com>
2026-03-11 10:15:56 -05:00
Nick White
1aadae04af Look for rootless quadlets in /usr/share/containers/systemd/users
This is a useful place for packagers to put quadlets which they want
to make available for all users.

Fixes: #27843

Signed-off-by: Nick White <git@njw.name>
2026-03-10 20:00:22 +00:00
Lokesh Mandvekar
daadda83f1 Merge pull request #28210 from cyqsimon/quadlet-template-docs
Quadlet docs: add section on referencing other template Quadlets
2026-03-09 18:49:48 +05:30
cyqsimon
c30fe73dfb Quadlet docs: clarify behaviour of VolumeName default
Signed-off-by: cyqsimon <28627918+cyqsimon@users.noreply.github.com>
2026-03-09 11:54:05 +08:00
Paul Holzinger
5adac65c0a Merge pull request #28208 from mtrmac/tls-behavior-basics
Add --tls-details for (pull, push, run, login, logout)
2026-03-06 16:33:38 +01:00
Povilas Kanapickas
636eb1a401 libpod: Implement --log-opt label=LABEL=Value
This allows things like compose project names to be associated with log
messages and later used in log processing and analysis.

Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
2026-03-06 10:59:31 +02:00
cyqsimon
047e178298 Quadlet docs: add section on referencing other template Quadlets
Signed-off-by: cyqsimon <28627918+cyqsimon@users.noreply.github.com>
2026-03-06 16:40:22 +08:00