Commit Graph

26773 Commits

Author SHA1 Message Date
Paul Holzinger
d2a0cef55c Merge pull request #28188 from mtrmac/sprintf-split
Don’t use `strings.Split(fmt.Sprintf("--a b …", …), " ")`
2026-03-04 12:01:12 +01:00
Lokesh Mandvekar
de80190295 Merge pull request #28167 from mtrmac/build-failures
Fix test build failures in non-default conditions
2026-03-04 15:21:37 +05:30
Miloslav Trmač
b2d381c7a2 Inline createCommands into the caller
There is exactly one caller, with two code paths, and each only
needs _half_ of the function - and they really only share the
parentFlags and Quiet logic. It's easier to do things
directly.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-03-04 00:26:10 +01:00
Miloslav Trmač
a725f55ff1 Make CreateCommands and ScpCreateCommandsOptions private
They are entirely private, and the type has no reason to
exist in the API definitions.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-03-04 00:20:43 +01:00
Miloslav Trmač
acdaa5372e Don't use strings.Split(fmt.Sprintf("--a b ...", ...), " ")
When we have the _precise_ knowledge of where the parameter boundaries
are, and an API that allows us to express that, just _do that_ instead
of completely unnecessarily worrying about spaces in parameter values.

Also, this allows us to format the code to make the option and value
correspondence much easier to see.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-03-04 00:14:37 +01:00
Miloslav Trmač
b1837f8824 Rename the fedoraMinimal constant to FEDORA_MINIMAL
... following the existing style.

Should not change behavior.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-03-03 21:34:14 +01:00
Miloslav Trmač
cb9df63d63 Fix compilation of tests without CGo
Have the build conditions match the build conditions of the
referenced implementation.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-03-03 21:30:05 +01:00
Miloslav Trmač
c42350a5a2 Fix compilation of tests on arm64
fedoraMinimal is referenced in non-_test config_arm64.go
and config_ppc64le.go.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-03-03 21:30:05 +01:00
Paul Holzinger
afab7a444d Merge pull request #27412 from dvorst/fix/rootless-podman-in-podman-on-wsl
Fix: Rootless Podman-in-Podman on WSL
2026-03-03 21:04:12 +01:00
Matt Heon
aefdaf317d Merge pull request #28170 from StaticRocket/bugfix/quadlet-list
fix(cmd/podman/quadlet): Behave like container ls
2026-03-03 13:03:07 -05:00
Miloslav Trmač
6d9359e340 Merge pull request #27989 from mheon/governance_changes
[Governance] Move inactive maintainers to alumni and clarify Github permissions
2026-03-03 18:33:10 +01:00
Randolph Sapp
33a36bd56b fix(cmd/podman/quadlet): Behave like container ls
Quadlet list always reports the heading, even when using custom
formatting strings. This doesn't follow the behavior of other podman
list commands. Borrow some logic and the "--noheading" flag from the
container list command to make this behavior uniform.

Signed-off-by: Randolph Sapp <rs@ti.com>
2026-03-03 10:04:37 -06:00
Matt Heon
09ebdfa0b0 Merge pull request #28166 from mtrmac/platform-restriction
RFC: Add `(linux || freebsd)` build requirements
2026-03-03 10:27:57 -05:00
Matt Heon
8f8b2b5a04 Merge pull request #28168 from mtrmac/tls-refactors
A bunch of refactoring prerequisites to #28043 + a behavior change of `--registries-conf`
2026-03-03 09:54:37 -05:00
Paul Holzinger
ccf6c3937a Merge pull request #28182 from kolyshkin/fix-teardown-log
test/system: fix some teardown error logging
2026-03-03 13:20:48 +01:00
Matt Heon
8b868f83af Governance: Make each role's GH permissions explicit
We were going through our Github permissions to make sure they
were consistent with MAINTAINERS.md when we realized that we did
not make it explicit what each level in our contributor ladder
should receive for permissions. This fixes that oversight. We
retain some flexibility (e.g. granting Triage to anyone who is
assisting with the project, but not enough to become a Reviewer)
but core privileges are now spelled out explicitly.

Signed-off-by: Matt Heon <mheon@redhat.com>
2026-03-02 20:10:48 -05:00
Matt Heon
97a5e4ce01 Move Urvashi and Valentin to alumni
Both are no longer working on Podman and not actively
contributing. It was lovely working with them both, and we hope
to see them again, but it is necessary to ensure that our
maintainers are active. Move both to alumni as such.

Signed-off-by: Matt Heon <mheon@redhat.com>
2026-03-02 20:10:45 -05:00
Miloslav Trmač
a37bf83dfc Also set DestinationCtx in a copy
It shouldn't actually affect anything, but it's easier
to set it than worry.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-03-02 23:17:13 +01:00
Miloslav Trmač
e04b77e600 Consolidate the call to bindings.NewConnectionWithOptions
... to centralize the conversion from entities.PodmanConfig
to bindings.Options, we will add more code there.

Should not change behavior.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-03-02 23:17:13 +01:00
Miloslav Trmač
fd86c3c25f Use pullOptions.systemContext in getDestArtifact
Right now, this correctly handles pullOptions.credentials
which were ignored previously (admittedly that field is never set
by anything...); in the future, it will ensure the two c/image users
won't get out of sync again.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-03-02 23:17:12 +01:00
Miloslav Trmač
5946f7afcf Factor out pullOptions.systemContext from pull
We will add another user.

Should not change behavior.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-03-02 23:17:12 +01:00
Miloslav Trmač
e807ae4350 Make ocipull.Pull and PullOptions private
There are no external users, so make that clearer.

Should not change behavior.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-03-02 23:17:12 +01:00
Miloslav Trmač
2d4fb908a1 Pass all of Options to tcpClient
This will make it easier to add one more option,
and removes a risk of passing options in an incorrect order.

Should not change behavior.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-03-02 23:17:12 +01:00
Miloslav Trmač
d561f13d7c Simplify setting up Runtime.imageContext
- Don't allocate it on-demand, it will always be created in the end.
- Embed the SystemContext directly, without using a pointer,
  to make it clear it always exists.

Should not change behavior.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-03-02 23:16:49 +01:00
Miloslav Trmač
2ac337dbd8 Behavior change: Don't change TMPDIR in WithRegistriesConf
Previously, using WithRegistriesConf was setting
BigFilesTemporaryDir using buildah/internal/tmpdir, which (turns relative
$TMPDIR into absolute and) silently ignores invalid values in containers.conf
and uses /var/tmp in that case.

Without WithRegistriesConf, we would first initialize libimage with
BigFilesTemporaryDir = nil (causing libimage to determine BigFilesTemporaryDir
using a _different_ code path which fails on invalid containers.conf),
and only later set r.imageContext.BigFilesTemporaryDir.

It doesn't make sense that --registries-conf should affect TMPDIR processing
that way, and presumably the code path without --registries-conf is much
more frequently used and the one everyone expects; so drop this aspect of
WithRegistriesConf.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-03-02 23:06:53 +01:00
Kir Kolyshkin
2ab78a8d82 test/system: fix some teardown error logging
Statement

	for line in "${lines[*]}"

does not make sense since line will be a single value consisting of
all elements of lines array, space-separated.

It should be

	for line in "${lines[@]}"

if we want to iterate through each value.

Fixes: 00292ae1c4 ("systests: test instrumentation")
Fixes: c33ba70f95 ("system tests: instrument, to try to catch unlinkat-ebusy")
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2026-03-02 12:58:27 -08:00
Jan Rodák
f49950c370 Merge pull request #28153 from timcoding1988/swagger-update
Swagger update:  Added missing documented params for already-supported api docs.
2026-03-02 16:40:18 +01:00
Jan Rodák
a11f22292e Merge pull request #28161 from ygalblum/quadlet-volume-mount-options
Quadlet Volume - allow setting mount option without a device
2026-03-02 16:37:35 +01:00
Matt Heon
509e44a005 Merge pull request #28141 from jankaluza/ai-policy
Add LLM (AI) Policy.
2026-03-02 09:18:47 -05:00
Jan Kaluza
f31ab04ec7 Update LLM_POLICY.md
Co-authored-by: Mario Loriedo <mario.loriedo@gmail.com>
Signed-off-by: Jan Kaluza <hanzz.k@gmail.com>
2026-03-02 12:10:57 +01:00
Jan Rodák
e44c9e5b58 Merge pull request #28160 from k9withabone/docs-quadlet-service-name
docs(podman-systemd.unit.5.md): add `ServiceName=` option to all Quadlet types
2026-03-02 11:50:17 +01:00
Matt Heon
559dce7bf8 Merge pull request #28163 from ysinghc/docs-publishport-protocol
docs(podman-systemd.unit.5.md): document protocol support for PublishPort  Fixes: #28146
2026-02-28 20:10:12 -05:00
Matt Heon
4c92142dc5 Merge pull request #27867 from ygalblum/volume-nocreate
Add nocreate option for named volumes
2026-02-28 20:07:19 -05:00
Miloslav Trmač
6beca1cbeb Back New{Container,Image} engine with the remote implementation on macOS
This way, the CLI can still call pkg/domain/infra, without needing
a "remote || linux || freebsd" build tag.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-02-27 22:18:55 +01:00
Miloslav Trmač
d06c4569f0 Make most of libpod, and everything that relies on it, non-darwin
Require (linux || freebsd), because the code already does that, in practice.
This just means macOS users of IDEs aren't hit with thousands of compilation
errors (and then the IDE can open an Linux-specific file and then process it
under the Linux assumption, which works much better).

This commit contains the parts that differ somehow.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-02-27 22:18:53 +01:00
Miloslav Trmač
4c3027c149 Make most of libpod, and everything that relies on it, non-darwin
Require (linux || freebsd), because the code already does that, in practice.
This just means macOS users of IDEs aren't hit with thousands of compilation
errors (and then the IDE can open an Linux-specific file and then process it
under the Linux assumption, which works much better).

This commit ONLY replaces
	//go:build !remote
with
	//go:build !remote && (linux || freebsd)

and is split from the rest to allow mechanically verifying that fact,
and focusing a review on the other kinds of changes.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2026-02-27 22:18:36 +01:00
Yuvraj Singh Chauhan
30f067354f docs(podman-systemd.unit.5.md): document protocol support for PublishPort
Fixes: #28146
Signed-off-by: Yuvraj Singh Chauhan <ysinghcin@gmail.com>

Update docs/source/markdown/podman-systemd.unit.5.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Yuvraj Singh Chauhan <24429@iiitu.ac.in>

Update docs/source/markdown/podman-systemd.unit.5.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Yuvraj Singh Chauhan <24429@iiitu.ac.in>

Update docs/source/markdown/podman-systemd.unit.5.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Yuvraj Singh Chauhan <24429@iiitu.ac.in>

docs(podman-systemd.unit.5.md): clarify supported protocols for PublishPort

Update docs/source/markdown/podman-systemd.unit.5.md

Co-authored-by: Danish Prakash <contact@danishpraka.sh>
Signed-off-by: Yuvraj Singh Chauhan <24429@iiitu.ac.in>

docs(podman-systemd.unit.5.md): update valid protocols for PublishPort to include sctp (rootful only)

docs(podman-systemd.unit.5.md): clarify supported protocols for PublishPort
2026-02-27 15:30:57 +05:30
dvorst
84eff9ef3b Fix: Rootless Podman-in-Podman on WSL
closes: #27411

Adjust SUB_UID and SUB_GID ranges to support running rootless Podman inside a rootless run Podman container.
Also add a test to verify the change and prevent regression.

By default, a new user is assigned the following sub-ID ranges:
  SUB_UID_MIN=100000, SUB_GID_MIN=100000, SUB_UID_COUNT=65536, SUB_GID_COUNT=65536
This means the user’s sub-UID and sub-GID ranges are 100000–165535.

When the container is run rootless with the user defined below, ID mappings occur as follows:
- Container ID 0 (root) maps to user ID 1000 on the host (which is the user created below).
- Container IDs 1–65536 map to IDs 100000–165535 on host (the subid range previously mentioned).

If a new user is created inside this container (to build containers for example), it will
attempt to use the default sub-ID range (100000–165535). However, this exceeds the container’s
available ID mapping, since only IDs up to 65536 are mapped. This causes nested rootless Podman
to fail.

To enable container-in-container builds, the sub-ID ranges for the user must be large enough
to provide at least 65536 usable IDs. A minimum SUB_UID_COUNT and SUB_GID_COUNT of 165536 is
required, but 1,000,000 is used here to provide additional margin.

1,000,000 matches the subid range other machines are using, defined in [ignition.go](69b397af49/pkg/machine/ignition/ignition.go (L284-L289)).
The script of other machines modify the subid files directly for 1 user, the `sed` command used in
this fix mimics that.

The test is added as en extension to the 'simple init with username' test case, to prevent having
to create a new VM.

Signed-off-by: dvorst <87502756+dvorst@users.noreply.github.com>
2026-02-27 10:52:14 +01:00
Ygal Blum
6c41f55aa7 Quadlet Volume - allow setting mount option without a device
Fixes: #28132

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2026-02-26 12:27:23 -05:00
Paul Nettleton
f58c9dcbcb docs(podman-systemd.unit.5.md): add ServiceName= option to all Quadlet types
The `ServiceName=` Quadlet option was only documented for `.pod` and
`.artifact` units. However, it applies to all Quadlet types as it is a
global option.

Added `ServiceName=` listing and description to the `[Container]`,
`[Kube]`, `[Network]`, `[Volume]`, `[Build]`, and `[Image]` sections.

Fixes: #27015
Signed-off-by: Paul Nettleton <k9@k9withabone.dev>
2026-02-26 10:54:53 -06:00
Ygal Blum
64ec31ac00 Add nocreate option for named volumes
Add a per-volume 'nocreate' option that prevents automatic creation of
named volumes when they don't exist. When specified, Podman will fail
if the volume is not found instead of creating it automatically.

Usage: -v myvolume:/data:nocreate
       --mount type=volume,src=myvolume,dst=/data,nocreate

See: #27862
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2026-02-26 11:14:32 -05:00
Tim Zhou
e914c30dd5 update swagger changes
Signed-off-by: Tim Zhou <tizhou@redhat.com>
2026-02-26 09:51:15 -05:00
Jan Kaluza
dc9adfeaff Add LLM (AI) Policy.
This commit adds new LLM_POLICY.md which contains our LLM Policy. It is
based on https://docs.google.com/document/d/1VxYDXT3kIiBAFJHY4fsyFRrddtgIKCrFt_juI7ofsXo
which has been discussed on the previous Podman Community Meeting.

Signed-off-by: Jan Kaluza <jkaluza@redhat.com>
2026-02-26 10:41:06 +01:00
Paul Holzinger
d3a81e3e17 Merge pull request #28150 from sidneychang/docs-rootless-networking-defaults
docs: update rootless default networking mode
2026-02-25 16:34:08 +01:00
2190206983@qq.com
176bab3feb docs: update rootless default networking mode
Signed-off-by: sidneychang <2190206983@qq.com>
2026-02-25 23:17:23 +08:00
Paul Holzinger
2021f2b307 Merge pull request #28080 from containers/renovate/google.golang.org-grpc-1.x
fix(deps): update module google.golang.org/grpc to v1.79.0
2026-02-25 14:35:56 +01:00
Jan Rodák
041f7769a5 Merge pull request #28142 from containers/renovate/openapi-schema-validator-0.x
chore(deps): update dependency openapi-schema-validator to ~=0.7.1
2026-02-25 14:11:49 +01:00
Jan Rodák
4e62f2429a Merge pull request #28138 from Luap99/golangci-lint
update golangci-lint to v2.10.1
2026-02-25 13:53:59 +01:00
Jan Rodák
57ad0b59c4 Merge pull request #28151 from ricardobranco777/rmpod
test/system: fix pod inspect ordering test leak
2026-02-25 12:22:58 +01:00
Paul Holzinger
9a1e5e8eeb cmd/podman-tetsing: fix incorrect error message
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-02-25 11:06:25 +01:00