Commit Graph

1522 Commits

Author SHA1 Message Date
OpenShift Merge Robot
26410e4f4e Merge pull request #7037 from edsantiago/bats
BATS help-message test: improve diagnostics
2020-07-21 13:19:01 -04:00
OpenShift Merge Robot
f8e2a3500e Merge pull request #6902 from vrothberg/events-endpoint
events endpoint: fix panic and race condition
2020-07-21 10:55:40 -04:00
Ed Santiago
2b323f2238 BATS help-message test: improve diagnostics
The error messages from the 'podman xxx --help' cross-check
test are unhelpful, and cause much wasted time when they trigger.

Solution: instead of using the built-in exit-status check
in run_podman, do an explicit check outside of run_podman.
This lets us die() with a custom, hopefully useful, message.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-07-21 08:31:56 -06:00
OpenShift Merge Robot
1682e60dac Merge pull request #7026 from edsantiago/bats_majorminor_warning_fix
BATS tests: more resilient remove_same_dev_warning
2020-07-21 05:52:09 -04:00
Ed Santiago
1405c3a205 BATS tests: more resilient remove_same_dev_warning
Some CI tests are flaking in the SELinux test, possibly because
there's a new variation of the "multiple devices" warning I hadn't
seen before:

   WARNING: Creating device "/dev/null" with same type, major and minor as existing "/dev/foodevdir/null".

Solution: in remove_same_dev_warning(), remove "multiple" from
the match string.

Also: fix a Go test that wasn't cleaning up after itself. And
add an actual test to it, not just check-exit-status.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-07-20 12:32:17 -06:00
OpenShift Merge Robot
0d26a573e3 Merge pull request #6895 from QiWang19/pr-3457
Add support for overlay volume mounts in podman.
2020-07-20 14:11:17 -04:00
Qi Wang
020d81f113 Add support for overlay volume mounts in podman.
Add support -v for overlay volume mounts in podman.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-07-20 09:48:55 -04:00
Matthew Heon
4a3ba34d63 Re-enable a generate kube test that failed on Ubuntu
The fix was a new runc version, which we may have sucked in.

Fixes #6506

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-20 09:48:48 -04:00
Valentin Rothberg
d856e87f40 events endpoint: fix panic and race condition
Fix a potential panic in the events endpoint when parsing the filters
parameter.  Values of the filters map might be empty, so we need to
account for that instead of uncondtitionally accessing the first item.

Also apply a similar for race conditions as done in commit f4a2d25c0f:

	Fix a race that could cause read errors to be masked.  Masking
	such errors is likely to report red herrings since users don't
	see that reading failed for some reasons but that a given event
	could not be found.

Another race was the handler closing event channel, which could lead to
two kinds of panics: double close, send to close channel.  The backend
takes care of that.  However, make sure that the backend stops working
in case the context has been cancelled.

Fixes: #6899
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-20 11:37:05 +02:00
Paul Holzinger
67a5e21bf8 fix: system df error when an image has no name
When an image has no name/tag system df will
error because it tries to parse an empty name.

This commit makes sure we only parse non
empty names and set the repository and tag
to "<none>" otherwise.

Closes #7015

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-07-19 22:55:27 +02:00
OpenShift Merge Robot
d86bae2a01 Merge pull request #6965 from giuseppe/followup-pr6324
allow switching of port-forward approaches in rootless/using slirp4netns
2020-07-17 04:44:49 -04:00
Giuseppe Scrivano
7722b582b4 network, slirp4netns: add option to allow host loopback
Closes: https://github.com/containers/podman/issues/6912

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-07-16 22:37:27 +02:00
Giuseppe Scrivano
9be7029cdd libpod: pass down network options
do not pass network specific options through the network namespace.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-07-16 22:37:27 +02:00
OpenShift Merge Robot
6dcff5c32b Merge pull request #6975 from baude/rootlessIPMAC
Error on rootless mac and ip addresses
2020-07-15 16:38:36 -04:00
OpenShift Merge Robot
9051546c4d Merge pull request #6979 from edsantiago/bats_masked_dirs
system tests: check for masked-device leaks
2020-07-15 14:08:16 -04:00
OpenShift Merge Robot
8704b78a6f Merge pull request #6958 from edsantiago/bats
system tests: new tests for run, exec
2020-07-15 10:27:09 -04:00
Brent Baude
c58127602e Error on rootless mac and ip addresses
When creating a pod or container where a static MAC or IP address is provided, we should return a proper error and exit as 125.

Fixes: #6972

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-07-15 07:06:58 -05:00
OpenShift Merge Robot
60127cf5e8 Merge pull request #6949 from AkihiroSuda/fix-6948
Fix "Error: unrecognized protocol \"TCP\" in port mapping"
2020-07-15 06:17:09 -04:00
OpenShift Merge Robot
4138cc9167 Merge pull request #6978 from edsantiago/apiv2_flake_fix
APIv2 tests: fix race condition causing CI flake
2020-07-15 06:03:03 -04:00
OpenShift Merge Robot
6224f3f5d5 Merge pull request #6956 from mheon/add_ports_to_pod_inspect
Include infra container information in `pod inspect`
2020-07-15 04:50:40 -04:00
Akihiro Suda
758a700c11 Fix "Error: unrecognized protocol \"TCP\" in port mapping"
"TCP" in upper characters was not recognized as a valid protocol name.

Fix #6948

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2020-07-15 14:30:32 +09:00
Ed Santiago
d3f9f09892 APIv2 tests: fix race condition causing CI flake
A newly-added test in #6835 was flaking in CI with:

   not ok 143 [20-containers] DELETE libpod/containers/SHA
   500 cannot remove container <sha> as it is running - running or paused containers cannot be removed without force: container state improper

Root cause: DELETE being run immediately after container start.
Although the container is short-lived, it does take time to
run and exit.

Solution: wait for container to exit (should be quick) before
deleting. This gives us a new test for the /wait endpoint.

Also: tweaked some comments for readability, removed unnecessary
container ps, added actual container status checks, and added
actual message checks to another test that was merely checking
exit status.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-07-14 16:09:58 -06:00
Ed Santiago
65644d8aa4 system tests: check for masked-device leaks
PR #6957 added a new path (/sys/devs) to an existing list
of masked mount points which an unprivileged container
should not be able to access. Here we add a test for
those: run 'stat' on those devices in the container,
and make sure that they are dummies.

This is kind of kludgy, and relies on heuristics that
may not be 100% accurate. It also adds duplication,
a list that must be kept in sync with the original
list in pkg/specgen/generate/config_linux.go.
I'd love to hear suggestions on how to do it better.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-07-14 16:02:51 -06:00
Ed Santiago
fea3eea68b system tests: new tests for run, exec
- Issue #6735 : problem with multiple namespaces; confirms
   combinations of --userns=keep-id, --privileged, --user=XX

 - Issue #6829 : --userns=keep-id will add a /etc/passwd entry

 - Issue #6593 : podman exec, with --userns=keep-id, errors
   (test is currently skipped because issue remains live)

...and, addendum: add new helper function, remove_same_dev_warning.
Some CI systems issue a warning on podman run --privileged:

   WARNING: The same type, major and minor should not be used for multiple devices.

We already had special-case code to ignore than in the SELinux
test, but now we're seeing it in the new run tests I added, so
I've refactored the "ignore this warning" code and written
tests for the removal code.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-07-14 14:19:22 -06:00
OpenShift Merge Robot
50cd21e181 Merge pull request #6939 from rhatdan/entrypoint
Fix handling of entrypoint
2020-07-14 21:53:47 +02:00
Matthew Heon
fbc1167c4d Fix lint
Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-07-14 13:24:12 -04:00
Matthew Heon
05988fc74f Add SystemdMode to inspect for containers
This allows us to determine if the container auto-detected that
systemd was in use, and correctly activated systemd integration.
Use this to wire up some integration tests to verify that systemd
integration is working properly.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-14 13:21:05 -04:00
Daniel J Walsh
6535c8b9e8 Fix handling of entrypoint
If a user specifies an entrypoint of "" then we should not use the images
entrypoint.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-14 13:10:03 -04:00
Matthew Heon
41457b5a28 Include infra container information in pod inspect
We had a field for this in the inspect data, but it was never
being populated. Because of this, `podman pod inspect` stopped
showing port bindings (and other infra container settings). Add
code to populate the infra container inspect data, and add a test
to ensure we don't regress again.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-07-14 12:03:11 -04:00
OpenShift Merge Robot
210f1040d2 Merge pull request #6952 from baude/systemdpid1fix
add systemd to fedora image
2020-07-14 17:59:12 +02:00
Brent Baude
99cc076700 Fix systemd pid 1 test
fedora removed the systemd package from its standard container image causing our systemd pid1 test to fail.  Replacing usage of fedora to ubi-init.

adding ubi images to the cache for local tests.

also, remove installation of test/policy.json to the system wide /etc/containers

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-07-13 17:11:26 -05:00
OpenShift Merge Robot
d86acf2cae Merge pull request #6842 from rhatdan/pids-limit
Pids-limit should only be set if the user set it
2020-07-13 20:53:20 +02:00
OpenShift Merge Robot
e2a8e037d1 Merge pull request #6896 from mheon/fix_remote_createcommand
Fix container and pod create commands for remote create
2020-07-13 13:20:26 +02:00
OpenShift Merge Robot
a4e080fd2a Merge pull request #6936 from mheon/matt_cant_count
Correctly print STDOUT on non-terminal remote exec
2020-07-11 13:16:08 +02:00
Matthew Heon
be4b4bd862 Correctly print STDOUT on non-terminal remote exec
I confused STDIN and STDOUT's file descriptors (it's 0 and 1, I
thought they were 1 and 0). As such, we were looking at whether
we wanted to print STDIN when we looked to print STDOUT. This
bool was set when `-i` was set in at the `podman exec` command
line, which masked the problem when it was set.

Fixes #6890
Fixes #6891
Fixes #6892

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-10 17:15:33 -04:00
Daniel J Walsh
677ad10e07 Pids-limit should only be set if the user set it
Currently we are sending over pids-limits from the user even if they
never modified the defaults.  The pids limit should be set at the server
side unless modified by the user.

This issue has led to failures on systems that were running with cgroups V1.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-10 12:46:16 -04:00
Matthew Heon
c4627b5846 Fix container and pod create commands for remote create
In `podman inspect` output for containers and pods, we include
the command that was used to create the container. This is also
used by `podman generate systemd --new` to generate unit files.

With remote podman, the generated create commands were incorrect
since we sourced directly from os.Args on the server side, which
was guaranteed to be `podman system service` (or some variant
thereof). The solution is to pass the command along in the
Specgen or PodSpecgen, where we can source it from the client's
os.Args.

This will still be VERY iffy for mixed local/remote use (doing a
`podman --remote run ...` on a remote client then a
`podman generate systemd --new` on the server on the same
container will not work, because the `--remote` flag will slip
in) but at the very least the output of `podman inspect` will be
correct. We can look into properly handling `--remote` (parsing
it out would be a little iffy) in a future PR.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-10 11:22:23 -04:00
Valentin Rothberg
bb9d939155 version/info: format: allow more json variants
Allow more variants to yield json output for `podman version` and
`podman info`.  Instead of comparing strings, use a regex and add
unit and e2e tests.

Fixes: #6927
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-10 15:44:17 +02:00
OpenShift Merge Robot
d9cd0032f7 Merge pull request #6906 from rhatdan/VENDOR
Vendor in new version of Buildah
2020-07-09 19:59:58 +02:00
OpenShift Merge Robot
059bd37511 Merge pull request #6835 from zhangguanzhang/master
fix API: Create container with an invalid configuration
2020-07-09 19:28:38 +02:00
Daniel J Walsh
b020d1ad13 Vendor in new version of Buildah
This also pulls in latest runc and containers/common

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-09 11:02:28 -04:00
Valentin Rothberg
d0ebea0643 logs: enable e2e tests
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-09 15:18:15 +02:00
zhangguanzhang
2086e22624 fix API: Create container with an invalid configuration
Signed-off-by: zhangguanzhang <zhangguanzhang@qq.com>
2020-07-09 10:26:04 +08:00
OpenShift Merge Robot
54d16f3b5f Merge pull request #6829 from rhatdan/keepid
Add username to /etc/passwd inside of container if --userns keep-id
2020-07-07 19:23:27 +02:00
Daniel J Walsh
6c6670f12a Add username to /etc/passwd inside of container if --userns keep-id
If I enter a continer with --userns keep-id, my UID will be present
inside of the container, but most likely my user will not be defined.

This patch will take information about the user and stick it into the
container.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-07 08:34:31 -04:00
Korhonen Sami (Samlink)
610118d9bf Add support for Filter query parameter to list images api
Docker api version 1.24 uses a query parameter named Filter
for filtering images by names. In more recent versions of
api name filter is in filters query parameter with other
filters

This patch adds a mapping that translates Filter query
parameter to Filters={"reference": [""]}

Signed-off-by: Sami Korhonen <skorhone@gmail.com>
2020-07-07 13:05:16 +03:00
OpenShift Merge Robot
1a93857acc Merge pull request #6693 from goochjj/libpod-sd-notify-cmdline
Implement --sdnotify cmdline option to control sd-notify behavior
2020-07-06 17:15:26 -04:00
OpenShift Merge Robot
b1cc781c68 Merge pull request #6570 from rhatdan/remote
Change buildtag for remoteclient to remote for testing
2020-07-06 17:00:19 -04:00
OpenShift Merge Robot
fca3434ee7 Merge pull request #6868 from mheon/fix_mount_rootless
Fix bug where `podman mount` didn't error as rootless
2020-07-06 16:41:59 -04:00
Matthew Heon
f4c649bdec Disable mount tests as rootless
As rootless, `podman mount` must be run inside `podman unshare`.
We don't really have a testing harness that can do this right
now.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-06 15:29:11 -04:00