16579 Commits

Author SHA1 Message Date
cf2118eab3 stats: map MaxUsage to the correct value
and make sure it is not set for cgroup v2

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-09-15 00:51:56 +02:00
a73b150e70 Merge pull request #15786 from edsantiago/format_test_fixes
System tests: cleanup in --format test
2022-09-14 22:31:21 +02:00
4fc18d07a6 Merge pull request #15799 from mheon/fix_2126697
Ensure that a broken OCI spec does not break inspect
2022-09-14 21:55:13 +02:00
bb4872e2f6 Merge pull request #15809 from edsantiago/docs_dedup_user
[CI:DOCS] Man pages: refactor common options: --user
2022-09-14 21:50:21 +02:00
9b6cb7e80f Merge pull request #15794 from edsantiago/bats_races
System tests: fix three races
2022-09-14 21:33:40 +02:00
f76390d5e6 Man pages: refactor common options: --user
In podman-create, exec, and run. Went with the podman-run version.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-14 12:32:30 -06:00
5d1144062a Merge pull request #15793 from giuseppe/fix-volume-subpath-lookup
libpod: fix lookup for subpath in volumes
2022-09-14 20:28:32 +02:00
dca6d316cc Merge pull request #15802 from edsantiago/docs_dedup_preserve_fds
[CI:DOCS] Man pages: refactor common options: --preserve-fds, -it
2022-09-14 20:25:38 +02:00
88879d588c System tests: cleanup in --format test
Followup to #15673 (--format with newlines). I cobbled up a test
for it, but I was sloppy, so the test had issues that I kept
having to band-aid. This is a cleaner way to handle podman-machine.

...and, another unexpected surprise with podman stats. It
fails under rootless cgroupsv1. We can't sweep it under the
rug via skip_if_ubuntu because tests will then fail on RHEL8.
So, add a similar mechanism for testing podman stats.

...plus a non-surprise, the 'search' test flakes. Try minimizing
that by searching only $IMAGE. If quay.io is down, other tests
will certainly fail.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-14 10:59:27 -06:00
d4a62ff932 System tests: fix three races
Three tests were running 'container rm' on 'start'ed containers
that might not yet have exited. Fix. Also, tighten up the
tests themselves, to make even more sure that they test
what they're supposed to test.

Discovered, in CI, that 'podman-remote logs --timestamps'
was unimplemented. Thanks to @Luap99 for the fix to that.

Fixes: #15783
Fixes: #15795

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-14 10:49:18 -06:00
14e5d1c15d libpod: fix lookup for subpath in volumes
a subdirectory that is below a mount destination is detected as a
subpath.

Closes: https://github.com/containers/podman/issues/15789

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-09-14 17:09:04 +02:00
92dc61d5ed libpod: rename function
the function checks if a path is under any mount, not just bind
mounts.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-09-14 17:08:57 +02:00
42937cd9a8 Ensure that a broken OCI spec does not break inspect
The process of saving the OCI spec is not particularly
reboot-safe. Normally, this doesn't matter, because we recreate
the spec every time a container starts, but if one was to reboot
(or SIGKILL, or otherwise fatally interrupt) Podman in the middle
of writing the spec to disk, we can end up with a malformed spec
that sticks around until the container is next started. Some
Podman commands want to read the latest version of the spec off
disk (to get information only populated after a container is
started), and will break in the case that a partially populated
spec is present. Swap to just ignoring these errors (with a
logged warning, to let folks know something went wrong) so we
don't break important commands like `podman inspect` in these
cases.

[NO NEW TESTS NEEDED] Provided reproducer involves repeatedly
rebooting the system

Signed-off-by: Matthew Heon <mheon@redhat.com>
2022-09-14 11:02:35 -04:00
017d81ddd0 Merge pull request #15788 from kolyshkin/non-crypto-id
all: stop using deprecated GenerateNonCryptoID
2022-09-14 16:17:37 +02:00
b6c75a3cc5 Man pages: refactor common options: --preserve-fds, -it
Three simple options shared among podman-create, exec, run.

I mostly went with the podman-run versions. For --tty, this
means that create and exec get the long stdout/stderr note.
(The example, though, remains only in podman-run). For -i,
mostly boldspace changes.

For --preserve-fds, podman-exec now has the "not with remote"
note (which it didn't until now)

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-14 08:15:46 -06:00
a3876c2f85 Merge pull request #15796 from vrothberg/fix-ci
fix ci: update systemd generate unit test
2022-09-14 16:15:09 +02:00
e1b3d9811a Merge pull request #15795 from edsantiago/docs_dedup_ip6
[CI:DOCS] Man pages: refactor common options: --ip6
2022-09-14 16:09:51 +02:00
83c148c4dd Merge pull request #15790 from Luap99/slirp-doc
[CI:DOCS] improve slirp4netns allow_host_loopback docs
2022-09-14 14:26:57 +02:00
82651e5974 Merge pull request #15769 from dfr/freebsd-stats
Add support for 'podman stats' on FreeBSD
2022-09-14 14:21:30 +02:00
dd53ee5998 fix ci: update systemd generate unit test
Two PRs have been merged causing a failure in one unit test.
Fix the unit test to turn CI green again.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-14 14:13:33 +02:00
4df460836c Man pages: refactor common options: --ip6
Similar to yesterday's --ip. No changes to content, all I did
was variableize the instances of 'container'/'pod'.

Did not touch podman-network-connect file, but if someone
wants to look at that one and tell me whether all this long
text is applicable to it (or not), I'd appreciate it.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-14 05:46:14 -06:00
ae20f19351 Merge pull request #15777 from vrothberg/fix-14546
generate systemd: fix pod dependencies
2022-09-14 13:08:04 +02:00
9401268360 Merge pull request #15771 from dcermak/pod-systemd-exit-policy
[systemd] Ensure that podCreateArgs appear last in ExecStartPre=
2022-09-14 13:05:29 +02:00
47fff4b007 improve slirp4netns allow_host_loopback docs
The default ip is 10.0.2.2 but is always the second ip from the
slirp4netns subnet, which can be changed via the cidr option.

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2090166

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-14 10:55:02 +02:00
0aedddd3b3 [systemd] Ensure that podCreateArgs appear last in ExecStartPre=
When creating a new pod without the `--name` flag, e.g.:
`podman pod create foobar`
it will get the name `foobar` implicitly and this will be recorded as the in the
`podCreateArgs`. Unfortunately, the implicit name only works if it appears as
the **last** argument of the startup command.
With 6e2e3a78ed1d05ee5f23f65b814e8135021961dd we started appending the pod
security policy to the startCommand, resulting in the following `ExecStartPre=`
line:
```
/usr/bin/podman pod create --infra-conmon-pidfile %t/pod-foobar.pid --pod-id-file %t/pod-foobar.pod-id foobar --exit-policy=stop
```
This fails to launch, as the `pod create` command expects only a single
non-flag parameter, but it assumes that `exit-policy=stop` is a second and
terminates immediately instead.

This fixes https://github.com/containers/podman/issues/15592

Signed-off-by: Dan Čermák <dcermak@suse.com>
2022-09-14 09:37:02 +02:00
b47ce9a6e0 libpod: Add support for 'podman stats' on FreeBSD
[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2022-09-14 08:29:26 +01:00
b3e978e43b libpod: Split out the common code from GetContainerStats
This moves the cgroups code to a new method getPlatformContainerStats.

[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2022-09-14 08:29:26 +01:00
47bd9e8110 libpod: Move stats.go to stats_linux.go for consistency
[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2022-09-14 08:29:26 +01:00
1e6da11155 pkg/rctl: Add a simple FreeBSD RCTL library
Initially just supporting just rctl_get_racct for
(*Container).GetContainerStats.

[NO NEW TESTS NEEDED] we are not running any FreeBSD tests in CI

Signed-off-by: Doug Rabson <dfr@rabson.org>
2022-09-14 08:29:26 +01:00
75740be395 all: stop using deprecated GenerateNonCryptoID
In view of https://github.com/containers/storage/pull/1337, do this:

	for f in $(git grep -l stringid.GenerateNonCryptoID | grep -v '^vendor/'); do
		sed -i 's/stringid.GenerateNonCryptoID/stringid.GenerateRandomID/g' $f;
	done

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2022-09-13 16:26:26 -07:00
c64388728f Merge pull request #15784 from edsantiago/docs_dedup_tlsverify
[CI:DOCS] Man pages: refactor common options: --tls-verify
2022-09-13 21:00:16 +02:00
ad529f31d8 Merge pull request #15673 from Luap99/template
Fix go template parsing with "\n" in it
2022-09-13 20:26:24 +02:00
76eb06330f Man pages: refactor common options: --tls-verify
Ugh. This had about five different variations among twelve files.
I went with the version from podman-create, kube play, login, pull,
push, run. The others:

 - manifest-add and create did not include the "true, false, missing"
   text. Now they do. (If this text is N/A to these two, please yell).
   Also, these two were written with "talking" instead of "contacting"
   the registry.

 - podman-build had "does not work with remote", but this
   does not seem to be true, so I removed it. None of the
   other files had that.

 - the wording in podman-search is just weird, with "if needed"
   and "is listed" and unclear "insecure registries". I just
   nuked it all. If that wording was deliberate, for some reason
   that applies only to podman-search, please yell.

 - podman-container-runlabel has one diff that I like, actually
   spelling out containers-registries.conf(5), but incorporating
   that would make this even harder to review. I will add that
   to my in-progress doc-cleanup PR.

Review recommendation: run hack/markdown-preprocess-review but
just quit out of it immediately (on both popups). Ignore it completely.
Then cd /tmp/markdown-preprocess-review.diffs/tls-verify and run

    $ clear;for i in podman-*;do echo;echo $i;wdiff -t $i zzz-chosen.md;done

This will show the major diffs between each version and the chosen one.
Assumes you have wdiff installed. If you have another colorize-actual-
individual-word-diffs tool installed, use that. I like cdif[1].

 [1] https://github.com/kaz-utashiro/sdif-tools

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-13 11:15:23 -06:00
6e382d9ec2 Merge pull request #15779 from edsantiago/docs_dedup_publish
[CI:DOCS] Man pages: Refactor common options: --publish
2022-09-13 18:24:01 +02:00
fe04c86a24 generate systemd: fix pod dependencies
Change the dependencies from a pod unit to its associated container
units from `Requires` to `Wants` to prevent the entire pod from
transitioning to a failed state.  Restart policies for individual
containers can be configured separately.

Also make sure that the pod's RunRoot is always set.

Fixes: #14546
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-13 17:25:48 +02:00
d4a0003122 Man pages: Refactor common options: --publish
Almost identical between podman-create, run, and pod-create.
The "Notes" are different, so I left those duplicated between
podman-create and run, and left the different one in pod-create.

podman-container-restore also has --publish but it's unrelated.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-13 09:02:34 -06:00
9d41b95d72 rework --format system test
This version does a much better job of error reporting and also catches
more commands.

Changes from edsantiago.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-13 17:02:15 +02:00
4ff5bd8542 Merge pull request #15773 from edsantiago/docs_dedup_publish_all
[CI:DOCS] Man pages: refactor common options: --publish-all
2022-09-13 17:00:51 +02:00
7e03a497d1 Merge pull request #15772 from edsantiago/autolabel_api_change
[CI:BUILD] Enable github labeler, use for api-change
2022-09-13 16:37:54 +02:00
dacd594247 Man pages: refactor common options: --publish-all
Only shared between podman-create and run. The latter was
updated in #5192, and that is the text I chose.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-13 07:51:39 -06:00
885bc4742d Enable github labeler, use for api-change
Belated followup to #11829: use github labeler workflow[1] to
auto-add 'kind/api-change' label to PRs in which files are
touched under pkg/api

 [1] https://github.com/actions/labeler

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-13 07:36:45 -06:00
07c0dd1f24 Merge pull request #15770 from edsantiago/docs_dedup_os.pull
[CI:DOCS] Man pages: refactor common options: --os (pull)
2022-09-13 15:23:23 +02:00
51b5d30b10 Merge pull request #15721 from edsantiago/instrument_metacopy_flake
TEMPORARY: instrumenting for 15488
2022-09-13 15:14:47 +02:00
74e0511c96 Man pages: refactor common options: --os (pull)
Only shared by podman-create, -pull, -run. No changes
made other than whitespace, so this should be a gimme.

podman-build, import, and manifest-* also have --os options,
but those are unrelated and I can't find a way to combine
any two of them.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-13 06:35:15 -06:00
68eb82ceb2 Merge pull request #15768 from edsantiago/docs_dedup_ip
[CI:DOCS] Man pages: refactor common options: --ip
2022-09-13 14:25:07 +02:00
351b303119 Merge pull request #15752 from vrothberg/fix-15691
health checks: restart timers
2022-09-13 14:22:34 +02:00
d88d74639f Merge pull request #15753 from mheon/fix_15720
Ensure that the DF endpoint updated volume refcount
2022-09-13 13:35:10 +02:00
f30d4852ef Man pages: refactor common options: --ip
Between podman-create, run, and pod-create. The big difference
is that I changed 'IP' to 'IPv4' in podman-pod-create, I believe
that was an oversight in #12611.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-13 05:14:25 -06:00
c0dd0d696e Merge pull request #15766 from vrothberg/fix-15284
generate systemd: warn on --restart without --new
2022-09-13 13:00:23 +02:00
eb69259305 Merge pull request #15767 from dfr/freebsd-events
events: Fix spelling of newNullEventer
2022-09-13 12:33:57 +02:00