Commit Graph

1672 Commits

Author SHA1 Message Date
Giuseppe Scrivano 686f6eccee
libpod: read mappings when joining a container userns
when joining an existing container user namespace, read the existing
mappings so the storage can be created with the correct ownership.

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

Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
2020-09-10 19:17:01 +02:00
OpenShift Merge Robot 08b602043e
Merge pull request #7575 from rhatdan/runlabel
Fix podman container runlabel --display
2020-09-09 14:12:00 -04:00
OpenShift Merge Robot 68dace0619
Merge pull request #7573 from rhatdan/oom
Make oom-score-adj actually work
2020-09-09 14:08:48 -04:00
OpenShift Merge Robot 9c4c883d79
Merge pull request #7572 from vrothberg/fix-7135
remote kill: don't wait for the container to stop
2020-09-09 12:22:08 -04:00
Daniel J Walsh 1d7d218191
Fix podman container runlabel --display
Current podman container runlabel --display is being ignored.

This is just supposed to display the command that would be run, and
then exit, but instead is actually running the command.

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-09-09 10:45:24 -04:00
OpenShift Merge Robot 5a09fd8f2b
Merge pull request #7570 from rhatdan/logfile
Fix podman build --logfile
2020-09-09 10:21:50 -04:00
Daniel J Walsh 7b69b99db7
Make oom-score-adj actually work
During the redesign of podman 2.0, we dropped the support for --oom-score-adj.
Test for this flag was bogus and thus passing when it was broken.

Basically just need to set the value in the spec.

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-09-09 10:19:25 -04:00
OpenShift Merge Robot 81bc0395ad
Merge pull request #7571 from vrothberg/fix-7157
generate systemd: catch `--name=foo`
2020-09-09 10:18:28 -04:00
OpenShift Merge Robot 21cfcc4b3b
Merge pull request #7568 from rhatdan/latest
Fix podman ps -l
2020-09-09 10:15:22 -04:00
OpenShift Merge Robot 1b2b068ce8
Merge pull request #7569 from zhangguanzhang/fix-apiv2-top-response-two-value
fix APIv2 pods top of non-exist pod gets two response value
2020-09-09 09:12:40 -04:00
Valentin Rothberg fce2eaa6ca remote kill: don't wait for the container to stop
Invert the branch logic to match the comment.  Docker seems to wait for
the container while Podman does not.

Enable the remote-disabled system test as well.

Fixes: #7135
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-09-09 14:38:28 +02:00
Daniel J Walsh 3a7faf7cf8
Fix podman ps -l
Currently the --latest flag is ignored by podman ps command.

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-09-09 08:07:40 -04:00
Valentin Rothberg 9b8aaf88e7 generate systemd: catch `--name=foo`
The systemd generator looks for certain flags in the containers' create
commands to determine which flags need to be added.  In case of named
containers, the generator adds the `--replace` flag to prevent name
conflicts at container creation.  Fix the generator to not only cover
the `--name foo` syntax but also the `--name=foo` one.

Fixes: #7157
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-09-09 14:04:50 +02:00
Daniel J Walsh 28e685f26e
Fix podman build --logfile
Currently this command blows up because it closes the file descriptor before
doing the build.

Add tests to make sure we don't regress.

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-09-09 08:01:23 -04:00
zhangguanzhang a4ffed91da fix APIv2 pods top of non-exist pod gets two response value
Signed-off-by: zhangguanzhang <zhangguanzhang@qq.com>
2020-09-09 18:50:17 +08:00
OpenShift Merge Robot 6b1a1fcc5c
Merge pull request #6811 from vrothberg/multi-image-archives
podman load/save: support multi-image docker archive
2020-09-09 06:35:56 -04:00
OpenShift Merge Robot 814784c5e6
Merge pull request #7564 from Luap99/remote-subcmds-usage
Don't setup the Image/ContainerEngine when calling a cmd with subcmds
2020-09-08 17:21:55 -04:00
Paul Holzinger ea71f613e6 Don't setup the Image/ContainerEngine when calling a cmd with subcmds
There is no need to setup the image and container engine when calling
a command with subcommands since we only print a usage message.
e.g `podman`,`podman container`

This also allows the remote client to show the usage message on
these commands without a running endpoint. I added a test for this.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-09-08 21:05:11 +02:00
OpenShift Merge Robot 54a61e36a4
Merge pull request #7534 from edsantiago/bats
Migrate away from docker.io
2020-09-08 13:21:36 -04:00
OpenShift Merge Robot 11679c27a7
Merge pull request #7538 from edsantiago/cap_test_robust
Update VM images for new crun; adapt Cap tests to work with new kernel
2020-09-08 10:40:39 -04:00
Ed Santiago a9dbd2b3de Migrate away from docker.io
CI and system tests currently pull some images from docker.io.
Eliminate that, by:

  - building a custom image containing much of what we need
    for testing; and
  - copying other needed images to quay.io

(Reason: effective 2020-11-01 docker.io will limit the
number of image pulls).

The principal change is to create a new quay.io/libpod/testimage,
using the new test/system/build-testimage script, instead of
relying on quay.io/libpod/alpine_labels. We also switch to
using a hardcoded :YYYYMMDD tag, instead of :latest, in an
attempt to futureproof our CI. This image includes 'httpd'
from busybox-extras, which we use in our networking test
(previously we had to pull and run busybox from docker.io).

The testimage can and should be extended as needed for future
tests, e.g. adding test file content or other useful tools.

For the '--pull' tests which require actually pulling from
the registry, I've created an image with the same name but
tagged :00000000 so it will never be pulled by default.
Since this image is only used minimally, it's just busybox.

Unfortunately there remain two cases we cannot solve in
this tiny alpine-based image:

  1) docker registry
  2) systemd

For those, I've (manually) run:

    podman pull [ docker.io/library/registry:2.7 | registry.fedoraproject.org/fedora:31 ]
    podman tag !$ quay.io/...
    podman push !$

...and amended the calling tests accordingly.

I've tried to make the the smallest reasonable diff, not the
smallest possible one. I hope it's a reasonable tradeoff.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-09-08 06:06:06 -06:00
Valentin Rothberg 7fea46752c support multi-image (docker) archives
Support loading and saving tarballs with more than one image.
Add a new `/libpod/images/export` endpoint to the rest API to
allow for exporting/saving multiple images into an archive.

Note that a non-release version of containers/image is vendored.
A release version must be vendored before cutting a new Podman
release.  We force the containers/image version via a replace in
the go.mod file; this way go won't try to match the versions.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-09-08 08:47:19 +02:00
Sascha Grunert 1509adc0a7
Fix unconfined AppArmor profile usage for unsupported systems
If we select "unconfined" as AppArmor profile, then we should not error
even if the host does not support it at all. This behavior has been
fixed and a corresponding e2e test has been added as well.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2020-09-07 10:47:32 +02:00
OpenShift Merge Robot ba8d0bb5e3
Merge pull request #7437 from openSUSE/rm
Just use `rm` for helper command to remove storage
2020-09-06 06:46:07 -04:00
OpenShift Merge Robot f1323a941c
Merge pull request #7329 from Luap99/generate-systemd-remote
APIv2 add generate systemd endpoint
2020-09-05 06:42:36 -04:00
Ed Santiago 36caf4ee44 WIP: update VM images
(This is an adoption of #7533 because Brent is on PTO).

Pick up new crun and crio-runc.

Also: renames from useful fedora-32 and -31 to less-useful
names; presumably this is needed by something-something in
the new VM setup.

Also: tweak two e2e tests to more properly handle a kernel
(5.8.4) with a greater set of capabilities than what we
or crun can yet handle.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-09-03 14:08:34 -06:00
Paul Holzinger ebfea2f4f8 APIv2 add generate systemd endpoint
Add support for generating systemd units
via the api and podman-remote.

Change the GenerateSystemdReport type to return the
units as map[string]string with the unit name as key.

Add `--format` flag to `podman generate systemd`
to allow the output to be formatted as json.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-09-02 22:06:19 +02:00
Daniel J Walsh d68a6b52ec
We should not be mounting /run as noexec when run with --systemd
The system defaults /run to "exec" mode, and we default --read-only
mounts on /run to "exec", so --systemd should follow suit.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-09-02 08:00:22 -04:00
OpenShift Merge Robot 96079e2d18
Merge pull request #7426 from Edward5hen/apiv2-containers-test
APIv2 test: add more tests for containers
2020-09-02 06:46:48 -04:00
Edward Shen 43ad9be7d8 APIv2 test: add more tests for containers
Signed-off-by: Edward Shen <weshen@redhat.com>
2020-09-01 04:00:39 -04:00
Matthew Heon 3875040f13 Ensure rootless containers without a passwd can start
We want to modify /etc/passwd to add an entry for the user in
question, but at the same time we don't want to require the
container provide a /etc/passwd (a container with a single,
statically linked binary and nothing else is perfectly fine and
should be allowed, for example). We could create the passwd file
if it does not exist, but if the container doesn't provide one,
it's probably better not to make one at all. Gate changes to
/etc/passwd behind a stat() of the file in the container
returning cleanly.

Fixes #7515

Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-08-31 18:15:43 -04:00
zhangguanzhang 9ec8a60eae handle play kube with pod.spec.hostAliases
Signed-off-by: zhangguanzhang <zhangguanzhang@qq.com>
2020-08-31 22:12:35 +08:00
OpenShift Merge Robot 24a335b0ae
Merge pull request #7494 from haircommander/play-kube-socket
play kube: handle Socket HostPath type
2020-08-31 09:37:35 -04:00
Peter Hunt 83531904da play kube: handle Socket HostPath type
as well as add test cases for it and the other HostPath types we currently support

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2020-08-28 17:18:03 -04:00
OpenShift Merge Robot 4e3ea01243
Merge pull request #7469 from zhangguanzhang/generate-kube-with-ExtraHosts
fix podman generate kube with HostAliases
2020-08-28 16:06:11 -04:00
OpenShift Merge Robot cf6d9fe4e6
Merge pull request #7464 from edsantiago/bats
BATS: fix corner case in --userns=keep-id test
2020-08-28 09:19:29 -04:00
Sascha Grunert 773bbffd7f
Just use `rm` for helper command to remove storage
This allows to use any kind of `rm` in `$PATH` for the system tests.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2020-08-28 12:17:46 +02:00
Sascha Grunert d02cb2ddc0
Fix log level case regression
With previous versions of Podman (like v1.9.2) it was always possible to
specify the log level in any case, for example `INFO`. This behavior has
silently changed, where the `--log-level` flag only accepts lower case
levels. This commit re-enables the old behavior and adds an e2e test for
it.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2020-08-28 12:09:08 +02:00
Ed Santiago 4060b77157 BATS: fix corner case in --userns=keep-id test
The test that does 'adduser' in a keep-id container had a
really dumb bug: if the user running the test has UID 1000,
then podman itself (via keep-id) will add the "1000" passwd
entry, and the in-container "adduser" will allocate 1001,
making our test fail. This triggered in f31/f32 podman gating
tests, but (?!?) never in rawhide gating tests.

Solution: explicitly feed a UID to adduser. Make sure that
it's not the same as the UID of the current user.

Also (unrelated): fix a ridiculous "run mkdir || die". At
the time I wrote that I probably had no idea how BATS works.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-08-27 12:58:13 -06:00
Daniel J Walsh d6b03772ad
Merge pull request #7438 from openSUSE/comment
Remove test comment for now-succeeding tests
2020-08-27 06:02:04 -04:00
zhangguanzhang a2bb7bd36b fix podman generate kube with HostAliases
Signed-off-by: zhangguanzhang <zhangguanzhang@qq.com>
2020-08-27 17:32:51 +08:00
Sascha Grunert 3c4f945425
Remove test comment for now succeeding tests
The related issue seems fixed so the test execution should work as
intended.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2020-08-25 15:26:34 +02:00
zhangguanzhang fa6ba68026 fix apiv2 will create containers with incorrect commands
Signed-off-by: zhangguanzhang <zhangguanzhang@qq.com>
2020-08-24 23:07:30 +08:00
OpenShift Merge Robot 4828455055
Merge pull request #7390 from baude/podnet
error when adding container to pod with network information
2020-08-21 18:52:55 +02:00
Brent Baude 7b21bcef58 error when adding container to pod with network information
because a pod's network information is dictated by the infra container at creation, a container cannot be created with network attributes.  this has been difficult for users to understand.  we now return an error when a container is being created inside a pod and passes any of the following attributes:

* static IP (v4 and v6)
* static mac
* ports -p (i.e. -p 8080:80)
* exposed ports (i.e. 222-225)
* publish ports from image -P

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-08-21 09:21:15 -05:00
zhangguanzhang fb4977b936 fix /libpod/pods/json returns null when there are no pods
Signed-off-by: zhangguanzhang <zhangguanzhang@qq.com>
2020-08-21 17:48:14 +08:00
Paul Holzinger d10bc9f045 fix pod creation with "new:" syntax followup + allow hostname
Fixes: 4c75fe3f70 ("fix pod creation with "new:" syntax")

Commit 4c75fe3f70 passes all net options to the pod but forgot
to unset the options for the container creation. This leads to
erros when using flags like `--ip` since we tried setting
the ip on the pod and container which obviously fails.

I didn't notice the bug because we don't throw an error when
specifing port bindings on a container which joins the pods
network namespace. (#7373)

Also allow the use of `--hostname` and pass that option to the
pod and unset it for the container. The container has to use
the pods hostname anyway. This would error otherwise.

Added tests to prevent regression.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-08-20 16:28:45 +02:00
Ed Santiago d254fa4c35 system tests: enable more remote tests; cleanup
info, images, run, networking tests: remove some skip_if_remote()s
that were added in the varlink days. All of these tests now seem
to work with APIv2.

help test: check that first output line from 'podman --help'
is the program description (regression check for #7273).

load test: clean up stray images, rewrite test to make it conform
to existing convention. In the process, discover and file #7337

exec test (and networking): file #7360, and add FIXME comment
to skip()s suggesting evaluating those tests once that is fixed.

pod test: now that #6328 is fixed, use 'podman pod inspect --format'
instead of relying on jq

Various other tests: add an explanation of why test is disabled
so we can more easily distinguish "this will never be meaningful
under remote" vs "hey, doesn't work for now, but maybe someday".

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-08-19 08:12:14 -06:00
OpenShift Merge Robot 9d096c1c4e
Merge pull request #7361 from Luap99/version-builttime
fix podman version output to include git commit and builttime
2020-08-19 00:53:58 +02:00
OpenShift Merge Robot ff1f81b14a
Merge pull request #7341 from edsantiago/e2e_use_tmpdirs
e2e tests: use actual temp dirs, not "/tmp/dir"
2020-08-18 20:52:44 +02:00