19293 Commits

Author SHA1 Message Date
c325cfd462 Merge pull request #18258 from baude/hypervsockets
hyperv: add podman socket mapping
2023-04-20 17:14:45 +00:00
9a750045ea Merge pull request #18212 from rhatdan/docker
Specify format to buildah before commit
2023-04-20 17:12:29 +00:00
252959879b Merge pull request #18281 from Luap99/e2e-network-prune
test/e2e: use custom network config v2
2023-04-20 10:15:06 -06:00
77f86f48ef chore(deps): update dependency setuptools to ~=67.7.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-20 15:40:33 +00:00
03a7c6a916 Cirrus: Drop benchmarks artifacts
These aren't being generated anymore.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-04-20 11:33:15 -04:00
15664b4b02 test/e2e: correctly reap service process
When running the remote integration test I have over 1000 zombies
because each test creates a single service process. Only after ginkgo
exists they get finally reaped by the init process. This only effected
the rootless runs.

For some reason the test use different logic between root and rootless.
This doesn't make much sense. I also see no reason to manually kill
child processes.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-04-20 16:26:56 +02:00
c9d8610239 test/e2e: add missing options to remote service
This is a rather big deal. All system services shared the same tmpdir
which causes big issues for the rootless netns setup.
Also use --events-backend file like the local ones. This is important
otherwise reading events and takes ages as the jounal is shared for all
tests.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-04-20 16:26:55 +02:00
1f45c715df test/e2e: fix incorrect usage of CreateTempDirInTempDir()
Creating a new diretory results in the test leaking it when it is not
removed via a defer call. All tests have already access to
`podmanTest.TempDir` which will be automatically removed in the
`AfterEach()` block.

While some test were fine other forgot the defer call. To keep the test
consitent and prevent other from making the same mistake convert all
users to `podmanTest.TempDir`. `CreateTempDirInTempDir()` is only used
for the `podmanTest.Setup()` call.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-04-20 16:26:55 +02:00
601d228cae test/e2e: "podman-remote send correct path to copier" do not leak file
Remove the file from the cwd after the test.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-04-20 16:26:55 +02:00
08c651016f test/e2e: fix network create flake due same subnet
Some network test use the same subnet as others, because the network
config direcory is shared we must ensure subnets do not conflict as
tests are run in parallel. I see this locally when running with 12
threads.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-04-20 16:26:55 +02:00
525c27fe1d test/e2e: fix SkipIfNotActive()
If a unit is not active the exit code from systemctl is 3. Thus this
test always failed because it checked the error.

Fix this by checking the exit code and remove the unnecessary output
parsing.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-04-20 16:26:55 +02:00
01d518a975 test/e2e: do not try to use docker as rootless
Running these locally always created a popup to ask me for my password
as I am in the wheel group.
I would also argue that such a test should not be run on any local
system ever even as root. First docker could be a symlink to podman so
the check if the image is there would fail. Second starting the docker
deamon in a podman test suite just feels very unexpected.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-04-20 16:26:55 +02:00
6e97976ad4 test/e2e: do not leak "hello" file
Because the test mounts the current dir it does not need to create a new
file in it. Just check if the current test file is there should fulfill
the same purpose.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-04-20 16:26:54 +02:00
08d6b7b27e Merge pull request #18282 from Luap99/remote-logs-fix
podman-remote logs: handle server error correctly
2023-04-20 16:25:52 +02:00
653261aa2c Merge pull request #18278 from vrothberg/fix/compat-image-remove-noprune
compat: Translate `noprune` into ImageRemoveOptions.NoPrune
2023-04-20 09:30:57 -04:00
750442d093 podman-remote logs: handle server error correctly
If the server responds with an error we must report it correct back to
the user.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-04-20 14:11:03 +02:00
3aaa2793da test/e2e: use custom network config v2
Adds two custom config dirs to tests that were missed in
commit dc9a65e348.

Fixes #17946 (hopefully finally)

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-04-20 13:34:47 +02:00
00fdfa0636 rename ImagePushReport to ImagePushStream
The Report will be used in a future change as a new return value for the
internal Push API.

Note: this change is only breaking internal APIs while user-facing
external ones remain unchanges.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-04-20 13:29:07 +02:00
0d171e9b7a Merge pull request #18264 from raballew/main
Add eBPF snooper that traces the entire fork/exec graph of podman
2023-04-20 07:27:51 -04:00
f57020149a Merge pull request #18267 from Luap99/always-stop
libpod: stop containers with --restart=always
2023-04-20 07:16:49 -04:00
85d383bb35 Merge pull request #18277 from giuseppe/fix-race-test-rm-cgroup
test: fix race when listing cgroups
2023-04-20 07:03:41 -04:00
81621ce8af Specify format to buildah before commit
If user specifies commit --format, we were not setting it before
commit, this caused warning messages that made no sense to be
printed that made no sense.

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-04-20 06:24:35 -04:00
e74a4086ec Merge pull request #18270 from edsantiago/try_another_hostip
e2e networking test: better way to get host IP
2023-04-20 06:21:23 -04:00
7382494ca4 Add eBPF snooper that traces the entire fork/exec graph of podman
As long as podman uses a fork/exec model this eBPF program is able to trace the performance of each podman command and the resulting child processes from start to finish. This is an improvement to the already existing podmansnoop eBPF program which only looks at sched_process_exit and enter/exit sys_execve tracepoints.

Signed-off-by: Paul Wallrabe <54737071+raballew@users.noreply.github.com>
2023-04-20 11:30:47 +02:00
edb64f8a76 libpod: stop containers with --restart=always
Commit 1ab833fb73 improved the situation but it is still not enough.
If you run short lived containers with --restart=always podman is
basically permanently restarting them. To only way to stop this is
podman stop. However podman stop does not do anything when the
container is already in a not running state. While this makes sense we
should still mark the container as explicitly stopped by the user.

Together with the change in shouldRestart() which now checks for
StoppedByUser this makes sure the cleanup process is not going to start
it back up again.

A simple reproducer is:
```
podman run --restart=always --name test -d alpine true
podman stop test
```
then check if the container is still running, the behavior is very
flaky, it took me like 20 podman stop tries before I finally hit the
correct window were it was stopped permanently.
With this patch it worked on the first try.

Fixes #18259

[NO NEW TESTS NEEDED] This is super flaky and hard to correctly test
in CI. MY ginkgo v2 work seems to trigger this in play kube tests so
that should catch at least some regressions. Also this may be something
that should be tested at podman test days by users (#17912).

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-04-20 11:23:05 +02:00
0364aef1e0 test: fix race when listing cgroups
A cgroup could have been deleted by the time WalkDir is trying to
access it.  Ignore the error and continue.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-04-20 11:21:10 +02:00
6a360eaab5 Merge pull request #18234 from containers/renovate/github.com-opencontainers-runtime-spec-1.x
fix(deps): update module github.com/opencontainers/runtime-spec to v1.1.0-rc.2
2023-04-20 05:17:40 -04:00
b65ab52d8d compat: Translate noprune into ImageRemoveOptions.NoPrune
PR #15093 implemented support for NoPrune in the ImageRemoveOptions,
this PR simply brings that also to the compat API along with
regression tests.

Signed-off-by: Andreas Kohn <andreas.kohn@gmail.com>
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-04-20 11:11:19 +02:00
3464837173 [CI:DOCS] Update RELEASE_PROCESS.md
Update the process. Added announcement section, removed obsolete steps,
changed order of some steps for fewer PR's and simplification of process.

Signed-off-by: Ashley Cui <acui@redhat.com>
2023-04-19 20:37:28 -04:00
8019dc9e60 hyperv: add podman socket mapping
on machine start, create a socket representing the machine's podman
service socket so local (to the host) applications can take advanatge of
it.

[NO NEW TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2023-04-19 16:41:34 -05:00
a089f1b5c3 e2e networking test: better way to get host IP
uber/jaeger-client-go library is deprecated. Remove it.

Only place it's used is in one e2e test, a test that is flaking
in a way that suggests that the HostIP() weighting heuristic from
that module was not actually getting the best outgoing IP address.
So, switch to using what seems to be the current best practice.
No need to make it reusable, since it's only used in one place.

Oh, also remove undesired "-dt" from two "podman run"s. In one
it's harmless, in the other it would cause a test failure under
some circumstances.

Closes: #18269   (optimistic, aren't I?)

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-04-19 13:35:32 -06:00
bce38c1afb Updated system test to be easier to read
Following @edsantiago guidance,

* Additional explanations for each step of the test
* Timezone for tests normalized to UTC
* Smarter choice of separator and use of shell substring extraction

Signed-off-by: rbagd <mail@rbagd.eu>
2023-04-19 21:10:40 +02:00
911be1cbcb Merge pull request #18268 from edsantiago/bindingtest_fail_early
bindings tests: bail out early on image errors
2023-04-19 12:28:58 -04:00
190fb30dd1 Merge pull request #18166 from containers/renovate/setuptools-67.x
chore(deps): update dependency setuptools to v67
2023-04-19 11:10:57 -04:00
5f5bea0d12 bindings tests: bail out early on image errors
If Pull() fails, which it does on registry or network flakes,
bail out early: there's no point in continuing. Same with
Save() and restoreImageFromCache(), although those are
unlikely to fail.

Possibly better solution: retry with backoff. Left as exercise
for future maintainer.

Use Expect() for failure checks, and correct two existing
instances of Printf()/Exit() to also use Expect().

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-04-19 08:16:45 -06:00
f2cec73486 libpod: fix TestPostDeleteHooks do not depend on version
It really doesn't make sense to match the version one to one,
this just requires us to update it every time manually.
Use a regex instead.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-04-19 15:29:52 +02:00
53d8e4b50f Merge pull request #18192 from containers/renovate/github.com-containers-libhvee-0.x
fix(deps): update module github.com/containers/libhvee to v0.0.5
2023-04-19 08:45:43 -04:00
339344c50e Merge pull request #18198 from vrothberg/fix-18153
fix remote start --filter
2023-04-19 05:19:06 -04:00
8de9014ff5 Merge pull request #18246 from sstosh/fix-quadlet-test
e2e: quadlet uses PODMAN env for podman binary path
2023-04-19 04:48:56 -04:00
8125bab9b8 chore(deps): update dependency setuptools to v67
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-19 08:46:21 +00:00
35ae059ca9 Merge pull request #18208 from SoMuchForSubtlety/info-sec-opts
Add missing security options to /info response
2023-04-19 04:45:43 -04:00
a00ed20e01 fix(deps): update module github.com/containers/libhvee to v0.0.5
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-19 08:40:47 +00:00
da83364eb0 e2e: quadlet uses PODMAN env for podman binary path
Adapts to pass the test even if
podman binary path is not `/usr/local/bin/podman`.

[NO NEW TESTS NEEDED]

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2023-04-19 16:17:57 +09:00
6e0cf93447 Fixes format inconsistencies with docker for certain history fields
Closes #17767
Closes #17768

System test for image list and history dates

* Changed field separator in the test to `;` for easier parsing
* Converted date output from image history and image list to be comparable

Signed-off-by: rbagd <mail@rbagd.eu>
2023-04-19 00:20:47 +02:00
5b58246e2f Merge pull request #18254 from Luap99/netns-cleanup
libpod: configureNetNS() tear down on errors
2023-04-18 12:05:10 -04:00
c47ccf28fc Merge pull request #18242 from baude/hypervwaitonstop
HyperV: wait on stop
2023-04-18 11:15:58 -04:00
acb24f164b Makefile: do not prefix /etc
Revert commit 3d0e08f04e9c67dd8136acd54adabd077dbbd633.
`/etc/` does not need a prefix and can be customized
with the `ETCDIR` env variable.

Fixes: #18250
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-04-18 16:14:02 +02:00
7e4cd22acb libpod: configureNetNS() tear down on errors
Make sure to tear down the netns again on errors. This is needed when a
later call fails and we do not have already stored the netns in the
container state.

[NO NEW TESTS NEEDED] My ginkgo-v2 PR will catch problem like this once
merged.

Fixes #18205

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-04-18 15:18:05 +02:00
4f93a6eee4 libpod: rootlessNetNs.Cleanup() fix error message
The wrong error was logged.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-04-18 15:14:22 +02:00
4b8230119e HyperV: wait on stop
When using podman machine with hyperv, stop was releasing the terminal
back top the user prematurely.  This resulted in users being able to run
subsequent commands while the vm was still stopped.  Commands like
machine stop were prone to failing.

[NO NEW TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2023-04-18 08:02:48 -05:00