18718 Commits

Author SHA1 Message Date
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
3cdaf85d66 build(deps): bump github.com/docker/docker
Bumps [github.com/docker/docker](https://github.com/docker/docker) from 23.0.3+incompatible to 23.0.4+incompatible.
- [Release notes](https://github.com/docker/docker/releases)
- [Commits](https://github.com/docker/docker/compare/v23.0.3...v23.0.4)

---
updated-dependencies:
- dependency-name: github.com/docker/docker
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-18 12:58:07 +00:00
3c995c2c52 Merge pull request #18238 from lsm5/makefile-release-artifact-target
Makefile: include `release-artifacts` target
2023-04-18 08:26:44 -04:00
e7b9ae4f3b Merge pull request #18236 from baude/vsock0
Enabled network over vsock
2023-04-17 17:25:24 -04:00
15e4189fce Merge pull request #18235 from containers/renovate/github.com-microsoft-go-winio-0.x
fix(deps): update module github.com/microsoft/go-winio to v0.6.1
2023-04-17 17:01:17 -04:00
459f751ae3 Makefile: include release-artifacts target
The current release artifacts generation process is still fairly manual
with a bunch of steps. This commit bundles them all into a single
convenient Makefile target.

The `clean-binaries` target ends up removing `bin/`. So, the artifact
dir has been changed to `release/` instead of the current `bin/` to
avoid breaking other Makefile targets.

Related: https://github.com/containers/podman/issues/18215

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2023-04-17 14:54:20 -04:00
3222545ad5 Enabled network over vsock
podman machine with Microsoft HyperV will use hvsock on the guest and
vsock on the guest for its networking.  this pr enables the basics for
this to happen as well as changes to ignition to automatically set this
up with network manager.

the vm binary referenced in this pr is in containers/gvisor-tap-vsock
and will need to be added to distributions.

[NO NEW TESTS NEEDED]
Signed-off-by: Brent Baude <bbaude@redhat.com>
2023-04-17 12:34:37 -05:00
aec7ce4a10 fix(deps): update module github.com/microsoft/go-winio to v0.6.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-17 17:27:04 +00:00
ef4dbc27b0 Merge pull request #18167 from baude/hypervvsock
Add support for HVSOCK on hyperv
2023-04-17 13:25:45 -04:00
64b26df608 fix(deps): update module github.com/opencontainers/runtime-spec to v1.1.0-rc.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-17 16:16:45 +00:00
b7fc57ca14 Merge pull request #18226 from arctic-alpaca/main
[CI:DOCS] Update API reference to include v4.5
2023-04-17 12:15:22 -04:00
9676391c4e Merge pull request #18202 from R3DRUN3/main
[CI:DOCS] Add license, release and go report badges
2023-04-17 09:24:11 -04:00
41d5164125 fix remote start --filter
Fix a number of bugs wrt. filtering remote containers and how to
process specified names or IDs.  I _really_ do not like the duplication
between remote and local Podman but want to focus on fixing #18153
for now.

What I desire in the future is to consolidate all functionality of
looking up containers (all, latest, filters, specified names/IDs, etc.)
and for remote clients to just call containers/list etc.

Fixes: #18153
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-04-17 15:11:40 +02:00
1cac535062 Update API reference to include v4.5
Signed-off-by: arctic-alpaca <67190338+arctic-alpaca@users.noreply.github.com>
2023-04-17 14:52:36 +02:00
5c70641e4f Merge pull request #18209 from mtrmac/no-NewBuffer
Don't use bytes.NewBuffer to read data
2023-04-17 03:19:35 -04:00
a0204f1dd0 Add missing security options to /info response
Signed-off-by: Jakob Ahrer <jakob@ahrer.dev>
2023-04-16 18:27:16 +02:00
625ff8fc3e Merge pull request #18214 from containers/renovate/github.com-vbauerster-mpb-v8-8.x
fix(deps): update module github.com/vbauerster/mpb/v8 to v8.4.0
2023-04-16 06:45:22 -04:00
08f137aec2 fix(deps): update module github.com/vbauerster/mpb/v8 to v8.4.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-15 12:49:03 +00:00
4d9b63752a Merge pull request #18159 from Luap99/network-tutorial
[CI:DOCS] docs: update network tutorial with netavark DHCP support
2023-04-15 08:44:21 -04:00
8e7f98ae65 docs(readme): add status badges and remove hardcoded release info
Signed-off-by: r3drun3 <simone.ragonesi@kiratech.it>
2023-04-15 09:57:18 +02:00
e9356ba206 Don't use bytes.NewBuffer to read data
The documentation says
> The new Buffer takes ownership of buf, and the
> caller should not use buf after this call.

so use the more directly applicable, and simpler, bytes.Reader instead, to avoid this potentially risky use.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2023-04-14 22:40:47 +02:00
f488d9890c Add support for HVSOCK on hyperv
Windows HyperV uses HVSocks (Windows adaptation of vsock) for
communicating between vms and the host.  Podman machine in Qemu uses a
virtual UDS to signal the host that the machine is booted.  In HyperV,
we can use a HVSOCK for the same purpose.

One of the big aspects of using HVSOCK on Windows is that the HVSOCK
must be entered into the Windows registry.  So now part of init and rm
of a podman machine, entries must be added and removed respectively.
Also duplicates are a no-no.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2023-04-14 13:53:25 -05:00
e7a3236358 docs: update network tutorial with netavark DHCP support
Add instructions on how to start the netavark dhcp proxy. Also list
version requirements.

Fixes #17635

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-04-14 12:16:26 +02:00
6c32bf18d0 Merge pull request #18190 from lsm5/bump-main
bump main to v4.6.0-dev
2023-04-13 17:13:27 -04:00