summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Merge pull request #10775 from vrothberg/3.2-fix-cpOpenShift Merge Robot2021-06-24
|\ | | | | [v3.2] cp: do not allow dir->file copying
| * [v3.2] cp: do not allow dir->file copyingValentin Rothberg2021-06-24
|/ | | | | | | | Fix a bug in `podman-cp` to forbid copying directories to files. Previously, the directory was copied to the parent directory of the file which is wrong. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Merge pull request #10763 from vrothberg/3.2-backportsOpenShift Merge Robot2021-06-24
|\ | | | | 3.2 backports
| * create: support images with invalid platformValentin Rothberg2021-06-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Much to my regret, there is a number of images in the wild with invalid platforms breaking the platform checks in libimage that want to make sure that a local image is matching the expected platform. Imagine a `podman run --arch=arm64 fedora` with a local amd64 fedora image. We really shouldn't use the local one in this case and pull down the arm64 one. The strict platform checks in libimage in combination with invalid platforms in images surfaced in Podman being able to pull an image but failing to look it up in subsequent presence checks. A `podman run` would hence pull such an image but fail to create the container. Support images with invalid platforms by vendoring the latest HEAD from containers/common. Also remove the partially implemented pull-policy logic from Podman and let libimage handle that entirely. However, whenever --arch, --os or --platform are specified, the pull policy will be forced to "newer". This way, we pessimistically assume that the local image has an invalid platform and we reach out to the registry. If there's a newer image (i.e., one with a different digest), we'll pull it down. Please note that most of the logic has either already been implemented in libimage or been moved down which allows for removing some clutter from Podman. [NO TESTS NEEDED] since c/common has new tests. Podman can rely on the existing tests. Fixes: #10648 Fixes: #10682 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
| * vendor containers/common@v0.38.10Valentin Rothberg2021-06-24
|/ | | | | | | | | | | | Please refer to the individual commits for further details: * libimage: pull: override even --pull=never with custom platfo * libimage: pull: enforce pull policy for custom platforms * libimage: pull: ignore platform for local image lookup * Allow /etc/containers/containers.conf to be read by non-root * [0.38] libimage: force remove: only untag on multi tag image Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Merge pull request #10744 from vrothberg/v3.2-fix-10682OpenShift Merge Robot2021-06-22
|\ | | | | [v3.2] logs: k8s-file: restore poll sleep
| * logs: k8s-file: restore poll sleepValentin Rothberg2021-06-22
| | | | | | | | | | | | | | | | | | | | | | | | | | Commit 84b55eec2796 attempted to fix a race waiting for the container died event. Previously, Podman slept for duration of the polling frequence which I considerred to be a mistake. As it turns out, I was mistaken since the file logger will, in fact, NOT read until EOF and then stop logging but stop logging immediately _after_ it woke up. [NO TESTS NEEDED] as the race condition cannot be hit reliably. Fixes: #10675 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
| * logs: k8s-file: fix spurious error logsValentin Rothberg2021-06-22
|/ | | | | | | Fix the suprious "Error: nil" messages. Also add some more context to logged error messages which makes error sources more obvious. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Merge pull request #10751 from vrothberg/v3.2-backport-969cc3237be5OpenShift Merge Robot2021-06-22
|\ | | | | [v3.2] utils: move message from warning to debug
| * utils: move message from warning to debugGiuseppe Scrivano2021-06-22
|/ | | | | | | | | | | | | if a pid could not be moved to a new cgroup, print a debug message instead of a warning. Backport of commit 969cc3237be5. [NO TESTS NEEDED] Closes: https://github.com/containers/podman/issues/10674 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com> Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Merge pull request #10658 from mheon/bump_321OpenShift Merge Robot2021-06-14
|\ | | | | Bump to v3.2.1
| * Bump to v3.2.2-devMatthew Heon2021-06-14
| | | | | | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
| * Bump to v3.2.1v3.2.1Matthew Heon2021-06-14
| | | | | | | | | | | | | | Also, revert minimum API version for the Libpod remote API to v3.1.0. Signed-off-by: Matthew Heon <mheon@redhat.com>
| * Updated release notes for v3.2.1Matthew Heon2021-06-14
| | | | | | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
| * Fix network connect race with docker-composePaul Holzinger2021-06-14
| | | | | | | | | | | | | | | | | | | | | | Network connect/disconnect has to call the cni plugins when the network namespace is already configured. This is the case for `ContainerStateRunning` and `ContainerStateCreated`. This is important otherwise the network is not attached to this network namespace and libpod will throw errors like `network inspection mismatch...` This problem happened when using `docker-compose up` in attached mode. Signed-off-by: Paul Holzinger <pholzing@redhat.com>
| * Revert "Ensure minimum API version is set correctly in tests"Matthew Heon2021-06-14
| | | | | | | | | | | | | | | | This reverts commit 9647d88449f44028c9b870af74e5e44cb819ff9d. We reverted the API bump (was a mistake, should have been left at 3.1.0) and now we need to revert the test changes. Signed-off-by: Matthew Heon <mheon@redhat.com>
| * Fall back to string for dockerfile parameterAlex Schultz2021-06-14
| | | | | | | | | | | | | | | | | | | | | | a9cb824981db3fee6b8445b29e513c89e9b9b00b changed the expectations of the dockerfile parameter to be json data however it's a string. In order to support both, let's attempt json and fall back to a string if the json parsing fails. Closes #10660 Signed-off-by: Alex Schultz <aschultz@redhat.com>
| * remote events: fix --stream=falseValentin Rothberg2021-06-11
| | | | | | | | | | | | | | | | | | | | | | Fix a bug in remote events where only one event would be sent if when streaming is turned off. The source of the bug was that the handler attempted to implement the streaming logic and did it wrong. The fix is rather simple by removing this logic from the handler and let the events backend handle streaming. Fixes: #10529 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
| * [CI:DOCS] fix incorrect network remove api docPaul Holzinger2021-06-11
| | | | | | | | | | | | | | | | The endpoint returns an array and not a single entry. Fixes #10494 Signed-off-by: Paul Holzinger <pholzing@redhat.com>
| * remote: always send resize before the container startsPaul Holzinger2021-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is race condition in the remote client attach logic. Because the resize api call was handled in an extra goroutine the container was started before the resize call happend. To fix this we have to call resize in the same goroutine as attach. When the first resize is done start a goroutine to listen on SIGWINCH in the background and resize again if the signal is received. Fixes #9859 Signed-off-by: Paul Holzinger <pholzing@redhat.com> <MH: Fixed cherry-pick conflicts> Signed-off-by: Matthew Heon <mheon@redhat.com>
| * remote events: support labelsValentin Rothberg2021-06-11
| | | | | | | | | | | | | | | | Certain event meta data was lost when converting the remote events to libpod events and vice versa. Enable the skipped system tests for remote. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
| * remote pull: cancel pull when connection is closedPaul Holzinger2021-06-11
| | | | | | | | | | | | | | | | | | | | | | If a client closes the http connection during image pull, the service should cancel the pull operation. [NO TESTS NEEDED] I have no idea how we could test this reliable. Fixes: #7558 Signed-off-by: Paul Holzinger <pholzing@redhat.com>
| * Fix network prune api docsPaul Holzinger2021-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | The api doc used wrong response examples for both the compat and libpod network prune endpoints. Change the doc so that it matches the actual return values. Also fix the endpoints to return an empty array instead of null when no networks are removed. [NO TESTS NEEDED] Fixes: #10564 Signed-off-by: Paul Holzinger <pholzing@redhat.com>
| * Improve systemd-resolved detectionPaul Holzinger2021-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | When 127.0.0.53 is the only nameserver in /etc/resolv.conf assume systemd-resolved is used. This is better because /etc/resolv.conf does not have to be symlinked to /run/systemd/resolve/stub-resolv.conf in order to use systemd-resolved. [NO TESTS NEEDED] Fixes: #10570 Signed-off-by: Paul Holzinger <pholzing@redhat.com>
| * logs: k8s-file: fix raceValentin Rothberg2021-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a race in the k8s-file logs driver. When "following" the logs, Podman will print the container's logs until the end. Previously, Podman logged until the state transitioned into something non-running which opened up a race with the container still running, possibly in the "stopping" state. To fix the race, log until we've seen the wait event for the specific container. In that case, conmon will have finished writing all logs to the file, and Podman will read it until EOF. Further tweak the integration tests for testing `logs -f` on a running container. Previously, the test only checked for one of two lines stating that there was a race. Indeed the race was in using `run --rm` where a log file may be removed before we could fully read it. Fixes: #10596 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
| * Fix image prune --filter cmd behaviorJakub Guzik2021-06-11
| | | | | | | | | | | | | | | | | | Image prune --filter is fully implemented in the api, http api yet not connected with the cli execution. User trying to use filters does not see the effect. This commit adds glue code to enable possiblity of using --filter in prune in the cli execution. Signed-off-by: Jakub Guzik <jakubmguzik@gmail.com>
| * Several shell completion fixesPaul Holzinger2021-06-11
| | | | | | | | | | | | | | | | | | | | - fix network filters - add prune filters - pod create --share support comma separated namespaces [NO TESTS NEEDED] Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
| * podman-remote build should handle -f option properlyDaniel J Walsh2021-06-11
| | | | | | | | | | | | | | | | | | | | podman-remote build has to handle multiple different locations for the Containerfile. Currently this works in local mode but not when using podman-remote. Fixes: https://github.com/containers/podman/issues/9871 Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
| * System tests: deal with crun 0.20.1Ed Santiago2021-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | crun 0.20.1 changed an error message that we relied on. Deal with it by accepting the old and new message. Also (unrelated): sneak in some doc fixes to get rid of nasty go-md2man warnings that have crept into man pages. Signed-off-by: Ed Santiago <santiago@redhat.com> <MH: Fixed cherry-pick conflicts> Signed-off-by: Matthew Heon <mheon@redhat.com>
| * Fix build tags for pkg/machine...Paul Holzinger2021-06-11
| | | | | | | | | | | | | | | | | | | | | | | | Podman machine is only intended for amd64 and arm64 architectures, set the correct buildtags so that the `pkg/machine`, `pkg/machine/qemu` and `pkg/machine/libvirt` packages compile correctly. [NO TESTS NEEDED] Fixes #10625 Signed-off-by: Paul Holzinger <pholzing@redhat.com>
| * Fix pre-checkpointingAdrian Reber2021-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unfortunately --pre-checkpointing never worked as intended and recent changes to runc have shown that it is broken. To create a pre-checkpoint CRIU expects the paths between the pre-checkpoints to be a relative path. If having a previous checkpoint it needs the be referenced like this: --prev-images-dir ../parent Unfortunately Podman was giving runc (and CRIU) an absolute path. Unfortunately, again, until March 2021 CRIU silently ignored if the path was not relative and switch back to normal checkpointing. This has been now fixed in CRIU and runc and running pre-checkpoint with the latest runc fails, because runc already sees that the path is absolute and returns an error. This commit fixes this by giving runc a relative path. This commit also fixes a second pre-checkpointing error which was just recently introduced. So summarizing: pre-checkpointing never worked correctly because CRIU ignored wrong parameters and recent changes broke it even more. Now both errors should be fixed. [NO TESTS NEEDED] Signed-off-by: Adrian Reber <areber@redhat.com> Signed-off-by: Adrian Reber <adrian@lisas.de>
| * container: ignore named hierarchiesGiuseppe Scrivano2021-06-11
|/ | | | | | | | | | when looking up the container cgroup, ignore named hierarchies since containers running systemd as payload will create a sub-cgroup and move themselves there. Closes: https://github.com/containers/podman/issues/10602 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* Merge pull request #10636 from vrothberg/v3.2-vendor-commonOpenShift Merge Robot2021-06-10
|\ | | | | [v3.2] vendor containers/common@v0.38.9
| * [v3.2] vendor containers/common@v0.38.9Valentin Rothberg2021-06-10
| | | | | | | | | | | | | | | | The fixes will allow for creating containers with a corrupted image in which case the image will be repulled. BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1966872 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* | Merge pull request #10631 from giuseppe/v32-fix-rootless-joinOpenShift Merge Robot2021-06-10
|\ \ | |/ |/| [v3.2] rootless: fix fast join userns path
| * rootless: fix fast join userns pathGiuseppe Scrivano2021-06-10
|/ | | | | | | | | | | | | | | commit ab886328357184cd0a8375a5dedf816ba91789f9 changed the path for the pause.pid file but didn't update the same path in the C code. This prevented Podman to take the fast path when the userns is already created and to join it without re-execing itself. Fix the path in the C code as well so we can join the rootless user+mount namespace without having to re-exec Podman. [NO TESTS NEEDED] Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com> (cherry picked from commit 11badab046d32c0dce40b28707ee3bb72678e36e)
* Merge pull request #10613 from vrothberg/v3.2-vendor-commonOpenShift Merge Robot2021-06-09
|\ | | | | [v3.2] vendor containers/common@v0.38.7
| * [v3.2] vendor containers/common@v0.38.7Valentin Rothberg2021-06-09
|/ | | | | | | | | * libimage: pull: turn image-lookup errors non-fatal Prevents https://bugzilla.redhat.com/show_bug.cgi?id=1966872 from being introduced with v3.2. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Merge pull request #10605 from baude/3.2hvfOpenShift Merge Robot2021-06-09
|\ | | | | Correct qemu options for Intel macs
| * Correct qemu options for Intel macsBrent Baude2021-06-08
| | | | | | | | | | | | | | | | | | | | On intel macs, we need to accel=hvf to work correctly. Fixes: #10555 [NO TESTS NEEDED] Signed-off-by: Brent Baude <bbaude@redhat.com>
* | Merge pull request #10608 from vrothberg/v3.2-vendor-commonOpenShift Merge Robot2021-06-09
|\ \ | |/ |/| [v3.2] vendor containers/common@v0.38.6
| * [v3.2] vendor containers/common@v0.38.6Valentin Rothberg2021-06-09
|/ | | | | | | Fixes the seccomp-profile regression in v3.2 Fixes: #10556 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Merge pull request #10552 from mheon/bump_320OpenShift Merge Robot2021-06-03
|\ | | | | Bump to v3.2.0
| * Ensure minimum API version is set correctly in testsMatthew Heon2021-06-03
| | | | | | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
| * Bump to v3.2.1-devMatthew Heon2021-06-03
| | | | | | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
| * Bump to v3.2.0v3.2.0Matthew Heon2021-06-03
| | | | | | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
| * Fix network create macvlan with subnet optionPaul Holzinger2021-06-03
| | | | | | | | | | | | | | | | | | | | Creating a macvlan network with the subnet or ipRange option should set the ipam plugin type to `host-local`. We also have to insert the default route. Fixes #10283 Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
| * Final release notes updates for v3.2.0Matthew Heon2021-06-03
| | | | | | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
| * add ipv6 nameservers only when the container has ipv6 enabledPaul Holzinger2021-06-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The containers /etc/resolv.conf allways preserved the ipv6 nameserves from the host even when the container did not supported ipv6. Check if the cni result contains an ipv6 address or slirp4netns has ipv6 support enabled and only add the ipv6 nameservers when this is the case. The test needs to have an ipv6 nameserver in the hosts /etc/hosts but we should never mess with this file on the host. Therefore the test is skipped when no ipv6 is detected. Fixes #10158 Signed-off-by: Paul Holzinger <pholzing@redhat.com>
| * Use request context instead of backgroundMatej Vasek2021-06-03
|/ | | | | | | | | | This prevents goroutine leak: If background context were used then push operation would continue even if client aborted request by closing connection. [NO TESTS NEEDED] Signed-off-by: Matej Vasek <mvasek@redhat.com>