2546 Commits

Author SHA1 Message Date
Brent Baude
b60d234da4 Merge pull request #27827 from lsm5/podman6-no-cni
Podman6: Remove CNI
2026-01-28 10:20:56 -06:00
Lokesh Mandvekar
7ebb95a3bf Update man page documentation to remove CNI references
Removed all CNI-specific documentation from man pages:

- podman.1.md: Simplified --network-config-dir to only mention
  netavark directories
- podman-network.1.md: Removed dual backend description, now states
  netavark is the only backend
- podman-network-create.1.md: Removed CNI-specific notes about DNS
  and DHCP socket configuration
- podman-network-connect.1.md: Removed CNI limitation note about
  network aliases
- options/network-alias.md: Removed CNI limitation note about
  network aliases
- podman-info.1.md: Updated example output to show netavark backend
  information instead of CNI

All man pages now reflect netavark as the sole network backend.

Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
2026-01-27 16:32:38 +05:30
Brent Baude
2d67bf3b0a Vendor common test for artifact digest lookup
Vendor latest common with artifact changes

Signed-off-by: Brent Baude <bbaude@redhat.com>
2026-01-26 15:45:56 -06:00
Giuseppe Scrivano
f172ff789b rootless: use nsfs file handles to persist namespaces
use name_to_handle_at and open_by_handle_at to persist rootless
namespaces without needing a pause process.

The namespace file handles are stored in a file and can be used to
rejoin the namespaces, as long as the namespaces still exist.

Fall back to the pause process approach only when the kernel doesn't
support nsfs handles (EOPNOTSUPP).

The feature is currently only enabled when the PODMAN_NO_PAUSE_PROCESS
environment variable is set.

These changes in the kernel are required (landed in Linux 6.18):

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3ab378cfa793

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2026-01-20 18:41:59 +01:00
Brent Baude
aba2df7517 Add podman machine os upgrade command
Implements automatic OS upgrade functionality for Podman machines that requires no user input beyond running the command. The upgrade logic automatically determines the appropriate upgrade path using a three-way comparison between client version, machine version, and OCI registry:

* When the client version is older than the machine version, no action is taken and an error is returned.
* When the client version matches the machine version, the OCI registry is queried to check for in-band updates by comparing image digests.  This handles minor, patch level, and updates oci image use cases.
* When the client version is newer than the machine version, the machine is upgraded to match the client's major.minor version.
* No manual image selection or version specification required.

The command supports dry-run mode and JSON (only) output format for automation.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2026-01-16 14:14:06 -06:00
Matt Heon
cb67dafd36 Merge pull request #26445 from aaron-ang/update-ulimit
Add ulimits to `podman update`
2026-01-16 08:38:00 -05:00
Bryan Parry
f96e0a3fb2 Fix podman run equivalent for HealthStartPeriod
Signed-off-by: Bryan Parry <bparry@redhat.com>
2026-01-14 15:48:52 -05:00
Ashley Cui
73d6be2876 Merge pull request #27835 from kriansa/fix-timeoutstartsec-docs
docs: fix misleading TimeoutStartSec information for oneshot services
2026-01-14 11:49:03 -05:00
Brent Baude
76e14f79f7 use bootc for os apply
Instead of using rpm-ostree, we now use bootc for os apply.  the
implementation is a little murky right now and will require some cleanup
to implement bootc's transports.  for now, we only support oci images
from registries.

once we have an upgrade command, the transports can be added and the
docs for apply can be ammended to be more clear.

Fixes: RUN-3836

Signed-off-by: Brent Baude <bbaude@redhat.com>
2026-01-08 13:32:39 -06:00
Matthijs Kooijman
7a87456fdd Fix docs for Volume User= and Group= options
These are not options directly passed to `--opt`, but these use `--opt o=`, so update the table accordingly.

Signed-off-by: Matthijs Kooijman <matthijs@stdin.nl>
2026-01-05 17:52:39 +01:00
Daniel Pereira
e6c3e4f411 docs: fix misleading TimeoutStartSec information for oneshot services
The documentation incorrectly stated that TimeoutStartSec "cannot be
used" with Type=oneshot services. According to systemd.service(5),
the startup timeout is simply disabled by default (set to infinity)
for oneshot services, but TimeoutStartSec can still be explicitly
configured if a timeout is desired.

Signed-off-by: Daniel Pereira <zdaniel.gp@gmail.com>
2025-12-28 14:15:50 -03:00
Lokesh Mandvekar
38017c42b6 Merge pull request #27811 from ashley-cui/networkcmdpath
Remove network-cmd-path
2025-12-22 09:40:16 -05:00
Ashley Cui
aa1d7b189a Remove network-cmd-path
As part of slirp removal.
RUN-3569

Signed-off-by: Ashley Cui <acui@redhat.com>
2025-12-19 16:52:49 -05:00
MayorFaj
eaf4d4ebc9 fix: remove unnecessary -t flag from podman run commands in documentation
Signed-off-by: MayorFaj <mayorfaj@gmail.com>
2025-12-17 22:29:40 +00:00
MayorFaj
4043a4bb0c docs: Update filter options and add podman ps documentation
Signed-off-by: MayorFaj <mayorfaj@gmail.com>
2025-12-06 10:47:13 +00:00
MayorFaj
3b080ce918 docs: Deduplicate --filter descriptions
Signed-off-by: MayorFaj <mayorfaj@gmail.com>
2025-12-05 00:36:53 +00:00
Jan Rodák
4d3c6311a5 Fix unless-stopped restart policy to match Docker behavior
- Update documentation: Differentiate `unless-stopped` from `always` - containers stopped by the user before a reboot will not restart.
- Add `should-start-on-boot` filter: Identify containers that require a restart after a system reboot.
- Update command documentation: Add `restart-policy` and `label!` filters to the documentation for container commands (rm, ps, start, stop, pause, unpause, restart).
- Add `restart-policy` and `shoud-start-on-boot` to completions.
- Update service: Update `podman-restart.service` to use the `needs-restart=true` filter.
- Preserve state: Preserve the `StoppedByUser` state across reboots.
- Update API: Add a `ShouldStartOnBoot()` method to the Container API.
- Update documentation: Add descriptions for the `should-start-on-boot` filter.

Fixes: https://issues.redhat.com/browse/RHEL-129405
Fixes: https://github.com/containers/podman/issues/20418

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2025-12-02 15:40:46 +01:00
Timothée Ravier
129f7ae152 docs/podman.1: Fix leftover rootless mention
Fixes: 75f4215717

Signed-off-by: Timothée Ravier <tim@siosm.fr>
2025-11-27 23:06:46 +01:00
Salim B
7b30d9cd3f docs: further tweaks
Signed-off-by: Salim B <git@salim.space>
2025-11-22 01:17:47 +01:00
Salim B
d1c2afc941 docs: improve note about Quadlet TimeoutStartSec
Signed-off-by: Salim B <git@salim.space>
2025-11-22 00:51:01 +01:00
Aaron Ang
e0fc51eb68 Add ulimits to podman update API
Signed-off-by: Aaron Ang <aaron.angyd@gmail.com>
2025-11-20 22:59:50 -08:00
Mario Loriedo
343a196448 Remove iptables references in docs
Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2025-11-21 01:10:19 +01:00
Erik Sjölund
7741e047dd podman-systemd.unit.5: document /sbin/nologin accounts
Add command:
sudo systemctl --machine username@ --user list-unit-files

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

Co-authored-by: Tom Sweeney <tsweeney@redhat.com>
Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2025-11-20 21:01:42 +01:00
openshift-merge-bot[bot]
7cd9b81b43 Merge pull request #26727 from ryanmccann1024/feature/26588-exec-no-session
feat(exec): Add --no-session flag for improved performance
2025-11-20 10:28:15 +00:00
Brent Baude
3d566d85cf Ignore prompt if stdin not a tty on machine start
When starting a machine and the user has not explicitly passed
-u=true|false AND stdin is a not a tty, we should not prompt to update
connections.

Fixes: #27556

Signed-off-by: Brent Baude <bbaude@redhat.com>
2025-11-19 11:50:25 -06:00
ryanmccann1024
61cbc0c3ee feat(exec): Add --no-session flag for improved performance
Fixes: #26588

For use cases like HPC, where `podman exec` is called in rapid succession, the standard exec process can become a bottleneck due to container locking and database I/O for session tracking.

This commit introduces a new `--no-session` flag to `podman exec`. When used, this flag invokes a new, lightweight backend implementation that:

- Skips container locking, reducing lock contention
- Bypasses the creation, tracking, and removal of exec sessions in the database
- Executes the command directly and retrieves the exit code without persisting session state
- Maintains consistency with regular exec for container lookup, TTY handling, and environment setup
- Shares implementation with health check execution to avoid code duplication

The implementation addresses all performance bottlenecks while preserving compatibility with existing exec functionality including --latest flag support and proper exit code handling.

Changes include:
- Add --no-session flag to cmd/podman/containers/exec.go
- Implement lightweight execution path in libpod/container_exec.go
- Ensure consistent container validation and environment setup
- Add comprehensive exit code testing including signal handling (exit 137)
- Optimize configuration to skip unnecessary exit command setup

Signed-off-by: Ryan McCann <ryan_mccann@student.uml.edu>
Signed-off-by: ryanmccann1024 <ryan_mccann@student.uml.edu>
2025-11-19 12:44:48 -05:00
openshift-merge-bot[bot]
fb7e99786e Merge pull request #27384 from flouthoc/multi-file-quadlet
quadlet install: add support for multiple quadlets in a single file
2025-11-18 16:01:08 +00:00
flouthoc
c22c3271bb quadlet install: multiple quadlets from single file should share app
Quadlets installed from `.quadlet` file now belongs to a single
application, anyone file removed from this application removes all the
other files as well.

Assited by: claude-4-sonnet

Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2025-11-17 10:23:28 -08:00
Lokesh Mandvekar
145540fed4 Remove ContainerStats.PerCPU: CGV1 only
Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
2025-11-12 15:15:34 -05:00
Lokesh Mandvekar
bb3c8b9ecd docs: Remove Cgroups v1
Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
2025-11-12 15:15:34 -05:00
openshift-merge-bot[bot]
81e9c67e11 Merge pull request #27506 from Luap99/fix-redoc-url
docs: fix redoc swagger URL
2025-11-12 14:14:02 +00:00
openshift-merge-bot[bot]
b2e0671b5f Merge pull request #27475 from eriksjolund/add-references-to-quadlet
docs: Add references to quadlet
2025-11-12 13:32:28 +00:00
Lokesh Mandvekar
dc6428cbbb docs: update version
already added to v5.7.

Ref: https://github.com/containers/podman/pull/27500

Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
2025-11-11 13:40:52 -05:00
Paul Holzinger
e93040e1e3 docs: fix redoc swagger URL
Currently our API docs are not working as it fails to fetch the js file
with the redoc code which renders the swagger.

The reason this fails is because we have been tracking the "next"
version and that was recently bumped to v3.0.0-rc.0 which also seem to
have moved the location to use "bundle" (no s). As such we now get a 404
as the CDN doesn't find the file. [1]

I don't get why we have been tracking next to begin with, using latest
would still work as it points but that could be moved anytime as well so
switch the URL to pull in the lastest v2 version which should be safer
against unexpected changes like that.

While it could of course also break in a minor v2 release hard coding an
exact version would mean a fair amount of churn updating this (which I
guess would not happen) so this looks like the best compromise to me.

[1] https://www.npmjs.com/package/redoc/v/3.0.0-rc.0

Fixes: #27505

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-11-11 19:22:14 +01:00
flouthoc
e787b4f503 quadlet: add support for multiple quadlets in a single file
Enable installing multiple quadlets from one file using '---' delimiters.
Each section requires '# FileName=<name>' comment for custom naming.
Single quadlet files remain unchanged for backward compatibility.

Assited by: claude-4-sonnet

Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2025-11-10 08:25:48 -08:00
Erik Sjölund
02e5dfbdaf docs: Add references to quadlet
Make the documentation about Quadlet easier to find by
adding more references to it.

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2025-11-08 08:56:06 +01:00
openshift-merge-bot[bot]
0405a470ef Merge pull request #27450 from nimdrak/27444
Fix tiny typos in some artifact docs
2025-11-06 13:28:09 +00:00
Byounguk Lee
469a8af9bb Fixes: #27444, Fix tiny typos in some artifact docs
Signed-off-by: Byounguk Lee <nimdrak@gmail.com>
2025-11-06 05:30:42 +00:00
givensuman
e7b50c33df Add AppArmor key to quadlet .container files
Fixes: #27095
Signed-off-by: givensuman <givensuman@duck.com>
2025-11-05 18:15:52 -05:00
Brent Baude
b4ec460ed4 Add update-connection to machine start and init
This allows users to set the associated machine's system connection to the system default when running `podman machine init --now` or `podman machine start`.  It also changes the default bbehavior of these commands in that the user will be prompted and asked if they would like to switch the system connection.  It also introduces a command line switch called `--update-connection`.  If the switch is unset, then the user will be prmpted.  If the command value is explicitly set to `false`, the user will not be prompted and the system connection will not be altered.  If the value is set to `true`, the system connection will be made the default and the user will not be prompted.

Fixes: https://issues.redhat.com/browse/RUN-3632

Signed-off-by: Brent Baude <bbaude@redhat.com>
2025-11-04 10:35:28 -06:00
openshift-merge-bot[bot]
6fe36e2aee Merge pull request #27376 from codynguyen-dev/docs-mount-section
docs: expand --mount section with detailed type descriptions (#25888)
2025-10-29 20:28:48 +00:00
openshift-merge-bot[bot]
1b2773ae58 Merge pull request #27391 from nimdrak/27378
Missing network type in events document
2025-10-29 15:28:40 +00:00
Brent Baude
5e1c2f8d7d Machine init --provider
Add the ability for users to override the default provider when creating mahcines.  The new flag is `--provider` and allows you to specifiy a valid vmtype for the platform.  This PR also removes the previous list test where we tested listing all providers.  I added a PR for testing --provider which includes a standard `machine ls` which defaults now to showing all providers.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2025-10-29 07:59:34 -05:00
openshift-merge-bot[bot]
5b52ee475c Merge pull request #27388 from baude/systemdescape
Escape periods in path
2025-10-28 11:22:53 +00:00
ByoungUk Lee
c872894615 Fixes #27378 Missing network type in events document
Signed-off-by: ByoungUk Lee <nimdrak@gmail.com>
2025-10-28 04:17:42 +00:00
openshift-merge-bot[bot]
bb94d57bbf Merge pull request #27371 from lordwelch/patch-1
Fix tmpfs U/chown option documentation
2025-10-28 00:12:14 +00:00
codynguyen-dev
a1ed779cd2 Update docs/source/markdown/podman-run.1.md.in
Co-authored-by: Jan Rodák <hony.com@seznam.cz>
Signed-off-by: codynguyen-dev <codynnn@outlook.com>
2025-10-27 19:49:51 -04:00
Brent Baude
183ed100a6 Escape periods in path
Unescaped periods in things like paths in tables can trigger failed man
page builds.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2025-10-27 15:41:55 -05:00
Brent Baude
0f22c1c772 Provider obfuscation in command line
For Podman 6, we still have providers and will continue to have a default provider for each platform.  But where a platform has multiple providers, we want users to be able to cross provider boudnaries imposed in Podman 4/5.  The key change is to look up virtual machines by name, as before, but to then also iterate all possible providers.  As of this PR, init will still only create with the default provider, but a subsequent PR will introdouce an provider override.

I also removed the "--all-providers" command line option on `podman
machine ls` because it no longer makes sense. And I marked the all
provider list test to be skipped.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2025-10-27 08:40:19 -05:00
codynguyen-dev
5551e90532 docs: expand --mount section with detailed type descriptions (#25888)
Signed-off-by: codynguyen-dev <codynnn@outlook.com>
2025-10-26 15:00:35 -04:00