Commit graph

9642 commits

Author SHA1 Message Date
OpenShift Merge Robot 2bd920b005
Merge pull request #8077 from jwhonce/wip/report
Refactor podman to use c/common/pkg/report
2020-10-21 17:59:56 -04:00
OpenShift Merge Robot 61b276a05c
Merge pull request #8083 from crunchtime-ali/add-eol-to-compat-log
Add EOL to compat container logs
2020-10-21 15:31:08 -04:00
OpenShift Merge Robot a1b942ff40
Merge pull request #8034 from rhatdan/options
Switch help messages from using [flags] to [options]
2020-10-21 12:59:42 -04:00
OpenShift Merge Robot 9060af9719
Merge pull request #8093 from rhatdan/wait
Fix handling and documentation of podman wait --interval
2020-10-21 11:30:44 -04:00
Jhon Honce bab3cda0e8 Refactor podman to use c/common/pkg/report
All formatting for containers stack moved into one package
The does not correct issue with headers when using custom tables

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-10-21 08:16:52 -07:00
OpenShift Merge Robot f96dbd0896
Merge pull request #8092 from rhatdan/stdin
Podman build should default to not usins stdin
2020-10-21 10:50:45 -04:00
OpenShift Merge Robot 287edd4e21
Merge pull request #8090 from containers/dependabot/go_modules/k8s.io/apimachinery-0.19.3
Bump k8s.io/apimachinery from 0.19.2 to 0.19.3
2020-10-21 10:23:32 -04:00
Alexander Zigelski b26c6519ac
Add EOL to compat container logs
Signed-off-by: Alexander Zigelski <ali@crunchtime.dev>
2020-10-21 16:21:28 +02:00
OpenShift Merge Robot b4a10538e1
Merge pull request #7948 from saschagrunert/ps-fix
Fix ps port output
2020-10-21 08:42:41 -04:00
Daniel J Walsh 980b1e87d4
Switch use of Flags to Options
Want to have man pages match commands, since we have lots of printed
man pages with using Options, we will change the command line to use
Options in --help.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-21 08:37:57 -04:00
OpenShift Merge Robot 9d9c58ba64
Merge pull request #8065 from edsantiago/flake_tweaks
Tests: Fix common flakes, and improve apiv2 test log
2020-10-21 07:21:49 -04:00
OpenShift Merge Robot d5073af6b2
Merge pull request #8022 from baude/compatapitospecgen
refactor api compatibility container creation to specgen
2020-10-21 06:35:51 -04:00
dependabot-preview[bot] c758b8f9d9
Bump k8s.io/apimachinery from 0.19.2 to 0.19.3
Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.19.2 to 0.19.3.
- [Release notes](https://github.com/kubernetes/apimachinery/releases)
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.19.2...v0.19.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-21 06:32:37 -04:00
Daniel J Walsh 3f265e91f4
Fix handling and documentation of podman wait --interval
In older versions of podman, we supported decimal numbers defaulting
to microseconds.  This PR fixes to allow users to continue to specify
only digits.

Also cleaned up documentation to fully describe what input for --interval flag.

Finally improved testing on podman wait to actually make sure the command succeeded.
Fixed tests to work on podman-remote.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-21 06:25:36 -04:00
Daniel J Walsh d72918fe6f
Podman build should default to not usins stdin
Currently we leak stdin into podman builds, which can lead
to issues like run commands inside of the container waiting for
user input.

We should not take input from users other then if the user specifies
podman build -f - or podman build -, which are taken care of in other code.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-21 05:33:00 -04:00
OpenShift Merge Robot 94873a237a
Merge pull request #8075 from mheon/fix_8073
Retrieve network inspect info from dependency container
2020-10-20 17:07:11 -04:00
OpenShift Merge Robot 4822cc8cab
Merge pull request #8042 from rhatdan/tlsverify
--tls-verify and --authfile should work for all remote commands
2020-10-20 15:34:56 -04:00
OpenShift Merge Robot 6961b9475d
Merge pull request #8067 from mheon/net_host_hosts
Ensure that hostname is added to hosts with net=host
2020-10-20 15:18:53 -04:00
Ed Santiago f5b3dc976c Tests: Fix common flakes, and improve apiv2 test log
- apiv2 - the 'ten /info requests' test is flaking often,
  taking ~8 seconds (our limit is 7, up from 5 a few weeks
  ago). Brent suggested that the first /info call might be
  expensive, because it needs to access storage. So, let's
  prime it by running one /info outside the timing loop.
  And, because even that continues to fail, bump it up
  to 10 seconds and file #8076 to track the slowdown.

- toolbox test - WaitForReady() has timed out, even on one
  occasion causing a run failure because it failed 3 times.
  Solution: bump up timeout from 2s to 5s. Not really great,
  but CI systems are underpowered, and it's not unreasonable
  that 2s might be too low.

- sdnotify test - add a 'podman wait' between stop & rm.
  This may prevent a "cannot rm container as it is running"
  race condition.

While working on this, Brent and I noticed a few ways that
test-apiv2 logging can be improved:

- test name: when request is POST, display the jsonified
  parameters, not the original input ones. This should
  make it much easier to reproduce failures.

- use curl's "--write-out" option to capture http code,
  content type, and request time. We were getting the
  first two via grep from logged headers; this is cleaner.
  And there was no other way to get timing. We now include
  the timing as X-Response-Time in the log file.

- abort on *any* curl error, not just 7 (cannot connect).
  Any error at all from curl is bad news.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-10-20 11:32:49 -06:00
Matthew Heon c1b844ecc8 Retrieve network inspect info from dependency container
When a container either joins a pod that shares the network
namespace or uses `--net=container:` to share the network
namespace of another container, it does not have its own copy of
the CNI results used to generate `podman inspect` output. As
such, to inspect these containers, we should be going to the
container we share the namespace with for network info.

Fixes #8073

Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-10-20 13:27:33 -04:00
baude eb91d66c4a refactor api compatibility container creation to specgen
when using the compatibility layer to create containers, it used code paths to the pkg/spec which is the old implementation of containers.  it is error prone and no longer being maintained.  rather that fixing things in spec, migrating to specgen usage seems to make the most sense.  furthermore, any fixes to the compat create will not need to be ported later.

Signed-off-by: baude <bbaude@redhat.com>
2020-10-20 12:06:59 -05:00
OpenShift Merge Robot 36682115b0
Merge pull request #7126 from mheon/fix_missing_ociruntime
Fix missing OCI Runtime
2020-10-20 11:22:43 -04:00
OpenShift Merge Robot 6c0b600e7d
Merge pull request #7999 from mheon/signal_handler
Add a shutdown signal handler
2020-10-20 11:16:11 -04:00
Sascha Grunert f63bbca4da
Fix ps port output
When defining multiple ports (same src/dst) like `-p 80:80 -p 443:443`
then podman will not show the complete output on `podman ps` (only
`0.0.0.0:80->80/tcp` in the example). This also applies to port ranges.

This patch refactors the port loop by pre-checking for ranges and
displaying them correctly to the end user.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2020-10-20 17:00:23 +02:00
Matthew Heon 1b288a35ba Ensure that hostname is added to hosts with net=host
When a container uses --net=host the default hostname is set to
the host's hostname. However, we were not creating any entries
in `/etc/hosts` despite having a hostname, which is incorrect.
This hostname, for Docker compat, will always be the hostname of
the host system, not the container, and will be assigned to IP
127.0.1.1 (not the standard localhost address).

Also, when `--hostname` and `--net=host` are both passed, still
use the hostname from `--hostname`, not the host's hostname (we
still use the host's hostname by default in this case if the
`--hostname` flag is not passed).

Fixes #8054

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-10-20 10:31:15 -04:00
Matthew Heon 1b4933376f Add a system test to verify --runtime is preserved
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-10-20 09:24:32 -04:00
Matthew Heon 3858fc1d01 Use runtime names instead of paths in E2E tests
My patches to fix `--runtime /usr/bin/crun` being allowed to use
a different version of the crun runtime revealed a problem: we
were actually relying on that exact behavior in our E2E tests. We
specified the runtime path as `/usr/bin/runc` for the Ubuntu
tests, but that didn't exist, so Podman was actively looking for
a different, usable runc binary and using that, instead of the
path we explicitly hardcoded. Fixing the bug broke this, and thus
broke the tests.

Instead of hard-coding OCI runtime paths, swap to just using the
runtime name, `runc` or `crun`, and letting Podman figure out
where the runtime lives - it's quite good at that. This should
un-break the tests and make them more durable.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-10-20 09:20:33 -04:00
Matthew Heon 338d521782 Re-create OCI runtimes by path when it is missing
When an OCI runtime is given by full path, we need to ensure we
use the same runtime on subsequent use. Unfortunately, users are
often not considerate enough to use the same `--runtime` flag
every time they invoke runtime - and if the runtime was not in
containers.conf, that means we don't have it stored inn the
libpod Runtime.

Fortunately, since we have the full path, we can initialize the
OCI runtime for use at the point where we pull the container from
the database.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-10-20 09:20:33 -04:00
Matthew Heon f9655d92d6 When given OCI runtime by path, use path as name
Say I start a container with the flag
`--runtime /usr/local/sbin/crun`. I then stop the container, and
restart it without the flag. We previously stored the runtime in
use by a container only by basename when given a path, so the
container only knows that it's using the `crun` OCI runtime - and
on being restarted without the flag, it will use the system crun,
not my special crun build.

Using the full path as the name in these cases ensures we will
still use the correct runtime, even on subsequent runs of Podman.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-10-20 09:20:33 -04:00
OpenShift Merge Robot 35b4cb1965
Merge pull request #8069 from matejvasek/fix-memswap
fix: neutral value for MemorySwappiness
2020-10-20 07:33:13 -04:00
OpenShift Merge Robot cec0e57497
Merge pull request #8043 from saschagrunert/hostport-fix
Fix host to container port mapping for simple ranges
2020-10-20 07:29:46 -04:00
OpenShift Merge Robot f9450300b7
Merge pull request #8061 from edsantiago/bats
System tests: remove some misleading 'run's
2020-10-20 07:25:35 -04:00
Matej Vasek bacdbf6e20 fix: neutral value for MemorySwappiness
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2020-10-20 03:13:56 +02:00
OpenShift Merge Robot e944544271
Merge pull request #8056 from xordspar0/invalid-image
Make invalid image name error more specific
2020-10-19 15:49:11 -04:00
Jordan Christiansen 8cbf7700a5 Make invalid image name error more specific
Previously, using an invalid image name would produce an error like
this:

    Error: error encountered while bringing up pod test-pod-0: invalid reference format

This message didn't specify that there was an problem with an image
name, and it didn't specify which image name had a problem if there were
multiple. Now the error reads:

    Error: error encountered while bringing up pod test-pod-0: Failed to parse image "./myimage": invalid reference format

Signed-off-by: Jordan Christiansen <xordspar0@gmail.com>
2020-10-19 10:06:17 -05:00
Ed Santiago b23d430516 System tests: remove some misleading 'run's
The BATS 'run' directive is really quite obnoxious; for the
most part we really don't want to use it. Remove some uses
that snuck in last week, and remove one test (exists) that
can more naturally be piggybacked into an rm test.

While we're at it: in setup(), look for and delete stray
external (buildah) containers. This will be important if
any of the external-container tests fails; this way we
don't leave behind a state that causes subsequent tests
to fail.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-10-19 08:43:56 -06:00
Daniel J Walsh 3d2ad0f97a
--tls-verify and --authfile should work for all remote commands
These options are now fully supported in the remote API and should no
longer be hidden and/or documented as non supported.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-19 05:55:11 -04:00
Sascha Grunert 49424fc02a
Fix host to container port mapping for simple ranges
This fixes the issue that a simple port range should map to a random
port range from the host to the container, if no host port range is
specified. For example this fails without applying the patch:

```
> podman run -it -p 6000-6066 alpine
Error: cannot listen on the TCP port: listen tcp4 :53: bind: address already in use
```

The issue is that only the first port is randomly chosen and all
following in the range start by 0 and increment. This is now fixed by
tracking the ranges and then incrementing the random port if necessary.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2020-10-19 11:19:12 +02:00
OpenShift Merge Robot 7ffcab0854
Merge pull request #7908 from rhatdan/diff
fix podman container exists and diff for storage containers
2020-10-19 02:49:27 -04:00
OpenShift Merge Robot 6ec96dc009
Merge pull request #8044 from Luap99/fix-8040
Always add the dnsname plugin to the config for rootless
2020-10-18 04:37:13 -04:00
Paul Holzinger 0fd5437904 Always add the dnsname plugin to the config for rootless
The rootless-cni-infra container always has the dnsname
plugin installed. It makes no sense to check if it is
present on the host.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-10-17 15:25:58 +02:00
OpenShift Merge Robot 39f1bea46d
Merge pull request #8045 from andylibrian/podman-remote-cleanly-exit-on-detachkeyspressed
Update podman-remote run and start to handle detach keys
2020-10-17 07:18:37 -04:00
OpenShift Merge Robot 28d331d074
Merge pull request #8036 from xordspar0/heading-consistency
[CI:DOCS] Make man page headings more consistent
2020-10-16 17:58:54 -04:00
OpenShift Merge Robot 9d5f28ba9e
Merge pull request #8039 from zhangguanzhang/runlabel-panic
Fix panic when runlabel is missing
2020-10-16 16:10:02 -04:00
Jordan Christiansen 88bc133dac Make man page headings more consistent
Signed-off-by: Jordan Christiansen <xordspar0@gmail.com>
2020-10-16 15:06:33 -05:00
OpenShift Merge Robot 9f98b3447c
Merge pull request #7992 from containers/dependabot/go_modules/github.com/containers/common-0.25.0
Bump github.com/containers/common from 0.24.0 to 0.26.0
2020-10-16 09:27:44 -04:00
Andy Librian eefa3cbf6e Update podman-remote start --attach to handle detach keys
fixes #7979

Signed-off-by: Andy Librian <andylibrian@gmail.com>
2020-10-16 19:44:29 +07:00
Andy Librian 480cb2db5e Update podman-remote run to handle detach keys
addresses #7979

Signed-off-by: Andy Librian <andylibrian@gmail.com>
2020-10-16 19:44:29 +07:00
OpenShift Merge Robot fe1b6ccc85
Merge pull request #8029 from Luap99/image-trust-show-raw
Fix podman image trust show --raw output
2020-10-16 05:49:49 -04:00
Daniel J Walsh 711d4ba027
Bump github.com/containers/common from 0.24.0 to 0.26.0
Bumps [github.com/containers/common](https://github.com/containers/common) from 0.24.0 to 0.26.0.
- [Release notes](https://github.com/containers/common/releases)
- [Commits](https://github.com/containers/common/compare/v0.24.0...v0.26.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-16 04:38:06 -04:00